CN102761479B - 链路选择方法和装置 - Google Patents

链路选择方法和装置 Download PDF

Info

Publication number
CN102761479B
CN102761479B CN201210218665.0A CN201210218665A CN102761479B CN 102761479 B CN102761479 B CN 102761479B CN 201210218665 A CN201210218665 A CN 201210218665A CN 102761479 B CN102761479 B CN 102761479B
Authority
CN
China
Prior art keywords
link
trunk
flow
link circuit
message
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.)
Active
Application number
CN201210218665.0A
Other languages
English (en)
Other versions
CN102761479A (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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201210218665.0A priority Critical patent/CN102761479B/zh
Publication of CN102761479A publication Critical patent/CN102761479A/zh
Priority to PCT/CN2012/087398 priority patent/WO2014000399A1/zh
Application granted granted Critical
Publication of CN102761479B publication Critical patent/CN102761479B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/24Multipath

Abstract

本发明实施例提供一种链路选择方法和装置,方法包括:接收报文,根据接收到的报文的五元组信息选择初始链路;根据本地维护的所述初始链路所在的端口汇聚TRUNK的TRUNK成员流量状态表,获取所述初始链路的链路流量状态;当所述初始链路的链路流量状态未达到预设的流量上限状态时,通过所述初始链路转发所述报文;当所述初始链路的链路流量状态达到预设的流量上限状态时,根据所述TRUNK成员流量状态表从所述TRUNK中选择最优链路转发所述报文。本发明实施例还提供了一种链路选择装置。本实施例有效解决了链路负载不均衡的问题,提高了链路资源的利用率。

Description

链路选择方法和装置
技术领域
本发明涉及通信技术,尤其涉及一种链路选择方法和装置。
背景技术
在数据中心中,多个核心交换机组成堆叠(英文:stack)设备,其通过端口汇聚(英文:TRUNK)链路与汇聚交换机相连,其中,TRUNK又称为链路聚合组(英文:Link Aggregation Group,简称:LAG)。TRUNK将多个物理链路捆绑在一起当作一个逻辑链路使用,即可以将多组链路的带宽叠加起来使用。TRUNK技术可以实现TRUNK内部多条链路互为备份的功能,即当TRUNK中的一条链路出现故障时,不影响其他链路的工作,同时多条链路之间还能实现流量的负载均衡。在进行TRUNK链路选择时,通常对固定的报文特征区域取值进行哈希(英文:hash)处理,然后根据hash结果选择相应的路径。由于报文流量本身具有不确定性,因此在TRUNK中会出现某些链路拥塞,而其他链路上有空余带宽无法使用的情况,即hash不均匀问题,目前hash不均匀成为链路负载均衡中需要解决的主要问题。
在现有技术中,通常基于报文中的静态元素进行hash选路,例如基于源MAC地址、目的MAC地址、源IP地址或目的IP地址中的一个或多个进行hash选路。
然而,现有技术中的hash选路方案无法有效解决链路负载不均衡的问题。
发明内容
本发明实施例提供一种链路选择方法和装置,有效解决链路负载不均衡的问题,提高链路资源的利用率。
本发明实施例的第一方面提供一种链路选择方法,包括:
接收报文,根据接收到的所述报文的五元组信息选择初始链路;
根据本地维护的所述初始链路所在的端口汇聚TRUNK的TRUNK成员流量状态表,获取所述初始链路的链路流量状态;
当所述初始链路的链路流量状态未达到预设的流量上限状态时,通过所述初始链路转发所述报文;
当所述初始链路的链路流量状态达到预设的流量上限状态时,根据所述TRUNK成员流量状态表从所述TRUNK中选择最优链路转发所述报文。
在第一方面的第一种可能的实现方式中,所述根据所述TRUNK成员流量状态表从所述TRUNK中选择最优链路转发所述报文包括:
当所述TRUNK中除所述初始链路外的其他链路的链路流量状态均达到预设的流量上限状态时,通过所述初始链路转发所述报文;
当所述TRUNK中除所述初始链路外的其他链路未均达到预设的流量上限状态时,通过链路流量状态最佳的链路转发所述报文。
结合第一方面以及第一个方面的第一种可能的实现方式,在第二种可能的实现方式中,本发明实施例提供的链路选择方法还包括:
获取物理端口的流量统计信息;
若所述物理端口属于一个TRUNK,则根据所述物理端口的流量统计信息更新本地维护的所述TRUNK的TRUNK成员流量状态表,并将所述物理端口的流量统计信息同步到所述TRUNK内其他物理链路对应的其他转发芯片,以使所述其他转发芯片根据所述物理端口的流量统计信息更新各自本地维护的所述TRUNK成员流量状态表。
结合第一方面的第二种可能的实现方式,在第三种可能的实现方式中,所述将所述物理端口的流量统计信息同步到所述TRUNK内其他物理链路对应的其他转发芯片包括:
向所述TRUNK内的其他物理链路对应的其他转发芯片发送硬件同步消息,在所述硬件同步消息中携带所述物理端口的流量统计信息。
结合第一方面的第二种可能的实现方式,在第四种可能的实现方式中,所述将所述物理端口的流量统计信息同步到所述TRUNK内其他物理链路对应的其他转发芯片包括:
向所述物理端口所在的转发芯片所属的CPU发送软件同步消息,在所述软件同步消息中携带所述物理端口的流量统计信息;
由所述物理端口所在的转发芯片所属的CPU,向所述TRUNK内其他物理链路对应的其他转发芯片所属的CPU转发所述软件同步消息,以将所述物理端口的流量统计信息分别通过所述其他转发芯片所属的CPU转发到所述其他转发芯片。
本发明实施例的第二方面提供一种链路选择装置,包括至少一个接收端口和至少一个转发芯片:
所述接收端口,用于接收报文,并将接收的所述报文发送给相应的转发芯片;
所述转发芯片,用于根据所述报文的五元组信息选择初始链路;根据本地维护的所述初始链路所在的端口汇聚TRUNK的TRUNK成员流量状态表,获取所述初始链路的链路流量状态;当所述初始链路的链路流量状态未达到预设的流量上限状态时,通过所述初始链路转发所述报文;当所述初始链路的链路流量状态达到预设的流量上限状态时,根据所述TRUNK成员流量状态表从所述TRUNK中选择最优链路转发所述报文。
在第二方面的第一种可能的实现方式中,所述转发芯片包括:
选择模块,用于根据所述接收端口接收到的所述报文的五元组信息选择初始链路;
获取模块,用于根据本地维护的所述初始链路所在的端口汇聚TRUNK的TRUNK成员流量状态表,获取所述初始链路的链路流量状态;
第一转发模块,用于当所述初始链路的链路流量状态未达到预设的流量上限状态时,通过所述初始链路转发所述报文;
第二转发模块,用于当所述初始链路的链路流量状态达到预设的流量上限状态时,根据所述TRUNK成员流量状态表从所述TRUNK中选择最优链路转发所述报文。
结合第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述第二转发模块具体用于当所述初始链路的链路流量状态达到预设的流量上限状态,且所述TRUNK中除所述初始链路外的其他链路的链路流量状态均达到预设的流量上限状态时,通过所述初始链路转发所述报文;或者,当所述初始链路的链路流量状态达到预设的流量上限状态,且所述TRUNK中除所述初始链路外的其他链路未均达到预设的流量上限状态时,通过链路流量状态最佳的链路转发所述报文。
结合第二方面的第一种可能的实现方式以及第二方面的第二种可能的实现方式,在第三种实现方式中,本发明实施例中的链路选择装置还包括:
统计模块,用于获取物理端口的流量统计信息;
同步模块,用于若所述物理端口属于一个TRUNK,则根据所述物理端口的流量统计信息更新本地维护的所述TRUNK的TRUNK成员流量状态表,并将所述物理端口的流量统计信息同步到所述TRUNK内其他物理链路对应的其他转发芯片,以使所述其他转发芯片根据所述物理端口的流量统计信息更新各自本地维护的所述TRUNK成员流量状态表。
结合第二方面的第三种实现方式,在第四种实现方式中,所述同步模块具体用于若所述物理端口属于一个TRUNK,则根据所述物理端口的流量统计信息更新本地维护的所述TRUNK的TRUNK成员流量状态表,向所述TRUNK内其他物理链路对应的其他转发芯片发送硬件同步消息,在所述硬件同步消息中携带所述物理端口的流量统计信息,以使所述其他转发芯片根据所述物理端口的流量统计信息更新各自本地维护的所述TRUNK成员流量状态表。
本发明实施例的技术效果是:先根据接收的报文的五元组信息选择一个初始链路,根据交换机本地维护的TRUNK成员流量状态表,获取初始链路的链路流量状态,当初始链路的链路流量状态未达到流量上限状态时,直接通过该初始链路转发报文,当初始链路的链路流量状态达到流量上限状态时,根据TRUNK成员流量状态表从该TRUNK中选择最优链路转发该报文;本实施例有效解决了链路负载不均衡的问题,提高了链路资源的利用率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明链路选择方法实施例一的流程图;
图2为本发明链路选择方法实施例二的流程图;
图3为本发明链路选择方法实施例二中硬件同步过程示意图;
图4为本发明链路选择方法实施例二中软件同步过程示意图;
图5为本发明链路选择装置实施例一的结构示意图;
图6为本发明链路选择装置实施例二的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明链路选择方法实施例一的流程图,如图1所示,本实施例提供了一种链路选择方法,可以具体包括如下步骤:
步骤101,接收报文,根据接收到的所述报文的五元组信息选择初始链路。
在本实施例中,当数据中心中的服务器通过交换机向IP骨干网(英文:Backbone)中的网络设备发送报文,或者IP Backbone中的网络设备通过交换机向服务器发送报文时,报文经过交换机中的各线卡(英文:Line Card)或转发芯片(英文:forwarding chip)进行转发,本实施例中选择转发报文的线卡或转发芯片的过程为链路选择过程。本步骤中,当交换机接收到需要转发的报文后,从该报文中获取该报文的五元组信息,此处的五元组信息可以包括该报文的源IP地址、源端口、目的IP地址、目的端口以及传输层协议号,根据该报文的五元组信息选择转发该报文的初始链路。此处的初始链路是为了与后续选择的最优链路相区别而命名的,其并不存在特定的含义,即先通过五元组信息选择一条链路作为初始链路,后续当初始链路不满足预设的条件时,再根据其他策略选择最优链路来代替该初始链路。具体可以采用现有的hash机制来获取初始链路,例如以源IP地址作为hash因子,通过hash算法得到初始链路;或者以源IP地址和源端口作为hash因子,或者以源IP地址和目的IP地址作为hash因子等。
步骤102,根据本地维护的所述初始链路所在的TRUNK的TRUNK成员流量状态表,获取所述初始链路的链路流量状态。
在利用现有的hash机制获取到初始链路后,本实施例引入交换机本地维护的TRUNK成员流量状态表,交换机根据该TRUNK成员流量状态表获取该初始链路的链路流量状态,此处的TRUNK成员流量状态表为步骤201选择的初始链路所在的TRUNK的TRUNK成员流量状态表。在本实施例中,一个数据中心可以根据实际情况设置多条TRUNK,TRUNK为逻辑链路,一条TRUNK可以由多条物理链路组成。TRUNK成员流量状态表用于存储属于该TRUNK的各个成员的链路流量状态,其中,链路流量状态用于指示链路当前的流量状态,如该链路上已承载的流量值的大小,或者该链路的占用率等。链路的占用率是指该链路已经被使用的带宽和链路最大带宽之间的比值。通过链路流量状态可以反映各成员链路当前处于拥塞状态,空闲状态,还是正常状态。
步骤103,当所述初始链路的链路流量状态未达到预设的流量上限状态时,通过所述初始链路转发所述报文。
当获取到的初始链路的链路流量状态未达到预设的流量上限状态时,直接通过该初始链路转发所述报文。该流量上限状态是指能够确定链路处于拥塞状态的阈值,可以是该链路上允许承载的流量上限值,也可以是该链路允许的最大占用率。如当初始链路上已承载的流量值小于预设的流量上限值时,表明该初始链路的链路流量状态未达到流量上限状态,此时表明步骤201选出的初始链路当前未拥塞,可以直接通过该初始链路转发报文,无需对其进行进一步调整。
步骤104,当所述初始链路的链路流量状态达到预设的流量上限状态时,根据所述TRUNK成员流量状态表从所述TRUNK中选择最优链路转发所述报文。
当获取到的初始链路的链路流量状态已达到预设的流量上限状态时,根据所述TRUNK成员流量状态表从所述TRUNK中选择最优链路转发所述报文。例如,当初始链路上已承载的流量值大于或等于预设的流量上限值时,表明该初始链路的链路流量状态已达到流量上限状态,该初始链路当前已拥塞,则不能再通过该初始链路转发报文,需要进行进一步调整,即根据TRNK成员流量状态表从TRUNK中选择最优链路转发报文。由于TRUNK成员流量状态表可以反映同一个TRUNK内所有链路的链路流量状态,从而通过交换机本地维护的TRUNK成员流量状态表可以获知其他转发芯片或线卡上的物理链路的空闲或拥塞情况,从而从TRUNK成员链路中选出一个当前较空闲的链路作为最优链路转发该报文。本实施例中链路的链路流量状态即为链路上的负载情况,由此可见,本实施例通过TRUNK成员流量状态表来获取各物理链路的链路负载情况,当某条物理链路拥塞时,可以直接将其上承载的流量转到其他处于空闲状态的链路上,从而有效解决了链路负载不均衡的问题。
本实施例提供的链路选择方法,先根据接收的报文的五元组信息选择一个初始链路,根据交换机本地维护的TRUNK成员流量状态表,获取初始链路的链路流量状态,当初始链路的链路流量状态未达到流量上限状态时,直接通过该初始链路转发报文,当初始链路的链路流量状态达到流量上限状态时,根据TRUNK成员流量状态表从该TRUNK中选择最优链路转发该报文;本实施例有效解决了链路负载不均衡的问题,提高了链路资源的利用率。
本发明实施例一上述的链路选择方法中由交换机执行的步骤具体可以由交换机中的转发芯片来执行,此种情况下,转发芯片通过与该转发芯片连接的交换机端口来接收报文,并且,所述TRUNK成员流量状态表由所述转发芯片本地维护。进一步地,当转发芯片执行上述实施例一所述的方法时,所述方法还可以进一步扩展。如图2所示,本实施例提供了另一种链路选择方法,可以具体包括如下步骤:
步骤201,获取物理端口的流量统计信息。
在本实施例中,本步骤为转发芯片获取物理端口的流量统计信息,具体来说,所述转发芯片内部的硬件寄存器对物理端口的流量进行统计,然后硬件寄存器将统计获取到的流量统计信息上报给所述转发芯片。其中,每个转发芯片分别获取各自的物理端口的流量统计信息。需要指出的是,硬件寄存器可以对各物理端口的流量进行实时监控,当某个物理端口的流量增加或减少时,硬件寄存器将更新后的流量统计信息上报给相应的转发芯片。
步骤202,判断物理端口是否属于一个TRUNK,如果是,则执行步骤203,否则结束本流程。
当获取到每个物理端口的流量统计信息后,先判断该物理端口是否属于其中一个TRUNK,即判断该物理端口为一个TRUNK的成员,还是一个单独的物理端口;当其属于其中一个TRUNK时,执行后续步骤203;当其为单独的物理端口时,该物理端口对应的物理链路不属于之前设置的任一TRUNK,则无需更新TRUNK成员流量状态表,该物理链路不属于本实施例负载均衡的范畴。
步骤203,根据物理端口的流量统计信息更新本地维护的TRUNK的TRUNK成员流量状态表。
当物理端口属于其中一个TRUNK时,表明物理端口对应的物理链路为该TRUNK的成员,则根据该物理端口的流量统计信息更新本地维护的TRUNK成员流量状态表中该物理端口对应的物理链路的链路流量状态,该TRUNK成员流量状态表包括该物理端口对应的物理链路所述的TRUNK内各物理链路的链路流量状态。
步骤204,将所述物理端口的流量统计信息同步到TRUNK内的其他物理链路所对应的转发芯片,以使其他转发芯片根据所述物理端口的流量统计信息更新各自本地维护的TRUNK成员流量状态表。
在一个转发芯片获取到其某个物理端口的流量统计信息后,将该流量统计信息同步到该物理端口对应的物理链路所属的TRUNK内其他物理链路所对应的转发芯片。由于一个TRUNK由多条物理链路构成,而每条物理链路对应一个转发芯片上的一个物理端口,则TRUNK内的各物理链路与各转发芯片相对应;在本实施例中,通过将同一TRUNK内不同物理链路对应的不同转发芯片加入到同一个逻辑组播组中,定时在同一个组播组中同步彼此的流量统计信息。具体地,转发芯片间可以通过硬件的方式同步,也可以通过软件的方式同步。
图3为本发明链路选择方法实施例二中硬件同步过程示意图,如图3所示,当某个转发芯片获取到其某个物理端口的流量统计信息后,向组播组内的其他转发芯片发送硬件同步消息,在该硬件同步消息中携带该流量统计信息,从而将该物理端口的流量统计信息同步到同一组播组内的其他转发芯片,在该组播组内维护了该物理端口对应的物理链路所属的TRUNK的TRUNK成员流量状态表。
图4为本发明链路选择方法实施例二中软件同步过程示意图,如图4所示,对于有些不支持转发芯片间硬件同步的情况,可以通过软件同步的方式来实现同步。具体来说,在进行流量统计信息的同步时,当转发芯片通过其物理端口获取到流量统计信息后,该转发芯片可以向其自身所属的CPU发送软件同步消息,在该软件同步消息中携带所述物理端口的流量统计信息。在本实施例中,通常在一个线卡上设置有一个CPU,此处转发芯片所属的CPU为该转发芯片所在的线卡中的CPU。再由该转发芯片所属的CPU,向TRUNK内其他物理链路对应的其他转发芯片所属的CPU转发该软件同步消息,此处的TRUNK为获取该流量统计信息的该物理端口对应的物理链路所属的TRUNK,然后,其他转发芯片所属的CPU再将该软件同步消息下发到各自的转发芯片上,从而将物理端口的流量统计信息分别通过其他转发芯片所属的CPU转发到所述其他转发芯片。其中,不同CPU之间的通信可以通过各自的软件同步服务进程之间的通信来实现。
具体地,本实施例可以实时对TRUNK成员流量状态表进行实时生成和维护,即上述步骤201-204的可以在步骤205之前执行,也可以与步骤205同步执行,还可以在步骤205之后的任一时间点执行。
步骤205,接收报文,根据接收到的所述报文的五元组信息选择初始链路,本步骤与上述步骤101类似,此处不再赘述。
步骤206,根据本地维护的初始链路所在的TRUNK的TRUNK成员流量状态表,获取所述初始链路的链路流量状态,本步骤与上述步骤102类似,此处不再赘述。
步骤207,判断初始链路的链路流量状态是否达到预设的流量上限状态,如果是,则执行步骤208,否则执行步骤210。
在通过TRUNK成员流量状态表获取到初始链路的链路流量状态后,先判断该链路流量状态是否达到预设的流量上限状态,例如,判断该初始链路中的流量值是否大于预设的流量上限值,或者判断该初始链路中的链路占用率是否大于预设的占用率上限值,如果是,则执行步骤208,否则执行步骤210。
步骤208,判断所述TRUNK中除初始链路外的其他链路的链路流量状态是否均达到预设的流量上限状态,如果是,则执行步骤210,否则执行步骤209。
当初始链路的链路流量状态达到预设的流量上限状态时,该初始链路当前可能已经出现拥塞,则需要考虑从该初始链路所属的TRUNK中重新选择一条空闲的物理链路。具体为继续判断该TRUNK中除该初始链路外的其他链路的链路流量状态是否均达到预设的流量上限状态,具体可以通过转发芯片本地维护的TRUNK成员流量状态表来获取其他链路的链路流量状态,如果该TRUNK中除该初始链路外的其他链路的链路流量状态均达到预设的流量上限状态,则表明当前TRUNK中各链路均已可能出现拥塞,此时即使对链路进行调整也不会带来更好的效果,反而会因链路调整引起资源消耗,因此执行步骤210。如果该TRUNK中除该初始链路外的其他链路中存在链路流量状态未达到预设的流量上限状态的链路,则执行步骤209。
步骤209,通过链路流量状态最佳的链路转发所述报文。
如果TRUNK中除该初始链路外的其他链路中存在链路流量状态未达到预设的流量上限状态的链路,则可以从该TRUNK中选择一条较空闲的链路来代替初始链路,具体可以选择当前链路流量状态最佳的链路代替初始链路转发报文。此处的链路流量状态最佳的链路可以为链路中承载的流量值最小的链路,也即最空闲的链路。
步骤210,通过所述初始链路转发所述报文。
如果初始链路的链路流量状态未达到流量上限状态,表明该初始链路当前比较空闲,则直接通过该初始链路转发报文,无需对该初始链路进行调整,以免造成不必要的资源浪费。如果初始链路的链路流量状态达到流量上限状态,且同一TRUNK中的其他链路的链路流量状态也均达到流量上限状态,则仍通过该初始链路转发报文,无需对该初始链路进行调整。
本实施例提供的链路选择方法,先根据接收的报文的五元组信息选择一个初始链路,根据转发芯片本地维护的TRUNK成员流量状态表,获取初始链路的链路流量状态,当初始链路的链路流量状态未达到流量上限状态时,直接通过该初始链路转发报文,当初始链路的链路流量状态达到流量上限状态时,根据TRUNK成员流量状态表从该TRUNK中选择最优链路转发该报文;本实施例有效解决了链路负载不均衡的问题,提高了链路资源的利用率。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
图5为本发明链路选择装置实施例一的结构示意图,如图5所示,本实施例提供了一种链路选择装置,可以具体执行上述方法实施例一中的各个步骤,此处不再赘述。本实施例提供的链路选择装置可以具体包括至少一个接收端口501和至少一个转发芯片502。
其中,所述接收端口501用于接收报文,并将接收的所述报文发送给相应的转发芯片502。转发芯片502用于根据所述报文的五元组信息选择初始链路;根据本地维护的所述初始链路所在的端口汇聚TRUNK的TRUNK成员流量状态表,获取所述初始链路的链路流量状态;当所述初始链路的链路流量状态未达到预设的流量上限状态时,通过所述初始链路转发所述报文;当所述初始链路的链路流量状态达到预设的流量上限状态时,根据所述TRUNK成员流量状态表从所述TRUNK中选择最优链路转发所述报文。
图6为本发明另一种链路选择装置实施例的结构示意图,如图6所示,本实施例提供了一种链路选择装置,可以具体执行上述方法实施例二中的各个步骤,此处不再赘述。本实施例提供的链路选择装置在上述图5所示的基础之上,转发芯片502可以具体包括选择模块512、获取模块522、第一转发模块532和第二转发模块542。图6中仅示出了其中一个转发芯片502的内部模块结构,其他转发芯片与其类似,此处不再赘述。
其中,选择模块512用于根据接收端口501接收到的报文的五元组信息选择初始链路。获取模块522用于根据本地维护的所述初始链路所在的端口汇聚TRUNK的TRUNK成员流量状态表,获取所述初始链路的链路流量状态。第一转发模块532用于当所述初始链路的链路流量状态未达到预设的流量上限状态时,通过所述初始链路转发所述报文。第二转发模块542用于当所述初始链路的链路流量状态达到预设的流量上限状态时,根据所述TRUNK成员流量状态表从所述TRUNK中选择最优链路转发所述报文。
具体地,本实施例中的第二转发模块542具体用于当所述初始链路的链路流量状态达到预设的流量上限状态,且所述TRUNK中除所述初始链路外的其他链路的链路流量状态均达到预设的流量上限状态时,通过所述初始链路转发所述报文。或者,第二转发模块542具体用于当所述初始链路的链路流量状态达到预设的流量上限状态,且所述TRUNK中除所述初始链路外的其他链路未均达到预设的流量上限状态时,通过链路流量状态最佳的链路转发所述报文。
进一步地,本实施例提供的链路选择装置中的转发芯片502还可以包括统计模块552。其中,统计模块552用于获取物理端口的流量统计信息。
进一步地,本实施例提供的链路选择装置中的转发芯片502还可以包括同步模块562。同步模块562用于若所述物理端口属于一个TRUNK,则根据所述物理端口的流量统计信息更新本地维护的所述TRUNK的TRUNK成员流量状态表,并将所述物理端口的流量统计信息同步到所述TRUNK内其他物理链路对应的其他转发芯片,以使所述其他转发芯片根据所述物理端口的流量统计信息更新各自本地维护的所述TRUNK成员流量状态表。
更进一步地,本实施例中的同步模块562可以具体用于若所述物理端口属于一个TRUNK,则根据所述物理端口的流量统计信息更新本地维护的所述TRUNK的TRUNK成员流量状态表,向所述TRUNK内其他物理链路对应的其他转发芯片发送硬件同步消息,在所述硬件同步消息中携带所述物理端口的流量统计信息,以使所述其他转发芯片根据所述物理端口的流量统计信息更新各自本地维护的所述TRUNK成员流量状态表。
本实施例提供的链路选择装置,先根据接收的报文的五元组信息选择一个初始链路,根据转发芯片本地维护的TRUNK成员流量状态表,获取初始链路的链路流量状态,当初始链路的链路流量状态未达到流量上限状态时,直接通过该初始链路转发报文,当初始链路的链路流量状态达到流量上限状态时,根据TRUNK成员流量状态表从该TRUNK中选择最优链路转发该报文;本实施例有效解决了链路负载不均衡的问题,提高了链路资源的利用率。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (9)

1.一种链路选择方法,其特征在于,包括:
交换机接收报文,根据接收到的所述报文的五元组信息选择初始链路;
所述交换机根据本地维护的所述初始链路所在的端口汇聚TRUNK的TRUNK成员流量状态表,获取所述初始链路的链路流量状态;
当所述初始链路的链路流量状态未达到预设的流量上限状态时,所述交换机通过所述初始链路转发所述报文;
当所述初始链路的链路流量状态达到预设的流量上限状态时,所述交换机根据所述TRUNK成员流量状态表从所述TRUNK中选择最优链路转发所述报文;
其中,所述交换机根据所述TRUNK成员流量状态表从所述TRUNK中选择最优链路转发所述报文包括:
当所述TRUNK中除所述初始链路外的其他链路的链路流量状态均达到预设的流量上限状态时,所述交换机通过所述初始链路转发所述报文;
当所述TRUNK中除所述初始链路外的其他链路未均达到预设的流量上限状态时,所述交换机通过链路流量状态最佳的链路转发所述报文。
2.根据权利要求1所述的方法,其特征在于,还包括:
所述交换机获取物理端口的流量统计信息;
若所述物理端口属于一个TRUNK,则所述交换机根据所述物理端口的流量统计信息更新本地维护的所述TRUNK的TRUNK成员流量状态表,并将所述物理端口的流量统计信息同步到所述TRUNK内其他物理链路对应的其他转发芯片,以使所述其他转发芯片根据所述物理端口的流量统计信息更新各自本地维护的所述TRUNK成员流量状态表。
3.根据权利要求2所述的方法,其特征在于,所述将所述物理端口的流量统计信息同步到所述TRUNK内其他物理链路对应的其他转发芯片包括:
所述交换机向所述TRUNK内的其他物理链路对应的其他转发芯片发送硬件同步消息,在所述硬件同步消息中携带所述物理端口的流量统计信息。
4.根据权利要求2所述的方法,其特征在于,所述将所述物理端口的流量统计信息同步到所述TRUNK内其他物理链路对应的其他转发芯片包括:
所述交换机向所述物理端口所在的转发芯片所属的CPU发送软件同步消息,在所述软件同步消息中携带所述物理端口的流量统计信息;
由所述物理端口所在的转发芯片所属的CPU,向所述TRUNK内其他物理链路对应的其他转发芯片所属的CPU转发所述软件同步消息,以将所述物理端口的流量统计信息分别通过所述其他转发芯片所属的CPU转发到所述其他转发芯片。
5.一种链路选择装置,其特征在于,包括至少一个接收端口和至少一个转发芯片:
所述接收端口,用于接收报文,并将接收的所述报文发送给相应的转发芯片;
所述转发芯片,用于根据所述报文的五元组信息选择初始链路;根据本地维护的所述初始链路所在的端口汇聚TRUNK的TRUNK成员流量状态表,获取所述初始链路的链路流量状态;当所述初始链路的链路流量状态未达到预设的流量上限状态时,通过所述初始链路转发所述报文;当所述初始链路的链路流量状态达到预设的流量上限状态时,根据所述TRUNK成员流量状态表从所述TRUNK中选择最优链路转发所述报文。
6.根据权利要求5所述的装置,所述转发芯片包括:
选择模块,用于根据所述接收端口接收到的所述报文的五元组信息选择初始链路;
获取模块,用于根据本地维护的所述初始链路所在的端口汇聚TRUNK的TRUNK成员流量状态表,获取所述初始链路的链路流量状态;
第一转发模块,用于当所述初始链路的链路流量状态未达到预设的流量上限状态时,通过所述初始链路转发所述报文;
第二转发模块,用于当所述初始链路的链路流量状态达到预设的流量上限状态时,根据所述TRUNK成员流量状态表从所述TRUNK中选择最优链路转发所述报文。
7.根据权利要求6所述的装置,其特征在于,所述第二转发模块具体用于当所述初始链路的链路流量状态达到预设的流量上限状态,且所述TRUNK中除所述初始链路外的其他链路的链路流量状态均达到预设的流量上限状态时,通过所述初始链路转发所述报文;或者,当所述初始链路的链路流量状态达到预设的流量上限状态,且所述TRUNK中除所述初始链路外的其他链路未均达到预设的流量上限状态时,通过链路流量状态最佳的链路转发所述报文。
8.根据权利要求6或7所述的装置,其特征在于,还包括:
统计模块,用于获取物理端口的流量统计信息;
同步模块,用于若所述物理端口属于一个TRUNK,则根据所述物理端口的流量统计信息更新本地维护的所述TRUNK的TRUNK成员流量状态表,并将所述物理端口的流量统计信息同步到所述TRUNK内其他物理链路对应的其他转发芯片,以使所述其他转发芯片根据所述物理端口的流量统计信息更新各自本地维护的所述TRUNK成员流量状态表。
9.根据权利要求8所述的装置,其特征在于,所述同步模块具体用于若所述物理端口属于一个TRUNK,则根据所述物理端口的流量统计信息更新本地维护的所述TRUNK的TRUNK成员流量状态表,向所述TRUNK内其他物理链路对应的其他转发芯片发送硬件同步消息,在所述硬件同步消息中携带所述物理端口的流量统计信息,以使所述其他转发芯片根据所述物理端口的流量统计信息更新各自本地维护的所述TRUNK成员流量状态表。
CN201210218665.0A 2012-06-28 2012-06-28 链路选择方法和装置 Active CN102761479B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201210218665.0A CN102761479B (zh) 2012-06-28 2012-06-28 链路选择方法和装置
PCT/CN2012/087398 WO2014000399A1 (zh) 2012-06-28 2012-12-25 链路选择方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210218665.0A CN102761479B (zh) 2012-06-28 2012-06-28 链路选择方法和装置

Publications (2)

Publication Number Publication Date
CN102761479A CN102761479A (zh) 2012-10-31
CN102761479B true CN102761479B (zh) 2015-09-09

Family

ID=47055805

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210218665.0A Active CN102761479B (zh) 2012-06-28 2012-06-28 链路选择方法和装置

Country Status (2)

Country Link
CN (1) CN102761479B (zh)
WO (1) WO2014000399A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4092976A4 (en) * 2020-02-07 2023-06-28 Huawei Technologies Co., Ltd. Method and apparatus for determining link forwarding service flow

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102761479B (zh) * 2012-06-28 2015-09-09 华为技术有限公司 链路选择方法和装置
JP5970723B2 (ja) * 2012-06-28 2016-08-17 ▲ホア▼▲ウェイ▼技術有限公司Huawei Technologies Co.,Ltd. 輻輳状態報告方法およびアクセス・ネットワーク装置
CN103401801A (zh) * 2013-08-07 2013-11-20 盛科网络(苏州)有限公司 动态负载均衡的实现方法及装置
CN104135445B (zh) * 2014-07-29 2017-12-19 迈普通信技术股份有限公司 一种基于流的链路汇聚负载均衡的方法及装置
CN104580002B (zh) * 2015-01-14 2017-07-28 盛科网络(苏州)有限公司 大流负载均衡转发方法及装置
CN107154861B (zh) * 2016-03-02 2019-11-29 华为技术有限公司 一种堆叠系统的数据传输方法及装置
CN106612218A (zh) * 2017-01-01 2017-05-03 国云科技股份有限公司 一种虚拟访问入口数据包的地区区域特征提取方法
CN107018088B (zh) * 2017-03-06 2020-03-17 北京安博通科技股份有限公司 传输链路选择方法及装置
CN107623640A (zh) * 2017-11-07 2018-01-23 北京锐安科技有限公司 一种增强哈希算法的方法以及装置
CN107864094B (zh) * 2017-11-15 2020-08-18 新华三技术有限公司 一种流量选路方法、装置和机器可读存储介质
CN112702277B (zh) * 2020-12-15 2023-01-10 锐捷网络股份有限公司 一种负载均衡配置优化的方法和装置
CN113347230B (zh) * 2021-05-13 2022-09-06 长沙星融元数据技术有限公司 基于可编程交换机的负载均衡方法、装置、设备及介质
CN113938519A (zh) * 2021-11-11 2022-01-14 深圳市风云实业有限公司 一种基于软硬件结合的网络流量负载均衡方法及系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101729424A (zh) * 2009-12-16 2010-06-09 杭州华三通信技术有限公司 一种流量转发的方法、设备和系统
CN102065004A (zh) * 2009-11-12 2011-05-18 株式会社日立制作所 具有数据包分配功能的装置及数据包分配方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101547154B (zh) * 2009-05-06 2011-06-08 烽火通信科技股份有限公司 一种trunk分发方法
CN101729425B (zh) * 2009-12-22 2012-07-11 杭州华三通信技术有限公司 Vrrp组网中流量发送的方法及设备
CN102325124B (zh) * 2011-05-23 2016-08-17 北京网康科技有限公司 一种支持引流功能的应用识别设备及方法
CN102761479B (zh) * 2012-06-28 2015-09-09 华为技术有限公司 链路选择方法和装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102065004A (zh) * 2009-11-12 2011-05-18 株式会社日立制作所 具有数据包分配功能的装置及数据包分配方法
CN101729424A (zh) * 2009-12-16 2010-06-09 杭州华三通信技术有限公司 一种流量转发的方法、设备和系统

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4092976A4 (en) * 2020-02-07 2023-06-28 Huawei Technologies Co., Ltd. Method and apparatus for determining link forwarding service flow
US11876680B2 (en) 2020-02-07 2024-01-16 Huawei Technologies Co., Ltd. Method and apparatus for determining link for forwarding service flow

Also Published As

Publication number Publication date
CN102761479A (zh) 2012-10-31
WO2014000399A1 (zh) 2014-01-03

Similar Documents

Publication Publication Date Title
CN102761479B (zh) 链路选择方法和装置
CN108306777B (zh) 基于sdn控制器的虚拟网关主备切换方法及装置
US8401026B2 (en) Achieving about an equal number of active links across chassis in a virtual port-channel environment
KR102014433B1 (ko) 미들웨어 머신 환경에서 기능이 저하된 팻-트리들을 디스커버링 및 라우팅하는 것을 지원하는 시스템 및 방법
US8780701B2 (en) Communication apparatus and packet distribution method
CN104753828A (zh) 一种sdn控制器、数据中心系统和路由连接方法
US10015098B2 (en) Systems and methods to create highly scalable network services
EP3713160A1 (en) Packet transmission method and apparatus
US11979283B2 (en) Stacking-port configuration using zero-touch provisioning
CN103067291A (zh) 一种上下行链路关联的方法和装置
EP3029883A1 (en) Network protection method and apparatus, next-ring node, and system
CN104901882A (zh) 一种设备切换方法、装置和服务器
CN114371912A (zh) 数据中心的虚拟网络管理方法及数据中心系统
US9819575B2 (en) Path selection based on error analysis
CN102413052B (zh) 一种接入网络的方法、装置及系统
US8902738B2 (en) Dynamically adjusting active members in multichassis link bundle
CN104702498A (zh) 一种通过协调保护减少设备间光连接数量的方法及装置
CN104348737B (zh) 一种组播报文的传输方法及交换机
CN102857436B (zh) 一种基于irf网络的流量传输方法和设备
CN108199986B (zh) 一种数据传输方法、堆叠设备及堆叠系统
US11916768B2 (en) Information sharing method and apparatus in redundancy network, and computer storage medium
CN108282406B (zh) 一种数据传输方法、堆叠设备及堆叠系统
CN102045259B (zh) 分组交换设备以及管理用户业务的方法
EP4221142A1 (en) Packet sending method, device, and system
EP4164187A1 (en) Load balancing method, apparatus and system

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