《计算机网络—自顶向下方法》 第四章Wireshark实验:IP

实验描述:

在本实验中,我们将研究 IP 协议,重点关注 IP 数据报(IP datagram)。我们将通过分析在执行 traceroute 程序发送和接收的一系列 IP 数据报的过程来完成这个实验(traceroute 程序本身则是在 Wireshark ICMP 实验中进行了更详细的探讨),我们将研究 IP datagram 中的各个字段(fields),并详细研究 IP fragmentation 的方法。


实验过程:

捕获执行 traceroute 的数据包
为了生成本实验的一系列 IP 数据报,我们将使用 traceroute 程序向不同的目的地 X 发送不同大小的数据报。回想一下,traceroute 通过
首先发送一个或多个带有生存时间(TTL: Time-to-Live)字段设置为 1 的数据报;
然后发送一个或多个带有生存时间(TTL: Time-to-Live)字段设置为 2 的数据报到同一个目的地;
然后发送一个或多个带有生存时间(TTL: Time-to-Live)字段设置为 3 的数据报到同一个目的地,
以此类推,直到目的地真正收到此数据报为止。

回想一下,路由器必须将每个接收到的数据报中的 TTL 减 1。如果 TTL 达到 0,路由器会向来源主机发送 ICMP 消息。由于这种行为,
TTL 为 1 的数据报(由执行 traceroute 的主机发送)将导致距发送方一次跳跃的路由器,将 ICMP TTL 超出的消息发送回发送方主机;
以TTL 为 2 发送的数据报将导致距离为两次跳跃的路由器,将 ICMP 消息发送回发送方主机;
以 TTL 为 3 发送的数据报将导致距离为两次跳跃的路由器,将 ICMP 消息发送回发送方主机,等等。

以这种方式,执行 traceroute 的主机可通过查看包含ICMP TTL 超出消息的数据报中的来源 IP 地址来获知其自身与目的地 X 之间的路由器的身份。

我们想要运行 traceroute 并让它发送各种长度的数据报

Windows 操作系统:Windows 提供的 tracert 程序(曾被使用于我们的 ICMPWireshark 实验中)不允许更改 tracert 程序发送的 ICMP echo 请求(ping)消息的大小。因此,一个更好的 Windows traceroute 程序是 pingplotter,可在 http://www.pingplotter.com 上以免费版和共享软件版本获得
下载并安装pingplotter,并通过对您喜欢的站点执行些 traceroute 来测试它。通过选择菜单项 Edit-> Options-> Packet Options 然后填写 Packet Size 字段,可以在pingplotter 中显式设置 ICMP echo 请求消息的大小。默认数据包大小为 56 个字节。一旦 pingplotter 发送了一系列具有递增的 TTL 值的数据包,它会在等待 Trace Interval 时间后再次以 TTL 为 1 重新启动发送进程。同时,我们可以在 pingplotter 中明确设置 Trace Interval 的值和间隔数。(备注:PinPlotter 5 需要使用到 Standar 版或是 Professional 版才能够自定义 packet 参数,有 14 天的试用版可以使用)

具体的步骤:
  • 启动 Wireshark 并开始数据包捕获(Capture-> Start),然后在 Wireshark 数据包捕获选项屏幕上按 OK(我们不需要在此处选择任何选项)。
    《计算机网络—自顶向下方法》 第四章Wireshark实验:IP_第1张图片

