5.2.5 IP数据报(三)IP数据报的分片与重组

这篇具有很好参考价值的文章主要介绍了5.2.5 IP数据报(三)IP数据报的分片与重组。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

5.2.5 IP数据报(三)IP数据报的分片与重组

前面我们在学习IP数据报的格式中,提及了数据报的分片,这里我们要弄明白几个问题

  1. 为什么要分片?

    前面我们已经解释过,如图ip数据报分片,网络技术与应用,tcp/ip,网络,智能路由器
    因为在数据报传送的过程中如果总长度超出了某个网络的MTU的情况下就会使该IP数据报无法封装到一个完整的数据帧里,所以必须要进行分片

  2. 分片工作是由谁来完成的?

    分片工作通常是由网络互连设备路由器(图中R1)来完成,也就是说路由器会根据实际的需要来完成数据报的分片工作,然后每个数据报片都被封装在单个数据帧中发送,并且作为独立的IP数据报进行传输。

  3. 数据报分片的重组工作由谁来负责?

    与数据报分片相反的就是分片的重组,也就是把若干个分片重新组合成原始的IP数据报,考虑到各个分片在到达目的主机之前还有可能会被再次分片,所以说在沿途路由器上不进行分片的重组,这里我们要注意,对数据报分片的重组工作是由目的主机来完成的。

  4. 如何分片?(这是最重要的问题)

    如图ip数据报分片,网络技术与应用,tcp/ip,网络,智能路由器
    我们在前面学习IP数据报的格式中曾经说过对IP数据报的分片处理会用到IP数据报首部的三个字段标识、标志、片偏移,下面我们就着重的学习一下这三个字段。

一、标识字段

标识(identification)占16bit,它是一个计数器,是源主机赋予数据的惟一标识符。在分片的时候,该字段会被复制到各个分片首部中的标识字段。

标识字段占了16比特2个字节,是源主机赋予数据报的惟一标识符,比如在源主机的内存中保持了一个全局计数器,每产生一个新的数据报计数器就会加一,因为标识占用16个比特所以计数器可以统计 2 16 2^{16} 216个标识,当达到65535的时候该字段置为全零,总之就是要保证同一主机发出的各个数据报的标识字段在较长时间内是唯一的,一个数据报分片其实是把数据部分进行拆分,因为每个分片都有首部,并且数据报片的首部主要从初始数据报首部中复制,仅做少量修改,也就是说对于标识字段必须不加修改的复制到各个分片的首部中以方便目的主机在重组时能够识别出属于同一初始数据报的所有分片。

二、标志字段

标志字段占3bit,第一个比特不用

第二个比特DF位(Don’t Fragment flag):是否允许被分片(0:允许)当该比特等于1的时候表示数据报不允许被分片,0的时候允许被分片。也就是说如果某数据报太长,路由器必须现对其进行分片才能转发的时候,结果发现该数据报的DF位置为1时路由器会丢弃该数据报,并想源主机发送一个差错报告报文。

第三个比特是MF位(More Fragment flag,简称MF),表示是否有后续分片,MF位=1表示该数据报不是最后一个分片,当该比特位等于零的时候是最后一个分片。

三、片偏移量

片偏移占用13个比特位,该字段指出本数据报片中的数据部分第一个字节相对于原数据报中数据部分的偏移量,请注意:该字段是以8个字节为单位来计算偏移量的。对于未分片的数据报或第一个分片来说该字段等于零。

由于各个分片在传输的过程中是独立的也就是说由于IP协议无法保证这些分片一定按需到达目的主机,所以目的主机能够根据分片中的源主机IP地址、标识、标志字段中的MF位以及偏移量来重装出最初始数据报的完整副本,除非没能收齐所有分片。也就意味着只要有一个分片丢失就无法重组,意味着整个数据报都丢失了,所以在实际的应用中,如果需要分片,总是希望分片的个数越少越好,又因为片偏移量是以8字节为单位,所以除了最后一个分片外,其余分片的数据部分的大小应尽量接近但不超过网络的MTU,并且是8字节的整数倍。

