一种报文传输的方法、系统和装置的制作方法

文档序号:7690607阅读:71来源:国知局
专利名称:一种报文传输的方法、系统和装置的制作方法
技术领域
本发明涉及通信技术领域,尤其涉及一种报文传输的方法、系统和装置。
技术背景随着互联网的迅速发展,未来几年全球网络将全面进入从IPv4 (Internet Protocol Version 4,因特网协i义片反本4 )到IPv6 (Internet Protocol Version 6, 因特网协议版本6)的过渡时期,在IPv4到IPv6的过渡时期将出现IPv4网 络和许多局部的IPv6网络共存的局面。为了实现这些孤立的IPv6网络之间的 互通,IPv6 t艮文需要封装在IPv4头中,以tunnel (隧道)的形式穿越IPv4 网络进行转发。这就要求IPv6网络与IPv4网络的交界处是一个同时支持IPv6 和IPv4的双协议栈网络i殳备。另外,为了提高IPv6报文的转发效率,IPv6报文传输路径的中间节点禁止 对IPv6报文进行分片。即lPv6报文发送端可通过Path MTU (Path Maximum Transfer Unit,路径最大传输单元)发现机制,获知IPv6网络中所有节点的最 小MTU,即PMTU (PathMTU,路径最大传输单元),并以该PMTU发送IPv6 报文。当IPv6报文依据IPv6网络中的PMTU被发送到双栈网络设备时,它首先 被封装为IPv4报文,然后进行IPv4报文的转发处理。所有封装有IPv6报文的 IPv4报文头中的DF标记均会被置l,表示该报文不允许任何节点对其进行分 片。在IPv4网络中,当某节点发现报文大小超过自己设定的MTU时,该节点 就将报文进行分片后再转发;如果该报文不允许分片(即IPv4头中DF标记置 1 ),则该节点就向内部封装有IPv6报文的IPv4报文的源端发送一个ICMPv4 (Internet Control Message Protocol,因特网控制信息协议版本4 )消息,告知 此节点出接口 MTU的大小。因此,当包含有IPv6报文的IPv4报文在IPv4网络中传输时,如果报文长度大于某节点发送端口的MTU,按照IPv4网络中的处理,该节点会向内部封装 有lPv6报文的IPv4报文源端发送一个Packet Too Big (报文太长)的ICMPv4 (Internet Control Message Protocol,因特网控制信息协议版本4 )消息,如图1 所示。该ICMPv4消息封装在一个IPv4才艮文中,其目的IP (Internet Protocol, 因特网协议)地址是双栈设备上Tunnel所绑定物理接口的IPv4地址,并非真正 的IPv6报文发送端的IPv6地址,因此ICMPv4只能到达Tunnel的源端。当它到 达Tunnd源端后,由于携带信息太少,即使Tunnel源端继续解析,也只能通过 内层IP头中的协议域中的协议号为0x29获知内部封装的是一个IPv6报文,而无 法获知源IPv6地址。也就是说,该Packet Too Big消息不能穿越IPv6网络发回 IPv6冲艮文的发送端,也就不会影响IPv6网络的PMTU,更无法改变IPv6源端所 发i^i艮文的大小。因此,在这种情形下,IPv6报文不能穿越IPv4网络到达目的 地;而且,IPv6报文的发送端也无从知晓报文发送失败的原因。在实现本发明的过程中,发明人发现现有技术至少存在以下问题当IPv6 报文在IPv4网络中发送失败时,无法将ICMP消息发回IPv6报文的发送端, IPv6报文的发送端也就无法依据ICMP消息调整IPv6报文的大小,以重发IPv6 报文,因此IPv6报文不能穿越IPv4网络到达目的地。发明内容本发明实施例提供一种报文传输的方法、系统和装置,以实现当IPv6报文 在IPv4网络中发送失败时,将ICMP消息发回IPv6报文的源端,从而使IPv6报 文穿越IPv4网络到达目的地。为达到上述目的,本发明实施例一方面提供一种报文传输的方法,包括 以下步骤接收第一网络的指示消息,所述第一网络的指示消息携带第二网 络类型"^艮文的源地址和目的地址;根据所述第一网络的指示消息获取所述第 二网络类型报文的源地址,并将所述第 一 网络的指示消息翻译成第二网络的 指示消息;将所述第二网络的指示消息发送给所述第二网络类型报文的源端。另一方面,本发明实施例还提供一种报文传输的系统,包括双协议栈 设备,用于接收第一网络的指示消息,所述第一网络的指示消息携带第二网络类型报文的源地址和目的地址,根据所述第一网络的指示消息获取所述第 二网络类型报文的源地址,将所述第 一 网络的指示消息翻译成第二网络的指 示消息,并发送所述第二网络的指示消息。再一方面,本发明实施例还提供一种双协议栈设备,包括接收模块, 用于接收第 一 网络的指示消息,所述第 一 网络的指示消息携带第二网络类型 报文的源地址和目的地址;翻译模块,用于根据所述接收模块接收的第一网 络的指示消息获取所述第二网络类型报文的源地址,并将所述第一网络的指 示消息翻译成第二网络的指示消息;发送模块,用于将所述翻译模块翻译成 的第二网络的指示消息发送给所述第二网络类型报文的源端。再一方面,本发明实施例还提供一种第二网络类型报文的源端设备,包 括消息接收模块,用于接收双协议栈设备发送的第二网络的指示消息;调 整模块,用于根据所述消息接收模块接收的第二网络的指示消息中的承诺第 二网络类型报文长度调整所述第二网络类型报文的长度;报文发送模块,用 于发送所述调整模块调整后的第二网络类型报文。再一方面,本发明实施例还提供一种第一网络节点实体,包括判断模 块,用于判断封装了第一 网络类型的报头的第二网络类型报文的长度是否超 过所述第一网络节点的最大传输单元的长度;添加模块,用于在所述判断模 块判断所述第二网络类型报文的长度超过所述第 一 网络节点的最大传输单元 的长度之后,将所述第二网络类型寺艮文的源地址和目的地址添加到所述第一 网络的指示消息中;消息发送模块,用于将所述添加模块生成的第一网络的 指示消息发送给双协议栈设备,同时丢弃所述第二网络类型报文。与现有技术相比,本发明实施例具有以下优点通过本发明实施例,当 第二网络类型报文在第一网络中发送失败时,双协议栈设备接收第一网络的 指示消息,根据该第一网络的指示消息获取第二网络类型报文的源地址,将 第 一 网络的指示消息翻译成第二网络的指示消息,并将第二网络的指示消息 发送给第二网络类型报文的源端,从而实现了将第二网络的指示消息发回第 二网络类型报文的源端,第二网络类型报文的源端根据第二网络类型消息调 整第二网络类型报文的长度,重发第二网络类型报文,最终实现第二网络类型报文穿越第一网络到达目的地。


图1为现有技术中ICMPv4的Packet Too Big消息的格式示意图; 图2为本发明实施例"t艮文传输的方法的流程图; 图3为本发明实施例的ICMPv6消息的格式示意图; 图4为本发明实施例一的流程图;图5为本发明实施例一的IPv6报文穿越IPv4网络的传输过程示意图; 图6为本发明实施例报文传输的系统的结构图。
具体实施方式
本发明实施例提供了 一种报文传输的方法,本发明实施例以第一网络为 IPv4网络,第二网络为IPv6网络,指示消息为ICMP消息为例进行说明。因 此在本发明实施例中,第一网络类型报文为IPv4报文,第二网络类型报文为 IPv6报文,第一网络的指示消息为ICMPv4消息,第二网络的指示消息为 ICMPv6消息,双协议栈设备为同时支持IPv4协议和IPv6协议的设备。当IPv6报文在IPv4网络中发送失败时,双协议栈设备接收ICMPv4消息, 根据ICMPv4消息获取IPv6报文的源地址,将ICMPv4消息翻译成ICMPv6 消息,并将ICMPv6消息发送给IPv6报文的源端,从而实现了ICMP消息发 回IPv6报文的源端,IPv6报文的源端根据ICMPv6消息调整IPv6报文的长度, 重发IPv6报文,最终实现IPv6报文穿越IPv4网络到达目的地。如图2所示,为本发明实施例报文传输的方法的流程图,包括以下步骤步骤S201,接收ICMPv4消息,该ICMPv4消息携带IPv6 4艮文的源地址 和目的地址。双协议栈设备接收IPv4网络中IPv6报文传输路径上的节点发送 的ICMPv4消息,该ICMPv4消息为改良的Packet Too Big消息,该Packet Too Big消息携带了 IPv6报文的源地址和目的地址。如果该ICMPv4消息中IPv4 报文的协议域中的协议号为0x29,则直接将所携带的原始数据从8字节增加 到48字节。这48字节中,包含了 一个完整的IPv6报文首部和原始IPv6报文四层数据的前8字节。步骤S202,根据ICMPv4消息获取IPv6报文的源地址,并将ICMPv4消 息翻译成ICMPv6消息。双协议栈设备解析ICMPv4消息获取IPv6报文的源 地址,并将ICMPv4消息翻译成ICMPv6消息,该ICMPv6消息中新增一种与 该ICMPv4消息对应的消息类型,如图3所示。其中,代码Code-l为新增, MTUv4 (IPv4 Maximum Transfer Unit, IPv4最大传输单元)为图1中所指的 MTU,减去的20为IPv4头长度。因此,IPv6源端所发送的IPv6报文大小不 仅不能大于IPv6网络中的Path MTU,同时也不能超过IPv4网络允许的这个 IPv6 4艮文长度。另外,作为一种特例,如果封装IPv4头后的报文大小超过该双协议栈设 备IPv4出接口的MTU时,则该双协议栈设备可以直接将所要发送的ICMPv4 消息翻译成ICMPv6消息,并发回IPv6报文源端,而不再发送ICMPv4消息。步骤S203,将ICMPv6消息发送给IPv6报文的源端。双协议栈设备将 ICMPv6消息发送给IPv6报文的源端,实现ICMP消息发回IPv6报文的源端。步骤S204, IPv6报文的源端根据ICMPv6消息中的承诺IPv6报文长度调 整所述IPv6报文的长度,并发送调整后的IPv6报文。如图4所示,为本发明实施例一的流程图,在本发明实施例一中假设设 备A向设备F发送IPv6报文,则设备A为IPv6报文源端,设备F为IPv6报 文目的端,其它设备为中间设备,如图5所示。其中,设备A和设备F为IPv6 设备,设备C和设备D为IPv4设备,设备B和设备E为同时支持IPv4和IPv6 的双协议栈设备,IPv6跨越IPv4网络的Tunnel就建在这两个双栈设备上。在 设备A通过Tunnel向设备F发送IPv6报文前,IPv6路径MTU发现机制会将 这个IPv6网络(A-B-E-F )的PMTU动态通告给设备A,使设备A以PMTU 发送IPv6报文。即PMTU = min {MTUv6—1, MTUv6一2, MTUv6—3}其中,MTUv6—1、 MTUv6—3为IPv6接口下的IPv6 MTU, MTUv6—2为 Tunnel下的IPv6 MTU。 MTUv4—1 、 MTUv4—2和MTUv4—3均为IPv4网络中 各IPv4出接口的MTU。假设MTUv4—1 > (PMTU + 20) > MTUv4—2 > MTUv4—3依据现有技术,所有IPv6报文在设备C均被丟弃,永远无法到达设备F。 按照本发明实施例的方法,IPv6报文的发送过程如下步骤S401,设备B接收设备A发送的IPv6报文,将IPv6 4艮文封装成IPv4 报文,并向中间设备转发IPv4报文。设备A依据IPv6网络的PMTU向设备 B发送IPv6报文,由于PMTU为IPv6网络中MTU的最小值,报文 IPv6—Packet—1可从设备A顺利发送到设备B的Tunnel接口 ,设备B将IPv6 报文后,将其封装成IPv4报文。在设备B将IPv6报文封装20字节的IPv4 头(DF标记位置1 )后,该报文大小仍然小于MTUv4J,于是设备B继续 向设备C转发IPv4报文。步骤S402,判断IPv4报文的长度是否超过本设备的MTU的长度。设备 C收到IPv4报文后,判断封装了 IPv4头的IPv6—Packet—1报文的长度是否超 过本设备的MTU (即设备C出接口的MTUv4_2 )的长度,如果未超过则执 行步骤S403,否则4丸行步骤S404。步骤S403,向下一个中间设备转发IPv4报文。设备C将IPv4报文转发 给下一个中间设备(设备D ),设备D收到IPv4报文后进行与设备C相同的 处理流程。步骤S404,产生ICMPv4消息,并发往设备B。设备C的出接口发现封 装了 IPv4头的IPv6—Packet—1报文的长度超过了自己的MTU (MTUv4—2), 且DF标记位置1,于是产生一个协议号为0x29的ICMPv4 ( Packet Too Big) 消息发往i殳备B,同时将IPv6一Packet—1丢弃。步骤S405,设备B解析ICMPv4消息,并将其翻译成ICMPv6消息,然 后发往i殳备A。该ICMPv4消息达到设备B后,设备B发现该消息属于IPv6 网络,对其解析并将iCMPv4消息翻译成ICMPv6消息,然后发往设备A。步骤S405,设备A解析ICMPv6消息,调整IPv6报文的长度,重新向设备B 发送调整后的IPv6报文。当ICMPv6到达设备A后,由设备A对其解析,发现是 报文长度超过了IPv4网络中设备C出接口的MTUv4一2,于是向设备B重新发送 才艮文长度不超过(MTUv4_2 - 20 )的lPv6—Packe^2。若当lPv6—Packe^2顺利达到设备D时,又发现报文长度超过设备D出接口的MTU (MTUv4—3),于是 设备D再发送一个ICMPv4消息给设备B,并丟弃IPv6—Packet—2;设备B再次解 析、翻译该ICMPv4消息为ICMPv6消息,并发往设备A;当带有MTUv4一3信息 的ICMPv6到达设备A后,再进行与第一个ICMPv6消息相同的处理,重新发送 报文长度不超过(MTUv4—3 - 20 )的IPv6—Packet—3,如此进行IPv6报文就可 以顺利通过设备E最终到达设备F。通过上述实施例,当IPv6报文在IPv4网络中发送失败时,双协议栈设备 接收ICMPv4消息,根据ICMPv4消息获取IPv6报文的源地址,将ICMPv4 消息翻译成ICMPv6消息,并将ICMPv6消息发送给IPv6报文的源端,从而 实现了 ICMP消息发回IPv6报文的源端,该IPv6报文的源端再根据ICMPv6 消息调整IPv6报文的长度,重新发送调整后的IPv6报文,最终实现IPv6报 文穿越IPv4网络到达目的地。上述实施例只修改了所发送报文的实际大小,并未改变IPv6网络中 PMTU的大小,因此也不会与"IPv6网络中最小MTU不小于1280字节"的 规定存在任何冲突。如图6所示,为本发明实施例报文传输的系统的结构图,具体包括双 协议栈设备61,用于接收第一网络的指示消息,第一网络的指示消息携带第 二网络类型报文的源地址和目的地址,根据第一网络的指示消息获取第二网 络类型报文的源地址,将第一网络的指示消息翻译成第二网络的指示消息, 并发送该第二网络的指示消息。该报文传输的系统还包括第二网络类型报文的源端设备62,用于接收 双协议栈设备61发送的第二网络的指示消息,并根据第二网络的指示消息中 的承诺第二网络类型报文长度调整第二网络类型报文的长度,并发送调整后 的第二网络类型报文,调整后的第二网络类型报文的长度在封装了第一网络 类型的才艮头之后,不超过最大传输单元的长度。该报文传输的系统,还包括第一网络节点实体63,用于判断封装了第 一网络类型的报头的第二网络类型报文的长度是否超过第一网络节点的最大 传输单元的长度,如果超过,则将第二网络类型报文的源地址和目的地址添加到第一网络的指示消息中,并将第一网络的指示消息发送给双协议栈设备, 同时丟弃第二网络类型报文。
其中,双协议栈设备61包括接收模块611,用于接收第一网络的指示 消息,第一网络的指示消息携带第二网络类型报文的源地址和目的地址;
翻译模块612,用于根据接收模块611接收的第一网络的指示消息获取第 二网络类型报文的源地址,并将第 一 网络的指示消息翻译成第二网络的指示 消息;
发送模块613,用于将翻译模块612翻译的第一网络的指示消息发送给第 二网络类型报文的源端设备62。
其中,第二网络类型报文的源端设备62,包括消息接收模块621,用 于接收双协议栈设备61发送的第二网络的指示消息;
调整模块622,用于根据消息接收模块621接收的第二网络的指示消息中 的承诺第二网络类型报文长度调整第二网络类型报文的长度;
报文发送模块623,用于发送调整模块622调整后的第二网络类型报文。
其中,第一网络节点实体63,包括判断模块631,用于判断封装了第 一网络类型的报头的第二网络类型报文的长度是否超过第 一 网络节点实体63 的最大传输单元的长度;
添加模块632,用于在判断模块631判断第二网络类型报文的长度超过第 一网络节点实体63的最大传输单元的长度之后,将第二网络类型报文的源地 址和目的地址添力。到第一网络的指示消息中;
消息发送模块633,用于将添加模块632生成的第一网络的指示消息发送 给双协议栈设备61,同时丟弃第二网络类型报文。
其中,第二网络类型报文的源端设备62具体可以为IPv6报文的源端设备,第一 网络节点实体63具体可以为IPv4节点实体,双协议栈设备为同时支持IPv4协议 和IPv6协议的设备。
通过上述实施例,当第二网络类型报文在第一网络中发送失败时,双协 议栈设备61接收第一网络的指示消息,根据该第一网络的指示消息获取第二 网络类型报文的源地址,将第一网络的指示消息翻译成第二网络的指示消息,并将第二网络的指示消息发送给第二网络类型报文的源端设备62,从而实现 了将第二网络的指示消息发回第二网络类型报文的源端,第二网络类型报文 的源端设备62根据第二网络类型消息调整第二网络类型报文的长度,重发第 二网络类型报文,最终实现第二网络类型报文穿越第一网络到达目的地。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发 明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过石更件, 但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案 本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来, 该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算 机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实 施例所述的方法。以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此, 任何本领域的技术人员能思之的变化都应落入本发明的保护范围。
权利要求
1. 一种报文传输的方法,其特征在于,包括以下步骤接收第一网络的指示消息,所述第一网络的指示消息携带第二网络类型报文的源地址和目的地址;根据所述第一网络的指示消息获取所述第二网络类型报文的源地址,并将所述第一网络的指示消息翻译成第二网络的指示消息;将所述第二网络的指示消息发送给所述第二网络类型报文的源端。
2、 如权利要求1所述报文传输的方法,其特征在于,在将所述第二网络 的指示消息发送给所述第二网络类型报文的源端之后,还包括所述第二网络类型报文的源端根据所述第二网络的指示消息中的承诺第 二网络类型报文长度调整所述第二网络类型报文的长度,并发送所述调整后 的第二网络类型报文。
3、 如权利要求2所述报文传输的方法,其特征在于,所述调整后的第二 网络类型报文的长度在封装了第一网络类型的报头之后,不超过所述第二网 络类型报文传输路径上的第 一 网络节点的最大传输单元的长度。
4、 如权利要求1所述报文传输的方法,其特征在于,在接收所述第一网 络的指示消息之前,还包括所述第二网络类型报文传输路径上的第 一网络节点判断封装了第 一网络 类型的报头的第二网络类型报文的长度是否超过所述第一网络节点的最大传 输单元的长度;如果超过,则所述第 一 网络节点将所述第二网络类型报文的源地址和目 的地址添加到所述第一网络的指示消息中,并将所述第一网络的指示消息发 送给双协议栈设备,同时丟弃所述第二网络类型报文。
5、 如权利要求1-4中任一项所述报文传输的方法,其特征在于,所述第 一网络为因特网协议版本4 IPv4网络,所述第二网络为因特网协议版本6 IPv6 网络。
6、 一种报文传输的系统,其特征在于,包括双协议栈设备,用于接收第一网络的指示消息,所述第一网络的指示消 息携带第二网络类型报文的源地址和目的地址,根据所述第一网络的指示消息获取所述第二网络类型报文的源地址,将所述第 一 网络的指示消息翻译成 第二网络的指示消息,并发送所述第二网络的指示消息。
7、 如权利要求6所述报文传输的系统,其特征在于,还包括 第二网络类型报文的源端设备,用于接收所述双协议栈设备发送的第二网络的指示消息,并根据所述第二网络的指示消息中的承诺第二网络类型报 文长度调整所述第二网络类型报文的长度,并发送所述调整后的第二网络类 型报文,所述调整后的第二网络类型报文的长度在封装了第一网络类型的报 头之后,不超过所述最大传输单元的长度。
8、 如权利要求6所述报文传输的系统,其特征在于,还包括 第一网络节点实体,用于判断封装了第一网络类型的报头的第二网络类型报文的长度是否超过所述第一网络节点的最大传输单元的长度,如果超过, 则将所述第二网络类型报文的源地址和目的地址添加到所述第 一 网络的指示消息中,并将所述第一网络的指示消息发送给所述双协议栈设备,同时丟弃 所述第二网络类型报文。
9、 如权利要求6所述报文传输的系统,其特征在于,所述双协议栈设备 包括接收模块,用于接收第一网络的指示消息,所述第一网络的指示消息携 带第二网络类型报文的源地址和目的地址;翻译模块,用于根据所述接收模块接收的第一网络的指示消息获取所述 第二网络类型报文的源地址,并将所述第一网络的指示消息翻译成第二网络 的指示消息;发送模块,用于将所述翻译模块翻译的第一网络的指示消息发送给所述 第二网络类型报文的源端设备。
10、 如权利要求6-9中任一项所述报文传输的系统,其特征在于,所述第 一网络为IPv4网络,所述第二网络为IPv6网络。
11、 一种双协议栈设备,其特征在于,包括接收模块,用于接收第一网络的指示消息,所述第一网络的指示消息携 带第二网络类型报文的源地址和目的地址;翻译模块,用于根据所述接收模块接收的第一网络的指示消息获取所述 第二网络类型报文的源地址,并将所述第 一 网络的指示消息翻译成第二网络的指示消息;发送模块,用于将所述翻译模块翻译成的第二网络的指示消息发送给所 述第二网络类型报文的源端设备。
12、 一种第二网络类型报文的源端设备,其特征在于,包括 消息接收模块,用于接收双协议栈设备发送的第二网络的指示消息;调整模块,用于根据所述消息接收模块接收的第二网络的指示消息中的 承诺第二网络类型报文长度调整所述第二网络类型报文的长度;报文发送模块,用于发送所述调整模块调整后的第二网络类型报文。
13、 一种第一网络节点实体,其特征在于,包括判断模块,用于判断封装了第 一网络类型的报头的第二网络类型报文的 长度是否超过所述第一网络节点实体的最大传输单元的长度;添加模块,用于在所述判断模块判断所述第二网络类型报文的长度超过 所述第一网络节点实体的最大传输单元的长度之后,将所述第二网络类型报 文的源地址和目的地址添加到所述第一网络的指示消息中;消息发送模块,用于将所述添加模块生成的第一网络的指示消息发送给 双协议栈设备,同时丢弃所述第二网络类型报文。
全文摘要
本发明实施例公开了一种报文传输的方法、系统和装置,所述报文传输的方法包括以下步骤接收第一网络的指示消息,所述第一网络的指示消息携带第二网络类型报文的源地址和目的地址;根据所述第一网络的指示消息获取所述第二网络类型报文的源地址,并将所述第一网络的指示消息翻译成第二网络的指示消息;将所述第二网络的指示消息发送给所述第二网络类型报文的源端。通过本发明实施例,实现了ICMP消息发回IPv6报文的源端,该IPv6报文的源端根据ICMPv6消息调整IPv6报文的长度,重发IPv6报文,最终实现IPv6报文穿越IPv4网络到达目的地。
文档编号H04L12/56GK101252524SQ20081008895
公开日2008年8月27日 申请日期2008年4月8日 优先权日2008年4月8日
发明者庆 杨 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1