CN101640645B - 报文传输方法和系统 - Google Patents

报文传输方法和系统 Download PDF

Info

Publication number
CN101640645B
CN101640645B CN2009101711739A CN200910171173A CN101640645B CN 101640645 B CN101640645 B CN 101640645B CN 2009101711739 A CN2009101711739 A CN 2009101711739A CN 200910171173 A CN200910171173 A CN 200910171173A CN 101640645 B CN101640645 B CN 101640645B
Authority
CN
China
Prior art keywords
mtu
tunnel
ipv4
ipv6
message
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.)
Active
Application number
CN2009101711739A
Other languages
English (en)
Other versions
CN101640645A (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 CN2009101711739A priority Critical patent/CN101640645B/zh
Publication of CN101640645A publication Critical patent/CN101640645A/zh
Application granted granted Critical
Publication of CN101640645B publication Critical patent/CN101640645B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

为了解决IPv6隧道MTU的选择和隧道报文分片的问题,本发明提出了一种报文传输方法,包括以下步骤:将由隧道出接口的IPv4MTU(最大传输单元)计算所得的第一MTU、隧道接口所配置的IPv6MTU以及由隧道源和目的链路上IPv4路径MTU计算所得的第二MTU进行比较,并取最小值为第四MTU;当IPv6报文长度大于第四MTU时,以第四MTU为单位对IPv6报文进行分片;以及对分片的IPv6报文进行隧道封装。此外,本发明还提供了一种报文传输系统。

Description

报文传输方法和系统
技术领域
本发明涉及网络通信领域,更具体地,涉及一种报文传输方法和系统。
背景技术
在IPv6(互联网协议版本6)引入的初期,会出现许多局部的IPv6网络,这些IPv6孤岛需要通过IPv4(互联网协议版本4)骨干网络进行互联。IPv6 in IPv4(IPv6 to IPv4)隧道提供了一种IPv6通信穿越IPv4网络的方法,即将IPv6数据封装在IPv4报文中,从而实现了用现有的IPv4路由体系传送IPv6数据包。IPv6 in IPv4(IPv6 to IPv4)隧道是IPv4向IPv6过渡的初期最易于采用的技术。
如图1,IPv6报文经过IPv6 in IPv4(IPv6 to IPv4)隧道传输的过程如下:
A.IPv6报文通过路由进入隧道虚接口,将报文长度与隧道虚接口的IPv6MTU(最大传输单元)进行比较,若报文长度大于隧道虚接口的IPv6MTU,则按照该MTU将IPv6报文分片。
B.对隧道报文进行IPv4封装,即在IPv6报文前加上IPv4头,由IPv4目的地址进行路由,将报文送到物理出接口。如果该IPv4报文长度大于物理出接口的IPv4MTU,则用该MTU对报文进行二次分片。
C.IPv4报文从出接口发送到IPv4网络上,最后到达隧道终点。
D.隧道终点对接收到的IPv4报文进行解封装(若收到分片IPv4报文,需先进行重组),还原出原始的IPv6报文,再查找IPv6路由表,将报文送到目的地(若IPv6报文分片,同样需要进行重组)。
报文收发的性能会因分片/重组而降低,多次分片/重组对传输效率的影响则更大。RFC2893提出了一种方法,能减少上述IPv6inIPv4(IPv6 to IPv4)隧道可能出现的报文二次分片现象。具体说来,(1)当(IPv4路径MTU-20)不大于1280字节时,若IPv6报文长度不大于1280字节,则先按照1280字节将IPv6报文分片,再做隧道封装,并不设置IPv4头的DF(不可分片)标志,因为封装后的IPv4报文可能会被再分片;若IPv6报文长度大于1280字节,则丢弃报文并回送IPv6“报文过长”ICMP(因特网控制报文协议)差错报文。(2)当(IPv4路径MTU-20)大于1280字节时,若IPv6报文长度小于(IPv4路径MTU-20),则将IPv6报文做隧道封装,并设置IPv4头的DF标志;若IPv6报文长度(IPv4路径MTU-20),则丢弃报文并回送IPv6“报文过长”ICMP差错报文。可见,这种方法中,会造成某些长度的IPv6报文被丢弃。
现有技术中,也从MTU的角度探讨了IPv6 in IPv4隧道报文分片的解决方案。专利CN200410059486提出了一种获取隧道网关环境中路径MTU的方法,通过构造探测报文经过隧道网关,根据其建立的隧道链路MTU及探测报文长度,向发送方返回ICMP控制报文;发送方根据ICMP控制报文调整探测报文的长度,直到发送方报文不被再分片为止,此时的报文长度即为路径MTU。
该方案需要隧道起点周期性的发送探测报文,并未实现真正意义上的实时响应,另一方面探测报文的周期性发送和接收处理在一定程度上也会影响隧道源、目的节点的性能。
专利CN200810000151.1提出了一种IPv6 in IPv4隧道报文分片的自适应调整方法。隧道终点接收到IPv4分片报文时,识别首片IPv4报文所封装的IPv6报文长度并提取出所封装IPv6报文的源地址;向源地址设备发送携带有该IPv6报文长度的调整指令,使其根据该长度调整出口的IPv6路径MTU,对后面的隧道报文进行分片,从而避免了后续隧道报文的二次分片。
该方案只有当隧道源节点收到了目的节点的调整指令,重新设定IPv6路径MTU后,发出的隧道报文才能避免二次分片。
发明内容
有鉴于此,本发明提出了一种IPv6隧道MTU的选择和隧道报文分片的方法,可应用于IPv6 in IPv4和IPv6 to IPv4隧道。对于进入隧道的IPv6大报文,分片时需基于此MTU处理。
根据本发明,待封装报文到达IPv6隧道(包括IPv6 in IPv4隧道,IPv6 to IPv4隧道)起点时,本发明提出的一种报文传输方法,包括以下步骤:将由隧道的出接口的IPv4最大传输单元MTU计算所得的第一MTU、隧道接口所配置的IPv6的最大传输单元MTU以及由隧道源和目的链路上IPv4路径MTU计算所得的第二MTU进行比较,并取最小值为第四MTU;当IPv6报文长度大于第四MTU时,以第四MTU为单位对IPv6报文进行分片;以及对分片的IPv6报文进行隧道封装。
其中,当网元内存在多个单板的情况下,在进行比较时,是将第一MTU、隧道接口所配置的IPv6的最大传输单元MTU、第二MTU以及由网元内板间转发通道MTU计算所得的第三MTU进行比较,并取最小值为第四MTU。
其中,当隧道为IPv6 in IPv4隧道时,根据隧道目的IPv4地址查路由,得到出接口。
其中,当隧道为IPv6 to IPv4隧道时,从IPv6 to IPv4地址中提取隧道目的IPv4地址,根据隧道目的IPv4地址查路由,得到出接口。
其中,第一MTU是由隧道出接口的IPv4MTU减去IPv4头长算得的。
其中,第二MTU是由隧道源和目的链路上IPv4路径MTU减去IPv4头长算得的。
其中,当隧道报文经板间的通道进行转发时,根据预定策略选择板间转发通道,并取出板间转发通道MTU。
其中,第三MTU是由板间转发通道MTU减去隧道报文的内部封装长度算得的。
此外,本发明还提供了一种报文传输系统,包括:取最小值模块,用于将由隧道的出接口的IPv4最大传输单元MTU计算所得的第一MTU、隧道接口所配置的IPv6的最大传输单元MTU以及由隧道源和目的链路上IPv4路径MTU计算所得的第二MTU进行比较,取最小值为第四MTU;分片模块,用于在IPv6报文长度大于第四MTU时,以第四MTU为单位对IPv6报文进行分片;以及封装模块,用于对分片的IPv6报文进行隧道封装。
其中,当网元内存在多个单板时,取最小值模块用于将第一MTU、隧道接口所配置的IPv6的最大传输单元MTU、第二MTU以及由网元内板间转发通道MTU计算所得的第三MTU进行比较,并取最小值为第四MTU。
本发明可以避免隧道封装后的IPv4报文在隧道源和目的传输路径上被再次分片的情况,提高了隧道源和目的节点设备的处理性能以及隧道转发的性能。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的限定。在附图中:
图1示出了IPv6隧道组网的简化示意图;
图2是根据本发明实施例的通信网元简化示意图;
图3是本发明提出的IPv6隧道MTU选择和报文分片实施例流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
根据本发明,待封装报文到达IPv6隧道(包括IPv6 in IPv4隧道,IPv6 to IPv4隧道)起点时,隧道MTU的选择和报文的分片处理包括以下步骤:
A、取隧道出接口IPv4MTU计算所得的第一MTU和隧道接口所配置的IPv6MTU的最小值,作为隧道MTU;
B、取第四MTU为隧道MTU、隧道源和目的链路上IPv4路径MTU计算出来的第二MTU、以及网元内单板间转发通道MTU计算出来的第三MTU的最小值;
C、若IPv6报文长度大于第四MTU,则按照第四MTU对其进行分片;
D、对IPv6报文进行隧道封装。
所述步骤A包括:
A1、对于IPv6 in IPv4隧道,根据隧道目的IPv4地址查路由,得到隧道出接口;
A2、对于IPv6 to IPv4隧道,从IPv6 to IPv4地址(IPv6报文目的地址,或者由IPv6报文目的地址查路由表得到)中提取出隧道目的IPv4地址,再查路由,得到隧道出接口;
A3、将隧道出接口IPv4MTU减去IPv4头长,得到第一MTU。
所述步骤B包括:
B1、将隧道源和目的链路上IPv4路径MTU减去IPv4头长,得到第二MTU;
B2、特别的,对于分布式系统,隧道报文可能需要经过板间通道转发到接口板,报文转发时需根据一定的规则选择转发通道,并取出板间通道MTU;
B3、将板间通道MTU减去报文内部封装长度,得到第三MTU。
图2示出了简化的通信网元系统组成,包括:集中控制线卡、业务处理线卡、以及一块或者多块接口线卡,这些线卡之间通过内部总线进行通信。集中控制线卡,负责生成路由表和接口表,并同步给所有其他线卡。业务处理线卡,用于实现上层业务的处理。接口线卡,对外连接IPv4或IPv6网络。
参考图3,说明IPv6报文走IPv6 in IPv4(或IPv6 to IPv4)隧道发送时,MTU选择和报文分片的完整工作流程,包括以下步骤:
S301,隧道起点收到IPv6报文。
S302,判断隧道类型,若为IPv6 to IPv4隧道,走S303;若为IPv6 in IPv4隧道,直接走入S304。
S303,由报文IPv6目的地址查IPv6路由表可以得到IPv6 toIPv4地址,或者IPv6目的地址本身就是IPv6 to IPv4地址。从IPv6to IPv4地址中提取出隧道目的IPv4地址。
S304,根据隧道目的IPv4地址查路由表,得到本端隧道出接口。
S305,由隧道出接口的IPv4MTU减去IPv4头长,作为第一MTU。
S306,取第一MTU和隧道接口IPv6MTU的最小值,作为隧道MTU。
S307,取隧道源、目的链路上IPv4路径MTU减去IPv4头长,作为第二MTU。
S308,判断隧道报文是否需要走板间通道。若需要,则转入S309;否则,转入S311。
S309,取板间通道MTU减去报文内部封装长度的最小值,作为第三MTU。
S310,取隧道MTU、第二MTU及第三MTU的最小值,作为第四MTU。
S311,取隧道MTU和第二MTU的最小值作为第四MTU。
S312,IPv6报文长度是否大于第四MTU,若大于,则转入S313;否则,转入S314。
S313,用第四MTU对IPv6报文做分片处理。
S314,隧道封装。
综上所述,本发明通过合理设定IPv6 in IPv4(或IPv6 to IPv4)隧道的MTU,并结合隧道源和目的链路上IPv4路径MTU,以及网元内单板间转发通道MTU共同决定IPv6报文的MTU,作为对IPv6报文隧道封装前是否分片及如何分片的依据,避免了大报文走隧道时可能导致的多次分片现象,提高了隧道转发报文的性能和传输效率。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (7)

1.一种报文传输方法,其特征在于,包括以下步骤:
将由隧道出接口的IPv4最大传输单元MTU计算所得的第一MTU、隧道接口所配置的IPv6 MTU以及由隧道源和目的链路上IPv4路径MTU计算所得的第二MTU进行比较,并取最小值为第四MTU,其中,所述第一MTU是由所述隧道出接口的IPv4 MTU减去IPv4头长算得的,所述第二MTU是由所述隧道源和目的链路上IPv4路径MTU减去IPv4头长算得的;
当IPv6报文长度大于所述第四MTU时,以所述第四MTU为单位对所述IPv6报文进行分片;以及
对分片的IPv6报文进行隧道封装。
2.根据权利要求1所述的方法,其特征在于,当网元内存在多个单板且隧道报文在单板间转发的情况下,在进行所述比较时,是将由隧道出接口的IPv4 MTU计算所得的第一MTU、隧道接口所配置的IPv6 MTU、所述第二MTU以及由所述网元内板间转发通道MTU计算所得的第三MTU进行比较,并取最小值为所述第四MTU,其中,所述第三MTU是由所述板间转发通道MTU减去所述隧道报文的内部封装长度算得的。
3.根据权利要求1或2所述的方法,其特征在于,当所述隧道为IPv6 in IPv4隧道时,根据隧道目的IPv4地址查路由,得到所述出接口。
4.根据权利要求1或2所述的方法,其特征在于,当所述隧道为IPv6 to IPv4隧道时,从IPv6 to IPv4地址中提取隧道目的IPv4地址,根据所述隧道目的IPv4地址查路由,得到所述出接口。
5.根据权利要求2所述的方法,其特征在于,当隧道报文经板间的通道进行转发时,根据预定策略选择所述板间转发通道,并取出所述板间转发通道MTU。
6.一种报文传输系统,其特征在于,包括:
取最小值模块,用于将由隧道出接口的IPv4 MTU计算所得的第一MTU、隧道接口所配置的IPv6 MTU以及由隧道源和目的链路上IPv4路径MTU计算所得的第二MTU进行比较,取最小值为第四MTU,其中,所述第一MTU是由所述隧道出接口的IPv4 MTU减去IPv4头长算得的,所述第二MTU是由所述隧道源和目的链路上IPv4路径MTU减去IPv4头长算得的;
分片模块,用于在IPv6报文长度大于所述第四MTU时,以所述第四MTU为单位对所述IPv6报文进行分片;以及
封装模块,用于对分片的IPv6报文进行隧道封装。
7.根据权利要求6所述的系统,其特征在于,当网元内存在多个单板且隧道报文在单板间转发时,所述取最小值模块用于将所述第一MTU、隧道接口所配置的IPv6 MTU、所述第二MTU以及由网元内板间转发通道MTU计算所得的第三MTU进行比较,并取最小值为第四MTU,其中,所述第三MTU是由所述板间转发通道MTU减去所述隧道报文的内部封装长度算得的。
CN2009101711739A 2009-09-09 2009-09-09 报文传输方法和系统 Active CN101640645B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2009101711739A CN101640645B (zh) 2009-09-09 2009-09-09 报文传输方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2009101711739A CN101640645B (zh) 2009-09-09 2009-09-09 报文传输方法和系统

Publications (2)

Publication Number Publication Date
CN101640645A CN101640645A (zh) 2010-02-03
CN101640645B true CN101640645B (zh) 2012-01-11

Family

ID=41615445

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2009101711739A Active CN101640645B (zh) 2009-09-09 2009-09-09 报文传输方法和系统

Country Status (1)

Country Link
CN (1) CN101640645B (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102469016B (zh) * 2010-11-16 2014-11-05 杭州华三通信技术有限公司 反向确定路径最大传输单元的方法和装置
CN101977156B (zh) * 2010-11-18 2012-11-21 北京星网锐捷网络技术有限公司 一种最大传输单元的学习方法、装置及路由设备
CN102523312B (zh) * 2011-12-02 2014-04-02 清华大学 一种4over6场景下的最优隧道选择方法
CN102594505A (zh) * 2012-02-08 2012-07-18 华为技术有限公司 数据传输方法及装置
CN103067278B (zh) * 2013-01-30 2016-03-16 杭州华三通信技术有限公司 一种数据帧的传输处理方法、设备及系统
CN104618275A (zh) * 2015-01-21 2015-05-13 大唐移动通信设备有限公司 一种分片处理的方法和设备
CN106656724A (zh) * 2016-12-20 2017-05-10 上海优刻得信息科技有限公司 一种报文封装方法与设备
CN107493221A (zh) * 2017-07-25 2017-12-19 合肥红铭网络科技有限公司 一种提高虚拟主机传输性能的系统
EP3761571B1 (en) * 2018-03-22 2022-06-22 Huawei Technologies Co., Ltd. Method, device and system for handling message fragmentation
CN109361782B (zh) * 2018-11-02 2021-10-08 迈普通信技术股份有限公司 一种报文转发方法及网络设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1716943A (zh) * 2004-06-28 2006-01-04 杭州华为三康技术有限公司 获取隧道网关环境中路径最大传输长度的方法及系统
CN1863165A (zh) * 2006-01-24 2006-11-15 华为技术有限公司 分组域网络中减少数据ip分片数量的方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1716943A (zh) * 2004-06-28 2006-01-04 杭州华为三康技术有限公司 获取隧道网关环境中路径最大传输长度的方法及系统
CN1863165A (zh) * 2006-01-24 2006-11-15 华为技术有限公司 分组域网络中减少数据ip分片数量的方法

Also Published As

Publication number Publication date
CN101640645A (zh) 2010-02-03

Similar Documents

Publication Publication Date Title
CN101640645B (zh) 报文传输方法和系统
CN101573927B (zh) 网络系统中的路径最大传输单元发现
CN101336427B (zh) 基于业务请求的数字对象路由
CN107517488A (zh) 报文处理的方法及设备
EP3331205B1 (en) Data packet transmission method utilized in ipv6 network and device utilizing same
CN105634956B (zh) 一种报文转发方法、装置和系统
CN101247353B (zh) 流老化方法及网络设备
CN101616078B (zh) 一种路径最大传输单元的发现方法、路由器及节点设备
CN101599948B (zh) 回声探测的方法、装置和系统
CN100433714C (zh) 一种ip分片报文传输处理方法
US12003398B2 (en) Round-trip performance measurement in a packet-switched communication network
CN102209034A (zh) 一种二层路径最大传输单元发现方法和节点
CN104734909A (zh) 一种网络双向测试的方法
JP2008252393A (ja) 通信端末装置、配信装置、エラー通知方法およびエラー通知プログラム
CN105933235B (zh) 数据通信方法及装置
CN107483346A (zh) 自治系统内的消息传递方法、装置及相应的消息传递系统
CN101640635A (zh) 一种6over4隧道中避免报文重组的方法及系统
CN101803303A (zh) 用于管理分段数据分组传输的方法和系统
CN101635685B (zh) 一种学习获得pmtu的方法及装置
CN100561981C (zh) 多协议标签交换转发方法及转发设备
CN102469016B (zh) 反向确定路径最大传输单元的方法和装置
CN101272326A (zh) 一种聚合链路传输报文的方法和通信设备
KR20070088723A (ko) 통신 장치, 루팅 방법 및 프로그램
CN100508467C (zh) 一种转发层代理pim的方法及路由设备
Martins Disruption/delay tolerant networking with low-bandwidth underwater acoustic modems

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