四、示例

我们通过一个例子来介绍有关数据报分片的计算。

如图

ip数据报分片,网络技术与应用,tcp/ip,网络,智能路由器

图中所示的小型互联网中,主机A向B发送了一个首部20字节,数据部分1400字节长,且DF位为0的IP数据报,请问该数据报会被分片么?如果需要分片,请写出分片结果。

从图中我们可以看到由于主机A发送出去的是总长度为1420字节的IP数据报,要经过一个MTU值是660字节的网络2才能够到达目的网络3,所以在路由器R1处必须要进行分片,此外,该数据报的标志字段中的DF位为0表示可以分片,这里我们要知道所谓的分片其实是将数据部分拆开,因为每个分片都有首部,并且每个分片的数据部分长度要满足的条件是小于等于网络2的MTU660个字节减去首部的长度也就是640个字节,并且数据部分的长度还应该是8字节的整数倍,在这个实例中网络2可传输的数据报长度为640个字节恰巧可以被8整除,所以每个分片的数据部分的长度我们选择六百四十字节即可。所以我们得到如下结果

分片个数= 1400 640 \frac{1400}{640} 6401400,然后向上取整,最终结果是3。其中前面两个分片的数据部分长度都是640个字节,最后一个分片的长度会比较短。如图

ip数据报分片,网络技术与应用,tcp/ip,网络,智能路由器

如图我们得到的分片结果

第一个分片的数据部分是640字节,其中标志字段的MF位等于1表示有后续分片,因为数据部分第一个字节就是原始数据报中编号为0的那个字节,所以他的片偏移字段的值就是 0 8 \frac{0}{8} 80就是该字段为全零。

第二个分片的数据部分仍然是640个字节,其中标志字段的MF位等于1表示有后续分片,因为其数据部分第一个字节的编号是640,所以他的片偏移字段的值就是 640 8 = 80 \frac{640}{8}=80 8640=80所以片偏移字段的值为0000001010000

第三个分片比较短,它的数据部分长度是 1400 − 2 × 640 = 120 1400-2\times640=120 14002×640=120个字节,因为其是最后一个分片,后没有分片因此其MF字段值为0,同时他的数据部分第一个字节编号是1280,所以他的片偏移字段的值是 1280 8 = 160 \frac{1280}{8}=160 81280=160,字段值是0000010100000

这里需要我们注意的是很多人在计算分片的个数时,习惯用原始数据报的总长度去除每个分片的总长度,这都是错误的,因为每个分片都有首部,这里我们一定要注意分片是吧数据部分拆开了。

这里我们再来思考如果把示例中的网络2的MTU改为600的情况下,每个分片的数据部分长度是580个字节么?欢迎大家留言讨论。

以上就是数据报的分片与重组。我们知道在互联网络层中使用的是IP地址,而前面我们学习知道在实际使用的是网卡的MAC地址进行通信的,这两种地址之间的关系就与我们后面要学到的地址解析协议ARP有关。文章来源地址https://www.toymoban.com/news/detail-650425.html

