CN1863158B - 一种ip报文分片缓存及转发方法 - Google Patents
一种ip报文分片缓存及转发方法 Download PDFInfo
- Publication number
- CN1863158B CN1863158B CN 200510117084 CN200510117084A CN1863158B CN 1863158 B CN1863158 B CN 1863158B CN 200510117084 CN200510117084 CN 200510117084 CN 200510117084 A CN200510117084 A CN 200510117084A CN 1863158 B CN1863158 B CN 1863158B
- Authority
- CN
- China
- Prior art keywords
- message
- burst
- follow
- information table
- fragment
- 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
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种IP报文分片缓存及转发方法,对报文的首片和后续分片单独进行处理。对后续分片缓存的过程如下:网络设备将接收到的先于首片到达的IP报文后续分片缓存在存储介质中,并根据后续分片的报头信息建立相应的分片信息表,所述分片信息表用于在被接收到IP报文首片的所述网络设备查找到时,由所述网络设备转发所述存储介质中缓存的IP报文后续分片。
Description
技术领域
本发明涉及一种网络技术,尤其涉及一种对网络中IP报文分片的缓存及转发处理方法。
背景技术
互联网如火如荼的应用,加剧了IP地址匮乏的问题,为了缓解这一问题,一个重要的应用:NAT(Network Address Translation,网络地址转换)日益广泛地应用起来。NAT通过地址转换的方式,使企业可以仅使用较少的互联网有效IP地址,就能获得互联网接入的能力,有效地缓解了地址不足的问题,同时提供了一定的安全性。
网络地址转换有一对一和PAT(Port Address Translation)两种方式。对于一对一方式的地址转换,其只对报文中的IP地址信息进行转换,在这种方式下,局域网内的每一个内部主机要占用地址池中的一个IP地址,当地址池中的IP地址被用尽时,就不能允许其他主机访问因特网了。因此,一对一方式只允许若干个主机同时访问因特网,可以同时访问因特网的主机数目受合法IP地址多少的限制。
PAT方式的地址转换使用了UDP/TCP的端口信息,用“地址+端口”来区分局域网内的主机对外发起的不同连接,即要转换数据包中的源地址,也要转换端口信息,因此,局域网内的许多主机可以共享一个IP地址访问因特网,这样就允许更多的内部主机同时访问因特网。
IP协议在传输数据包时,将数据报文分为若干分片进行传输,并在目标系统中进行重组,这一过程称为分片。IP分片报文的首片具有以下信息:IP头、UDP/TCP头、数据部分;后续分片只包括IP头信息和数据部分。他们通过IP头中的报文ID标识这些分片属于哪一个报文。其中IP报头包括:IP报文识别号、该分片在原始报文进行分片之前的分片偏移量、该分片的数据长度、存在后续分片的标志位。IP报文首片具有UDP/TCP头信息,后续的分片中看不到相应的信息。当接收端接收到IP报文首片时,建立相应的会话表和分片信息表,会话表包括报文的源IP地址、源端口、目的IP地址、目的端口和协议类型,分片信息表包括各后续分片的数据长度及与首片的偏移量,后到达接收端的后续分片根据分片信息表与IP报文首片进行重组。
对于PAT方式的地址转换技术,后续的分片在到达目标主机之后进行重组时,由于是基于“地址+端口”的,对于正常的IP分片报文首片,因为首片中包含了UDP/TCP头信息,正常转换是没有问题的,但是对于后续分片报文,由于其中没有包含UDP/TCP头信息,因此它必须利用首片报文的分片信息表进行正确的转发。
但是由于网络路由的复杂性,和受报文的传输路径和传输延迟影响,很难保证报文的首片先于其所有的后续分片到达防火墙或路由器。
防火墙在接收到先于首片到达的后续分片时直接丢弃。若后续的分片先于首片到达,因为后续分片中没有相应的UDP/TCP头信息,没有办法命中相关的会话表,可能直接就会被丢弃,造成后续分片数据的丢失;即使后来该报文的首片达到,建立了相应的会话表和分片信息表,但是对于前面已经丢失的一些分片,接收端不能收到所有的分片,发送端必须重传相应的报文。重传时相同的数据封装时报文报头中的识别号是不同的,需要防火墙重新建立相应的分片信息表。若网络上存在大量的分片乱续情况,会造成防火墙上存在大量的无用分片信息表,影响正常的分片报文转发。
而对于路由器来说,由于其采用的是包过滤规则,只能对具有UDP/TCP头信息的首片进行过滤,对于不具有UDP/TCP头信息的分片来说,可以直接转发。因此,对于先于首片到达的后续报文,因为没有相应的UDP/TCP头信息,不能进行相应的地址转换,报文可能不能达到正确的目的地;即使能到达正确的目的地,对端重组时,所有分片的IP头中有的做了地址转换(首片以及在其后面接收的后续分片),有的没做地址转换(先于首片到达的后续分片),对端无法进行正确重组,发送端必须重传相应的报文,而后续重传的报文分片仍然不能保证按序传送。
可见,先于首片到达的后续分片不仅限制了IP数据报文进行地址转换的正确性,也导致了系统的数据传输速度下降,成为网络技术发展的一个障碍。
发明内容
本发明提供一种可以将先于IP报文首片到达的后续分片进行缓存的方法,使后续分片能够被正确处理和转发。
本发明对后续分片处理的技术方案是:
网络设备将接收到的先于首片到达的IP报文后续分片缓存在存储介质中,并根据后续分片的报头信息建立相应的分片信息表,所述分片信息表用于在被接收到IP报文首片的所述网络设备查找到时,由所述网络设备转发所述存储介质中缓存的IP报文后续分片。
分片信息表中后续分片以报文的源IP地址和报文ID来标识,也可以在此基础上增加报文UDP/TCP头中的源端口和目的端口信息来标识。
本发明进一步提供一种IP报文转发的方法,步骤如下:
步骤100,网络设备将接收到的先于首片到达的IP报文后续分片缓存在存储介质中,并根据后续分片的报头信息建立相应的分片信息表;
步骤101,网络设备对接收到的IP报文首片进行包过滤,并建立会话表;
步骤102,网络设备在查找到所述分片信息表时,根据上述会话表,对存储介质中缓存的后续分片进行转发。
在对上述先于首片到达的后续分片进行转发后,如果还有后于首片到达的后续分片,网络设备进行转发的方法是:网络设备将首片信息添加到先于首片到达的后续分片建立的分片信息表中,后于首片到达的后续分片根据所述添加了首片信息的分片信息表进行转发。
分片信息表中首片以报文的源IP地址和报文ID来标识,也可以在此基础上增加报文UDP/TCP头中的源端口和目的端口信息来标识。
本发明中对首片和后续分片采取单独的处理流程,即在接收到首片时判断后续分片是否已经先于首片到达,如到达则将首片信息添加到后续分片建立的分片信息表中;如未到达,则建立分片信息表,再将接收到的后续分片按分片信息表进行转发。对于后续分片,如后到达,则按首片建立的分片信息表进行转发,如先到达,则缓存在存储介质中。本发明避免了后续分片无法正确转发,减少了网络设备的数据处理量,提高了网络设备的数据处理速度。
附图说明
图1为本发明所述的后续分片处理流程图;
图2为利用本发明所述的后续分片缓存方法进行报文转发的方法流程图。
具体实施方式
本发明对IP报文的首片和后续分片采取两个分别独立的处理流程,这样,无论后续分片是否是先于首片到达接收端,都可以被正确处理和转发。
下面以IP报文中的UDP/TCP报文为例来对本发明所述处理方法做具体说明。
如说明书附图1所示,对于接收到的UDP/TCP报文后续分片的处理步骤如下:
步骤101,网络设备接收到UDP/TCP报文后续分片;
步骤102,网络设备查找是否存在首片建立的分片信息表,如存在,则执行步骤103;否则,执行步骤104;
步骤103,网络设备根据首片建立的分片信息表对后续分片进行转发;
步骤104,网络设备将接收到的后续分片缓存在存储介质中,并根据后续分片的报头信息建立相应的分片信息表。
上述由后续分片建立的分片信息表中,仅包含了后续分片的标识信息,不包含首片的标识信息。
对于上述分片信息表中的后续分片,可以采用报文的源IP地址和报文的ID进行标识,也可以在上述标识基础上再增加报文UDP/TCP头中的源端口和目的端口信息来标识。
对于网络设备接收到的非UDP/TCP报文的后续分片,在通过包过滤后直接进行转发。
对于利用本发明所述的对后续分片缓存方法进行IP报文转发的方法,仍以IP报文中的UDP/TCP报文为例,如说明书附图2所示,步骤包括如下:
步骤201,网络设备接收到UDP/TCP报文首片;
步骤202,网络设备对报文首片进行包过滤处理,并建立对应的会话表,该会话表包括报文的源IP地址、源端口、目的IP地址、目的端口和协议类型等信息;
步骤203,网络设备查找是否有先于首片到达的后续分片建立的分片信息表,如存在,则执行步骤204;否则,执行步骤207;
步骤204,根据首片建立的对话表,对存储介质中缓存的后续分片进行转发;
步骤205,若接收到首片之后还有到达的后续分片,则将首片信息添加到分片信息表中;
步骤206,后到达的后续分片根据上述修改后的分片信息表进行转发;
步骤207,根据首片信息建立分片信息表,用于后续分片的转发。
上述方法中,在全部的报文转发完毕后,网络设备将相应的分片信息表删除,减少了无用的分片信息表数量。
上述方法所述的分片信息表中,首片可以用源IP地址和报文ID来做标识,还可以在此基础上增加使用报文UDP/TCP头中的源端口和目的端口信息来标识。
无论是对于分片信息表的建立,还是删除、查找、修改等过程,其根本是对其中各分片的具体操作,都可以使用分片的源IP地址和报文ID或报文UDP/TCP头中的源端口和目的端口信息来进行快速查找。
在对报文首片进行处理时,若接收端接收到的首片不属于UDP/TCP报文,则通过包过滤后,直接进行转发。
本发明中采用了分片信息表老化机制。即当一个后续分片缓存到存储介质中的时候,会更新该后续分片所属分片信息表中对应表项的时间。通过一个定时器定时搜索分片信息表,删除在定时器设置时间内没有后续分片到达的分片信息表,避免由于分片丢失、或者分片报文间隔过大而造成的分片信息表长时间存在。
Claims (6)
1.一种IP报文转发的方法,其特征在于,步骤如下:
步骤100,网络设备将接收到的先于首片到达的IP报文后续分片缓存在存储介质中,并根据后续分片的报头信息建立相应的分片信息表;
步骤101,网络设备对接收到的IP报文首片进行包过滤,当接收到的首片不属于UDP/TCP报文时,网络设备直接转发接收到的首片;
步骤102,当接收到的首片属于UDP/TCP报文时,网络设备根据接收到的首片,建立会话表;
步骤103,网络设备在查找到所述分片信息表时,根据上述会话表,对存储介质中缓存的后续分片进行转发。
2.如权利要求1所述的IP报文转发的方法,其特征在于,所述IP报文为UDP/TCP报文。
3.如权利要求1所述的IP报文转发的方法,其特征在于,所述方法进一步包括:网络设备将首片信息添加到分片信息表中,后于首片到达的后续分片根据所述添加了首片信息的分片信息表进行转发。
4.如权利要求3所述的IP报文转发的方法,其特征在于,分片信息表中首片以报文的源IP地址和报文ID来标识。
5.如权利要求4所述的IP报文转发的方法,其特征在于,分片信息表中首片进一步以报文的UDP/TCP头中的源端口和目的端口信息来标识。
6.如权利要求1或3所述的IP报文转发的方法,其特征在于,在全部报文转发完毕后,或者在网络设备中的定时器设定时间内无后续分片到达时,删除分片信息表。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200510117084 CN1863158B (zh) | 2005-10-31 | 2005-10-31 | 一种ip报文分片缓存及转发方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200510117084 CN1863158B (zh) | 2005-10-31 | 2005-10-31 | 一种ip报文分片缓存及转发方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1863158A CN1863158A (zh) | 2006-11-15 |
CN1863158B true CN1863158B (zh) | 2010-04-21 |
Family
ID=37390488
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200510117084 Expired - Fee Related CN1863158B (zh) | 2005-10-31 | 2005-10-31 | 一种ip报文分片缓存及转发方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1863158B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8316432B2 (en) | 2007-08-02 | 2012-11-20 | Hangzhou H3C Technologies Co., Ltd. | Method for implementing security-related processing on packet and network security device |
CN101605105B (zh) * | 2009-07-14 | 2012-05-09 | 中兴通讯股份有限公司 | 一种对分片报文进行网络地址转换的方法及设备 |
CN101789908B (zh) * | 2010-03-04 | 2012-08-15 | 成都市华为赛门铁克科技有限公司 | 分片报文接收处理方法及装置 |
WO2014205691A1 (zh) * | 2013-06-26 | 2014-12-31 | 华为技术有限公司 | 数据报文处理方法、数据报文处理装置及系统 |
CN106921589A (zh) * | 2015-12-28 | 2017-07-04 | 新华三技术有限公司 | 一种ip数据包的处理方法和装置 |
CN109450814A (zh) * | 2018-11-26 | 2019-03-08 | 锐捷网络股份有限公司 | 分片报文的转发方法及装置 |
CN111885198B (zh) * | 2020-07-31 | 2023-07-11 | 北京捷通华声科技股份有限公司 | 消息处理方法、系统、装置及电子设置 |
CN115022069B (zh) * | 2022-06-20 | 2024-04-26 | 武汉思普崚技术有限公司 | 用于网络攻击检测的ip分片报文重组方法及装置 |
CN116095197B (zh) * | 2022-07-04 | 2023-12-12 | 荣耀终端有限公司 | 数据传输方法及相关装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1505346A (zh) * | 2002-12-04 | 2004-06-16 | ���ŷ�����Ѷ��ҵ�߽��� | 处理私有网路经ip切割的封包的闸道器系统及方法 |
CN1531281A (zh) * | 2003-03-12 | 2004-09-22 | ���ǵ�����ʽ���� | 无需ip重组分发分组的装置和方法 |
CN1585401A (zh) * | 2003-08-21 | 2005-02-23 | 华为技术有限公司 | 对分片报文进行网络地址转换的方法 |
-
2005
- 2005-10-31 CN CN 200510117084 patent/CN1863158B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1505346A (zh) * | 2002-12-04 | 2004-06-16 | ���ŷ�����Ѷ��ҵ�߽��� | 处理私有网路经ip切割的封包的闸道器系统及方法 |
CN1531281A (zh) * | 2003-03-12 | 2004-09-22 | ���ǵ�����ʽ���� | 无需ip重组分发分组的装置和方法 |
CN1585401A (zh) * | 2003-08-21 | 2005-02-23 | 华为技术有限公司 | 对分片报文进行网络地址转换的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN1863158A (zh) | 2006-11-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1863158B (zh) | 一种ip报文分片缓存及转发方法 | |
CN101247308B (zh) | 基于网络处理器实现IPv6穿越IPv4的隧道报文处理方法 | |
US20050243834A1 (en) | Packet transfer method and device | |
KR100453055B1 (ko) | Ip 네트워크 상에서의 경로 mtu 탐색 방법 및 그 장치 | |
CN101087296B (zh) | 利用网络处理器实现IPv4/IPv6网络协议转换的方法 | |
CA2676770A1 (en) | System and method for data transfer in a peer-to-peer hybrid communication network | |
EP3331205B1 (en) | Data packet transmission method utilized in ipv6 network and device utilizing same | |
US20080225874A1 (en) | Stateful packet filter and table management method thereof | |
US7974209B1 (en) | Packet processing with re-insertion into network interface circuitry | |
CN101494605B (zh) | 一种基于以太网驱动的数据转发方法和装置 | |
US20040100963A1 (en) | In sequence packet delivery without retransmission | |
US7298745B2 (en) | Method and apparatus to manage packet fragmentation with address translation | |
US7676593B2 (en) | Method of bandwidth control by rewriting ACK number | |
EP2061190A1 (en) | Method, apparatus and system for complex flow classification of fragmented datagrams | |
CN101645851B (zh) | 一种ip分片报文的重组方法和装置 | |
US20060271680A1 (en) | Method For Transmitting Window Probe Packets | |
KR20030078591A (ko) | 동적 ip 네트워크 상에서의 pmtu 변경 방법 및 그장치 | |
CN103532672A (zh) | 一种sdn网络中分片报文乱序的处理方法及应用 | |
CN104639443A (zh) | 一种报文快速转发的方法和装置 | |
WO2010022629A1 (zh) | 一种多链路协议分片数据的重组方法、装置及系统 | |
US10505677B2 (en) | Fast detection and retransmission of dropped last packet in a flow | |
US10104002B2 (en) | Method and system for network address re-use in network address translation | |
US20070133560A1 (en) | Method and apparatus for processing packet in high speed router | |
US20040090922A1 (en) | Network path discovery | |
CN100433714C (zh) | 一种ip分片报文传输处理方法 |
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 |
Granted publication date: 20100421 Termination date: 20151031 |
|
EXPY | Termination of patent right or utility model |