一种报文传输方法及相关设备与流程

文档序号:25886832发布日期:2021-07-16 19:20阅读:157来源:国知局
一种报文传输方法及相关设备与流程

1.本申请涉及通信技术领域,尤其是涉及一种报文传输方法及相关设备。


背景技术:

2.在数据中心网络中,服务器虚拟化逐渐被广泛应用,并且随着企业业务的发展,虚拟机数量的快速增长和虚拟机迁移已成为一个常态性业务。在此基础上,虚拟可扩展局域网(virtual extensible local area network,vxlan)随之诞生。vxlan是三层网络虚拟化(network virtualization over layer 3,nvo3)标准技术之一,其本质上是一种隧道技术。在vxlan网络中进行报文转发时,发送端(虚拟机或物理机)连接的vxlan隧道端点(vxlan tunnel end point,vtep)可以为原始报文添加vxlan头得到vxlan报文,并以传统互联网协议(internet protocol,ip)网络的传输方式转发该vxlan报文至接收端(虚拟机或物理机)连接的vtep;接收端连接的vtep可以去掉该vxlan报文的外层封装部分,并将该原始报文发送给接收端。
3.但是,实际应用中,在vxlan网络中迁移虚拟机或者增加虚拟机后,容易出现目的设备迁移或增加的虚拟机无法接收到报文或者同时接收到多个相同的报文的情况。


技术实现要素:

4.为了解决上述问题,本申请提供了一种报文传输方法及相关设备,以使得接收端能够接收到发送端发送的报文,并且同一内容的报文可以仅接收一份。
5.第一方面,本申请提供了一种报文传输方法。第一设备接收来自第二设备的第一报文,所述第一报文包括报文类型指示,所述报文类型指示用于指示所述第一报文为单播报文或广播未知单播多播bum报文;当所述第一设备根据所述报文类型指示确定所述第一报文为所述单播报文时,或者,当所述第一设备根据所述报文类型指示确定所述第一报文为所述bum报文,且所述第一设备为目的设备的指定转发者df时,所述第一设备向目的设备发送第二报文;其中,所述第二报文为所述第一设备对所述第一报文进行解封装后所得到的报文,所述目的设备多归接入多个网络设备,所述多个网络设备中包括所述第一设备。在该实施方式中,第一设备在确定接收到报文为单播报文时,直接发送给目的设备,这使得目的设备能够接收到报文,而在确定接收到的报文为多播报文时,只有第一设备作为目的设备的df时才向目的设备发送报文,从而使得目的设备可以仅接收到一份报文,由此可以实现目的设备能够接收到发送端发送的报文,并且同一内容的报文可以仅接收一份。
6.可选地,所述报文类型指示位于所述第一报文中的目标字段,和/或,所述报文类型指示为所述第一报文经过组播隧道封装后所携带的组播地址。在该实施方式中,第一设备可以是根据第一报文中的目标字段的值来确定该第一报文是单播报文还是多播报文,也可以是根据该第一报文中的ip地址确定第一报文的是单播报文还是多播报文,当ip地址表征单个设备的ip地址时,表征该第一报文为单播报文,而当该ip地址为组播ip地址时,可以表征该第一报文为bum报文,从而第一设备可以根据该第一报文中的ip地址确定第一报文
的报文类型。
7.可选地,所述第一报文为包括虚拟可扩展局域网vxlan头的vxlan报文,所述目标字段具体为所述vxlan头中的保留字段。在该实施方式中,第一报文可以是包括vxlan头的vxlan报文,从而可以通过定义该vxlan头中的保留字段的值来指示第一报文是单播报文还是bum报文的报文类型。这样,第一设备根据第一报文vxlan头中的特定保留字段的值,即可确定第一报文的类型。比如,可以在vxlan头中定义bum标志位,并且定义该bum标志位的值为0时,表征第一报文为单播报文,定义该bum标志位的值为1时,表征第一报文为bum报文。
8.可选地,所述方法还包括:当所述第一设备根据所述报文类型指示确定所述第一报文为所述bum报文,且所述第一设备并非为所述目的设备的指定转发者df时,所述第一设备不向所述目的设备发送第二报文。在该实施方式中,当第一设备确定第一报文为bum报文,但是其并非为目的设备的df报文时,表征目的设备可以从其它设备(目的设备的df)获得报文,从而第一设备不向该目的设备发送报文,比如,可以丢弃报文等,以使得目的设备不会重复接收到内容相同的至少两份报文。
9.第二方面,本申请还提供了一种报文传输装置,该装置包括接收模块,处理模块和发送模块:
10.该接收模块,用于接收来自第二设备的第一报文,所述第一报文包括报文类型指示,所述报文类型指示用于指示所述第一报文为单播报文或广播未知单播多播bum报文;
11.该处理模块,用于当根据所述报文类型指示确定所述第一报文为所述单播报文时,或者,当根据所述报文类型指示确定所述第一报文为所述bum报文,且第一设备为目的设备的指定转发者df时,通过该发送模块向目的设备发送第二报文;其中,所述第二报文为所述第一设备对所述第一报文进行解封装后所得到的报文,所述目的设备多归接入多个网络设备,所述多个网络设备中包括所述第一设备。
12.可选地,所述报文类型指示位于所述第一报文中的目标字段,和/或,所述报文类型指示为所述第一报文经过组播隧道封装后所携带的组播地址。
13.可选地,所述第一报文为包括虚拟可扩展局域网vxlan头的vxlan报文,所述目标字段具体为所述vxlan头中的保留字段。
14.可选地,所述装置还包括:该处理模块还用于当所述第一设备根据所述报文类型指示确定所述第一报文为所述bum报文,且所述第一设备并非为所述目的设备的df时,确定不向所述目的设备发送第二报文。
15.第二方面所描述的报文传输装置,对应于第一方面所描述的报文传输方法,因此,第二方面的各种可能的实施方式以及其有益效果可以参照第一方面中对应实施方式以及有益效果的相关描述,在此不做赘述。
16.第三方面,本申请还提供了一种计算机设备。该设备计算机包括处理器与存储器,该存储器用于存储计算机程序或指令,该处理器用于执行该计算机程序或指令,使得该计算机设备执行上述第一方面或者第一方面中任意一种实施方式所述的报文传输方法。
17.第四方面,本申请提供了一种计算机存储介质,存储有用于实现上述第一方面或者第一方面中任意一种实施方式所述的报文传输方法的程序。当该程序在用于报文传输的设备中运行时,使得该设备执行第一方面或者第一方面中任意一种实施方式所述的报文传输方法。
18.第五方面,本申请提供了一种计算机程序产品,该程序产品包括程序,当该程序被运行时,使得上述第一方面或者第一方面中任意一种实施方式所述的报文传输方法被执行。
19.从以上技术方案可以看出,本申请中第一设备接收来自第二设备的第一报文,所述第一报文包括报文类型指示,所述报文类型指示用于指示所述第一报文为单播报文或广播未知单播多播bum报文;当所述第一设备根据所述报文类型指示确定所述第一报文为所述单播报文时,或者,当所述第一设备根据所述报文类型指示确定所述第一报文为所述bum报文,且所述第一设备为目的设备的指定转发者df时,所述第一设备向目的设备发送第二报文;其中,所述第二报文为所述第一设备对所述第一报文进行解封装后所得到的报文,所述目的设备多归接入多个网络设备,所述多个网络设备中包括所述第一设备。可见,第一设备在确定接收到报文为单播报文时,直接发送给目的设备,这使得目的设备能够接收到报文,而在确定接收到的报文为bum报文时,只有第一设备作为目的设备的df时才向目的设备发送报文,从而使得目的设备可以仅接收到一份报文,由此可以实现目的设备能够接收到发送端发送的报文,并且同一内容的报文可以仅接收一份。
附图说明
20.为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
21.图1为本申请实施例中一示例性vxlan网络架构示意图;
22.图2为本申请实施例中一种报文传输方法的信令交互示意图;
23.图3为vxlan报文格式的示意图;
24.图4为本申请实施例中设备的主控板硬件结构示意图;
25.图5为本申请实施例中设备的接口板硬件结构示意图;
26.图6为本申请实施例中一种设备的硬件结构示意图;
27.图7为本申请实施例中一种报文传输装置的结构示意图。
具体实施方式
28.本申请提供了一种报文传输方法,用于解决一个终端设备(例如虚拟机,服务器,个人计算机,掌上电脑等)多归接入多个接入设备的场景终端设备收到多份报文的问题。以下结合附图,以vxlan网络为例说明本申请提供的报文传输方法。
29.如图1所示,为本申请实施例提供的一种vxlan网络的结构示意图。该vxlan网络叠加在叶-脊(leaf-spine)结构的数据中心网络上。该数据中心网络包括叶子层和骨干层,叶子层包括多个叶子设备,例如图中的leaf1到leaf4,该骨干层包括一个或多个脊设备(图中示出了一个),每个叶子设备通过脊设备与其他叶子设备通信。每个终端设备可以接入一个叶子设备(称为单归)或同时接入多个叶子设备(称为多归)。本申请关注的是一个终端设备接入多个叶子设备的场景,例如,虚拟机(virtual machine,vm)1多归接入leaf1和leaf2,vm2多归接入leaf3和leaf4,则leaf1和leaf2属于同一个多归接入组,leaf3和leaf4属于同一个多归接入组。
30.在如图1所示vxlan网络中,leaf1至leaf4上可以各自部署相应的vtep(分别为vtep1、vtep2、vtep3以及vtep4)。其中,不同vtep具有不同的ip地址,而vm1与vm2之间进行通信时的报文通过leaf节点上的vtep进行传输。
31.以vm1向vm2传输报文为例,vm1可以将原始报文发送给leaf1节点上的vtep1(当然,也可以是发送给leaf2节点上的vtep2,此处以vtep1进行示例性说明),vtep1可以对接收到的原始报文封装vxlan头,得到vxlan报文,然后,通过查找本地mac表可以确定将vxlan报文发送至vtep3(报文可以经由图1中的spine传输至vtep3中,此处假设发送给vtep3,实际应用中也可以是发送给vtep4)。vtep3对接收到的vxlan报文进行解封装处理,得到原始报文,并通过查找本地的mac表中的相应表项可以确定将该原始报文发送给vm2,从而实现vm1发送的原始报文能够传输至vm2。
32.通常情况下,如果vtep1与vtep3的本地mac表中均存在针对于vm2的转发表项,则报文可以基于该vtep1与vtep3的本地mac表中的相应表项成功传输至vm2中。但是,当vtep1本地mac表中不存在针对于vm2的转发表项时,vtep1通常是查找头端复制列表,并根据头端复制列表对报文进行复制及vxlan封装,生成发送至vtep3以及vtep4的广播未知单播组播(broadcast,unknown-unicast,multicast,bum)报文,并将该bum报文发送至vtep3以及vtep4。这样,vtep3以及vtep4均可以接收到一份bum报文,并且,若vtep3以及vtep4本地的mac表项中均保存有针对于vm2的转发表项,则vtep3以及vtep4分别可以向vm2转发报文,从而使得vm2接收到两份重复报文,造成网络资源浪费。
33.或者,当vtep1本地mac表中保存有针对于vm2的转发表项时,vtep1可以向vtep3或者vtep4发送单播报文,比如可以是通过负载分担的方式确定将单播报文发送给vtep3或发送给vtep4等。此时,如果vtep3接收到报文而vtep3本地mac表中并未保存有针对于vm2的转发表项时,vtep3通常会触发指定转发者(designatedforwarder,df)功能,当该vtep3不是vm2的df时,则vtep3不会向vm2发送报文,而作为vm2的df的vtep4,其因没有收到vtep1发送的单播报文而无法向vm2发送报文,最终使得vm2接收不到vm1发送的报文。其中,df功能,是指在一个多归接入组中为每个vm指定一个vtep作为df,负责将报文转发给vm,其它的非df的vtep不会向接入的vm发送报文。
34.实际应用中,当vm2为迁移后的vm或者是新增的vm时,vtep1与vtep3可能没有学习到该vm2的mac地址,容易出现vtep1的本地mac表或vtep3的本地mac表中不存在vm2对应的转发表项的情况,从而可能会导致vm2接收到多份重复的报文,或者是接收不到报文。但是,在报文转发过程中,发送多份报文或者丢弃报文的情况,都是需要避免的。
35.基于此,本申请实施例提供了一种报文传输方法,以使得vm2能够接收到vm1发送的报文,并且只接收到一份报文。具体实现时,在vm1将原始报文发送给vtep1后,vtep1可以对接收到的原始报文封装vxlan头,得到vxlan报文,并在该vxlan报文中设置用于指示第一报文是单播报文还是bum报文的报文类型指示。然后,vtep1可以将完成封装的vxlan报文发送给vtep3。vtep3在接收到vxlan报文后,可以从vxlan报文中获得报文类型指示。
36.这样,当vtep3根据该报文类型指示确定vtep3接收到的vxlan报文为单播报文时,表明vtep1只发送了一份vxlan报文,并且只有vtep3接收到该vxlan报文,此时,vtep3可以对vxlan报文进行解封装处理,并将所得到的原始报文直接发送给vm2,以使得vm2能够获得原始报文,否则,vm2无法从其它vtep中获取到该原始报文,从而可以避免报文丢失。
37.而当vtep3根据该报文类型指示确定该vxlan报文为bum报文时,表明vtep1发送了多份vxlan报文,即除了vtep3接收该报文以外,还存在其它vtep也接收到该报文,因此,若确定vtep3为vm2的df时,则vtep3可以向vm2发送对vxlan报文进行解封装后所得到的原始报文,而若确定vtep3不是vm2的df时,则vtep3可以不用向vm2发送原始报文。这样,vm2只从作为df的vtep中接收到原始报文,而不会从其它vtep中接收原始报文,从而可以避免接收到多份相同的报文。
38.值得注意的是,图1所示的vxlan网络仅作为示例,并不用于进行限定。比如,实际应用中,本申请实施例所适用的vxlan网络中多归接入的设备除了可以是虚拟机vm以外,还可以是物理机等设备;又比如,本申请实施例所适用的vxlan网络中还可以支持虚拟机或者物理机的单归、三归、四归接入等。再比如,本申请实施例所适用的网络还可以为园区网络或者企业网络。
39.下面结合附图来详细说明本申请实施例中一种报文传输方法的各种非限定性具体实现方式。参阅图2,图2示出了本申请实施例中一种报文传输方法的信令交互示意图,该方法可以应用于如图1所示的vxlan网络中,具体可以包括:
40.s201:源设备向第二设备发送第二报文。
41.本实施例中,如图2所示,当源设备需要向另一设备(目的设备)发送报文时,可以是依次通过中间的第二设备以及第一设备将该报文传输至目的设备。示例性的,当本实施例应用于图1所示的vxlan网络中时,源设备具体可以是上述图1中需要向vm2发送报文的vm1,而目的设备可以是vm2,第一设备可以是图1中的vtep3或者是承载该vtep3的leaf3设备(当然,也可以是vtep4或者承载vtep4的leaf4设备),第二设备可以是图1中的vtep1或者是承载该vtep1的leaf1设备(当然,也可以是vtep2或者承载vtep2的leaf2设备)。
42.报文传输过程中,源设备可以将需要传输至目的设备的原始报文(以下称之为第二报文)发送给第二设备,以便由第二设备对第二报文进行相应的处理和转发。
43.s202:第二设备对第二报文进行封装,得到第一报文,该第一报文中包括报文类型指示,该报文类型指示用于指示第一报文是单播报文还是bum报文。
44.具体实现时,第二设备与第一设备之间可以基于隧道技术进行报文传输。第二设备作为隧道端点,可以为第二报文封装vxlan头,并在封装过程中根据所需发送的第一报文属于单播报文还是bum报文,在该vxlan头中设置相应的报文类型指示,以使得封装得到的第一报文中包括有该第一报文的类型指示。
45.在一种示例性的实施方式中,该报文类型指示,具体可以是位于vxlan头中的保留字段。如图3所示,第二设备在对第二报文进行封装时,可以在原始数据帧上依次添加vxlan头、用户数据报协议(user datagram protocol,udp)头、外层ip头和外层以太帧头,其中,vxlan头中可以包括24位的vxlan网络标识(vxlan network identifier,vni)字段和8位的vxlan标志位字段,其余字段均为保留字段,则可以利用该保留字段中的某一个或者多个字段来指示第一报文为单播报文还是bum报文。比如,可以定义vxlan标志位字段后的8位保留字段为bum标志位,并且定义该bum标志位的值为0时指示第一报文为单播报文,定义该保留字段的值为1或者其它非0值时指示第一报文为bum报文。相应的,第二设备在为第一报文封装vxlan头时,可以根据所需发送的报文是单播报文还是bum报文,在该保留字段设置相应的值(为0或者非0值),以使得第一报文中包括有报文类型指示。
46.上述实施方式中,是以定义字段的值的方式来指示第一报文的类型,而在另一些可能的实施方式中,也可以是基于第一报文的外层目的ip地址来指示接收到的报文为单播报文还是bum报文。如图3所示,在第二设备封装得到的第一报文的外层ip头中可以包括有目的端vtep的ip地址(当然,也可以同时包括有源端vtep的ip地址等)。若第二设备要发送单播报文,则第一报文的外层ip头中目的端vtep的ip地址可以为单个ip地址,从而第二设备可以仅向一个设备发送单播报文;而若第二设备要发送bum报文,则第一报文的ip头中的目的端vtep的ip地址为ip地址的范围,也即该目的端vtep的ip地址具体为该ip地址的范围中包括的多个vtep的ip地址,从而第二设备可以向该多个vtep发送bum报文。
47.而第二设备是发送单播报文还是bum报文,具体可以是由第二设备根据本地mac表的查询结果进行确定,即,如果第二设备从本地mac表中能够查找到与目的mac地址对应的表项,则第二设备可以发送单播报文,而若第二设备未能查找到与目的mac地址对应的表项,则第二设备可以发送bum报文。
48.具体实现时,第二设备在接收到源设备发送的第二报文后,可以获取该第二报文的目的mac地址,比如,可以是从该第二报文中解析出目的mac地址等,并从本地存储的mac表中查询是否记录有该目的mac地址对应的表项,其中,该目的mac地址对应的表项例如可以包括目的端vtep的ip地址;当第二设备从mac表中查找到与该目标地址对应的表项时,该第二设备可以确定向查找到的表项对应的出端口设备发送单播报文,相应的,第一报文中包括的报文类型指示具体可以是指示第一报文为单播报文;而当第二设备从mac表中查找不到与该目的mac地址对应的表项时,第二设备可以确定发送bum报文。
49.以图1所示的vm1向vm2发送报文为例,vm1将原始报文(即上述第二报文)发送给vtep1(即上述第二设备)后,vtep1可以查询如表1所示的本地mac表,由于查询到目的mac地址(也即vm2的mac地址)对应的表项(其出端口指向vtep3的ip地址,即出端口为隧道入口),则vtep1可以确定向vtep3发送单播报文,对原始报文进行封装所得到的报文(也即上述第一报文)中包括用于指示该报文为单播报文的报文类型指示。
50.表1
51.mac表项出端口vm2的mac地址vtep3的ip地址
52.当然,如果vtep的本地mac表中未记录有vm2的mac地址对应的表项,则vtep1可以确定要发送bum报文,并生成分别发送给vtep3以及vtep4的bum报文(也即为上述第一报文),所生成的bum报文中可以包括用于指示该报文为bum报文的报文类型指示。
53.实际应用中,当报文类型指示位于vxlan头中时,第二设备若从mac表中查找到与目的mac地址对应的表项,则可以在该vxlan头中的相应保留字段处设置用于指示单播报文的报文类型指示,若未查找到与目的mac地址对应的表项,则可以在该vxlan头中的相应保留字段处设置用于指示bum报文的报文类型指示。
54.当报文类型指示为第一报文的外层目的ip地址时,第二设备若从mac表中查找到与目的mac地址对应的表项,则可以将查找到的表项对应的ip地址作为外层目的ip地址,并完成报文封装,从而该单个目的ip地址可以用于指示第一报文为单播报文,若未查找到与目的mac地址对应的表项,则可以将组播ip地址作为外层目的ip地址,从而该组播ip地址可以用于指示第一报文为bum报文。
55.需要说明的是,实际应用中第二设备也可以是通过其它的方式确定是要发送单播报文还是bum报文。比如,当第二设备被配置为域内组播时,则可以直接生成bum报文,而可以不用通过查找mac表项的方式确定发送报文的类型。
56.相应的,第二设备在发送第一报文之前,还可以预先确定出向哪个设备发送报文。作为一种示例,当第二设备从mac表中查找到与目的mac地址对应的单个表项时,则该表项所指示的出端口设备即为第一设备。实际应用中,第二设备从mac表中所查找到的与目的mac地址对应的表项可能存在多个,对应于多个出端口设备。比如,在图1所示的vxlan网络中,vtep1从本地mac表中可以查找到与vm2的mac地址对应的表项分别为vtep3的ip地址以及vtep4的ip地址。此时,可以对多个出端口设备进行负载负担,具体可以是基于hash(哈希)算法从多个出端口设备中确定出接收第一报文的设备,所确定出的设备即为上述第一设备。而当第二设备从mac表中查找不到与目的mac地址对应的表项时,则第二设备可以将与该第二设备通信的二层网络设备作为第一设备。其中二层网络设备,是指通过mac寻址即可实现与第二设备进行通信的网络设备。
57.s203:第二设备向第一设备发送第一报文。
58.本实施例中,第二设备在封装得到第一报文后,可以是基于传统的ip协议向第一设备发送该第一报文。
59.s204:第一设备对接收到的第一报文进行解封装,获取第二报文,并根据第一报文中包括的报文类型指示确定该第一报文为单播报文还是bum报文。
60.由于第一报文是对第二报文进行封装后而得到,因此,第一设备在接收到第一报文后,可以对该第一报文进行相应的解封装处理,得到第二报文。
61.并且,如果预先定义或者协商报文类型指示位于该第一报文的目标字段中,如第一报文vxlan头中的保留字段,则可以从第一报文目标字段中获取该报文类型指示,并根据该报文类型指示确定第一报文为单播报文还是为bum报文。比如,vxlan头中的一个或者多个保留字段预先可以被定义为bum标志位,当该bum标志位的值为1时,可以确定该第一报文为bum报文,而当该bum标志位的值为0时,可以确定该第一报文为单播报文。
62.如果预先定义或者协商报文类型指示具体为第一报文中的目的ip地址,则可以从该第一报文中解析出目地ip地址表征的是单个ip的地址还是组播ip地址(即表征多个ip地址的范围段)。当目的ip地址为单个ip的地址时,第一设备可以确定该第一报文为单播报文,则当目标地址为组播ip地址时,第一设备可以确定第一报文为bum报文。
63.s205:当第一设备确定该第一报文为单播报文,或者,第一设备确定该第一报文为bum报文且该第一设备为目的设备的df时,第一设备向目的设备发送第二报文。
64.本实施例中,当第一设备确定第一报文为单播报文时,表明第二设备仅向该第一设备发送了该第一报文,因此,为提高目的设备获得源设备发送的第二报文的成功率,第一设备可以将对第一报文解封装处理所得到的第二报文直接发送该目的设备。具体的,当第一设备从本地mac表中查找到与目的mac地址对应的表项后,可以根据该表项将该第二报文发送给目的设备,而当第一设备查找不到与目的mac地址对应的表项后,可以向接入的设备均发送该第二报文,由于目的设备多归接入的网络设备包括该第一设备,因此,目的设备通常能够从该第一设备处接收到第二报文。
65.这样,无论第一设备的本地mac表中是否包括该目的mac地址对应的表项,目的设
备均可以接收到第二报文,从而可以避免当本地mac表中未记录有目的mac地址的表项时,由于该第一设备并非为目的设备的df而使得第一设备不向目的设备发送第二报文的情况,进而也就可以避免报文丢失(即目的设备无法接收到报文)。
66.当第一设备确定第一报文为bum报文时,表明第二设备同时向多个设备发送了bum报文,此时,由于目的设备多归接入多个网络设备(其中包括第一设备),目的设备可以从多个网络设备处接收报文。基于此,为了避免目的设备从多个网络设备处接收到多份第二报文,可以触发df选举功能,即为目的设备指定一个网络设备进行报文转发(指定的网络设备为df),而目的设备多归接入的其余网络设备不能向该目的设备发送报文。基于此,第一设备在确定第一报文为bum报文时,还可以确定第一设备是否为目的mac地址所表征的目的设备对应的df,如果是,则第一设备可以将第二报文发送给目的设备,而如果不是,则第一设备可以不向该目的设备发送第二报文,比如可以丢弃第二报文等。这样,虽然目的设备多归接入多个网络设备,但是通常仅会从该目的设备对应的df处接收到第二报文,从而可以避免出现多包的情况(即目的设备接收到多份重复的报文)。
67.可以理解,由于第一设备在确定接收到的第一报文为单播报文时,无论本地mac表中是否记录有该目的mac地址对应的表项,均可以将该第二报文发送给目的设备,并且,第一设备在确定接收到的第一报文为bum报文时,仅在第一设备作为目的设备的df时才向该目的设备发送第二报文,这使得无论第一设备与第二设备上的本地mac表是否记录有目的mac地址对应的表项,目的设备能够接收到第二报文,并且仅会接收到一份第二报文,从而可以避免出现丢包或者多包的情况。
68.对于第一设备与第二设备上mac表中是否记录有目的mac地址对应的表项的场景,第一设备与第二设备可以存在多种报文发送行为的组合,具体如表2所示:
69.表2
[0070][0071][0072]
其中,上述表格中的“第一mac表记录”和“第一mac表未记录”分别表征第一设备上的mac表中记录有目的mac地址对应的表项和未记录有目的mac地址对应的表项,“第二mac表记录”和“第二mac表未记录”分别表征第二设备上的mac表中记录有目的mac地址对应的表项和未记录有目的mac地址对应的表项,第二设备的转发行为中的“单播报文”表征第二设备向第一设备发送单播报文,“bum报文”表征第二设备向第一设备发送bum报文,第一设备的转发行为中的“单播报文”表征第一设备根据第一mac表中的相应表项向目的设备发送
报文,“df发送”表征第一设备为目的设备对应的df时才向目的设备发送报文,“跳过df检查发送”表征第一设备无论是否为目的设备对应的df均向目的设备发送报文。
[0073]
值得注意的是,在一个实施方式中,上述方法实施例中的第一设备和/或第二设备,可以包括主控板与接口板,其中,主控板与接口板中的处理器可以协同配合,执行第一设备或者第二设备所执行的上述动作,并控制接口板中以太网交换芯片(lan switch,lsw)的报文转发行为。具体的,参阅图4和图5,图4示出了主控板的硬件结构示意图,图5示出了接口板的硬件结构示意图。
[0074]
如图4所示,主控板可以包括有处理器1、以太网接口(用于管理网口)、物理层以太网接口1、连接接口板处理器的以太网接口、易失性存储器1(如随机存取存储器ram等)以及非易失性存储器1(如闪存flash等)。其中,处理器1分别与易失性存储器1、非易失性存储器1、以太网接口(用于管理网口)和连接接口板处理器1的以太网接口连接,而以太网接口(用于管理网口)与物理层以太网接口1连接,连接接口板处理器2的以太网接口与物理层以太网接口2连接。
[0075]
如图5所示,接口板可以包括有处理器2、连接主控板处理器1的以太网接口、lsw、物理层以太网接口3、易失性存储器2以及非易失性存储器2。其中,处理器2分别与易失性存储器2、非易失性存储器2、lsw和连接主控板处理器1的以太网接口连接,易失性存储器3和lsw连接。
[0076]
处理器1和处理器2分别可以是主控板和接口板的控制单元,其运行的程序以及静态配置参数可以保存于相应的非易失性存储器中,而程序运行时所执行的代码以及相关数据可以放置于相应的易失性存储器中。处理器1与处理器2可以协同完成上述方法实施例中第一设备或者第二设备的相关操作,并对lsw的转发行为进行有效控制,同时,还可以控制lsw进行初始化、业务表项下发、协议报文收发、各类中断(含端口上线、下线状态处理)等。并且,lsw可选有外置易失性存储器3,该易失性存储器3可以用于存放第一设备或者第二设备所需发送的报文。在一些应用场景中,该易失性存储器3还可以缓解lsw芯片内部缓存不足的问题。lsw连接的物理层以太网接口3可以与主控板上的物理层以太网接口2完成光口或电口的以太网接口对接。
[0077]
此外,对本申请实施例中还提供了上述第一设备和/或第二设备的另一种硬件结构的示意图。参阅图6,图6示出了本申请实施例中另一种设备的硬件结构示意图。
[0078]
该设备可以是上述方法实施例中的第一设备,该设备可以包括至少一个处理器601以及至少一个存储器602。处理器601可以与存储器602相连,例如可以通过如图6所示的总线603相连。当然,实际应用中,处理器601与存储器602之间的连接可以是包括各类接口、传输线或总线等,本实施例对此不做限定。
[0079]
该存储器602可以用于存储计算机程序或指令;
[0080]
该处理器601可以用于执行该计算机程序或指令,并根据所述计算机程序或指令执行如下步骤:
[0081]
接收来自第二设备的第一报文,所述第一报文包括报文类型指示,所述报文类型指示用于指示所述第一报文为单播报文或广播未知单播多播bum报文;
[0082]
当根据所述报文类型指示确定所述第一报文为所述单播报文时,或者,当根据所述报文类型指示确定所述第一报文为所述bum报文,且所述第一设备为目的设备的指定转
发者df时,向目的设备发送第二报文;
[0083]
其中,所述第二报文为所述第一设备对所述第一报文进行解封装后所得到的报文,所述目的设备多归接入多个网络设备,所述多个网络设备中包括所述第一设备。
[0084]
在一些可能的实施方式中,所述报文类型指示位于所述第一报文中的目标字段,和/或,所述报文类型指示为所述第一报文经过组播隧道封装后所携带的组播地址。
[0085]
在一些可能的实施方式中,所述第一报文为包括虚拟可扩展局域网vxlan头的vxlan报文,所述目标字段具体为所述vxlan头中的保留字段。
[0086]
在一些可能的实施方式中,处理器601还可以根据所述计算机程序或指令执行如下步骤:
[0087]
当根据所述报文类型指示确定所述第一报文为所述bum报文,且所述第一设备并非为所述目的设备的df时,不向所述目的设备发送第二报文。
[0088]
需要说明的是,本申请中的处理器可以包括但不限于以下至少一种:中央处理单元(central processing unit,cpu)、微处理器、数字信号处理器(digital signal processing,dsp)、微控制器(microcontroller unit,mcu)、或人工智能处理器等各类运行软件的计算设备,每种计算设备可包括一个或多个用于执行软件指令以进行运算或处理的核。该处理器可以是个单独的半导体芯片,也可以跟其他电路一起集成为一个半导体芯片,例如,可以跟其他电路(如编解码电路、硬件加速电路或各种总线和接口电路)构成一个片上系统(system-on-a-chip),或者也可以作为一个专用集成电路(application-specific integrated circuit,asic)的内置处理器集成在所述asic当中,该集成了处理器的asic可以单独封装或者也可以跟其他电路封装在一起。该处理器除了包括用于执行软件指令以进行运算或处理的核外,还可进一步包括必要的硬件加速器,如现场可编程门阵列(field programmable gate array,fpga)、可编程逻辑器件(programmable logic device,pld)、或者实现专用逻辑运算的逻辑电路。
[0089]
本申请实施例中的存储器,可以包括如下至少一种类型:只读存储器(read-only memory,rom)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,ram)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electrically erasable programmable-only memory,eeprom)。在某些场景下,存储器还可以是只读光盘(compact disc read-only memory,cd-rom)或其他光盘存储、光碟存储介质、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
[0090]
存储器可以是独立存在,与处理器相连。其中,存储器能够存储执行本申请实施例的技术方案的程序代码,并由处理器来控制执行,被执行的各类计算机程序代码也可被视为是处理器的驱动程序。例如,处理器用于执行存储器中存储的计算机程序代码,从而实现本申请实施例中的技术方案。
[0091]
另外,本申请实施例还提供了一种报文传输装置,该装置700可以应用于上述方法实施例中的第一设备,该装置700具体可以包括接收模块701,处理模块702和发送模块703:
[0092]
接收模块701,用于接收来自第二设备的第一报文,所述第一报文包括报文类型指示,所述报文类型指示用于指示所述第一报文为单播报文或广播未知单播多播bum报文;
[0093]
处理模块702,用于当根据所述报文类型指示确定所述第一报文为所述单播报文时,或者,当根据所述报文类型指示确定所述第一报文为所述bum报文,且所述第一设备为目的设备的指定转发者df时,通过发送模块703向目的设备发送第二报文;
[0094]
其中,所述第二报文为所述第一设备对所述第一报文进行解封装后所得到的报文,所述目的设备多归接入多个网络设备,所述多个网络设备中包括所述第一设备。
[0095]
在一些可能的实施方式中,所述报文类型指示位于所述第一报文中的目标字段,和/或,所述报文类型指示为所述第一报文经过组播隧道封装后所携带的组播地址。
[0096]
在一些可能的实施方式中,所述第一报文为包括虚拟可扩展局域网vxlan头的vxlan报文,所述目标字段具体为所述vxlan头中的保留字段。
[0097]
在一些可能的实施方式中,处理模块702还用于当所述第一设备根据所述报文类型指示确定所述第一报文为所述bum报文,且所述第一设备并非为所述目的设备的df时,确定不向所述目的设备发送第二报文。
[0098]
需要说明的是,上述装置各模块之间的信息交互、执行过程等内容,由于与本申请实施例中方法实施例基于同一构思,其带来的技术效果与本申请实施例中方法实施例相同,具体内容可参见本申请实施例前述所示的方法实施例中的叙述,此处不再赘述。
[0099]
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置,模块和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0100]
本申请中“的(英文:of)”,相应的“(英文corresponding,relevant)”和“对应的(英文:corresponding)”有时可以混用,应当指出的是,在不强调其区别时,其所要表达的含义是一致的。
[0101]
需要说明的是,本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其他实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
[0102]
本申请中,“至少一个”是指一个或者多个。“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b的情况,其中a,b可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。另外,为了便于清楚描述本申请实施例的技术方案,在本申请的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。
[0103]
本申请实施例描述的系统架构以及业务场景是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域普通技术人员可知,随着网络架构的演变和新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
[0104]
在本申请所提供的几个实施例中,应该理解到,所揭露的装置、设备和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的
划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0105]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0106]
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0107]
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1