1.本技术涉及通信技术领域,具体而言,涉及一种表项处理方法、系统、装置、电子设备及存储介质。
背景技术:2.在分布式交换机中,通常数据转发依赖于建立的各种表项,如三层转发所需要的地址解析协议(address resolution protocol,arp)表以及二层转发依赖的媒体介质访问控制(media access control address,mac)地址表等,通常各板卡间需要保持表项信息的同步,即主动学习到表项的板卡需要将表项信息同步至其他板卡。以交换机中mac地址表为例进行说明,软件学习基本上是利用交换芯片提供的mac地址表项信息以摘要信息的形式上送至cpu,收到该摘要信息的板卡作为源端,再将学习到的mac地址表项信息从源端同步到目的端,确保所有板卡的mac地址表项信息是一致的。此时,源端是主动学习的一端,目的端是被动学习(同步)的一端。
3.而后续为了确保板卡中的mac地址表项信息一致,一般需要对mac地址表项信息进行一致性处理,现有技术在处理时,一般是由源端将mac地址表项信息发送给目的端,然后目的端收到mac地址表项信息后,对本端存储的mac地址表项进行相应处理,而由于mac地址表项信息通常比较大,所以需要耗费较多的时间来发送mac地址表项信息,使得其跨板卡发送速度比较慢,影响其整体对mac地址表项信息的处理效率。
技术实现要素:4.本技术实施例的目的在于提供一种表项处理方法、系统、装置、电子设备及存储介质,用以改善现有技术中需要耗费较多的时间来发送表项信息,使得其跨板卡发送速度比较慢,影响其整体对表项信息的处理效率的问题。
5.第一方面,本技术实施例提供了一种表项处理方法,应用于源端板卡,所述方法包括:
6.获取需要处理的多条待同步表项中每条待同步表项对应的表项标识,其中,表项标识为所述源端板卡在学习到对应的待同步表项后创建的;
7.采用位图形式记录多个表项标识,其中,所述位图中的每个位用于表示对应的一个表项标识;
8.向目的端板卡发送携带有所述位图的通知报文,其中,所述通知报文用于指示所述目的端板卡对所述位图中的多个表项标识对应的待同步表项进行相应处理。
9.在上述实现过程中,将需要处理的待同步表项的表项标识采用位图的形式进行记录,然后向目的端板卡发送携带有位图的通知报文,以使得目的端板卡对位图中所指示的待同步表项进行相应处理,由于位图中可以采用一个位表示一个表项标识,所以通过一个位图就可以表示多个表项标识,而原始的一条待同步表项的表项标识所占用的字节数较多,且通知报文的长度有限,所以如果直接发送表项标识,则可能一条表项标识就需要分多
次发送,而本技术中直接采用位图就可以发送多个表项标识,从而使得源端板卡与目的端板卡之间减少信息传递时间,提高信息传输效率,且目的端板卡也可以更快地对多条待同步表项进行处理,整体处理效率也更高。
10.可选地,所述向目的端板卡发送携带有所述位图的通知报文,包括:
11.判断所述位图的长度是否超过单个报文的最大传输长度mtu;
12.若是,则将所述位图进行切片,获得多片位图以及每片位图对应的切片标识;
13.将每片位图以及对应的切片标识封装在一个通知报文中,共获得多个通知报文;
14.向目的端板卡发送所述多个通知报文。
15.在上述实现过程中,在位图的长度较长时,对位图进行切片,从而可以避免位图超过报文长度,报文发送失败的问题。
16.可选地,所述获取需要处理的多条待同步表项中每条待同步表项对应的表项标识,包括:
17.检测本端地址数据库中本地保存的各条待同步表项的老化时间;
18.确定老化时间已经到期的多条待同步表项为需要进行老化处理的多条待同步表项;
19.获取所述需要进行老化处理的多条待同步表项对应的表项标识。
20.在上述实现过程中,在需要对待同步表项进行老化处理时,在位图中携带需处理的多个待同步表项的表项标识,可使得老化处理的效率更高。
21.可选地,所述获取需要处理的多条待同步表项中每条待同步表项对应的表项标识,包括:
22.接收地址删除消息,所述地址删除消息包括需要删除的待同步表项的表项标识;
23.根据所述地址删除信息确定需要进行删除处理的多条待同步表项的表项标识。
24.在上述实现过程中,在需要对待同步表项进行删除处理时,在位图中携带需处理的多个待同步表项的表项标识,可使得删除处理的效率更高。
25.可选地,所述获取需要处理的多条待同步表项中每条待同步表项对应的表项标识,包括:
26.读取本端地址数据库中通过主动学习到的待同步表项;
27.将主动学习到的待同步表项确定为需要进行同步学习处理的多条待同步表项;
28.获取所述需要进行同步学习处理的多条待同步表项的表项标识。
29.在上述实现过程中,在需要对待同步表项进行同步学习处理时,在位图中携带需处理的多个待同步表项的表项标识,可使得同步学习处理的效率更高。
30.可选地,在向目的端板卡发送携带有所述位图的通知报文之后,还包括:
31.接收所述目的端板卡的回复报文,所述回复报文中携带所述目的端板卡在其地址数据库中未查找到的所述位图中待同步表项的表项标识;
32.根据所述回复报文中的表项标识获取对应的待同步表项,并重新将获取到的待同步表项发送给所述目的端板卡。
33.在上述实现过程中,通过表项标识来确定是否有缺失的待同步表项,而不是发送全部的待同步表项的详细信息,由于表项标识的数据量较少,这样可以有效提高数据传输效率,从而可以提高源端板卡与目的端板卡之间的表项同步效率。
34.可选地,在获取需要处理的多条待同步表项中每条待同步表项对应的表项标识之前,还包括:
35.在学习到新的待同步表项时,创建所述新的待同步表项的表项标识;
36.将所述新的待同步表项以及对应的表项标识一并发送给所述目的端板卡。
37.在上述实现过程中,通过创建表项标识,如此可在对表项进行同步处理时,无需发送详细的表项信息,只需发送表项标识即可,减少数据传输量,可有效提高表项处理效率。
38.第二方面,本技术实施例提供了一种表项处理系统,所述系统包括源端板卡和目的端板卡;
39.所述源端板卡,用于获取需要处理的多条待同步表项中每条待同步表项对应的表项标识,其中,表项标识为所述源端板卡在学习到对应的待同步表项后所创建的;
40.所述源端板卡,用于采用位图形式记录多个表项标识,其中,所述位图中的每个位用于表示对应的一个表项标识;
41.所述源端板卡,用于向目的端板卡发送携带有所述位图的通知报文;
42.所述目的端板卡,用于接收所述通知报文,并对所述位图中的多个表项标识对应的待同步表项进行相应处理。
43.第三方面,本技术实施例提供了一种表项处理装置,运行于源端板卡,所述装置包括:
44.表项标识获取模块,用于获取需要处理的多条待同步表项中每条待同步表项对应的表项标识,其中,表项标识为所述源端板卡在学习到对应的待同步表项后所创建的;
45.位图记录模块,用于采用位图形式记录多个表项标识,其中,所述位图中的每个位用于表示对应的一个表项标识;
46.报文发送模块,用于向目的端板卡发送携带有所述位图的通知报文,其中,所述通知报文用于指示所述目的端板卡对所述位图中的多个表项标识对应的待同步表项进行相应处理。
47.可选地,所述报文发送模块,用于判断所述位图的长度是否超过单个报文的最大传输长度mtu;若是,则将所述位图进行切片,获得多片位图以及每片位图对应的切片标识;将每片位图以及对应的切片标识封装在一个通知报文中,共获得多个通知报文;向目的端板卡发送所述多个通知报文。
48.可选地,所述表项标识获取模块,用于检测本端地址数据库中本地保存的各条待同步表项的老化时间;确定老化时间已经到期的多条待同步表项为需要进行老化处理的多条待同步表项;获取所述需要进行老化处理的多条待同步表项对应的表项标识。
49.可选地,所述表项标识获取模块,用于接收地址删除消息,所述地址删除消息包括需要删除的待同步表项的表项标识;根据所述地址删除信息确定需要进行删除处理的多条待同步表项的表项标识。
50.可选地,所述表项标识获取模块,用于读取本端地址数据库中通过主动学习到的待同步表项;将主动学习到的待同步表项确定为需要进行同步学习处理的多条待同步表项;获取所述需要进行同步学习处理的多条待同步表项的表项标识。
51.可选地,所述装置还包括:
52.表项重发模块,用于接收所述目的端板卡的回复报文,所述回复报文中携带所述
目的端板卡在其地址数据库中未查找到的所述位图中待同步表项的表项标识;根据所述回复报文中的表项标识获取对应的待同步表项,并重新将获取到的待同步表项发送给所述目的端板卡。
53.可选地,所述装置还包括:
54.表项同步模块,用于在学习到新的待同步表项时,创建所述新的待同步表项的表项标识;将所述新的待同步表项以及对应的表项标识一并发送给所述目的端板卡。
55.第四方面,本技术实施例提供一种电子设备,包括处理器以及存储器,所述存储器存储有计算机可读取指令,当所述计算机可读取指令由所述处理器执行时,运行如上述第一方面提供的所述方法中的步骤。
56.第五方面,本技术实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时运行如上述第一方面提供的所述方法中的步骤。
57.本技术的其他特征和优点将在随后的说明书阐述,并且,部分地从说明书中变得显而易见,或者通过实施本技术实施例了解。本技术的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
58.为了更清楚地说明本技术实施例的技术方案,下面将对本技术实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本技术的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
59.图1为本技术实施例提供的一种表项处理系统的结构示意图;
60.图2为本技术实施例提供的一种表项处理方法的流程图;
61.图3为本技术实施例提供的一种表项处理装置的结构框图;
62.图4为本技术实施例提供的一种用于执行报文处理方法的电子设备的结构示意图。
具体实施方式
63.下面将结合本技术实施例中附图,对本技术实施例中的技术方案进行清楚、完整地描述。
64.需要说明的是,本发明实施例中的术语“系统”和“网络”可被互换使用。“多个”是指两个或两个以上,鉴于此,本发明实施例中也可以将“多个”理解为“至少两个”。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,字符“/”,如无特殊说明,一般表示前后关联对象是一种“或”的关系。
65.本技术中将需要处理的待同步表项的表项标识采用位图的形式进行记录,然后向目的端板卡发送携带有位图的通知报文,以使得目的端板卡对位图中所指示的待同步表项进行相应处理,由于位图中可以采用一个位表示一个表项标识,所以通过一个位图就可以表示多个表项标识,而原始的一条待同步表项的表项标识所占用的字节数较多,且通知报文的长度有限,所以如果直接发送表项标识,则可能一条表项标识就需要分多次发送,而本
申请中直接采用位图就可以发送多个表项标识,从而使得源端板卡与目的端板卡之间减少信息传递时间,提高信息传输效率,且目的端板卡也可以更快地对多条待同步表项进行处理,整体处理效率也更高。
66.下面通过各个附图对上述方法的实现过程进行详细介绍。
67.请参照图1,图1为本技术实施例提供的一种表项处理系统100的结构示意图,该系统100包括源端板卡110和目的端板卡120。
68.源端板卡110,用于获取需要处理的多条待同步表项中每条待同步表项对应的表项标识,其中,表项标识为所述源端板卡110在学习到对应的待同步表项后所创建的;
69.所述源端板卡110,用于采用位图形式记录多个表项标识,其中,所述位图中的每个位用于表示对应的一个表项标识;
70.所述源端板卡110,用于向目的端板卡120发送携带有所述位图的通知报文;
71.所述目的端板卡120,用于接收所述通知报文,并对所述位图中的多个表项标识对应的待同步表项进行相应处理。
72.其中,源端板卡110和目的端板卡120可以是相对而言的,如对于待同步表项的老化、删除、同步等动作,都是由源端板卡110发起的。在一些情况中,源端板卡110也可以作为目的端板卡120,目的端板卡120也可以作为源端板卡110。如可以理解为主动学习到待同步表项,然后板卡可对主动学习到的待同步表项触发老化、删除、同步等动作,此时该板卡可认为是源端板卡110,与该源端板卡110连接的其他板卡可认为是目的端板卡120。例如,板卡1接收到终端设备发送过来的流量后,从流量中学习到新的待同步表项,此时板卡1将新的待同步表项保存在本端地址数据库中,然后发送给其他板卡,如发给与板卡1连接的板卡2和板卡3学习,此时,板卡2和板卡3可认为是被动学习,板卡1是主动学习,板卡1可认为是源端板卡110,板卡2和板卡3可认为是目的端板卡120;而若板卡2或板卡3接收到其连接的终端设备发送的流量,从中学习到新的待同步表项,板卡2或板卡3将新的待同步表项同步给其他板卡学习,如板卡1,此时,板卡2或板卡3是主动学习,板卡1是被动学习,则可以认为板卡2或板卡3是源端板卡110,板卡1是目的端板卡120。也就是说,在不同情况下,源端板卡110和目的端板卡120之间的身份可以相互交换。
73.请参照图2,图2为本技术实施例提供的一种表项处理方法的流程图,该方法由源端板卡执行,包括如下步骤:
74.步骤s210:获取需要处理的多条待同步表项中每条待同步表项对应的表项标识。
75.其中,待同步表项可以是mac地址表项或arp表项等其他需要同步处理的表项,表项标识为源端板卡在学习到对应的待同步表项后所创建的。表项标识可以用于标识每条待同步表项,为了减少存储空间的占用,其可以是线性数字编号,如1,2,3等。
76.源端板卡可以自动触发对主动学习到的待同步表项进行删除、老化、同步等处理,由于在实际应用中,需要删除、老化、同步等处理的待同步表项的数量庞大,在传统软件学习过程中,会发送原始的表项数据给目的端板卡,以此使得目的端板卡可以找到需要处理的待同步表项,这种方式需要发送的数据量较大,处理效率较低。所以,本技术实施例中,为了提高删除、老化、同步等处理的处理效率,源端板卡在学习到待同步表项后,构建待同步表项对应的表项标识。
77.所以,在需要同时处理多条待同步表项时,可以直接获取这些待同步表项的表项
标识。
78.步骤s220:采用位图形式记录多个表项标识。
79.其中,位图即bitmap,位图的基本思想就是用一个bit为来标记某个元素对应的value,而本技术中,为了节省发送的数据量,位图中的每个位(即每个bit)用于标识对应的一个表项标识,例如,在位图中,若需要对多个表项标识进行标记,则在位图对应的bit位置1,如下表所示:
80.10100100
81.在上表中,第一个bit位对应表示的表项标识为0,第二个bit位表示的表项表示为1,第八个bit位对应表示的表项标识为7,所以,在上表中,表示的多个表项标识包括2、5、7,若发送给目的端板卡的是该位图,则表示即需要对这3个表项标识对应的待同步表项进行处理,如此可节省数据传输量。例如,如果每个表项标识采用1个字节表示,那么3个表项标识需要占用3个字节,虽然直接发送表项标识相比直接发送表项信息更节省数据量,但是如果一个报文的长度为1个字节,那么3个表项标识就需要发送3个通知报文,而采用位图形式来记录,可以只用1个字节记录3个表项标识,只需发送一个通知报文即可,当然,实际上可以记录8个表项标识,这种记录方式可大大减少了通知报文发送的数量,提高了数据传输效率。
82.步骤s230:向目的端板卡发送携带有所述位图的通知报文。
83.为了指示目的端板卡统一对多条待同步表项进行处理,所以可以将位图封装为通知报文发送给目的端板卡,其中,通知报文用于指示目的端板卡对位图中的多个表项标识对应的待同步表项进行相应处理。
84.例如,目的端板卡接收到通知报文后,对通知报文进行解析,从中获取位图,然后从位图中解析出对应的表项标识,然后目的端板卡可从自身的地址数据库中查找表项标识对应的待同步表项(其中,地址数据库中存储有待同步表项以及各个表项对应的表项标识),从而获得待同步表项的详细信息,进而可对目的端板卡的交换芯片和地址数据库中的待同步表项进行相应处理。
85.在上述实现过程中,将需要处理的待同步表项的表项标识采用位图的形式进行记录,然后向目的端板卡发送携带有位图的通知报文,以使得目的端板卡对位图中所指示的待同步表项进行相应处理,由于位图中可以采用一个位表示一个表项标识,所以通过一个位图就可以表示多个表项标识,而原始的一条待同步表项的表项标识所占用的字节数较多,且通知报文的长度有限,所以如果直接发送表项标识,则可能一条表项标识就需要分多次发送,而本技术中直接采用位图就可以发送多个表项标识,从而使得源端板卡与目的端板卡之间减少信息传递时间,提高信息传输效率,且目的端板卡也可以更快地对多条待同步表项进行处理,整体处理效率也更高。
86.在上述实施例的基础上,考虑到如果需要处理的待同步表项数量很大,如果采用位图来记录,可能会使得位图太长而超出单个报文的最大传输长度(maximum transmission unit,mtu),导致报文传输失败的问题。所以,为了解决该问题,则可以先判断位图的长度是否超过单个报文的最大传输长度mtu,若是,则将位图进行切片,获得多片位图以及每片位图对应的切片标识,将每片位图以及对应的切片标识封装在一个通知报文中,共获得多个通知报文,然后向目的端板卡发送这多个通知报文。
87.例如,系统中单个报文的最大传输长度mtu为4字节,而位图的长度为7字节,所以,可以将位图切为两片,其中一片的长度为4个字节,另一片的长度为3个字节,在进行分片时,其分片的长度应尽量等于单个报文的最大传输长度,这样在一次传输中能以最大数据量发送,当然,如果位图的长度没有超过mtu,则无需进行切片。为了使得目的端板卡能够还原出原始的位图,每片设置有对应的切片id,即切片标识,这样目的端板卡获取到多个通知报文后,可通过通知报文中的切片id加对应切片的位图即可恢复出原始的位图,然后从中获取表项标识。
88.另外,单个报文的mtu可以是源端板卡与目的端板卡预先协商好的,一般在一个系统中,各个板卡之间的mtu应该是相同的,当然也可以不同,如板卡1与板卡2之间的mtu为4个字节,而板卡1与板卡3之间的mtu为3个字节,在mtu为不同的情况下,还可以先确定不同的源端板卡与目的端板卡之间的mtu,然后再判断位图的长度是否超过对应的mtu,例如,源端板卡为板卡1,目的端板卡包括板卡2和板卡3,则可先确定板卡1与板卡2、板卡1和板卡3之间的mtu,然后判断位图的长度是否分别超过两个mtu,若超过,则可根据各自的mtu来对位图进行切片。
89.在上述实现过程中,在位图的长度较长时,对位图进行切片,从而可以避免位图超过报文长度,报文发送失败的问题。
90.下面针对待同步表项的各种处理方式分别进行说明,以mac地址表项为例进行说明。
91.每个板卡都可以通过主动学习获得mac地址表项,也可以通过被动学习获得mac地址表项,主动学习是指从外部流量中学习到mac地址表项,而被动学习是指从其他板卡中获得其他板卡主动学习到的mac地址表项。
92.每个板卡中可包括有地址管理单元、地址同步单元、地址向量管理单元、地址老化单元、缺失地址管理单元和地址数据库。这些软件单元和地址数据库可以认为是在板卡的cpu中。
93.其中,地址数据库可用于存储mac地址表项,包括mac地址、vlan和port等信息,还有每个mac地址表项的表项标识。地址管理单元主要用于处理地址学习、老化和删除等行为。地址老化单元主要用于周期性检查老化时间,删除超期老化的mac地址表项。地址同步单元主要用于在源端板卡周期性地向目的端板卡广播主动学习到的mac地址表项的表项标识,在目的端板卡收到同步信息后进行以下处理:若找到对应的mac地址表项,并刷新老化时间,若未找到对应的mac地址表项时,将其标记为缺失地址信息,并通告缺失地址管理单元继续处理。缺失地址管理单元主要负责向源端板卡请求目的端板卡缺失的mac地址表项。
94.对于源端板卡来说,可以通过主动学习获得对应的待同步表项,源端板卡在学习到新的待同步表项时,可创建该新的待同步表项的表项标识,然后将新的待同步表项以及对应的表项标识一并发送给目的端板卡,此时目的端板卡即被动学习到待同步表项。
95.例如,源端板卡的交换芯片通过流量学习到新的mac地址时,针对每个mac地址会形成一条pendiing表项,该表项可以理解为是一条临时表项,该表项也可由mac地址、vlan、port组成,但是状态是pendiing,即临时状态,针对pengdiing表项,交换芯片会将表项的摘要信息(如mac和vlan)或原始表项信息发送给cpu,当然,不同厂商对应的交换芯片向cpu发送的信息的形式不同,大多都是发送摘要信息,因为摘要信息更精简,可减少发送的信息
量。
96.cpu接收到摘要信息或原始表项信息后,可解析出其中的关键字段信息,如源mac地址和vlan信息,若cpu查找地址数据库中没有该表项信息,则将该表项写入地址数据库,并创建该表项的表项标识,表项标识可由源端板卡id、翻转id以及表项id构成,也可称为主动学习管理向量,其中,源端板卡id为本端板卡在机架上的槽位号,翻转id是一个扩展id,在表项id范围不够用时作扩展使用的,例如,表项id范围为0-255,那么对于0-255内的表项,其翻转id为0,对于255-512内的表项,其翻转id为1。
97.cpu在往地址数据库中写入对应的mac地址表项后,会往交换芯片中写入一条动态的mac地址表项,动态是指该mac地址表项配置有对应的老化时间,到期之后会自动老化。交换芯片可将创建的pendiing表项删除。
98.一般源端板卡的cpu每秒内会学习到很多mac地址表项,所以cpu可每秒向其他目的端板卡发送学习到的mac地址表项以及对应的表项标识,并且是以不可靠广播形式的方式发送给其他的目的端板卡,不可靠广播形式是指无需目的端板卡对源端板卡发送的信息进行回应,如此可避免源端板卡需要接收大量的回应信息而造成处理负担增大的问题。
99.目的端板卡在接收到源端板卡发送的待同步表项及其表项标识后,可记录对应的待同步表项的信息到本端的地址数据库中,然后创建该表项对应的主动学习管理向量和被动学习管理向量,其中,被动学习管理向量即为接收到的表项标识,如接收到其中一条mac地址表项的表项标识为(源端板卡1、翻转0、表项15),则被动学习管理向量为(源端板卡1、翻转0、表项15),而主动学习管理向量是基于本端板卡已有的表项数量来创建的,如本端板卡已有20条表项,则对应的主动学习管理向量为(源端板卡1、翻转0、表项35),该主动学习管理向量主要是用于本端板卡对表项进行检索时使用的。
100.目的端板卡在将接收到的mac地址表项写入到地址数据库中后,记录每条表项的老化时间。并且,将接收到的新的mac地址表项写入到目的端板卡的交换芯片中,此时写入的mac地址表项可以是动态表项,方便迁移,当然也可以是静态表项。
101.在上述实现过程中,通过创建表项标识,如此可在对表项进行同步处理时,无需发送详细的表项信息,只需发送表项标识即可,减少数据传输量,可有效提高表项处理效率。
102.在上述实施例的基础上,在需要对待同步表项进行老化处理时,源端板卡可检测本端地址数据库中本地保存的各条待同步表项的老化时间,确定老化时间已经到期的多条待同步表项为需要进行老化处理的多条待同步表项,然后获取需要进行老化处理的多条待同步表项对应的表项标识,在这种情况下,源端板卡发送给目的端板卡的通知报文即用于指示目的端板卡对位图中的多个表项标识对应的待同步表项进行老化处理。
103.例如,mac地址表项的老化是由源端板卡的交换芯片触发的,交换芯片在检测到存在老化时间已经到期的情况下,会将需要老化处理的mac地址表项信息发送给cpu处理,cpu接收到老化通知信息后,查找地址数据库中的mac地址表项以及对应的表项标识,然后将需要老化的mac地址表项的表项标识进行组装,组装为源端slot(即源端板卡id)+action为delete+多组(翻转id、切片id、表项id位图)方式,以不可靠广播形式向其他目的端板卡发送通知报文。
104.目的端板卡接收到通知报文后,将源端slot+多组(翻转id、切片id、表项id位图)还原为对应的主动学习管理向量,以便于根据主动学习管理向量在本端地址数据库中检索
该主动学习管理向量对应的mac地址表项,然后将地址数据库以及交换芯片中的mac地址表项进行老化处理,即删除。
105.当然,目的端板卡在上述被动学习到mac地址表项后,为每条表项记录有对应的老化时间,目的端板卡也可自己监控表项的老化时间,如周期性地扫描地址数据库,检测各表项的老化时间,若某条表项的老化时间到期时,还未接收到源端板卡发送的老化通知,则可自行对该表项进行老化处理。即老化处理可以在源端板卡和目的端板卡之间同时运行。
106.在上述实现过程中,在需要对待同步表项进行老化处理时,在位图中携带需处理的多个待同步表项的表项标识,可使得老化处理的效率更高。
107.在上述实施例的基础上,若需要对待同步表项进行删除处理时,源端板卡可以接收地址删除信息,地址删除信息包括需要删除的待同步表项的表项标识,然后根据地址删除信息确定需要进行删除处理的多条待同步表项的表项标识,在这种情况下,源端板卡发送给目的端板卡的通知报文则用于指示目的端板卡对位图中的多个表项标识对应的待同步表项进行删除处理。
108.例如,地址删除信息可以是管理终端发送给源端板卡的,用于指示需要对相应的mac地址表项进行删除,当然地址删除信息也可包含的是具体的表项信息,这样源端板卡的cpu可从地址数据库中检索到需要删除的mac地址表项,然后将mac地址表项对应的表项标识进行组装,如组装为源端slot+action为delete+多组(翻转id、切片id、表项id位图)方式,以不可靠广播形式向目的端板卡发送通知报文。
109.目的端板卡接收到通知报文后,将源端slot+(翻转id、切片id、表项id位图)进行还原为主动学习管理向量,以便于根据主动学习管理向量在本端地址数据库中检索该主动学习管理向量对应的mac地址表项,然后将地址数据库以及交换芯片中的mac地址表项进行删除。
110.在上述实现过程中,在需要对待同步表项进行删除处理时,在位图中携带需处理的多个待同步表项的表项标识,可使得删除处理的效率更高。
111.在上述实施例的基础上,在需要对待同步表项进行地址同步处理时,源端板卡可以读取本端地址数据库中通过主动学习到的待同步表项,然后将主动学习到的待同步表项确定为需要进行同步学习处理的多条待同步表项,然后获取需要进行同步学习处理的多条待同步表项的表项标识。在这种情况下,通知报文用于指示目的端板卡确定位图中的多个表项标识对应的待同步表项是否存在于目的端板卡的地址数据库中。
112.例如,源端板卡可以周期性读取地址数据库中本卡主动学习到的mac地址表项,或者为了减少周期性轮询,也可以提前创建好空的位图,然后在地址学习过程中在位图中填入所学习到的mac地址表项,如此可每次地址学习完后获得主动学习到的mac地址表项。源端板卡可根据mac地址表项对应的表项标识,组装为源端slot+action为sync+多组(翻转id、切片id、表项id位图);然后将组装好的源端slot+action为sync+多组(翻转id、切片id、表项id位图)封装到通知报文中广播至其他目的端板卡;如果表项id位图长度太大,可以根据单个报文的mtu将表项id位图切为多片,并标记切片id,每片封装为一个通知报文。
113.目的端板卡接收到通知报文后,从中获取对应的地址同步信息(源端slot+action为sync+多组(翻转id、切片id、表项id位图)),然后将源端slot+(翻转id、切片id、表项id位图)进行还原为主动学习管理向量;根据表项的主动学习管理向量查找地址数据库,匹配本
端的主动学习管理向量,当然也可直接匹配被动学习管理向量,也即匹配表项标识,获取对应的mac地址表项的详细信息。
114.找到对应的mac地址表项后,更新cpu的老化时间,更新方式为在原有的老化时间的基础上增加一个老化周期;如果存在未找到的mac地址表项,则将其通告至缺失地址管理单元进行后续处理。
115.目的端板卡的缺失地址管理单元收到缺失的待同步表项的通知消息后,向源端板卡发送对应的回复报文,回复报文中携带有目的端板卡在其地址数据库中未查找到的位图中待同步表项的表项标识,源端板卡接收到回复报文后,根据回复报文中的表项标识获取对应的待同步表项,并重新将获取到的待同步表项发送给目的端板卡。
116.可以理解地,源端板卡在将主动学习获得的mac地址表项同步学习给目的端板卡,由于网络原因或者数据在传输过程中丢失,所以,目的端板卡可能并没有获取到全部的mac地址表项,或者未将全部的mac地址表项写入到地址数据库中,例如,源端板卡向目的端板卡发送了10条mac地址表项,而目的端板卡只写入8条到地址数据库中,其中有2条丢失了,而由于在学习时,源端板卡是以不可靠广播形式发送的,所以目的端板卡被动学习到mac地址表项后,并不会向源端板卡发送反馈信息。所以,为了避免目的端板卡写入地址数据库中的mac地址表项有缺失,与源端板卡学习到的mac地址表项不一致的情况,源端板卡可每隔一定时间向目的端板卡发送主动学习到的mac地址表项的表项标识,这样目的端板卡可根据表项标识即可知晓有哪些mac地址表项缺失。
117.在有缺失后,可将缺失的mac地址表项的表项标识封装在回复报文中,如果缺失的mac地址表项较多时,可将其组装为源端slot+多组(翻转id、切片id、表项id位图)发送给源端板卡,这样源端板卡可重新将缺失的mac地址表项发送给目的端板卡。
118.在上述实现过程中,将待同步表项的同步学习改为推送的方式,减少同步学习的停等开销,即只需要定时发送表项标识即可使得目的端板卡知晓缺失的待同步表项,而不是发送全部的待同步表项的详细信息,由于表项标识的数据量较少,这样可以有效提高数据传输效率,从而可以提高源端板卡与目的端板卡之间的表项同步效率。
119.本技术实施例中的表项处理方法,通过创建待同步表项的表项标识,可减少原有大量的地址表项信息同步的信息量,同时开启分布式老化,即源端板卡和目的端板卡可同时开启老化处理,提高老化效率。并且在同步、老化、删除等处理中,发送的是表项标识对应的位图,由于位图的内容比较少,所以,使得每个通知报文能够携带的实际有效内容大幅增加,从而减少报文发送的个数,提高整体处理的效率。
120.请参照图3,图3为本技术实施例提供的一种表项处理装置300的结构框图,该装置300可以是源端板卡上的模块、程序段或代码。应理解,该装置300与上述图2方法实施例对应,能够执行图2方法实施例涉及的各个步骤,该装置300具体的功能可以参见上文中的描述,为避免重复,此处适当省略详细描述。
121.可选地,所述装置300包括:
122.表项标识获取模块310,用于获取需要处理的多条待同步表项中每条待同步表项对应的表项标识,其中,表项标识为所述源端板卡在学习到对应的待同步表项后所创建的;
123.位图记录模块320,用于采用位图形式记录多个表项标识,其中,所述位图中的每个位用于表示对应的一个表项标识;
124.报文发送模块330,用于向目的端板卡发送携带有所述位图的通知报文,其中,所述通知报文用于指示所述目的端板卡对所述位图中的多个表项标识对应的待同步表项进行相应处理。
125.可选地,所述报文发送模块330,用于判断所述位图的长度是否超过单个报文的最大传输长度mtu;若是,则将所述位图进行切片,获得多片位图以及每片位图对应的切片标识;将每片位图以及对应的切片标识封装在一个通知报文中,共获得多个通知报文;向目的端板卡发送所述多个通知报文。
126.可选地,所述表项标识获取模块310,用于检测本端地址数据库中本地保存的各条待同步表项的老化时间;确定老化时间已经到期的多条待同步表项为需要进行老化处理的多条待同步表项;获取所述需要进行老化处理的多条待同步表项对应的表项标识。
127.可选地,所述表项标识获取模块310,用于接收地址删除消息,所述地址删除消息包括需要删除的待同步表项的表项标识;根据所述地址删除信息确定需要进行删除处理的多条待同步表项的表项标识。
128.可选地,所述表项标识获取模块310,用于读取本端地址数据库中通过主动学习到的待同步表项;将主动学习到的待同步表项确定为需要进行同步学习处理的多条待同步表项;获取所述需要进行同步学习处理的多条待同步表项的表项标识。
129.可选地,所述装置300还包括:
130.表项重发模块,用于接收所述目的端板卡的回复报文,所述回复报文中携带所述目的端板卡在其地址数据库中未查找到的所述位图中待同步表项的表项标识;根据所述回复报文中的表项标识获取对应的待同步表项,并重新将获取到的待同步表项发送给所述目的端板卡。
131.可选地,所述装置300还包括:
132.表项同步模块,用于在学习到新的待同步表项时,创建所述新的待同步表项的表项标识;将所述新的待同步表项以及对应的表项标识一并发送给所述目的端板卡。
133.需要说明的是,本领域技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再重复描述。
134.请参照图4,图4为本技术实施例提供的一种用于执行报文处理方法的电子设备的结构示意图,该电子设备可为上述的源端板卡或目的端板卡,所述电子设备可以包括:至少一个处理器410,例如cpu,至少一个通信接口420,至少一个存储器430和至少一个通信总线440。其中,通信总线440用于实现这些组件直接的连接通信。其中,本技术实施例中设备的通信接口420用于与其他节点设备进行信令或数据的通信。存储器430可以是高速ram存储器,也可以是非易失性的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器430可选的还可以是至少一个位于远离前述处理器的存储装置。存储器430中存储有计算机可读取指令,当所述计算机可读取指令由所述处理器410执行时,电子设备执行上述图2所示方法过程。
135.可以理解,图4所示的结构仅为示意,所述电子设备还可包括比图4中所示更多或者更少的组件,或者具有与图4所示不同的配置。图4中所示的各组件可以采用硬件、软件或其组合实现。
136.本技术实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,执行如图2所示方法实施例中电子设备所执行的方法过程。
137.本实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如,包括:获取需要处理的多条待同步表项中每条待同步表项对应的表项标识,其中,表项标识为所述源端板卡在学习到对应的待同步表项后所创建的;采用位图形式记录多个表项标识,其中,所述位图中的每个位用于表示对应的一个表项标识;向目的端板卡发送携带有所述位图的通知报文,其中,所述通知报文用于指示所述目的端板卡对所述位图中的多个表项标识对应的待同步表项进行相应处理。
138.综上所述,本技术实施例提供一种表项处理方法、系统、装置、电子设备及存储介质,通过将需要处理的待同步表项的表项标识采用位图的形式进行记录,然后向目的端板卡发送携带有位图的通知报文,以使得目的端板卡对位图中所指示的待同步表项进行相应处理,由于位图中可以采用一个位表示一个表项标识,所以通过一个位图就可以表示多个表项标识,而原始的一条待同步表项的表项标识所占用的字节数较多,且通知报文的长度有限,所以如果直接发送表项标识,则可能一条表项标识就需要分多次发送,而本技术中直接采用位图就可以发送多个表项标识,从而使得源端板卡与目的端板卡之间减少信息传递时间,提高信息传输效率,且目的端板卡也可以更快地对多条待同步表项进行处理,整体处理效率也更高。
139.在本技术所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其他的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其他的形式。
140.另外,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
141.再者,在本技术各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
142.在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
143.以上所述仅为本技术的实施例而已,并不用于限制本技术的保护范围,对于本领域的技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。