如果您使用的是 Windows 平台,请启动 pingplotter 并在“要跟踪的地址窗口(Address to Trace Window)”中输入目标的名称。在“要跟踪的次数(“# of times to Trace)”字段中输入 3,这样您就不会收集太多数据。选择菜单项编辑 - >高级选项 - >数据包选项(Edit->Advanced Options->Packet Options),然后在数据包大小字段中输入值 56,然后按确定。然后按 Trace 按钮。你应该看到一个看起来像这样的 pingplotter 窗口:(备注:新版 PingPlotter5 中没有跟踪次数的设定,可以在 count 到达 3 的时候按下暂停键,停止收集数据包)

我先给个下载链接:http://xiazai.zol.com.cn/detail/28/277370.shtml#hotArticle

  • 输入要跟踪的地址:www.gotokeep.com
    《计算机网络—自顶向下方法》 第四章Wireshark实验:IP_第2张图片

  • 将包的大小设置为56Byte
    《计算机网络—自顶向下方法》 第四章Wireshark实验:IP_第3张图片

  • 点击new trace开始运行(当运行到Count=3时右击抓取的数据手动pause
    《计算机网络—自顶向下方法》 第四章Wireshark实验:IP_第4张图片
    《计算机网络—自顶向下方法》 第四章Wireshark实验:IP_第5张图片

  • 重复以上两步 两次,分别设置包的大小为2000Byte和3500Byte

2000Byte:
《计算机网络—自顶向下方法》 第四章Wireshark实验:IP_第6张图片
3500Byte:
《计算机网络—自顶向下方法》 第四章Wireshark实验:IP_第7张图片

上面的过程其实就是:开启WireShark,然后进行三次以不同的包的大小(56、2000、3500 Bytes),来跟踪同一个网站同时抓取其中的数据包来进行IP协议的分析

如果您无法在实际的网络连接上运行 Wireshark,则可以下载在作者的某台Windows 计算器上执行上述骤时捕获的数据包跟踪文件。当您探索下面的问题时,即使您已经捕获了自己的跟踪数据并使用它,如同您自己的跟踪数据一般,您也可能会发现下载此跟踪数据对你的实验很有帮助。

所以说我自己的数据没有抓取好,步骤有点搞乱了,所以我也用的官方提供的数据包。

在您的跟踪数据包中,您应该能够看到**计算器发送的一系列的 ICMP Echo 请求讯息(在 Windows 下)**或 UDP 区段(在 Unix 下)以及由中间路由器发送到计算器的 ICMP TTL 超出的讯息。在下面的问题中,我们假设您使用的是 Windows 机器;对于 Unix 机器的相应问题应该是清楚的。

这是我自己的在实验过程中(在windows下),抓取的包:
《计算机网络—自顶向下方法》 第四章Wireshark实验:IP_第8张图片

这是官方提供的包,下面的回答问题都是基于这个数据包
《计算机网络—自顶向下方法》 第四章Wireshark实验:IP_第9张图片> PingPlotter是通过ICMP协议发送不同TLL值的ping包,来计算和获取访问网站的所经过路由。

TTL是存活时间,每经过一次路由器,TLL-1,当其减为0的时候,路由会丢带这个包并且发出TLL超时给原始的发出者,防止死包耗尽网络资源。然后每次PingPlotter都会发送起始从TLL=1的数据包,然后逐渐增大TTL,用来获取所访问网站经过的路由。但是有些路由会因为安全不回应这些包,所以还会看到有些请求没有回复,而TLL会持续增加获取下一条路由的回复。


回答问题:

  1. 选择计算机发送的第一个 ICMP Echo Request 消息,然后在 packet details window 中展开数据包的 Internet 协议部分。您的计算机的 IP 地址是多少

答:IP地址:192.168.1.102

  1. 在 IP header 中,上层协议字段的值是多少?

答:上层协议就是ICMP(如果是Unix下做的实验就是UDP),值为1。
《计算机网络—自顶向下方法》 第四章Wireshark实验:IP_第10张图片

IP中封装的ICMP本身就是值为1的。
《计算机网络—自顶向下方法》 第四章Wireshark实验:IP_第11张图片

  1. IP header 有多少 bytes? IP datagram 的有效负载中有多少 bytes? 说明如何确定 payload bytes 的数。

答:Header Length:20 bytes IP数据报总长度 = IP头长度 + IP数据长度(就是有效负载)
IP datagram payload bytes:64bytes
方法1:
IP datagram payload bytes = Total Length - Header Length = 84 - 20 = 64
《计算机网络—自顶向下方法》 第四章Wireshark实验:IP_第12张图片《计算机网络—自顶向下方法》 第四章Wireshark实验:IP_第13张图片

方法2:
IP数据报的有效负载,这里装的就是ICMP数据报,所以看ICMP占多少字节即可。
《计算机网络—自顶向下方法》 第四章Wireshark实验:IP_第14张图片

  1. 此 IP 数据报是否已被分段(fragmented)?解释您如何确定数据报是否已被分段(fragmented)。

答:
这里的IP数据报没有被分段, 因为Fragment offset = 0,分段的偏移量为0,所以没有分段,而且More fragments也是为Not set,表示没有设置分段。
《计算机网络—自顶向下方法》 第四章Wireshark实验:IP_第15张图片


接下来,通过单击 Source 列标题,根据 IP 源地址对跟踪的数据包进行排序,一个小的向下箭头应出现在 Source 旁边,如果箭头指向上方请再次单击“Source column header”。选择计算器发送的第一个 ICMP Echo Request 消息,然后展开“details ofselected packet header”窗口中的 Internet 协议部分。在“listing of captured packets”窗口中,您应该在第一个 ICMP 下面看到所有后续 ICMP 消息(可能还有计算器上运行的其他协议发送的其他散布数据包),使用向下箭头浏览计算器发送的 ICMP 消息。
《计算机网络—自顶向下方法》 第四章Wireshark实验:IP_第16张图片

  1. 在您的计算器发送的这一系列 ICMP 消息中,IP 数据报中的哪些字段 一直在改变?

答:发送的ICMP Echo(ping)request:标识号Identification、校验和Header checksum、存活时间TTL 不会改变
《计算机网络—自顶向下方法》 第四章Wireshark实验:IP_第17张图片《计算机网络—自顶向下方法》 第四章Wireshark实验:IP_第18张图片
《计算机网络—自顶向下方法》 第四章Wireshark实验:IP_第19张图片

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

答:《计算机网络—自顶向下方法》 第四章Wireshark实验:IP_第20张图片

  1. 描述您在 IP datagram 的 Identification field 中的值中所看到的下一步(数据包仍按来源地址排序)查找最近的(第一跳)路由器发送到您的计算器的一系列 ICMP TTL 超时的回复讯息。

答:每个IP数据报的标识号是不同的,用于区分每个IP数据报和处理IP分片。
《计算机网络—自顶向下方法》 第四章Wireshark实验:IP_第21张图片
《计算机网络—自顶向下方法》 第四章Wireshark实验:IP_第22张图片

  1. ID 字段和 TTL 字段的值是多少?

答:这道题问的是 第一个返回超时路由返回给我们的IP报信息,因为只有IP才有TTL生存时间。
ID字段:0xa60b
TTL字段:244《计算机网络—自顶向下方法》 第四章Wireshark实验:IP_第23张图片

  1. 对于最近(第一跳)路由器发送到您的计算器的所有 ICMP TTL 超出的回复,哪些值是否保持不变?为什么?

答:【没看懂】

单击“时间”列,再次按时间对数据包列表进行排序。
《计算机网络—自顶向下方法》 第四章Wireshark实验:IP_第24张图片

  1. 在将 pingplotter 中的数据包大小更改为 2000 后,查找计算机发送的第一个ICMP Echo Request 消息。该消息是否已碎片化为多个 IP 数据报?(如果计算机具有以太网接口,则数据包大小为2000 会导致碎片。)

答:
可以很明显的看到原本的IP数据报已经被分段为三个部分,#363、#364、#365《计算机网络—自顶向下方法》 第四章Wireshark实验:IP_第25张图片

  1. 打印出碎片 IP 数据报的第一个片段。 IP 头中的哪些信息表明数据报已碎片化? IP 头中的哪些信息表明这是第一个片段还是后一个片段? 这个 IP 数据报有多长?

答:
如下图就是IP数据报的第一个片段,其中的Flags已经表明了数据报已被分段,可以根据Flags下面的偏移量来判断是第一个数据报片段,这个IP数据报的长度为1500字节(20字节的报头+1480字节的数据段)
《计算机网络—自顶向下方法》 第四章Wireshark实验:IP_第26张图片
《计算机网络—自顶向下方法》 第四章Wireshark实验:IP_第27张图片

  1. 打印出碎片 IP 数据报的第二个片段。 IP 标头中的哪些信息表明这不是第一个数据报片段? 是否还有更多的片段? 你是如何知道的?

答:同上面一个可以看IP报头中的Flags字段中的展开项中的偏移量来确定这是第二个数据段。根据#365片段中可以看出363~365这三个片段属于一个一个数据报的分段。
《计算机网络—自顶向下方法》 第四章Wireshark实验:IP_第28张图片
《计算机网络—自顶向下方法》 第四章Wireshark实验:IP_第29张图片

  1. 在第一个和第二个片段中,IP 标头中哪些字段发生了变化?

答:Flags字段和Checksum校验和字段发生了变化。
《计算机网络—自顶向下方法》 第四章Wireshark实验:IP_第30张图片
《计算机网络—自顶向下方法》 第四章Wireshark实验:IP_第31张图片

14.从原始数据报创建了多少个片段?

答:三个片段
《计算机网络—自顶向下方法》 第四章Wireshark实验:IP_第32张图片

  1. 片段中 IP 标头中的哪些字段发生了变化?

答:总长度Total Length、标志Flags、首部校验和Header checksum


参考资料:

https://github.com/moranzcw/Computer-Networking-A-Top-Down-Approach-NOTES

你可能感兴趣的:(---计算机网络(实验)---)