《计算机网络—自顶向下方法》 Wireshark实验(六):IP 协议分析

这篇具有很好参考价值的文章主要介绍了《计算机网络—自顶向下方法》 Wireshark实验(六):IP 协议分析。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

        IP 协议(Internet Protocol),又译为网际协议或互联网协议,是用在 TCP/IP 协议簇中的网络层协议。主要功能是无连接数据报传送、数据报路由选择和差错控制。IP 协议是 TCP/IP 协议族的核心协议,其主要包含两个方面:

  1. IP 头部信息。IP 头部信息出现在每个 IP 数据报中,用于指定 IP 通信的源端 IP 地址、目的端 IP 地址,指导 IP 分片和重组,以及指定部分通信行为; IP 协议分为 IPv4 版本和 IPv6 版本。

  2. IP数据报的路由和转发。IP数据报的路由和转发发生在除目标机器之外的所有主机和路由器上。它们决定数据报是否应该转发以及如何转发;

        IP 的主要目的是通过一个互联的网络传输数据报,涉及两个最基本的功能:

  • 寻址( Addressing ):IP 协议根据数据报首部中包括的目的地址将数据报传送到目的节点,这就要涉及传送路径的选择,即路由功能。IP 协议使用 IP 地址来实现路由;
  • 分片( Fragmentation ):IP 协议还提供对数据大小的分片和重组,以适应不同网络对数据包大小的限制。如果网络只能传送小数据包,IP 协议将对数据报进行分段并重新组成小块再进行传送。

        要注意的是:IP 协议提供尽最大努力投递( Best-effort Delivery )的传输服务,是不可靠无连接的数据报服务。源主机只是简单地将 IP 数据报发送出去,数据报传输路由可以完全不同,数据报抵达的先后顺序也不确定。不可靠性则是指数据报在传输过程中可能会出现丢失、重复、延迟时间大或者次序混乱等现象,但 IP 协议并不进行检查,不回送确认,也没有流量控制和差错控制功能。如果数据报在传输中发生某种错误,如某个路由器暂时用完了缓冲区,IP 有一个简单的错误处理算法:丢弃该数据报,然后发送 ICMP 消息报给信源端。因此,要实现数据报的可靠传输,就必须依靠高层的协议或应用程序,如传输层的 TCP 协议。

1 IP协议分析

1.1 IP数据包

        IP 协议提供的数据传送服务是不可靠和无连接的,具体表现如下:

  • 不可靠(unreliable):IP 协议不能保证数据报能成功地到达目的地,它仅提供传输服务。当发生某种错误时,IP 协议会丢弃该数据报。传输的可靠性全由上层协议来提供。
  • 无连接(connectionless):IP 协议对每个数据报的处理是相互独立的。这也说明,IP 数据报可以不按发送顺序接收。如果发送方向接收方发送了两个连续的数据报(先是 A,然后是 B),每个数据报可以选择不同的路线,因此 B 可能在 A 到达之前先到达。

IPV4数据包

        网际协议第 4 版(Internet Protocol version 4,IPv4)是 TCP/IP 协议使用的数据报传输机制。数据报是一个可变长分组,由两部分组成:头部和数据。头部长度可由 20~60 个字节组成,该部分包含有与路由选择和传输有关的重要信息。头部各字段意义按顺序如下:

《计算机网络—自顶向下方法》 Wireshark实验(六):IP 协议分析

