IP协议(网络层协议)
发布时间
阅读量:
阅读量
1 IP协议功能
-
寻址和路由
-
传递服务
- 不可靠,可靠性由上层协议提供
- 无连接
-
数据报分段和重组
2 IP协议
IP数据报格式

其中固定字段占用20个字节,并规定可变字段的最大长度限定为40个字节。由此可知,在IP数据报中首部总长度范围控制在20至60个字节之间。
版本
- 占4bit,指IP协议的版本。目前的IP协议版本号为4,即IPv4
首部长度
在使用4bit位时(即占用四个二进制位),每个数据单元能够表示的最大值为15个字节(其中每个单元对应于四个连续的字节)。因此,在计算IP首部长度时,其最大允许值应设定为60个字节
服务类型
- 请指示希望获取哪类服务类型
- 1998年该字段被命名为QoS服务
- 仅在支持区分服务(DiffServ)的网络环境中应用
- 一般情况下不使用,在常规情况下该字段(第二字节)的值通常是00H
- 占8bit用于提升服务质量,在此之前该字段一直未被使用。其中D代表延迟时间(Delay),T代表数据传输速率(Throughput),R代表可靠性(Reliability),C代表传输成本(Cost)。最后一位留空但必须设为零以确保合法有效性
- 现多采用差分服务(DiffQ),其最后两位未被利用。若前6位格式为XXXXX0形式,则表示由因特网主机分配地址;若格式为XXXX11,则表示由本地主机分配地址;若格式为XXXX01,则表示临时或实验性用途的数据包
总长度
- 使用16位编码表示首部与数据的整体长度,并以字节为单位计算。因此,在无额外限制的情况下,默认情况下最大可能的数据包大小是2^{16}-1=6\text{,} \! \text{千} \text{,} \! \text{五十五} \text{B}。
- 最少IP分组头部占用20\text{ B}。
- 最大可封装的数据量等于理论上限减去头部所需空间(即6\text{,}\!\text{千}\!\text{,}\!\text{五十五}\text{B}-20\text{ B}=6\text{,}\!\text{千}\!\text{,}\!\text{五十三十五}\text{B})。
标识
- 该字段占用16位。
- 表示为一个计数器。
- 用来生成数据报的ID号码。
- 只有当同一份原始数据段分割成多个IP数据包时才会拥有相同的ID号码。
- 用来生成数据报的ID号码。
- 表示为一个计数器。
标志
- 占用3bit位,仅后两位具有实际意义。
- 标志字段中的最低位标识为MF(More Fragment)。当MF=1时,表示后续存在分片;当MF=0时,则表示当前为最后一片。
- 标志字段中间那位标识为DF(Don’t Fragment)。因此,在DF=0的情况下允许分片。
- 最高位被保留下来。
片偏移
- 13位编码中,“片偏移”用于确定较长序列分割后的某一部分相对于原始分割的位置;其位移量采用每8个字节作为基准。

生存时间
- 8bit, 称为TTL(Time To Live), 表示IP分组在网络安全中可穿越的路由器数量(或跳跃次数)。这种计时机制旨在限制数据包在网络中的传输持续时间, 其原始单位是秒, 但为了便于管理, 现在统一以"跳跃次数"作为TTL的计量单位。
- 每次数据包穿越一个路由器时, 其TTL计数值递减1。
- 当数据包的TTL计数值归零时, 则表示该IP分组应被丢弃。
协议
- 协议(8bit)字段标识数据报中所使用的具体协议类型。
- 该IP分组所包裹的数据属于哪种通信协议。
- 实现了数据传输的复用与分离过程。
- 例如:编号6对应TCP段;编号17对应UDP数据报。

首部校验和
- 首部校验和(16bit)字段仅校核数据报的头部信息而不涉及数据内容部分,在本系统中未采用CRC检验码而采用了更为直接的计算方式
- 负责对IP分组头部信息实施差错检测功能
- 计算过程设定该字段值为全零状态
- 采用反码加法运算方式累计求取结果值,并以反码形式存储于首部校验和字段中
- 实施逐帧处理过程以实现连续报错检测与定位
源地址、目的地址
- 源地址和目的地址各自占用4个字节
- 分别标识发送分组的源主机/路由器及接收分组的目的主机/路由器(网络接口)用于接收分组的IP地址
IP数据报首部的可变部分
- IP首部中的变动部分相当于一个选项字段,在1至40B之间灵活变化:它包含安全信息、源选路径记录以及时间戳等数据项,并通过提供故障排查、性能监控以及安全性增强等功能而发挥作用。
- 选项字段的具体长度由所选项目决定。
- 通过增加首部中的变动部分来增强IP数据报的功能表现形式的同时也会导致IP数据报头部大小随之变得灵活起来。
- 实际上这些选项通常不会被采用。
填充字段
- 数据字段占长度可变,在0到3B之间:目的是补齐整个首部,并遵循32位对齐规则;确保整个数据块的起始位置能够被4字节整除。
3 IP分片
3.1 最大传输单元(MTU)
-
网络链路存在MTU (最大传输单元)—链路层数据帧可封装数据的上限
- 不同链路的MTU不同

3.2 IP分片与重组
-
大IP分组向较小MTU链路转发时, 可以被“分片” (fragmented)
-
一个IP分组被分割成多个IP分组
-
IP片段在抵达目标主机后完成重组过程
-
IP头中的相关字段负责标识各片段并确定它们之间的顺序关系
- 总长度、标识、标志位和片偏移
-

3.3 分片相关的字段

-
标识字段占16位:标识一个IP分组
-
IP协议采用一个计数器来标识每个IP分组,在每次产生新的IP分组时会将计数器加1。
-
标志位字段占用3位:
-
DF (Don’t Fragment)
-
DF =1:禁止分片
-
DF =0:允许分片
-
MF (More Fragment)
-
MF =1:非最后一片
-
MF =0:最后一片(或未分片)
-

-
片偏移字段占13位:一个IP分组分片封装原IP分组数据的相对偏移量
- 片偏移字段以8字节为单位
3.4 IP分片过程
- 假设原始IP数据包长度为L,则目标链路的最大传输单元大小为M
- 当L大于M且DF字段值等于0时,则需进行数据包切分数值计算
- 在数据包切分过程中,默认情况下会复制原始IP数据包的标识字段
- 其中最后一个数据包通常是未切分为多个小单元的状态
- 单个最大允许大小的数据单元应为8B的整数倍,请计算单个最大允许大小的数据单元的具体数值:
\text{Max Data Size} = \text{MTU} - \text{头信息长度}

- 需要的总片数为:

- 每片的片偏移字段取值为:

- 每片的总长度字段为:

- 每片的MF标志位为:

举例:

全部评论 (0)
还没有任何评论哟~
