一种基于用户业务多隧道传输装置
技术领域
本发明涉及数据传输领域,尤其涉及多隧道数据传输领域。
背景技术
隧道技术(Tunneling)是一种通过使用互联网络的基础设施在网络之间传递数据的方式。使用隧道传递的数据(或负载)可以是不同协议的数据帧或包。隧道协议将其它协议的数据帧或包重新封装然后通过隧道发送。新的帧头提供路由信息,以便通过互联网传递被封装的负载数据。
这里所说的隧道类似于点到点的连接。这种方式能够使来自许多信息源的网络业务在同一个基础设施中通过不同的隧道进行传输。隧道技术使用点对点通信协议代替了交换连接,通过路由网络来连接数据地址。
目前用户的数据进行隧道转发流程为:
(1)用户数据通过接口驱动模块接收到linux内核。
(2)快转模块根据控制模块的使能配置,进行上行与下行报文的转发:
(2.1)上行报文转发方法,由快速转发模块进行特定的隧道报文封装,再到服务器进行分发;
(2.2)下行报文转发方法,由各个业务数据服务器将数据解析后,通过服务器将数据添加特定的隧道报文封装,最后通过快转模块将隧道头解掉后传递给用户。
按照目前的处理流程,由于没有区分不同的隧道,各种类型的数据均通过快转模块走同样的隧道,增加了业务数据的传递开销。
发明内容
为了解决上述技术问题,本发明提出了一种实现通过基于用户的多隧道选择传输,从而实现根据用户业务的不同进行不同隧道转发,用户数据上、下行报文的转发处理。
具体地,本发明提出了一种基于用户多隧道传输装置,其中该装置包括:
控制模块,用于用户下发配置命令;
隧道选择模块,用于在上行和下行报文进入该系统时,对所述报文特性进行解析,根据报文的属性转发到不同的隧道;
第一接口驱动模块,用于无线侧收发数据报文;
第二接口驱动模块,用于有线侧收发数据报文;
快转模块,用于内核中封装、解封装capwap报文头的隧道;
业务隧道,用于内核中封装、解封装对应业务报文头的隧道;
IP转发模块,用于封装ip报文头、分片、路由。
根据本发明一个方面,其中控制模块所下发的配置命令包括:某个隧道业务开启或关闭。
根据本发明一个方面,其中所述隧道包括GRE隧道、IPSEC隧道、快转隧道。
根据本发明一个方面,其中所述隧道选择模块在内核中根据用户业务数据相关特征进行解析,从而选择相应的隧道进行转发。
根据本发明一个方面,其中上行报文转发过程具体为:
a.用户数据报文通过第一接口驱动模块进入所述隧道选择模块;
b.所述隧道选择模块会根据业务报文特性以及所支持的业务隧道,将报文转发到对应的业务隧道中;
c.所述业务隧道对报文根据需要进行添加特定的隧道头,ip头,MAC头,并通过第二接口驱动模块转发到相应的业务数据服务器。
根据本发明一个方面,其中下行报文转发过程具体为:
a.业务数据服务器通过添加隧道头信息,将特定报文转发到第二接口驱动模块;
b.所述隧道选择模块同样通过解析报文相应特性,选择不同的业务隧道;
所述业务隧道解析隧道头,并报文中的隧道部分解除封装,将报文通过第一接口驱动模块传递给相应用户。。
根据本发明提出的装置,实现了不同隧道的各种类型转发,提高了业务数据的转发效率,降低了转发开销。
附图说明
下面结合附图及具体实施例对本发明再作进一步详细的说明。
图1是现有技术中的数据进行隧道转发流程示意图;
图2是本发明技术方案中一种基于用户业务多隧道传输装置的方框图;
图3是本发明技术方案中多隧道上行报文转发流程示意图;
图4是本发明技术方案中多隧道下行报文转发流程示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
参见图2,本发明提出的基于用户多隧道传输装置,在Linux系统下,作为内核模块的形式存在。运行在内核空间,实现根据用户业务的不同进行不同隧道转发,用户数据上、下行报文的转发处理。快速隧道转发模块的执行受控于控制模块。模块在系统中如图2示:
a.控制模块:用于用于用户下发配置命令,如将某个隧道业务开启或关闭;
b.隧道选择模块:用于在上行和下行数据进入该系统时,对报文特性进行解析,根据报文的属性走不同的隧道,如通用路由封装GRE隧道、Internet协议安全性IPSEC隧道、快转隧道等;
c.第一接口驱动模块1用于无线侧收发数据报文,
d.第二接口驱动模块2用于有线侧收发数据报文;
e.快转模块:用于内核中封装、解封装capwap报文头的隧道;
f.业务隧道:用于内核中封装、解封装对应业务报文头的隧道;
g.IP转发模块:用于封装ip报文头,分片,路由等功能,属于linux系统本身自带功能;
隧道选择模块在内核中,需要根据用户业务数据相关特征进行解析,从而选择相应的隧道进行转发
1.上行报文转发:
d.用户数据报文通过第一接口驱动模块1进入隧道选择模块;
e.隧道选择模块会根据业务报文特性以及所支持的业务隧道,将报文转入到对应的业务隧道中;
f.业务隧道对报文根据需要进行添加特定的隧道头,ip头,MAC头'然后通过第二接口驱动模块2转发到相应的业务数据服务器'
报文转发流程如图3:
以其中的一条业务隧道GRE隧道为例,GRE(GenericRoutingEncapsulation,通用路由封装)协议能够对各种网络层协议的数据报文进行封装,被封装的数据报文能够在IP网络中传输;上行报文首先进入隧道选择模块,首先通过以太网包头类型的协议号来确定是否为上行报文,对该报文的ip头部的协议号字段进行检测是否为47,若是则将该报文转入到GRE业务隧道中,添加GRE报文头,添加的报文头格式如下:
01234567890123456789012345678901
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|C|Reserved0|Ver|ProtocolType|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Checksum(optional)|Reserved1(Optional)|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
通常GRE报文长度为4字节,其中protocoltype为GRE隧道封装负载中三层报文类型,完成GRE报文头的添加后,根据application中控制模块的配置添加ip头,mac头;然后通过接口驱动模块转发到相应的业务数据服务器。
2.下行报文转发:
c.业务数据服务器通过添加隧道头等信息,将特定报文转发到第二接口驱动模块2;
d.隧道选择模块同样通过解析报文相应特性,选择不同的业务隧道;
e.业务隧道解析隧道头,并报文中的隧道部分解除封装,将报文通过第一接口驱动模块1传递给相应用户;
报文转发流程如图4:
依然以GRE隧道为例,下行报文首先进入接口驱动模块,接口驱动模块会将该报文的以太网类型字段进行修改来标明其为下行报文,而后进入隧道选择模块,在这个模块中做了两个工作,一个是确认该报文的方向属性为下行,另一个是对该报文的ip头部的协议号字段进行检测是否为47,若是则将该报文转入到GRE业务隧道中,进行去除GRE隧道及外层ip,mac头操作,将GRE隧道内部负载报文通过接口驱动模块传递给用户。
综上所述,虽然本发明已以优选实施例披露如上,然而其并非用以限定本发明。本发明所属技术领域的普通技术人员,在不脱离本发明的精神和范围内,可作各种变动与修饰。因此,本发明的保护范围当视所附的权利要求所界定的范围为准。