IP数据报如何分段到达目的之后如何重组

news/2024/5/17 19:25:22 标签: tcp, 网络
当数据报经过N个不同类型的网络后会因其MTU不足够大 而无法将整个数据报传过去。所以将数据报分段 到达目的之后重组。

我想知道 这些IP数据报是根据什么分成段 到达目的之后又依据什么将零散的段重组呢。

(传闻是有几个标志标识了哪个地方是IP首部或TCP首部这些的。 )


ip数据包包头内部有一个16位的标识来区分每一个ip数据包,同时3位的标志位中有一位来表示“更多分片”,
也就是说这一位置位的时候表示该ip包被分片了并且当前这一片还不是最后一片,如果是最后一片的话就是置0的。
还有一个13位的偏移字段表示当前ip包(如果是分片)在原包中所处的偏移位置。对了,分片的每个ip包的长度字段表示的是当前分片的长度。
因此有了上面这些信息就可以在最后一片到达目的主机的时候能够将所有的分片进行重组。ip分片的时候是与上层协议(TCP)不相关的。
流程如下:ip包在途经MTU比较小的路线的时候会将ip包进行分片,理论上除了最后一片外前面的所有分片都是将送往的链路的MTU大小,
然后每一个分片的ip标识以及源目的ip等都相同,但除了最后一个分片外标志位中的“更多分片”字段位被置为1,并且偏移字段和长度字段也被填写为适当的值。
当分片到达目的主机后再根据上面的这些信息进行重组。


http://www.niftyadmin.cn/n/566981.html

相关文章

Java SystemUtil操作系统工具类源码

package com.util public class SystemUtil{/*** 判断操作系统* return boolean truewindows falselinux*/public static boolean isWindowsOS() {boolean isWindowsOS false;String osName System.getProperty("os.name");if (osName.toLowerCase().indexOf("…

计算机 习题汇总

1.路由的选择:包括静态路由选择(最短路径选择算法 随机路径选择算法 基于流量的路径选择算法 扩散式路径选择 ) 动态路由选择(距离矢量路由选择 链路转台路由选择) 链路状态路由选择算法 具体步骤: 1.发…

TCP 滑动窗口用以进行流量控制

滑动窗口协议原理是:对所有数据帧按顺序赋予编号,发送方在发送过程中始终保持着一个发送窗口,只有落在发送窗口内的帧才允许被发送;同时接收方也维持着一个接收窗口,只有落在接收窗口内的帧才允许接收。 通过调整发送方…

IDEA常用小技巧

1、设置Tab页的最大个数 idea 默认只能同时存在10个Tab页,超过将会关闭最先打开的Tab页 File->Setting->Editor->General->Editor Tabs->Closing Policy->Tab limit设置50 这样就能同时存在50个Tab页。 2、设置代码的字体大小 idea默认字体大…

TCP 滑动窗口协议 详解

滑动窗口机制 (1).窗口机制 滑动窗口协议的基本原理就是在任意时刻,发送方都维持了一个连续的允许发送的帧的序号,称为发送窗口;同时,接收方也维持了一个连续的允许接收的帧的序号,称为接收窗口。发送窗口和接收窗…

Java 两个浮点数是否相等

浮点数由于精度丢失的原因不能使用 进行直接比较&#xff0c;只能使用 < 和> 这两个运算符来比较大于或者小于&#xff0c;如果实在需要比较两个浮点数是否相等。请参考以下两种方式&#xff1a; 1、使用阀值的方式 public boolean equalsThreshold(double d1,double …

面向对象方法和结构化方法比较,形式化方法的实际运用困难,及如何结合使用这三种

1.面向对象方法和结构化方法相比&#xff0c;各有何优缺点&#xff1f;&#xff1f; 2.形式化方法在实际运用中有何困难&#xff1f;&#xff1f; 3.怎样是实际应用中结合使用这三种方法&#xff1f;&#xff1f;&#xff1f; 1.结构化方法最为成熟&#xff0c;对于预先制定需…

IDEA 出现Module “**“ must not contain source root “**“. The root already belongs to module ”**“问题解决

具体错误&#xff1a; Module "XudongMaster_V1_0" must not contain source root "D:\idea 2015\XudongMaster_V1_0\CommonService\src\main\java". The root already belongs to module "CommonService" 解决办法&#xff1a; 以上报错的意…