目的
(1)掌握IP协议的作用和格式;
(2)理解IP数据包首部各字段的含义;
(3)掌握IP数据包首部校验和的计算方法。
工具
(1)软件工具:抓包分析工具(wireshark);
(2)操作系统:Windows7 Dos ;
(3)局域网环境。
原理
(1)IP协议位于网络层,是TCP/IP协议簇中的核心协议,提供数据传输 的最基本服务,是实现网络互联的基本协议。
(2)IP数据报格式如下:
(3)校验和算法
IP校验和主要是用来保证数据(IP报头)的完整性的。它用的算法非常简单, 就是反码求和校验。需要注意的是反码求和又叫1的补码(one'scomplement), 而2的补码就是我们通常说的补码求和了。校验算法具体如下。
①发送方
1)将校验和字段置为0,然后将IP包头按16比特分成多个单元,如包头长度 不是16比特的倍数,则用0比特填充到16比特的倍数;
2)对各个单元采用反码加法运算(即高位溢出位会加到低位,通常的补码运算 是直接丢掉溢出的高位),将得到的和的反码填入校验和字段;
3)发送数据包。
②接收方
1)将IP包头按16比特分成多个单元,如包头长度不是16比特的倍数,则用 0比特填充到16比特的倍数;
2)对各个单元采用反码加法运算,检查得到的和是否符合是全1(有的实现可 能对得到的和会取反码,然后判断最终值是不是全0);
(4)对IP首部检验和的算法如下:
1)把IP数据包的校验和字段置为0;
2)把首部看成以16位为单位的数字组成,依次进行二进制求和(注意:求和 时应将最高位的进位保存,所以加法应采用32位加法);
3)将上述加法过程中产生的进位(最高位的进位)加到低16位(采用32位加 法时,即为将高16位与低16位相加,之后还要把该次加法最高位产生的 进位加到低16位)
4)将上述的和取反,即得到校验和。
(1)打开抓包工具软件(Wireshark),选择菜单命令“Capture”“Interfaces…”子菜单项。弹出“Wireshark: Capture Interfaces”对话框。选择网络接口,单击“Start”按钮开始网络数据包捕获。
(2)浏览外部网站,确保协议分析软件能够捕获足够的网络数据包,单击“Stop”按钮,中断网络协议分析软件的捕获进程,主界面显示捕获到的数据包。
几乎所有的高层协议都使用IP协议进行网络传输,只有ARP和RARP报文不被封装在IP数据报中。
(3)观察协议树区中IP数据包各个字段的长度与值,是否符合IP报文格式。
IP源:112.237.231.93,目标:223.202.6.27
Version(版本):一个4字节的字段。IPv4。
报头长度:一个8字节的字段,上图为20字节
总长度:一个16字节的字段,表示整个数据包的长度。包括数据和报头。
在上图中该值为518。
(4)查看各个IP数据包的标识字段和片偏移字段,它们有何特征。
标识字段:不确定
片偏移字段:都为零
(5)查看各个IP数据包的数据报总长度字段,记录它的取值范围。
60 328 53 71 40 158 1480 192 52 63
(6)观察十六进制对照区,根据IP首部校验和方法使用“计算器”校验捕获的数据报中校验和字段的值。
对如图十六进制数据求反码校验和:0x4500,0x0206,0x04f3,0x4000,0x8006,
0xb5ce,0x70ed,0xe75d,0xdfca,0x061b
相加总和:3ffed
总结:
通过wireshark软件的使用加深对此的了解(报头长度,版本,总长度)。通过浏览网页产生大量数据包。应该多捕捉多一些包,并去了解每个字段的含义。
----说明----这是自己计算机网络实验课制作的,哈哈