一种4over6隧道中避免报文重组的方法及系统的制作方法

文档序号:7701881阅读:181来源:国知局
专利名称:一种4over6隧道中避免报文重组的方法及系统的制作方法
技术领域
本发明涉及互联网技术,进一步涉及到隧道技术领域,具体为一
种4over6隧道中避免报文重组的方法及系统。
背景技术
隧道技术已大量应用于因特网中,现有隧道类型包括4over6(IPv4 over IPv6 )隧道、6over4 (IPv6 over IPv4 )隧道、GRE ( GeneralRouting Encapsulation,通用路由封装)隧道和L2TP (Layer TwoTunneling Protocol,第二层隧道协议)隧道等。无论那一种隧道,都具有两个重要特征1)包含面向原始报文和隧道报文的两次端到端通信;2)在隧道入口具有封装操作,在隧道出口具有相应的解封装操作。隧道技术的上述特征带来一个问题在包含隧道的网络传输路径中如何实施MTU ( Maximum Transmission Unit,最大传输单元)机制的问题。
以跨协议隧道4over6为例,4over6隧道中进行原始IPv4报文转发的示意图如图l所示,源节点向目的节点发出原始IPv4报文,源地址为SRC,目的地址为DST,隧道入口地址为TE,隧道出口地址为TX。隧道入口 TE收到原始IPv4报文,判断其需要隧道封装后,对原始IPv4报文加上隧道头得到隧道IPv6报文,并传送至隧道出口 ,隧道出口收到隧道IPv6报文后进行解封装,去掉隧道头,得到原始IPv4报文并发送至目的地址DST。现有隧道技术易出现TE对封装报文进行分片,并导致TX需要对这些分片重组后再解封装转发。然而,TX路由器在数据转发层面难以提供这样的支持,对高速硬件转发尤为困难。因此,利用当前的路由器技术在TX实现重组的代价极大。隧道MTU机制的解决方案中应尽量避免在TE处对隧道报文分片,
4从而避免在TX发生重组再转发现象。而现有技术中的隧道MTU机
制没有解决上述问题。

发明内容
本发明的目的是提供一种对原始报文进行分片使得进入隧道封
装时的隧道报文长度足够小,从而避免在4over6隧道中进行报文的分片和重组的方法和系统。
为达到上述目的,本发明提供了一种4over6隧道中避免报文重组的方法,包括以下步骤
Sl,当发送主机发送原始报文至隧道入口路由器,所述隧道入口路由器通过查找路由表判断是否需要对所述原始报文进行隧道封装,若是,则执行步骤S2,否则,查找所述路由表转发所述原始报文;
S2,所述隧道入口路由器根据所述原始报文的目的地址获得所述原始报文的封装隧道、与所述封装隧道对应的封装类型、所述封装隧道的源地址以及所述封装隧道的目的地址;
S3,所述隧道入口路由器根据所述封装隧道的目的地址查找IPv6路由表,以获得原始报文的出接口,再根据所述封装隧道的目的地址及所述出接口查找隧道路径最大传输单元PMtunnd,同时,根据所述封装类型获得隧道封装长度LtJiead;然后判断所述原始报文的长度是否大于最大分片长度PMt,e,-Lt—head,若是,则执行步骤S4,否则对所述原始报文进行隧道封装,并查找所述IPv6路由表转发隧道封装后的报文至隧道出口路由器;
S4,所述隧道入口路由器根据最大分片长度PMtunnel-Lt—head对所述原始报文进行分片;
S5,所述隧道入口路由器对每个分片进行隧道封装,然后查找所述Ipv6路由表,转发隧道封装后的分片报文至隧道出口路由器;
S6,所述隧道出口路由器对每个分片报文进行解封装得到内嵌报文,然后查找所述Ipv4路由表将内嵌报文发送至接收主机。
其中,所述原始报文为HV4报文;所述隧道封装是将所述IPv4 报文封装为IPv6报文。
本发明还提供了 一种4over6隧道中避免报文重组的系统,包括 发送主机,用于发送原始报文至隧道入口路由器;隧道入口路由 器,用于根据上述4over6隧道中避免报文重组中的方法处理所述原 始报文,并将处理后的报文发送给隧道出口路由器;隧道出口路由器, 用于接收所述处理后的报文,对其进行解封装得到内嵌报文,然后查 找所述IPv4路由表将所述内嵌报文发送至所述接收主机;以及接收 主机,用于接收来自隧道出口路由器的报文。
上述技术方案具有如下优点通过对原始报文进行分片使得进入 隧道封装时的隧道报文长度足够小,从而避免在4over6隧道中进行 报文的分片和重组,实验表明本发明的技术方案使得隧道通信的性能 有了较大的提高。