(1) 版本( 4 位):该字段定义 IP 协议版本,负责向处理机所运行的 IP 软件指明此 IP 数据报是哪个版本,所有字段都要按照此版本的协议来解释。如果计算机使用其他版本,则丢弃数据报;
(2) 头部长度( 4 位):该字段定义数据报协议头长度,表示协议头部具有 32 位字长的数量。协议头最小值为 5 ,最大值为 15;
(3) 服务( 8 位):该字段定义上层协议对处理当前数据报所期望的服务质量,并对数据报按照重要性级别进行分配。前 3 位成为优先位,后面 4 位成为服务类型,最后 1 位没有定义。这些 8 位字段用于分配优先级、延迟、吞吐量以及可靠性;
(4) 总长度( 16 位):该字段定义整个 IP 数据报的字节长度,包括协议头部和数据。其最大值为 65535 字节。以太网协议对能够封装在一个帧中的数据有最小值和最大值的限制( 46~1500 个字节);
(5) 标识( 16 位):该字段包含一个整数,用于识别当前数据报。当数据报分段时,标识字段的值被复制到所有的分段之中。该字段由发送端分配,帮助接收端集中数据报分段;
(6) 标记( 3 位):该字段由 3 位字段构成,其中最低位( MF )控制分段,存在下一个分段置为 1 ,否则置 0 代表该分段是最后一个分段。中间位( DF )指出数据报是否可进行分段,如果为 1 则机器不能将该数据报进行分段。第三位即最高位保留不使用,值为 0;
(7) 分段偏移( 13 位):该字段指出分段数据在源数据报中的相对位置,支持目标 IP 适当重建源数据;
(8) 生存时间( 8 位):该字段是一种计数器,在丢弃数据报的每个点值依次减 1 直至减少为 0 。这样确保数据报拥有有限的环路过程(即 TTL ),限制了数据报的寿命;
(9) 协议( 8 位):该字段指出在 IP 处理过程完成之后,有哪种上层协议接收导入数据报。这个字段的值对接收方的网络层了解数据属于哪个协议很有帮助;

常见的协议值有:

协议字段值 协议名 缩写
1 互联网消息控制协议 ICMP
2 互联网组管理协议 IGMP
6 传输控制协议 TCP
17 用户数据报协议 UDP
41 IPv6 封装 ENCAP
89 开放式最短路径优先 OSPF
132 流控制传输协议 SCTP

(10) 头部校验和( 16 位):该字段帮助确保 IP 协议头的完整性。由于某些协议头字段的改变,这就需要对每个点重新计算和检验。计算过程是先将校验和字段置为 0 ,然后将整个头部每 16 位划分为一部分,将个部分相加,再将计算结果取反码,插入到校验和字段中;校验和的运算方式是采用反码算术运算求和,和的反码作为该字段的值,可以参考下面的例子:

《计算机网络—自顶向下方法》 Wireshark实验(六):IP 协议分析

(11) 源地址( 32 位):源主机 IP 地址,该字段在 IPv4 数据报从源主机到目的主机传输期间必须保持不变;
(12) 目的地址( 32 位):目标主机 IP 地址,该字段在 IPv4 数据报从源主机到目的主机传输期间同样必须保持不变。

IPv6数据包

        在 2011 年 2 月,IANA 向一个区域注册机构分配完了未分配的 IPv4 地址的最后剩余地址池。这些注册机构可用的 IPv4 地址一旦用完,IPv4 地址就会耗尽,因此IPv6 技术就被开始进行研发部署。(原计划让 ST-2 作为 IPv5,但是 ST-2 后来就被舍弃了。)下面就让我们看看 IPv6 数据报有什么内容:

《计算机网络—自顶向下方法》 Wireshark实验(六):IP 协议分析

        对于IPv6的详细介绍,请阅读:网络层——IPv6概述

1.2 数据包分片

        对于链路层协议,不同的链路层协议能承载的网络层分组长度并不同,一个链路层协议能承载的最大数据量称之为最大传输单元 (MTU)。若传输时经过很多路由器,而之间的每条链路的 MTU 不同怎么办?解决方法就是将 IP 数据报中的数据分片为多个 IP 数据报,然后用单独的链路层帧封装数据报并发送。大 IP 数据分组向较小 MTU 链路转发时,在允许的情况下可以进行分片。

        分片时每个分片的标识复制原 IP 分组标识,通常除了最后一个分组,其他分片均分为 MTU 允许的最大分片。一个最大分片可封装的数据,应该为 8 的倍数。既然有分片,那就需要重组为完整的数据报,IP 分片的重组工作由目的端系统负责。

《计算机网络—自顶向下方法》 Wireshark实验(六):IP 协议分析

相关字段
标识符(Identification)

        占 16 位,这个字段主要被用来唯一地标识一个报文的所有分片,因为分片不一定按序到达,所以在重组时需要知道分片所属的报文。

标志符(Flags)

        占 3 位,这个字段有 DF 和 MF 2 个标志。DF 标志为 1 时禁止分片,为 0 时允许分片。MF 标志为 1 时表示当前分片并非最后一片,为 0 时表示当前分片为最后一片。

分片偏移(Fragment Offset)

        占 13 位,该字段指明了每个分片相对于原始报文开头的偏移量,以 8 字节作单位。

分片实例

        现有一个数据报的总长度为 3820 字节,链路的 MTU 为 1400。由于首部占有 20 字节,因此该数据报将被分为 3 个数据报片,其数据部分的长度分别为 1400、1400 和 1000 字节。值的一提的是,分片后的每一个小数据报也需要 20 字节的首部。

《计算机网络—自顶向下方法》 Wireshark实验(六):IP 协议分析

        对于这 3 个数据报,它们的各个参数为:

数据报 总长度 标识 MF DF 片位移
数据报 3820 相同 0 0 0
数据分片 1 1420 相同 1 0 0
数据分片 2 1420 相同 1 0 175
数据分片 3 1020 相同 0 0 350

1.3 IPv4 编址

1. IP 地址的表示

        主机与物理链路、路由器与其任意一条链路之间的边界,都被称之为接口。由于每个主机和路由器都可以发送和接受 IP 数据报,因此所有接口都得拥有自己的 IP 地址。问题是如果 IP 地址乱分配,会使得转发表变得异常复杂,应该怎么样为接口分配 IP 地址?

        IP 地址由 2 个字段组成,分别是网络前缀和主机号。网络前缀用于指明主机或路由器所连接到的网络,网络前缀在互联网中必须是唯一的。主机号用于标志主机或路由器,主机号在其所在的网络中是唯一的。就像电话号码划分区号一样,只有通过网络号和主机号的标识,路由器才能知道如何转发,而一个 IP 地址在互联网中是唯一的。

2. CIDR 策略
        现在在全球因特网中,地址分配策略采用的是无类别域间路由选择 (CIDR)策略。CIDR 消除了传统 A、B、C 类地址和子网划分的概念,将子网寻址的概念一般化了。网络前缀可以是任意长度,融合子网地址和子网掩码可以更为方便地进行子网划分。当子网寻址时,32 bit 的 IP 地址的形式是 a.b.c.d/x,其中 x 指示了地址第一部分的比特数,构成了网络前缀。

        CIDR 策略使得路由器转发分组时,可以往网络前缀相同的 IP 地址的区域发送,也就是缩小了发送链路的选择范围。因此采用 CIDR 策略提高了 IPv4 地址空间的分配效率,同时也提高了路有效率。

3. 特殊的 IP 地址

网络号 主机号 作为 IP 分组源地址 作为 IP 分组目的地址 用途
全 0 全 0 × 本网络内表示本主机,路由表内表示默认路由
全 0 host-id × 本网络范围内表示某个特定主机
全 1 全 1 × 本网络范围内表示广播地址
net-id 全 0 × × 网络地址,表示一个网络
net-id 全 1 × 直接广播地址,对特定网络的主机进行广播
127 非全 0/1 用于本地软件的环回测试

4. 私有地址

        私有 IP 地址是一段保留的 IP 地址,只使用在局域网中,无法在 Internet 上使用。一共需要记住 3 组:

地址类型 保留的地址空间
A 类 10.0.0.0 ~ 10.255.255.255
B 类 172.16.0.0 ~ 172.31.255.255
C 类 192.168.0.0 ~ 192.168.255.255

1.4 划分子网

1. 子网
        IP 地址如果只使用 ABCDE 类来划分,会造成大量的浪费:一个有 500 台主机的网络,无法使用 C 类地址。但如果使用一个 B 类地址,6 万多个主机地址只有 500 个被使用,造成 IP 地址的大量浪费。

        因此,可以在 ABC 类网络的基础上,进一步划分子网:占用主机号的前几个位,用于表示子网号。

        这样 IP 地址就可看作 IP = 网络号 + 子网号 + 主机号。

        所谓子网就是不跨越路由器(第三次及以上的网络设备),可以彼此物理连通的接口。如图 3 个主机接口和 1 个路由器接口的网络,就形成了一个子网。

《计算机网络—自顶向下方法》 Wireshark实验(六):IP 协议分析

        接下来考虑“系统内的子网”例如一个公司中的某个部门拥有一个 C 类地址,但是连接的主机仅有个位数,而另一个部门希望拥有自己的局域网,就不能使用剩余的 IP 地址,这就造成了 IP 地址空间的利用率很低。IP 地址空间的利用率低也会导致所需的 IP 地址增加,导致了路由器转发表需要更多的空间来存储。

        因此将物理网络再分为若干子网是局域网的内部行为,对外表现出来的还是一个网络。对于这种子网,分开主机和路由器的每个接口,这就产生了几个隔离的网络,每一个隔离的网络都是一个子网。

