背景技术
分布式***一般由主控板、交换板和各种业务板组成。主控板分为单主控板和用于实现主从备份的双主控板,用于***管理和协议处理。交换板实现板卡间的数据交互,主控板和交换板可以融合为一板。业务板负责对不同业务的数据包进行转发。为了对***进行统一管理,使***对外而言是一个完整的整体,主控板和业务板之间需要通过控制平面进行大量的数据交互,包括主控板与业务板同步的信息,如各种表项的同步、接口状态的同步等;主控板对业务板进行管理的信息,如线卡离线、在线信息,业务板的各种告警信息等。
公开号为CN1825804A、名称为《实现分布式***板间通信的***和方法》的中国专利申请中,公开了一种采用以太网组播方式进行板间数据交互的方案。该方案中源板卡为数据包添加一个18字节的标准以太网帧头部将数据封装成以太网帧,用于交换板执行交换操作,交换板上的以太网交换芯片根据上述以太网帧的组播目的地址将数据在组播内转发。如果采用该方案,当***板卡数增加时,交换板上以太网交换芯片需支持的组播表数目呈指数增长,导致成本增加;并且源板卡除了需要增加一个标准以太网头部之外,还需要额外的字段用于传输板卡间通信的相关控制信息,显然影响通信效率。
公开号为CN101867520A、名称为《分布式***中板卡间数据交换的方法》的中国专利申请中,公开了一种采用划分VLAN(Virtual Local Area Networ,虚拟局域网)的方式进行板间数据交互的方案。该方案中,源板卡同样将数据封装成以太网帧并发送给交换板,交换板上的以太网交换芯片通过在VLAN内广播的方式将数据转发给其他线卡。在该方案中,一个板卡数为n的分布式***所需的VLAN个数为:而VLAN的数目最多为4096个,即采用该方案的分布式***最大只能支持12块板卡,即限制了***板卡的数量。因此,对于拥有更多板卡的分布式***而言,该方案并不实用。并且,该方案要求每块板卡均维护一个VLAN对应关系表项,增加了实现的复杂度,而每次发送数据时的查表操作也会降低通信效率。
综上所述,现有的分布式***中板卡间数据交换的方法存在以下缺陷:
(1)当***板卡数增加时,成本增加;
(2)源板卡除了需要增加一个标准以太网头部之外,还需要额外的字段用于传输板卡间通信的相关控制信息,通信效率较低;
(3)***板卡的数量有限制,因而影响实用性;
(4)要求每块板卡均维护一个VLAN对应关系表项,增加了实现的复杂度,每次发送数据时的查表操作也会降低通信效率;
(5)没有实现QoS(Quality of Service,服务质量)功能。
发明内容
本发明的目的是为了克服上述背景技术的不足,提供一种成本降低、通信效率和质量提高、不限制***板卡数量、实用性较高、实现简单、具有简单的QoS功能的分布式***中控制平面数据交互的方法。
本发明提供的分布式***中控制平面数据交互的方法,包括以下步骤:a、***初始化:配置控制平面数据在板卡间进行交互的所有组合,并为每种组合分配一个组播和虚拟局域网VLAN,形成数据交互端口组与组播的对应关系,依据所述对应关系,将交换板的以太网交换芯片与各板卡连接的以太网端口加入组播,根据控制平面传输的数据类型在交换板的以太网交换芯片上进行QoS配置;b、控制平面进行数据交互时,发送数据的源板卡为数据包封装以太网帧头部,封装后的以太网帧头部中含有目的组播地址,将头部含有目的组播地址的以太网帧发送到交换板的以太网交换芯片;c、交换板的以太网交换芯片接收到所述头部含有目的组播地址的以太网帧后,根据所述目的组播地址来进行数据交互。
在上述技术方案中,所述步骤b中封装的以太网帧头部中的源地址字段为自定义信息,所述自定义信息为需要发送给目的板卡的控制信息。
在上述技术方案中,所述步骤b中封装的以太网帧头部中的协议类型字段为被封装的以太网帧数据部分的类型,所述数据部分的类型包括标准以太网协议类型和自定义数据类型。
在上述技术方案中,所述步骤b中封装的以太网帧头部中的虚拟局域网标签域中的优先级字段根据源板卡对待发送数据包处理的QoS策略得到。
在上述技术方案中,所述步骤b中封装的以太网帧头部中的目的组播地址和虚拟局域网标签域中的虚拟局域网号,根据目的板卡的***位图信息计算得出。
在上述技术方案中,当前***可支持的最大板卡数为n时,所述交换板的以太网交换芯片需支持的组播个数为
在上述技术方案中,所述控制平面数据交互的所有组合指板卡与交换板的以太网交换芯片相连接的端口进行点对点、点对多点通信的所有组合。
在上述技术方案中,所述交换板的以太网交换芯片工作在未知组播包在VLAN内洪泛的模式。
与现有技术相比,本发明的优点如下:
(1)本发明通过以太网组播(Multicast,即在发送者和每一接收者之间实现点对多点网络连接的传输方式)方式实现了网络设备控制平面的单播、组播、广播数据的交互,若***拥有的板卡较少,则采用组播方式进行控制平面的数据交互;当***板卡数增多时,在不更换以太网交换芯片的情况下,则采用VLAN+组播的方式进行控制平面的数据交互,成本显然降低。
(2)应用本发明时,不需要额外的字段用于传输板卡间通信的相关控制信息,也不要求每块板卡均维护一个VLAN对应关系表项,省去了每次发送数据时的查表操作,因此通信效率和质量明显提高。
(3)对***支持的板卡数量没有限制,实用性较高。
(4)由于不要求每块板卡均维护一个VLAN对应关系表项,因此实现比较简单,节约了存储空间,并且每次发送数据时不需要查上述对应关系表,而只需通过简单的计算即可得到组播和VLAN,提高了效率。
(5)实现了简单的QoS功能。
具体实施方式
下面结合附图及实施例对本发明作进一步的详细描述。
参见图1所示,交换板的以太网交换芯片的每个端口分别与***中各板卡相连,板卡间数据通信实际上表现为交换板的以太网交换芯片上相应端口间的数据转发。根据板卡间数据通信的所有组合,包括单播、组播和广播,把与各板卡连接的以太网交换芯片端口进行组合,得到一个集合,集合中的每个元素为一组端口。当***拥有n块板卡时,集合的元素个数为
为每个元素分配一个组播,则交换板的以太网交换芯片需支持
个组播。
参见图2所示,本发明分布式***中控制平面数据交互的方法,包括下列步骤:
a、***初始化:配置控制平面数据在板卡间进行交互的所有组合(板卡与交换板的以太网交换芯片相连接的端口进行点对点、点对多点通信的所有组合),并为每种组合分配一个组播,形成数据交互端口组与组播的对应关系,依据所述对应关系,将交换板的以太网交换芯片与各板卡连接的以太网端口加入组播,根据控制平面传输的数据类型在交换板的以太网交换芯片上进行QoS配置。具体在***初始化的过程中,交换板上以太网交换芯片各端口依据与之相连的板***,确定该端口需要加入的VLAN和组播表。
b、控制平面进行数据交互时,发送数据的源板卡为数据包封装以太网帧头部,封装后的以太网帧头部中含有目的组播地址,将头部含有目的组播地址的以太网帧发送到交换板的以太网交换芯片。例如,某块板卡向其它板卡发送数据时,将待发送数据封装成以太网帧,根据目的板***计算出VLAN和目的组播地址,填充以太网帧头部的其他字段后,再将封装后的以太网帧发送到交换板的以太网交换芯片。
具体的,封装的以太网帧头部中:源地址字段为自定义信息,即需要发送给目的板卡的控制信息;协议类型字段为被封装的以太网帧数据部分的类型,该数据部分的类型包括标准以太网协议类型和自定义数据类型。虚拟局域网标签域包括两部分:虚拟局域网号和优先级字段。虚拟局域网标签域中的优先级字段根据源板卡对待发送数据包处理的QoS策略得到。目的组播地址和虚拟局域网标签域中的虚拟局域网号根据目的板卡的***位图信息计算得出。
c、交换板的以太网交换芯片接收到所述头部含有目的组播地址的以太网帧后,根据所述目的组播地址或VLAN在组播组内转发或在VLAN内洪泛(Flooding,不要求维护网络的拓扑结构和相关的路由计算,仅要求接收到信息的节点以广播方式转发数据包)。
当前***可支持的最大板卡数为n时,所述交换板的以太网交换芯片需支持的组播个数为
交换板的以太网交换芯片工作在未知组播包在VLAN内洪泛的模式。若***拥有的板卡较少,交换板的以太网交换芯片支持的组播表个数大于
的情况下,采用组播方式进行控制平面的数据交互。当***板卡数增多时,交换板的以太网交换芯片所需要支持的组播表数目呈指数增长。而一般情况下,交换芯片支持的组播表越大,交换芯片的价格越高。因此对于交换板的以太网交换芯片支持的组播表个数小于
而不更换以太网交换芯片的情况,则采用VLAN+组播的方式进行控制平面的数据交互,以降低成本。
下面通过2个具体实施例来详细说明本发明的方法步骤。
实施例1:***板卡数为8
本发明实施例中分布式***中控制平面数据交互的方法,包括下列步骤:
步骤101:***初始化时,设置交换板的以太网交换芯片对可能接收到的数据类型进行QoS配置,按照板***和组播地址的对应关系,确定端口加入的组播,以8板卡为例,交换板的以太网交换芯片上与板卡n连接的端口需加入的组播范围为:
{VLAN,MAC}={1,(01:00:00:00:00:00~01:00:00:00:00:FF)|(1<<(n-1))}
步骤102:当某块板卡向其他板卡发送数据时,将待发送数据封装成以太网帧,不论该数据包需发送给一块还是多块线卡,交换板的以太网帧头部的目的地址均为一个目的组播地址,依据目的板***{n1,n2...}计算出上述目的组播地址:01:00:00:00:00:00|(1<<(n1-1))|(1<<(n2-1))...。上述以太网帧的源地址,根据实际需求由用户自定义。源板卡一般需要携带的信息如:源板***、流控标志、告警信息,写日志标志等。为上述以太网帧添加VLAN和协议类型字段。VLAN号固定为1,优先级字段根据源板卡对该数据的QoS策略来设置802.1Q优先级;协议类型为上述数据的类型。将封装后的以太网帧发送给交换板的以太网交换芯片。
步骤103:交换板的以太网交换芯片收到封装后的以太网帧后,根据以太网帧头部的目的组播地址在组播内进行转发,并根据802.1Q进行优先级队列的映射,以及基于流的QoS操作。
实施例2:***板卡数为16
步骤201:***初始化时,设置交换板的以太网交换芯片工作在未知组播包在VLAN内洪泛的模式;对可能接收到的数据类型进行QoS配置;按照板***和组播MAC及VLAN的对应关系,确定端口加入的组播和VLAN,以***板卡数为16,交换板的以太网交换芯片组播表数为4K为例,交换板的以太网交换芯片上与板卡n连接的端口需加入的组播范围和VLAN范围为:
{VLAN,MAC}={1,(01:00:00:00:00:00~01:00:00:00:0F:FF)|(1<<(n-1))}
VLAN=(0x000~0x00F)|(1<<(n-1))+1
步骤202:某块板卡向其他板卡发送数据时,将待发送数据封装成以太网帧,不论该数据包需发送给一块还是多块线卡,交换板的以太网帧头部的目的地址均为一个目的组播地址,依据目的板***{n
1,n
2...}计算出上述组播地址:01:00:00:00:00:00|(1<<(n
1-1))|(1<<(n
2-1))...。以太网帧的源地址,根据实际需求由用户自定义。源板卡一般需要携带的信息如:源板***、流控标志、告警信息,写日志标志等。为上述以太网帧添加VLAN和协议类型字段。VLAN号根据上述目的组播地址计算得出:上述目的组播地址的
共12个比特,即[D
12:D
24]为VLAN号,优先级字段根据源板卡对该数据的QoS策略来设置802.1Q优先级;协议类型为上述数据的类型。将封装后的以太网帧发送给交换板的以太网交换芯片。
步骤203:交换板的以太网交换芯片收到封装后的以太网帧后,根据以太网帧头部的目的组播地址在组播内进行转发,若交换板的以太网交换芯片没有找到该目的地址对应的组播,由于交换板的以太网交换芯片工作在未知组播包在VLAN内洪泛的模式,因此上述以太网帧将在VLAN内广播,并根据802.1Q进行优先级队列的映射,以及基于流的QoS操作。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。