一种分片报文传输方法及通讯系统及隧道设备的制作方法

文档序号:7974014阅读:225来源:国知局
专利名称:一种分片报文传输方法及通讯系统及隧道设备的制作方法
技术领域
本发明涉及通信领域,尤其涉及一种分片报文传输方法及通讯系统以及隧道设备。
背景技术
为了解决第四版互联网协议(IPv4,Internet Protocol version4)的IP地址缺少问题,企业一般在出口处部署网络地址转换器(NAT,Network AddressTranslation)/防火墙设备,对内部地址进行转换。
所谓分片报文是指在物理层会限制通过的每个数据帧的最大长度。当IP层收到一个IP报文需要发送时,首先要查询出接口的最大传输单元(MTU,Maximum Transmission Unit)的值,并将MTU与数据报文的长度相比较,如果报文长度超过MTU,则需要对该IP报文进行分片,图1给出了一个对用户数据报协议(UDP,User Datagram Protocol)报文进行分片的例子。
但是有很多NAT/防火墙设备不支持分片报文,造成需要分片的应用不能穿越NAT/防火墙设备。

发明内容
本发明实施例要解决的技术问题是提供一种分片报文传输方法及通讯系统以及隧道设备,能够使分片报文穿越NAT/防火墙。
本发明实施例提供的分片报文传输方法,包括隧道设备之间建立用户数据报协议隧道;第一隧道设备接收分片报文并将分片报文转换为非分片报文;将所述非分片报文通过所述用户数据报协议隧道传输至第二隧道设备。
可选地,所述第一隧道设备接收分片报文并将分片报文转换为非分片报文的步骤包括在分片报文的互联网协议头之后增加用户数据报协议隧道头。
可选地,所述第一隧道设备为隧道客户端;所述在分片报文的互联网协议头之后增加用户数据报协议隧道头的步骤包括所述隧道客户端接收终端发送的报文;在所述报文的互联网协议头之后增加用户数据报协议隧道头并计算校验和。
可选地,所述第一隧道设备为隧道服务器;所述在分片报文的互联网协议头之后增加用户数据报协议隧道头的步骤包括所述隧道服务器接收服务器发送的报文;以所述报文的目的互联网地址查找表项;根据所述表项的内容在所述报文的互联网协议头之后增加用户数据报协议隧道头并计算校验和。
可选地,所述第二隧道设备为隧道服务器;所述将所述非分片报文通过所述用户数据报协议隧道传输至第二隧道设备的步骤包括隧道客户端将转换之后的报文发送至网络地址转换器/防火墙;网络地址转换器/防火墙将所述报文转发至所述隧道服务器。
可选地,所述网络地址转换器/防火墙将所述报文转发至隧道服务器的步骤之后包括隧道服务器对所述报文进行还原并将还原后的报文发送至服务器。
可选地,所述隧道服务器对所述报文进行还原的步骤包括将用户数据报协议隧道头中的信息复制到互联网协议头中的对应的信息位置;删除用户数据报协议隧道头并记录用户数据报协议隧道头的源端口;对报文进行互联网报文重组;获取报文中的源互联网地址,并根据所述互联网地址与用户数据报协议隧道头中的源端口查找表项,若查找到,则利用查找到的互联网地址替换所述源互联网地址,若未查找到,则重新分配一个互联网地址替换所述源互联网地址;计算校验和。
可选地,所述第二隧道设备为隧道客户端;所述将所述非分片报文通过所述用户数据报协议隧道传输至第二隧道设备的步骤包括隧道服务器将转换之后的报文发送至网络地址转换器/防火墙;网络地址转换器/防火墙将所述报文转发至所述隧道客户端。
可选地,所述网络地址转换器/防火墙将所述报文转发至隧道客户端的步骤之后包括隧道客户端将用户数据报协议隧道头中的信息复制到互联网协议头中的对应的信息位置;删除用户数据报协议隧道头并计算校验和形成新报文;将所述新报文发送至终端。
本发明实施例提供的通讯系统,包括第一隧道设备以及第二隧道设备;所述第一隧道设备与第二隧道设备之间建立用户数据报协议隧道;所述第一隧道设备用于接收分片报文并将分片报文转换为非分片报文,并将所述非分片报文通过所述用户数据报协议隧道传输至第二隧道设备;所述第二隧道设备用于接收来自第一隧道设备的报文。
可选地,所述系统还包括终端,网络地址转换器/防火墙以及服务器;所述终端用于向第一隧道设备发送报文并接收来自第一隧道设备的报文;所述网络地址转换器/防火墙用于对来自第一隧道设备或第二隧道设备的报文进行地址转换及转发;所述服务器用于向第二隧道设备发送报文并接收来自第二隧道设备的报文。
本发明实施例提供的隧道设备,包括接收单元,识别单元,转换单元,还原单元以及传输单元;所述接收单元用于接收报文,并将接收到的报文发送至识别单元;所述识别单元判断所述报文是否为用户数据报协议隧道报文,若是,则将报文发送至还原单元,若否,则将报文发送至转换单元;所述转换单元用于对接收到的报文进行转换并发送至传输单元;所述还原单元用于对接收到的报文进行还原并发送至传输单元;传输单元用于发送报文。
以上技术方案可以看出,本发明具有以下优点本发明实施例由于在报文的互联网协议头之后增加一个用户数据报协议隧道头,将分片报文转换为非分片报文,并通过预先建立的用户数据报协议隧道进行传输,通过NAT/防火墙传输到对端后,将报文还原,所以可以使分片报文穿越NAT/防火墙。


