熟悉 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
143-20=117
没有分片flag字段为0,偏移为0;
必须保持不变: Flags、Protocol、Total Length、Header Length源地址、目的地址保持不变ttl、Identification,seq,checksum必须变化traceroute 可能就会改了。不变:全长,标识符,分片偏移,源地址,目的地址,显示拥塞通告
Identification字段值逐个加1
一个ICMP TTL-Exceeded消息中IP数据报头部的Identification字段是40316,TTL字段的值是255
Id是27206,ttl是128;
都发生改变. 2. 执行 ping 命令并捕获数据包 由于tracert命令无法更改包大小,所以用ping命令发送不同大小数据包观察现象。清除掉之前的捕获结果,启动Ethereal开始捕获,打开CMD命令窗口,输入命令,ping一个网址。例如:ping www.qq.com -l 2000,(注意命令中-l是小写的字母L,不是数字1),然后停止Ethereal捕获。点击Time时间栏,以按时间排序分组列表。分析并回答下列问题:
大于一,被分为2个
数据报的Flag字段如果是1的话表示被分片了,如果Flags=1,MF=1时表示该片为第一片,当MF=0时表示为最后一片,分片前数据报的长度是1500More fragments字段为 1 表示 Set,即该数据包被分片,第一分片。
答:Fragment Offset 字段表示偏移量,1456 bytes 的偏移量表示是上一个片段的后续。没有更多片段了,因为 More fragments 字段为 Not set,表示后面没有分片了。
答;Fragment offset,More fragments,Total Length,Header checksum,。fragment offset等
答:三片
Fragment offset字段都发生变化,Header checksum 不同
在进行实验后,我得出以下总结:IP(Internet Protocol)协议是互联网中用于数据传输的一种网络层协议。它负责将数据包从源地址传输到目标地址IP分片和重组:IP协议支持数据包的分片和重组。当数据包的大小超过网络链路的最大传输单元(MTU)时,IP协议会将数据包分割成更小的片段,并在目标主机上重新组装。这种机制有助于解决不同网络链路之间的不一致性。 实验过程可以帮助我们加深对实验的理解,发现实验的优点和不足总的来说,IP协议是互联网中最基础也是最重要的协议之一。它负责连接和传输数据,使得网络中的各个设备能够相互通信。了解IP协议以及其特点对于理解互联网通信机制和网络故障排查都非常重要。 |
IP 协议分析
最新推荐文章于 2024-03-10 17:19:21 发布