通用路由封装隧道报文转发方法及系统的制作方法

文档序号:7551771阅读:165来源:国知局
专利名称:通用路由封装隧道报文转发方法及系统的制作方法
技术领域
本发明涉及通信技术领域,尤其涉及一种通用路由封装隧道报文转发方法及系统。
背景技术
通用路由封装(Generic Routing Encapsulation, GRE)隧道为虚拟专用网络(Virtual Private Network, VPN)的一种,其作用主要是用来隐藏私网IP,使私网报文可以在公网上进行转发,其结构如下:I外网ip头Igre头I私网ip头I数据其中每个IP头中包含以下信息:IP头的版本号(区分IPv4报文还是IPv6报文)、IP头的长度,服务类型、IP包的长度、IP包标识、IP数据分割标志、IP数据分割偏移、生存时间、协议类型(TCP/UDP/GRE/ESP/AH等)、头部检验和、源地址、目的地址、可选项、填充。现有技术中,在网络对报文进行转发时,对小报文的转发效率要低于对大报文的转发效率,例如都转发20兆的报文,总量相同的数据使用小报文发送个数一定多于大报文个数。那么在中间设备对报文进行转发处理时,由于相同的总量转发时处理的小报文个数要多,所以转发总体速度自然就慢了,因此需要找到一种提高小报文转发速度的方法。

发明内容
(一)要解决的技术问题本发明要解决的技术问题是:提供一种用路由封装隧道报文转发方法及系统,以提高小报文的转发速度。(二)技术方案为解决上述问题,一方面,本发明提供了一种通用路由封装GRE隧道报文转发方法,包括:第一内网的设备向第二内网的设备发送多个小报文,其中,所述小报文的大小小于网络最大传输单元的大小;第一防火墙设备接收到所述第一内网的设备发送的多个小报文,根据所述小报文的大小将多个小报文进行整合并封装成一个GRE封装报文,所述GRE封装报文的大小不大于网络最大传输单元的大小;第一防火墙设备将所述GRE封装报文通过穿越公网的GRE隧道向第二防火墙设备发送;第二防火墙设备接收所述GRE封装报文后,将所述GRE封装报文进行分割获得封装前的多个小报文;第二防火墙设备对所述获得的多个小报文进行单独处理后转发给对应的第二内网的设备。优选地,所述GRE封装报文的格式为:
I外网IP头IGRE头I内网IP头1|数据11内网IP头2 |数据2 |...|内网IP头η I数据η I…I内网IP头N |数据N |,
其中,N为GRE封装报文中封装的小报文的个数,η为不大于N的自然数;内网IP头η为GRE封装中的第η个小报文对应的第一内网设备内网ΙΡ,数据η为所述第η个小报文对应的数据。优选地,所述外网IP头包括IP包的长度信息,所述IP包的长度信息包括所述GRE封装报文的GRE头的长度以及GRE封装报文中所有小报文的IP数据总长度。优选地,所述第二防火墙设备对所述GRE封装报文进行分割前,通过所述GRE封装报文中外网IP头获取GRE封装报文中所有小报文的IP数据总长度,再根据所述小报文的IP数据总长度以及每个内网IP头中记录的对应小报文的数据长度信息对所述GRE封装报文进行分割。优选地,所述第一防火墙设备根据所述小报文的大小将多个小报文进行整合并封装成一个GRE封装报文的步骤包括:第一防火墙设备接收小报文后判断当前已经接收还未发送的所有小报文的总大小是否大于所述网络最大传输单元的大小:如果不大于,则继续接收下一个小报文后回到判断当前已经接收还未发送的所有小报文总的大小是否大于所述网络最大传输单元的大小的步骤;如果大于,则将在当前接收的小报文之前已经接收还未发送的所有小报文进行整合并封装成一个GRE封装报文。。优选地,所述第一防火墙设备根据所述小报文的大小将多个小报文进行整合并封装成一个GRE封装报文的步骤进一步包括:第一防火墙设备接收到小报文之后,若超过设定时间还未接收到下一个报文,则将已经接收还未发送的所有小报文进行整合并封装成一个GRE封装报文。另一方面,本发明还提供了一种通用路由封装GRE隧道报文转发系统,包括:第一内网的设备,用于向第二内网的设备发送多个小报文,其中,所述小报文的大小小于网络最大传输单元的大小;第一防火墙设备,用于接收到所述第一内网的设备发送的多个小报文,根据所述小报文的大小将多个小报文进行整合并封装成一个GRE封装报文,然后将所述GRE封装报文向第二防火墙设备发送;所述GRE封装报文的大小不大于网络最大传输单元的大小;第二防火墙设备,与所述第一防火墙设备之间建立有穿越公网的GRE隧道,用于接收所述GRE封装报文后,将所述GRE封装报文进行分割获得封装前的多个小报文,然后对所述获得的多个小报文进行单独处理后转发给对应的第二内网的设备;第二内网的设备,用于接收所述第二防火墙设备转发的处理后的小报文。(三)有益效果本发明通过将多个小报文整合封装成一个较大的GRE封装报文后再进行转发,提高了在有大量小报文需要转发时GRE隧道的转发速度,同时由于公网中需要转发的报文数量减少了,减小了网络的压力。


