一种发送报文的方法及装置的制作方法

文档序号:7972413阅读:238来源:国知局
专利名称:一种发送报文的方法及装置的制作方法
技术领域
本发明涉及数据通信技术,尤指一种发送报文的方法及装置。
背景技术
在数据通信中,由于组播或广播报文是一点向多个点进行发送,因此报文的发送效率直接影响到对应协议的执行情况;例如对路由协议来说,路由协议中组播或广播报文的发送速度直接影响到路由协议的收敛性能,在很大程度上决定了路由协议的执行效率。
现有技术中,网络设备将组播或广播报文交给IP层进行发送处理。IP层则按照应用程序指定的接口将报文交给接口所属的链路协议单元进行发送。
接口所支持的链路类型包括三种情况,为点到点链路、点到多点链路以及以太网广播链路。当应用程序指定的接口所支持的链路类型为点到点链路时,则应用程序是通过指定多个支持点到点链路来实现组播或广播的。
以下分别针对接口所支持的三种链路类型,对链路协议单元发送报文的过程作简要介绍。具体如下当接口所支持的链路类型为点到点链路,例如高级数据链路控制(HDLC)或点到点协议(PPP)等,链路协议单元先对接口进行接口有效性判断和链路状态的相关判断。在接口有效性及相关链路状态都满足条件时,链路协议单元根据网络层协议信息和链路层协议信息获得二层封装信息,并根据二层封装信息对该报文进行二层封装,发送封装后的报文。二层封装信息是指,各链路协议规定的报文封装格式中所必需的信息。
当接口所支持的链路类型为点到多点链路,例如帧中继FR(FrameRelay)或异步传输模式(ATM)等,链路协议单元先对接口进行接口有效性判断和链路状态的相关判断。在接口的有效性和相关链路状态都满足条件的情况下,链路协议单元如果发现当前要发送的报文为组播或广播报文时,则遍历本接口所有的子通道,在具有广播属性的子通道上发送报文。也就是,在每个具有广播属性的子通道上根据网络层协议信息和本子通道的链路层协议信息获得各子通道的二层封装信息,并根据各具有广播属性的子通道的二层封装信息对报文进行二层封装,通过各子通道发送封装后的报文。
当接口支持的链路类型为以太网广播链路,例如以太网(ETH)链路等,链路协议单元先对接口进行接口有效性判断和链路状态相关判断。在接口的有效性和相关链路状态都满足条件时,如果发现当前要发送的报文为组播报文时,则根据组播目的IP计算出组播目的媒体接入控制(MAC)地址,获得接口上的MAC地址作为源MAC地址;如果当前要发送的报文为广播报文,则直接将目的MAC地址设置为广播MAC地址,获得接口上的MAC地址作为源MAC地址。根据网络层协议信息和本接口的链路层协议信息、以及获得的源/目的MAC地址得到二层封装信息,并根据二层封装信息对该报文进行二层封装,发送封装后的报文。
现有技术中,当要发送组播或广播报文时,链路协议单元首先需要对接口状态以及链路状态进行判断,确定是否能够发送报文;在确定接口状态以及链路状态可用时,再根据网络层类型和本链路类型获得报文的二层封装信息,利用二层封装信息对报文进行封装之后,才能将组播或广播报文顺利的发送出去。由上可知,在现有技术中,报文在由应用程序指定了发送接口之后,还需要经过一系列繁琐的报文处理过程,才能通过接口发送出去,这样极大的降低了组播或广播报文的发送效率,影响了相关业务的执行效率。

