CN101547154B - 一种trunk分发方法 - Google Patents

一种trunk分发方法 Download PDF

Info

Publication number
CN101547154B
CN101547154B CN2009101359010A CN200910135901A CN101547154B CN 101547154 B CN101547154 B CN 101547154B CN 2009101359010 A CN2009101359010 A CN 2009101359010A CN 200910135901 A CN200910135901 A CN 200910135901A CN 101547154 B CN101547154 B CN 101547154B
Authority
CN
China
Prior art keywords
bag
packet
subport
module
transmission
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN2009101359010A
Other languages
English (en)
Other versions
CN101547154A (zh
Inventor
徐剑辉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fiberhome Telecommunication Technologies Co Ltd
Original Assignee
Fiberhome Telecommunication Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fiberhome Telecommunication Technologies Co Ltd filed Critical Fiberhome Telecommunication Technologies Co Ltd
Priority to CN2009101359010A priority Critical patent/CN101547154B/zh
Publication of CN101547154A publication Critical patent/CN101547154A/zh
Application granted granted Critical
Publication of CN101547154B publication Critical patent/CN101547154B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

一种TRUNK分发方法,涉及包交换芯片,包括以下步骤:步骤1,包交换芯片收包后,收包分析模块根据匹配规则进行包序属性的匹配分析;步骤2,包缓存模块对各发送子端口拥塞程度进行计算;步骤3,转发引擎模块根据步骤1与步骤2的信息进行发送子端口选路判决:对包流需要按接收的时间顺序进行转发的,选择与该包的HASH值对应的发送子端口进行转发;无需按接收的时间顺序进行转发的,根据拥塞信息选择累计值L最小的发送子端口进行转发。本发明所述的TRUNK分发方法,同时兼顾了分发语音视频业务和分发纯数据业务的特殊性,能充分的利用各子端口的带宽,同时在一定程度上解决了最优化使用出口带宽问题。

Description

一种TRUNK分发方法
技术领域
本发明涉及包交换芯片,具体的说是一种TRUNK分发方法,尤指包交换芯片的TRUNK分发方法。
背景技术
在包交换芯片中,TRUNK是端口聚合的意思,就是通过软件配置,将2个或多个物理端口组合在一起成为一个逻辑端口,这个逻辑端口的物理带宽等于所有成员端口的带宽总和,从而可以提供一种灵活的增加端口带宽的方法,而无需进行其他改造。
由于一个TURNK组包含多个子端口,这就涉及到了当一个包需要从TURNK组转发时,根据什么准则来选择哪个子物理端口。目前市场上大多数交换芯片提供的分发方法都是基于HASH方法或者循环分配方法。下面对这两种方法进行介绍:
1)HASH方法:
HASH法提供了一种相同HASH值的包流分发到相同子端口的方法,常用于分发语音视频业务。该方法基于收包端口值和数据包上的各种信息如DMAC、SMAC、DIP、SIP等相关信息,进行取位值相异或得出HASH值,每个HASH值对应一个固定的子端口,所以可以实现按顺序转发相同类型包流的优点。但是此种方法的优点也即是它的缺点,容易出现多入单出的现象。因为同一个HASH值的包走的是同一个子端口,如果来源于多个入端口的流量包所得出的HASH值都一样,即多个入端口的包流同时选中相同子端口而导致其中一个子端口严重拥塞,而其他子端口带宽浪费的问题。问题如下:
如图1所示的TURNK连接模型,设AB两芯片之间聚合了8个端口,需用3个BIT值[0,7]来对应的子端口T1-T8。
HASH方法为:PORT[0,2]^DMAC[0,2]^DIP[0,2]
若P1线速发送包内容为DMAC=[0X0000,0X1111FFF1],DIP=[10.26.0.1],PORT1值为1
若P2线速发送包内容为DMAC=[0X0000,0X2222FFF2],DIP=[10.26.1.1],PORT2值为2
则P1和P2端口的包计算出的HASH值都为1,对应子端口都为T2,导致T2出口拥塞,T1带宽浪费。
2)循环分配方法:
循环分配法提供了一种在所有子端口依次循环分发各个数据包的方法,它解决了多入单出的问题,但它无法保证按序转发包流,常用于分发纯数据业务。该方法提供了一种简单的出口负载均衡算法,但是也存在着未最优化使用出口带宽的问题。问题如下:
依然以图1所示的TURNK连接模型为例,设AB两芯片之间聚合了2个端口,则往TRUNK转发的第1,3,5…个包走T1子端口,第2,4,6…个包走第T2子端口,依此循环分配。但是如果TRUNK端口收到的是类似下面交替的序列包:短包,长包,短包,长包……则根据此方法,在T1得到的都是短包,在T2得到的都是长包,从而导致T2拥塞,而T1存在带宽浪费。
由此可见,HASH方法适合分发语音视频业务,它对于分发数据业务容易出现多入单出的问题,循环分配方法只适合分发纯数据业务,且也存在带宽最优化问题,两种方法都存在一定的局限性。
发明内容
针对现有技术中存在的缺陷,本发明的目的在于提供一种TRUNK分发方法,该方法同时兼顾了分发语音视频业务和分发纯数据业务的特殊性,能充分的利用各子端口的带宽,同时在一定程度上解决了最优化使用出口带宽问题。
为达到以上目的,本发明采取的技术方案是:
一种TRUNK分发方法,其特征在于包括以下步骤:
步骤1,包交换芯片收包后,收包分析模块Packet parse对每个收包根据匹配规则进行包序属性的匹配分析,将所有匹配结果送给转发引擎模块Forward engine;所说的包序属性用来说明该种类型的包流在每个发送端口是否需要按照接收的时间顺序进行转发;
步骤2,包缓存模块Buffer对各发送子端口拥塞程度进行计算,并将计算得到的拥塞信息反馈给前级的转发引擎模块Forwardengine;
步骤3,转发引擎模块Forward engine进行发送子端口选路判决:若包序属性说明该种类型的包流需要按接收的时间顺序进行转发,则转发引擎模块Forward engine根据TRUNK配置提供的HASH算法计算出该包的HASH值,选择与该HASH值对应的发送子端口进行转发;若无需按接收的时间顺序进行转发,则转发引擎模块Forwardengine根据拥塞信息选择所有发送子端口中等待转发的包长度累计最小的端口进行转发。
在上述技术方案的基础上,步骤1所说的根据匹配规则进行包序属性的匹配分析包括以下步骤:
步骤1.1,对收包分析模块Packet parse的ACL子模块进行包的匹配规则设置,匹配规则可选择如下所示的任意一个或者多个匹配域:收包源端口,DMAC,SMAC,ETYPE,VLAN ID,VLAN PRIORITY,DIP,SIP,DSCP,其中DMAC、SMAC、ETYPE、VLAN ID、VLAN PRIORITY属于L2层信息,DIP、SIP、DSCP属于L3层信息;匹配结果包含包序属性;
步骤1.2,收包分析模块Packet parse对收到的包进行数据分析,获取收包源端口信息、L2层信息和L3层信息后,将所述信息送到ACL子模块进行包匹配,匹配结果将指出每个收包的包序属性。
在上述技术方案的基础上,步骤2所说的包缓存模块Buffer对各发送子端口拥塞程度进行计算包括以下步骤:
步骤2.1,在包缓存模块Buffer中设定一组缓存计数器,使每个缓存计数器对应一个发送子端口;缓存计数器对相应发送子端口等待转发的包进行长度累计,累计值L以字节为单位;
步骤2.2,缓存计数器按下述规则计数:当包缓存模块Buffer从前级的转发引擎模块Forward engine接收一个包,则将与该包的发送子端口对应的缓存计数器进行加包长计数;当后级的调度模块schedule从包缓存模块Buffer调度完一个包,则将与该包的发送子端口对应的缓存计数器进行减包长计数;
步骤2.3,由于包的发送需要增加包间隙12字节和前导码8字节,所以对每个缓存包进行加包长计数和减包长计数时都需要加上20字节。
本发明所述的TRUNK分发方法,该方法同时兼顾了分发语音视频业务和分发纯数据业务的特殊性,能充分的利用各子端口的带宽,同时在一定程度上解决了最优化使用出口带宽问题。
附图说明
本发明有如下附图:
图1TURNK连接模型;
图2芯片的包处理过程;
图3组合分发法的处理流程;
具体实施方式
以下结合附图对本发明作进一步详细说明。
如图2、3所示,本发明所述的TRUNK分发方法包括以下步骤:
步骤1,包交换芯片收包后,收包分析模块Packet parse对每个收包根据匹配规则进行包序属性的匹配分析,将所有匹配结果送给转发引擎模块Forward engine;所说的包序属性用来说明该种类型的包流在每个发送端口是否需要按照接收的时间顺序进行转发;
步骤2,包缓存模块Buffer对各发送子端口拥塞程度进行计算,并将计算得到的拥塞信息反馈给前级的转发引擎模块Forwardengine;
步骤3,转发引擎模块Forward engine进行发送子端口选路判决:若包序属性说明该种类型的包流需要按接收的时间顺序进行转发,则转发引擎模块Forward engine根据TRUNK配置提供的HASH算法计算出该包的HASH值,选择与该HASH值对应的发送子端口进行转发;若无需按接收的时间顺序进行转发,则转发引擎模块Forwardengine根据拥塞信息选择所有发送子端口中累计值L最小的端口进行转发。
在上述技术方案的基础上,步骤1所说的根据匹配规则进行包序属性的匹配分析包括以下步骤:
步骤1.1,对收包分析模块Packet parse的ACL子模块进行包的匹配规则设置,匹配规则可选择如下所示的任意一个或者多个匹配域:收包源端口,DMAC,SMAC,ETYPE,VLAN ID,VLAN PRIORITY,DIP,SIP,DSCP,其中DMAC、SMAC、ETYPE、VLAN ID、VLAN PRIORITY属于L2层信息,DIP、SIP、DSCP属于L3层信息;匹配结果包含包序属性;
步骤1.2,收包分析模块Packet parse对收到的包进行数据分析,获取收包源端口、L2层信息和L3层信息后,将所述信息送到ACL子模块进行包匹配,匹配结果将指出每个收包的包序属性。
例如:一般情况下,我们会在ACL子模块的匹配规则设置里将语音视频业务包匹配为按序转发,将纯数据业务匹配为无需按序转发。例如:端口5接收语音业务,且语音业务的VLAN ID为100,则我们会配置一条ACL规则,规则里选择了两个匹配域:收包源端口和VLANID,配置其值为收包源端口5,VLAN ID为100,然后配置包序属性值为按序转发,则意味着ACL子模块在匹配到来自端口5且VLAN ID为100的数据包时,将其包序属性设置为按序转发。
在上述技术方案的基础上,步骤2所说的包缓存模块Buffer对各发送子端口拥塞程度进行计算包括以下步骤:
步骤2.1,在包缓存模块Buffer中设定一组缓存计数器,使每个缓存计数器对应一个发送子端口;缓存计数器对相应发送子端口等待转发的包进行长度累计,累计值L以字节为单位;
步骤2.2,缓存计数器按下述规则计数:当包缓存模块Buffer从前级的转发引擎模块Forward engine接收一个包,则将与该包的发送子端口对应的缓存计数器进行加包长计数;当后级的调度模块schedule从包缓存模块Buffer调度完一个包,则将与该包的发送子端口对应的缓存计数器进行减包长计数;
步骤2.3,由于包的发送需要增加包间隙12字节和前导码8字节,所以对每个缓存包进行加包长计数和减包长计数时都需要加上20字节。
设TRUNK组有n个发送子端口,则包缓存模块Buffer中存在长度数组[L1-Ln]与发送子端口一一对应,数组中记录的累计值L其数值越大则表示拥塞越严重,包缓存模块将这些拥塞信息反馈给前级的转发引擎模块。
本发明所述方法的原理是:
配置ACL规则,对每个包进行包序属性判决,需要按序转发的包(简称为有序包)基于HASH方法选择子端口;无需按序转发的包(简称为无序包)则选择当前拥塞情况最小的子端口进行发送。拥塞情况可以用每端口的包缓存长度来计量。比如T1子端口当前的包缓存长度为1k字节,T2子端口当前的包缓存长度为1.5k字节,则T2的拥塞情况比T1严重,也即意味着下一个无序包选择的端口是T1。此种方法对无序包的选路准则进行了优化,它最大程度的避开了与端口的来源、包的内容等来源信息相关性,而只与出口拥塞情况进行相关,即可以满足按序转发的要求,也可以满足最大利用出口带宽的要求。
其优点如下:
1)时刻均衡各子端口的出口负载,有效利用带宽;
2)减小了丢包率和优化了发送时延;
3)可用于分发混合业务;
上述技术方案中各英文缩写含义如下:
ACL:access control list,访问控制列表;
DMAC:destination mac,目标mac地址;
SAMC:source mac,源mac地址;
ETYPE:ethernet type,以太网类型;
VLAN ID:vlan identification,vlan标识值;
VLAN PRIORITY:vlan优先级;
DIP:destination ip,目标ip地址;
SIP:source ip,源ip地址;
DSCP:differentiated services codepoint priority,IP服务类型编码点。