《计算机网络—自顶向下方法》 Wireshark实验(六):IP 协议分析

2. 子网掩码

        从 IP 数据报首部无法看出源主机或目的主机的网络是否划分了子网,如何确定?这是就采用了子网掩码,其特性为子网掩码和主机 IP 地址做“与 (AND)”运算后,得到的结果的主机号部分全部为 0。已知 IP 地址是 141.14.72.24,子网掩码是 255.255.192.0,就可以通过这个性质得到其网络前缀。

《计算机网络—自顶向下方法》 Wireshark实验(六):IP 协议分析

        子网划分的手法是什么?若分为 2 n 2^n 2n 个子网,则子网掩码往后移动 n 位。

1.5 IP 路由选择

        如果发送方与接收方直接相连(点对点)或都在一个共享网络上(以太网),那么 IP 数据报就能直接送达。

        而大多数情况则是发送方与接收方通过若干个路由器(router)连接,那么数据报就需要经过若干个路由器的转发才能送达,它是怎么选择一个合适的路径来"送货"的呢?

        IP 层在内存中有一个路由表(输入命令 route -n 可以查看路由表),当收到一份数据报并进行发送时,都要对该表进行搜索:

  • 搜索路由表,如果能找到和目的 IP 地址完全一致的主机,则将 IP 数据报发向该主机;
  • 搜索路由表,如果匹配主机失败,则匹配同子网的路由器(这需要子网掩码的协助)。如果找到路由器,则将该 IP 数据报发向该路由器;
  • 搜索路由表,如果匹配同子网路由器失败,则匹配同网络号路由器,如果找到路由器,则将该 IP 数据报发向该路由器;
  • 如果以上都失败了,就搜索默认路由,如果默认路由存在,则发报;
  • 如果都失败了,就丢掉这个包;
  • 接收到数据报的路由器再按照它自己的路由表继续转发,直到数据报被转发到目的主机;
  • 如果在转发过程中,IP 数据报的 TTL(生命周期)已经被减为 0,则该 IP 数据报就被抛弃。

1.6 路由聚合

1. 组合大子网
        使用单个网络前缀通告多个网络的能力称之为路由聚合,这也可以理解为将多个子网合成一个较大的子网。这是很重要的,因为 ISP 往往需要把它所有的多个组织连接到因特网,而这些组织也都有子网。

《计算机网络—自顶向下方法》 Wireshark实验(六):IP 协议分析

        路由聚合的过程可以看做子网划分的逆过程,即子网划分的手法是子网掩码往后移动,路由聚合则是向前移动。

2. 基于最长前缀

        思考一个问题,若组织的 IP 不连续怎么办?此时将使用最长前缀匹配,也就是路由表寻找最长匹配项,并向其相关联的链路接口转发分组。

《计算机网络—自顶向下方法》 Wireshark实验(六):IP 协议分析

        从这个也可以看出,子网掩码向前移动时,只有相邻的子网可以聚合,如果不相邻那就只好聚合成更大的子网。

《计算机网络—自顶向下方法》 Wireshark实验(六):IP 协议分析

        下面看一个路由聚合的实例,如图 ISP 共有 64 个 C 类网络。如果不采用 CIDR 技术,则在与该 ISP 的路由器交换路由信息的每一个路由器的路由表中需要有 64 个项目。但采用地址聚合后,只需用路由聚合后的 1 个项目 206.0.64.0/18 就能找到该 ISP。

《计算机网络—自顶向下方法》 Wireshark实验(六):IP 协议分析

1.7 IP分组转发

1. 转发原理

        IP 分组的转发指的是从一个路由器转发到下一个路由器,每一跳路由器都要给出目标的网络前缀和下一跳地址,即沿途的路由器必须知道目标网络的下一路要给哪个接口。同时根据这一点我们也可以得到网络畅通的条件,也就是满足数据报能去能回。

《计算机网络—自顶向下方法》 Wireshark实验(六):IP 协议分析

2. 默认路由

        默认路由是对IP数据包中的目的地址找不到存在的其他路由时,路由器所选择的路由。目的地不在路由器的路由表里的所有数据包都会使用默认路由,这条路由一般会连去另一个路由器。对于 Windows 系统而言,网关就是默认路由。