图1为报文分片示意图;图2为本发明方法实施例一流程图;
图3为本发明方法实施例二流程图;图4为本发明通讯系统实施例示意图;图5为本发明隧道设备实施例示意图。
具体实施例方式
本发明实施例提供了一种分片报文传输方法及通讯系统以及隧道设备,用于实现分片报文穿越NAT/防火墙。
请参阅图2,本发明分片报文传输方法第一实施例流程包括201、建立UDP隧道;其中,UDP隧道客户端(UTC,UDP Tunnel Client)发送报文与UDP隧道服务器(UTS,UDP Tunnel Server)建立UDP隧道。
其中,UTC通过某一个报文建立UDP隧道,具体过程如下1、UTC在接收到的报文的基础上,在IP头之后插入一个UDP隧道头,UDP隧道头中的协议域等于原IP头中的协议域,UDP隧道头中的offset域等于IP分片报文中的offset域,并重新计算校验和;2、UTC将所述报文发送至NAT/防火墙;3、NAT/防火墙将所述报文转发至UTS;4、UTS接收到报文之后首先判断是否为UDP隧道报文,若是,则判断UDP隧道头中的offset域是否为分片报文,若是,则将UDP隧道头中的协议域复制到IP头的协议域,将UDP隧道头中的offset域复制到IP头的offset域;5、对报文进行IP报文重组;6、取出报文中的源IP,与UDP隧道头中的源端口为索引查找表项;7、由于是第一次传输报文,所以无法查找到对应的表项,则UTS分配一个新的源IP,并把UDP隧道头的源端口、目的端口、报文源IP,新的源IP信息记录到表项中,至此,UDP隧道建立。
下面的流程均是在UDP隧道已经建立的基础上进行的。
202、UTC接收报文;其中,UTC接收来自终端的报文。
203、对报文进行转换;其中,UTC接收到报文之后,在原报文的基础上,在IP头之后插入一个UDP隧道头,UDP隧道头中的协议域等于原IP头中的协议域,UDP隧道头中的offset域等于IP分片报文中的offset域,并重新计算校验和。
其中,UDP隧道头(UTH,UDP Tunnel Head)包括以下主要内容1、一个标准的UDP头2、在标准的UDP头之后包括一个协议域,用来指明原IP报文中承载的报文类型,是UDP、TCP还是SCTP。
3、可选的,在标准的UDP头后面包括一个类型域,指明UDP隧道自身的报文类型。
4、在标准的UDP头后面包括一个offset域,保存IP分片报文的offset。
204、传输至UTS;其中,UTC将转换后的报文发送至NAT/防火墙,NAT/防火墙再将报文转发至UTS。
205、对报文进行还原;其中,UTS接收到报文之后,执行以下步骤1、将UDP隧道头中的协议域复制到IP头的协议域,将UDP隧道头中的offset域复制到IP头的offset域;2、删除UDP隧道头,记录下UDP隧道头的源端口;3、对报文进行IP报文重组;4、取出报文中的源IP,与UDP隧道头中的源端口为索引查找表项;5、从表项中取出该源IP;
6、将新的IP替换原报文的源IP,重新计算校验和。
206、将报文发送至服务器。
其中,将还原后的报文发送至服务器。
上述流程是UTC向UTS发送分片报文的过程,下面介绍UTS向UTC发送分片报文的过程。
请参阅图3,本发明分片报文传输方法第二实施例流程包括301、建立UDP隧道;其中,UTC向UTS发送报文建立UDP隧道,具体的建立过程与本发明方法第一实施例中的建立过程一致。
302、UTS接收报文;其中,UTS接收来自服务器的报文;303、对报文进行转换;其中,UTS在接收到报文之后对报文进行转换,具体的步骤如下UTS以报文的目的IP为索引查找表项,如果未查找到,则丢弃该报文,若查找到,则从表项中取出记录的源IP,UDP隧道头的源端口和目的端口,把报文的目的IP替换成表项中的源IP,并在报文的IP头之后插入以表项记录的UDP隧道头的源端口为目的端口,以目的端口为源端口的UDP隧道头。协议域更新为原IP中的协议域,新的IP头的协议域更新为17,将IP头中的offset域复制到UDP隧道头中的offset域,重新计算校验和。
304、传输至UTC;其中,UTS将转换后的报文发送至NAT/防火墙,NAT/防火墙将所述报文发送至UTC。
305、对报文进行还原;其中,UTC在接收到报文之后,去掉IP头之后的UDP隧道头,并将UDP隧道头中的协议域复制到IP头的协议域,将UDP隧道头中的offset域复制到IP头的offset域。
306、将报文发送至终端。
其中,UTC将还原后的报文发送至终端。
请参阅图4,本发明通讯系统实施例包括第一隧道设备402以及第二隧道设备404;第一隧道设备402与第二隧道设备404之间建立用户数据报协议隧道;所述第一隧道设备402用于接收分片报文并将分片报文转换为非分片报文,并将所述非分片报文通过所述用户数据报协议隧道传输至第二隧道设备404;所述第二隧道设备404用于接收来自第一隧道设备的报文。
在本实施例中,第一隧道设备402为隧道客户端,第二隧道设备404为隧道服务器;则所述系统还包括终端401,网络地址转换器/防火墙403以及服务器405;所述终端401用于向第一隧道设备402发送报文并接收来自第一隧道设备402的报文;所述网络地址转换器/防火墙403用于对来自第一隧道设备402或第二隧道设备404的报文进行地址转换及转发;所述服务器405用于向第二隧道设备404发送报文并接收来自第二隧道设备404的报文。
请参阅图5,本发明隧道设备实施例包括接收单元501,识别单元502,转换单元503,还原单元504以及传输单元505;所述接收单元501用于接收报文,并将接收到的报文发送至识别单元502;所述识别单元502判断所述报文是否为用户数据报协议隧道报文,若是,则将报文发送至还原单元504,若否,则将报文发送至转换单元503;所述转换单元503用于将接收到的分片报文转换为非分片报文并发送至传输单元505;所述还原单元504用于将接收到的报文还原并发送至传输单元505;传输单元505用于将报文发送。
其中,上述实施例中,隧道设备与终端、服务器是分离的,可以理解的是,UDP隧道客户端可以集成在终端中,UDP隧道服务器也可以集成在服务器中。
以上对本发明实施例所提供的一种分片报文传输方法及通讯系统以及隧道设备进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式
及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
权利要求
1.一种分片报文传输方法,其特征在于,包括隧道设备之间建立用户数据报协议隧道;第一隧道设备接收分片报文并将分片报文转换为非分片报文;将所述非分片报文通过所述用户数据报协议隧道传输至第二隧道设备。
2.根据权利要求1所述的分片报文传输方法,其特征在于,所述第一隧道设备接收分片报文并将分片报文转换为非分片报文的步骤包括在分片报文的互联网协议头之后增加用户数据报协议隧道头。
3.根据权利要求2所述的分片报文传输方法,其特征在于,所述第一隧道设备为隧道客户端;所述在分片报文的互联网协议头之后增加用户数据报协议隧道头的步骤包括所述隧道客户端接收终端发送的报文;在所述报文的互联网协议头之后增加用户数据报协议隧道头并计算校验和。
4.根据权利要求2所述的分片报文传输方法,其特征在于,所述第一隧道设备为隧道服务器;所述在分片报文的互联网协议头之后增加用户数据报协议隧道头的步骤包括所述隧道服务器接收服务器发送的报文;以所述报文的目的互联网地址查找表项;根据所述表项的内容在所述报文的互联网协议头之后增加用户数据报协议隧道头并计算校验和。
5.根据权利要求3所述的分片报文传输方法,其特征在于,所述第二隧道设备为隧道服务器;所述将所述非分片报文通过所述用户数据报协议隧道传输至第二隧道设备的步骤包括隧道客户端将转换之后的报文发送至网络地址转换器/防火墙;网络地址转换器/防火墙将所述报文转发至所述隧道服务器。
6.根据权利要求5所述的分片报文传输方法,其特征在于,所述网络地址转换器/防火墙将所述报文转发至隧道服务器的步骤之后包括隧道服务器对所述报文进行还原并将还原后的报文发送至服务器。
7.根据权利要求6所述的分片报文传输方法,其特征在于,所述隧道服务器对所述报文进行还原的步骤包括将用户数据报协议隧道头中的信息复制到互联网协议头中的对应的信息位置;删除用户数据报协议隧道头并记录用户数据报协议隧道头的源端口;对报文进行互联网报文重组;获取报文中的源互联网地址,并根据所述互联网地址与用户数据报协议隧道头中的源端口查找表项,若查找到,则利用查找到的互联网地址替换所述源互联网地址,若未查找到,则重新分配一个互联网地址替换所述源互联网地址;计算校验和。
8.根据权利要求4所述的分片报文传输方法,其特征在于,所述第二隧道设备为隧道客户端;所述将所述非分片报文通过所述用户数据报协议隧道传输至第二隧道设备的步骤包括隧道服务器将转换之后的报文发送至网络地址转换器/防火墙;网络地址转换器/防火墙将所述报文转发至所述隧道客户端。
9.根据权利要求8所述的分片报文传输方法,其特征在于,所述网络地址转换器/防火墙将所述报文转发至隧道客户端的步骤之后包括隧道客户端将用户数据报协议隧道头中的信息复制到互联网协议头中的对应的信息位置;删除用户数据报协议隧道头并计算校验和形成新报文;将所述新报文发送至终端。
10.一种通讯系统,其特征在于,包括第一隧道设备以及第二隧道设备;所述第一隧道设备与第二隧道设备之间建立用户数据报协议隧道;所述第一隧道设备用于接收分片报文并将分片报文转换为非分片报文,并将所述非分片报文通过所述用户数据报协议隧道传输至第二隧道设备;所述第二隧道设备用于接收来自第一隧道设备的报文。
11.根据权利要求10所述的通讯系统,其特征在于,所述系统还包括终端,网络地址转换器/防火墙以及服务器;所述终端用于向第一隧道设备发送报文并接收来自第一隧道设备的报文;所述网络地址转换器/防火墙用于对来自第一隧道设备或第二隧道设备的报文进行地址转换及转发;所述服务器用于向第二隧道设备发送报文并接收来自第二隧道设备的报文。
12.一种隧道设备,其特征在于,包括接收单元,识别单元,转换单元,还原单元以及传输单元;所述接收单元用于接收报文,并将接收到的报文发送至识别单元;所述识别单元判断所述报文是否为用户数据报协议隧道报文,若是,则将报文发送至还原单元,若否,则将报文发送至转换单元;所述转换单元用于对接收到的报文进行转换并发送至传输单元;所述还原单元用于对接收到的报文进行还原并发送至传输单元;传输单元用于发送报文。
全文摘要
本发明公开了一种分片报文传输方法及通讯系统及隧道设备,用于实现分片报文穿越网络地址转换器/防火墙。所述方法包括隧道设备之间建立用户数据报协议隧道;第一隧道设备接收分片报文并将分片报文转换为非分片报文;将所述非分片报文通过所述用户数据报协议隧道传输至第二隧道设备。所述系统包括第一隧道设备以及第二隧道设备;第一隧道设备与第二隧道设备之间建立用户数据报协议隧道;第一隧道设备用于接收分片报文并将分片报文转换为非分片报文,并将所述非分片报文通过所述用户数据报协议隧道传输至第二隧道设备;第二隧道设备用于接收来自第一隧道设备的报文。本发明还提供一种隧道设备。本发明可以实现分片报文穿越防火墙。
文档编号H04L29/06GK1988508SQ200610162680
公开日2007年6月27日 申请日期2006年12月4日 优先权日2006年12月4日
发明者琚列丹 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1