发明内容
有鉴于此,本发明的主要目的在于提供一种发送报文的方法及装置,应用本发明提供了方法及装置能够提高组播或广播报文的发送效率。
为达到上述目的,本发明的技术方案是这样实现的一种发送报文的方法,执行以下步骤当接口对应的链路可用时,建立接口的二层封装信息;接口发送组播或广播报文时,根据接口的二层封装信息封装并发送所述报文。
较佳的,当接口所支持的链路类型为点到点时,所述接口对应的点到点链路可用为当成功完成接口对应的点到点链路的链路协商后,所述点到点链路为可用;所述封装并发送所述报文为根据所述接口的二层封装信息封装所述报文,并通过所述接口对应的点到点链路发送所述报文。
较佳的,当接口对应的点到点链路不可用时,则删除该接口对应的二层封装信息;或,当接口对应的点到点链路的报文封装格式发生变化时,根据变化后的报文封装格式对所述的二层封装信息进行修改。
较佳的,当接口所支持的链路类型为点到多点时,所述建立接口的二层封装信息为当接口对应的点到多点链路每增加一条具有广播属性的子通道时,在该子通道状态为可用的情况下,则针对所述增加的子通道建立一条与该接口对应的二层封装信息;所述封装并发送所述报文为根据所述接口的各子通道对应的二层封装信息分别封装报文,并通过各子通道发送所述报文。
较佳的,当二层封装信息对应的子通道不可用时,则删除该二层封装信息;或,当二层封装信息对应子通道的报文封装格式发生变化时,根据变化后的报文封装格式对所述的二层封装信息进行修改。
较佳的,当接口所支持的链路类型为以太网广播链路时,所述建立接口的二层封装信息为在接口为虚拟以太网虚接口的情况下,在虚接口对应的虚拟以太网内,每增加一个可用的二层端口时,则针对该二层端口建立一条与虚接口对应的二层封装信息;所述封装并发送所述报文为根据所述接口的各二层端口对应的二层封装信息分别封装报文,并通过各二层端口发送所述报文;或,在接口为三层以太网口的情况下,当三层以太网口对应的以太网广播链路的状态为可用时,建立三层以太网口对应的二层封装信息;所述封装并发送所述报文为根据所述三层以太网口的二层封装信息封装所述报文,并通过所述三层以太网口对应的广播链路发送所述报文。
较佳的,在封装并发送所述报文之前,进一步包括当所述报文为组播报文时,根据目的IP地址计算得到组播报文的目的MAC地址;根据组播报文的目的媒体接入控制MAC地址和二层封装信息,封装并发送所述组播报文;或,当所述报文为广播报文时,将所述报文的目的MAC地址设置为广播报文的广播MAC地址;根据组播报文的目的MAC地址和二层封装信息,封装并发送所述广播报文。
较佳的,当接口为虚拟以太网虚接口时,在二层封装信息对应的二层端口不可用时,则删除该二层封装信息;或当二层封装信息对应的二层端口的报文封装格式发生变化时,根据变化后的报文封装格式对所述的二层封装信息进行修改;或者,当接口为三层以太网口时,当三层以太网口对应的以太网广播链路不可用时,则删除该接口对应的二层封装信息;或当接口对应的以太网广播链路的报文封装格式发生变化时,根据变化后的报文封装格式对所述的二层封装信息进行修改。
较佳的,由链路协议单元执行所述建立二层封装信息的操作。
较佳的,设置接口链路管理表,用于记录接口与对应的二层封装信息之间的对应关系。
另外,本发明还提供了一种发送报文的装置,该装置至少包括,链路协议单元和链路信息单元;其中,链路协议单元,用于建立接口的二层封装信息,并记录于链路信息单元;发送组播或广播报文时,根据记录的接口的二层封装信息封装并发送所述报文;链路信息单元,用于记录链路协议单元建立的接口的二层封装信息。
本发明所提供的一种发送报文的方法,通过记录组播或广播报文在发送过程中所需的、且在报文发送前就能够确定的二层封装信息;进而在实际发送报文时,接口只需要根据记录的二层封装信息封装并发送所述报文,进而减少了每个组播或广播报文在发送过程中的判断环节和二层封装信息的获取等环节,从而达到了快速发送组播或广播报文的目的。同时,本发明还提供了一种发送报文的装置。通过应用本发明所提供的方法以及装置,能够在很大程度上提供组播或广播报文的发送效率,进而也提高了相关业务的执行效率。


