组播流控方法、系统及现场可编程门阵列的制作方法

文档序号:7696097阅读:164来源:国知局
专利名称:组播流控方法、系统及现场可编程门阵列的制作方法
技术领域
本发明涉及组播技术领域,具体涉及组播流控方法、系统及现场可编程
门阵歹'J ( FPGA, Field Programmable Gate Array )。
背景技术
在采用交换网技术的高性能分布式设备中,需要借助流控技术控制入接 口发送报文的速率,保证交换网不发生拥塞丢包。
图1为单播报文板间转发系统模型,如图1所示,单播报文从两个入接 口板LPU—a和LPU—b发出,经过交换网到达出接口板LPU—c。定义数据流 从入接口板到交换网为上行阶段,定义数据流从交换网到出接口板为下行阶 段。下行出接口板参考各个入接口板的实际流量,将出口带宽公平分配给各 个上行入接口板,上行入接口板根据分配到的带宽调度单播报文发送给下行 出接口板。这套调度机制由接口板中的FPGA实现,采用的是下行驱动上行 的模式,可以避免上行不受控制地发送流量给同一个下行出接口板,而导致 交换网在该下行出接口板处发生拥塞,进而导致丢包。
FPGA单播调度方式如图2所示,具体如下
01:入接口板的FPGA在本板的报文緩存中,为每个出接口板划分一个
单播队列,每个队列内部再进一步根据优先级划分为多个子队列。同时,
FPGA为每个出接口板维护一个令牌桶,令牌桶中的令牌数定时递增,每次 递增的令牌数由出接口板的出口带宽决定。
当某个出接口板的出口带宽增加时,该出接口板会通知各入接口板增大 该出接口板对应的令牌桶定时递增的令牌数;当某个出接口板的出口带宽减 少时,该出接口板会通知各入接口板减少该出接口板对应的令牌桶定时递增 的令牌数。
02:上行调度时,入接口板的FPGA根据出接口板序号在单播队列之间 进行轮询,若某个队列中有报文,则进一步在该队列的子队列之间基于优先 级选择报文。
优先选择高优先级子队列中的报文,若高优先级子队列为空,则选择低
优先级子队列中的报文。
03:在发送被选择的报文之前进行令牌评估,当报文的出接口板对应的
令牌桶中有令牌时,将报文发送到交换网;否则,废弃本次选择的报文,继 续轮询下一个队列。
交换网本身支持组播复制,其内部有二层组播表,可以基于组播ID将 报文复制到多个出接口板。由于组播报文要发往多个下行出接口板,因此, 无法通过一个出接口板的带宽给组播报文确定带宽。目前,组播板间转发有 三种模式
模式一
上行发送组播板间报文时,由CPU负责对组播报文进行复制,将复制 后的多份报文通过交换网分发给不同的出接口板。 模式二
采用带流控功能的交换芯片,这类交换芯片大多将报文緩存、队列管理、 队列调度和交换网集成在一起。组播报文从报文緩存中读出后,被复制成多 份,根据出接口板的不同送到队列管理模块的不同队列,和单播报文一起排 队等待调度,被调度后通过交换网送到不同的出接口板。
模式三
采用支持组播复制的交换网。如图3所示,组播报文从入接口板LPU_a 发出,经过交换网复制发送到两个出接口板LPU—b和LPU—c。在该模式下 的交换网,其单播流控算法比较完备,通过下行带宽分配来驱动上行单播报 文调度,但是因为组播报文对应多个出接口板,无法使用下行驱动上行调度 的模式,只能采用上行分配固定带宽并辅助考虑下行剩余带宽的方式。
模式一和模式二类似,都是在上行进行组播复制,交换网只是起到报文 交换的作用。因为复制发生在进入交换网之前, 一份组播报文在进入交换网 时已经变成多份,增加了交换网的负担,而且无法利用交换网的组播复制功
能。另外模式一受CPU处理能力的限制和复制报文时内存访问瓶颈的影响,
性能比较低。
模式三对单播报文有非常好的流控效果,但是因为下行带宽使用情况只 是组播调度的一个参考,主要靠上行分配固定带宽给组播报文,组播报文的 流控效果比较差,可能会导致交换网因为内部緩冲区溢出而丟包,而导致本 来有流控的单播报文也被丢弃。