Claims (3)

1.一种TRUNK分发方法,其特征在于包括以下步骤:
步骤1,包交换芯片收包后,收包分析模块Packet parse对每个收包根据匹配规则进行包序属性的匹配分析,将所有匹配结果送给转发引擎模块Forward engine;所说的包序属性用来说明该种类型的包流在每个发送端口是否需要按照接收的时间顺序进行转发;
步骤2,包缓存模块Buffer对各发送子端口拥塞程度进行计算,并将计算得到的拥塞信息反馈给前级的转发引擎模块Forwardengine;
步骤3,转发引擎模块Forward engine进行发送子端口选路判决:若包序属性说明该种类型的包流需要按接收的时间顺序进行转发,则转发引擎模块Forward engine根据TRUNK配置提供的HASH算法计算出该包的HASH值,选择与该HASH值对应的发送子端口进行转发;若无需按接收的时间顺序进行转发,则转发引擎模块Forwardengine根据拥塞信息选择所有发送子端口中等待转发的包长度累计最小的端口进行转发。
2.如权利要求1所述的TRUNK分发方法,其特征在于:步骤1所说的根据匹配规则进行包序属性的匹配分析包括以下步骤:
步骤1.1,对收包分析模块Packet parse的ACL子模块进行包的匹配规则设置,匹配规则可选择如下所示的任意一个或者多个匹配域:收包源端口,DMAC,SMAC,ETYPE,VLAN ID,VLAN PRIORITY,DIP,SIP,DSCP,其中DMAC、SMAC、ETYPE、VLAN ID、VLAN PRIORITY属于L2层信息,DIP、SIP、DSCP属于L3层信息;匹配结果包含包序属性;
步骤1.2,收包分析模块Packet parse对收到的包进行数据分析,获取收包源端口信息、L2层信息和L3层信息后,将所述信息送到ACL子模块进行包匹配,匹配结果将指出每个收包的包序属性。
3.如权利要求1所述的TRUNK分发方法,其特征在于:步骤2所说的包缓存模块Buffer对各发送子端口拥塞程度进行计算包括以下步骤:
步骤2.1,在包缓存模块Buffer中设定一组缓存计数器,使每个缓存计数器对应一个发送子端口;缓存计数器对相应发送子端口等待转发的包进行长度累计,累计值L以字节为单位;
步骤2.2,缓存计数器按下述规则计数:当包缓存模块Buffer从前级的转发引擎模块Forward engine接收一个包,则将与该包的发送子端口对应的缓存计数器进行加包长计数;当后级的调度模块schedule从包缓存模块Buffer调度完一个包,则将与该包的发送子端口对应的缓存计数器进行减包长计数;
步骤2.3,由于包的发送需要增加包间隙12字节和前导码8字节,所以对每个缓存包进行加包长计数和减包长计数时都需要加上20字节。
CN2009101359010A 2009-05-06 2009-05-06 一种trunk分发方法 Expired - Fee Related CN101547154B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2009101359010A CN101547154B (zh) 2009-05-06 2009-05-06 一种trunk分发方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2009101359010A CN101547154B (zh) 2009-05-06 2009-05-06 一种trunk分发方法

