目录
一、NAT:网络地址转换
1、工作原理
2、NAT 的限制
二、ICMP
1、ICMP 协议
2、ICMP 类型和代码
3、Traceroute 命令
三、IPv6 地址
1、IPv6 的引入
2、IPv6 的表示
一、NAT:网络地址转换
动机:对外部网络来讲,本地网络只用一个 IP 地址。
- 不需要从 ISP 分配一系列地址,只需要一个 IP 地址用于所有的设备
- 在本地网络,改变设备的 IP 地址不用通知外部世界
- 可以变更 ISP,同时又不用改变本地网络的设备地址
- 本地网络内部设备不能被外部世界明确寻址或不可见
增加了安全性
1、工作原理
① 外出的分组
- 在 NAT 转换表中记录每个 (源 IP 地址,端口号) 到 (NAT IP 地址,新端口号) 转换配对
- 替换每个外出的分组的 (源 IP 地址,端口号) 为 (NAT IP 地址,新端口号)
- 远程客户/服务器用 (NAT IP 地址,新端口号) 作为目的地来响应
② 进来的分组
- 替换每个进来的分组的 (NAT IP 地址,新端口号) 为 (源 IP 地址,端口号)
采用 16 位端口号:一个局域网地址可以同时支持 60,000 个并发连接!
2、NAT 的限制
NAT 存在争议:路由器只应该处理到第三层,违反了端到端主张,应用程序设计者在设计时不得不将 NAT 加以考虑,如:P2P 应用程序。
应使用 IPv6 来解决地址短缺问题。
二、ICMP
1、ICMP 协议
Internet Control Message Protocol,因特网控制报文协议
功能:用于主机路由器之间彼此交流网络层信息。
- 差错报告:不可到达的主机、网络、端口、协议
- 请求和应答(用 于 ping、traceroute)
位于 IP 之上:因为 ICMP 消息是装载在 IP 分组里的。
可见,同一层的协议可以相互封装
2、ICMP 类型和代码
主打一个:探测网络连通性
3、Traceroute 命令
源端发送一系列的 UDP 分组给目的端:
- 第一个分组的 TTL=1
- 第二个分组的 TTL=2,等等
考虑第 n 个分组到达第 n 个路由器时,
- 由于 TTL=0 ,因此路由器丢弃该分组
- 并给源端发送一个 ICMP 报文 (type 11,code 0)
- 该报文包含了路由器的名称和 IP 地址
当源端收到 ICMP 报文时,计算传输 RTT 往返时间。
事实上,对应每个 TTL 都发送了三次分组
回顾:路由器每次将 TTL-1 后,都要重新计算校验和。
源端停止发送的依据:
- UDP 报文最终到达目的端
- 目的端返回应答的 ICMP 报文 (type 3, code 3)
- 源端收到应答 ICMP 报文后停止发送
三、IPv6 地址
1、IPv6 的引入
引入的原因:
- (初始动机) 32位的 IPv4 地址空间即将用尽。
- 首部格式可帮助加速处理和转发
- 改变首部利于 QoS 要求
IPv6 数据报格式:
- 固定长度的 40 字节首部
- 不允许分片
2、IPv6 的表示
① 冒号十六进制表示法
例如:104.220.136.100.254.254.254.255.0.0.18.128.140.10.254.255
用冒号十六进制表示为:69DC:8864:FFFF:FFFF:0:1280:8C0A:FFFF
② 零压缩表示法
例如:FF0C:0:0:0:0:0:B1
零压缩表示为:FF0C::B1
即使有两段可以进行压缩,也只能选择其中一个进行压缩。