CN100550858C - 一种ip报文分片重组的方法 - Google Patents
一种ip报文分片重组的方法 Download PDFInfo
- Publication number
- CN100550858C CN100550858C CNB2007101178285A CN200710117828A CN100550858C CN 100550858 C CN100550858 C CN 100550858C CN B2007101178285 A CNB2007101178285 A CN B2007101178285A CN 200710117828 A CN200710117828 A CN 200710117828A CN 100550858 C CN100550858 C CN 100550858C
- Authority
- CN
- China
- Prior art keywords
- message
- fragment
- fragmented
- fragmentation
- fragments
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供了一种IP报文分片重组的方法,包括,在网络设备中分配多块用于接收IP分片报文的内存,并进一步包括步骤:A.接收IP分片报文,并提取其特征信息;B.根据所述特征信息记录IP分片报文;C.在IP报文的所有分片都到达时,将该IP报文的其它分片的数据复制到该IP报文的第一个分片中,并释放其它分片。本发明的方法有效的提高了IP报文分片重组性能。
Description
技术领域
本发明涉及网络通信技术领域,特别是涉及一种IP报文分片重组的方法。
背景技术
目前,Internet已成为全社会的信息基础设施,企业端应用也大都基于网际协议(Internet Protocol,IP),在Internet上构筑应用系统已成为必然趋势。在不远的将来,虚拟私有网络(Virtual Private Network,VPN)技术将成为广域网建设的最佳解决方案,其中,VPN技术包括通用路由封装(Generic RoutingEncapsulation,GRE)、IP安全协议(IP Security Protocol,IPSEC)等技术。采用VPN技术不仅会大大节省广域网的建设和运行维护费用,而且增强了网络的可靠性和安全性。同时,VPN技术加快了企业网的建设步伐,使得集团公司不仅仅只是建设内部局域网,而且能够很快地把全国各地分公司的局域网连接起来,从而真正发挥整个网络的作用。
在三层VPN组网环境中,传输的IP数据报文有如下特点:
1、进入三层VPN隧道的数据报文通常不大,一般小于3000字节;
2、在VPN隧道中会有分片报文,需要对分片报文进行分片重组;
3、一个报文被分片的个数不多,一般为2个;
4、第一个分片报文的数据长度较大。
现有技术中进行IP报文分片重组的过程主要包括:每接收到一个分片,都将其复制到用于重组的缓冲存储区,这样,在所有分片都到达时,每个分片都被复制到了缓冲存储区,IP报文分片重组完成。但是,这种方法存在一个问题,即在报文分片重组失败时(例如不是所有的分片都能到达,或者到达的分片报文无效),会存在一些无谓的拷贝,而拷贝过程是一个相对较耗时的过程,这造成了重组性能不高。并且,现有技术没有充分利用三层VPN中分片报文的特点来进行重组的优化,也导致了重组性能不高。
因而,如何提供一种高效的IP报文分片重组的方法就成为亟待解决的技术问题。
发明内容
本发明所要解决的技术问题是提供一种IP报文分片重组的方法,以提高IP报文分片重组性能。
为解决上述技术问题,本发明提供技术方案如下:
一种IP报文分片重组的方法,在网络设备中分配多块用于接收IP分片报文的内存,并进一步包括步骤:
A、接收IP分片报文,并提取其特征信息;
B、根据所述特征信息记录IP分片报文;
C、在IP报文的所有分片都到达时,将该IP报文的其它分片的数据复制到该IP报文的第一个分片中,并释放其它分片。
较佳地,所述网络设备为三层VPN网络设备;所分配的每块内存大小为3×1024字节。
较佳地,步骤A中,从IP分片报文的IP首部中提取所述特征信息,所述特征信息包括:标识符、源地址、目的地址、协议类型、分片偏移、报文长度。
较佳地,步骤B进一步包括:
判断接收的IP分片报文是否有效,在确定IP分片报文有效时,记录其内存地址及对应的标识符、源地址、目的地址、协议类型;
在确定IP分片报文无效时,丢弃该分片报文,并释放与该分片报文的标识符、源地址、目的地址、协议类型相同的其它分片。
较佳地,所述判断接收的IP分片报文是否有效包括:
判断IP分片报文的长度与分片偏移之和是否大于分配的内存块大小,若是,则确定该IP分片报文无效。
较佳地,步骤C中,在最后一个分片报文的数据部分长度与分片偏移之和等于当前已经收到的IP分片报文的数据部分总长度时,则确定IP报文的所有分片都到达。
所述最后一个分片是指分片偏移不为0且MF位为0的分片。
所述第一个分片是指分片偏移为0且MF位为1的分片。
与现有技术相比,本发明的有益效果是:
本发明的方法根据三层VPN网络中IP分片报文的特点,用一块较大的内存接收IP分片报文,在所有的分片都到达后再进行重组,重组只是将其它的分片复制到第一片即可,因而,该方法能够有效的减少报文拷贝的次数。并且由于第一个分片报文的数据长度通常较大,本发明的方法不需要对第一个分片报文进行拷贝,这也在总体上提高了报文拷贝的效率。总之,本发明的方法能够有效的提高IP报文分片重组性能。另外,本发明的方法不局限于三层VPN网络,也可适用于报文特点与三层VPN网络类似的网络中。
附图说明
图1为本发明较佳实施例的IP报文分片重组的方法流程图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图及具体实施例对本发明进行详细描述。
本发明的关键在于:在三层VPN网络中,网络设备用一块较大的内存接收IP分片报文,在所有的分片都到达后再进行重组,重组只是将其它的分片复制到第一片即可。
请参照图1,本发明较佳实施例的IP报文分片重组的方法包括如下步骤:
步骤101、在网络设备中分配多块用于接收IP分片报文的内存;
根据三层VPN网络中IP报文的特点,所分配的每块内存大小优选为3×1024字节。通过分配的3×1024字节大小的内存空间来接收IP分片报文,其中,分配的内存块大小并不限于这个值,可以根据需要进行调整。
步骤102、接收IP分片报文,并提取其特征信息;
IP分片报文到达时,通过分配的内存空间进行收包,并从IP分片报文的IP首部中提取分片报文的特征信息。所述特征信息包括:标识符(id)、源地址、目的地址、协议类型、分片偏移、报文长度。其中,特征信息中的标识符、源地址、目的地址、协议类型能够唯一标识一组IP分片报文。
步骤103、根据所述特征信息记录IP分片报文;
在本步骤中,首先判断接收的IP分片报文是否有效,在确定IP分片报文有效时,再记录其内存地址及对应的标识符、源地址、目的地址、协议类型;在确定IP分片报文无效时,丢弃该分片报文,并释放与该分片报文的标识符、源地址、目的地址、协议类型相同的其它分片。
所述判断接收的IP分片报文是否有效包括:判断IP分片报文的长度与分片偏移之和是否大于所述分配的内存块大小,若是,则确定该IP分片报文无效。
例如,如果接收到的分片报文的分片偏移与报文长度的和大于3×1024字节,则丢弃该分片报文,并且释放与该分片报文的标识符、源地址、目的地址、协议类型相同的其它分片,即释放同一IP报文的其它分片,重组失败,转步骤102,等待接收其它IP报文。
步骤104、在IP报文的所有分片都到达时,将该IP报文的其它分片的数据复制到该IP报文的第一个分片中,并释放其它分片。
判断是否所有分片都到达的方法为:比较最后一个分片报文的数据部分长度与分片偏移之和是否等于当前已经收到的IP分片报文的数据部分总长度,若相等,则可确定IP报文的所有分片都到达。其中,所述最后一个分片是指分片偏移不为0且MF位为0的分片,所述第一个分片是指分片偏移为0且MF位为1的分片,MF位即IP分片报文的IP首部中的Morefragment位。
本领域技术人员容易理解的是,本发明的方法并不局限于三层VPN网络,也可适用于其它网络,只要所述其它网络的报文特点与三层VPN网络的报文特点类似即可。也就是说,在其它网络中,若其报文特点与背景技术中描述的VPN网络的报文特点类似,就可以类似的采用上述较佳实施例的方法。
Claims (8)
1.一种IP报文分片重组的方法,其特征在于,在网络设备中分配多块用于接收IP分片报文的内存,所述方法进一步包括步骤:
A、接收IP分片报文,并提取其特征信息;
B、根据所述特征信息记录IP分片报文;
C、在IP报文的所有分片都到达时,将该IP报文的其它分片的数据复制到该IP报文的第一个分片中,并释放其它分片。
2.如权利要求1所述的IP报文分片重组的方法,其特征在于:
所述网络设备为三层VPN网络设备;
所分配的每块内存大小为3×1024字节。
3.如权利要求1所述的IP报文分片重组的方法,其特征在于:
步骤A中,从IP分片报文的IP首部中提取所述特征信息,所述特征信息包括:标识符、源地址、目的地址、协议类型、分片偏移、报文长度。
4.如权利要求3所述的IP报文分片重组的方法,其特征在于,步骤B进一步包括:
判断接收的IP分片报文是否有效,在确定IP分片报文有效时,记录其内存地址及对应的标识符、源地址、目的地址、协议类型;
在确定IP分片报文无效时,丢弃该分片报文,并释放与该分片报文的标识符、源地址、目的地址、协议类型相同的其它分片。
5.如权利要求4所述的IP报文分片重组的方法,其特征在于,所述判断接收的IP分片报文是否有效包括:
判断IP分片报文的长度与分片偏移之和是否大于分配的内存块大小,若是,则确定该IP分片报文无效。
6.如权利要求3所述的IP报文分片重组的方法,其特征在于:
步骤C中,在最后一个分片报文的数据部分长度与分片偏移之和等于当前已经收到的IP分片报文的数据部分总长度时,则确定IP报文的所有分片都到达。
7.如权利要求6所述的IP报文分片重组的方法,其特征在于:
所述最后一个分片是指分片偏移不为0且MF位为0的分片。
8.如权利要求3所述的IP报文分片重组的方法,其特征在于:
所述第一个分片是指分片偏移为0且MF位为1的分片。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2007101178285A CN100550858C (zh) | 2007-06-25 | 2007-06-25 | 一种ip报文分片重组的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2007101178285A CN100550858C (zh) | 2007-06-25 | 2007-06-25 | 一种ip报文分片重组的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101072184A CN101072184A (zh) | 2007-11-14 |
CN100550858C true CN100550858C (zh) | 2009-10-14 |
Family
ID=38899178
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2007101178285A Expired - Fee Related CN100550858C (zh) | 2007-06-25 | 2007-06-25 | 一种ip报文分片重组的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100550858C (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102377524B (zh) * | 2011-10-11 | 2014-12-17 | 北京邮电大学 | 分片处理的方法和系统 |
CN103501279B (zh) * | 2013-09-27 | 2016-09-07 | 北京旋极信息技术股份有限公司 | 一种航电全双工实时以太网数据包重组方法及系统 |
CN110730143B (zh) * | 2015-11-11 | 2020-12-04 | 大唐移动通信设备有限公司 | 一种分片数据包处理方法及装置 |
-
2007
- 2007-06-25 CN CNB2007101178285A patent/CN100550858C/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN101072184A (zh) | 2007-11-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103023808B (zh) | 基于块状链表结构的6lowpan数据包重装缓存方法 | |
US20110122893A1 (en) | Header compression scheme | |
CN100583828C (zh) | 分片报文处理方法与装置 | |
CN1822570A (zh) | 在基于以太网的网络中进行的伪线路对等体地址的自动发现 | |
CN101686180A (zh) | 数据传输方法及网络节点和数据传输系统 | |
CN101207571B (zh) | 转发报文的方法和设备 | |
WO2014059853A1 (zh) | 一种数据通信网络中报文修改与转发的方法及装置 | |
CN103685006A (zh) | 一种在边缘设备上的报文转发方法和边缘设备 | |
WO2018082592A1 (zh) | 一种报文处理方法以及网络设备 | |
CN108462642A (zh) | 基于fpga的udp/ip硬件协议栈及实现方法 | |
CN103581168B (zh) | 基于ip分片伪装技术的隐蔽信息通信方法 | |
CN101170517A (zh) | 对控制会话表进行老化的方法及装置 | |
CN111224903B (zh) | 一种数据传输方法、设备及计算机可读存储介质 | |
CN101316232A (zh) | 基于网络协议版本6的分片重组方法 | |
US20230006937A1 (en) | Packet flow identification with reduced decode operations | |
CN106713144A (zh) | 一种报文出口信息的读写方法及转发引擎 | |
CN103685032B (zh) | 报文转发方法及网络地址转换服务器 | |
US8594127B2 (en) | Communication device and communication method | |
CN100550858C (zh) | 一种ip报文分片重组的方法 | |
CN103338158B (zh) | 一种goose报文传输时延抖动抑制方法 | |
CN103312618B (zh) | 基于软硬件结合的流管理方法 | |
CN102271086B (zh) | 发送报文的方法和装置 | |
CN100454900C (zh) | 快速响应ip分片报文的方法和系统 | |
CN100420238C (zh) | 一种ip报文分片重组的方法 | |
US8804614B2 (en) | Method and system for managing connection payload information in medium access control protocol data unit |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20091014 Termination date: 20160625 |