Publications (2)

Publication Number Publication Date
CN101547154A CN101547154A (zh) 2009-09-30
CN101547154B true CN101547154B (zh) 2011-06-08

Family

ID=41194052

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2009101359010A Expired - Fee Related CN101547154B (zh) 2009-05-06 2009-05-06 一种trunk分发方法

Country Status (1)

Country Link
CN (1) CN101547154B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102761479B (zh) * 2012-06-28 2015-09-09 华为技术有限公司 链路选择方法和装置
CN103178996B (zh) * 2013-03-15 2015-07-01 烽火通信科技股份有限公司 分布式包交换芯片模型验证系统及验证方法
CN104394070B (zh) * 2014-11-13 2018-05-18 安徽一拓通信科技集团股份有限公司 一种短信网关智能连接装置
CN105227422B (zh) * 2015-09-01 2018-11-13 浙江宇视科技有限公司 一种基于聚合网口的视频数据传输方法和装置
CN113938519A (zh) * 2021-11-11 2022-01-14 深圳市风云实业有限公司 一种基于软硬件结合的网络流量负载均衡方法及系统
CN114070825A (zh) * 2021-11-17 2022-02-18 上海景吾智能科技有限公司 机器人与数字电话通信方法及系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1538665A (zh) * 2003-04-18 2004-10-20 中兴通讯股份有限公司 一种聚合组流量均衡方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1538665A (zh) * 2003-04-18 2004-10-20 中兴通讯股份有限公司 一种聚合组流量均衡方法