3. 结合子网掩码

        由于子网的存在性问题不能不能忽视,因此需要集合子网掩码进行转发。先用各网络的子网掩码和目的 IP 地址逐位做“与”预算,看是否和相应的网络地址匹配。若匹配,则将分组直接交付,否则就送往下一跳路由器。

2 实验分析

        为了生成本实验的一系列 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 之间的路由器的身份。
《计算机网络—自顶向下方法》 Wireshark实验(六):IP 协议分析

        不过 Windows 的 tracert 程序不允许更改 tracert 程序发送的 ICMP echo 请求(ping)消息的大小。因此要使用 pingplotter 等其他程序来实验。

具体的步骤:

(1) 启动 Wireshark 并开始数据包捕获(Capture-> Start),然后在 Wireshark 数据包捕获选项屏幕上按 OK(我们不需要在此处选择任何选项)。

(2) 在 pingplotter 设置 Edit->Options->DefaultSettings->Engine 包大小设置为56Byte

《计算机网络—自顶向下方法》 Wireshark实验(六):IP 协议分析

(3) 然后打开gaia.cs.umass.edu 的跟踪,大约跟踪3 次(由于无法控制,可以稍微超一些),然后暂停。
(4) 重复2-3 步,只不过将大小设置2000Byte 以及3500Byte,然后也大约跟踪3 次。

这期间保持 wireshark 一直打开,总共设置3次,每次差不多也跟踪3次。由于暂停pingplotter再恢复是接着上次的跟踪统计继续,因此序号会一直增加。当然也可以选择重新开一个跟踪。

《计算机网络—自顶向下方法》 Wireshark实验(六):IP 协议分析

(5) 关闭 wireshark 的捕获,并且分析实验结果。

回答问题:

  1. 选择计算机发送的第一个 ICMP Echo Request 消息,然后在 packet details window 中展开数据包的 Internet 协议部分。您的计算机的 IP 地址是多少?
    答:IP地址:10.69.164.78
《计算机网络—自顶向下方法》 Wireshark实验(六):IP 协议分析
  1. 在 IP header 中,上层协议字段的值是多少?
    答:上层协议就是ICMP,值为1。见上图

        查询常见协议值:

《计算机网络—自顶向下方法》 Wireshark实验(六):IP 协议分析
  1. IP header 有多少 bytes? IP datagram 的有效负载中有多少 bytes? 说明如何确定 payload bytes 的数。
    答:Header Length:20 bytes IP数据报总长度 = IP头长度 + IP数据长度(就是有效负载)
    IP datagram payload bytes:56bytes

方法1:
IP datagram payload bytes = Total Length - Header Length = 56 - 20 = 36

《计算机网络—自顶向下方法》 Wireshark实验(六):IP 协议分析

方法2:

        IP数据报的有效负载,这里装的就是ICMP数据报,所以看ICMP占多少字节即可。

《计算机网络—自顶向下方法》 Wireshark实验(六):IP 协议分析
  1. 此 IP 数据报是否已被分段(fragmented)?解释您如何确定数据报是否已被分段(fragmented)。
    答:这里的IP数据报没有被分段, 因为 Fragment offset = 0,分段的偏移量为0,所以没有分段,而且 More fragments 也是为 Not set,表示没有设置分段。
《计算机网络—自顶向下方法》 Wireshark实验(六):IP 协议分析
  1. 在您的计算器发送的这一系列 ICMP 消息中,IP 数据报中的哪些字段 一直在改变?
    答:发送的ICMP Echo(ping)request:标识号Identification、校验和Header checksum、存活时间TTL 一直在变。
《计算机网络—自顶向下方法》 Wireshark实验(六):IP 协议分析《计算机网络—自顶向下方法》 Wireshark实验(六):IP 协议分析

        也就是下图这些部分:

《计算机网络—自顶向下方法》 Wireshark实验(六):IP 协议分析
  1. 哪些字段保持不变?哪个字段必须保持不变?哪些字段必须更改?
    必须保持不变:
  2. 版本(Version):占 4 bit,通信双方使用的版本必须一致,对于 IPv4 字段的值是4;
  3. 首部长度(Internet Header Length, IHL):占 4 bit,首部长度说明首部有多少 32 位字(4字节)。由于IPv4首部可能包含数目不定的选项,这个字段也用来确定数据的偏移量;
  4. 区分服务(Differentiated Services,DS):占 6 bit,只有在使用区分服务时,这个字段才起作用,在一般的情况下都不使用这个字段;

保持不变:

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

必须更改:

  • 标识符(Identification):占 16 位,主要被用来唯一地标识一个报文的所有分片;
  • 存活时间(Time To Live,TTL):占 8 位,避免报文在互联网中永远存在。实现为跳数计数器,报文经过的每个路由器都将此字段减1,当此字段等于0时,报文不再向下一跳传送并被丢弃,最大值是255。这是traceroute的核心原理;
  • 首部检验和 (Header Checksum):占 16 位,检验和字段只对首部查错,在每一跳,路由器都要重新计算出的首部检验和并与此字段进行比对,如果不一致,此报文将会被丢弃;
  • 数据

        所谓的保持不变指的是这次 traceroute 不会改变的,但是下一次 traceroute 可能就会改了。

        如图蓝色框是保持不变(下次可能改变),绿色框是一定不会改变的(仅指路由跟踪),红色框是必须改变的。

《计算机网络—自顶向下方法》 Wireshark实验(六):IP 协议分析
  1. 描述您在 IP datagram 的 Identification field 中的值中所看到的?
    答:主要被用来唯一地标识一个报文的所有分片,因此对于不同的报文就需要改变这个值,使得报文可以唯一确定。
    下一步查找第一跳路由器发送到您的计算器的一系列 ICMP TTL 超出的回复讯息。

  2. ID 字段和 TTL 字段的值是多少?
    答:ID 字段 10501,TTL 字段 253。
    《计算机网络—自顶向下方法》 Wireshark实验(六):IP 协议分析

  3. 对于第一跳路由器发送到您的计算器的所有 ICMP TTL 超时的回复,这些值是否保持不变?为什么?
    答:ID 字段改变,TTL 字段改变。(我这里查看所有的超时回复都改变,不知道是为啥)

《计算机网络—自顶向下方法》 Wireshark实验(六):IP 协议分析《计算机网络—自顶向下方法》 Wireshark实验(六):IP 协议分析
  1. 在将 pingplotter 中的数据包大小更改为 2000 后,查找计算机发送的第一个 ICMP Echo Request 消息。该消息是否已碎片化为多个 IP 数据报?
    答:可以看出该消息被碎片化为 2 个 IP 数据报。
《计算机网络—自顶向下方法》 Wireshark实验(六):IP 协议分析
  1. IP 数据报的第一个片段。 IP 头中的哪些信息表明数据报已碎片化? IP 头中的哪些信息表明这是第一个片段还是后一个片段? 这个 IP 数据报有多长?
    答:More fragments字段为 1 表示 Set,即该数据包被分片。通过 ID 字段判断这是第一个片段,分片长度为 1456 bytes。
《计算机网络—自顶向下方法》 Wireshark实验(六):IP 协议分析
  1. 找到碎片 IP 数据报的第二个片段。 IP 标头中的哪些信息表明这不是第一个数据报片段? 是否还有更多的片段?你是如何知道的?
    答:Fragment Offset 字段表示偏移量,1456 bytes 的偏移量表示是上一个片段的后续。没有更多片段了,因为 More fragments 字段为 Not set,表示后面没有分片了。
    《计算机网络—自顶向下方法》 Wireshark实验(六):IP 协议分析

  2. 在第一个和第二个片段中,IP 标头中哪些字段发生了变化?
    答:全长(Total Length)、标志 (Flags)和分片偏移 (Fragment Offset)。

《计算机网络—自顶向下方法》 Wireshark实验(六):IP 协议分析《计算机网络—自顶向下方法》 Wireshark实验(六):IP 协议分析

        接下来在将 pingplotter 中的数据包大小更改为 3500 后,找到计算机发送的第一个 ICMP Echo Request 消息。文章来源地址https://www.toymoban.com/news/detail-484576.html

  1. 从原始数据报创建了多少个片段?
    答:创建了三个片段。
《计算机网络—自顶向下方法》 Wireshark实验(六):IP 协议分析

参考

  • Wireshark实验——IP协议:https://www.cnblogs.com/linfangnan/p/12835848.html
  • IP网际协议:https://www.lanqiao.cn/courses/98/learning/?id=474&compatibility=false

到了这里,关于《计算机网络—自顶向下方法》 Wireshark实验(六):IP 协议分析的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 《计算机网络-自顶向下》04. 网络层-数据平面

    从表面上看网络层的作用:将分组从一台发送主机移动到另一台接收主机。 完成该功能需要两个重要的网络层功能: 转发:当一个分组到达某路由器的一条输入链路时,该路由器必须将该分组移动到适当的输出链路。 路由选择:当分组从发送方流向接收方时,网络层必须决

    2023年04月15日
    浏览(29)
  • 计算机网络自顶向下WireShark实验:TCP

    计算机网络 WireShark 实验记录可供参考 1:What is the IP address and TCP port number used by the client computer (source) that is transferring the file to gaia.cs.umass.edu? To answer this question, it’s probably easiest to select an HTTP message and explore the details of the TCP packet used to carry this HTTP message, using the “details of

    2023年04月15日
    浏览(41)
  • 《计算机网络——自顶向下方法》精炼——3.7(2)

    读书有三到:谓心到,眼到,口到。——明·朱熹 为了简化对一条TCP连接吞吐量的描述,我们首先忽略连接过程中处于慢启动状态的时间,因为这一状态时间极短,而且相比于其他状态的线性增长,该状态的指数式增长会将计算复杂化;而对于快速恢复状态,这一状态仅在网

    2024年02月07日
    浏览(30)
  • 《计算机网络:自顶向下方法》第五章--网络层:控制平面

    控制平面作为一种网络范围的逻辑,不仅控制沿着从源主机到目的主机的端到端路径间的路由器如何转发数据报,而且控制网络层组件和服务如何配置和管理 传统上,控制平面功能与数据平面的转发功能在一起实现,在路由器中作为统一的整体 在网络层:数据平面中有转发

    2024年02月12日
    浏览(35)
  • 计算机网络——自顶向下方法(第四章学习记录)

    本章学习网络层:数据平面 前一章中我们学习了运输层依赖于网络层的主机到主机的通信服务,提供了各种形式的进程到进程的通信。在本章中我们将看到与运输层和应用层不同的是,在网络中的每一台主机和路由器中都有一个网络层部分。 网络层能够被分解为两个相互作

    2024年02月11日
    浏览(40)
  • 计算机网络——自顶向下方法(第三章学习记录)

    本章学习运输层 运输层位于应用层和网络层之间,是分层的网络体系的重要部分,该层为运行在不同主机上的应用进程提供直接的通信服务起着至关重要的作用。 运输层协议为运行在不同主机上的应用进程之间提供了 逻辑通信 (logic communication)功能。从应用程序的角度看,通

    2024年02月11日
    浏览(26)
  • 计算机网络——自顶向下方法(第一章学习记录)

    可以从两个不同的方面来理解Internet。(它的构成。它的服务) 1.因特网的主要构成          处在因特网的边缘部分就是在因特网上的所有主机,这些主机又称为 端系统 (end system),端系统通过 因特网服务提供商 (Internet Service Provider,ISP)接入因特网,端系统通过 通信

    2024年02月10日
    浏览(29)
  • 计算机网络——自顶向下方法(第二章学习记录)

    本章学习应用层 网络应用是计算机网络存在的理由。 现代网络应用程序有两种主流体系结构:客户—服务器体系结构和对等(P2P)体系结构 客户—服务器体系结构 (client-server ),在这个结构中,有一个总是打开的主机称为服务器,它服务于来自许多其他称为客户的主机的请求

    2024年02月09日
    浏览(30)
  • 《计算机网络--自顶向下方法》第四章--网络层:数据平面

    每台路由器的数据平面的主要作用是从其输入链路向其输出链路转发数据报 ;控制平面的主要作用是协调这些本地路由器转发动作,使得数据报沿着源和目的地主机之间的路由器路径进行端到端传送 路由器具有截断的协议栈,即没有网络层之上的部分,因为 路由器不运行应

    2024年02月12日
    浏览(30)
  • 《计算机网络:自顶向下方法》学习笔记——第六章:链路层

    两种截然不同类型的链路层信道 广播信道 :这种信道用于连接有线局域网、卫星网和混合光纤同轴电缆接入网中的多台主机。 点对点通信链路 :这在诸如长距离链路连接的两台路由器之间,或用户办公室计算机与它们所连接的邻近以太网交换机之间等场合经常能够发现。

    2024年02月03日
    浏览(28)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包