4.3.1 IPv4分组
IP协议定义数据传送的基本单元——IP分组及其确切的数据格式
1. IPv4分组的格式
IPv4分组由首部和数据部分(TCP、UDP段)组成,其中首部分为固定部分(20字节)和可选字段(长度可变,用于提供错误检测及安全等机制)
1)版本:指IP协议的版本
2)首部长度:占4位,可以表示最大的数为15。以32位为单位,最大值为60B(32 * 15 / 8 = 64B),最常用的首部长度是20B,最小为数字5即(0101),因此取值范围为(0101 ~ 1111)
3)总长度:占16位,指首部和数据之和长度单位为字节,因此IP数据报的最大长度为 2 16 − 1 = 65535 B 2^{16} - 1 = 65535B 216−1=65535B,以太网帧的最大传送单元(MTU)为1500B(IP数据报的长度不能超过此值)
4)标识:占16位,它是一个计数器,每产生一个数据报就加1,并赋值给标识字段。
5)标志:占3位,标志字段最低位为MF,等于1表示后面还有分片,0表示最后一个分片,标志位中间一位为DF,当其为0时才允许分片
6)片偏移:占13位,它指出较长的分组在分片后,某片在原分组中的相对位置。片偏移以 8个字节为偏移单位。除最后一个分片外,每个分片的长度一定是8B的整数倍
7)生存时间(TTL):占8位,数据报在网络中可通过的路由器数的最大值,为了确保帧不会永远在网络中循环,路由器在转发分组前,先把TTL减1。 若TTL被减为0,则该分组必须丢弃。
8)协议:占8位,指出此分组携带的数据使用何种协议(其中TCP协议为6,UDP协议为17)
9) 首部校验和:占16位。首部校验和只校验分组的首部,而不校验数据部分
10)源地址字段:占4B,标识发送方的IP地址
11) 目的地址字段:占4B,标识接收方的IP地址
首部长度、总长度、片偏移,基本单位 分别为4B、1B、8B
2. IP数据报分片
一个链路层数据报能承载的最大数据量称为最大传送单元(MTU)
当IP数据报的总长度大于链路MTU时,就需要将 IP数据报中的数据分装在多个较小的IP数据报中,这些较小的数据报称为片
在目的主机上,使用IP首部中的标识、标志、片偏移来完成对片的组装
原理:文章来源:https://www.toymoban.com/news/detail-649983.html
- 在将数据报进行分片时,形成的每个数据报(片)都具有原始数据报的标识号。因此收到数据后,IP首部的标识相同就说明这些数据属于同一个原始数据报的片
- IP首部中的标志位占3位,但只有后2位有意义,分别是MF位(More Fragment) 和DF位(Don’t Fragment),DF = 0表示该IP数据报才可以被分片。MF则用来告知目的主机该IP数据报是否为原始数据报的最后一个片。当MF= 1表示相应的原始数据报还有后续的片;当MF = 0表示该数据报是相应原始数据报的最后一个片
- 使用片位移字段来确定该片应该在原始数据报的哪个位置
进行分片时,除了最后一个片,其他所有片的有效数据载荷都是8B的倍数
计算片偏移时,第一个片的片偏移为0,其往后每个片偏移的值为其起始值除以8B文章来源地址https://www.toymoban.com/news/detail-649983.html
到了这里,关于IPv4分组的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!