发明内容
本发明实施例提供一种报文传输方法和设备,以充分利用从设备的网络处理能力,并减轻了主设备的负载。
为了达到上述目的,本发明实施例提供一种报文传输方法,应用于包括终端设备、主设备和从设备的异构堆叠网络中,所述从设备上具有连接到所述主设备的上行端口,且所述从设备上具有连接到所述终端设备的下行端口,该方法包括以下步骤:所述从设备在通过所述下行端口接收到来自所述终端设备的报文时,通过所述报文的目的地址查询单播表项;如果所述单播表项中有所述目的地址对应的记录,则所述从设备利用所述单播表项将所述报文发送到目的地址;如果所述单播表项中没有所述目的地址对应的记录,则所述从设备通过所述上行端口将所述报文发送给所述主设备。
所述单播表项具体为:二层单播表项,或者,二层单播表项和三层单播表项;所述从设备通过所述报文的目的地址查询单播表项,之前还包括:所述从设备维护下行端口连接到的终端设备所对应的单播表项。
所述从设备维护下行端口连接到的终端设备所对应的单播表项,具体包括:所述从设备通过介质访问控制MAC地址学习功能学习并记录所述下行端口连接到的终端设备所对应的单播表项;或者,所述从设备通过地址解析协议ARP学习功能学习并记录所述下行端口连接到的终端设备所对应的单播表项;或者,在所述主设备获知所述从设备的下行端口连接到的终端设备所对应的单播表项之后,所述从设备接收并记录所述主设备通知的所述下行端口连接到的终端设备所对应的单播表项。
所述从设备通过所述报文的目的地址查询单播表项,具体包括:所述从设备利用预先配置的第一流量策略确定需要查询单播表项,并通过所述报文的目的地址查询单播表项;其中,所述第一流量策略用于使所述从设备确定需要对所有通过所述下行端口接收到的报文查询单播表项。
所述从设备通过所述上行端口将所述报文发送给所述主设备,具体包括:所述从设备利用预先配置的第二流量策略确定需要将报文发送给所述主设备,并通过所述上行端口将所述报文发送给所述主设备;其中,所述第二流量策略用于使所述从设备确定需要将所述单播表项中没有目的地址对应的记录的报文发送给所述主设备。
本发明实施例提供一种报文传输设备,作为从设备应用于包括终端设备、主设备和所述从设备的异构堆叠网络中,所述从设备上具有连接到所述主设备的上行端口,且所述从设备上具有连接到所述终端设备的下行端口,所述从设备包括:接收模块,用于通过所述下行端口接收来自所述终端设备的报文;查询模块,用于在通过所述下行端口接收到来自所述终端设备的报文时,通过所述报文的目的地址查询单播表项;发送模块,用于当查询结果为所述单播表项中有所述目的地址对应的记录时,利用所述单播表项将所述报文发送到目的地址;当查询结果为所述单播表项中没有所述目的地址对应的记录时,通过所述上行端口将所述报文发送给所述主设备。
所述单播表项具体为:二层单播表项,或者,二层单播表项和三层单播表项;所述从设备还包括:维护模块,用于维护下行端口连接到的终端设备所对应的单播表项。
所述维护模块,具体用于通过介质访问控制MAC地址学习功能学习并记录所述下行端口连接到的终端设备所对应的单播表项;或者,通过地址解析协议ARP学习功能学习并记录所述下行端口连接到的终端设备所对应的单播表项;或者,在所述主设备获知所述从设备的下行端口连接到的终端设备所对应的单播表项之后,接收并记录所述主设备通知的所述下行端口连接到的终端设备所对应的单播表项。
所述查询模块,具体用于利用预先配置的第一流量策略确定需要查询单播表项,并通过所述报文的目的地址查询单播表项;其中,所述第一流量策略用于使所述从设备确定需要对所有通过所述下行端口接收到的报文查询单播表项。
所述发送模块,具体用于利用预先配置的第二流量策略确定需要将报文发送给所述主设备,并通过所述上行端口将所述报文发送给所述主设备;其中,所述第二流量策略用于使所述从设备确定需要将所述单播表项中没有目的地址对应的记录的报文发送给所述主设备。
与现有技术相比,本发明实施例至少具有以下优点:本发明实施例中,在包括主设备和从设备的异构堆叠网络中,从设备自身转发下行端口接收到的已知单播流量(即单播表项匹配到的报文)给目的地址,从而缩短了这些已知单播流量的转发路径,并缩短了转发时延;且一定程度上利用从设备的网络处理能力,并减轻了主设备的负载。
具体实施方式
本发明实施例提出一种报文传输方法,该方法应用于包括终端设备、主设备和从设备的异构堆叠网络中,从设备上具有连接到主设备的上行端口,且从设备上具有连接到终端设备的下行端口;以图1为本发明实施例的应用场景示意图,则该异构堆叠网络中包括有终端设备(图1中未体现)、从设备、主设备1和主设备2,且从设备上具有连接到主设备的上行端口A-上行端口D,且从设备上具有连接到终端设备的下行端口1-下行端口16。
基于上述异构堆叠网络,如图2所示,该报文传输方法包括以下步骤:
步骤201,从设备维护下行端口连接到的终端设备所对应的单播表项,该单播表项具体为:二层单播表项,或者,为二层单播表项和三层单播表项。
在图1所示的应用场景下,从设备需要维护下行端口1连接到的终端设备所对应的单播表项,下行端口2连接到的终端设备所对应的单播表项等。
在具体的实现方式中,从设备维护下行端口连接到的终端设备所对应的单播表项,具体包括但不限于:
方式一、通过在下行端口启用MAC(Media Access Control,介质访问控制)地址学习功能,使得从设备通过MAC地址学习功能学习并记录下行端口连接到的终端设备所对应的单播表项。
方式二、通过在下行端口启用ARP(Address Resolution Protocol,地址解析协议)学习功能,使得从设备通过ARP学习功能学习并记录下行端口连接到的终端设备所对应的单播表项。
方式三、在主设备获知从设备的下行端口连接到的终端设备所对应的单播表项(主设备具体获知方式在此不再赘述)之后,主设备将从设备的下行端口连接到的终端设备所对应的单播表项通知给从设备,由从设备接收并记录主设备通知的下行端口连接到的终端设备所对应的单播表项。
步骤202,从设备在通过下行端口接收到来自终端设备的报文(在图1所示的应用场景下,从设备所接收的报文为来自端口1-端口16的报文)时,通过报文的目的地址(如目的MAC地址)查询单播表项。
如果单播表项中有目的地址对应的记录,则执行步骤203;如果单播表项中没有目的地址对应的记录,则执行步骤204。
本发明实施例中,为了使从设备能够对所有报文查询单播表项,可以预先配置第一流量策略,该第一流量策略用于使从设备确定需要对所有通过下行端口接收到的报文查询单播表项;基于此第一流量策略,则从设备通过报文的目的地址查询单播表项,包括:在通过下行端口接收到来自终端设备的报文时,由于从设备上配置有第一流量策略,因此从设备可利用预先配置的第一流量策略确定需要查询单播表项,并通过报文的目的地址查询单播表项。
本发明实施例中,在从设备所维护的单播表项中,记录有从设备本地的单播流量的相关信息;因此如果来自终端设备的报文为单播流量,则单播表项中有其目的地址对应的记录,执行步骤203;如果来自终端设备的报文为非单播流量(如广播流量、组播流量、未知单播流量等),则单播表项中没有其目的地址对应的记录,执行步骤204。
步骤203,从设备利用单播表项将报文发送到目的地址。
本发明实施例中,对于来自终端设备的单播流量,从设备可以利用单播表项将单播流量发送到目的地址,从而缩短了单播流量的转发路径,并缩短了转发时延;且由于单播表项中只记录有单播流量的目的地址对应的记录,而没有非单播流量的目的地址对应的记录,因此只需要从设备具有比较小的转发表规格即可,从设备上完全能够实现此小规格的转发表,且从设备也能够通过自身的查表转发处理能力实现对单播流量的转发。
步骤204,从设备通过上行端口将报文发送给主设备,由主设备将报文发送到目的地址。
本发明实施例中,对于来自终端设备的非单播流量(如广播流量、组播流量、未知单播流量等),从设备可以通过上行端口将非单播流量发送给主设备,以利用主设备的比较大的转发表规格以及较强的查表转发处理能力对来自从设备的非单播流量进行查表转发处理。
本发明实施例中,为了使从设备能够将单播表项中没有目的地址对应的记录的报文发送给主设备,可以预先配置第二流量策略,该第二流量策略用于使从设备确定需要将单播表项中没有目的地址对应的记录的报文发送给主设备;基于此第二流量策略,从设备通过上行端口将报文发送给主设备,具体包括:当单播表项中没有报文的目的地址所对应的记录时,从设备利用预先配置的第二流量策略确定需要将报文发送给主设备,并通过上行端口将报文发送给主设备。
基于与上述方法同样的发明构思,本发明实施例中还提供了一种报文传输设备,作为从设备应用于包括终端设备、主设备和所述从设备的异构堆叠网络中,所述从设备上具有连接到所述主设备的上行端口,且所述从设备上具有连接到所述终端设备的下行端口,如图3所示,所述从设备包括:
接收模块11,用于通过所述下行端口接收来自所述终端设备的报文;
查询模块12,用于在通过所述下行端口接收到来自所述终端设备的报文时,通过所述报文的目的地址查询单播表项;
发送模块13,用于当查询结果为所述单播表项中有所述目的地址对应的记录时,利用所述单播表项将所述报文发送到目的地址;
当查询结果为所述单播表项中没有所述目的地址对应的记录时,通过所述上行端口将所述报文发送给所述主设备。
所述单播表项具体为:二层单播表项,或者,二层单播表项和三层单播表项;所述从设备还包括:维护模块14,用于维护下行端口连接到的终端设备所对应的单播表项。
所述维护模块14,具体用于通过介质访问控制MAC地址学习功能学习并记录所述下行端口连接到的终端设备所对应的单播表项;或者,通过地址解析协议ARP学习功能学习并记录所述下行端口连接到的终端设备所对应的单播表项;或者,在所述主设备获知所述从设备的下行端口连接到的终端设备所对应的单播表项之后,接收并记录所述主设备通知的所述下行端口连接到的终端设备所对应的单播表项。
所述查询模块12,具体用于利用预先配置的第一流量策略确定需要查询单播表项,并通过所述报文的目的地址查询单播表项;其中,所述第一流量策略用于使所述从设备确定需要对所有通过所述下行端口接收到的报文查询单播表项。
所述发送模块13,具体用于利用预先配置的第二流量策略确定需要将报文发送给所述主设备,并通过所述上行端口将所述报文发送给所述主设备;其中,所述第二流量策略用于使所述从设备确定需要将所述单播表项中没有目的地址对应的记录的报文发送给所述主设备。
其中,本发明装置的各个模块可以集成于一体,也可以分离部署。上述模块可以合并为一个模块,也可以进一步拆分成多个子模块。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。