图1为根据本发明实施例一种通用路由封装GRE隧道报文转发方法流程图;图2为根据本发明实施例两个内网的设备通过各自的防火墙设备进行通信的示意图;图3为根据本发明实施例一种通用路由封装GRE隧道报文转发系统的结构示意图。
具体实施例方式下面结合附图及实施例对本发明进行详细说明如下。实施例一:图1所示为本实施例记载的一种通用路由封装GRE隧道报文转发方法流程图,所述方法包括:SllO:第一内网的设备向第二内网的设备发送多个小报文,其中,所述小报文的大小小于网络最大传输单元的大小;S120:第一防火墙设备接收到所述第一内网的设备发送的多个小报文,根据所述小报文的大小将多个小报文进行整合并封装成一个GRE封装报文,所述GRE封装报文的大小不大于网络最大传输单元的大小;S130:第一防火墙设备将所述GRE封装报文通过穿越公网的GRE隧道向第二防火墙设备发送;S140:第二防火墙设备接收所述GRE封装报文后,将所述GRE封装报文进行分割获得封装前的多个小报文;S150:第二防火墙设备对所述获得的多个小报文进行单独处理后转发给对应的第二内网的设备。在本实施例中,通过将多个小报文整合封装成一个较大的GRE封装报文后再进行转发,提高了在有大量小报文需要转发时GRE隧道的转发速度,同时减小了网络的压力。实施例二:图2所示为本实施例记载的两个内网的设备通过各自的防火墙设备进行通信的示意图。其中第一内网PC a的设备(内网IP为1.1.1.1)对应的第一防火墙FW a设备(公网IP为201.1.1.1)与第二内网PC b的设备(公网IP为202.1.1.2)对应的第二防火墙FWb设备(内网IP为2.2.2.2)之间配置有穿越公网的GRE隧道,公网之间配置的转发最大传输单元(Maximum Transmission Unit, MTU)为512k,使小于512字节的报文无需分片就可进行转发。第一内网PC a的设备和第二内网PC b的设备通过所述GRE隧道对报文进行转发。本实施例记载的GRE隧道报文转发方法,包括:S210:第一内网PC a的设备向第二内网PC b的设备发送大量的小报文,本实施例中,设每个小报文的大小为64k,在本发明的其它实施例中,所述各小报文的大小可以不同;S220:第一防火墙FW a设备接收到所述第一内网PC a的设备发送的小报文,根据所述小报文的大小选择多个小报文进行整合并封装成一个GRE封装报文,在本实施例中,将8个小报文整合封装成一个512k的GRE封装报文,使得GRE封装报文的大小正好为MTU的大小;其中,所述GRE封装报文的格式为:I外网IP头Igre头I内网ip头ι|数据11内网ip头2|数据2卜.I内网ip头η I数据η I…I内网IP头N |数据N其中,N为GRE封装报文中封装的小报文的个数,本实施例中N为8,η为不大于N的自然数;内网IP头η为GRE封装中的第η个小报文对应的第一内网PC a设备的内网IP,数据η为所述第η个小报文对应的数据;这里第一内网PC a可能有多个设备同时访问第二内网PC b的设备,所以上述GRE封装报文的格式中的各内网IP头可能不同。所述外网IP头包括IP包的长度信息,所述IP包的长度信息包括所述GRE封装报文的GRE头的长度以及GRE封装报文中所有小报文的IP数据总长度;每个内网IP头中记录有对应小报文的数据长度信息;S230:第一防火墙FW a设备将所述GRE封装报文通过穿越公网的GRE隧道向第二防火墙FW b设备发送;S240:第二防火墙FW b设备接收所述GRE封装报文后,通过所述GRE封装报文中外网IP头获取GRE封装报文中所有小报文的IP数据总长度,再根据所述小报文的IP数据总长度以及每个内网IP头中记录的对应小报文的数据长度信息,再根据所述小报文的数据总长度对所述GRE封装报文进行分割,获得封装前的8个小报文;S250:第二防火墙FW b设备对所述获得的多个小报文进行单独处理后转发给对应的第二内网PC b的设备。本实施例中把多个小报文封装在一个GRE封装报文中来进行转发,使网络处理效果提闻。实施例三:本实施例包括了实施例一或实施例二的内容,但是更为具体的,在本实施例中,所述第一防火墙设备根据所述小报文的大小将多个小报文进行整合并封装成一个GRE封装报文的步骤包括:第一防火墙设备接收小报文后判断当前已经接收还未发送的所有小报文的总大小是否大于所述网络最大传输单元的大小:如果不大于,则继续接收下一个小报文后回到判断当前已经接收还未发送的所有小报文总的大小是否大于所述网络最大传输单元的大小的步骤;如果大于,则将在当前接收的小报文之前已经接收还未发送的所有小报文进行整合并封装成一个GRE封装报文。这样,一旦当前接收的小报文与之前已经接收但是还未发送的所有小报文的和超过了网络最大传输单元的大小,则将之前已经接收但是还未发送的所有小报文进行整合后转发。 此外,在本实施例中,为了避免接收的小报文是最后一个报文而浪费时间,第一防火墙设备接收到小报文之后,若超过设定时间还未接收到下一个报文,则将已经接收还未发送的所有小报文进行整合并封装成一个GRE封装报文。例如预设设定时间为0.01秒,如果在接收到当前小报文后,过了 0.01秒之后还未接收到下一个小报文,则直接将已经接收的小报文封装成GRE封装报文,无需再等待小报文的总大小不大于MTU,以免此小报文为最后一个报文而浪费时间本实施例通过GRE隧道的特点,在大量小报文需要进行GRE隧道转发时,将多个小报文进行整合成一个大报文,使GRE封装报文的体积正好适合网络转发。实施例四:图3所示为本实施例记载的一种通用路由封装GRE隧道报文转发系统的结构示意图,用于实现上述实施例一、实施例二或实施例三的方法,包括:第一内网的设备310,用于向第二内网的设备340发送多个小报文,其中,所述小报文的大小小于网络最大传输单元大小;第一防火墙设备320,用于接收到所述第一内网的设备310发送的多个小报文,根据所述小报文的大小将多个小报文进行整合并封装成一个GRE封装报文,然后将所述GRE封装报文向第二防火墙设备330发送;所述GRE封装报文的大小不大于网络最大传输单元的大小;第二防火墙设备330,与所述第一防火墙设备320之间建立有穿越公网的GRE隧道,用于接收所述GRE封装报文后,将所述GRE封装报文进行分割获得封装前的多个小报文,然后对所述获得的多个小报文进行单独处理后转发给对应的第二内网的设备340 ;第二内网的设备340,用于接收所述第二防火墙设备330转发的处理后的小报文。通过本实施例的系统,可以将多个小报文整合封装成一个较大的GRE封装报文后再进行转发,提高了在有大量小报文需要转发时GRE隧道的转发速度。以上实施方式仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由权利要求限定。
权利要求
1.一种通用路由封装GRE隧道报文转发方法,其特征在于,包括: 第一内网的设备向第二内网的设备发送多个小报文,其中,所述小报文的大小小于网络最大传输单元的大小; 第一防火墙设备接收到所述第一内网的设备发送的多个小报文,根据所述小报文的大小将多个小报文进行整合并封装成一个GRE封装报文,所述GRE封装报文的大小不大于网络最大传输单元的大小; 第一防火墙设备将所述GRE封装报文通过穿越公网的GRE隧道向第二防火墙设备发送; 第二防火墙设备接收所述GRE封装报文后,将所述GRE封装报文进行分割获得封装前的多个小报文; 第二防火墙设备对所述获得的多个小报文进行单独处理后转发给对应的第二内网的设备。
2.如权利要求1所述的方法,其特征在于,所述GRE封装报文的格式为: 外网ip头Igre头I内网ip头ι|数据ι|内网ip头2|数据2|…I内网ip头n|数据n|…I内网IP头Ni数 据N 其中,N为GRE封装报文中封装的小报文的个数,η为不大于N的自然数;内网IP头η为GRE封装中的第η个小报文对应的第一内网设备的内网ΙΡ,数据η为所述第η个小报文对应的数据。
3.如权利要求2所述的方法,其特征在于,所述外网IP头包括IP包的长度信息,所述IP包的长度信息包括所述GRE封装报文的GRE头的长度以及GRE封装报文中所有小报文的IP数据总长度。
4.如权利要求3所述的方法,其特征在于,所述第二防火墙设备对所述GRE封装报文进行分割前,通过所述GRE封装报文中外网IP头获取GRE封装报文中所有小报文的IP数据总长度,再根据所述小报文的IP数据总长度以及每个内网IP头中记录的对应小报文的数据长度信息对所述GRE封装报文进行分割。
5.如权利要求1所述的方法,其特征在于,所述第一防火墙设备根据所述小报文的大小将多个小报文进行整合并封装成一个GRE封装报文的步骤包括: 第一防火墙设备接收小报文后判断当前已经接收还未发送的所有小报文的总大小是否大于所述网络最大传输单元的大小: 如果不大于,则继续接收下一个小报文后回到判断当前已经接收还未发送的所有小报文总的大小是否大于所述网络最大传输单元的大小的步骤; 如果大于,则将在当前接收的小报文之前已经接收还未发送的所有小报文进行整合并封装成一个GRE封装报文。
6.如权利要求5所述的方法,其特征在于,所述第一防火墙设备根据所述小报文的大小将多个小报文进行整合并封装成一个GRE封装报文的步骤进一步包括:第一防火墙设备接收到小报文之后,若超过设定时间还未接收到下一个报文,则将已经接收还未发送的所有小报文进行整合并封装成一个GRE封装报文。
7.一种通用路由封装GRE隧道报文转发系统,其特征在于,包括: 第一内网的设备,用于向第二内网的设备发送多个小报文,其中,所述小报文的大小小于网络最大传输单元大小; 第一防火墙设备,用于接收到所述第一内网的设备发送的多个小报文,根据所述小报文的大小将多个小报文进行整合并封装成一个GRE封装报文,然后将所述GRE封装报文向第二防火墙设备发送;所述GRE封装报文的大小不大于网络最大传输单元的大小; 第二防火墙设备,与所述第一防火墙设备之间建立有穿越公网的GRE隧道,用于接收所述GRE封装报文后,将所述GRE封装报文进行分割获得封装前的多个小报文,然后对所述获得的多个小报文进行单独处理后转发给对应的第二内网的设备; 第二内网的设备,用 于接收所述第二防火墙设备转发的处理后的小报文。
全文摘要
本发明公开了一种通用路由封装GRE隧道报文转发方法及系统,所述方法包括第一内网的设备向第二内网的设备发送多个小报文;第一防火墙设备接收到所述第一内网的设备发送的多个小报文,根据所述小报文的大小将多个小报文进行整合并封装成一个GRE封装报文;第一防火墙设备将所述GRE封装报文通过穿越公网的GRE隧道向第二防火墙设备发送;第二防火墙设备接收所述GRE封装报文后,将所述GRE封装报文进行分割获得封装前的多个小报文;第二防火墙设备对所述获得的多个小报文进行单独处理后转发给对应的第二内网的设备。本发明提高了在有大量小报文需要转发时GRE隧道的转发速度,并减小了网络的压力。
文档编号H04L29/06GK103152254SQ20131004165
公开日2013年6月12日 申请日期2013年2月1日 优先权日2013年2月1日
发明者陈海滨 申请人:汉柏科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1