2. IP 数据报
Last updated
Last updated
版本:占 4 位,指 IP 协议的版本。(IPv4/IPv6)
首部长度:占 4 位,单位是 4B,最小为 5(因为首部固定部分 20B,5 * 4B = 20B),最大为 15(15 * 4B = 60B)
区分服务:占 8 位,用来获取更好的服务(如:优先级),但实际上一直没有用过
总长度:占 16 位,首部 + 数据部分的总长度,单位是 1B,因此数据报的总长度为
生存时间(TTL):占 8 位,IP 分组的保质期,经过一个路由器就 -1,变为 0 则丢弃
协议:占 8 位,数据部分的协议,即传输层使用的是什么协议
协议名 | ICMP | IGMP | TCP | EGP | IGP | UDP | IPv6 | ESP | OSPF |
字段值 | 1 | 2 | 6 | 8 | 9 | 17 | 41 | 50 | 89 |
首部检验和:占 16 位,只检验数据报的首部,但不包含数据部分。每经过一个路由器,都会重新计算一下首部检验和。
源地址:占 32 位
目的地址:占 32 位
可选字段:占 0 ~ 40 位,用来支持排错、测量以及安全措施
填充:全 0,把首部长度补成 4B 的整数倍
最大传输单元MTU:数据链路层帧可封装数据的上限,以太网的MTU是1500字节。
标识:占 16 位,同一数据报的分片使用同一标识
标志:占 3 位,只有两位有意义 x _ _
中间位 DF(Don't Fragment)
DF = 1,禁止分片
DF = 0,允许分片
最低位 MF(More Fragment)
MF = 1,后面还有分片
MF = 0,代表最后一片 / 没分片
片偏移:指出较长分组分片后,某片在原分组中的相对位置。(以 8B 为单位)
除了最后一片,每个分片长度一定是 8B 的整数倍
IP 地址是唯一标识一个计算机的地址
分类的 IP 地址
子网的划分
构成超网(无分类编址方式)
IP 地址:全世界唯一的 32 为 / 4 字节 标识符,标识路由器主机的接口
IP 地址 ::= {<网络号>,<主机号>}
对于 A 类地址,0.0.0.0 和 127.0.0.0 不能用作网络号
对于 B 类地址,128.0.0.0 不能作为网络号
对于 C 类地址,192.0.0.0 不能作为网络号
对于私有IP地址是不能在网络上传输的,需要通过 NAT技术来实现私网IP和公网通信的功能。
网络地址转换 NAT(Network Address Translation):在专用网连接到因特网的路由器上安装 NAT 软件,安装了 NAT 软件的路由器交NAT路由器,它至少有一个有效的外部全球 IP地址。
IP 地址空间的利用率有时很低
两级 IP 地址不够灵活
子网划分就是把一部分用来表示主机号的位数来表示网络号,用子网掩码区分。
路由表中存储的信息:
目的网络地址
目的网络子网掩码
下一跳网址
路由器转发分组的算法:
提取目的 IP地址
是否直接交付
特定主机交付
检测路由表中有无路径
默认路由 0.0.0.0
丢弃,报告转发分组出错(TTL 为 0)
消除了传统他的 A 类、B 类和 C 类地址以及划分子网的概念
CIDR 记法:IP 地址后加上 /,然后写上网络前缀(可以是任意长度)的位数。e.g. 128.14.32.0/20
融合子网地址与子网掩码,方便子网划分
CIDR 把网络前缀都相同的连续的 IP 地址组成一个 CIDR地址块
将多个子网聚合成一个较大的子网,叫做构成超网,或路由聚合
方法:将网络前缀缩短(所有网络地址取交集)
使用 CIDR时,查找路由表可能得到几个匹配结果(跟网络掩码按位相与),应选择具有最长网络前缀的路由。前缀越长,地址块越小,路由越具体。