精华内容
下载资源
问答
  • IP数据包分片

    千次阅读 2018-02-23 13:57:26
    一般的ping则一切正常,结合 wireshark对数据包进行分析,发现过大的数据包传输过程中会进行分片,而代码处理过程中并为对此进行处理。现对相关基础知识进行总结。 2. IP数据包简介 整个ip数据包中,包含了...

    1. 缘由:

    维护我司老代码,偶然发现在ping过大的数据包时候,映射到上层(非TCP/IP协议栈)的协议不正确。一般的ping则一切正常,结合 wireshark对数据包进行分析,发现过大的数据包传输过程中会进行分片,而代码在处理过程中并为对此进行处理。现对相关基础知识进行总结。

    2. IP数据包简介

    这里写图片描述

    整个ip数据包中,包含了首部和数据。其中,如果选项没有数据,则ip首部的长度就为20byte。
    在ip首部中涉及到分片的主要有:总长度,标识,标志,分片偏移
    总长度:整个数据包的长度,包含了首部和数据。所以要得到数据的长度,就用总长度减去首部长度
    标识:当数据被分片,每个分片具有相同的标识,这样就可以识别相同组的分片 分片偏移:用于确定该分片在原未分片数据中的位置

    3. IP分片

    这里我们以ICMP协议为例进行解析。
    查看windows下ping命令的语法,我们可以看到-l参数可以指定发送的数据大小。
    这里写图片描述
    默认情况下,ping数据包默认大小是32字节,此时肯定不会发生IP数据包分片,如下图所示。
    这里写图片描述

    当icmp发送的数据包大于MTU(以太网中,该值一般为1500字节)时,就会在ip层发生分片。
    这里写图片描述
    同一个IP数据包Identification字段一致。
    Flags字段为1时,表示进行数据包分片,此时若Fragment offset表示分片偏量,若为0,则表示是第一个数据包分片。
    Flags字段为0,表示后面没有分片。

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

    2020-11-15 19:15:27
    一.首先Packet Tracer中搭建网络拓扑,用交叉电缆连接,并配置ip地址 二.... 输入exit返回全局模式,再按刚才的步骤配置0/2参数地址 三.切换到Simulation模式,创建一个复杂的数据包...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数据包分片理解

    千次阅读 2011-11-18 16:40:16
    IP数据包分片理解 一、 以太网帧格式如下:    MAC数据包的最小值为46byte,至于这个最小值是因为以太网信道侦听需要,1500byte为规范值。  一般的电脑MTU设置值为1500,就是基于MAC最大封包的考虑。一般的...
      
    

    IP数据包分片理解

    一、     以太网帧格式如下:

         

          MAC数据包的最小值为46byte,至于这个最小值是因为以太网信道侦听需要,1500byte为规范值。

          一般的电脑MTU设置值为1500,就是基于MAC最大封包的考虑。一般的IP包的大小肯定超过1500byte,为了能在MAC帧中传输,必须将IP包进行分片,分成适合传输的MAC帧。

    可以测试发现,当IP数据包的大小超过1500byte时,且不允许分片时,电脑系统拒绝发送此报文,同时提示数据包需要分片。

    使用ICMP包进行测试,因为IP头占用20byte,ICMP头占用8byte,所以ICMP包大小最大为1472byte。测试,使用1472的ICMP报文可以通过,但是使用1473的ICMP不分片报文则不能通过。

    测试1:

     

    抓包如下,1472byte的ICMP报文可以通过不分片进行传输;

     

       测试2:

    因为ICMP报文的大小为3000byte,所以肯定报文要进行分片,抓包如下:

    第一个ICMP报文,满载1472byte。IP包中fragment flags 字段表有后续有Ip分片。

    第二个报文(第一分片)就直接通过IP分片传输,且不包含ICMP头,此IP包承载的大小为1480byte。

    第三个报文(第二分片),承载的数据包大小为48byte,分片结束。此包的整个大小为:1472+1480+48=3000 byte

    展开全文
  • 原作者:Haboob Team翻译:李华峰(邪灵) 介绍本文将介绍 IDS 的工作原理和讨论 IP 数据包分片的重组过程,并研究不同操作系统实现重组时的差异性。IDS(入侵检测系统)简介...

    原作者:Haboob Team

    翻译:李华峰(邪灵)

    介绍

    本文将介绍 IDS 的工作原理和讨论 IP 数据包分片的重组过程,并研究不同操作系统在实现重组时的差异性。

    IDS(入侵检测系统)简介

    IDS(入侵检测系统)的形式多种多样,它可以是一种独立设备,可以是下一代防火墙的一个扩展模块,也可以是运行某种硬件设备上的软件。IDS会检测到网络中那些包含恶意企图的流量,或者那些违反了安全策略的流量;IDS会将这些流量的信息报告给网络安全管理员。在某些组织机构中,这些违规信息会报告给“安全信息与事件管理系统”(SIEM),网络安全管理员可以在SIEM系统中创建关联规则,以便实现对某一系列活动的监控。

    IDS既可以部署为基于网络的入侵检测系统NIDS,也可以部署为基于主机的入侵检测系统HIDS。例如只需要监控一台工作站设备A的流量,并且将IDS部署在了A上,那么这就是一个典型的HIDS部署方式。而需要监控一个网络的流量,并且将IDS部署在了一个独立设备上,这就是一个NIDS部署方式。

    根据工作原理的不同,IDS也可以被分成以下几类。

    大多数IDS是采用基于特征值(Signature-based)的机制来实现入侵检测,这会涉及到字符串与IOC。

    第2种是基于异常(anomaly-based)的检测,如果使用机器学习的方式,基于异常的检测需要消耗更多的计算机资源。

    第3种是基于可信度(reputation-based),根据已知真实威胁来建立可信度评估机制。

    有些IDS可以在检测到那些违反了我们设定策略的流量时,采取行动对其进行阻止,我们通常把这种IDS称之为入侵防御系统(译者注:即IPS)。

    IDS(入侵检测系统)工作原理

    IDS可以采用不同的方式来检测恶意流量,最为常见的两种方式分别是模式匹配和异常统计。

    基于特征值(Signature-based)的模式检测

    这种工作方式和杀毒软件的工作原理很像,IDS会根据已知攻击的“特征值”或者某些特定行为来检测流量中是否包含恶意行为。IDS会对接收到的流量中进行监控,如果发现与已知攻击相匹配的流量,就会将其识别为“恶意流量”。IDS的有效性要取决于“特征值”数据库。实际应用中,该数据库应该时刻保持更新。模式匹配类似于指纹判案,刑侦部门可以通过在犯罪现场找到的指纹来指认罪犯,这里的指纹分析就是一种模式匹配。但是模式匹配往往无法捕捉新出现的攻击,因为“特征值”数据库的内容不可能包含之前从未出现过的恶意行为。

    基于异常的检测

    这种工作方式会考虑正常流量与异常流量的区别,这需要首先对正常流量建立一个标准,然后将接收流量与所定义的标准进行比较,得出该流量是否为正常流量。基于异常的检测可以检测出那些之前从未出现过的恶意流量。打个比方,这种工作方式就像巡逻的警察,他们每天都准时出现在城市的某个区域,可以轻易的发现该区域哪里不正常了。当他们看到一些异常的事物时,虽然不一定能知道具体发生了什么,或者谁是罪犯,但是仍然可以推测出可能正有犯罪活动在进行。

    下面列出了一些异常检测的方法。

    l 度量模型(Metric model )

    l 神经网络(Neural network )

    l 机器学习分类(Machine learning classification )

    基于异常的检测存在误报率较高的问题。

     

     

     

    IP数据包分片

    当一个数据包在发往目的地的过程中,它会根据MTU(通常被设置为1500字节)进行分片。由于在到目的地的过程中,该数据包会经过很多个路由设备,因此它可能会被多次分片。下面给出了与分片相关的数据包字段。

    Identification: 每个数据包都有一个唯一的ID,这个数据包的每个分片都使用这个ID。

    Flags: 这个字段用来控制分片。

    Fragment Offset: 该片偏移原始数据包开始处的位置。偏移的字节数是该值乘以8。

    图1 数据包的IP头部

    IP数据包分片示例

    我们来考虑一个实际的问题,当一个数据包的原始大小为1440bytes,而现在它需要通过一个MTU设置为576的路由设备。考虑到数据包的IP头部大小为20bytes,也就是说数据包的内容部分为1420bytes,那么这个数据包将会被分成3个分片。

    分片1:

    l ID值与所有数据包分片相同。

    l Flag设置为MF。(译者注:应该是指MF=1)

    l 总长度为572。

    分片2:

    l ID值与所有数据包分片相同。

    l Flag设置为MF。(译者注:应该是指MF=1)

    l 总长度为572。

    分片3:

    l ID值与所有数据包分片相同。

    l Flag设置为DF。(译者注:应该是指MF=0)

    l 总长度为336。

    我们可以计算所有分片的总长度。

    (572 –20 ) + (572 –20) + (336 –20) = 1420。

     

    图2 数据包分片信息

     

     

    不同操作系统重组IP数据包分片的方式

    入侵检测系统经常无法准确的检测到威胁,这是因为它们所保护设备的操作系统种类众多,入侵检测系统与这些操作系统在处理和分析数据包的方式也不尽相同。这个差异存在于对数据包多个部分的处理上,例如IP头部,传输层头部等等。其中一个比较重要的就是,当发送到目的主机的多个IP数据包分片存在重叠部分时,几乎所有的操作系统都有不同的处理方式,这就意味着入侵检测系统不能只使用一种重组方式来检测这些IP数据包分片。而另一方面,入侵者也可以利用操作系统与入侵检测系统的差异性来规避和绕过入侵检测系统。

     

    图3  这是5个包含重叠部分的IP数据包分片

    图4中给出了当不同的操作系统接收到了这5个数据包之后是如何将其进行组合的。当两个IP数据包分片的内容存在重叠部分时,其中一些操作系统会优先保全位移较小的数据包,而另外一些则会优先保全位移较大的数据包。

     

    图4 不同的操作系统对包含重叠部分的IP数据包分片的重组方式

    BSD策略,BSD系统采用了一种左侧裁剪法,这种方法会尽量保全位移较小的数据包分片,例如当一个数据包的分片A位移为100,长度为200,而另一个分片B的位移为150,长度为100时。左侧裁剪法就会保全A,而将分片B的150到200的部分裁剪掉,只保留长度为50的后半部分。这一策略在Wright和Stevens的著作中有详尽的描述。目前FreeBSD、AIX、SUN、IRIX、openvms和Wireshark都使用了这种策略。

    BSD右侧优先策略,这种方法与“BSD策略”几乎一样,只是采用了右侧裁剪法,这种方法会尽量保全位移较大的数据包分片。目前HP JetDirect(打印机)就使用了这种策略。

    Linux策略,这种方法与“BSD策略”几乎相同,只有当先到来的数据包分片A与后到来的数据包分片B完全重叠时,分片B将会覆盖分片A的重叠部分,也就是说“后来者居上”。而数据包分片A与数据包分片B只有部分重叠时,处理方式与BSD策略相同。

    先到先得策略,这种方法优先保全先到来的数据包分片。目前Windows, MacOS, SUN,HP-UX, TektrnoixPhaser Printer.都使用了这种策略。

    后到先得/RFC791 策略,这种方法优先保全后到来的数据包分片。目前Cisco IOS以及TektrnoixPhaser Printer的一些型号的设备使用了这种策略。

    解决方案

    1、一些IDS系统包含了“分片保护”功能,但是默认情况下该功能往往是禁用的。虽然有些IDS系统提供了“分片预处理器”,但是如果入侵者构造了针对两种不同操作系统的攻击,仍然是有可能绕过该IDS拦截的。

    2、网络管理员应该启用IDS的“分片预处理器”。

    3、IDS应该与被保护的操作系统使用相同的分片重组处理方式。

    4、网络管理员应该熟悉各种分片重组的原理。

    5、对于snort,应该启用Frag3,将数据包分片重组来完成检测。

    结论

    不同操作系统在对IP数据包分片进行重组时,会采用不同的策略。因此IDS在对IP数据包分片进行检测时,不能只使用一个策略。而对于入侵者来说,这却是一个绝佳的机会,可以以此来规避和绕过IDS。为了应对这个挑战,我们需要实现基于目标的检测( target based detection)。

     

     

    展开全文
  • IP数据包分片 最大传送单元MTU 链路层数据帧可封装数据的上限。 以太网的MTU是1500字节。 数据报头部的标志:同一数据报的分片使用同一标识 笔记总结于王道网课,图片截取自视频,希望对大家有所帮助! ...
  • IP数据包分片解析

    2014-06-12 14:13:31
    IP数据包分片解析,通过ping des-IP -l 1472 与ping des-IP -l 1473,抓包分析,解释其中的标识字段,标志,片偏移等。
  • 假设网络MTU为1500字节,使用Packet Tracer发送一个超大报文(3600字节),观察报文被分成了几,每报文首部有什么区别,有差别字段的数字意义是什么? 一.搭建下图所示的网络拓补 因为没有配置IP地址,所以没有...
  • ip数据包分片原理

    2020-11-15 09:47:34
    先搭建一个网络拓补,配置pc跟路由器 创建一个复杂的数据包大小为3600(大于...IP数据包分片成两个数据包 第一个数据包总长度为1500字节,第二个数据包总长度为第2个分片片偏移0*B90,转换成十进制为2960, ...
  • 网络通信中如果发送的IP包超过MTU...判断数据包是不是分片包是DecedeIPV4这个函数中做的,具体位置是 数据包解析模块->DecodeEthernet->DecedeIPV4DecedeIPV4这个函数中有如下一段代码: /* If a fragment, pa
  • ip数据包分片

    千次阅读 2014-10-26 20:42:30
    1.ip分片 当发送的
  • IP数据包的格式及分片

    万次阅读 2016-08-01 22:32:33
    一、IP数据包的报文格式   首先我们需要了解数据报的格式: 1-1.版本4位,表示版本号,目前最广泛的是4=B1000,即常说的IPv4;相信IPv6以后会广泛应用,它能给世界上每个纽扣都分配  一个...
  • IP数据包分片与重组过程

    千次阅读 2017-07-23 14:25:12
    一。IP分片(一)IP分片的原理: 分片和重新组装的过程对传输层是透明的,... IP分片和完整IP报文差不多拥有相同的IP头,ID域对于每个分片都是一致的,这样才能重新组装的时候识别出来自同一个IP报文的分片在IP...
  • wireshark捕获IP分片数据包实践

    万次阅读 2018-04-06 17:59:07
    下面通过使用ICMP包,来产生IP分片数据包。使用ICMP包进行测试时,如果不指定包的大小,可能无法查看被分片数据包。由于IP首部占用20个字节,ICMP首部占8个字节,所以捕获ICMP包大小最大为1472字节。但是一般情况...
  • 如下图所示,有三个数据包,这是分片的第二个数据包数据包总长度为 1500字节,那么分片偏移应该为: 1500 - 20(IP头部大小) = 1480 字节;但如下图所示的分片偏移却是 185; 查阅RFC791,所述如下: The data...
  • IP数据包 标识 标志 偏移

    千次阅读 2014-11-21 11:05:24
    IP数据包的标识,是用于分片
  • IP数据包

    2020-10-30 01:05:45
    IP数据包 结构:ip数据格式,ICMP协议介绍,ARP协议介绍。 网络层功能:定义了基于IP协议的逻辑地址。 ​ 链接不同媒介类型。 ​ 选择数据通过网络的最佳路径。 ip数据包的格式 版本(Version):该字段包含的是IP 的...
  • 这个题目有点大,而且我要严格控制字数,不能像《命题作文:一棵IPv4地址树中彻底理解IP路由表的各种...1.IP数据包分类根据IP数据包协议头的若干字段,也叫匹配域,将数据包划分到某个类别,这就是IP数据包分类的核心
  • 路由器是否重组分片ip数据包? 有谁知道路由器是否重组分片ip数据包吗? 我网上查了,,查不到,,,问了老大,说防火墙要重组了再分片转发的,路由器就不清楚了,,, 问题是: 如果路由器连接...
  • IP数据包格式

    万次阅读 多人点赞 2018-04-28 00:10:22
    IP数据包格式 TCP/IP协议定义了一个因特网上传输的包,称为IP数据报(IP Datagram).这是一个与硬件无关的虚拟包,由首部和数据两部分组成.首部的前一部分是固定长度,共 20 字节,是所有IP数据报必须具有的.首部的...
  • MF=1即表示后面"还有分片"的数据报。MF=0表示这已是若干数据报片中的最后一个。 标志字段中间的以为记为DF(Don't Fragment)。意思是"不能分片"的数据报。只有当DF=0是才允许分片。 2.描述数据报的分片和...
  • TCP数据包分片机制详解

    千次阅读 2015-07-21 18:08:56
    TCP数据包分片机制详解 IP分片以太网上,由于电气限制,一帧不能超过1518字节,除去以太网帧头14字节(mac地址等)和帧尾4字节校验,还剩1500字节,这个大小称为MTU(最大传输单元)。 如果你的IP包大于1500...
  • IP数据包分片和重组

    千次阅读 2011-03-19 15:53:00
    IP分片 ip分片操作主要在ip_output函数中完成,其中ip头的ip_off字段代表了关于分片的各种信息,其结构如下图所示: ------------------------------------ | 0 | DF | MF | fragment offset | ---------...
  • 一个网络数据包包括哪些有了解吗? 网络数据包一般包括头部和数据部分,TCP协议中,要发送的数据经过TCP模块添加TCP头部;然后IP模块添加IP头部和MAC头部;然后最前面加上报头/起始...TCP协议中的数据包分片与重...
  • IP数据包和ICMP数据包的结构

    千次阅读 2019-05-05 21:16:42
    一、IP数据包报头(IPV4和IPV6比较) 每行32bit,4字节,前5行一共20字节 version:版本号,4bit IHL:IP头部长度,4bit type of service:服务类型,标记/识流量,8bit total length:IP数据包总长度,16bit...
  • IP数据包详解

    2020-09-16 17:35:21
    不可靠:意思它不保证IP数据包能成功地到达目的地,IP仅提供尽力而为的传输服务。任何要求的可靠性必须有上层来提供。 无连接:意思是IP并不维护任何关于后续数据报的状态信息,每个数据报的处理都是独立的。 IP报...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 29,844
精华内容 11,937
关键字:

在ip数据包分片后