到了这里,关于5.2.5 IP数据报(三)IP数据报的分片与重组的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 网络层&&IP协议的基本原理 数据链路层&&ARP协议 域名解析以及一些重要技术

    网络层作用:在复杂的网络环境中确定一个合适的路径。 tcp/ip协议,tcp解决可靠性与效率,ip提供在网络中传输的能力。 传输层决定了单次向下交付数据包的大小。 IP(Internet Protocol)协议是一种网络层协议,用于在互联网上进行数据传输。它定义了数据如何在网络中进行分

    2024年02月15日
    浏览(47)
  • 代理IP与SOCKS5代理:网络安全与数据隐私保护的技术利器

    深入探讨代理IP和SOCKS5代理的技术性,并阐述它们在网络安全和数据隐私保护中的重要作用。我们将详细介绍代理IP的概念、工作原理和应用场景,以及SOCKS5代理协议的特点和优势。此外,我们还将讨论如何使用代理IP和SOCKS5代理实现匿名访问、绕过封锁和保护个人隐私。通过

    2024年02月11日
    浏览(46)
  • 【网络】网络层IP地址和IP数据报的格式

    🦄  个人主页—— 🎐 开着拖拉机回家_Linux,大数据运维-CSDN博客   🎐✨🍁 🪁🍁🪁🍁🪁🍁🪁🍁   🪁🍁🪁🍁🪁🍁🪁   🪁🍁🪁🍁🪁🍁🪁🍁🪁🍁🪁🍁 感谢点赞和关注 ,每天进步一点点!加油! 目录 一、IP概述 1.1 IP简介 1.2 IP协议 1.3 IP地址 1.4 IP地址特点 1.5

    2024年02月03日
    浏览(45)
  • 网络技术五:IP基本原理

    标识节点和链路 用唯一的IP地址标识每一个节点 用唯一的IP网络号标识每一个链路 寻址和转发 确定节点所在网络的位置,进而确定节点所在的位置 IP路由器选择适当的路径将IP包转发到目的节点 适应各种数据链路 根据链路的MTU对IP包进行分片和重组 为了通过实际的数据链路

    2024年02月09日
    浏览(36)
  • IP定位技术助力网络安全保护

    随着网络技术的不断发展,网络安全问题日益凸显,如何有效保护网络安全已成为亟待解决的问题。IP定位技术作为一种前沿的网络安全防护手段,正在逐步成为网络安全保护的重要工具。 首先,我们要明确什么是IP定位技术。IP定位技术是一种基于IP地址的地理位置定位技术

    2024年02月19日
    浏览(35)
  • 【计算机网络笔记】Internet网络的网络层——IP协议之IP数据报的结构

    什么是计算机网络? 什么是网络协议? 计算机网络的结构 数据交换之电路交换 数据交换之报文交换和分组交换 分组交换 vs 电路交换 计算机网络性能(1)——速率、带宽、延迟 计算机网络性能(2)——时延带宽积、丢包率、吞吐量/率 计算机网络体系结构概念 OSI参考模型

    2024年02月05日
    浏览(54)
  • 【网络安全】IP地址定位技术的应用场景

    随着科技的不断发展,网络空间已经成为人们生活中重要的一部分。而其中,IP地址定位技术又是网络空间不可或缺的一部分。IP地址定位技术是一种可以根据IP地址确定用户位置的技术这项技术不仅可以用于个人定位,也可以使用在商业领域、网络安全和政府管理等方面。本

    2024年02月11日
    浏览(39)
  • IP定位技术在网络安全行业的探索

    随着互联网的普及和深入生活,网络安全问题日益受到人们的关注。作为网络安全领域的重要技术,IP定位技术正逐渐成为行业研究的热点。本文将深入探讨IP定位技术在网络安全行业的应用和探索。 一、IP定位技术的概述 IP定位技术是通过IP地址来确定设备地理位置的一种技

    2024年01月21日
    浏览(53)
  • 网络层:IP数据报的发送和转发过程

    笔记来源: 湖科大教书匠:IP数据报的发送和转发过程 声明:该学习笔记来自湖科大教书匠,笔记仅做学习参考 IP数据报的发送和转发过程包含两个部分: 主机发送IP数据报 路由器转发IP数据报 通信两主机若同属一个网络,则为直接交付 通信两主机若不属于同一个网络,则

    2024年02月10日
    浏览(49)
  • 计算机网络基础(静态路由,动态路由,公网IP,私网IP,NAT技术)

    文章目录 一:静态路由和动态路由 二:静态路由的配置路由信息的方式演示 三:默认路由 四:公网IP和私网IP和NAT技术的基本理解 在说静态路由和动态路由前,我们需要来了解一下,如下网络, 如何让各个计算机之间能够进行通信!! 首先观察计算机0和计算机1的通信情况

    2024年02月14日
    浏览(42)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包