发明内容
本发明提供组播流控方法、系统及FPGA,以在采用交换网技术的分布式 环境中,提高组播流控性能。
本发明的技术方案是这样实现的
一种组播流控方法,应用在采用交换网技术的分布式环境中,入接口板为 每个出接口板设置一个单播队列,入接口板单独设置一个组播队列,该方法包 括
入接口板将接收到的组播报文緩存到组播队列;
入接口板对组播队列和所有出接口板的单播队列进行轮询,若轮询结果为 组播报文,则在组播报文的出接口板中,选择具有可用带宽的出接口板,将组 播报文发送给所选择的出接口板。
所述入接口板单独设置一个组播队列进一步包括为组播队列和各单播队 列设置优先级,
所述入接口板对组播队列和所有出接口板的单播队列进行轮询为入接口 板根据各队列的优先级,对组播队列和所有出接口板的单播队列进行轮询。 所述为组播队列和各单播队列设置优先级为将组播队列的优先级设置为最高。
入接口板预先为每个出接口板设置一个令牌桶,且根据出接口板的出口带 宽调整令牌桶中的令牌数,
所述在組播报文的出接口板中,选择具有可用带宽的出接口板为分别判 断组播报文的各出接口板的令牌桶中是否有令牌,若是,确定该接口板具有可 用带宽;否则,确定该接口板不具有可用带宽。
所述将组播报文发送给所选择的出接口板包括
入接口板将组播报文中的出接口信息修改为所选择的出接口板信息,并将 组播报文发送给交换网;交换网根据组播报文中的出接口板信息,复制报文, 将报文发送给各出接口板。
一种现场可编程门阵列FPGA,位于采用交换网技术的分布式入接口板中, 包括
队列设置模块,为每个出接口板设置一个单播队列,同时,单独设置一个 组播队列;
队列轮询模块,轮询组播队列和各出接口板的单播队列,将轮询结果发送 给带宽评估模块;
带宽评估模块,接收轮询结果,若轮询结果为组播报文,在组播报文的出 接口板中,选择具有可用带宽的出接口板,将组播报文中的出接口信息修改为 所选择的出接口板信息,将组播报文发送给交换网。
所述带宽评估模块包括
令牌桶设置模块,为每个出接口板设置一个令牌桶; 令牌调整模块,根据出接口板的出口带宽,调整出接口板的令牌桶中的令 牌数;
令牌评估模块,接收轮询结果,若轮询结果为组播报文,分别对组播报文 的各出接口板进行令牌评估,将组播报文的出接口信息修改为评估通过的出接 口板信息,将组播报文发送给交换网。
所述FPGA进一步包括优先级设置模块,为组播队列和各单播队列设置 优先级,
且,所述队列轮询模块根据各队列的优先级,轮询组播队列和各出接口板 的单播队列。
一种组播流控系统,包括至少一个入4矣口板、交换网和至少一个出接口 板,其中,
入接口板,在本地緩存中为每个出接口板设置一个单播队列,并单独设置 一个组播队列,将接收到的组播报文緩存到组播队列;对组播队列和所有出接 口板的单播队列进行轮询,若轮询结果为组播报文,则在组播报文的出接口板 中,选择具有可用带宽的出接口板,将组播报文中的出接口信息修改为所选择 的出接口板信息,并将组播报文发送给交换网;
交换网,接收组播报文,根据组播报文中的出接口板信息复制报文,将 报文发送给各出接口板。
与现有技术相比,本发明中,入接口板为每个出接口板设置一个单播队 列,同时,为组播报文单独设置一个组播队列,将接收到的组播报文緩存到 组播队列;入接口板对组播队列和所有出接口板的单播队列进行轮询,若轮 询结果为组播报文,则在组播报文的出接口板中,选择具有可用带宽的出接 口板,将组播报文发送给所选择的出接口板。本发明使组播报文和单播报文 一样接受下行带宽分配的调度,能够根据下行接口的出口带宽,调整组播报 文的出接口,保证了交换网和下行出接口不发生拥塞丢包,提高了组播流控 的性能。
另外,本发明不在上行进行组播复制,而在交换网进行组播复制,利用 了交换网的组播复制能力,且节省了上行带宽。


