IP 数据报格式及分片

本贴最后更新于 1634 天前,其中的信息可能已经渤澥桑田

IP 数据报格式

net01.png

下面是首部的结构:

net02.png

这里的长度单位都是位(比特位)

1、版本

4 位版本号(version):指定 IP 协议的版本,对于 IPv4 来说,就是 4

2、首部长度

4 位头部长度(header length):IP 头部的长度,单位是 4 比特,最小为 5(因为固定部分为 20 字节,所以最小就是 5),也就是说首部长度是 4×5=20 到 4×15=60 之间

3、区分服务

8 位服务类型(Type Of Service):3 位优先权字段(已经弃用),4 位 TOS 字段,和 1 位保留字段(必须置为 0)。4 位
TOS 分别表示:最小延时、 最大吞吐量、 最高可靠性、最小成本。 这四者相互冲突,只能选择一个。对于
ssh/telnet 这样的应用程序,最小延时比较重要;对于 ftp 这样的程序,最大吞吐量比较重要。

4、总长度

16 位总长度(total length):IP 数据报整体占多少个字节

5、标识

16 位标识(id):唯一的标识主机发送的报文。如果 IP 报文在数据链路层被分片了,那么每一个片里面的这个
id 都是相同的。

6、标志

3 位标志字段:第一位保留(保留的意思是现在不用,但是还没想好说不定以后要用到)。第二位置为 1 表示禁
止分片,这时候如果报文长度超过 MTU,IP 模块就会丢弃报文。第三位表示“更多分片”,如果分片了的话,最后一个分片置为 1,其他是 0。类似于一个结束标记。

7、片偏移

13 位分片偏移(framegament offset):是分片相对于原始 IP 报文开始处的偏移。其实就是在表示当前分片
在原报文中处在哪个位置,实际偏移的字节数是这个值 * 8 得到的。因此,除了最后一个报文之外,其他报
文的长度必须是 8 的整数倍(否则报文就不连续了)。

8、生存时间

8 位生存时间(Time To Live, TTL):数据报到达目的地的最大报文跳数,一般是 64。每次经过一个路由,TTL
就减一,一直减到 0 还没到达,那么就丢弃了。这个字段主要是用来防止出现路由循环

9、协议

8 位协议:表示上层协议的类型

net03.png

10、首部校验和

16 位头部校验和:使用 CRC 进行校验,来鉴别头部是否损坏。也就是二进制的和!

11、源地址和目的地址

32 位源地址和 32 位目标地址: 表示发送端和接收端

12、可选字段和填充

用来支持排错、测量以及安全等措施

IP 数据报分片

1、最大传送单元 MTU

MTU 全称是 maximum transmission unit,是指链路层数据帧可封装数据的上限,以太网的 MTU 是 1500 字节。

net04.png

2、IP 数据报的标识

回顾一下 IP 数据报中的标识:唯一的标识主机发送的报文。如果 IP 报文在数据链路层被分片了,那么每一个片里面的这个 id 都是相同的。

3、IP 数据报的标识字段

回顾一下 IP 数据报中的标志字段:

net05.png

4、IP 数据报的片偏移

片偏移:指出较长分组分片后,某片在原分组中的相对位置,以 8B 为单位。除了最后一个分片,每个分片长度一定是 8B 的整数倍。

5、分片示例

以太网帧中的数据长度规定最小 46 字节,最大 1500 字节,ARP 数据包的长度不够 46 字节,要在后面补填充位;最大值 1500 称为以太网的最大传输单元(MTU),不同的网络类型有不同的 MTU;

如果一个数据包从以太网路由到拨号链路上,数据包长度大于拨号链路的 MTU 了,则需要对数据包进行分片(fragmentation);不同的数据链路层标准的 MTU 是不同的;

下面以 1420 比特为最大值进行分片:

net06.png

这个例子其实很好理解,首部必须占用了 20 位,数据划分为 1400 位 +1400 位 +1000 位,他们都来自同一个数据报,所以标识都是一样的(在这里假设都为 12345),数据报 1、2、3DF 都是 0 则表示允许分片,数据报 1、2MF 都是 1 表示后面还有分片,数据报 3 的 MF 为 0,代表自己是最后一个分片,后面没有分片了,至于片偏移这个额也是可以计算的,数据报 1 的片偏移为 0,1400/8=175,所以数据报 2 的片偏移为 175,数据报 3 的片偏移为 350,通过片偏移就是为了数据重组或者合并后仍然是原来未分片时候的顺序!

  • 网络
    128 引用 • 177 回帖 • 3 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...