Also Published As

Publication number Publication date
CN101547154A (zh) 2009-09-30

Similar Documents

Publication Publication Date Title
CN101547154B (zh) 一种trunk分发方法
US7545740B2 (en) Two-way link aggregation
US9817773B2 (en) System and method for preserving order of data processed by processing engines
CN101729402B (zh) 流相容的动态负荷平衡
US8711752B2 (en) Distributed multicast packet replication with centralized quality of service
US8908522B2 (en) Transmission rate control
US20070053294A1 (en) Network load balancing apparatus, systems, and methods
US7860009B2 (en) Providing backpressure flow control to specific traffic flows
US20040264472A1 (en) Method and system for open-loop congestion control in a system fabric
US20020027917A1 (en) Network routing apparatus
US7680039B2 (en) Network load balancing
CN101170512B (zh) 报文业务处理方法
US8868775B2 (en) Load balancing manipulation of packet flows within a transport conduit
US20120188874A1 (en) Relay device and relay method
CN101789949B (zh) 一种实现负荷分担的方法和路由设备
EP2208322B1 (en) A grid router
US20050152354A1 (en) Method and systems for ordered dynamic distribution of packet flows over network processing means
US7046663B1 (en) System and method for intercepting packets in a pipeline network processor
US20120263462A1 (en) Network Processor for Supporting Residential Gateway Applications
WO2012109910A1 (zh) 链路聚合选路方法及装置
US8520675B1 (en) System and method for efficient packet replication
CN102957631B (zh) 一种预处理方法
US20100158033A1 (en) Communication apparatus in label switching network
US10887237B2 (en) Advanced load balancing based on bandwidth estimation
KR100572696B1 (ko) 광대역 가입자 집선-스위치 장치

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20110608

Termination date: 20210506

CF01 Termination of patent right due to non-payment of annual fee