CN104601483A - 报文转发方法、装置及转发设备 - Google Patents
报文转发方法、装置及转发设备 Download PDFInfo
- Publication number
- CN104601483A CN104601483A CN201310535884.6A CN201310535884A CN104601483A CN 104601483 A CN104601483 A CN 104601483A CN 201310535884 A CN201310535884 A CN 201310535884A CN 104601483 A CN104601483 A CN 104601483A
- Authority
- CN
- China
- Prior art keywords
- message
- tunnel
- specified type
- sequence number
- unit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例提供了一种报文转发方法、装置及转发设备,涉及网络安全领域。所述报文转发方法包括:检测接收到的报文是否为需要通过指定多隧道出口方式转发的指定类型报文;如果是,则从绑定的至少两条隧道中选择一条隧道确定为该报文的发送隧道,该指定类型的至少两个报文的发送隧道为绑定的至少两条隧道中不同的隧道;根据选择的隧道的属性信息对报文进行隧道封装;通过与隧道绑定的端口转发封装后的报文。本发明通过过滤出指定类型报文,从绑定的至少两条隧道选择一条隧道作为该报文的发送隧道,对该报文进行隧道封装后发送;解决了现有技术中同一类报文仅通过一条隧道进行发送时,容易造成隧道拥塞的问题;达到了可以降低隧道拥塞的效果。
Description
技术领域
本发明涉及网络安全领域,特别涉及一种报文转发方法、装置及转发设备。背景技术
由于隧道技术在数据通信的源端和目的端进行通信的过程中,能很好的起到屏蔽链路差异、实现数据安全传输等作用,因此在网络中的应用越来越广泛。
目前,存在的一种通过隧道发送报文的方法,其中源端路由器和目的端路由器之间存在多条隧道,该方法可以包括:源端路由器在接收到源端的LAN(Local Area Network,局域网)侧报文后,根据该报文的属性信息查询路由,确定一个隧道,然后根据该隧道的属性信息将报文进行隧道封装;随后重新查询路由,将隧道封装后的报文在WAN(Wide Area Network,广域网)侧进行转发;对应的,目的端路由器在WAN侧接收到该报文后,对该报文进行隧道解封装,并根据路由转发给目的端的LAN侧。
在实现本发明的过程中,发明人发现现有技术至少存在以下问题:虽然源端路由器和目的端路由器之间存在多条隧道,但是同一类的报文只能通过其中一条隧道进行发送,同一类的报文是指属性信息相同的报文或部分属性信息相同的报文,因此容易造成该隧道的拥塞。
发明内容
为了解决现有技术中同一类报文仅通过一条隧道进行发送时,容易造成隧道拥塞的问题,本发明实施例提供了一种报文转发方法、装置及转发设备。所述技术方案如下:
第一方面,提供了一种报文转发方法,所述方法包括:
检测接收到的报文是否为需要通过指定多隧道出口方式转发的指定类型报文;
若检测结果为接收到的报文为需要通过指定多隧道出口方式转发的指定类型报文,则从绑定的至少两条隧道中选择一条隧道确定为所述报文的发送隧道,所述指定类型的至少两个报文的发送隧道为所述绑定的至少两条隧道中不同的隧道;
根据选择的所述隧道的属性信息对所述报文进行隧道封装;
通过与所述隧道绑定的端口转发封装后的所述报文。
在第一方面的第一种可能的实施方式中,所述根据选择的所述隧道的属性信息对所述报文进行隧道封装,包括:
根据选择的所述隧道的属性信息确定隧道封装头;
将封装标识和为报文设定的序列号放入所述隧道封装头中的保留字节中,所述封装标识为用于表示所述报文是通过所述指定多隧道出口方式发送的标识,所述序列号为将当前的序列号加1之后得到的值;
根据所述隧道封装头对所述报文进行隧道封装。
结合第一方面或者第一方面的第一种可能的实施方式,在第二种可能的实施方式中,在所述根据选择的所述隧道的属性信息确定隧道封装头之后,还包括:
判断所述隧道封装头是否存在所述保留字节;
若判断结果为所述隧道封装头存在所述保留字节,则执行将封装标识和为报文设定的所述序列号放入所述隧道封装头中的保留字节中的步骤;
若判断结果为所述隧道封装头不存在所述保留字节,则在所述隧道封装头外设置自定义保留字节;
将所述封装标识和为所述报文设定的所述序列号放入所述自定义保留字节中;
根据所述隧道封装头以及所述自定义保留字节对所述报文进行隧道封装。
结合第一方面、第一方面的第一种可能的实施方式或者第一方面的第二种可能的实施方式,在第三种可能的实施方式中,所述检测接收到的报文是否为需要通过指定多隧道出口方式转发的指定类型报文,包括:
解析接收到的所述报文,获取所述报文的属性信息,所述属性信息包括源IP地址、目标IP地址、协议类型、源端口和目标端口;
检测所述报文的属性信息是否包括过滤信息,所述过滤信息为指定源IP地址、指定目标IP地址、指定协议类型、指定源端口和指定目标端口中选定的一个或多个;
若检测结果为所述报文的属性信息包括过滤信息,则确定所述报文为需要通过指定多隧道出口方式转发的指定类型报文。
第二方面,提供了一种报文转发方法,所述方法包括:
接收源端转发设备通过隧道发送来的报文;
对接收到的所述报文进行隧道解封装;
在所述报文被隧道解封装之后,检测所述报文是否为所述源端转发设备通过绑定的隧道发送来的指定类型报文,所述通过绑定的隧道发送来的指定类型报文是所述源端转发设备在检测到所述报文为需要通过指定多隧道出口方式发送的指定类型报文之后,从绑定的至少两条隧道中选择一条隧道确定为所述报文的发送隧道,所述指定类型的至少两个报文的发送隧道为所述绑定的至少两条隧道中不同的隧道,根据选择的所述隧道的属性信息对所述报文进行隧道封装,通过与所述隧道绑定的端口转发的;
若检测结果为所述报文为所述源端转发设备通过绑定的隧道发送来的指定类型指定类型报文时,根据查找到的路由转发隧道解封装后的所述指定类型报文。
在第二方面的第一种可能的实施方式中,所述检测所述报文是否为所述指定类型报文,包括:
检测所述报文是否包含封装标识,所述封装标识为预先设定的用于表示所述报文是通过指定多隧道出口方式发送的标识;
若检测结果为所述报文包含封装标识,则确定所述报文为所述源端转发设备通过绑定的隧道发送来的指定类型报文。
结合第二方面或者第二方面的第一种可能的实施方式,在第二种可能的实施方式中,所述根据查找到的路由转发隧道解封装后的所述指定类型报文,包括:
获取所述指定类型报文中携带的序列号;
当所述指定类型报文携带的序列号为期望序列号时,则根据查找到的路由,发送解封装后的所述指定类型报文,所述期望序列号为与当前最后发送的一个指定类型报文的序列号连续的下一个序列号;
当所述指定类型报文携带的序列号不为期望序列号时,根据所述序列号对接收到的具有所述封装标识且尚未被发送的所有指定类型报文进行排序;
根据查找到的路由,按序发送排序后的所述指定类型报文。
结合第二方面、第二方面的第一种可能的实施方式或者第二方面的第二种可能的实现方式,在第三种可能的实施方式中,所述根据查找到的路由,按序发送排序后的所述指定类型报文,包括:
检测排序后的第一个指定类型报文的序列号是否为所述期望序列号;
若检测结果为排序后的第一个指定类型报文的序列号为所述期望序列号,则根据查找到的路由,依次发送所述排序后的指定类型报文中自身序列号与相邻报文的序列号连续的报文。
第三方面,提供了一种报文转发装置,所述装置包括:
第一检测模块,用于检测接收到的报文是否为需要通过指定多隧道出口方式转发的指定类型报文;
选择模块,用于在所述第一检测模块的检测结果为接收到的报文为需要通过指定多隧道出口方式转发的指定类型报文时,从绑定的至少两条隧道中选择一条隧道确定为所述报文的发送隧道,所述指定类型的至少两个报文的发送隧道为所述绑定的至少两条隧道中不同的隧道;
封装模块,用于根据所述选择模块选择的所述隧道的属性信息对所述报文进行隧道封装;
第一转发模块,用于根据通过与所述隧道绑定的端口转发所述封装模块封装后的所述报文。
在第三方面的第一种可能的实施方式中,所述封装模块,包括:
第一确定单元,用于根据选择的所述隧道的属性信息确定隧道封装头;
第一放入单元,用于将封装标识和为报文设定的序列号放入所述确定单元确定的所述隧道封装头中的保留字节中,所述封装标识为用于表示所述报文是通过所述指定多隧道出口方式发送的标识,所述序列号为将当前的序列号加1之后得到的值;
第一封装单元,用于根据所述隧道封装头对所述报文进行隧道封装。
结合第三方面或者第三方面的第一种可能的实施方式,在第二种可能的实施方式中,所述封装模块,还包括:
判断单元,用于判断所述隧道封装头是否存在所述保留字节;
所述第一放入单元,还用于在所述判断单元的判断结果为所述隧道封装头存在所述保留字节时,将封装标识和为报文设定的所述序列号放入所述隧道封装头中的保留字节中;
设置单元,用于在所述判断单元的判断结果为所述隧道封装头不存在所述保留字节时,在所述隧道封装头外设置自定义保留字节;
第二放入单元,用于将所述封装标识和为所述报文设定的所述序列号放入所述自定义保留字节中;
第二封装单元,用于根据所述隧道封装头以及所述自定义保留字节对所述报文进行隧道封装。
结合第三方面、第三方面的第一种可能的实施方式或者第三方面的第二种可能的实施方式,在第三种可能的实施方式中,所述第一检测模块,包括:
第一获取单元,用于解析接收到的所述报文,获取所述报文的属性信息,所述属性信息包括源IP地址、目标IP地址、协议类型、源端口和目标端口;
第一检测单元,用于检测所述报文的属性信息是否包括过滤信息,所述过滤信息为指定源IP地址、指定目标IP地址、指定协议类型、指定源端口和指定目标端口中选定的一个或多个;
第二确定单元,用于在所述第一检测单元的检测结果为所述报文的属性信息包括过滤信息时,确定所述报文为需要通过指定多隧道出口方式转发的指定类型报文。
第四方面,提供了一种报文转发装置,所述装置包括:
接收模块,用于接收源端转发设备通过隧道发送来的报文;
解封装模块,用于对接收到的所述报文进行隧道解封装;
第二检测模块,用于在所述报文被隧道解封装之后,检测所述解封装模块解封装后的所述报文是否为所述源端转发设备通过绑定的隧道发送来的指定类型报文,所述通过绑定的隧道发送来的指定类型报文是所述源端转发设备在检测到所述报文为需要通过指定多隧道出口方式发送的指定类型报文之后,从绑定的至少两条隧道中选择一条隧道确定为所述报文的发送隧道,所述指定类型的至少两个报文的发送隧道为所述绑定的至少两条隧道中不同的隧道,根据选择的所述隧道的属性信息对所述报文进行隧道封装,通过与所述隧道绑定的端口转发的;
第二转发模块,用于在所述第二检测模块的检测结果为所述报文为所述源端转发设备通过绑定的隧道发送来的指定类型指定类型报文时,根据查找到的路由转发所述解封装模块进行隧道解封装后的所述指定类型报文。
在第四方面的第一种可能的实施方式中,所述第二检测模块,包括:
第二检测单元,用于在所述指定类型报文被隧道解封装之后,检测所述是否包含封装标识,所述封装标识为预先设定的用于表示所述报文是通过指定多隧道出口方式发送的标识;
第三确定单元,用于在所述第二检测单元的检测结果为所述报文包含封装标识时,确定所述报文为所述源端转发设备通过绑定的隧道发送来的指定类型报文。
结合第四方面或者第四方面的第一种可能的实施方式,在第二种可能的实施方式中,所述第二转发模块,包括:
第二获取单元,用于获取所述指定类型报文中携带的序列号;
第一发送单元,用于当所述指定类型报文携带的序列号为期望序列号时,则根据查找到的路由,发送解封装后的所述指定类型报文,所述期望序列号为与当前最后发送的一个指定类型报文的序列号连续的下一个序列号;
排序单元,用于当所述指定类型报文携带的序列号不为期望序列号时,根据所述第二获取单元获取的所述序列号对接收到的具有所述封装标识且尚未被发送的所有指定类型报文进行排序;
第二发送单元,用于根据查找到的路由,按序发送所述排序单元排序后的所述指定类型报文。
结合第四方面、第四方面的第一种可能的实施方式或者第四方面的第二种可能的实施方式,在第三种可能的实施方式中,所述第二发送单元,包括:
检测子单元,用于检测排序后的第一个指定类型报文的序列号是否为所述期望序列号;
发送子单元,用于在所述检测子单元的检测结果为排序后的第一个指定类型报文的序列号为所述期望序列号时,根据查找到的路由,依次发送所述排序后的指定类型报文中自身序列号与相邻报文的序列号连续的报文。
第五方面,提供了一种源端转发设备,所述源端转发设备包括:接收机、处理器和发送机,所述处理器分别与所述接收机和所述发送机耦合;
所述接收机,用于接收报文,该报文为LAN侧接收到的报文;
所述处理器,用于检测所述接收机接收到的报文是否为需要通过指定多隧道出口方式转发的指定类型报文;
所述处理器,还用于在检测结果为接收到的所述报文为需要通过指定多隧道出口方式转发的指定类型报文时,从绑定的至少两条隧道中选择一条隧道确定为所述报文的发送隧道,所述指定类型的至少两个报文的发送隧道为所述绑定的至少两条隧道中不同的隧道;
所述处理器,还用于根据选择的所述隧道的属性信息对所述报文进行隧道封装;
所述发送机,用于根据通过与所述隧道绑定的端口转发所述处理器封装后的所述报文。
在第五方面的第一种可能的实施方式中,所述处理器,还用于根据选择的所述隧道的属性信息确定隧道封装头;
所述处理器,还用于将封装标识和为报文设定的所述序列号放入所述确定单元确定的所述隧道封装头中的保留字节中,所述封装标识为用于表示所述报文是通过所述指定多隧道出口方式发送的标识,所述序列号为将当前的序列号加1之后得到的值;
所述处理器,还用于根据所述隧道封装头对所述报文进行隧道封装。
结合第五方面或者第五方面的第一种可能的实施方式,在第二种可能的实施方式中,所述处理器,还用于判断所述隧道封装头是否存在所述保留字节;
所述处理器,还还用于在判断结果为所述隧道封装头存在所述保留字节时,将封装标识和为报文设定的所述序列号放入所述隧道封装头中的保留字节中;
所述处理器,还用于在判断结果为所述隧道封装头不存在所述保留字节时,在所述隧道封装头外设置自定义保留字节;
所述处理器,还用于将所述封装标识和为所述报文设定的所述序列号放入所述自定义保留字节中;
所述处理器,还用于根据所述隧道封装头以及所述自定义保留字节对所述报文进行隧道封装。
结合第五方面、第五方面的第一种可能的实施方式或者第五方面的第二种可能的实施方式,在第三种可能的实施方式中,所述处理器,还用于解析接收到的所述报文,获取所述报文的属性信息,所述属性信息包括源IP地址、目标IP地址、协议类型、源端口和目标端口;
所述处理器,还用于检测所述报文的属性信息是否包括过滤信息,所述过滤信息为指定源IP地址、指定目标IP地址、指定协议类型、指定源端口和指定目标端口中选定的一个或多个;
所述处理器,还用于在检测结果为所述报文的属性信息包括所述过滤信息时,确定所述报文为需要通过指定多隧道出口方式转发的指定类型报文。
第六方面,提供了一种目的端转发设备,所述目的端转发设备包括接收机、处理器和发送机,处理器分别与接收机和发送机耦合;
所述接收机,用于接收源端转发设备通过隧道发送来的报文;;
所述处理器,用于对所述接收机接收到的所述报文进行隧道解封装;
所述处理器,还用于在所述报文被隧道解封装之后,检测所述报文是否为所述源端转发设备通过绑定的隧道发送来的指定类型报文,所述通过绑定的隧道发送来的指定类型报文是所述源端转发设备在检测到所述报文为需要通过指定多隧道出口方式发送的指定类型报文之后,从绑定的至少两条隧道中选择一条隧道确定为所述报文的发送隧道,所述指定类型的至少两个报文的发送隧道为所述绑定的至少两条隧道中不同的隧道,根据选择的所述隧道的属性信息对所述报文进行隧道封装,通过与所述隧道绑定的端口转发的;
所述处理器,还用于在检测结果为所述报文为所述源端转发设备通过绑定的隧道发送来的指定类型指定类型报文时,根据查找到的路由转发隧道解封装后的所述指定类型报文。
所述发送机,用于根据查找到的路由转发处理器进行隧道解封装后的所述报文。
在第六方面的第一种可能的实施方式中,所述处理器,还用于检测所述报文是否包含封装标识,所述封装标识为预先设定的用于表示所述报文是通过指定多隧道出口方式发送的标识;
所述处理器,还用于在检测结果为所述报文包含封装标识时,确定所述报文为所述源端转发设备通过绑定的隧道发送来的指定类型报文。
结合第六方面或者第六方面的第一种可能的实施方式,在第二种可能的实施方式中,所述处理器,还用于获取所述指定类型报文中携带的序列号;
所述处理器,还用于当所述指定类型报文携带的序列号为期望序列号时,则根据查找到的路由,发送解封装后的所述指定类型报文,所述期望序列号为与当前最后发送的一个指定类型报文的序列号连续的下一个序列号;
所述处理器,还用于当所述指定类型报文携带的序列号不为期望序列号时,根据获取的所述序列号对接收到的具有所述封装标识且尚未被发送的所有指定类型报文进行排序;
所述发送机,还用于根据查找到的路由,按序发送所述处理器排序后的所述指定类型报文。
结合第六方面、第六方面的第一种可能的实施方式或者第六方面的第二种可能的实施方式,在第三种可能的实施方式中,所述处理器,还用于检测最后发送的一个指定类型报文的序列号是否与排序后的第一个指定类型报文的序列号相邻;
所述处理器,还用于在检测结果为最后发送的一个指定类型的报文的序列号与排序后的第一个指定类型报文的序列号相邻时,根据查找到的路由,依次发送序列号与最后发送的所述指定类型报文的序列号连续的指定类型报文。
在第七方面,还提供一种报文转发系统,所述系统包括源端转发设备、目的端转发设备和位于所述源端转发设备和所述目的端转发设备之间绑定的至少两条隧道;
所述源端转发设备包括如第三方面以及第三方面各种可能的实施方式中所描述的报文转发装置,或为第五方面以及第五方面各种可能的实施方式中所描述的源端转发设备;
所述目的端转发设备包括如第四方面以及第四方面各种可能的实施方式中所描述的报文转发装置,或为第六方面以及第六方面各种可能的实施方式中所描述的目的端转发设备。本发明实施例提供的技术方案带来的有益效果是:
通过过滤出需要通过指定多隧道出口方式转发的指定类型报文,从绑定的至少两条隧道选择一条隧道作为该报文的发送隧道,对该报文进行隧道封装,通过该发送隧道发送该封装后的报文;解决了现有技术中同一类报文仅通过一条隧道进行发送时,容易造成隧道拥塞的问题;由于可以为每一个指定类型报文选择相同或不同的发送隧道,即大量的指定类型报文可以被分发到不同的发送隧道上进行发送,因此可以降低隧道拥塞。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明部分实施例中提供的报文转发方法所涉及的实施环境的示意图;
图2是本发明一个实施例中提供的报文转发方法的方法流程图;
图3A是本发明另一个实施例中提供的报文转发方法得方法流程图;
图3B是本发明一个实施例中提供的一种选择规则为指定类型报文选择隧道的示意图;
图3C是本发明另一个实施例中提供的一种选择规则为指定类型报文选择隧道的示意图;
图4是本发明再一个实施例中提供的报文转发方法的方法流程图;
图5是本发明还一个实施例中提供的报文转发方法得方法流程图;
图6A是本发明又一个实施例中提供的报文转发方法得方法流程图;
图6B是本发明一个实施例中提供的通过多隧道出口方式发送报文的示意图;
图7是本发明一个实施例中提供的报文转发装置的结构示意图;
图8是本发明另一个实施例中提供的报文转发装置的结构示意图;
图9是本发明再一个实施例中提供的报文转发装置的结构示意图;
图10是本发明还一个实施例中提供的报文转发装置的结构示意图;
图11是本发明一个实施例中提供的源端转发设备的结构示意图;
图12是本发明另一个实施例中提供的源端转发设备的结构示意图;
图13是本发明一个实施例中提供的目的端转发设备的结构示意图;
图14是本发明另一个实施例中提供的目的端转发设备的结构示意图;
图15是本发明一个实施例中提供的报文转发系统的示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
请参见图1所示,其示出了本发明部分实施例中提供的报文转发方法所涉及的实施环境的示意图,该实施环境中可以包括:源端转发设备102、目的端转发设备104、与源端的LAN侧终端设备106、在目的端的LAN侧终端设备108、位于源端转发设备102和目的端转发设备104之间的多条隧道110。
源端转发设备102可以接收源端的LAN侧终端设备106发送的报文,并可以对报文进行隧道封装,然后将隧道封装后的报文通过对应的端口发送给隧道110。
目标端转发设备104可以从隧道中获取报文,且可以对获取的报文进行隧道解封装,查找路由,将解封装后的报文发送给目的端的LAN侧终端设备108中。
管理人员还可以从位于源端转发设备102和目的端转发设备104之间的多条隧道110中可以选取几条隧道110进行绑定。
请参见图2所示,其示出了本发明一个实施例中提供的报文转发方法的方法流程图。本实施例主要以该报文转发方法应用于图1中所示的实施环境中的源端转发设备102进行举例说明。该报文转发方法可以包括:
201,检测接收到的报文是否为需要通过指定多隧道出口方式转发的指定类型报文;
通常,可以选择源端转发设备和目的端转发设备之间的多个隧道,利用这些隧道专门用于发送指定类型的报文。
这里指定类型的报文可以根据实际情况设置,比如可以将从同一个终端设备发送的报文作为指定类型的报文,还可以将具有同网络类型的报文作为指定类型的报文,还可以将具有相同源IP地址和相同目的IP地址的报文作为指定类型的报文。
202,若检测结果为接收到的报文为需要通过指定多隧道出口方式转发的指定类型报文,则从绑定的至少两条隧道中选择一条隧道确定为该报文的发送隧道;
指定类型的至少两个报文的发送隧道为绑定的至少两条隧道中不同的隧道。
通常来讲,为了避免所有的指定类型报文从同一个隧道发送,通常会设定一个选择规则,根据该选择规则可以使得指定类型报文可以在绑定的至少两条隧道中被合理分布发送,也就是说,可以为不同的指定类型报文选择相同或不同的隧道。比如一部分自定类型报文选择通过其中一条隧道发送,为另一部分指定类型报文选择通过另一条隧道发送,为再一部分指定类型报文选择通过再一个隧道发送等。
这里所讲的选择规则比较多,比如可以随机为指定类型报文从绑定的多个隧道中选择一个隧道;还比如可以根据绑定的每个隧道的带宽确定每个隧道对应的权重,按照权重分别依次为指定类型报文选择隧道;还比如可以按照绑定的隧道的顺序依次为过滤出的指定类型报文选择隧道。
203,根据选择的隧道的属性信息对该报文进行隧道封装;
由于隧道具有不同的网络协议,因此在对报文进行隧道封装时的隧道封装头也可能不同,所以需要根据隧道的属性信息对报文进行隧道封装。
204,通过与隧道绑定的端口转发封装后的报文。
综上所述,本发明实施例中提供的报文转发方法,通过过滤出需要通过指定多隧道出口方式转发的指定类型报文,从绑定的至少两条隧道选择一条隧道作为该报文的发送隧道,对该报文进行隧道封装,通过该发送隧道发送该封装后的报文;解决了现有技术中同一类报文仅通过一条隧道进行发送时,容易造成隧道拥塞的问题;由于可以为每一个指定类型报文选择相同或不同的发送隧道,即大量的指定类型报文可以被分发到不同的发送隧道上进行发送,因此可以降低隧道拥塞。
请参见图3A所示,其示出了本发明另一个实施例中提供的报文转发方法的方法流程图。本实施例主要以该报文转发方法应用于图1中所示的实施环境中的源端转发设备102进行举例说明。该报文转发方法可以包括:
301,检测接收到的报文是否为需要通过指定多隧道出口方式转发的指定类型报文;
源端转发设备在检测接收到的报文是否为需要通过指定多隧道出口方式转发的指定类型报文,可以包括:
第一,解析接收到的报文,获取报文的属性信息,属性信息包括源IP地址、目标IP地址、协议类型、源端口和目标端口;
第二,检测报文的属性信息是否包括过滤信息,过滤信息为指定源IP地址、指定目标IP地址、指定协议类型、指定源端口和指定目标端口中选定的一个或多个;
过滤信息可以是预先设定的,比如具有指定的源IP地址、指定目标IP地址、指定协议类型、指定源端口和指定目标端口中选定的一个或多个。通常来讲,管理人员可以仅选择报文属性信息中的一种、两种或多种信息,然后对这些信息设置指定的值或指定的类型,当接收到的报文具有这些指定的值或指定类型的报文时,则确定该报文包括过滤信息。
举例来讲,当过滤信息为源IP地址为192.168.13.105时,则检测报文中的源IP地址是否也为192.168.13.105,当报文中的源IP地址也为192.168.13.105时,则确定该报文包括过滤信息。再举例来讲,当过滤条件为源IP地址为192.168.11.143、目的IP地址为192.168.11.102、协议类型为TCP/IP时,如果报文中源IP地址、目的IP地址和协议类型均分别与过滤信息中的这些指定值或指定类型相同,即该报文的源IP地址为192.168.11.143、目的IP地址为192.168.11.102、协议类型为TCP/IP,则表明该报文的属性信息包括过滤信息。
第三,若检测结果为报文的属性信息包括过滤信息,则确定报文为需要通过指定多隧道出口方式转发的指定类型报文。
如果报文的属性信息包括过滤信息,则表明该报文符合过滤的条件,即过滤出来的报文均具有相同的过滤信息,此时将这些报文作为指定类型报文,通过指定多隧道出口方式发送这些指定类型报文。
302,若检测结果为接收到的报文为需要通过指定多隧道出口方式转发的指定类型报文,则从绑定的至少两条隧道中选择一条隧道确定为报文的发送隧道,指定类型的至少两个报文的发送隧道为绑定的至少两条隧道中不同的隧道;
在实际应用中,源端转发设备可以根据选择规则从绑定的至少两条隧道中选择一条隧道确定为报文的发送隧道。一般的,对于大量的指定类型报文来讲,绑定的所有隧道均应当被选择作为一些指定类型报文的发送隧道。
举例来讲,可以在源端转发设备中设置一个选择算法,该选择算法可以根据绑定的至少两条隧道的带宽、隧道服务质量、隧道当前传输的速度等信息选择出一个隧道,比如当绑定的至少两条隧道中的一条隧道出现拥塞时,可以选择绑定的至少两条隧道中的另一条隧道作为报文的发送隧道。
再举例来讲,可以为报文随机选择一个隧道,但通常对于大量的指定类型报文来讲,为所有指定类型报文选择的发送隧道并不完全相同。也即,对于大量的指定类型报文来讲,绑定的所有隧道均应当被选择为一些指定类型报文的发送隧道。
再举例来讲,请参见图3B所示,其示出了本发明一个实施例中提供的一种选择规则为指定类型报文选择隧道的示意图。在源端转发设备102中包含有过滤出的指定类型报文1至指定类型报文5,绑定的隧道110为隧道A、隧道B和隧道C,当根据绑定的至少两条隧道的顺序依次为过滤的指定类型报文选择隧道时,可以选择隧道A作为第一个过滤出来的指定类型报文1的发送隧道,可以选择隧道B作为第二个过滤出来的指定类型报文2的发送隧道,可以选择隧道C作为第三个过滤出来的指定类型报文3的发送隧道,可以选择隧道A作为第四个过滤出来的指定类型报文4的发送隧道,可以选择隧道B作为第五个过滤出来的指定类型报文5的发送隧道,依此循环。
再举例来讲,请参见图3C所示,其示出了本发明另一个实施例中提供的一种选择规则为指定类型报文选择隧道的示意图。在源端转发设备102中包含有过滤出的指定类型报文1至指定类型报文7,绑定的隧道110为隧道A、隧道B和隧道C,还可以根据至少两条隧道的带宽确定在每条隧道分配指定类型报文个数的权重比例,根据权重比例依次为过滤出的指定类型报文选择不同的隧道。比如隧道A:隧道B:隧道C的权重比例为3:2:1,则可以为先过滤出的3n个指定类型报文选择隧道A,可以为接下来过滤出的2n个指定类型报文选择隧道B,可以为接下来过滤出的n个指定类型报文选择隧道C,可以为接下来过滤出的3n个指定类型报文选择隧道1,其中的n为大于0的自然数,n的具体取值可以根据实际隧道的状况设定。比如,可以将隧道A作为指定类型报文1-3、指定类型报文7的发送隧道,将隧道B作为指定类型报文4、5的发送隧道,隧道C作为指定类型报文6的发送隧道,依次循环。
303,根据选择的隧道的属性信息确定隧道封装头;
通常来讲,隧道的属性信息不同,隧道封装头也会不同。
304,判断隧道封装头是否存在保留字节,若判断结果为隧道封装头存在保留字节,则执行305,若判断结果为隧道封装头不存在保留字节,则执行307;
305,若判断结果为隧道封装头存在保留字节,将封装标识和为报文设定的序列号放入隧道封装头中的保留字节中;
封装标识可以为用于表示报文是通过指定多隧道出口方式发送的标识,序列号为将当前的序列号加1之后得到的值。
举例来讲,每需要通过指定多隧道出口方式发送一个指定类型报文时,则需要先将序列号加1,再添加至该指定类型报文中。由此可知,不同的指定类型报文中的序列号会依次增加,所以,序列号可以指示指定类型报文的发送序列。
在实际应用中,在不考虑乱序以及保序的情况下,可以仅将封装标识添加至自定义保留字节;而如果需要考虑乱序以及保序的情况,则需要将封装标识和为报文设定的序列号同时放入自定义保留字节中。
306,根据隧道封装头对报文进行隧道封装;
307,若判断结果为隧道封装头不存在保留字节,则在隧道封装头外设置自定义保留字节;
当隧道封装头不存在保留字节时,为了保证目的端可以还原乱序后的指定类型报文,需要在该隧道封装头的外部设置自定义保留字节。
308,将封装标识和为报文设定的序列号放入自定义保留字节中;
在实际应用中,在不考虑乱序以及保序的情况下,可以仅将封装标识添加至自定义保留字节;而如果需要考虑乱序以及保序的情况,则需要将封装标识和为报文设定的序列号同时放入自定义保留字节中。
309,根据隧道封装头以及自定义保留字节对报文进行隧道封装;
即可以将封装标识和序列号同时封装在指定类型报文中。
310,通过与隧道绑定的端口转发封装后的报文。
综上所述,本发明实施例中提供的报文转发方法,通过过滤出需要通过指定多隧道出口方式转发的指定类型报文,从绑定的至少两条隧道选择一条隧道作为该报文的发送隧道,对该报文进行包含有封装标识和序列号的隧道封装,通过该发送隧道发送该封装后的报文;解决了现有技术中同一类报文仅通过一条隧道进行发送时,容易造成隧道拥塞的问题;由于可以为每一个指定类型报文选择相同或不同的发送隧道,即大量的指定类型报文可以被分发到不同的发送隧道上进行发送,且在报文中均封装了封装标识和序列号,这样目的端转发设备可以根据封装标识和序列号对获取到的指定类型报文进行保序,因此可以降低隧道拥塞、避免乱序产生的影响。
请参见图4所示,其示出了本发明另一个实施例中提供的报文转发方法的方法流程图。本实施例主要以该报文转发方法应用于图1中所示的实施环境中的目的端转发设备104进行举例说明。该报文转发方法可以包括:
401,接收源端转发设备通过隧道发送来的报文;
402,对接收到的报文进行隧道解封装;
403,在报文被隧道解封装之后,检测报文是否为源端转发设备通过绑定的隧道发送来的指定类型报文;
这里所讲的通过绑定的隧道发送来的指定类型报文是源端转发设备在检测到报文为需要通过指定多隧道出口方式发送的指定类型报文之后,从绑定的至少两条隧道中选择一条隧道确定为报文的发送隧道,指定类型的至少两个报文的发送隧道为绑定的至少两条隧道中不同的隧道,根据选择的隧道的属性信息对报文进行隧道封装,通过与隧道绑定的端口转发封装后的报文。
绑定的至少两条隧道是源端转发设备和目的端转发设备均知道的,当源端转发设备通过绑定的至少两条隧道发送指定类型报文时,对应的,目的端转发设备会从绑定的这些隧道中接收到指定类型报文。
当接收到指定类型报文时,可以对这些报文进行隧道解封装。
404,若检测结果为报文为源端转发设备通过绑定的隧道发送来的指定类型指定类型报文,根据查找到的路由转发隧道解封装后的指定类型报文。
综上所述,本发明实施例中提供的报文转发方法,通过从绑定的至少两条隧道中接收到的报文进行隧道解封装,根据查找到的路由转发隧道解封装后的报文;解决了现有技术中同一类报文仅通过一条隧道进行发送时,容易造成隧道拥塞的问题;可以降低隧道拥塞、避免乱序产生的影响。
请参见图5所示,其示出了本发明另一个实施例中提供的报文转发方法的方法流程图。本实施例主要以该报文转发方法应用于图1中所示的实施环境中的目的端转发设备104进行举例说明。该报文转发方法可以包括:
501,接收源端转发设备通过隧道发送来的报文;
502,对接收到的报文进行隧道解封装;
在设置绑定的至少两条隧道时,源端转发设备和目的端转发均可以获知绑定的至少两条隧道。当源端转发设备根据绑定的至少两条隧道发送指定类型报文时,对应的,目标端转发设备则可以从绑定的至少两条隧道中接收到指定类型报文,并在接收到这些报文之后对其进行隧道解封装。
503,在报文被隧道解封装之后,检测该报文是否包含封装标识;
这里所讲的封装标识可以为预先设定的用于表示报文是通过指定多隧道出口方式发送的标识,当目的端接收到的报文中包含有该封装标识时,则表明该报文即为通过指定多隧道接口方式发送的指定类型报文,也即表明该报文为通过绑定的隧道发送来的指定类型报文。
这里所讲的通过绑定的隧道发送来的指定类型报文是源端转发设备在检测到报文为需要通过指定多隧道出口方式发送的指定类型报文之后,从绑定的至少两条隧道中选择一条隧道确定为报文的发送隧道,指定类型的至少两个报文的发送隧道为绑定的至少两条隧道中不同的隧道,根据选择的隧道的属性信息对报文进行隧道封装,通过与隧道绑定的端口转发的。
由于目的端转发设备除了可以接收到从绑定的至少两条隧道发送的报文之后,还可能接收到其他未绑定的隧道发送的其他类型的报文,因此这里首先判断报文是否是从绑定的至少两条隧道发送的指定类型报文,也即检测报文是否包含封装标识,如果包含封装标识,则表明该报文是从绑定的至少两条隧道发送的指定类型报文,如果不包含封装标识,则表明该报文是从未绑定的其他隧道发送的其他类型的报文。
504,若检测结果为该报文包含封装标识,则确定该报文为指定类型报文,获取该指定类型报文中携带的序列号;
由于绑定的至少两条隧道的传输速率、带宽等不同,目的端转发设备从这些隧道中接收到的报文的顺序可能是乱序,也即目的端转发设备先接收到源端转发设备在后发送的报文,然后接收到源端转发设备在先发送的报文。为了降低至少两条隧道发送的报文在目的接收端出现乱序产生的影响,源端转发设备通常还会在指定类型报文中添加序列号,目的端转发设备根据序列号可以对出现乱序的指定类型报文进行保序。
505,检测该指定类型报文携带的序列号为期望序列号;
这里所讲的期望序列号为与当前最后发送的一个指定类型报文的序列号连续的下一个序列号,也即期望序列号为期望得到的下一个指定类型报文的序列号,也即已经发送最后一个指定类型报文的下一个指定类型报文的序列号。换句话说,具有期望序列号的指定类型报文应当为下一个按序发送的指定类型报文。
需要说明的是,目的端转发设备在每接收一个指定类型报文之后,则会确定一个新的期望序列号,即期望得到的下一个按序到达的指定类型报文的序列号。通常,当源端转发设备在依次为连续的指定类型报文设定序列号时,如果是依次增加1来设定的,则这里的期望序列号也应当依次加1。
506,若检测结果为该指定类型报文携带的序列号为期望序列号,则根据查找到的路由,发送解封装后的该指定类型报文;
也就是说,当接收到的指定类型报文的序列号为期望序列号时,则表明该指定类型报文即为期望得到的下一个指定类型报文,因此此时可以直接根据查找到的路由,发送解封后的该指定类型报文。
507,若检测结果为该指定类型报文携带的序列号不为期望序列号,则根据序列号对接收到的具有封装标识且尚未被发送的所有指定类型报文进行排序;
若检测结果为该指定类型报文携带的序列号不为期望序列号,则表明具有期望序列号的指定类型报文由于延迟尚未被接收到,为了保证不乱序,因此先缓存接收到的指定类型报文,直到接收到具有期望序列号的指定类型报文。
通常来讲,目的端在接收到具有封装标识的报文之后,通常并不立即转发该报文,而是先缓存下来。目的端在每隔预定时间对具有封装标识且尚未被发送的所有指定类型报文进行一次排序。
举例来讲,当存在的指定类型报文的序列号分别为1001、1002、1004、1005,则按照序列号依次排列的指定类型报文顺序为:序列号为1001的指定类型报文、序列号为1002的指定类型报文、序列号为1004的指定类型报文、序列号为1005的指定类型报文。
508,根据查找到的路由,按序发送排序后的指定类型报文。
目的端转发设备在根据查找到的路由,按序发送排序后的指定类型报文时可以包括:
第一,检测排序后的第一个指定类型报文的序列号是否为期望序列号;
为了减少报文乱序的影响,需要依次发送序列号连续的报文,如果有部分序列号尚未出现,则表明包含有这些序列号的报文很可能出现延时,因此还需要等待接收到这些报文。
通常,排序后的第一个报文中的序列号如果与已经发送的最后一个指定类型报文的序列号不连续,则表明在最后一个指定类型报文后面还存在其他的指定类型报文,而如果排序后的第一个报文中的序列号如果与已经发送的最后一个指定类型报文的序列号连续,则表明可以发送该第一个报文,因此在发送之前需要先执行检测最后发送的一个指定类型报文的序列号是否与排序后的第一个指定类型报文的序列号相邻的步骤。
第二,若检测结果为排序后的第一个指定类型报文的序列号为期望序列号,则根据查找到的路由,依次发送排序后的指定类型报文中自身序列号与相邻报文的序列号连续的报文。
举例来讲,当排序后的报文的序列号依次为2001、2002、2005、2006,最后发送的一个指定类型报文的序列号为2000,则依次发送序列号为2001的指定类型报文和序列号为2002的指定类型报文;而如果最后发送的一个指定类型报文的序列号为1999,则暂时不发送。
综上所述,本发明实施例中提供的报文转发方法,通过从绑定的多隧道接收到的指定类型报文进行保序处理,解决了现有技术中同一类报文仅通过一条隧道进行发送时,容易造成隧道拥塞的问题;可以在降低隧道拥塞的同时避免乱序产生的影响,提高了业务质量。
请参见图6A所示,其示出了本发明另一个实施例中提供的报文转发方法的方法流程图。本实施例主要以该报文转发方法应用于图1中所示的实施环境中进行举例说明。该报文转发方法可以包括:
601,源端转发设备检测接收到的报文是否为需要通过指定多隧道出口方式转发的指定类型报文;
通常,可以选择源端转发设备和目的端转发设备之间的多个隧道,利用这些隧道专门用于发送指定类型的报文。
这里指定类型的报文可以根据实际情况设置,比如可以将从同一个终端设备发送的报文作为指定类型的报文,还可以将具有同网络类型的报文作为指定类型的报文,还可以将具有相同源IP地址和相同目的IP地址的报文作为指定类型的报文。
602,若检测结果为接收到的报文为需要通过指定多隧道出口方式转发的指定类型报文,源端转发设备从绑定的至少两条隧道中选择一条隧道确定为报文的发送隧道,指定类型的至少两个报文的发送隧道为绑定的至少两条隧道中不同的隧道;
通常来讲,为了避免所有的指定类型报文从同一个隧道发送,通常会设定一个选择规则,根据该选择规则可以使得指定类型报文可以在绑定的至少两条隧道中被合理分布发送,也就是说,可以为不同的指定类型报文选择相同或不同的隧道。比如一部分自定类型报文选择通过其中一条隧道发送,为另一部分指定类型报文选择通过另一条隧道发送,为再一部分指定类型报文选择通过再一个隧道发送等。
这里所讲的选择规则比较多,比如可以随机为指定类型报文从绑定的多个隧道中选择一个隧道;还比如可以根据绑定的每个隧道的带宽确定每个隧道对应的权重,按照权重分别依次为指定类型报文选择隧道;还比如可以按照绑定的隧道的顺序依次为过滤出的指定类型报文选择隧道。
举例来讲,请参见图6B所示,其示出了本发明一个实施例中提供的通过多隧道出口方式发送报文的示意图。该场景中源端转发设备102和目的端转发设备104之间具有绑定的若干个隧道,分别为隧道A、隧道B和隧道C,在实际应用中,还可能存在其他的隧道(未图示)。源端转发设备102过滤出的指定类型报文为指定类型报文1、指定类型报文2和指定类型报文3,根据预定的选择规则为过滤出的指定类型报文选择发送隧道。举例来讲,在一种可能的实现方式中,预定的选择规则可以为:依次选择绑定的隧道作为过滤出的指定类型报文的发送隧道,比如选择绑定的隧道A作为指定类型报文1的发送隧道、选择绑定的隧道B作为指定类型报文2的发送隧道、选择绑定的隧道C作为指定类型报文3的发送隧道。
很显然,还可以通过其他的选择规则为过滤出的指定类型报文选择发送隧道。但需要说明的是,不论选择哪种方式,为了最大程度的降低隧道拥塞,过滤出的指定类型报文应该会被分配到绑定的多个隧道中,即存在至少两个指定类型报文的发送隧道是不同的。
603,源端转发设备根据选择的隧道的属性信息、封装标识以及为报文设定的序列号对报文进行隧道封装;
为了确保目的转发设备在接收到报文后,可以对通过多隧道出口方式发送的指定类型报文进行保存,源端转发设备通常会在指定类型报文中添加封装标识和序列号。
604,源端转发设备通过与隧道绑定的端口转发封装后的报文;
605,目的端转发设备接收源端转发设备通过隧道发送的报文;
在实际应用中,目的端转发设备除了可以接收到绑定的多个隧道发送的报文,还可以接收到其他隧道或者其他网络发送的报文。
606,对接收到的报文进行隧道解封装;
607,在该报文被隧道解封装之后,检测报文是否为源端转发设备通过绑定的隧道发送来的指定类型报文;
这里所讲的通过绑定的隧道发送来的指定类型报文是源端转发设备在检测到报文为需要通过指定多隧道出口方式发送的指定类型报文之后,从绑定的至少两条隧道中选择一条隧道确定为报文的发送隧道,指定类型的至少两个报文的发送隧道为绑定的至少两条隧道中不同的隧道,根据选择的隧道的属性信息对报文进行隧道封装,通过与隧道绑定的端口转发的。
检测报文是否为源端转发设备通过绑定的隧道发送来的指定类型报文,可以包括:目的端转发设备检测指定类型报文是否包含封装标识;若检测结果为报文包含封装标识,则确定报文为源端转发设备通过绑定的隧道发送来的指定类型报文。
这里所讲的封装标识为预先设定的用于表示报文是通过指定多隧道出口方式发送的标识。
由于源端转发设备在指定类型报文中添加了封装标识和序列号,因此只要包含有预定的封装标识的报文均为指定类型报文。
608,若检测结果为该报文为源端转发设备通过绑定的隧道发送来的指定类型报文,目的端转发设备获取指定类型报文中携带的序列号;
为了对这些指定类型报文进行保序处理,目的端转发设备首先需要获取这些指定类型报文中携带的序列号。
609,目的端转发设备检测指定类型报文中携带的序列号是否为期望序列号;
这里所讲的期望序列号为与当前最后发送的一个指定类型报文的序列号连续的下一个序列号,也即期望序列号为期望得到的下一个指定类型报文的序列号,也即已经发送最后一个指定类型报文的下一个指定类型报文的序列号。换句话说,具有期望序列号的指定类型报文应当为下一个按序发送的指定类型报文。
需要说明的是,目的端转发设备在每接收一个指定类型报文之后,则会确定一个新的期望序列号,即期望得到的下一个按序到达的指定类型报文的序列号。通常,当源端转发设备在依次为连续的指定类型报文设定序列号时,如果是依次增加1来设定的,则这里的期望序列号也应当依次加1。
610,若检测结果为指定类型报文携带的序列号为期望序列号时,目的端转发设备根据查找到的路由,发送解封装后的指定类型报文;
也就是说,当接收到的指定类型报文的序列号为期望序列号时,则表明该指定类型报文即为期望得到的下一个指定类型报文,因此此时可以直接根据查找到的路由,发送解封后的该指定类型报文。
611,若检测结果为指定类型报文携带的序列号不为期望序列号时,目的端转发设备根据序列号对接收到的具有封装标识且尚未被发送的所有指定类型报文进行排序;
若检测结果为该指定类型报文携带的序列号不为期望序列号,则表明具有期望序列号的指定类型报文由于延迟尚未被接收到,为了保证不乱序,因此先缓存接收到的指定类型报文,直到等待接收到具有期望序列号的指定类型报文。
通常来讲,目的端在接收到具有封装标识的报文之后,通常并不立即转发该报文,而是先缓存下来。目的端在每隔预定时间对具有封装标识且尚未被发送的所有指定类型报文进行一次排序。
举例来讲,仍旧参见图6B所示,当接收到的指定类型报文的序列号分别为1001、1003、1002,则按照序列号依次排列的指定类型报文顺序为:序列号为1001的指定类型报文、序列号为1002的指定类型报文、序列号为1003的指定类型报文。
612,目的端转发设备根据查找到的路由,按序发送排序后的指定类型报文。
目的端转发设备在根据查找到的路由,按序发送排序后的指定类型报文时可以包括:
第一,检测排序后的第一个指定类型报文的序列号是否期望序列号;
为了减少报文乱序的影响,需要依次发送序列号连续的报文,如果有部分序列号尚未出现,则表明包含有这些序列号的报文很可能出现延时,因此还需要等待接收到这些报文。
通常,排序后的第一个报文中的序列号如果与已经发送的最后一个指定类型报文的序列号不连续,则表明在最后一个指定类型报文后面还存在其他的指定类型报文,而如果排序后的第一个报文中的序列号如果与已经发送的最后一个指定类型报文的序列号连续,则表明可以发送该第一个报文,因此在发送之前需要先执行检测最后发送的一个指定类型报文的序列号是否与排序后的第一个指定类型报文的序列号相邻的步骤。
第二,若检测结果为排序后的第一个指定类型报文的序列号为期望序列号,则根据查找到的路由,依次发送排序后的指定类型报文中自身序列号与相邻报文的序列号连续的报文。
举例来讲,当排序后的报文的序列号依次为1001、1002、1003和1005、1006,最后发送的一个指定类型报文的序列号为1000,则依次发送序列号为1001的指定类型报文和序列号为1001、1002和1003的指定类型报文;而如果最后发送的一个指定类型报文的序列号为1999,则暂时不发送。
综上所述,本发明实施例中提供的报文转发方法,通过在源端转发设备过滤出指定类型的报文,并将这些报文通过多隧道出口方式进行发送,在目的端转发设备接收这些指定类型,并进行报文保序处理;解决了现有技术中同一类报文仅通过一条隧道进行发送时,容易造成隧道拥塞的问题;可以在降低隧道拥塞的同时避免乱序产生的影响,提高了业务质量。
请参见图7所示,其示出了本发明一个实施例中提供的报文转发装置的结构示意图。本实施例主要以该报文转发装置应用于图1中所示的实施环境中的源端转发设备102中进行举例说明。该报文转发装置可以包括但不限于:第一检测模块702、选择模块704、封装模块706和第一转发模块708。
第一检测模块702,可以用于检测接收到的报文是否为需要通过指定多隧道出口方式转发的指定类型报文;
选择模块704,可以用于在第一检测模块702的检测结果为接收到的报文为需要通过指定多隧道出口方式转发的指定类型报文时,从绑定的至少两条隧道中选择一条隧道确定为报文的发送隧道,指定类型的至少两个报文的发送隧道为绑定的至少两条隧道中不同的隧道;
封装模块706,可以用于根据选择模块704选择的隧道的属性信息对报文进行隧道封装;
第一转发模块708,可以用于根据通过与隧道绑定的端口转发封装模块706封装后的报文。
综上所述,本发明实施例中提供的报文转发装置,通过过滤出需要通过指定多隧道出口方式转发的指定类型报文,从绑定的至少两条隧道选择一条隧道作为该报文的发送隧道,对该报文进行隧道封装,通过该发送隧道发送该封装后的报文;解决了现有技术中同一类报文仅通过一条隧道进行发送时,容易造成隧道拥塞的问题;由于可以为每一个指定类型报文选择相同或不同的发送隧道,即大量的指定类型报文可以被分发到不同的发送隧道上进行发送,因此可以降低隧道拥塞。
请参见图8所示,其示出了本发明另一个实施例中提供的报文转发装置的结构示意图。本实施例主要以该报文转发装置应用于图1中所示的实施环境中的源端转发设备102中进行举例说明。该报文转发装置可以包括但不限于:第一检测模块801、选择模块802、封装模块803和第一转发模块804。
第一检测模块801,可以用于检测接收到的报文是否为需要通过指定多隧道出口方式转发的指定类型报文;
选择模块802,可以用于在第一检测模块801的检测结果为接收到的报文为需要通过指定多隧道出口方式转发的指定类型报文时,从绑定的至少两条隧道中选择一条隧道确定为报文的发送隧道,指定类型的至少两个报文的发送隧道为绑定的至少两条隧道中不同的隧道;
封装模块803,可以用于根据选择模块802选择的隧道的属性信息对报文进行隧道封装;
第一转发模块804,可以用于根据通过与隧道绑定的端口转发封装模块803封装后的报文。
在本实施例中的第一种可能的实现方式中,封装模块803可以包括:第一确定单元803a、第一放入单元803b和第一封装单元803c。
第一确定单元803a,可以用于根据选择的隧道的属性信息确定隧道封装头;
第一放入单元803b,可以用于将封装标识和为报文设定的所述序列号放入确定单元确定的隧道封装头中的保留字节中,封装标识为用于表示报文是通过指定多隧道出口方式发送的标识,序列号为将当前的序列号加1之后得到的值;
第一封装单元803c,可以用于根据隧道封装头对报文进行隧道封装。
在本实施例中的第二种可能的实现方式中,封装模块803可以包括:判断单元803d、设置单元803e、第二放入单元803f和第二封装单元803g。
判断单元803d,可以用于判断隧道封装头是否存在保留字节;
第一放入单元803b,还可以用于在判断单元803d的判断结果为隧道封装头存在保留字节时,将封装标识和为报文设定的所述序列号放入隧道封装头中的保留字节中;
设置单元803e,可以用于在判断单元803d的判断结果为隧道封装头不存在保留字节时,在隧道封装头外设置自定义保留字节;
第二放入单元803f,可以用于将封装标识和为报文设定的所述序列号放入自定义保留字节中;
第二封装单元803g,可以用于根据隧道封装头以及自定义保留字节对报文进行隧道封装。
在本实施例中的第三种可能的实现方式中,第一检测模块801可以包括:第一获取单元801a、第一检测单元801b和第二确定单元801c。
第一获取单元801a,可以用于解析接收到的报文,获取报文的属性信息,属性信息包括源IP地址、目标IP地址、协议类型、源端口和目标端口;
第一检测单元801b,可以用于检测报文的属性信息是否包括过滤信息,过滤信息为指定源IP地址、指定目标IP地址、指定协议类型、指定源端口和指定目标端口中选定的一个或多个;
第二确定单元801c,可以用于在第一检测单元801b的检测结果为报文的属性信息包括过滤信息时,确定报文为需要通过指定多隧道出口方式转发的指定类型报文。
综上所述,本发明实施例中提供的报文转发装置,通过过滤出需要通过指定多隧道出口方式转发的指定类型报文,从绑定的至少两条隧道选择一条隧道作为该报文的发送隧道,对该报文进行包含有封装标识和序列号的隧道封装,通过该发送隧道发送该封装后的报文;解决了现有技术中同一类报文仅通过一条隧道进行发送时,容易造成隧道拥塞的问题;由于可以为每一个指定类型报文选择相同或不同的发送隧道,即大量的指定类型报文可以被分发到不同的发送隧道上进行发送,且在报文中均封装了封装标识和序列号,这样目的端转发设备可以根据封装标识和序列号对获取到的指定类型报文进行保序,因此可以降低隧道拥塞、避免乱序产生的影响。
请参见图9所示,其示出了本发明再一个实施例中提供的报文转发装置的结构示意图。本实施例主要以该报文转发装置应用于图1中所示的实施环境中的目的端转发设备104中进行举例说明。该报文转发装置可以包括但不限于:接收模块902、解封装模块904、第二检测模块906和第二转发模块908。
接收模块902,可以用于接收源端转发设备通过隧道发送来的报文;
解封装模块904,可以用于对接收到的报文进行隧道解封装;
第二检测模块906,可以用于在报文被隧道解封装之后,检测解封装模块解封装后的报文是否为源端转发设备通过绑定的隧道发送来的指定类型报文;
这里所讲的通过绑定的隧道发送来的指定类型报文是源端转发设备在检测到报文为需要通过指定多隧道出口方式发送的指定类型报文之后,从绑定的至少两条隧道中选择一条隧道确定为报文的发送隧道,指定类型的至少两个报文的发送隧道为绑定的至少两条隧道中不同的隧道,根据选择的隧道的属性信息对报文进行隧道封装,通过与隧道绑定的端口转发的;
第二转发模块908,可以用于在第二检测模块906的检测结果为报文为源端转发设备通过绑定的隧道发送来的指定类型指定类型报文时,根据查找到的路由转发解封装模块进行隧道解封装后的指定类型报文。
综上所述,本发明实施例中提供的报文转发装置,通过从绑定的至少两条隧道中接收到的报文进行隧道解封装,根据查找到的路由转发隧道解封装后的报文;解决了现有技术中同一类报文仅通过一条隧道进行发送时,容易造成隧道拥塞的问题;可以降低隧道拥塞、避免乱序产生的影响。
请参见图10所示,其示出了本发明还一个实施例中提供的报文转发装置的结构示意图。本实施例主要以该报文转发装置应用于图1中所示的实施环境中的目的端转发设备104中进行举例说明。该报文转发装置可以包括但不限于:接收模块1001、解封装模块1002、第二检测模块1003和第二转发模块1004。
接收模块1001,可以用于接收源端转发设备通过隧道发送来的报文;
解封装模块1002,可以用于对接收到的报文进行隧道解封装;
第二检测模块1003,可以用于在报文被隧道解封装之后,检测解封装模块解封装后的报文是否为源端转发设备通过绑定的隧道发送来的指定类型报文,通过绑定的隧道发送来的指定类型报文是源端转发设备在检测到报文为需要通过指定多隧道出口方式发送的指定类型报文之后,从绑定的至少两条隧道中选择一条隧道确定为报文的发送隧道,指定类型的至少两个报文的发送隧道为绑定的至少两条隧道中不同的隧道,根据选择的隧道的属性信息对报文进行隧道封装,通过与隧道绑定的端口转发的;
第二转发模块1004,可以用于在第二检测模块的检测结果为报文为源端转发设备通过绑定的隧道发送来的指定类型指定类型报文时,根据查找到的路由转发解封装模块进行隧道解封装后的指定类型报文。
在本实施例中的第一种可能的实现方式中,第二检测模块1003,包括:第二检测单元1003a和第三确定单元1003b。
第二检测单元1003a,可以用于在报文被隧道解封装之后,检测报文是否包含封装标识,封装标识为预先设定的用于表示报文是通过指定多隧道出口方式发送的标识;
第三确定单元1003b,可以用于在第二检测单元1003a的检测结果为报文包含封装标识时,确定报文为源端转发设备通过绑定的隧道发送来的指定类型报文。
在本实施例中的第二种可能的实现方式中,第二转发模块1004可以包括:第二获取单元41004a、第一发送单元41004b、排序单元1004c和第二发送单元1004d。
第二获取单元1004a,可以用于获取指定类型报文中携带的序列号;
第一发送单元1004b,用于当当第二获取单元1004a获取的序列号为期望序列号时,则根据查找到的路由,发送解封装后的指定类型报文,期望序列号为与当前最后发送的一个指定类型报文的序列号连续的下一个序列号;
排序单元1004c,可以用于当第二获取单元1004a获取的序列号不为期望序列号时,对接收到的具有封装标识且尚未被发送的所有指定类型报文进行排序;
第二发送单元1004d,可以用于根据查找到的路由,按序发送排序单元1004c排序后的指定类型报文。
在本实施例中的第三种可能的实现方式中,第二发送单元1004d可以包括:
检测子单元,可以用于检测排序后的第一个指定类型报文的序列号是否为期望序列号;
发送子单元,可以用于在检测子单元的检测结果为排序后的第一个指定类型报文的序列号为期望序列号时,根据查找到的路由,依次发送排序后的指定类型报文中自身序列号与相邻报文的序列号连续的报文。
综上所述,本发明实施例中提供的报文转发装置,通过从绑定的多隧道接收到的指定类型报文进行保序处理,解决了现有技术中同一类报文仅通过一条隧道进行发送时,容易造成隧道拥塞的问题;可以在降低隧道拥塞的同时避免乱序产生的影响,提高了业务质量。
需要说明的是:上述实施例提供的报文转发装置在通过隧道对报文进行转发时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将源端转发设备和目的端转发设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的报文转发装置与报文转发方法实施例属于同一构思例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
请参见图11所示,其示出了本发明一个实施例中提供的源端转发设备的结构示意图,该源端转发设备可以应用于图1中所涉及的环境中的源端转发设备102中。该源端转发设备可以包括:处理器1102、存储器1104和发送机1106,处理器1102分别与存储器1104和发送机1106耦合,存储器1104中存储有至少一种计算机软件,处理器1102可以根据这些计算机软件进行相关的操作。
处理器1102,可以用于检测接收到的报文是否为需要通过指定多隧道出口方式转发的指定类型报文;
处理器1102,还可以用于在检测结果为接收到的报文为需要通过指定多隧道出口方式转发的指定类型报文,则从绑定的至少两条隧道中选择一条隧道确定为报文的发送隧道,指定类型的至少两个报文的发送隧道为绑定的至少两条隧道中不同的隧道;
处理器1102,还可以用于根据选择的隧道的属性信息对报文进行隧道封装;
发送机1106,可以用于通过与隧道绑定的端口转发处理器1102封装后的报文。
综上所述,本发明实施例中提供的源端转发设备,通过过滤出需要通过指定多隧道出口方式转发的指定类型报文,从绑定的至少两条隧道选择一条隧道作为该报文的发送隧道,对该报文进行隧道封装,通过该发送隧道发送该封装后的报文;解决了现有技术中同一类报文仅通过一条隧道进行发送时,容易造成隧道拥塞的问题;由于可以为每一个指定类型报文选择相同或不同的发送隧道,即大量的指定类型报文可以被分发到不同的发送隧道上进行发送,因此可以降低隧道拥塞。
请参见图12所示,其示出了本发明另一个实施例中提供的源端转发设备的结构示意图,该源端转发设备可以应用于图1中所涉及的环境中的源端转发设备102中。该源端转发设备可以包括:接收机1202、处理器1204、存储器1206和发送机1208,处理器1204分别与接收机1202、存储器1206和发送机1208耦合,存储器1206中存储有至少一种计算机软件,处理器1204可以根据这些计算机软件进行相关的操作。
接收机1202,可以用于接收报文,该报文可以为LAN侧接收到的报文;
处理器1204,可以用于检测接收机1202接收到的报文是否为需要通过指定多隧道出口方式转发的指定类型报文;
处理器1204,还可以用于在检测结果为接收到的报文为需要通过指定多隧道出口方式转发的指定类型报文时,从绑定的至少两条隧道中选择一条隧道确定为报文的发送隧道,指定类型的至少两个报文的发送隧道为绑定的至少两条隧道中不同的隧道;
处理器1204,还可以用于根据选择的隧道的属性信息对报文进行隧道封装;
发送机1208,可以用于根据通过与隧道绑定的端口转发处理器1204封装后的报文。
在本实施例中的第一种可能的实现方式中,
处理器1204,还可以用于根据选择的隧道的属性信息确定隧道封装头;
处理器1204,还可以用于将封装标识和为报文设定的所述序列号放入确定单元确定的隧道封装头中的保留字节中,封装标识为用于表示报文是通过指定多隧道出口方式发送的标识,序列号为将当前的序列号加1之后得到的值;
处理器1204,还可以用于根据隧道封装头对报文进行隧道封装。
在本实施例中的第二种可能的实现方式中,
处理器1204,还可以用于判断隧道封装头是否存在保留字节;
处理器1204,还还可以用于在判断结果为隧道封装头存在保留字节时,将封装标识和为报文设定的所述序列号放入隧道封装头中的保留字节中;
处理器1204,还可以用于在判断结果为隧道封装头不存在保留字节时,在隧道封装头外设置自定义保留字节;
处理器1204,还可以用于将封装标识和为报文设定的所述序列号放入自定义保留字节中;
处理器1204,还可以用于根据隧道封装头以及自定义保留字节对报文进行隧道封装。
在本实施例中的第三种可能的实现方式中,
处理器1204,还可以用于解析接收到的报文,获取报文的属性信息,属性信息包括源IP地址、目标IP地址、协议类型、源端口和目标端口;
处理器1204,还可以用于检测报文的属性信息是否包括过滤信息,过滤信息为指定源IP地址、指定目标IP地址、指定协议类型、指定源端口和指定目标端口中选定的一个或多个;
处理器1204,还可以用于在检测结果为报文的属性信息包括过滤信息时,确定报文为需要通过指定多隧道出口方式转发的指定类型报文。
综上所述,本发明实施例中提供的源端转发设备,通过过滤出需要通过指定多隧道出口方式转发的指定类型报文,从绑定的至少两条隧道选择一条隧道作为该报文的发送隧道,对该报文进行包含有封装标识和序列号的隧道封装,通过该发送隧道发送该封装后的报文;解决了现有技术中同一类报文仅通过一条隧道进行发送时,容易造成隧道拥塞的问题;由于可以为每一个指定类型报文选择相同或不同的发送隧道,即大量的指定类型报文可以被分发到不同的发送隧道上进行发送,且在报文中均封装了封装标识和序列号,这样目的端转发设备可以根据封装标识和序列号对获取到的指定类型报文进行保序,因此可以降低隧道拥塞、避免乱序产生的影响。
请参见图13所示,其示出了本发明一个实施例中提供的目的端转发设备的结构示意图。本实施例主要以该报目的端转发设备应用于图1中所示的实施环境中的目的端转发设备104中进行举例说明。该目的端转发设备可以包括但不限于:接收机1302、处理器1304、存储器1306和发送机1308,处理器1304分别与接收机1302、存储器1306和发送机1308耦合,存储器1306可以存储至少一个计算机应用程序,处理器1304可以根据这些计算机应用程序进行相关操作。
接收机1302,可以用于接收源端转发设备通过隧道发送来的报文;
处理器1304,可以用于对接收机1302接收到的报文进行隧道解封装;
处理器1304,还可以用于在报文被隧道解封装之后,检测报文是否为源端转发设备通过绑定的隧道发送来的指定类型报文,通过绑定的隧道发送来的指定类型报文是源端转发设备在检测到报文为需要通过指定多隧道出口方式发送的指定类型报文之后,从绑定的至少两条隧道中选择一条隧道确定为报文的发送隧道,指定类型的至少两个报文的发送隧道为绑定的至少两条隧道中不同的隧道,根据选择的隧道的属性信息对报文进行隧道封装,通过与隧道绑定的端口转发的;
发送机1308,可以用于在检测结果为报文为源端转发设备通过绑定的隧道发送来的指定类型指定类型报文时,根据查找到的路由转发隧道解封装后的指定类型报文。
综上所述,本发明实施例中提供的目的端转发设备,通过从绑定的至少两条隧道中接收到的报文进行隧道解封装,根据查找到的路由转发隧道解封装后的报文;解决了现有技术中同一类报文仅通过一条隧道进行发送时,容易造成隧道拥塞的问题;可以降低隧道拥塞、避免乱序产生的影响。
请参见图14所示,其示出了本发明另一个实施例中提供的目的端转发设备的结构示意图。本实施例主要以该报目的端转发设备应用于图1中所示的实施环境中的目的端转发设备104中进行举例说明。该目的端转发设备可以包括但不限于:接收机1402、处理器1404、存储器1406和发送机1408,处理器1404分别与接收机1402、存储器1406和发送机1408耦合,存储器1406可以存储至少一个计算机应用程序,处理器1404可以根据这些计算机应用程序进行相关操作。
接收机1402,可以用于接收源端转发设备通过隧道发送来的报文;
处理器1404,可以用于对接收机1402接收到的报文进行隧道解封装;
处理器1404,还可以用于在报文被隧道解封装之后,检测报文是否为源端转发设备通过绑定的隧道发送来的指定类型报文,通过绑定的隧道发送来的指定类型报文是源端转发设备在检测到报文为需要通过指定多隧道出口方式发送的指定类型报文之后,从绑定的至少两条隧道中选择一条隧道确定为报文的发送隧道,指定类型的至少两个报文的发送隧道为绑定的至少两条隧道中不同的隧道,根据选择的隧道的属性信息对报文进行隧道封装,通过与隧道绑定的端口转发封装后的报文;
发送机1408,可以用于在检测结果为报文为源端转发设备通过绑定的隧道发送来的指定类型指定类型报文时,根据查找到的路由转发隧道解封装后的指定类型报文。在本实施例中的第一种可能的实现方式中,
处理器1404,还可以用于检测报文是否包含封装标识,封装标识为预先设定的用于表示报文是通过指定多隧道出口方式发送的标识;
处理器1404,还可以用于在检测结果为报文包含封装标识时,确定报文为源端转发设备通过绑定的隧道发送来的指定类型报文。
在本实施例中的第二种可能的实现方式中,
处理器1404,还可以用于获取指定类型报文中携带的序列号;
处理器1404,还可以用于当指定类型报文携带的序列号为期望序列号时,则根据查找到的路由,发送解封装后的指定类型报文,期望序列号为与当前最后发送的一个指定类型报文的序列号连续的下一个序列号;
处理器1404,还可以用于当指定类型报文携带的序列号不为期望序列号时,根据获取的序列号对接收到的具有封装标识且尚未被发送的所有指定类型报文进行排序;
发送机1408,还可以用于根据查找到的路由,按序发送处理器1404排序后的指定类型报文。
在本实施例中的第三种可能的实现方式中,
处理器1404,还可以用于检测最后发送的一个指定类型报文的序列号是否与排序后的第一个指定类型报文的序列号相邻;
处理器1404,还可以用于在检测结果为最后发送的一个指定类型的报文的序列号与排序后的第一个指定类型报文的序列号相邻时,根据查找到的路由,依次发送序列号与最后发送的指定类型报文的序列号连续的指定类型报文。
综上所述,本发明实施例中提供的目的端转发设备,通过从绑定的多隧道接收到的指定类型报文进行保序处理,解决了现有技术中同一类报文仅通过一条隧道进行发送时,容易造成隧道拥塞的问题;可以在降低隧道拥塞的同时避免乱序产生的影响,提高了业务质量。
请参见图15所示,其示出了本发明一个实施例中提供的报文转发系统的结构示意图。本实施例主要以该报文转发系统应用于图1中所示的实施环境中进行举例说明。该报文转发系统可以包括:源端转发设备1502、目的端转发设备1504和位于所述源端转发设备1502和所述目的端转发设备1504之间绑定的至少两条隧道1506;
源端转发设备1502可以包括如图7或图8中所描述的报文转发装置,或,源端转发设备1502可以为图11或图12中所描述的源端转发设备;
目的端转发设备1504可以包括如图9或图10中所描述的的报文转发装置,或,目的端转发设备1504可以为图13或图14中所描述的源端转发设备。
综上所述,本发明实施例中提供的报文转发系统,通过在源端转发设备过滤出指定类型的报文,并将这些报文通过多隧道出口方式进行发送,在目的端转发设备接收这些指定类型,并进行报文保序处理;解决了现有技术中同一类报文仅通过一条隧道进行发送时,容易造成隧道拥塞的问题;可以在降低隧道拥塞的同时避免乱序产生的影响,提高了业务质量。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,可以仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (17)
1.一种报文转发方法,其特征在于,所述方法包括:
检测接收到的报文是否为需要通过指定多隧道出口方式转发的指定类型报文;
若检测结果为接收到的所述报文为需要通过指定多隧道出口方式转发的指定类型报文,则从绑定的至少两条隧道中选择一条隧道确定为所述报文的发送隧道,所述指定类型的至少两个报文的发送隧道为所述绑定的至少两条隧道中不同的隧道;
根据选择的所述隧道的属性信息对所述报文进行隧道封装;
通过与所述隧道绑定的端口转发封装后的所述报文。
2.根据权利要求1所述的方法,其特征在于,所述根据选择的所述隧道的属性信息对所述报文进行隧道封装,包括:
根据选择的所述隧道的属性信息确定隧道封装头;
将封装标识和为所述报文设定的序列号放入所述隧道封装头中的保留字节中,所述封装标识为用于表示所述报文是通过所述指定多隧道出口方式发送的标识,所述序列号为将当前的序列号加1之后得到的值;
根据所述隧道封装头对所述报文进行隧道封装。
3.根据权利要求2所述的方法,其特征在于,在所述根据选择的所述隧道的属性信息确定隧道封装头之后,还包括:
判断所述隧道封装头是否存在所述保留字节;
若判断结果为所述隧道封装头存在所述保留字节,则执行所述将封装标识和为所述报文设定的序列号放入所述隧道封装头中的保留字节中的步骤;
若判断结果为所述隧道封装头不存在所述保留字节,则在所述隧道封装头外设置自定义保留字节;
将所述封装标识和为报文设定的所述序列号放入所述自定义保留字节中;
根据所述隧道封装头以及所述自定义保留字节对所述报文进行隧道封装。
4.根据权利要求1至3中任一所述的方法,其特征在于,所述检测接收到的报文是否为需要通过指定多隧道出口方式转发的指定类型报文,包括:
解析接收到的所述报文,获取所述报文的属性信息,所述属性信息包括源IP地址、目标IP地址、协议类型、源端口和目标端口;
检测所述报文的属性信息是否包括过滤信息,所述过滤信息为指定源IP地址、指定目标IP地址、指定协议类型、指定源端口和指定目标端口中选定的一个或多个;
若检测结果为所述报文的属性信息包括所述过滤信息,则确定所述报文为需要通过指定多隧道出口方式转发的指定类型报文。
5.一种报文转发方法,其特征在于,所述方法包括:
接收源端转发设备通过隧道发送来的报文;
对接收到的所述报文进行隧道解封装;
在所述报文被隧道解封装之后,检测所述报文是否为所述源端转发设备通过绑定的隧道发送来的指定类型报文,所述通过绑定的隧道发送来的指定类型报文是所述源端转发设备在检测到所述报文为需要通过指定多隧道出口方式发送的指定类型报文之后,从绑定的至少两条隧道中选择一条隧道确定为所述报文的发送隧道,所述指定类型的至少两个报文的发送隧道为所述绑定的至少两条隧道中不同的隧道,根据选择的所述隧道的属性信息对所述报文进行隧道封装,通过与所述隧道绑定的端口转发的;
若检测结果为所述报文为所述源端转发设备通过绑定的隧道发送来的指定类型指定类型报文,根据查找到的路由转发隧道解封装后的所述指定类型报文。
6.根据权利要求5所述的方法,其特征在于,所述检测所述报文是否为所述指定类型报文,包括:
检测所述报文是否包含封装标识,所述封装标识为预先设定的用于表示所述报文是通过指定多隧道出口方式发送的标识;
若检测结果为所述报文包含封装标识,则确定所述报文为所述源端转发设备通过绑定的隧道发送来的指定类型报文。
7.根据权利要求6所述的方法,其特征在于,所述根据查找到的路由转发隧道解封装后的所述指定类型报文,包括:
获取所述指定类型报文中携带的序列号;
当所述指定类型报文携带的序列号为期望序列号时,则根据查找到的路由,发送解封装后的所述指定类型报文,所述期望序列号为与当前最后发送的一个指定类型报文的序列号连续的下一个序列号;
当所述指定类型报文携带的序列号不为期望序列号时,根据所述序列号对接收到的具有所述封装标识且尚未被发送的所有指定类型报文进行排序;
根据查找到的路由,按序发送排序后的所述指定类型报文。
8.根据权利要求7所述的方法,其特征在于,所述根据查找到的路由,按序发送排序后的所述指定类型报文,包括:
检测排序后的第一个指定类型报文的序列号是否为所述期望序列号;
若检测结果为排序后的第一个指定类型报文的序列号为所述期望序列号,则根据查找到的路由,依次发送所述排序后的指定类型报文中自身序列号与相邻报文的序列号连续的报文。
9.一种报文转发装置,其特征在于,所述装置包括:
第一检测模块,用于检测接收到的报文是否为需要通过指定多隧道出口方式转发的指定类型报文;
选择模块,用于在所述第一检测模块的检测结果为接收到的报文为需要通过指定多隧道出口方式转发的指定类型报文时,从绑定的至少两条隧道中选择一条隧道确定为所述报文的发送隧道,所述指定类型的至少两个报文的发送隧道为所述绑定的至少两条隧道中不同的隧道;
封装模块,用于根据所述选择模块选择的所述隧道的属性信息对所述报文进行隧道封装;
第一转发模块,用于根据通过与所述隧道绑定的端口转发所述封装模块封装后的所述报文。
10.根据权利要求9所述的装置,其特征在于,所述封装模块,包括:
第一确定单元,用于根据选择的所述隧道的属性信息确定隧道封装头;
第一放入单元,用于将封装标识和为报文设定的序列号放入所述确定单元确定的所述隧道封装头中的保留字节中,所述封装标识为用于表示所述报文是通过所述指定多隧道出口方式发送的标识,所述序列号为将当前的序列号加1之后得到的值;
第一封装单元,用于根据所述隧道封装头对所述报文进行隧道封装。
11.根据权利要求10所述的装置,其特征在于,所述封装模块,还包括:
判断单元,用于判断所述隧道封装头是否存在所述保留字节;
所述第一放入单元,还用于在所述判断单元的判断结果为所述隧道封装头存在所述保留字节时,将封装标识和为所述报文设定设定的序列号放入所述隧道封装头中的保留字节中;
设置单元,用于在所述判断单元的判断结果为所述隧道封装头不存在所述保留字节时,在所述隧道封装头外设置自定义保留字节;
第二放入单元,用于将所述封装标识和为报文设定的所述序列号放入所述自定义保留字节中;
第二封装单元,用于根据所述隧道封装头以及所述自定义保留字节对所述报文进行隧道封装。
12.根据权利要求9至11中任一所述的装置,其特征在于,所述第一检测模块,包括:
第一获取单元,用于解析接收到的所述报文,获取所述报文的属性信息,所述属性信息包括源IP地址、目标IP地址、协议类型、源端口和目标端口;
第一检测单元,用于检测所述报文的属性信息是否包括过滤信息,所述过滤信息为指定源IP地址、指定目标IP地址、指定协议类型、指定源端口和指定目标端口中选定的一个或多个;
第二确定单元,用于在所述第一检测单元的检测结果为所述报文的属性信息包括过滤信息时,确定所述报文为需要通过指定多隧道出口方式转发的指定类型报文。
13.一种报文转发装置,其特征在于,所述装置包括:
接收模块,用于接收源端转发设备通过隧道发送来的报文;
解封装模块,用于对接收到的所述报文进行隧道解封装;
第二检测模块,用于在所述报文被隧道解封装之后,检测所述解封装模块解封装后的所述报文是否为所述源端转发设备通过绑定的隧道发送来的指定类型报文,所述通过绑定的隧道发送来的指定类型报文是所述源端转发设备在检测到所述报文为需要通过指定多隧道出口方式发送的指定类型报文之后,从绑定的至少两条隧道中选择一条隧道确定为所述报文的发送隧道,所述指定类型的至少两个报文的发送隧道为所述绑定的至少两条隧道中不同的隧道,根据选择的所述隧道的属性信息对所述报文进行隧道封装,通过与所述隧道绑定的端口转发的;
第二转发模块,用于在所述第二检测模块的检测结果为所述报文为所述源端转发设备通过绑定的隧道发送来的指定类型指定类型报文时,根据查找到的路由转发所述解封装模块进行隧道解封装后的所述指定类型报文。
14.根据权利要求13所述的装置,其特征在于,所述第二检测模块,包括:
第二检测单元,用于在所述报文被隧道解封装之后,检测所述报文是否包含封装标识,所述封装标识为预先设定的用于表示所述报文是通过指定多隧道出口方式发送的标识;
第三确定单元,用于在所述第二检测单元的检测结果为所述报文包含封装标识时,确定所述报文为所述源端转发设备通过绑定的隧道发送来的指定类型报文。
15.根据权利要求14所述的装置,其特征在于,所述第二转发模块,包括:
第二获取单元,用于获取所述指定类型报文中携带的序列号;
第一发送单元,用于当所述指定类型报文携带的序列号为期望序列号时,则根据查找到的路由,发送解封装后的所述指定类型报文,所述期望序列号为与当前最后发送的一个指定类型报文的序列号连续的下一个序列号;
排序单元,用于当所述指定类型报文携带的序列号不为期望序列号时,根据所述第二获取单元获取的所述序列号对接收到的具有所述封装标识且尚未被发送的所有指定类型报文进行排序;
第二发送单元,用于根据查找到的路由,按序发送所述排序单元排序后的所述指定类型报文。
16.根据权利要求15所述的方法,其特征在于,所述第二发送单元,包括:
检测子单元,用于检测排序后的第一个指定类型报文的序列号是否为所述期望序列号;
发送子单元,用于在所述检测子单元的检测结果为排序后的第一个指定类型报文的序列号为所述期望序列号时,根据查找到的路由,依次发送所述排序后的指定类型报文中自身序列号与相邻报文的序列号连续的报文。
17.一种报文转发系统,其特征在于,所述系统包括源端转发设备、目的端转发设备和位于所述源端转发设备和所述目的端转发设备之间绑定的至少两条隧道;
所述源端转发设备包括如权利要求9至12中任一所述的报文转发装置;
所述目的端转发设备包括如权利要求13至16中任一所述的报文转发装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310535884.6A CN104601483A (zh) | 2013-10-31 | 2013-10-31 | 报文转发方法、装置及转发设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310535884.6A CN104601483A (zh) | 2013-10-31 | 2013-10-31 | 报文转发方法、装置及转发设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104601483A true CN104601483A (zh) | 2015-05-06 |
Family
ID=53127000
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310535884.6A Pending CN104601483A (zh) | 2013-10-31 | 2013-10-31 | 报文转发方法、装置及转发设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104601483A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105868032A (zh) * | 2016-03-28 | 2016-08-17 | 中国建设银行股份有限公司 | 一种支持多系统接入的报文处理系统及方法 |
CN106528396A (zh) * | 2015-09-09 | 2017-03-22 | 阿里巴巴集团控股有限公司 | 用于处理应用请求的方法与设备 |
WO2017101085A1 (zh) * | 2015-12-17 | 2017-06-22 | 华为技术有限公司 | 确定通用路由封装gre隧道标识的方法、设备和系统 |
CN108712348A (zh) * | 2018-05-18 | 2018-10-26 | 王逸人 | 流量控制方法、系统、设备及计算机可读存储介质 |
WO2020048478A1 (zh) * | 2018-09-04 | 2020-03-12 | 华为技术有限公司 | 一种传输控制方法和装置 |
CN111355698A (zh) * | 2018-12-24 | 2020-06-30 | 中兴通讯股份有限公司 | 一种传输方法、装置、报文发送端和接收端 |
CN111600915A (zh) * | 2020-07-27 | 2020-08-28 | 南京艾科朗克信息科技有限公司 | 一种证券行情tcp/ip报文快速处理装置和方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1392709A (zh) * | 2001-06-18 | 2003-01-22 | 华为技术有限公司 | 无线三层隧道备份与负担分担方法 |
CN101047633A (zh) * | 2006-05-17 | 2007-10-03 | 华为技术有限公司 | 一种实现多路径传输的方法、装置和系统 |
CN101547155A (zh) * | 2009-04-30 | 2009-09-30 | 杭州华三通信技术有限公司 | 主备隧道负载分担方法和流量转发设备 |
US20100061269A1 (en) * | 2008-09-09 | 2010-03-11 | Cisco Technology, Inc. | Differentiated services for unicast and multicast frames in layer 2 topologies |
-
2013
- 2013-10-31 CN CN201310535884.6A patent/CN104601483A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1392709A (zh) * | 2001-06-18 | 2003-01-22 | 华为技术有限公司 | 无线三层隧道备份与负担分担方法 |
CN101047633A (zh) * | 2006-05-17 | 2007-10-03 | 华为技术有限公司 | 一种实现多路径传输的方法、装置和系统 |
US20100061269A1 (en) * | 2008-09-09 | 2010-03-11 | Cisco Technology, Inc. | Differentiated services for unicast and multicast frames in layer 2 topologies |
CN101547155A (zh) * | 2009-04-30 | 2009-09-30 | 杭州华三通信技术有限公司 | 主备隧道负载分担方法和流量转发设备 |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106528396A (zh) * | 2015-09-09 | 2017-03-22 | 阿里巴巴集团控股有限公司 | 用于处理应用请求的方法与设备 |
WO2017101085A1 (zh) * | 2015-12-17 | 2017-06-22 | 华为技术有限公司 | 确定通用路由封装gre隧道标识的方法、设备和系统 |
US10873478B2 (en) | 2015-12-17 | 2020-12-22 | Huawei Technologies Co., Ltd. | Method, device, and system for determining generic routing encapsulation GRE tunnel identifier |
US11817970B2 (en) | 2015-12-17 | 2023-11-14 | Huawei Technologies Co., Ltd. | Method, device, and system for determining generic routing encapsulation GRE tunnel identifier |
CN105868032A (zh) * | 2016-03-28 | 2016-08-17 | 中国建设银行股份有限公司 | 一种支持多系统接入的报文处理系统及方法 |
CN108712348A (zh) * | 2018-05-18 | 2018-10-26 | 王逸人 | 流量控制方法、系统、设备及计算机可读存储介质 |
WO2020048478A1 (zh) * | 2018-09-04 | 2020-03-12 | 华为技术有限公司 | 一种传输控制方法和装置 |
US11477130B2 (en) | 2018-09-04 | 2022-10-18 | Huawei Technologies Co., Ltd. | Transmission control method and apparatus |
CN111355698A (zh) * | 2018-12-24 | 2020-06-30 | 中兴通讯股份有限公司 | 一种传输方法、装置、报文发送端和接收端 |
CN111355698B (zh) * | 2018-12-24 | 2022-05-20 | 中兴通讯股份有限公司 | 一种传输方法、装置、报文发送端和接收端 |
CN111600915A (zh) * | 2020-07-27 | 2020-08-28 | 南京艾科朗克信息科技有限公司 | 一种证券行情tcp/ip报文快速处理装置和方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104601483A (zh) | 报文转发方法、装置及转发设备 | |
CN106656801B (zh) | 业务流的转发路径的重定向方法、装置和业务流转发系统 | |
CN101573913B (zh) | 用于多播路由选择的方法和设备 | |
CN109962847B (zh) | 业务功能链报文的封装方法和装置及计算机可读存储介质 | |
CN114422284B (zh) | 一种业务传递方法、设备及存储介质 | |
CN103828310B (zh) | 一种链路发现的方法、系统及设备 | |
CN103731376B (zh) | 堆叠设备上链路汇聚根端口选择的方法及系统 | |
CN102136989A (zh) | 报文传输的方法、系统和设备 | |
CN107872332A (zh) | 一种报文转发路径的探测方法及相关装置 | |
CN107342939A (zh) | 传输数据的方法和装置 | |
CN105515816B (zh) | 检测层次信息的处理方法及装置 | |
CN105743816B (zh) | 一种链路聚合方法及装置 | |
CN105991435A (zh) | 用于获取端口路径的方法及装置 | |
CN105530193A (zh) | 确定隧道最大传输单元的方法、网络设备和系统 | |
CN108234320A (zh) | 报文传输方法及交换机 | |
CN103152254A (zh) | 通用路由封装隧道报文转发方法及系统 | |
CN105812221B (zh) | 虚拟可扩展本地区域网络中数据传输的设备和方法 | |
CN103081417A (zh) | 帧连接装置 | |
JP6333120B2 (ja) | 無線メッシュネットワークでのパケットメッセージ送信による通信機器からのメッセージ確認および/またはデータ収集の方法と、汎用プラットフォームの作成に利用可能な確認およびデータ収集を行う方法 | |
CN103209125A (zh) | 一种标签信息的传输方法和设备 | |
CN116405431A (zh) | 一种数据处理方法、网络节点和计算机可读存储介质 | |
CN105763375A (zh) | 一种数据包发送方法、接收方法及微波站 | |
CN102857436B (zh) | 一种基于irf网络的流量传输方法和设备 | |
CN103036984B (zh) | 一种单向流量的检测方法及网络设备 | |
CN104702505B (zh) | 一种报文传输方法和节点 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20150506 |
|
RJ01 | Rejection of invention patent application after publication |