赞
踩
IP数据报的格式说明协议IP都具有什么功能。在协议IP的标准中,描述首部格式的宽度是32位(即4字节)。下图是IP数据报的完整格式。
从上图可看出,一个IP数据报由首部和数据两部分组成。首部的前一部分长度是固定的,共20字节,是所有IP数据报必须具有的。在首部的固定部分的后面是一些可选字段,其长度是可变的。下面介绍首部各字段的意义。
版本:占4位,指协议IP的版本。
首部长度:占4位,可表示的最大十进制数值是15。
请注意,首部长度字段所表示数的单位是32位字长(1个32位字长是4字节)。
0101
)。1111
时(即十进制的15),就表明首部长度达到最大值:15个32位字长,即60字节。区分服务:占8位,用来获得更好的服务。
总长度:总长度指首部和数据之和的长度,单位为字节。
在IP层下面的每一种数据链路层协议都规定了一个数据帧中的数据字段的最大长度,这称为最大传送单元MTU(Maximum Transfer Unit)。
例如,最常用的以太网就规定其MTU值是1500字节。
虽然使用尽可能长的IP数据报会使传输效率得到提高,但数据报短些也有好处。IP数据报越短,路由器转发的速度就越快。为此,协议IP规定,在互联网中所有的主机和路由器必须能够接受长度不超过576字节的数据报。当主机需要发送长度超过576字节的数据报时,应当先了解一下,目的主机能否接受所要发送的数据报长度。否则,就要进行分片。
这是假定上层交下来的数据长度有512字节,加上最长的IP首部60字节,再加上4字节的富余量,就得到576字节。
在进行分片时,数据报首部中的“总长度”字段是指分片后的每一个分片的首部长度与该分片的数据长度的总和。
标识(identification):占16位。
相同的标识字段的值使分片后的各数据报片最后能正确地重装成为原来的数据报。
标志(flag):占3位,但目前只有两位有意义。
MF=1
即表示后面“还有分片”的数据报。MF=0
表示这已是若干数据报片中的最后一个。DF=0
时才允许分片。片偏移:占13位。
【例】一个数据报的总长度为3820字节,其数据部分为3800字节长(使用固定首部),需要分片为长度不超过1420字节的数据报片。因固定首部长度为20字节,因此每个数据报片的数据部分长度不能超过1400字节。于是分为3个数据报片,其数据部分的长度分别为1400,1400和1000字节。原始数据报首部被复制为各数据报片的首部,但必须修改有关字段的值。下图给出分片后得出的结果。
下表是本例中数据报首部与分片有关的字段中的数值,其中标识字段的值是任意给定的。具有相同标识的数据报片在目的站就可无误地重装成原来的数据报。
现在假定数据报片2经过某个网络时还需要再进行分片,即划分为数据报片2-1(携带数据800字节)和数据报片2-2(携带数据600字节)。那么这两个数据报片的总长度、标识、MF、DF和片偏移分别为:820,12345,1,0,175
;620,12345,1,0,275
。
生存时间:占8位,生存时间字段常用的英文缩写是TTL(Time To Live)
协议:占8位
首部检验和:占16 位。
不检验数据部分可减少计算的工作量。
下图说明了IP数据报首部检验和的计算过程。
源地址:占32位。
目的地址:占32位。
IP 数据报首部的可变部分就是一个选项字段。选项字段用来支持排错、测量以及安全等措施,内容很丰富。此字段的长度可变,从1字节到40字节不等,取决于所选择的项目。
增加首部的可变部分是为了增加IP数据报的功能,但这同时也使得IP数据报的首部长度成为可变的。这就增加了每一个路由器处理数据报的开销。
实际上这些选项很少被使用。很多路由器都不考虑IP首部的选项字段,因此新的IP版本IPv6就把IP数据报的首部长度做成固定的了。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。