- 实验目的
1. 掌握 IP 数据报的报文格式
2. 掌握 IP 校验和计算方法
3. 掌握子网掩码和路由转发
4. 理解特殊 IP 地址的含义
5. 理解 IP 分片过程
6. 理解协议栈对 IP 协议的处理方法
7. 理解 IP 路由表作用以及 IP 路由表的管理
- 实验环境
该实验采用网络结构二
- 实验内容
练习一:编辑并发送 IP 数据报
各主机打开工具区的“拓扑验证工具”,选择相应的网络结构,配置网卡后,进行拓扑验证,如果通过拓扑验证,关闭工具继续进行实验,如果没有通过,请检查网络连接。本练习将主机 A、B、C、D、E、F 作为一组进行实验。
- 主机 B 在命令行方式下输入 staticroute_config 命令,开启静态路由服务。
- 主机 A 启动协议编辑器,编辑一个 IP 数据报,其中:
MAC 层:
目的 MAC 地址:主机 B 的 MAC 地址(对应于 172.16.1.1 接口的 MAC)。
源 MAC 地址:主机 A 的 MAC 地址。
协议类型或数据长度:0800。
IP 层:
总长度:IP 层长度。
生存时间:128。
源 IP 地址:主机 A 的 IP 地址(172.16.1.2)。
目的 IP 地址:主机 E 的 IP 地址(172.16.0.2)。
校验和:在其它所有字段填充完毕后计算并填充。
自定义字段:
数据:填入大于 1 字节的用户数据。
「说明」先使用协议编辑器的“手动计算”校验和,再使用协议编辑器的“自动计算”校验和,将两次计算结果相比较,若结果不一致,则重新计算。
- IP 在计算校验和时包括哪些内容?
- IP计算校验和包括在主机端计算校验和和在接收端计算校验和两部分:在发送端先计算校验和,并把得到的结果与数据包一起发送出去。接收端对整个数据包重复进行同样的计算。若得到的结果正确则接受这个数据包;否则就把它丢弃。
- 在主机 B(两块网卡分别打开两个捕获窗口)、E 上启动协议分析器,设置过滤条件(提取 IP 协议),开始捕获数据。
- 主机 A 发送第 1 步中编辑好的报文。
- 主机 B、E 停止捕获数据,在捕获到的数据中查找主机 A 所发送的数据报,并回答以下问题:
- 第 1 步中主机 A 所编辑的报文,经过主机 B 到达主机 E 后,报文数据是否发生变化?若发生变化,记录变化的字段,并简述发生变化的原因。
- 发生了变化。B和E收到的报文MAC地址不同,A到B的传输B收到的是B在A所属子网的MAC地址,而E收到的是A在所属E的子网中的另一个MAC地址。另外,生存时间不一样。
- 将第 1 步中主机 A 所编辑的报文的“生存时间”设置为 1,重新计算校验和。
- 主机 B、E 重新开始捕获数据。
- 主机 A 发送第 5 步中编辑好的报文。
- 主机 B、E 停止捕获数据,在捕获到的数据中查找主机 A 所发送的数据报,并回答以下问题:
- 主机 B、E 是否能捕获到主机 A 所发送的报文?简述产生这种现象的原因
- B可以捕获到A的报文,但是E捕获不到,由于超出生存时间,被丢弃。
练习二:特殊的 IP 地址
- 直接广播地址
- 主机 A 编辑 IP 数据报 1,其中:
目的 MAC 地址:FFFFFF-FFFFFF。
源 MAC 地址:A 的 MAC 地址。
源 IP 地址:A 的 IP 地址。
目的 IP 地址:172.16.1.255。
自定义字段数据:填入大于 1 字节的用户数据。
校验和:在其它字段填充完毕后,计算并填充。
- 主机 A 再编辑 IP 数据报 2,其中:
目的 MAC 地址:主机 B 的 MAC 地址(对应于 172.16.1.1 接口的 MAC)。
源 MAC 地址:A 的 MAC 地址。
源 IP 地址:A 的 IP 地址。
目的 IP 地址:172.16.0.255。
自定义字段数据:填入大于 1 字节的用户数据。
校验和:在其它字段填充完毕后,计算并填充。
- 主机 B、C、D、E、F 启动协议分析器并设置过滤条件(提取 IP 协议,捕获
172.16.1.2 接收和发送的所有 IP 数据包,设置地址过滤条件如下:172.16.1.2<->Any)。
- 主机 B、C、D、E、F 开始捕获数据。
- 主机 A 同时发送这两个数据报。
- 主机 B、C、D、E、F 停止捕获数据。
- 记录实验结果
表 3-4 实验结果
主机号 | |
收到 IP 数据报 1 | |
收到 IP 数据报 2 | BCDEF |
- 结合实验结果,简述直接广播地址的作用。
- 所谓广播地址指同时向指定网上所有的主机发送报文,也就是说,不管物理网络特性如何,internet网支持广播传输。
- 受限广播地址
- 主机 A 编辑一个 IP 数据报,其中:
目的 MAC 地址:FFFFFF-FFFFFF。
源 MAC 地址:A 的 MAC 地址。
源 IP 地址:A 的 IP 地址。
目的 IP 地址:255.255.255.255。
自定义字段数据:填入大于 1 字节的用户数据。
校验和:在其它字段填充完毕后,计算并填充。
- 主机 B、C、D、E、F 重新启动协议分析器并设置过滤条件(提取 IP 协议,捕获 172.16.1.2 接收和发送的所有 IP 数据包,设置地址过滤条件如下:172.16.1.2<->Any)。
- 主机 B、C、D、E、F 重新开始捕获数据。
- 主机 A 发送这个数据报。
- 主机 B、C、D、E、F 停止捕获数据。
- 记录实验结果
表 3-5 实验结果
主机号 | |
收到主机 A 发送的 IP 数据报 | BCDEF |
未收到主机 A 发送的 IP 数据报 |
- 结合实验结果,简述受限广播地址的作用。
- 不被路由支持,只作本地广播。
- 环回地址
- 主机 E 重新启动协议分析器开始捕获数据并设置过滤条件(提取 IP 协议)。
- 主机 E ping 127.0.0.1。
- 主机 E 停止捕获数据。
- 主机 F 是否收到主机 E 发送的目的地址为 127.0.0.1 的 IP 数据报?为什么?
- 收不到。因为使用还回地址,我们可以实现在同一台主机上实现CLIENT和SERVER。
思考问题:
- 受限广播地址的作用范围?
- 同一子网。
- 受限广播地址和直接广播地址的区别?
- 广播地址是一种特殊的IP地址形式,一种是直接广播地址,一种是有限广播地址。直接广播地址包含一个有效的网络号和一个全“1”的主机号,如你说的202.163.30.255,255就是一个主机号,202则是C类的IP地址,C类IP地址就是我们常接触到的。受限广播地址是32位全1的IP地址(255.255.255.255)。受限的广播地址是255.255.255.255。该地址用于主机配置过程中IP数据报的目的地址,此时,主机可能还不知道它所在网络的网络掩码,甚至连它的IP地址也不知道。在任何情况下,路由器都不转发目的地址为受限的广播地址的数据报,这样的数据报仅出现在本地网络中。
- 路由器转发受限广播吗?
- 否。
练习三:IP 数据报分片
本练习将主机 A、B、C、D、E、F 作为一组进行实验。
- 在主机 B 上使用“实验平台上工具栏中的 MTU 工具” 设置以太网端口的 MTU 为800 字节(两个端口都设置)。
- 主机 A、B、E 启动协议分析器,打开捕获窗口进行数据捕获并设置过滤条件(提取 ICMP 协议)。
- 在主机 A 上,执行命令 ping -l 1000 172.16.0.2。
- 主机 A、B、E 停止捕获数据。在主机 E 上重新定义过滤条件(取一个 ICMP 数据包,按照其 IP 层的标识字段设置过滤),如图所示:
- 将 ICMP 报文分片信息填入下表,分析表格内容,理解分片的过程。
表 3-6 实验结果
字段名称 | 分片序号 1 | 分片序号 2 |
“标识”字段值 | 802 | 802 |
“还有分片”字段值 | 1 | 0 |
“分片偏移量”字段值 | 0 | 97 |
传输的数据量 | 252 | 796 |
- 主机 E 恢复默认过滤器。主机 A、B、E 重新开始捕获数据。
- 在主机 A 上,执行命令 ping -l 2000 172.16.0.2。
- 主机 A、B、E 停止捕获数据。察看主机 A、E 捕获到的数据,比较两者的差异,体会两次分片过程。
- 主机 B 上使用“实验平台上工具栏中的 MTU 工具”恢复以太网端口的 MTU 为 1500 字节。
思考问题:
- Ping 的数据部分为 3000 字节,回显请求报文为何被分为 3 片而不是 2 片?数据部分长度为多少时报文正好被分为 2 片?
- MTU 限制单片数据报最大传输量为 1500 股总数据了量大于 3020 字节,故会被分为字节,而传输的数据包中包含3 片。
- 不同协议的 MTU 的范围从 296 到 65535,使用大的 MTU 有什么好处?使用小的 MTU 有什么好处?
- 大的 MTU 可以一次性传输更多的数据,有助于网络畅通的数据传输小的 MTU 将大文件分多片传送,有助于网络缓慢的数据传输。
练习四:IP 数据包接收与发送
本练习将主机 A、B、C、D、E、F 作为一组进行实验。
- 所有主机取消网关。
- 主机 A、C、E 设置子网掩码为 255.255.255.192,主机 B(172.16.1.1)、D、F 设置子网掩码为 255.255.255.224。
- 主机 A ping 主机 B(172.16.1.1),主机 C ping 主机 D(172.16.1.4),主机 E ping主机 F(172.16.0.3)。
- 记录实验结果
表 3-7 实验结果
是否 ping 通 | |
主机 A----主机 B | 不通 |
主机 C----主机 D | 通 |
主机 E----主机 F | 通 |
- 请问什么情况下两主机的子网掩码不同,却可以相互通信?
- 两主机连在一个分享模块上的时候。
- 主机 B 在命令行方式下输入 recover_config 命令,停止静态路由服务。
- 所有主机恢复到网络结构二的配置。