`
edgar108
  • 浏览: 33424 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

IP分片

阅读更多

       当Ip数据报的长度超过贞的MTU时,将被分片传输。IP头部中的三个字段给IP的分片和重组提供了足够的信息:数据报标识,标志和片偏移。一个IP数据报的每个分片都具有自己的IP头部,它们具有相同的标识值,但具有不同的片偏移,并且除了最后的一个分片外,其他分片都将设置MF标志,此外,每个分片的IP头部的总长度字段将被设置为该片的长度。

      以太网帧的MTU是1500字节,因此它携带的IP数据报的数据部分最多是1480字节(IP头部占用20字节)。考虑用IP数据报封装一个长度为1481字节的ICMP报文(包括8字节的ICMP头部,所以其数据部分长度为1473字节),则该数据报在使用以太网帧传输时必须被分片。

例如,长度为1501字节的IP数据报,会被拆成2个IP分片,第一个IP分片为1500字节,第二个IP分片长度为21字节。每个IP分片都包含自己的IP头部(20字节),且第一个IP分片的IP头部设置了MF标志,而第二个IP分片的IP头部没有设置MF标志,因为是最后一个分片。原始IP数据报的ICMP头部内容被完整的复制到了第一个IP分片中,第二个IP分片不包含ICMP头部信息,因为IP模块重组该ICMP报文的时候,只需要一ICMP头部信息,重复传递这个信息没有任何益处。1473字节(1500 -20IP头部-8ICMP头部 +1)的ICMP报文数据的前1472字节被IP模块复制到第一个IP分片中,其总长度为1500字节,从而满足MTU的要求,而多出的最后一个字节责备复制到第二个IP分片中(21字节)。

      另外,ICMP报文的头部长度取决于报文的类型,其变化范围很大,ping程序使用的ICMP回显和应答报文的头部长度是8字节。

      用ping程序举例:

ping -s 1473 -c 1 192.168.1.106   用 tcpdump抓包:

sudo tcpdump -ntv -i enp0s3 icmp #只抓取icmp报文

 

      看前4行,两个ip分片的知识都是39125,说明它们是同一个IP数据报的分片。第一个分片的片偏移值为0,第二个则是1480,很显然,第二个分片的片偏移值实际上是第一个分片的ICMP报文长度。第一个分片设置了MF标志以表示还有后续分片,所以tcpdump输出"flags[+]".而第二个分片没有设置任何标志。所以tcpdump输出"flags[none]".这两个分片的长度分别为1500和21字节。

 

 

  • 大小: 56.7 KB
分享到:
评论

相关推荐

    IP分片与重组的分析与整理

    ### IP分片与重组的分析与整理 #### 1. 原理 ##### 1.1 为一个数据包片再次分片 为数据包分片和为数据包片再次分片之间的主要区别在于网关如何处理MF(More Fragments)比特。当一个网关对未分片的数据包进行首次...

    IP分片与重组的分析与整理.doc

    ### IP分片与重组的分析与整理 #### 1. 原理 ##### 1.1 为一个数据包片再次分片 在互联网通信过程中,数据包可能需要通过不同最大传输单元(MTU)的网络进行传输。当一个数据包过大无法直接通过某个网络时,就...

    IP分片重组算法(RFC815)的实现及其改进

    ### IP分片重组算法(RFC815)的实现及其改进 #### 一、引言 随着互联网技术的发展,IP分片与重组成为了IP机制中不可或缺的一部分。IP数据报在网络传输过程中,可能会遇到不同网络之间的最大传输单元(MTU)差异...

    ip分片重组及tcp分段重组具体实现

    在深入探讨“ip分片重组及tcp分段重组具体实现”这一主题之前,首先要明确IP分片和TCP分段的概念。IP分片是IP层的一种机制,用以将一个较大的IP数据包分割成多个小的数据包以便在网络中传输。因为不同的网络链路可能...

    ip分片 tcp分段

    IP 分片和 TCP 分段原理 IP 分片是指在数据传输过程中,为了避免数据超过网络的 MTU(Maximum Transmission Unit),将数据分割成多个小的数据包,以便在网络中传输。这是因为,某些协议如 UDP 和 ICMP,它们不支持...

    IP分片时为啥片中数据长度要求为8字节的整数倍

    IP分片是互联网协议(IP)中处理网络层传输的一个重要过程,它将大数据报分割成更小的片段,以适应不同网络的MTU(最大传输单元)。在RFC 791文档中,规定了互联网协议的正式规范,其中包括了关于分片和重组的详细...

    ip 分片代码(用于虚拟网络教学系统)

    这段代码是用于模拟和处理IP分片的程序,主要针对虚拟网络教学系统。IP分片是在IP层(网络层)为了适应传输层的数据报文过大,无法通过某些网络的MTU(最大传输单元)限制时,将数据包分割成较小的部分进行传输的...

    ip分片的模拟源代码。已经在vc环境下实现

    IP分片是网络通信中的一个重要概念,特别是在TCP/IP协议栈中。它涉及到当一个大型的数据报文无法在单个IP数据包中传输时,如何将其分割成多个小块以便通过网络进行传输。这些小块被称为IP分片。当接收端接收到这些分...

    高效IP分片重组的设计与实现.pdf

    《高效IP分片重组的设计与实现》一文深入探讨了IP分片及重组技术在FPGA中的实现,这是TCP/IP协议栈中IP层的关键功能之一。文章首先剖析了网络环境中导致IP分片产生的原因,接着详述了IP分片重组的具体流程,并提出了...

    基于FPGA的IP分片重组的实现.pdf

    基于FPGA的IP分片重组实现 一、背景介绍 在计算机网络中,IP分片问题是指一个较大的IP数据报在网络中传输时,可能因传输路径中的最大传输单元(MTU)限制而被拆分成多个小的数据片进行传输。这些小的数据片在网络...

    IP分片.pcapng

    用于分析IP分片的wireshark抓包文件,IP分片解析文章地址:https://blog.csdn.net/Firefly_cjd/article/details/110366657

    IP分片重组

    亲自写的,很有用,希望能对大家有帮助,里面主要介绍了IP分片重组的概念、方法以及在Linux下进行操作所需要的代码

    基于fpga的ip分片重组的实现

    基于fpga的ip分片重组的实现,文中详细介绍了相关内容

    实验五-IP包解析与分片重组的编程实现.rar_IP重组_ip分片与重组_ip分片重组_thosee3k

    本实验的目标是理解和实现IP分片与重组的过程,以确保数据的完整传输。 IP分片是指当一个IP数据包的总长度超过了沿途某个网络节点的MTU时,路由器会将该数据包拆分成若干个较小的片段进行传输。每个分片都包含原...

    关于IP分片的一篇小论文

    《IP分片:原理、影响与安全》 IP分片是TCP/IP协议栈中的一个重要机制,主要用于解决因网络层数据包大小超过链路层的最大传输单元(MTU)而导致的传输问题。本文将深入探讨IP分片的概念、原因、工作原理,以及由此...

    IP分片技术

    ### IP分片技术详解 #### 引言 在互联网通信中,数据的传输并非一帆风顺,尤其是在不同网络间的数据传递过程中。由于各网络的物理特性与技术限制,如链路层的最大传输单元(Maximum Transmission Unit,MTU),...

    DPDK IP分片与重组设计实现.pdf

    This document provides software architecture information, development environment information and optimization guidelines.For programming examples and for instructions on compiling and running each ...

    IP分片技术及其故障处理.pdf

    摘要:因为IP不允许分片而导致报文丢弃的故障现象通常是:绝大部分网站和应用都可以正常使用,但个别网站打不开,某些应用(如收发邮件等)无法正常使用,通过ping命令测试到目的...关键词:IP分片原理; 故障分析; 修改; 值;

    模拟IP(INTERNET PROTOCOL)数据分片和重组

    IP协议在处理大数据包时,可能会遇到网络路径中最大传输单元(Maximum Transmission Unit, MTU)的限制,这时就需要将大包分成若干小片进行传输,这个过程称为IP分片。而在接收端,这些数据片需要重新组合成原始的...

Global site tag (gtag.js) - Google Analytics