图1为本发明实施例一方法的流程图;图2为本发明实施例二方法的流程图;图3为本发明实施例三方法的流程图;图4为本发明装置的结构图;图5为本发明存在多个二层封装信息时的接口链路管理表项结构图。
具体实施例方式
本发明的核心思想是当接口对应的链路可用时,针对可用的链路记录组播或广播报文在发送过程中所需的、且在报文发送前就能够确定的二层封装信息;在实际发送报文时,根据记录的二层封装信息封装并发送所述报文,进而减少了每个组播或广播报文在发送过程中的判断环节和二层封装信息的获取等环节,达到了快速发送组播或广播报文的目的。
为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明做进一步的详细说明。
在本发明中,主要针对三种链路类型分别列举实施例,这三种链路类型分别是点到点链路、点到多点链路以及以太网广播链路。
实施例一当接口支持的链路类型为点到点时,则本实施例发送报文方法的流程如图1所示,包括以下步骤步骤101接口对应的链路协议单元,在当前接口对应的点对点链路状态为可用时,根据接口对应的点到点链路建立当前接口的二层封装信息。
这里确定接口链路状态为可用的方法可以是链路协议单元在成功完成当前接口对应的点到点链路的链路协议协商之后,确定当前点到点链路的状态为可用。
这里,链路协议单元在链路协议协商成功后,根据点到点链路的网络层协议信息和链路层协议信息建立对应的二层封装信息。
步骤102当接口对应的链路协议单元收到需要接口发送的组播或广播报文,链路协议单元则根据当前接口对应的二层封装信息对报文进行封装,并通过当前接口对应的点到点链路发送封装后的组播或广播报文。
本实施例的方法进一步包括,在当前接口对应的点到点链路的状态变为不可用时,删去该接口对应的二层封装信息。此后,当前接口不能再发送组播或广播报文,直至链路状态为可用。或者,当该接口对应的点到点链路的报文封装格式发生变化时,则根据变化后的报文封装格式更新当前接口对应的二层封装信息。
实施例二当接口支持的链路类型为点到多点时,如FR或ATM,则在接口发送报文的流程如图2所示,包括以下步骤步骤201链路协议单元在自身所管理的接口要增加一条具有广播属性的子通道,且在该子通道的状态为可用时,链路协议单元针对当前增加的子通道建立与该接口对应的二层封装信息。
这里,链路协议单元根据网络层协议信息、以及本子通道的链路层协议信息建立子通道的二层封装信息。
其中,所指的子通道对于FR来说为数据链路连接标识(DLCI,Data LinkConnection Identifier),对于ATM为永久虚连接(PVC,Permanent VirtualChannel)。所指的子通道状态可用可以是指子通道物理上可用。子通道物理上可用,可以根据子通道所在的底层链路是否可用来确定。
当接口每增加一条具有广播属性的子通道,且在该子通道的状态为可用时,链路协议单元均会根据该新增的子通道,针对该新增的子通道建立接口的一个二层封装信息。也就是说,当接口每增加一个子通道,链路协议单元就会为接口针对该子通道建立一个二层封装信息。因此当接口存在多个子通道时,接口就会存在分别与这多个子通道对应的二层封装信息。
由于在实际应用过程中,接口所包括的子通道有可能是动态增加的,因此,本实施例的步骤201并不限于在步骤202之前执行,只要接口新增了一个子通道,接口对应的链路协议单元则针对该子通道建立一个二层封装信息。
步骤202当接口对应的链路协议单元收到需要当前接口发送的组播或广播报文时,链路协议单元则根据当前接口对应的各二层封装信息,分别封装所述报文并通过对应的子通道发送所述的组播或广播报文。
本实施例方法进一步包括,当接口对应的某个子通道的链路状态变为不可用时,链路协议单元则删去针对该子通道建立的二层封装信息。或者,当某个子通道的报文封装格式发生变化时,则根据该子通道变化后的报文封装格式更新该子通道对应的二层封装信息。
实施例三当接口支持的链路类型为以太网广播链路时,如ETH,则在接口发送报文的流程如图3所示。在本实施例中,首先以所述接口为虚拟以太网(VLAN)虚接口为例进行说明,本实施例的方法包括以下步骤
步骤301当VLAN虚接口所在的VLAN内增加一个二层端口,且该二层端口的状态为可用时,链路协议单元则针对该新增的二层端口建立该VLAN虚接口的一个二层封装信息。这里,所指的二层端口为以太网端口。
当VLAN虚接口所在的VLAN每增加一个二层端口,且该新增的二层端口状态为可用时,链路协议单元均会根据该新增的二层端口,建立与当前VLAN虚接口对应的一个二层封装信息。也就是说,当VLAN虚接口每增加一个二层端口时,链路协议单元均会为VLAN虚接口针对二层端口建立一个二层封装信息。因此当VLAN虚接口存在多个二层端口时,接口就会存在分别与这多个二层端口对应的二层封装信息。
由于在实际应用过程中,VLAN的二层端口可能是动态增加的,因此,本实施例的步骤301并不限于在步骤302之前,只要VLAN内新增了一个二层端口,VLAN虚接口对应的链路协议单元则针对该二层端口建立一个二层封装信息。
这里,链路协议单元根据当前新增的二层端口的网络层协议信息和链路层协议信息建立与该二层端口对应的二层封装信息。
其中,所指的二层端口可用为二层端口物理上可用,比如已经插线且与对端设备连通。
步骤302当VLAN虚接口对应的链路协议单元收到需要当前接口发送的组播或广播报文时,获得该报文目的MAC地址。
其中,当需要发送的为组播报文时,则根据该组播报文的目的IP地址得到组播报文的目的MAC地址;当需要发送的为广播报文时,将报文中携带的目的MAC地址作为广播报文的目的MAC地址。
这里,组播或广播报文的源MAC是当前VLAN虚接口自身的MAC地址,该MAC地址信息是在VLAN虚接口确定之后,即可以预先确定的信息,因此是链路协议单元记录在二层封装信息中的内容。
步骤303链路协议单元根据获得目的MAC地址,以及该VLAN虚接口对应各二层端口的二层封装信息,分别封装所述报文,并通过各二层端口发送自身对应的封装后的报文。
本实施例的方法进一步包括,当VLAN虚接口对应的某个二层端口状态变为不可用时,链路协议单元则删去针对与该二层端口对应的二层封装信息。或者,当某个二层端口的报文封装格式发生变化时,则根据该二层端口变化后的报文封装格式更新该二层端口对应的二层封装信息。
另外,在本实施例中,当支持以太网广播链路的接口为三层以太网口时,则建立该三层以太网口的二层封装信息为当三层以太网口对应的以太网广播链路为可用时,则根据该以太网广播链路建立该三层以太网口的二层封装信息。由于三层以太网口不像VLAN虚接口,因此与三层以太网口对应的二层封装信息只会存在一条。在发送组播或广播报文时,则根据该三层以太网口对应的二层封装信息封装并发送报文。这里,链路协议单元根据以太网广播链路的网络层协议信息和链路层协议信息建立对应的二层封装信息。
在三层以太网口对应的以太网广播链路不可用时,则删除与该三层以太网口对应的二层封装信息。或者,当该三层以太网口对应的以太网广播链路的报文封装格式发生变化时,则根据变化后的报文封装格式更新三层以太网口对应的二层封装信息。
这里所指的以太网广播链路可用可以根据以太网广播链路的底层链路是否可用来确定,当底层链路可用时,则认为以太网广播链路可用;当底层链路不可用时,则认为以太网广播链路不可用。
与本发明方法对应的装置如图4所示,包括链路协议单元41和链路信息单元42。
其中,链路协议单元41,用于建立接口的二层封装信息,并将建立的二层封装信息记录于链路信息单元42;发送组播或广播报文时,根据链路信息单元42记录的接口的二层封装信息封装并发送所述报文。
链路信息单元42,用于记录链路协议单元41建立的接口的二层封装信息。
这里,链路协议单元41建立接口的二层封装信息,以及封装并发送组播或广播报文的方法,可以参见实施例一、二和三,具体方法在此不再详述。
其中,链路信息单元42记录接口对应的二层封装信息的方法可以是,建立一张接口链路管理表,其中记录着接口与其自身的二层封装信息之间的对应关系。在接口链路管理表中,接口可以用自身的接口索引来唯一标识。当接口存在多个与自身对应的二层封装信息时,可以采用链表的方式记录与自身对应的多个二层封装信息,具体可参见图5。图5为当某个接口存在多个二层封装信息时,对应的接口链路管理表项结构图。当链路协议单元需要根据接口对应的二层封装信息发送组播或广播报文,只需要根据接口的接口索引查找接口链路管理表,即可找到相应的记录了二层封装信息的表项。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
权利要求
1.一种发送报文的方法,其特征在于,执行以下步骤当接口对应的链路可用时,建立接口的二层封装信息;接口发送组播或广播报文时,根据接口的二层封装信息封装并发送所述报文。
2.根据权利要求1所述的方法,其特征在于,当接口所支持的链路类型为点到点时,所述接口对应的点到点链路可用为当成功完成接口对应的点到点链路的链路协商后,所述点到点链路为可用;所述封装并发送所述报文为根据所述接口的二层封装信息封装所述报文,并通过所述接口对应的点到点链路发送所述报文。
3.根据权利要求2所述的方法,其特征在于,当接口对应的点到点链路不可用时,则删除该接口对应的二层封装信息;或,当接口对应的点到点链路的报文封装格式发生变化时,根据变化后的报文封装格式对所述的二层封装信息进行修改。
4.根据权利要求1所述的方法,其特征在于,当接口所支持的链路类型为点到多点时,所述建立接口的二层封装信息为当接口对应的点到多点链路每增加一条具有广播属性的子通道时,在该子通道状态为可用的情况下,则针对所述增加的子通道建立一条与该接口对应的二层封装信息;所述封装并发送所述报文为根据所述接口的各子通道对应的二层封装信息分别封装报文,并通过各子通道发送所述报文。
5.根据权利要求4所述的方法,其特征在于,当二层封装信息对应的子通道不可用时,则删除该二层封装信息;或,当二层封装信息对应子通道的报文封装格式发生变化时,根据变化后的报文封装格式对所述的二层封装信息进行修改。
6.根据权利要求1所述的方法,其特征在于,当接口所支持的链路类型为以太网广播链路时,所述建立接口的二层封装信息为在接口为虚拟以太网虚接口的情况下,在虚接口对应的虚拟以太网内,每增加一个可用的二层端口时,则针对该二层端口建立一条与虚接口对应的二层封装信息;所述封装并发送所述报文为根据所述接口的各二层端口对应的二层封装信息分别封装报文,并通过各二层端口发送所述报文;或,在接口为三层以太网口的情况下,当三层以太网口对应的以太网广播链路的状态为可用时,建立三层以太网口对应的二层封装信息;所述封装并发送所述报文为根据所述三层以太网口的二层封装信息封装所述报文,并通过所述三层以太网口对应的广播链路发送所述报文。
7.根据权利要求4所述的方法,其特征在于,在封装并发送所述报文之前,进一步包括当所述报文为组播报文时,根据目的IP地址计算得到组播报文的目的MAC地址;根据组播报文的目的媒体接入控制MAC地址和二层封装信息,封装并发送所述组播报文;或,当所述报文为广播报文时,将所述报文的目的MAC地址设置为广播报文的广播MAC地址;根据组播报文的目的MAC地址和二层封装信息,封装并发送所述广播报文。
8.根据权利要求6或7所述的方法,其特征在于,当接口为虚拟以太网虚接口时,在二层封装信息对应的二层端口不可用时,则删除该二层封装信息;或当二层封装信息对应的二层端口的报文封装格式发生变化时,根据变化后的报文封装格式对所述的二层封装信息进行修改;或者,当接口为三层以太网口时,当三层以太网口对应的以太网广播链路不可用时,则删除该接口对应的二层封装信息;或当接口对应的以太网广播链路的报文封装格式发生变化时,根据变化后的报文封装格式对所述的二层封装信息进行修改。
9.根据权利要求1至7中任一权利要求所述的方法,其特征在于,由链路协议单元执行所述建立二层封装信息的操作。
10.根据权利要求1至7中任一权利要求所述的方法,其特征在于,设置接口链路管理表,用于记录接口与对应的二层封装信息之间的对应关系。
11.一种发送报文的装置,其特征在于,该装置至少包括,链路协议单元和链路信息单元;其中,链路协议单元,用于建立接口的二层封装信息,并记录于链路信息单元;发送组播或广播报文时,根据记录的接口的二层封装信息封装并发送所述报文;链路信息单元,用于记录链路协议单元建立的接口的二层封装信息。
全文摘要
本发明公开了一种发送报文的方法,执行以下步骤当接口对应的链路可用时,建立接口的二层封装信息;接口发送组播或广播报文时,根据接口的二层封装信息封装并发送所述报文。本发明提供的发送报文的方法,通过建立报文在发送过程中所需的、且在报文发送前就能够确定的二层封装信息;进而在实际发送报文时,接口只需要根据记录的二层封装信息封装并发送所述报文,进而减少了每个报文在发送过程中的判断环节和二层封装信息的获取等环节,从而达到了快速发送报文的目的。同时,本发明还提供了一种发送报文的装置。通过应用本发明所提供的方法以及装置,能够在很大程度上提供报文的发送效率,进而也提高了相关业务的执行效率。
文档编号H04L29/06GK1925467SQ200610152498
公开日2007年3月7日 申请日期2006年10月9日 优先权日2006年10月9日
发明者常向青, 孟丹, 龚一斌, 王海东, 翟红刚, 赵丽娜, 苏兴山 申请人:杭州华为三康技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1