本发明属于组播,具体涉及一种适用于多终端多容器的高速二层组播查表方法及装置。
背景技术:
1、互联网组管理协议(igmp,internet group management protocol)是一种运行在osi(open system interconnection,开放式系统互连)参考模型中网络层的协议。igmp使得ip(internet protocol,网际互连协议)网络能够支持多个主机同时接收同一组播数据流,为广播和多播传输提供了重要的基础。目前已经有三个协议标准,分别为igmpv1、igmpv2和igmpv3。
2、igmp是用于在主机和组播路由器之间建立和维护组播成员关系的网络协议。当一个组播主机成员希望加入指定的组播组并且期望接收组播流量时,其发送igmp消息以通知本地的组播路由器。组播路由器获得主机的信息,然后维护一张组播组成员关系表,该组播成员关系表用于表示哪些端口属于这个组播组。
3、在局域网中,组播报文不可避免的要经过一些二层网络设备,如路由器和组播用户之间的二层网络交换机。由于二层交换机无法学习组播mac,因此组播报文会在二层被广播,即在同一广播域内的组播成员和非组播成员都能收到组播报文。这样不但浪费了网络带宽,还影响了网络信息的安全性。
4、为了有效地控制组播流量在局域网内洪泛,引入了igmp snooping(互联网组管理协议窥探)组播窃听技术。igmp snooping通过侦听和分析二层组播设备与主机之间发送的组播报文来控制组播组。igmp snooping是交换机二层功能的一种特性,可以限制组播流量的转发,其中,igmp协议运行在网络层,而igmp snooping运行在链路层。igmp snooping技术可以使经过二层交换机的组播报文有效地发送到指定的接收者。当网络无法进行多点传输时,igmp snooping将变得尤为重要,否则传入的组播报文将被发送至广播域中的所有主机。igmp snooping的优势在较大的网络中尤为明显,支持igmp snooping的交换机减少了不必要的报文传输,避免了网络阻塞。同时,当不法分子利用网络组播的安全漏洞,如组播dos(denial of service,拒绝服务)/ddos(distributed denial of service,分布式拒绝服务),进行攻击时,即用组播报文攻击单个主机或整个广播域内的主机时,通过igmpsnooping能有效地避免这种情况的出现。
5、然而随着终端数目、终端下部署的容器的数目及端口速率的增加,交换机的转发表项的数目会急剧增加到上万条,甚至几十万条。很显然,将数目巨大的表项存储在交换机硬件中是不现实的。
6、其次,现有的基于fpga实现的二层高速组播查表方法,在查表失败后会选择广播或者丢弃。采用丢弃的策略难以保证无损传输,而采用广播的策略会极大地影响交换网络的带宽利用率。
技术实现思路
1、为了解决现有技术中所存在的上述问题,本发明提供了一种适用于多终端多容器的高速二层组播查表方法及装置。
2、本发明要解决的技术问题通过以下技术方案实现:
3、第一方面,本发明提供了一种适用于多终端多容器的高速二层组播查表方法,所述方法包括:
4、接收业务端发送的二层组播业务流;
5、提取所述二层组播业务流中的业务帧的组播目的mac;
6、根据所述组播目的mac,在第一查找表中查找对应的表项;其中,所述第一查找表中存有多条表项;所述多条表项是远程主机存储的所有表项中的部分表项;
7、若查找到对应的表项,根据该表项转发所述业务帧至对应的目的终端;
8、若未查找到对应的表项,根据所述组播目的mac从所述远程主机远程获取对应的表项,并根据该表项转发所述业务帧至对应的目的终端。
9、可选地,所述方法还包括:
10、在根据所述组播目的mac从所述远程主机远程获取对应的表项之后,更新该表项至第二查找表;所述第一查找表和所述第二查找表均为哈希表,所述第一查找表和所述第二查找表映射相同的空间。
11、可选地,所述第一查找表是以所述组播目的mac为键,以所述组播目的mac对应的表项为键值所构建的哈希表;所述根据所述组播目的mac,在第一查找表中查找对应的表项,包括:
12、将所述组播目的mac作为键,查找该键对应的键值。
13、可选地,所述根据所述组播目的mac从所述远程主机远程获取对应的表项,包括:
14、发送所述组播目的mac至所述远程主机,以使所述远程主机在判断所述组播目的mac有效的情况下,将所述组播目的mac对应的表项所包含的表项数据分多次进行下发;
15、整合所述远程主机多次下发的表项数据,得到所述组播目的mac对应的表项。
16、可选地,所述根据所述组播目的mac从所述远程主机远程获取对应的表项,包括:
17、缓存所述组播目的mac至第一缓存空间;
18、发送所述组播目的mac至所述远程主机,以使所述远程主机下发所述组播目的mac对应的表项。
19、可选地,所述缓存所述组播目的mac至第一缓存空间,包括:
20、判断所述第一缓存空间是否够用;
21、若所述第一缓存空间够用,缓存所述组播目的mac至所述第一缓存空间;
22、若所述第一缓存空间不足,丢弃所述组播目的mac。
23、可选地,所述若未查找到对应的表项,根据所述组播目的mac从所述远程主机远程获取对应的表项,并根据该表项转发所述业务帧至对应的目的终端,包括:
24、当未查找到对应的表项时,缓存所述业务帧至第二缓存空间;
25、根据所述组播目的mac从所述远程主机远程获取对应的表项;
26、在从所述远程主机远程获取到对应的表项之后,轮询转发所述第二缓存空间中的业务帧和正常业务帧;所述正常业务帧是能够从所述第一查找表中查找到对应的表项的业务帧。
27、第二方面,本发明提供了一种适用于多终端多容器的高速二层组播查表装置,所述装置包括:
28、接收模块,用于接收业务端发送的二层组播业务流;
29、组播目的mac提取模块,用于提取所述二层组播业务流中的业务帧的组播目的mac;
30、查找模块,用于根据所述组播目的mac,在第一查找表中查找对应的表项;其中,所述第一查找表中存有多条表项;所述多条表项是远程主机存储的所有表项中的部分表项;
31、第一业务帧转发模块,用于若查找到对应的表项,根据该表项转发所述业务帧至对应的目的终端;
32、第二业务帧转发模块,用于若未查找到对应的表项,根据所述组播目的mac从所述远程主机远程获取对应的表项,并根据该表项转发所述业务帧至对应的目的终端。
33、可选地,所述装置还包括:
34、更新模块,用于在根据所述组播目的mac从所述远程主机远程获取对应的表项之后,更新该表项至第二查找表;所述第一查找表和所述第二查找表均为哈希表,所述第一查找表和所述第二查找表映射相同的空间。
35、可选地,所述第一查找表是以所述组播目的mac为键,以所述组播目的mac对应的表项为键值所构建的哈希表;所述查找模块,具体用于:
36、将所述组播目的mac作为键,查找该键对应的键值。
37、可选地,所述第二业务帧转发模块,根据所述组播目的mac从所述远程主机远程获取对应的表项,包括:
38、发送所述组播目的mac至所述远程主机,以使所述远程主机在判断所述组播目的mac有效的情况下,将所述组播目的mac对应的表项所包含的表项数据分多次进行下发;
39、整合所述远程主机多次下发的表项数据,得到所述组播目的mac对应的表项。
40、可选地,所述第二业务帧转发模块,根据所述组播目的mac从所述远程主机远程获取对应的表项包括:
41、缓存所述组播目的mac至第一缓存空间;
42、发送所述组播目的mac至所述远程主机,以使所述远程主机下发所述组播目的mac对应的表项。
43、可选地,所述第二业务帧转发模块,缓存所述组播目的mac至第一缓存空间,包括:
44、判断所述第一缓存空间是否够用;
45、若所述第一缓存空间够用,缓存所述组播目的mac至所述第一缓存空间;
46、若所述第一缓存空间不足,丢弃所述组播目的mac。
47、可选地,所述第二业务帧转发模块,具体用于:
48、当未查找到对应的表项时,缓存所述业务帧至第二缓存空间;
49、根据所述组播目的mac从所述远程主机远程获取对应的表项;
50、在从所述远程主机远程获取到对应的表项之后,轮询转发所述第二缓存空间中的业务帧和正常业务帧;所述正常业务帧是能够从所述第一查找表中查找到对应的表项的业务帧。
51、本发明提供的一种适用于多终端多容器的高速二层组播查表方法,通过接收业务端发送的二层组播业务流,提取二层组播业务流中的业务帧的组播目的mac,根据组播目的mac,在第一查找表中查找对应的表项,其中,第一查找表中存有多条表项,多条表项是远程主机存储的所有表项中的部分表项。若查找到对应的表项,根据该表项转发业务帧至对应的目的终端。若未查找到对应的表项,根据组播目的mac从远程主机远程获取对应的表项,并根据该表项转发业务帧至对应的目的终端。
52、相较于现有技术中存储过多的表项会使得交换机消耗大量资源的问题,在本方案中因为第一查找表中的多条表项是远程主机存储的所有表项中的部分表项,因此占用资源会极大减少。且与现有的二层组播查表方法中在查表失败后会选择将业务帧广播或者丢弃的方式相比,在本方案中,若未找到业务帧的组播目的mac对应的表项,会根据组播目的mac从远程主机远程获取对应的表项,并根据该表项转发业务帧至对应的目的终端,避免了采用广播策略从而极大影响交换网络的带宽利用率,或采用丢弃的策略从而不能保证无损传输的情况发生。
53、以下将结合附图及对本发明做进一步详细说明。
1.一种适用于多终端多容器的高速二层组播查表方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
3.根据权利要求2所述的方法,其特征在于,所述第一查找表是以所述组播目的mac为键,以所述组播目的mac对应的表项为键值所构建的哈希表;所述根据所述组播目的mac,在第一查找表中查找对应的表项,包括:
4.根据权利要求1所述的方法,其特征在于,所述根据所述组播目的mac从所述远程主机远程获取对应的表项,包括:
5.根据权利要求1所述的方法,其特征在于,所述根据所述组播目的mac从所述远程主机远程获取对应的表项,包括:
6.根据权利要求5所述的方法,其特征在于,所述缓存所述组播目的mac至第一缓存空间,包括:
7.根据权利要求1所述的方法,其特征在于,所述若未查找到对应的表项,根据所述组播目的mac从所述远程主机远程获取对应的表项,并根据该表项转发所述业务帧至对应的目的终端,包括:
8.一种适用于多终端多容器的高速二层组播查表装置,其特征在于,所述装置包括:
9.根据权利要求8所述的装置,其特征在于,所述装置还包括:
10.根据权利要求9所述的装置,其特征在于,所述第一查找表是以所述组播目的mac为键,以所述组播目的mac对应的表项为键值所构建的哈希表;所述查找模块,具体用于: