• IP数据包分片理解


    IP 数据包在数据帧中的封装:

    一、在很多物理网络中,都对数据帧的长度有限制,而且这个限制大都比IP 数据包长度的限制小。

    二、物理网络的这个限制(对帧数据区)通常都称为最大传输单元(MTU,Maximum Transfer Unit)。

    三、IP 协议使用了分片与重组的策略,这种策略的原理就是:

    1、如果一个IP数据包无法封装在一个数据帧中,就将数据包分成几个长度小于

    MTU 的片,将片封装在帧中进行传输。

    2、当这些分解的片都传输到目的地后,再将这些片重新组全成原来的IP数据包。

    3、当一个IP数据包从MTU大的网络发往MTU小的网络时,IP数据包往往就在路由器

    上进行分片。

    4、IP数据包的分片可能在IP数据包的源主机和网络路由器上发生,但重组只能在

    目标主机中进行。

    5、IP 数据包对数所包进行分片时,每一个分片都会独立地成为一个IP数据包。

    6、分片后的数据包都有自已的IP包头和数据区。

    最大传输单元(MTU -maximum transfer unit)

    –各种物理网络技术都限制了一个物理帧的大小,这个限值被称为最大传输单元;不同物理网络技术的MTU 不同。

    –对于一个网络而言,其MTU 值是由其采用的物理技术决定的,而且通常保持不变

    .IP分组的分片问题:

    – 在小MTU 的网络上将较大分组分割后进行传输称为IP包分片

    – IP头中有3个单元与分片有关:

    .ID(Identification):该分组的唯一标识,以便进行分片的重组

    .MF(More Fragment,Flags 字段的Bit 0):MF=1 表示还有更多分片

    .FO(Fragment Offset):本片起始位置在原始分组数据区中的偏移量

    –分组的分片传输:在分组的传输通路上,分片操作只能出现在两个MTU 不同的网络的交界处,也就是出现在路由器上;进入一个新网络时,若新网络的MTU 小于原有网络的MTU,则可能需要进行分片;若新MTU 值不小于原有MTU 就不必进行分片。

    – 片重组(reassembly)是分片的逆过程。所有片重组操作都在目的主机上进行。其简单过程如下:

    . 当目的主机收到MF=1 的分片时,首先将其进行缓存

    . 当收到MF=0 的分片时,计算原始IP 分组的长度:

    – 原始分组长= 本分片的偏移

    + 本分片的数据长度

    . 利用原始分组长度检查是否收到全部分片;若是,则按照

    各片的偏移值重新组装成IP 分组,提交给高层软件;否则将等待,直到收到该分组的全部分片

    . 为了防止无限等待,在接收端设置重组定时器;当接收到

    分组的第一片时启动该定时器,如果在指定的时间内未能

    Ping解释:

    在Liunx和Windows上,Ping 数据包大小代表IP数据部分(有效载荷)大小(IP数据包=IP包头+有效数据)。

    在Cisco网络设备上,Ping 数据包大小代表整个IP数据包大小。

  • 相关阅读:
    第十五章 字符串本地化和消息字典(一)
    avue中 curd的列表配置
    新能源汽车造车搅局
    Vue2与Vue3实例的深入比较:响应式系统、模板编译和性能分析
    C++day5
    直播场景视频和特效解决方案
    科创人·蓝凌董事长杨健伟:夯实“四梁八柱”,让数字化“城中村上建高楼”
    golang中移除切片索引位置的元素
    Java的多态
    春秋云镜 CVE-2013-2134
  • 原文地址:https://blog.csdn.net/m0_60797416/article/details/127846800