精华内容
下载资源
问答
  • IP分片原理

    2015-08-06 10:59:58
    浅析IP分片原理 IP分片是网络上传输IP报文的一种技术手段。IP协议在传输数据包时,将数据报文分为若干分片进行传输,并在目标系统中进行重组。 不同的链路类型规定有不同最大长度的链路层数据帧,称为链路层MTU...
    浅析IP分片原理
    IP分片是网络上传输IP报文的一种技术手段。IP协议在传输数据包时,将数据报文分为若干分片进行传输,并在目标系统中进行重组。
    不同的链路类型规定有不同最大长度的链路层数据帧,称为链路层MTU(最大传输单元)。常见以太网的MTU1500,若IP协议在传输数据包时,IP报文长度大于转发接口的MTU,则将数据报文分为若干分片进行传输,分片报文到达接收方时,由接收方完成重组。
    对于不同的传输层协议,在IP层上,需不需要进行分片是不同的:
    对于TCP来说,它是尽量避免分片的。因为当在IP层进行了分片后,如果其中的某片数据丢失,则需对整个数据报进行重传。因为IP层本身没有超时重传机制,当来自TCP报文段的某一片丢失后,TCP在超时后重发整个TCP报文段,该报文段对应于一份IP数据报,没有办法只重传数据报中的一个数据报片。而且如果对数据报分片的是中间路由器,而不是起始端系统,那么起始端系统就无法知道数据报是如何被分片的,因此基于这种原因,TCP是经常要避免分片的。
    那么TCP层是如何避免IP层的分片呢?首先,TCP在建立连接时会进行3次握手,而在这3次握手中,客户端和服务端通常会协商一个值,那就是MSS(最长报文大小),用来表示本段所能接收的最大长度的报文段。MSS=MTU-TCP首部大小-IP首部大小,MTU值通过查询链路层得知。
    当两端确认好MSS后进行通信,TCP层往IP层传输数据时,如果TCP层缓冲区的大小大于MSS,那么TCP层都会将其中的数据分组进行传输,这样就避免了在IP层进行分片。

    对于UDP而言,由于UDP是不需要保证可靠性的,没有超时和重传机制,这使得UDP很容易导致IP分片。
    那么数据报被分片后是怎样的呢,又是以何种算法进行分片呢?首先我们回忆IP首部:

    对于每份IP数据报来说,其16位标识字段都包含一个唯一值。在数据报被分片时,这个值同时被复制到每个片中。

    IP首部中,我们看到有一个占了3位的标志字段,其中第1位作为保留字段;第2位分段用来表示一个数据报是否允许在IP层被分片;而第3位更多分片字段,则是当数据报被分片时,让接收端知道在什么时候完成所有的分片组装,除了最后一片外,其他每个组成数据报的片都要把该比特置1

    而如果将其中的分段标志比特位置1,表示不允许IP层对数据报进行分片。例如当路由器收到一份需要分片的数据报,而在IP首部又设置了不分片(DF)的标志比特,路由器会丢弃数据报并发送一个ICMP差错报文(“需要进行分片但设置了不分片比特”)。

    IP首部中13位的偏移量字段表示IP分片在整个数据流中的位置,第一个数据报分片的偏移量置为0,而后续的分片偏移量则是根据网络的MTU大小设置,且必须为8的整数倍。

    需要注意的是,任何传输层的首部只出现在第一片数据中,后续报文均不带传输层信息。


    这是IP分片的第一个数据分片,可以看出其IP的上层协议为ICMP协议,而在后续的分片报文中却无法看到上层协议的具体信息。

    接收方在收到经过IP层分片的数据报文后,首先根据分片标志中的更多分段位判断是否是最后一个分片报文,如果是,则根据分片偏移量计算各个分片报文在原始数据报中的位置,进行重组。如果不是最后一个分片,则需等待所有分片到达后再完成重组。
    分片带来的问题:

    1.分片带来的性能消耗

    分片和重组会消耗发送方、接收方一定的CPU等资源,如果存在大量的分片报文的话,可能会造成较为严重的资源消耗;
    分片对接收方内存资源的消耗较多,因为接收方要为接收到的每个分片报文分配内存空间,以便于最后一个分片报文到达后完成重组。

    2.分片丢包导致的重传问题

    如果某个分片报文在网络传输过程中丢失,那么接收方将无法完成重组,如果应用进程要求重传的话,发送方必须重传所有分片报文而不是仅重传被丢弃的那个分片报文,这种效率低下的重传行为会给端系统和网络资源带来额外的消耗。

    3.分片攻击

    黑客构造的分片报文,但是不向接收方发送最后一个分片报文,导致接收方要为所有的分片报文分配内存空间,可由于最后一个分片报文永远不会达到,接收方的内存得不到及时的释放(接收方会启动一个分片重组的定时器,在一定时间内如果无法完成重组,将向发送方发送ICMP重组超时差错报文,,只要这种攻击的分片报文发送的足够多、足够快,很容易占满接收方内存,让接收方无内存资源处理正常的业务,从而达到DOS的攻击效果。

    4.安全隐患

    由于分片只有第一个分片报文具有四层信息而其他分片没有,这给路由器、防火墙等中间设备在做访问控制策略匹配的时候带来了麻烦。
    如果路由器、防火墙等中间设备不对分片报文进行安全策略的匹配检测而直接放行IP分片报文,则有可能给接收方带来安全隐患和威胁,因为黑客可以利用这个特性,绕过路由器、防火墙的安全策略检查对接收方实施攻击;
    如果路由器、防火墙等中间设备对这些分片报文进行重组后在匹配其安全策略,那么又会对这些中间设备的资源带来极大的消耗,特别是在遇到分片攻击的时候,这些中间设备会在第一时间内消耗完其所有内存资源,从而导致全网中断的严重后果。

    展开全文
  • 浅析IP分片原理

    千次阅读 2014-01-29 14:02:30
    浅析IP分片原理 IP分片是网络上传输IP报文的一种技术手段。IP协议在传输数据包时,将数据报文分为若干分片进行传输,并在目标系统中进行重组。 不同的链路类型规定有不同最大长度的链路层数据帧,称为链路...
    浅析IP分片原理

    IP分片是网络上传输IP报文的一种技术手段。IP协议在传输数据包时,将数据报文分为若干分片进行传输,并在目标系统中进行重组。


    不同的链路类型规定有不同最大长度的链路层数据帧,称为链路层MTU(最大传输单元)。

    常见以太网的MTU1500,若IP协议在传输数据包时,IP报文长度大于转发接口的MTU,则将数据报文分为若干分片进行传输,分片报文到达接收方时,由接收方完成重组。


    对于不同的传输层协议,在IP层上,需不需要进行分片是不同的:

            对于TCP来说,它是尽量避免分片的。因为当在IP层进行了分片后,如果其中的某片数据丢失,则需对整个数据报进行重传。因为IP层本身没有超时重传机制,当来自TCP报文段的某一片丢失后,TCP在超时后重发整个TCP报文段,该报文段对应于一份IP数据报,没有办法只重传数据报中的一个数据报片。而且如果对数据报分片的是中间路由器,而不是起始端系统,那么起始端系统就无法知道数据报是如何被分片的,因此基于这种原因,TCP是经常要避免分片的。


    那么TCP层是如何避免IP层的分片呢?

    首先,TCP在建立连接时会进行3次握手,而在这3次握手中,客户端和服务端通常会协商一个值,那就是MSS(最长报文大小),用来表示本段所能接收的最大长度的报文段。MSS=MTU-TCP首部大小-IP首部大小,MTU值通过查询链路层得知。

    当两端确认好MSS后进行通信,TCP层往IP层传输数据时,如果TCP层缓冲区的大小大于MSS,那么TCP层都会将其中的数据分组进行传输,这样就避免了在IP层进行分片。

    对于UDP而言,由于UDP是不需要保证可靠性的,没有超时和重传机制,这使得UDP很容易导致IP分片。

    那么数据报被分片后是怎样的呢,又是以何种算法进行分片呢?

    首先我们回忆IP首部:

    对于每份IP数据报来说,其16位标识字段都包含一个唯一值。在数据报被分片时,这个值同时被复制到每个片中。

    IP首部中,我们看到有一个占了3位的标志字段,其中第1位作为保留字段;第2位分段用来表示一个数据报是否允许在IP层被分片;而第3位更多分片字段,则是当数据报被分片时,让接收端知道在什么时候完成所有的分片组装,除了最后一片外,其他每个组成数据报的片都要把该比特置1

    而如果将其中的分段标志比特位置1,表示不允许IP层对数据报进行分片。例如当路由器收到一份需要分片的数据报,而在IP首部又设置了不分片(DF)的标志比特,路由器会丢弃数据报并发送一个ICMP差错报文(“需要进行分片但设置了不分片比特”)。

    IP首部中13位的偏移量字段表示IP分片在整个数据流中的位置,第一个数据报分片的偏移量置为0,而后续的分片偏移量则是根据网络的MTU大小设置,且必须为8的整数倍。

    需要注意的是,任何传输层的首部只出现在第一片数据中,后续报文均不带传输层信息。


    这是IP分片的第一个数据分片,可以看出其IP的上层协议为ICMP协议,而在后续的分片报文中却无法看到上层协议的具体信息。

    接收方在收到经过IP层分片的数据报文后,首先根据分片标志中的更多分段位判断是否是最后一个分片报文,如果是,则根据分片偏移量计算各个分片报文在原始数据报中的位置,进行重组。如果不是最后一个分片,则需等待所有分片到达后再完成重组。
    分片带来的问题:

    1.分片带来的性能消耗

    分片和重组会消耗发送方、接收方一定的CPU等资源,如果存在大量的分片报文的话,可能会造成较为严重的资源消耗;
    分片对接收方内存资源的消耗较多,因为接收方要为接收到的每个分片报文分配内存空间,以便于最后一个分片报文到达后完成重组。

    2.分片丢包导致的重传问题

    如果某个分片报文在网络传输过程中丢失,那么接收方将无法完成重组,如果应用进程要求重传的话,发送方必须重传所有分片报文而不是仅重传被丢弃的那个分片报文,这种效率低下的重传行为会给端系统和网络资源带来额外的消耗。

    3.分片攻击

    黑客构造的分片报文,但是不向接收方发送最后一个分片报文,导致接收方要为所有的分片报文分配内存空间,可由于最后一个分片报文永远不会达到,接收方的内存得不到及时的释放(接收方会启动一个分片重组的定时器,在一定时间内如果无法完成重组,将向发送方发送ICMP重组超时差错报文,,只要这种攻击的分片报文发送的足够多、足够快,很容易占满接收方内存,让接收方无内存资源处理正常的业务,从而达到DOS的攻击效果。

    4.安全隐患

    由于分片只有第一个分片报文具有四层信息而其他分片没有,这给路由器、防火墙等中间设备在做访问控制策略匹配的时候带来了麻烦。
    如果路由器、防火墙等中间设备不对分片报文进行安全策略的匹配检测而直接放行IP分片报文,则有可能给接收方带来安全隐患和威胁,因为黑客可以利用这个特性,绕过路由器、防火墙的安全策略检查对接收方实施攻击;
    如果路由器、防火墙等中间设备对这些分片报文进行重组后在匹配其安全策略,那么又会对这些中间设备的资源带来极大的消耗,特别是在遇到分片攻击的时候,这些中间设备会在第一时间内消耗完其所有内存资源,从而导致全网中断的严重后果。

    above original link:http://support.huawei.com/ecommunity/bbs/10161111.html


    ip分片与tcp分组的区别:

    1,MTU(Maximum Transmission Unit,MTU),最大传输单元

     (1)以太网和802.3对数据帧的长度都有一个限制,其最大值分别是1500和1492个字节。链路层的这个特性称作MTU。不同类型的网络大多数都有一个上限。如果IP层有一个数据要传,且数据的长度比链路层的MTU还大,那么IP层就要进行分片(fragmentation),把数据报分成若干片,这样每一个分片都小于MTU。

     (2)把一份IP数据报进行分片以后,由到达目的端的IP层来进行重新组装,其目的是使分片和重新组装过程对运输层(TCP/UDP)是透明的。由于每一分片都是一个独立的包,当这些数据报的片到达目的端时有可能会失序,但是在IP首部中有足够的信息让接收端能正确组装这些数据报片。

     (3)尽管IP分片过程看起来透明的,但有一点让人不想使用它:即使只丢失一片数据也要重新传整个数据报。why?因为IP层本身没有超时重传机制------由更高层(比如TCP)来负责超时和重传。当来自TCP报文段的某一片丢失后,TCP在超时后会重发整个TCP报文段,该报文段对应于一份IP数据报(而不是一个分片),没有办法只重传数据报中的一个数据分片。

     (4)使用UDP很容易导致IP分片,TCP试图避免IP分片。那么TCP是如何试图避免IP分片的呢?其实说白了,采用TCP协议进行数据传输是不会造成IP分片的,因为一旦TCP数据过大,超过了MSS,则在传输层会对TCP包进行分段(如何分,见下文!),自然到了IP层的数据报肯定不会超过MTU,当然也就不用分片了。而对于UDP数据报,如果UDP组成的IP数据报长度超过了1500,那么IP数据报显然就要进行分片,因为UDP不能像TCP一样自己进行分段。总结:UDP不会分段,就由我IP来分。TCP会分段,当然也就不用我IP来分了!

    2,MSS(Maxitum Segment Size)最大分段大小的缩写,是TCP协议里面的一个概念

     (1)MSS就是TCP数据包每次能够传输的最大数据分段。为了达到最佳的传输效能TCP协议在建立连接的时候通常要协商双方的MSS值,这个值TCP协议在实现的时候往往用MTU值代替(需要减去IP数据包包头的大小20Bytes和TCP数据段的包头20Bytes)所以往往MSS为1460。通讯双方会根据双方提供的MSS值得最小值确定为这次连接的最大MSS值。

            (2)相信看到这里,还有最后一个问题:TCP是如何实现分段的呢?其实TCP无所谓分段,因为每个TCP数据报在组成前其大小就已经被MSS限制了,所以TCP数据报的长度是不可能大于MSS的,当然由它形成的IP包的长度也就不会大于MTU,自然也就不用IP分片了


    above original link: http://sns.clnchina.com.cn/space.php?uid=365149&do=blog&id=4366






    展开全文
  • 理解IP数据分片原理

    2020-11-11 16:53:49
    第一个分片片偏移为0x0,说明它是第一个分片; 第二个分片片偏移0x5c8,说明它在分片中的位置,转换为十进制为1480; 第三个分片片偏移0xb90,说明它在分片中的位置,转换为十进制为2960; 同时前两个分片的TL为1500,...

    假设网络MTU为1500字节,使用Packet Tracer发送一个超大报文(3600字节),观察报文被分成了几片,每片报文首部有什么差别,有差别字段的数字的意义是什么?
    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述
    可以看到3600字节的报文被分成了三片。
    第一个分片片偏移为0x0,说明它是第一个分片;
    第二个分片片偏移0x5c8,说明它在分片中的位置,转换为十进制为1480;
    第三个分片片偏移0xb90,说明它在分片中的位置,转换为十进制为2960;
    同时前两个分片的TL为1500,第三个分片的TL为668。

    展开全文
  • IP数据包分片原理

    2020-11-15 19:15:27
    一.首先在Packet Tracer中搭建网络拓扑,用交叉电缆连接,并配置ip地址 二.... 输入exit返回全局模式,再按刚才的步骤配置0/2参数地址 三....1.1500+668+1500=3668,即原数据3600字节,...2.0×1代表还有一个分片,0×0代

    一.首先在Packet Tracer中搭建网络拓扑,用交叉电缆连接,并配置ip地址

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

    二.配置路由器

    在这里插入图片描述
    在这里插入图片描述输入exit返回全局模式,再按刚才的步骤配置0/2参数地址

    三.切换到Simulation模式,创建一个复杂的数据包,数据包的大小为3600字节

    在这里插入图片描述
    数据被分为了三节
    在这里插入图片描述

    数据包的数据为
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    对比发现各个首部的不同之处为:
    1.1500+668+1500=3668,即原数据3600字节,因为分成三片,每片加一个首部20字节,以及ICMP报文8字节,总和为3668字节
    2.0×1代表还有一个分片,0×0代表此片为最后一片
    3.片偏移0×0,说明是第一片;而0×5c8,0×b90则分别代表分片时的位置

    展开全文
  • IP分片原理及分析

    千次阅读 2014-05-19 21:58:51
    在IP协议中的分片算法主要解决不同物理网络最大传输单元(MTU) 的不同造成的传输问题。但是分组在传输过程中不断地分片和重组会带来很大的工作量还会增加一些不安全的因素。我们将在这篇小论文中讨论IP分片的原因、...
  • IP分片原理&分析

    千次阅读 2016-07-20 19:11:55
    分片是分组交换的思想体现,也是IP 协议解决的两个主要问题之... IP分片网络上传输IP报文的一种技术手段。IP协议在传输数据包时,将数据报文分为若干分片进行传输,并在目标系统中进行重组。这一过程称为分片( fra
  • 区块链分片技术原理介绍

    万次阅读 2019-03-18 14:53:42
    分片原理 分片其实是一种传统数据库技术,它将大型数据库分成更小、更快、更容易管理的部分,这些部分叫做数据碎片。 在公链中,它是通过使用多个网络设备来获得平行处理转账的功能,从而分散那些转账验证的工作...
  • 1.搭建IP数据报分片重组网络拓扑 2.完成路由器和 PC的基本配置 3.输入命令 show interfaces gigabitEthernet0/0 ,查看路由器的吉比特以太网接口 gigabitEthernet0/0 的MTU参数,MTU的参数值是1500字节。 4.把 ...
  • 三层网络设备对于IP报文的分片和重组处理原理对于网络分片,我一年前就想整理出来,虽然说网络上的资料很多,但是真正掌握精髓的除非真正做过分片程序,不然很难将协议栈整体联系起来理解。这篇文章,包括设计分片...
  • 如何扩展以太坊:分片原理解释

    千次阅读 2019-05-12 08:58:14
    以太猫游戏阻塞整个以太坊网络数天的重大事件的发生,让我们知道了最大的公有链在当前状态下无法扩展。 所以社区决定采取什么方法呢?有两种解决方案。第一种是通过脱链的方式(也叫做第二层扩展)来提高扩展性,让...
  • 1.首先我们在Packet Tracer中搭建网络拓扑 2.完成路由器和PC的基本配置 点击PC,打开Desktop界面进行配置 点击路由器打开CLI界面进行配置 3.查看路由器Connection的吉比特以太网接口gigabitEthernet0/0的MTU参数...
  • 对于网络分片,我一年前就想整理出来,虽然说网络上的资料很多,但是真正掌握精髓的除非真正做过分片程序,不然很难将协议栈整体联系起来理解。这篇文章,包括设计分片原理图,耗时一小时完成,算是记录一点理解。 ...
  • 假设网络MTU为1500,我们用Packet Tracer发送一个超文(3600字节),之后会产生四个分片,如下图所示: ![在这里插入图片描述](https://img-blog.csdnimg.cn/20201112163134225.jpg?x-oss-process=image/watermark,...
  • 假设网络MTU为1500字节,使用Packet Tracer发送一个超大报文(3600字节),观察报文被分成了几,每报文首部有什么区别,有差别字段的数字意义是什么? 一.搭建下图所示的网络拓补 因为没有配置IP地址,所以没有...
  • 在IP协议中的分片算法主要解决不同物理网络最大传输单元(MTU) 的不同造成的传输问题。但是分组在传输过程中不断地分片和重组会带来很大的工作量还会增加一些不安全的因素。IP分片网络上传输IP报文的一种技术手段。...
  • 版权归原作者所有 更多资源请访问 攻城狮论坛 / 计算机网络协议原理实验教程 实验六 网络分片实验 实验目的 1理解IP 分片过程 2掌握IP 分片是数据报头的变化 实验学时 1 学时 实验环境 图 3-39 实验拓扑图 实验...
  • 通过ANFIS程序的编写,理解和掌握分片连续线性逼近的一些原理,了解隶属函数解决分片不连续性的原理、前馈神经网络的后向传播求梯度的方法以及区域划分数目对逼近效果的影响。
  • ip数据包分片原理

    2020-11-15 09:47:34
    先搭建一个网络拓补,配置pc跟路由器 创建一个复杂的数据包大小为3600(大于MTU值) IP数据包被分片成两个...第一个数据包总长度为1500字节,第二个数据包总长度为第2个分片片偏移0*B90,转换成十进制为2960, ...
  • 在IP协议中的分片算法主要解决不同物理网络最大传输单元(MTU) 的不同造成的传输问题。但是分组在传输过程中不断地分片和重组会带来很大的工作量还会增加一些不安全的因素。我们将在这篇小论文中讨论IP分片的原因、...
  • IP数据报分片原理

    2020-11-15 14:21:34
    标题 重组网络拓扑完成pc的ip地址填写和基本配置 在路由器的CLI中填写PC的IP地址 全部配置好后进入...查看分片数据包 查看包分片标识 继续查看 所以第一个数据包总长度为1480个字节,第二个为48个字节。 ...
  • 五-1、分片的原因: 在一个搜索里存储的数据,潜在的情况下可能会超过单个节点的硬件的存储限制,为了解决这个问题,elasticsearch便提供了分片的功能。它可以将索引划分为多个分片,当你创建一个索引的时候,你就...
  • 区块链分片技术

    千次阅读 2019-05-21 13:16:08
    文章目录区块链分片技术一、要点总结二、原理及类型2.1 分片原理''分片可以降低单个节点的工作量2.2 分片类型''网络分片是交易分片和状态分片的基础三、必要性分析3.1 公链的可扩展性问题''目前区块链的基础设施无法...
  • 导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制,以及程控玩具、等等...
  • 计算机网络与通信原理实验报告 1.IP地址设置及常用命令使用 2.以太网帧格式分析 3.ARP协议分析 4.ICMP协议分析 5.IP协议与分片分析 6.TCP协议与UDP协议分析 7.HTTP协议分析 8.FTP协议分析
  • IP分片

    2017-08-03 21:10:31
    分片是分组交换的思想体现,也是IP协议解决的两个主要问题之一。...我们将在这篇小论文中讨论IP分片的原因、原理、实现以及引起的安全问题。 一、什么是IP分片  IP分片网络上传输IP报文的一种技术手

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 429
精华内容 171
关键字:

网络分片原理