实验报告课程名称:计算机网络协议分析实验项目:网际协议IP(C端)姓名:专业:班级:学号:计算机科学与技术学院实验教学中心年月日成绩:哈尔滨理工大学计算机科学与技术学院实验教学中心实验报告实验项目名称:网际协议IP(2学时)一、实验目的1.掌握IP数据报的报文格式2.掌握IP校验和计算方法3.掌握子网掩码和路由转发4.理解特殊IP地址的含义5.理解IP分片过程二、实验内容一、IP报文格式IP数据报是由IP首部加数据组成的。IP首部的最大长度不超过60字节。IP数据报文格式如下图所示:4位版本4位首部长度8位服务类型16位总长度(字节数)16位标识3位标志13位片偏移8位生存时间8位协议类型16位首部检验和32位源IP地址32位目的IP地址选项(如果有)数据哈尔滨理工大学计算机科学与技术学院实验教学中心实验报告二、IP分片链路层具有最大传输单元(MTU)这个特性,它限制了数据帧的最大长度。不同的网络类型都有一个上限值。以太网通常是1500字节。如果IP层有数据包要传输,而数据包的长度超过了MTU,那么IP层就要对数据包进行分片操作。使每一片长度都小于MTU。IP首部中“16位标识”、“3位标志”和“13位片偏移”包含了分片和重组所需的信息。另外,当数据被分片后,每个片的“16位总长度”值要改为该片的长度值。三、IP路由表大部分网络层设备都存储着一张记录路由信息的表格,称为路由表。它由许多条项目组成。网络层设备收到数据报后,根据其目的IP地址查找路由表确定数据报传输的最佳路径(下一跳)。然后利用网络层的协议重新封装数据报,利用下层提供的服务把数据报转发出去。路由表的项目一般含有五个基本字段:目的地址、网络掩码、下一跳地址、接口、度量。路由表按如下顺序匹配:直接交付-特定主机交付-特定网络交付-默认交付四、路由选择过程路由选择模块从IP处理模块接收到IP分组后,使用该分组的目的IP地址同路由表中的每一个项目按特定的顺序(按照前面介绍的“路由表匹配顺序”)查找匹配项,当找到第一个匹配项后就不再继续寻找了,这样就完成了路由选择过程。匹配路由表项的方法是将IP地址与路由表中的一个项目的“子网掩码”进行按位“与”操作,然后判断运算结果是否等于该项目的“目的地址”,如果等于,则匹配成功,否则,匹配失败。哈尔滨理工大学计算机科学与技术学院实验教学中心实验报告三、实验步骤主机B启动静态路由服务(方法:在命令行方式下,输入“staticroute_config”)。按照拓扑结构图连接网络,使用拓扑验证检查连接的正确性。练习一:编辑并发送IP数据报1.主机A启动仿真编辑器,编辑一个IP数据报,其中:MAC层:目的MAC地址:主机B的MAC地址(对应于172.16.0.65接口的MAC)。源MAC地址:主机A的MAC地址。协议类型或数据长度:0800。IP层:总长度:IP层长度。生存时间:128。源IP地址:主机A的IP地址(172.16.0.66)。目的IP地址:主机E的IP地址(172.16.0.130)。哈尔滨理工大学计算机科学与技术学院实验教学中心实验报告校验和:在其他所有字段填充完毕后计算并填充。2.在主机B(两块网卡分别打开两个捕获窗口)、E上启动协议分析器,设置过滤条件(提取IP协议),开始捕获数据。3.主机A发送第1步中编辑好的报文。4.主机B、E停止捕获数据,在捕获到的数据中查找主机A所发送的数据报,并回答以下问题:第1步中主机A所编辑的报文,经过主机B到达主机E后,报文数据是否发生变化?若发生变化,记录变化的字段,并简述发生变化的原因。5.将第2步中主机A所编辑的报文的“生存时间”设置为1。重新计算校验和。6.主机B、E重新开始捕获数据。7.主机A发送第5步中编辑好的报文。8.主机B、E停止捕获数据,在捕获到的数据中查找主机A所发送的数据报。练习二:特殊的IP地址1.直接广播地址。主机A编辑IP数据报1,其中:目的MAC地址:FFFFFF-FFFFFF。源MAC地址:A的MAC地址。源IP地址:A的IP地址。目的IP地址:172.16.0.255。校验和:在其他字段填充完毕后,计算并填充。主机A再编辑IP数据报2,其中:目的MAC地址:主机B的MAC地址(对应于172.16.0.65接口的MAC)。源MAC地址:A的MAC地址。源IP地址:A的IP地址。目的IP地址:172.16.0.255。校验和:在其他字段填充完毕后,计算并填充。2.主机B、C、D、E、F启动协议分析器并设置过滤条件(提取IP协议,捕获172.16.0.66接收和发送的所有IP数据包,设置地址过滤条件如下:172.16.0.66-Any)。主机B、C、D、E、F开始捕获数据。主机A发送这两个数据报。主机B、C、D、E、F停止捕获数据。哈尔滨理工大学计算机科学与技术学院实验教学中心实验报告3.受限广播地址。主机A编辑一个IP数据报,其中:“目的MAC地址”设置为FFFFFF-FFFFFF。“目的IP地址”设置为255.255.255.255。主机B、C、D、E、F重新启动协议分析器并设置过滤条件(提取IP协议,172.16.0.66-Any)。主机B、C、D、E、F重新开始捕获数据。主机A发送这个数据报。主机B、C、D、E、F停止捕获数据。4.环回地址。主机F重新启动协议分析器开始捕获数据并设置过滤条件(提取IP协议)。主机Eping127.0.0.1。主机F停止捕获数据。练习三:IP数据报分片1.在主机B上使用“MTU工具”设置以太网端口的MTU为800字节(两个端口都设置)。2.主机A、B、E启动协议分析器,打开捕获窗口进行数据捕获并设置过滤条件(提取ICMP协议)。3.在主机A上,执行命令ping-l1000172.16.0.130。4.主机A、E停止捕获数据。主机E如下图所示,重新定义过滤条件(取一个ICMP数据包,按照其上层协议IP的Identification字段设置过滤)。5.主机E恢复默认过滤器。主机A、E重新开始捕获数据。6.在主机A上,执行命令ping-l2000172.16.0.130。哈尔滨理工大学计算机科学与技术学院实验教学中心实验报告7.主机A、E停止捕获数据。察看主机A、E捕获到的数据,比较两者的差异,体会两次分片过程。8.主机B上使用“开始\程序\网络协议仿真教学系统通用版\工具\MTU工具”恢复以太网端口的MTU为1500字节。四、实验结果练习一:编辑并发送IP数据报1.【说明】先使用仿真编辑器的“手动计算”校验和,再使用仿真编辑器的“自动计算”校验和,将两次计算结果相比较,若结果不一致,则重新计算。2.IP在计算校验和时包括哪些内容?3.主机B、E是否能捕获到主机A所发送的报文?简述产生这种现象的原因答:IP报文中的首部报文数据发生变化。发生变化的字段有:“生存时间”和“首部校验和”。原因:主机B为路由器,数据包每经过一路由器“生存时间”字段的值会减1,并重新计算校验和。主机B对应于172.16.0.65的接口可以捕获到主机A所发送的报文;主机B对应于172.16.0.129的接口和主机E不能捕获到主机A所发送的报文;原因:当“生存时间”字段的值减至为0时,路由器将该报文丢弃不进行转发。练习二:特殊的IP地址1.记录实验结果:主机号收到IP数据报1主机B的接口1(172.16.0.65)、主机C、主机D收到IP数据报2主机B的接口2(172.16.0.129)、主机E、F;主机B的接口1(172.16.0.65)、主机C、主机D(以上三主机因为与主机A同在一个交换模块上)结合实验结果,简述受限广播地址的作用。答:路由器使用这种地址把一个分组发送到一个特定网络上的所有主机。所有的主机都会收到具有这种类型目的地址的分组。2.记录实验结果:主机号收到主机A发送的IP主机B的接口1(172.16.0.65)、主机C、主机D哈尔滨理工大学计算机科学与技术学院实验教学中心实验报告数据报未收到主机A发送的IP数据报主机B的接口2(172.16.0.129)、主机E、主机F结合实验结果,简述受限广播地址的作用。答:这个地址用于定义在当前网络上的广播地址。一个主机若想把报文发送给所有其他主机,就可使用这样的地址作为分组中的目的地址。但路由器把具有这种类型地址的分组阻挡住,使这样的广播只局限在本地网络。3.环回地址主机F是否收到主机E发送的目的地址为127.0.0.1的IP数据报?为什么?答:主机F没有收到主机E发送的报文,因为使用回环地址时,分组永远不离开这个机器;这个分组就简单地返回到协议软件。哈尔滨理工大学计算机科学与技术学院实验教学中心实验报告练习三:IP数据报分片分析表格内容,理解分片的过程。1.字段名称分片序号1分片序号2分片序号3Identification字段值为一随机数同分片序号1Morefragments字段值10Fragmentoffset字段值0776传输的数据量768bytes232bytes哈尔滨理工大学计算机科学与技术学院实验教学中心实验报告2.字段名称分片序号1分片序号2分片序号3Identification字段值为一随机数同分片序号1同分片序号1Morefragments字段值110Fragmentoffset字段值07761552传输的数据量768bytes776bytes456bytes第一次传输的数据长度为1000bytes,而MTU为800,因此需要进行1次分片;第二次传输的数据长度为2000bytes,而MTU为800,因此需要进行2次分片;Morefragments字段值为1表示之后还有分片;Fragmentoffset字段指明了当前分片包在与其它分片包被重新组装成一个单独数据包时,应该位于数据包的什么位置上。值为8的整数倍。在本实验中,MTU为800,因此传输的数据量最大为800-20(IP首部长度)=780,而780不是8的整数倍,因此分片序号2的Fragmentoffset字段值为776(8的整数倍且最接近780)。