IP首部及检验和算法

来源:互联网 发布:不可饶恕 韩国 知乎 编辑:程序博客网 时间:2024/06/05 03:04

用microsoft network monitor抓取一个帧包如下:

                0000:   00 1E BE 73 DF 00 00 15 58 E9 8C AD
                000c:  08 00 45 00 00 40 7B AD 40 00 80 32
                0018:   19 F2 AC 12 06 60 9D 36 15 44 70 16
                0024:   BA F0 00 00 53 35 05 5C 0F A1 0A 2C
                0030:   4E 91 47 75 61 9D 50 10 FF FF 34 1B
                003c:   00 00 01 02 02 06 B8 71 BE 0C 92 A4 
                0048:   55 22 BD ED 97 00

ip数据包重45 00 00 40 开始。对于前面的数据,应该是数据链路层的报头(猜的)。

1. 第一个四位也就是4, 表示所用的ip协议的版本号, 这里也就是ipv4.

2.第二个四位也就是5,表示ip首部占32b的位数。 5就表示这个ip首部的长度将是32/8*5,即20个字节. 通常ip首部都是占20个字节.

3.接下来8位,即00. 表示的是8位tos服务类型. 具体不知道是什么玩意. 据说有前三位一般被忽略, 中间4位就是tos子字段,并且只有一位可以被设置为1. 他们代表着:最小延时,最大吞吐量,最高可靠性和最小费用. 这些有什么,我还不知道. 最后一位好像只能设置为0.

4.再就是接下来的16位了,00 40. 这几位表示ip数据的长度.. 这里是4*16*4=256字节. ip数据段的最大数据量是65535(2^16-1). 但是一般的服务器不允许超过576字节( 这是为什么呢?).

5.再接下来的16位7B AD, 传言它们代表着主机发送的数据包,主机每发送一次它的值就+1. 见识短了,还参不透这个禅.

6.接下来的16位40 00, 里面前三位是标志什么的,后13表示片偏移,也是弄不求懂.

7.接下来的8位:80, 就是广为传颂的TTL(time to live).

8.再接下来的8位:32,表示数据包的协议了. 具体32代表着什么,请参阅RFC了.

9.接下来的16位:19 F2. 就是我自认为很exciting的部分了.IP首部检验和:用于检测ip数据包的数据是否丢失. 具体计算过程如下:

      a) 数据包发送的时候,首先将ip检验和的16位置0, 然后分别对各个16位取反码求和.最后保存到ip首部检验和的16位中.

      b)客户端接收到数据报的时候,也对各个16位取反码求和. 如果结果全部为1,就表示数据报没有信息丢失.

让我们来看看:

      发送端:  19 F2  二进制为:   0001 1001 1111 0010

      接受端:    取反后为:             1110 0110 0000 1101

很明显应该是所有位都为1的, 现在看着不算很神奇,但是当初第一个吃这鸡蛋的人,确是有点厉害.

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 家具环保不达标怎么办 买到坏了的食物怎么办 空调检测不合格的怎么办 淘宝卖精仿遇到打假怎么办? 没有收到提货码怎么办 增值税发票超过180天怎么办 花呗借钱还不上怎么办 实体店里没人气怎么办 EMS快件无人签收怎么办 邮政快递丢失了怎么办 快递手机丢了怎么办 拍照签收没收到怎么办 拼多多开店货源怎么办 被购买鉴定投诉怎么办 淘宝上买东西错想用花呗怎么办 淘宝想用花呗买东西差一点怎么办 买了假货怎么办还用吗 免税店买完东西怎么办 淘宝恶意拍单怎么办 二手西服不想要怎么办 苹果8p费电快怎么办 赌博被骗没证据怎么办 异地车子办保险怎么办 淘宝买到旧货怎么办 苹果官网买手机发票怎么办 车子异地换牌照怎么办 汽车异地上保险怎么办 后悔买保险了怎么办 平安run不计步怎么办 天梭力洛克有划痕怎么办 天梭手按钮坏了怎么办 天梭机械表总慢怎么办 买的天梭表没电了怎么办 天猫遇见假货怎么办 苹果六s内存不足怎么办 发票丢了报销怎么办 荣耀v9玩游戏卡怎么办 无极限不退货怎么办 高中想买手机怎么办 发票搞丢了怎么办 买车发票丢失怎么办