参考RFC-791
Internet Header Format

箭头所指的位置就是IHL-Internet Header Length.
前提知识点:
- IP 头部每一行是32bit = 4B
- IP 头部头部最后一行是特殊添加的内容,有没有第6行视情况而定,所以说最短是5行
- 如果只是有5行,那么头部的总大小就是 4B * 5行 = 20 B
分析IHL字段:
- IHL是4位二进制
- 表示范围看似是二进制 0000 - 1111 , 十进制 0 - 15
- 问题来了, 长度可能是0嘛? 显然不会,前面说过最少是20B嘛
RFC这样解释:
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.
- 搜迪斯尼! 规定嘛, 这4个二进制位能表示最小的值是十进制5 ,也就是二进制的 0101 用来表示头儿总长度20B , 5 * 32bit / 8 = 20 B , 共5行
- 那么 1111 也就是15 可以表示的是? 15 * 32bit / 8 = 60B , 共15行
- 所有大小是 20B-60 B
- 这种解释方便理解
来源:CSDN
作者:想想霸哥会怎么做
链接:https://blog.csdn.net/weixin_45019888/article/details/104618885