zoukankan      html  css  js  c++  java
  • 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

    Have a nice day!!!
  • 相关阅读:
    CMD命令
    存储过程-使用(二)
    存储过程-基本(一)
    事务学习-概念(一)
    组装简历必备的9大要件
    Java 正则表达式详解_正则表达式
    各类程序员学习路线图
    mrql初级教程-使用(er)
    PHP获取当期前运行文件的路径,名字,服务器路径
    mysqldump导入导出mysql数据库
  • 原文地址:https://www.cnblogs.com/fhefh/p/2217954.html
Copyright © 2011-2022 走看看