IP数据报之Internet Header Length

   

  如图所示,此为IP包的表头格式,对应图中的信息,我们可以计算出,每一行的总长度都为32bit。

  在看TCP/IP协议卷一的时候,看到IP首部长度为4bit,首部最大可以为60字节?

  我看了半天就是想不出来,于是google了一下,便有了此篇文章,如有错误请指正,谢谢!!!!

  Internet Header Length简称为IHL,意思是Internet头部长度。我们从IP包总可以看到前面的6行为Header。如果Option和Padding没有设定的话,那就只有5行为Header。

  从图中可以看到,每一行长度为32bit,也就是4byte。那么5行就为,5*4byte=20byte,所以IP包最短为20byte(字节)。 

IHL: 4 bits Internet Header Length is the length of the internet header in 32 bit words, and thus points to the beginning of the data. Note that the minimum value for a correct header is 5.

  由于IHL占4位,4bit可表示的最大十进制数值是15。请注意,这个字段所表示数的单位是32位字长(1个32位字长是4字节),因此,当IP的首部长度为1111时(即十进制的15),首部长度就达到15*32bit/8=60字节。当IP分组的首部长度不是4字节的整数倍时,必须利用最后的填充字段加以填充。因此数据部分永远在4字节的整数倍开始,这样在实现IP协议时较为方便。首部长度限制为60字节的缺点是有时可能不够用。但这样做是希望用户尽量减少开销。最常用的首部长度就是20字节(即首部长度为0101),这时不使用任何选项。

PS :你要知道的是,IP包头的IHL所占的 4位,是表示这个IP包头的长度(Internet Header Length),最短即位 5行, 20字节;最长为 4bit二进制最大值为 1111,十进制为 15,你也可以看成 15行,用 15 * 32bit / 8 = 60字节。Internet Header Length仅仅存放的只是一个值(数字)而已。就像一瓶酒,你朋友问你可以喝多少,你说最少可以喝2杯,最多可以喝一瓶。

参考:

http://baike.baidu.com/view/1519445.htm

http://en.wikipedia.org/wiki/IPv4

http://tools.ietf.org/html/rfc791

http://dns-learning.twnic.net.tw/internet/intro6.html

转载于:https://www.cnblogs.com/fhefh/archive/2011/10/19/2217954.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值