图l是现有技术在4over6隧道中进行原始IPv4报文转发的示意图; 图2是本发明实施例的4over6隧道中避免报文重组的方法流程
图3是本发明实施例的4over6隧道中避免报文重组的系统结构
图4是本发明实施例与现有技术的对比实验示意图。
具体实施例方式
下面结合附图和实施例,对本发明的具体实施方式
作进一步详细 描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
本发明实施例的4over6隧道中避免报文重组的方法流程图,如图 2所示
步骤S301,当发送主机发送原始报文至隧道入口路由器,隧道入口路由器接收IPv4报文,并通过查找IPv4路由表判断是否需要对 IPv4报文进行隧道封装,若是,则执行步骤S302,否则,查找所述 IPv4路由表转发IPv4报文;
步骤S302,所述隧道入口路由器根据IPv4报文的目的地址获得 IPv4报文的封装隧道、与所述封装隧道对应的封装类型、所述封装隧 道的源地址以及所述封装隧道的目的地址;
步骤S303,所述隧道入口路由器根据所述封装隧道的目的地址 查找IPv6路由表,以获得IPv4报文的出接口,再根据所述封装隧道 的目的地址及所述出接口査找隧道路径最大传输单元PMtunnd,同时, 根据所述封装类型获得隧道封装长度Lt—head=40;然后判断所述报文 的长度是否大于最大分片长度PMtunnel-Lt—head=PMtmmel-40,若是,则 执行步骤S304,否则对IPv4报文进行隧道封装,并查找所述IPv6 路由表转发隧道封装后的报文至隧道出口路由器;
步骤S304 ,所述隧道入口路由器根据最大分片长度
head
对所述IPv4报文进行分片;
步骤S305,所述隧道入口路由器对每个分片进行隧道封装,将 所述IPv4报文封装为IPv6报文,然后査找所述IPv6路由表,转发隧 道封装后的分片报文至隧道出口路由器;
在上述步骤305之后,所述隧道出口路由器对每个分片报文进行 解封装得到内嵌IPv4报文,然后查找所述IPv4路由表将内嵌IPv4 报文发送至接收主机。其中内嵌IPv4报文可以为原始IPv4报文,也 可以是原始IPv4报文的分片。
上述实施例中, 一个隧道入口路由器可以配置多个封装隧道。
本发明实施例的4over6隧道中避免报文重组的系统结构图如图3 所示,A为发送主机,B为隧道入口路由器,D为隧道出口路由器, E为接收主机。本发明利用图3所示的系统为模型进行了模拟实验, A、 E、 F均为运行WindowsXP系统的PC机,B、 C、 D均为具有双以太网卡的Linux系统,实现IPv4/IPv6协议栈、ICMPv4/v6、以及隧
道转发功能,模拟具有双协议栈及隧道转发功能的路由器。
本实验通过pcap工具实现报文的收发,对跨协议隧道4over6进
行了测试。实验中所有链路的隧道路径最大传输单元PMtun^均为
1500。实验1利用了本发明实施例中4over6隧道中避免报文重组的 方法;实验2中利用了现有技术中的4over6隧道MTU机制,即允许 隧道入口路由器对进入隧道的报文进行分片。两个实验都测试4over6 隧道端到端的通信。4over6隧道测试中,路由器B、 C、 D之间链路 运行IPv6协议,其它链路为IPv4协议。主机A通过Sniffer软件发 送目的地址为主机E的IPv4报文,在主机E上分析收包情况。测试 结果如图4所示。从图4中可以看出,在处理长度超过PM咖erLt—head 的报文时(其中4over6隧道的封装开销为Lt—head=40比特),本发明实 施例的隧道报文分片方案使得可利用带宽有了很大的提高,从而提高 了通信性能。图3中,F为监视主机,它通过Sniffer软件观察从路由 器C发往路由器D的隧道报文。发现实验l中隧道传输中,在该链 路上没有出现任何分片的隧道报文,而在实验2中处理大报文时会在 该链路发现大量分片。
由以上实施例可以看出,本发明的实施例通过对原始报文进行分 片使得进入隧道封装时的隧道报文长度足够小,从而避免在4over6隧 道中进行报文的分片和重组,实验表明本发明的方法使得隧道通信的 性能有了较大的提高。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领 域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以 做出若千改进和润饰,这些改进和润饰也应视为本发明的保护范围。
8
权利要求
1、一种4over6隧道中避免报文重组的方法,其特征在于,包括以下步骤S1,当发送主机发送原始报文至隧道入口路由器时,所述隧道入口路由器通过查找路由表判断是否需要对所述原始报文进行隧道封装,若是,则执行步骤S2,否则,查找所述路由表转发所述原始报文;S2,所述隧道入口路由器根据所述原始报文的目的地址获得所述原始报文的封装隧道、与所述封装隧道对应的封装类型、所述封装隧道的源地址以及所述封装隧道的目的地址;S3,所述隧道入口路由器根据所述封装隧道的目的地址查找IPv6路由表,以获得所述原始报文的出接口,再根据所述封装隧道的目的地址及所述出接口查找隧道路径最大传输单元PMtunnel,同时,根据所述封装类型获得隧道封装长度Lt_head;然后判断所述原始报文的长度是否大于最大分片长度PMtunnel-Lt_head,若是,则执行步骤S4,否则对所述原始报文进行隧道封装,并查找所述IPv6路由表转发隧道封装后的报文至隧道出口路由器;S4,所述隧道入口路由器根据最大分片长度PMtunnel-Lt_head对所述原始报文进行分片;S5,所述隧道入口路由器对每个分片进行隧道封装,然后查找所述IPv6路由表,转发隧道封装后的分片报文至隧道出口路由器;
2、 如权利要求l所述的4over6隧道中避免报文重组的方法,其 特征在于,所述步骤S5之后还包括步骤S6:所述隧道出口路由器对 每个分片报文进行解封装得到内嵌报文,然后查找所述IPv4路由表 将所述内嵌报文发送至所述接收主机。
3、 如权利要求1所述的4over6隧道中避免报文重组的方法,其 特征在于,所述原始报文为IPv4报文。
4、 如权利要求3所述的4over6隧道中避免报文重组的方法,其 特征在于,所述步骤S3或步骤S5中进行隧道封装的步骤具体为将所 述IPv4报文封装为IPv6报文。
5、 一种4over6隧道中避免报文重组的系统,其特征在于,包括 发送主机,用于发送原始报文至隧道入口路由器; 隧道入口路由器,用于根据权利要求1或3或4之任一所述的4over6隧道中避免报文重组的方法处理所述原始报文,并将处理后的 报文发送给隧道出口路由器;隧道出口路由器,用于接收所述处理后的报文,并对其进行解封 装得到内嵌报文,然后查找所述IPv4路由表将所述内嵌报文发送至 所述接收主机;以及接收主机,用于接收来自隧道出口路由器的报文。
全文摘要
本发明公开了一种4over6隧道中避免报文重组的方法及系统,所述方法包括步骤隧道入口路由器根据封装隧道的目的地址查找路由表,以获得报文的出接口,再根据封装隧道的目的地址及出接口查找隧道路径最大传输单元PM<sub>tunnel</sub>,同时,根据封装类型获得隧道封装长度L<sub>t_head</sub>;然后判断报文的长度是否大于最大分片长度PM<sub>tunnel</sub>-L<sub>t_head</sub>,若是,则根据最大分片长度PM<sub>tunnel</sub>-L<sub>t_head</sub>对报文进行分片,然后对每个分片进行隧道封装,否则直接对所述报文进行隧道封装,并查找IPv6路由表转发隧道封装后的报文。本发明通过对原始报文进行分片使得进入隧道封装时的隧道报文长度足够小,从而避免在4over6隧道中进行报文的分片和重组,实验表明本发明的技术方案使得隧道通信的性能有了较大的提高。
文档编号H04L12/56GK101640636SQ20091009019
公开日2010年2月3日 申请日期2009年7月31日 优先权日2009年7月31日
发明者于乐军, 珺 何, 波 孙, 融 肖, 肖永康 申请人:北京师范大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1