IP数据报头与MTU及分片机制

IPv4报文格式

 

 配置AR1和AR2

<Huawei>sys

[Huawei]sys AR1
[AR1]int gi 0/0/0
[AR1-GigabitEthernet0/0/0]ip add 192.168.1.1 24

[AR1-GigabitEthernet0/0/0]

<Huawei>sys

[Huawei]sys AR2
[AR2]int gi 0/0/0
[AR2-GigabitEthernet0/0/0]ip add 192.168.1.2 24

[AR2-GigabitEthernet0/0/0]

抓包看观察各个字段

MTU值的含义

MTU(Maximum Transmission Unit)是指数据链路层中的最大传输单元,RFC 标准定义以太网的默认 MTU 值为 1500

如果数据超过MTU大小且部分片报文就发不出去

2.1我们发送一个用户数据为1472字节【因为加上IP头部(20字节)和ICMP头部(8字节)正好1500字节】的数据包且不分片,观察下列结果是可以通信的

<AR1>ping -f -s 1472 192.168.1.2 //-f表示不分片,-s指定用户数据的大小
  PING 192.168.1.2: 1472  data bytes, press CTRL_C to break
    Reply from 192.168.1.2: bytes=1472 Sequence=1 ttl=255 time=50 ms
    Reply from 192.168.1.2: bytes=1472 Sequence=2 ttl=255 time=30 ms
    Reply from 192.168.1.2: bytes=1472 Sequence=3 ttl=255 time=20 ms
    Reply from 192.168.1.2: bytes=1472 Sequence=4 ttl=255 time=10 ms
    Reply from 192.168.1.2: bytes=1472 Sequence=5 ttl=255 time=10 ms

  --- 192.168.1.2 ping statistics ---
    5 packet(s) transmitted
    5 packet(s) received
    0.00% packet loss
    round-trip min/avg/max = 10/24/50 ms

当MTU<=1500,数据包可以顺利发出,且可以通信

2.2我们再发送一个用户数据为1473字节【因为加上IP头部(20字节)和ICMP头部(8字节)超过了1500字节】的数据包且不分片,观察下列结果是发送不出去的

<AR1>ping -f -s 1473 192.168.1.2
  PING 192.168.1.2: 1473  data bytes, press CTRL_C to break
    Request time out
    Request time out
    Request time out
    Request time out
    Request time out

  --- 192.168.1.2 ping statistics ---
    5 packet(s) transmitted
    0 packet(s) received
    100.00% packet loss

抓包后连报文都没有,而且超时了

当MTU<=1500时,数据包无法发出

分片机制

我们通过传递3500字节的报文,了解分片的机制

我们可以猜测一下,由于MTU限制,一个IP报文最大为1500字节,预估需要分3片

<AR1>ping -s 3500 192.168.1.2
  PING 192.168.1.2: 3500  data bytes, press CTRL_C to break
    Reply from 192.168.1.2: bytes=3500 Sequence=1 ttl=255 time=40 ms
    Reply from 192.168.1.2: bytes=3500 Sequence=2 ttl=255 time=40 ms
    Reply from 192.168.1.2: bytes=3500 Sequence=3 ttl=255 time=40 ms
    Reply from 192.168.1.2: bytes=3500 Sequence=4 ttl=255 time=40 ms
    Reply from 192.168.1.2: bytes=3500 Sequence=5 ttl=255 time=40 ms

  --- 192.168.1.2 ping statistics ---
    5 packet(s) transmitted
    5 packet(s) received
    0.00% packet loss
    round-trip min/avg/max = 40/40/40 ms

观察第一个数据包

 观察第二个数据包

我们看到第二个数据包和第一个类似,只是偏移量有变化,看下图表示偏移量

这个小三角就表示1480,第一个数据包的数据刚好发到1480字节,第二个数据包从1480之后再发(第三个数据包的2960同理,只是又加上了第二个数据包的1480的长度)

 观察第三个数据包

 这就是整个分片机制与重组

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值