图l为现有的单播报文板间转发系统模型图2为现有的FPGA单播调度示意图3为现有的组播报文板间转发系统模型播流控的流程图5为本发明实施例提供的单播和组播报文板间转发示意图6为本发明实施例提供的组播流控系统组成示意图7为本发明实施例提供的入接口板的FPGA的结构示意图。
具体实施例方式
下面结合附图及具体实施例对本发明再作进一步详细的说明。
播流控的流程图,如图4所示,其具体步骤如下
步骤401:每个入接口板的FPGA在本板的报文緩存中,为每个出接口 板设置一个单播队列,同时,在本板的报文緩存中单独为组播报文设置一个 组播队列。
每个单播队列内部可以进一步根据优先级划分成多个子队列。 由于組播报文的出接口板无法预先确定,因此,在报文的緩存中单独设 置一个组播队列。
步骤402:入接口板的FPGA为每个出接口板维护一个令牌桶,令牌桶 中的令牌数定时递增,每次递增的数目由出接口板的出口带宽决定。 本步骤402与现有的单播调度方式中的令牌桶维护步骤相同。 步骤403: FPGA从CPU接收组播报文,将组播报文緩存到组播队列中。 步骤404:上行调度开始,FPGA对组播队列和所有出接口板的单播队 列进4亍4仑询。
步骤405:判断轮询结果为单播报文还是组播报文,若为单播报文,执 行步骤406;若为组播报文,执行步骤407。
步骤406: FPGA采用现有的单播调度方式处理该单播报文,本流程结束。
步骤407: FPGA提取组播报文中的组播ID。
步骤408: FPGA对组播ID对应的各出接口板——进行令牌评估,即
判断各出接口板的令牌桶中是否有令牌,FPGA记录有令牌的令牌桶对应的 出接口板序号。
步骤409: FPGA根据记录的出接口板序号,修改组播报文中的组播ID, 将组播报文发送给交换网。
例如假定一个组播报文准备发送到出接口板0、 2和5,则组播报文 中的组播ID为b00100101,经过FPGA进行令牌桶评估后,因为出接口板2 对应的令牌桶中没有令牌而导致该出接口板评估不通过,则修改组播报文中 的组播ID为b00100001,从而,交换网只会将组播报文复制给出接口板0 和5。
步骤410:交换网接收组播报文,解析报文中的组播ID,得到各出接口 板序号,根据该出接口板序号复制报文,然后将各报文分别发往各出接口板。
令牌评估不通过的出接口板收不到该组播报文,因为评估不通过实际上 表示入接口板到该出接口板的带宽已经被耗尽,发生组播报文的丢弃也是可 以接受的。
图5为本发明实施例提供的单播和组播报文板间转发示意图,如图5所 示,组播队列独立于所有出接口板的单播队列之外,每个出接口板对应一个 令牌桶,轮询在组播队列和所有单播队列之间进行,若轮询结果为组播报文, 则会对组播报文的出接口板——进行令牌评估,以便只将组播报文发送给评 估通过的出接口板。
在有的应用场合中,可能希望优先处理组播报文,此时,可以将轮询方 式修改为严格优先级+轮询方式,即为组播队列和各单播队列设置优先级, 且将组播队列的优先级设置得最高,在轮询时,根据各队列的优先级,就可 优先调度组播队列,从而组播报文就会有更多的机会被送入交换网。
图6为本发明实施例提供的组播流控系统组成示意图,如图6所示,其 主要包括至少一个入接口板61、交换网62和至少一个出接口板63,图中 的m为入接口板的数目,n为出接口板的数目,且m^1,论l,其中
入接口板61:在本板的报文緩存中,为每个出接口板设置一个单播队列,同时,在本板的报文緩存中,单独为组播报文设置一个组播队列;为每 个出接口板维护 一个令牌桶,令牌桶中的令牌数根据出接口板的出口带宽定 时递增,将接收到的组播报文緩存到组播队列中;上行调度开始,对組播队 列和所有出接口板的单播队列进行轮询,若轮询结果为组播报文,提取组播 报文中的组播ID,对组播ID对应的各出接口板——进行令牌评估,根据评 估通过的出接口板序号修改组播报文中的组播ID,将组播报文发送给交换 网62。
交换网62:接收组播报文,解析报文中的组播ID,得到各出接口板序 号,根据该出接口板序号复制报文,然后将各报文分别发往各出接口板。
图7为本发明实施例提供的入接口板的FPGA的结构示意图,如图7 所示,其主要包括队列设置模块71、令牌桶设置模块72、令牌调整模块 73、队列轮询模块74和令牌评估模块75,其中
队列设置模块71:在本板的报文緩存中,为每个出接口板设置一个单 播队列,同时,在本板的报文緩存中,单独为组播报文设置一个组播队列。
令牌桶设置模块72:为每个出接口板维护一个令牌桶。
令牌调整模块73:根据各出接口板的出口带宽,定时调整出接口板的 令牌桶中的令牌数。
队列轮询模块74:上行调度开始,对组播队列和所有出接口板的单播 队列进行轮询,将轮询结果发送给令牌评估模块75。
令牌评估模块75:接收队列轮询模块74发来的轮询结果,若轮询结果 为组播报文,提取组播报文中的组播ID,对组播ID对应的各出接口板—— 进行令牌评估,根据评估通过的出接口板序号修改组播报文中的组播ID, 将组播报文发送给交换网。
将令牌桶设置模块72、令牌调整模块73、令牌评估模块75合称为带宽 评估模块。
在实际应用中,FPGA还可包括优先级设置模块,用于为组播队列和 各单播队列设置优先级,如可将组播队列的优先级设置得最高。 同时,队列轮询模块74在上行调度开始时,根据各队列的优先级,对 组播队列和所有出接口板的单播队列进行轮询。
以上所述仅为本发明的过程及方法实施例,并不用以限制本发明,凡在 本发明的精神和原则之内所做的任何修改、等同替换、改进等,均应包含在 本发明的保护范围之内。
权利要求
1、一种组播流控方法,应用在采用交换网技术的分布式环境中,入接口板为每个出接口板设置一个单播队列,其特征在于,入接口板单独设置一个组播队列,该方法包括入接口板将接收到的组播报文缓存到组播队列;入接口板对组播队列和所有出接口板的单播队列进行轮询,若轮询结果为组播报文,则在组播报文的出接口板中,选择具有可用带宽的出接口板,将组播报文发送给所选择的出接口板。
2、 如权利要求l所述的方法,其特征在于,所述入接口板单独设置一个组 播队列进一步包括为组播队列和各单播队列设置优先级,所述入接口板对组播队列和所有出接口板的单播队列进行轮询为入接口 板根据各队列的优先级,对组播队列和所有出接口板的单播队列进行轮询。
3、 如权利要求2所述的方法,其特征在于,所述为组播队列和各单播队列 设置优先级为将组播队列的优先级设置为最高。
4、 如权利要求1至3任一所述的方法,其特征在于,入接口板预先为每个 出接口板设置一个令牌桶,且根据出接口板的出口带宽调整令牌桶中的令牌数,所述在组播报文的出接口板中,选择具有可用带宽的出接口板为分别判 断组播报文的各出接口板的令牌桶中是否有令牌,若是,确定该接口板具有可 用带宽;否则,确定该接口板不具有可用带宽。
5、 如权利要求1至3任一所述的方法,其特征在于,所述将组播报文发送 给所选择的出接口板包括入接口板将组播报文中的出接口信息修改为所选择的出接口板信息,并将 组播报文发送给交换网;交换网根据组播报文中的出接口板信息,复制报文, 将报文发送给各出接口板。
6、 一种现场可编程门阵列FPGA,位于采用交换网技术的分布式入接口板 中,其特征在于,包括 队列设置模块,为每个出接口板设置一个单播队列,同时,单独设置一个组播队列;队列轮询模块,轮询組播队列和各出接口板的单播队列,将轮询结果发送 给带宽评估模块;带宽评估才莫块,接收轮询结果,若轮询结果为组播报文,在组播报文的出 接口板中,选择具有可用带宽的出接口板,将组播报文中的出接口信息修改为 所选择的出接口板信息,将组播报文发送给交换网。
7、 如权利要求6所述的FPGA,其特征在于,所述带宽评估模块包括 令牌桶设置模块,为每个出接口板设置一个令牌桶;令牌调整模块,根据出接口板的出口带宽,调整出接口板的令牌桶中的令 牌数;令牌评估模块,接收轮询结果,若轮询结果为组播报文,分别对组播报文 的各出接口板进行令牌评估,将组播报文的出接口信息修改为评估通过的出接 口板信息,将组播报文发送给交换网。
8、 如权利要求6或7所述的FPGA,其特征在于,所述FPGA进一步包括 优先级设置模块,为组播队列和各单播队列设置优先级,且,所述队列轮询模块根据各队列的优先级,轮询组播队列和各出接口板 的单播队列。
9、 一种组播流控系统,其特征在于,包括至少一个入接口板、交换网和 至少一个出接口板,其中,入接口板,在本地緩存中为每个出接口板设置一个单播队列,并单独设置 一个组播队列,将接收到的组播报文缓存到组播队列;对组播队列和所有出接 口板的单播队列进行轮询,若轮询结果为组播报文,则在组播报文的出接口板 中,选择具有可用带宽的出接口板,将组播报文中的出接口信息修改为所选择 的出接口板信息,并将组播报文发送给交换网;交换网,接收组播报文,根据组播报文中的出接口板信息复制报文,将报 文发送给各出接口板。
全文摘要
本发明公开了组播流控方法、系统及现场可编程门阵列。方法包括入接口板为每个出接口板设置一个单播队列,且单独设置一个组播队列,入接口板将接收到的组播报文缓存到组播队列;入接口板对组播队列和所有出接口板的单播队列进行轮询,若轮询结果为组播报文,则在组播报文的出接口板中,选择具有可用带宽的出接口板,将组播报文发送给所选择的出接口板。本发明能够根据下行接口的带宽调整组播报文的出接口,提高了组播流控的性能。
文档编号H04L12/58GK101340393SQ20081011819
公开日2009年1月7日 申请日期2008年8月14日 优先权日2008年8月14日
发明者丹 孟, 张德宁, 邓新红 申请人:杭州华三通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1