当前位置:   article > 正文

思科 IPv4 /IP fragmentation 分片抓包解析_思科模拟器抓包

思科模拟器抓包

思科 IPv4 /IP fragmentation 分片抓包解析(MTU)

Interface Serial1/0 on Router0 has been configured with an MTU of
120 while Interface Serial1/0 on Router1 has an MTU of 64.

Test Improved TCP Features

  1. Ping Server0 (10.2.0.2) from Router0 using extended ping. Specify a datagram size of 200.
    The ping is successful because ICMP packets have DF flag off by default( allow fragmentation).

  2. Using PC0’s web browser, visit URL http://10.2.0.2.
    This HTTP Request should fail since the DF bit is on by default for TCP packets
    ( no fragmentation allowed so the packet will be dropped).

Use the Simulation mode to observe how icmp packets get fragmented and
how tcp packets get dropped when mtu value is smaller than the packet
size.

Router0 上的接口 Serial1/0 的 MTU 配置为 120,而 Router1 上的接口 Serial1/0 的 MTU 为
64。

测试改进的 TCP 功能

  1. 使用扩展 ping 从 Router0 ping Server0 (10.2.0.2)。 指定数据报大小为 200。
    ping 成功是因为 ICMP 数据包默认关闭了 DF 标志(允许分片)。

  2. 使用 PC0 的网页浏览器,访问 URL http://10.2.0.2。
    此 HTTP 请求应该失败,因为 TCP 数据包的 DF 位默认打开
    (不允许分片,因此数据包将被丢弃)。

使用模拟模式观察 icmp 数据包是如何被分片的,以及 tcp 数据包是如何被丢弃的 mtu 值小于数据包大小。

在这里插入图片描述

Router0

en
conf t
route rip
network 10.0.0.0
interface FastEthernet0/0
 ip address 10.0.0.1 255.255.255.0
 ip mtu 128
 duplex auto
 speed auto
!
interface Serial1/0
 ip address 10.1.0.1 255.255.255.0
 mtu 120
 clock rate 64000
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

Router1

en
conf t
route rip
network 10.0.0.0

interface FastEthernet0/0
 ip address 10.2.0.1 255.255.255.0
 duplex auto
 speed auto
 ipv6 address BBBB::1/112
!
interface Serial1/0
 ip address 10.1.0.2 255.255.255.0
 mtu 64
 ipv6 address AAAA::2/112
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

Server0

在这里插入图片描述

PC0

在这里插入图片描述

测试

在这里插入图片描述
在这里插入图片描述

抓包

在这里插入图片描述

TL:总长度(单位1byte):IP报头+数据长度(除本层协议外的都视为数据),所以载荷是总长度-报头长度

FLAGS:标志:分片标志是确定该包是否被分片,如果分片了是不是最后一片,第1位保留,第2位DF=0表示分片,DF=1表示未分片,第3位MF=0表示是最后一片,MF=1表示还有分片,MF结合组装buf中的偏移量是否完整来判断该包是否接收组装完成

FRAG:分段偏移量(单位byte):分片相对报头偏移量,用于确定组装顺序,如果分片超时丢失将回复异常并重新分片收发

如果IP层有数据包要传,而且数据包的长度超过了MTU,那么IP层就要对数据包进行分片(fragmentation)操作,使每一片的长度都小于或等于MTU。我们假设要传输一个UDP数据包,以太网的MTU为1500字节,一般IP首部为20字节,UDP首部为8字节,数据的净荷(payload)部分预留是1500-20-8=1472字节。如果数据部分大于1472字节,就会出现分片现象。

在这里插入图片描述
如果发送一个200的DATA,这里分片会分3个,分别是120+120+28=268。
这里有个问题我暂时没有思考解决就是:IP首部占用20个字节,ICMP首部占8个字节,那么我传200的DATA,多出来这68除了包含ICMP+IP 还有包含了什么?

粗浅讲一下,分三个片那就是要把每个IP也算上,也就是20*3 + 8 =68 ,在这里尝试分四片也印证了我的想法
在这里插入图片描述

第一个ping包前面这三个分片分别是
ID:0x069b
FLAGS:0x01
FRAG OFFSET:0x064

FLAGS:0x01
FRAG OFFSET:0x000

FLAGS:0x00
FRAG OFFSET:0x0c8

在这里插入图片描述

同一个数据报各个分片到达目的地,必须被重组为一个完整的数据报。IP协议主要依据数据报首部中的标识、标志和分片偏移字段进行分片重组。

分片可以在源主机或传输路径上的任何一台路由器上进行,而分片的重组只能在目的主机上进行,因为各分片作为独立数据报进行传输,在网络中可能沿不同的路径传输,在中间的某一个路由器上收齐同一数据报的各个分片不现实。另外不在中间进行重组可以简化路由器上的协议,有助于减轻路由器负担。

在这里插入图片描述
在这里插入图片描述
如图收到三个分片后重组。

HTTP超时

在这里插入图片描述

在这里插入图片描述
如图0x2是不支持分包的,TL=117,如果经过MTU=64的会失败

HTTP进行传输时,直接和客户端进行MTU的协商,而不管中间设备的MTU值大小,一旦和客户端协商完毕,就以此为基础进行发送,但中间设备的MTU不一定就是此MTU,所以会产生很多问题。

在这里插入图片描述

在这里插入图片描述

调成协商后的MTU=394就可以正常访问,这里有个问题就是协商的394这个值是怎么协商出来的?

在这里插入图片描述

参考/扩展资料

链接: TCP数据包协议格式详解,了解标志位在哪个位置
链接: MTU默认值是1500,一般IP首部为20字节,UDP首部为8字节,数据的净荷(payload)部分预留是1500-20-8=1472字节。如果数据部分大于1472字节,就会出现分片现象
链接: cisco路由器ping命令的设置
链接: 浅谈IP数据报分片与重组
链接: MUT影响HTTP页面传输
链接: 这篇文章对偏移量有更好的解释
链接: 思科模拟器

本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号