IP 协议分析

  • 实验目的

熟悉 IPv4 数据报格式,分析 IP 协议

  • 实验平台与实验设备(或实验环境)

与因特网连接的计算机网络系统;主机操作系统为 windows;Wireshark 软件

  • 实验内容与实验步骤(如:任务、基本原理、软硬件设计、网络拓扑图、流程图、代码等)

在本次实验中,我们将探讨 IP 协议,对 IP 数据报进行重点分析。我们将通过分析由跟踪执行 traceroute 程序发送和接收捕获得到的 IP 数据报,深入研究在 IP 数据报中的各种字段。这个实验开始之前,你可能需要查看书中第一章中关于 traceroute 程序的操作,你还可以通过 RFC2151 中的 3.4 小节中的文档学习一下 traceroute [网址:ftp://ftp.rfc-editor.org/in-notes/rfc2151.txt ]。你还可以阅读的课本中 4.3 节,以及RFC 791 中的文档[网址:ftp://ftp.rfc-editor.org/in-notes/rfc791.txt ],为研究 IP 协议做准备。

1. 执行 traceroute 程序并捕获数据包为了产生本次实验需要的 IP 数据报,我们将使用 traceroute 程序来实现向一些目的主机发送不同大小的数据包。回想一下 traceroute 的运作方法:它首先发送一个或多个 IP 头部的 TTL 字段设置为 1 的数据报,随后发出了一个或多个TTL 值为 2 的一系列数据报到相同目的主机,然后发出了一个或多个 TTL 值为

3 的一系列数据报到相同目的主机,依此类推。一个路由器每收到一个数据报时都必须把 TTL 值减 1,如果 TTL 为 0 时,一个 ICMP 消息((type 11 – TTL-exceeded)将被路由器发送到源主机。由于这个原因,一个 TTL 为 1(由执行traceroute 的主机发送)的数据报由源主机发送后,将导致路由器在一跳后发送一个 ICMP TTL-exceeded 信息到给源主机; 发送 TTL 值为 2 的数据报会导致路由器两跳后发送一个 ICMP 信息到源主机;依此类推。在这种方式下,通过从源主机与目的主机中的路由器返回的 ICMP 数据报,主机执行的 traceroute 可以了解源主机和目的主机之间的路由器的 IP 地址。我们将要运行 traceroute 程序,对于 Windows 系统,它提供的命令为tracert。对于 Linux/Unix/MacOS,使用 Unix / MacOS 的 traceroute 命令。下面以 windows 操作系统为例,首先启动 Ethereal 开始捕获,然后打开 CMD 命令窗口,输入命令,跟踪一个网址。例如:tracert www.qq.com。等待全部跟踪完,停止 Ethereal 捕获。跟踪捕获时,你应该能够看到你计算机发出的ICMP Echo Request和中间路由器发回到你计算机的ICMP TTL-exceeded的消息。

只要有可能,实验时应该打印输出所捕获到的数据报,以便在回答下面问题时用到。要打印一个数据包,使用File->Print, 选择 Selected packet only, 选择Packet summary line,选择分组明细中的最小数量,版本(Version):占 4 bit,通信双方使用的版本必须一致,对于 IPv4 字段的值是4;首部长度(Internet Header Length, IHL):占 4 bit,首部长度说明首部有多少 32 位字(4字节)。由于IPv4首部可能包含数目不定的选项,这个字段也用来确定数据的偏移量;区分服务(Differentiated Services,DS):占 6 bit,只有在使用区分服务时,这个字段才起作用,在一般的情况下都不使用这个字段;

保持不变:显式拥塞通告( Explicit Congestion Notification,ECN):允许在不丢弃报文的同时通知对方网络拥塞的发生。全长(Total Length):占 16 位字段,定义了报文总长,包含首部和数据,单位为字节。这个字段的最小值是 20(0 字节数据),最大值是65535。标识符(Identification):占16位,这个字段主要被用来唯一地标识一个报文的所有分片,因为分片不一定按序到达,所以在重组时需要知道分片所属的报文。分片偏移 (Fragment Offset):这个13位字段指明了每个分片相对于原始报文开头的偏移量,以8字节作单位。源地址:报文的发送端;

目的地址:报文的接收端;

选项:附加的首部字段可能跟在目的地址之后;

必须更改:

标识符(Identification):占 16 位,主要被用来唯一地标识一个报文的所有分片;

完成下面的问题:

  • 实验数据和结果分析与实验思考题的回答(最好有实验截图)
  1. 使用ipconfig命令查看自己的IP地址,并记下来。

  1. 选择你的主机所发出的第一个ICMP Echo Request消息,扩展分组明细栏中展开IP协议部分。核对源IP与自己IP是否一致?若不一致,说明数据包找错了。

  1. 在IP数据包头部,在上层协议字段的值是什么?

值为1

  1. 在IP头部有多少字节?IP数据包有多少个字节的有效载荷(payload ofthe IP datagram)?解释你是怎样确定有效载荷的字节数的。

143-20=117

  1. 这个IP数据报被分段(或称为分片)了吗?解释你是如何确定数据报是否被分段了的下一步,通过点击Source列标题,按源IP地址对跟踪到得分组降序排序(会出现一个小的向下的箭头,如果箭头向上,请点击Source栏以改变箭头朝向)。选择发送您的计算机第一个ICMP Echo Request消息,在分组明细栏中展开IP协议部分。在“listing of captured packets”窗口中,你应该看到第一个ICMP消息后的所有后续ICMP消息。使用向下箭头移动到你主机发出的ICMP消息。

没有分片flag字段为0,偏移为0;

  1. 在你主机发出的一系列ICMP消息中,数据报中哪些字段在一个数据报到下一个数据报时总是变化的?

  1. 哪些字段保持不变?哪些字段必须保持不变?哪些字段必须改变?为什么?

必须保持不变:

Flags、Protocol、Total Length、Header Length源地址、目的地址保持不变ttl、Identification,seq,checksum必须变化traceroute 可能就会改了。不变:全长,标识符,分片偏移,源地址,目的地址,显示拥塞通告

  1. 根据在IP数据报中标识字段(Identification field)看到的一系列值,描述其变化的模式。

Identification字段值逐个加1

  1. 接下来,分组仍然按源地址排序,找出最近的路由器(第一跳路由器)所发回的ICMP TTL-exceeded系列消息。

一个ICMP TTL-Exceeded消息中IP数据报头部的Identification字段是40316,TTL字段的值是255

  1. 标识字段(Identification field)和TTL字段的值是什么?

Id是27206,ttl是128;

  1. 最 近 的 路 由 器 发 回 的 所 有 ICMP TTL-exceeded 消 息 的 标 识 字 段(Identification field)和TTL字段的值都保持不变吗?

都发生改变.

2. 执行 ping 命令并捕获数据包

由于tracert命令无法更改包大小,所以用ping命令发送不同大小数据包观察现象。清除掉之前的捕获结果,启动Ethereal开始捕获,打开CMD命令窗口,输入命令,ping一个网址。例如:ping www.qq.com -l 2000,(注意命令中-l是小写的字母L,不是数字1),然后停止Ethereal捕获。点击Time时间栏,以按时间排序分组列表。分析并回答下列问题:

  1. 找到你的主机发出的第一个ICMP Echo Request message。这个消息被分片为大于1个IP数据报了吗?

大于一,被分为2个

  1. 找到IP分片的第一个分片。IP数据报头部的什么信息表明数据报被分片了?IP数据报头部的什么信息表明这个分片是第一个分片还是后续的分片?

数据报的Flag字段如果是1的话表示被分片了,如果Flags=1,MF=1时表示该片为第一片,当MF=0时表示为最后一片,分片前数据报的长度是1500More fragments字段为 1 表示 Set,即该数据包被分片,第一分片。

  1. 找到IP分片中的第二个分片。IP头部的什么信息表明这个分片不是第一个分片?后面是否还有其他分片?

答:Fragment Offset 字段表示偏移量,1456 bytes 的偏移量表示是上一个片段的后续。没有更多片段了,因为 More fragments 字段为 Not set,表示后面没有分片了。

  1. 第一个分片和第二个分片中的IP头部中,哪些字段有变化?清除掉之前的捕获结果,重新捕获,并把 -l 后面的参数2000改为3500,即发送3500字节的包。找到你计算机发出的第一个ICMP Echo Request message。

答;Fragment offset,More fragments,Total Length,Header checksum,。fragment offset等

  1. 原数据报一共分成了多少片?

答:三片

  1. 在这些分片的数据报IP头部信息中,哪些字段有变化?

Fragment offset字段都发生变化,Header checksum 不同

  • 实验总结与体会

在进行实验后,我得出以下总结:IP(Internet Protocol)协议是互联网中用于数据传输的一种网络层协议。它负责将数据包从源地址传输到目标地址IP分片和重组:IP协议支持数据包的分片和重组。当数据包的大小超过网络链路的最大传输单元(MTU)时,IP协议会将数据包分割成更小的片段,并在目标主机上重新组装。这种机制有助于解决不同网络链路之间的不一致性。

实验过程可以帮助我们加深对实验的理解,发现实验的优点和不足总的来说,IP协议是互联网中最基础也是最重要的协议之一。它负责连接和传输数据,使得网络中的各个设备能够相互通信。了解IP协议以及其特点对于理解互联网通信机制和网络故障排查都非常重要。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

是阿宇呢

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值