CN1299479C - 一种隧道包的分片发送方法 - Google Patents

一种隧道包的分片发送方法 Download PDF

Info

Publication number
CN1299479C
CN1299479C CNB2004100084094A CN200410008409A CN1299479C CN 1299479 C CN1299479 C CN 1299479C CN B2004100084094 A CNB2004100084094 A CN B2004100084094A CN 200410008409 A CN200410008409 A CN 200410008409A CN 1299479 C CN1299479 C CN 1299479C
Authority
CN
China
Prior art keywords
tunnel
burst
packet
data packets
raw data
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 - Lifetime
Application number
CNB2004100084094A
Other languages
English (en)
Other versions
CN1561049A (zh
Inventor
胡英
李一峰
王东
钟卫东
李华
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ZTE Corp
Original Assignee
ZTE Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by ZTE Corp filed Critical ZTE Corp
Priority to CNB2004100084094A priority Critical patent/CN1299479C/zh
Publication of CN1561049A publication Critical patent/CN1561049A/zh
Application granted granted Critical
Publication of CN1299479C publication Critical patent/CN1299479C/zh
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明涉及一种隧道包的分片发送方法,应用于通信设备中的数据包发送,对需要进行隧道封装及分片的原始的数据包,在通信设备的隧道入口设备上先进行数据包的分片处理形成多个数据分片,再对所述多个数据分片分别进行隧道封装形成隧道包,然后发送至通信设备的隧道出口设备上进行隧道拆封处理,并通过查找路由发送至目的地。本发明的方法减轻了隧道对端通信设备的处理负荷,使隧道分片包能够被快速、有效地处理,并将分片重组的负荷分担到目的主机上,使得网络负载更加均衡。

Description

一种隧道包的分片发送方法
技术领域
本发明涉及一种数据包传送方法,尤其涉及一种在互联网络通讯的通信设备中,对隧道包进行分片发送的方法。
背景技术
隧道技术是一种在网络之间传递数据的方式,如图1所示,使用隧道14传递的数据可以是不同协议的数据包,隧道协议将其它协议的原始数据包11在路由器隧道入口12重新封装在新的包头中形成隧道包13发送。新的包头提供了路由信息,从而使封装的数据能够通过网络传递。被封装的数据包在隧道的两个端点之间通过网络进行路由。被封装的数据包在网络上传递时所经过的逻辑路径称为隧道。一旦到达网络终点,如图1中路由器隧道出口16,数据将被解包并转发到最终目的地(例如主机18)。
而在网络中传送IP包的MTU(Maximum Transfer Unit,最大传输单元)对数据链路层能传送的最大帧长进行了限制,如果IP包比传送它的数据链路层的MTU要大,在传送前就要将IP包分片,分片就是将一个大的IP包分成几个小段——片,以便每一个小片可以装进数据链路层的MTU中,分片包将在IP包的目的地被重组。
由于隧道技术需要对原始数据包进行重新封装包头形成隧道包,正常情况下,非常容易出现隧道IP包的长度过长,这样隧道IP包被分片的概率就大大增加了,所以使用隧道技术必须要解决好分片问题。现有技术中对隧道包的分片采用的方式是先完成隧道封装再进行IP分片,如图2所示,如果有隧道包并且需要分片,那么隧道包按照MTU的大小,分片成几个适当大小的数据包,每个数据包都有自己的隧道头并表示为分片属性,分别发送。也即,对于具有原始IP包头21和原始净荷22的原始数据包20,先将该原始数据包20进行隧道封装形成隧道包26,该隧道包26具有表征路由信息的隧道头25、原始IP包头以及原始净荷22。如果该隧道包26需要分片,则按照MTU大小,将原始净荷22分成适当大小的几个数据包,如分成221、222、223、224四个,且每个数据包都具有自己的隧道头25并表示为分片属性。由于此时外层隧道包的目的地是隧道对端设备,这样分了片的隧道包就需要在隧道的对端对IP包进行重组,而分片包的重组往往会对性能产生较大地影响,因此加重了隧道对端设备的负担,降低了隧道对端设备的性能。
发明内容
本发明所要解决的技术问题在于提供一种隧道包的分片发送方法,减轻隧道对端通信设备的处理负荷,使隧道分片包能够被快速、有效地处理,并将分片重组的负荷分担到目的主机上,使得网络负载更加均衡。
为了实现上述目的,本发明提供了一种隧道包的分片发送方法,应用于通信设备中的数据包发送,对需要进行隧道封装及分片的原始数据包,在通信设备的隧道入口设备上先进行原始数据包的分片处理形成多个数据分片,再对所述多个数据分片分别进行隧道封装形成隧道包,然后发送至通信设备的隧道出口设备上进行隧道拆封处理,并通过查找路由发送至目的地。
上述的隧道包的分片发送方法,其中,在隧道的入口设备上的分片处理过程包括如下步骤:
步骤一,完成原始数据包的收包处理;
步骤二,判断是否需要对该原始数据包进行隧道封装;对不需要进行隧道封装的原始数据包直接转发,对需要进行隧道封装的原始数据包,则判断该原始数据包是否需要进行分片处理;
步骤三,对不需要进行分片处理的原始数据包直接进行隧道封装形成隧道包后转发,对需要进行分片处理的原始数据包进行分片处理形成多个数据分片,再对所述多个数据分片分别进行隧道封装形成隧道包后转发。
上述的隧道包的分片发送方法,其中,在步骤一中,还包括一步骤:判断所接收到的原始数据包是否为异常包,若为异常包,则丢弃,若不是异常包,则按照一定的策略判断该数据包是否需要隧道封装。
上述的隧道包的分片发送方法,其中,在步骤二中,判断该原始数据包是否需要进行分片处理的条件是:将该原始数据包长度加上需要封装的隧道头的长度得到一总长度,计算该总长度是否大于下一段通信链路的最大传输单元值;若该总长度大于该最大传输单元值,则需要进行分片处理,反之,则不需要进行分片处理。
上述的隧道包的分片发送方法,其中,在步骤三中,对需要进行分片处理的原始数据包进行分片处理形成多个数据分片的过程包括如下步骤:
将原始数据包的净荷分成多个尽量大的片,使每个片都可装入一个数据链路层帧;
将原始数据包的报头加到每一个由净荷分成的片的前面,形成一个数据分片。
上述的隧道包的分片发送方法,其中,所述的多个片中,其中一个片可以是8字节的非整数倍,而其他每个片的大小必须是8字节的整数倍。
上述的隧道包的分片发送方法,其中,在步骤三中,对所述多个数据分片分别进行隧道封装形成隧道包的过程是在每一个数据分片的前面加上隧道头,形成隧道包。
上述的隧道包的分片发送方法,其中,在隧道出口设备上进行隧道拆封处理的过程包括如下步骤:
完成隧道包的接收;
对隧道包进行隧道拆封,还原成原始数据包或分片数据包;
根据数据包的报文信息查找路由表,转发该数据包至目的地。
上述的隧道包的分片发送方法,其中,所述分片数据包在目的地进行重组处理后还原成原始数据包。
上述的隧道包的分片发送方法,其中,所述数据包基于TCP/IP协议进行传送。
与现有技术相比,本发明通过在通信设备中先进行隧道包的分片处理,再进行封装、发送处理,使得通信设备处理分片隧道包的效率更高,并通过在目的地主机上进行分片重组,减少了隧道对端设备在处理分片隧道包重组所花费的时间,提高了通信设备的处理能力,使得网络负载更加均衡。
以下结合附图和具体实施例对本发明进行详细描述,但不作为对本发明的限定。
附图说明
图1是隧道技术示例图;
图2是现有技术对隧道包分片的处理示例图;
图3是本发明对隧道包分片的处理示例图;
图4是本发明在隧道入口设备上对隧道包的处理流程图;
图5是本发明在隧道出口设备上对隧道包的处理流程图。
具体实施方式
本发明的隧道包的分片发送方法,应用于通信设备中的数据包发送,对需要进行隧道封装及分片的原始的数据包,在通信设备的隧道入口设备上先进行原始数据包的分片处理形成多个数据分片,再对所述多个数据分片分别进行隧道封装形成隧道包,然后发送至通信设备的隧道出口设备上进行隧道拆封处理,并通过查找路由发送至目的地。
本发明的方法在隧道的入口设备上的分片处理过程包括如下步骤:
步骤一,完成原始数据包的收包处理;
步骤二,判断是否需要对该原始数据包进行隧道封装;对不需要进行隧道封装的原始数据包直接转发,对需要进行隧道封装的数据包,则判断该原始数据包是否需要进行分片处理;
步骤三,对不需要进行分片处理的原始数据包直接进行隧道封装形成隧道包后转发,对需要进行分片处理的原始数据包进行分片处理形成多个数据分片,再对所述多个数据分片分别进行隧道封装形成隧道包后转发。
在隧道出口设备上进行隧道拆封处理的过程包括如下步骤:
完成隧道包的接收;
对隧道包进行隧道拆封,还原成原始数据包或分片数据包;
根据数据包的报文信息查找路由表,转发该数据包至目的地。
在本发明中,其传送的数据可以是不同协议的数据包,隧道协议将其他协议的数据包重新封装在新的包头中发送。
下面以基于TCP/IP协议的IP数据包为例,结合图3~图5对本发明的技术方案进行详细阐述。
请结合参考图1的隧道技术示例图,当隧道入口设备收到需要转发的IP数据报文,首先判断是否需要隧道封装;如果不需要就直接转发;如果需要,隧道入口设备即将该IP数据包的长度加上需封装的IP隧道头的长度,计算是否大于下一段链路的MTU值。如果隧道包的总长度大于MTU,就需要对该原始IP数据包进行分片处理。如图3所示,当需隧道封装的IP数据包且需要分片发送时,首先,对原始IP数据包30分片,分片的原则是保证分了片的IP包经过隧道封装后不超过MTU;从图中可以看出原始IP数据包先被分片,然后,再对每个分了片的IP数据包分别进行隧道封装形成隧道包,这样每个隧道包可正常发送。分片处理的方法是将IP原始数据包30的净荷32分成尽量大的片,如被分成了321、322、323、324四片,但要保证每个片(包括IP报头31和隧道包头35)可以装入一个数据链路层帧。片的大小必须是8字节的整数倍,因为分片后IP报头中对包的大小就是以8字节为单位计数,但最后一个片的大小不必是8字节的整数倍。然后将原始IP报头31加到每一个由净荷32分成的片的前面,从而形成一个IP分片,再进行隧道封装,即在IP分片的前面加上隧道头35,形成隧道包,最后将分了片的隧道包依次发送出去。
图4表示了隧道入口设备对收到IP数据包且需要隧道封装的处理流程。
步骤401,隧道入口设备收到一个需转发的IP数据包。
步骤402,判断该数据包是否需要进行隧道封装且分片?在此步骤中,先判断是否需要进行隧道封装,如果不需要,则直接转发数据;如果确实要隧道封装,那么再判断是否需要进行分片处理?该隧道入口设备计算隧道封装后是否会超过MTU,如果超过,则转到步骤403进行分片操作,如果不超过,则不需要进行分片处理,直接将数据包进行隧道封装后转到步骤405转发。
步骤403,隧道入口设备先对该IP数据包进行分片,分片方法如上所述。
步骤404,分片完成之后再封装隧道头,完成隧道封装。
步骤405,最后将每个分了片并完成隧道封装的隧道包依次发往隧道出口设备。
其中,在步骤401之后,还可包括一个步骤:判断如果该包是否为异常包,如果是异常包,则丢弃该数据包;如果不是异常包,隧道入口设备则按照一定的策略判断该包是否需要隧道封装,即转到步骤402;
隧道出口设备收到经过分片的隧道包后,由于分片操作是对原始IP数据包的操作,所以该隧道包对隧道出口设备来说是个正常包,而不是分片包,隧道出口设备只需对隧道包拆封,经过拆封得到的是原始包的分片包,该分片包的目的地并非是隧道对端设备,而不需进行分片包的重组。在经过正常地查路由后,分片包将会被转发到目的地,分片包的重组将在IP包的目的地进行。
如图5所示,表示了隧道出口设备对收到隧道包的处理流程。
步骤501,隧道出口设备收到非异常的隧道包。
步骤502,对隧道数据包进行拆封。在本步骤中,隧道出口设备只需按照普通隧道包的处理流程进行拆包操作,而不用去关心该隧道包是否是分片包,以及是否需要重组。拆封后的隧道包,还原为原始IP数据包(不需进行分片处理的原始数据包)或者分片数据包(经过分片处理后的包含各个分片数据的原始数据包)。
步骤503,隧道出口设备按照数据包的报文信息,查找路由表。
步骤504,按照路由表提供的输出端口,将IP数据包转发到目的地。
当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。

Claims (10)

1、一种隧道包的分片发送方法,应用于通信设备中的数据包发送,其特征在于,在隧道的入口设备上进行分片处理过程,根据原始数据包的类型进行不同处理;其中,对需要进行隧道封装及分片的原始数据包,在通信设备的隧道入口设备上先进行原始数据包的分片处理形成多个数据分片,再对所述多个数据分片分别进行隧道封装形成隧道包,然后发送至通信设备的隧道出口设备上进行隧道拆封处理,并通过查找路由发送至目的地。
2、根据权利要求1所述的隧道包的分片发送方法,其特征在于,在隧道的入口设备上的分片处理过程包括如下步骤:
步骤一,完成原始数据包的收包处理;
步骤二,判断是否需要对该原始数据包进行隧道封装;对不需要进行隧道封装的原始数据包直接转发,对需要进行隧道封装的原始数据包,则判断该原始数据包是否需要进行分片处理;
步骤三,对不需要进行分片处理的原始数据包直接进行隧道封装形成隧道包后转发,对需要进行分片处理的原始数据包进行分片处理形成多个数据分片,再对所述多个数据分片分别进行隧道封装形成隧道包后转发。
3、根据权利要求2所述的隧道包的分片发送方法,其特征在于,在步骤一中,还包括一步骤:判断所接收到的原始数据包是否为异常包,若为异常包,则丢弃,若不是异常包,则按照一定的策略判断该数据包是否需要隧道封装。
4、根据权利要求2所述的隧道包的分片发送方法,其特征在于,在步骤二中,判断该原始数据包是否需要进行分片处理的条件是:将该原始数据包长度加上需要封装的隧道头的长度得到一总长度,计算该总长度是否大于下一段通信链路的最大传输单元值;若该总长度大于该最大传输单元值,则需要进行分片处理,反之,则不需要进行分片处理。
5、根据权利要求2所述的隧道包的分片发送方法,其特征在于,在步骤三中,对需要进行分片处理的原始数据包进行分片处理形成多个数据分片的过程包括如下步骤:
将原始数据包的净荷分成多个尽量大的片,使每个片都可装入一个数据链路层帧;
将原始数据包的报头加到每一个由净荷分成的片的前面,形成一个数据分片。
6、根据权利要求5所述的隧道包的分片发送方法,其特征在于,所述的多个片中,其中一个片可以是8字节的非整数倍,而其他每个片的大小必须是8字节的整数倍。
7、根据权利要求2所述的隧道包的分片发送方法,其特征在于,在步骤三中,对所述多个数据分片分别进行隧道封装形成隧道包的过程是在每一个数据分片的前面加上隧道头,形成隧道包。
8、根据权利要求2所述的隧道包的分片发送方法,其特征在于,在隧道出口设备上进行隧道拆封处理的过程包括如下步骤:
完成隧道包的接收;
对隧道包进行隧道拆封,还原成原始数据包或分片数据包;
根据数据包的报文信息查找路由表,转发该数据包至目的地。
9、根据权利要求8所述的隧道包的分片发送方法,其特征在于,所述分片数据包在目的地进行重组处理后还原成原始数据包。
10、根据权利要求1所述的隧道包的分片发送方法,其特征在于,所述数据包基于TCP/IP协议进行传送。
CNB2004100084094A 2004-03-10 2004-03-10 一种隧道包的分片发送方法 Expired - Lifetime CN1299479C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2004100084094A CN1299479C (zh) 2004-03-10 2004-03-10 一种隧道包的分片发送方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2004100084094A CN1299479C (zh) 2004-03-10 2004-03-10 一种隧道包的分片发送方法

Publications (2)

Publication Number Publication Date
CN1561049A CN1561049A (zh) 2005-01-05
CN1299479C true CN1299479C (zh) 2007-02-07

Family

ID=34439941

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2004100084094A Expired - Lifetime CN1299479C (zh) 2004-03-10 2004-03-10 一种隧道包的分片发送方法

Country Status (1)

Country Link
CN (1) CN1299479C (zh)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101667959B (zh) * 2008-09-05 2014-08-20 华为技术有限公司 一种物理层数据传输的方法、装置及数据传输的系统
WO2010121416A1 (zh) 2009-04-21 2010-10-28 华为技术有限公司 中继链路中处理数据的方法、中继节点和系统
CN101626384B (zh) * 2009-08-05 2012-05-30 腾讯科技(深圳)有限公司 一种基于tcp协议传输数据包的方法和系统
CN101827031A (zh) * 2010-04-22 2010-09-08 中兴通讯股份有限公司 一种用户数据包协议udp隧道中传输报文的方法及装置
US9203751B2 (en) * 2010-12-21 2015-12-01 Telefonaktiebolaget L M Ericsson (Publ) IP fragmentation in GTP tunnel
CN104869062B (zh) * 2014-02-21 2018-11-09 华为技术有限公司 一种数据包转发方法及设备
GB2536079B (en) * 2014-06-25 2021-04-28 Pismo Labs Technology Ltd Methods and systems for transmitting and receiving data through one or more tunnel for packets satisfying one or more conditions
CN104378315B (zh) * 2014-11-17 2018-02-27 京信通信系统(中国)有限公司 一种capwap隧道数据包传输的方法及装置
CN107078837A (zh) * 2015-07-10 2017-08-18 华为技术有限公司 一种协议帧传输方法、装置、节点设备以及系统
WO2017008401A1 (zh) * 2015-07-10 2017-01-19 华为技术有限公司 一种协议帧传输方法、装置、节点设备以及系统
CN108282391B (zh) * 2018-01-11 2022-01-25 新华三技术有限公司 一种vxlan报文分片方法和装置
CN110932992A (zh) * 2019-11-29 2020-03-27 深圳供电局有限公司 一种基于隧道模式的负载均衡通信方法
CN111917786A (zh) * 2020-08-06 2020-11-10 冯田旺 基于gre隧道的数据包分片方法、数据包重组方法
CN115134309A (zh) * 2021-03-11 2022-09-30 华为技术有限公司 报文处理方法和装置
CN113852784B (zh) * 2021-07-29 2023-07-04 浪潮软件科技有限公司 一种视频流传输方法及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020017425A1 (en) * 2000-07-13 2002-02-14 Sang-Heon Yoon Suction muffler of reciprocating compressor
CN1359581A (zh) * 1999-07-08 2002-07-17 艾利森电话股份有限公司 在移动通信系统中提供安全链路的技术
CN1366434A (zh) * 2001-01-18 2002-08-28 英华达股份有限公司 通过手机的短信息服务传递数据的方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1359581A (zh) * 1999-07-08 2002-07-17 艾利森电话股份有限公司 在移动通信系统中提供安全链路的技术
US20020017425A1 (en) * 2000-07-13 2002-02-14 Sang-Heon Yoon Suction muffler of reciprocating compressor
CN1366434A (zh) * 2001-01-18 2002-08-28 英华达股份有限公司 通过手机的短信息服务传递数据的方法

Also Published As

Publication number Publication date
CN1561049A (zh) 2005-01-05

Similar Documents

Publication Publication Date Title
CN1299479C (zh) 一种隧道包的分片发送方法
CN1863165A (zh) 分组域网络中减少数据ip分片数量的方法
CN1906906B (zh) 用于ip语音的最优无线承载电路配置
EP2383957B1 (en) Method and apparatus for formatting headers in a communication frame
CN1933486A (zh) Ip通信装置及其所组成的ip通信系统
CN1615618A (zh) 双向分包数据传输系统和方法
US20060227752A1 (en) Packet transmission method and apparatus
CN1852265A (zh) 一种同步帧在ip网络上传输的方法及用于传输的网络设备
CN103262606A (zh) 对gtp隧道中的ip分片的改进
WO2010121467A1 (zh) 一种包头压缩通信方法和装置
CN101827031A (zh) 一种用户数据包协议udp隧道中传输报文的方法及装置
CN110730143B (zh) 一种分片数据包处理方法及装置
CN106416175A (zh) 一种协议栈适配方法及装置
WO2009033371A1 (fr) Système et appareil de remplissage d'unité de données de protocole (pdu) et son procédé de traitement correspondant
CN1913482A (zh) 对ip分片报文进行通用路由封装的方法
CN104753629B (zh) 一种数据递交方法和装置
CN1543104A (zh) 一种移动分组网络的数据传输方法
CN1929392A (zh) 捆绑链路状态的管理方法
CN1921481A (zh) 一种用户面协议栈和一种无损迁移实现方法
CN1248465C (zh) 网络通信中数据发送/接收缓冲区的管理方法
US8364832B2 (en) Data segregation and fragmentation in a wireless network for improving video performance
CN1531281A (zh) 无需ip重组分发分组的装置和方法
EP2600569B1 (en) Method, apparatus and system for processing a tunnel packet
CN1129280C (zh) 服务通用分组无线业务支持节点中数据包的转发方法及装置
CN1744561A (zh) 报文转换过程中的超长报文的处理方法

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
CX01 Expiry of patent term

Granted publication date: 20070207

CX01 Expiry of patent term