CN113852561A - 一种数据传输方法、装置以及网元 - Google Patents
一种数据传输方法、装置以及网元 Download PDFInfo
- Publication number
- CN113852561A CN113852561A CN202110935234.5A CN202110935234A CN113852561A CN 113852561 A CN113852561 A CN 113852561A CN 202110935234 A CN202110935234 A CN 202110935234A CN 113852561 A CN113852561 A CN 113852561A
- Authority
- CN
- China
- Prior art keywords
- link
- links
- member links
- flow information
- determining
- 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.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
- H04L47/125—Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/28—Routing or path finding of packets in data switching networks using route fault recovery
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1004—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0061—Error detection codes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0654—Management of faults, events, alarms or notifications using network fault recovery
- H04L41/0668—Management of faults, events, alarms or notifications using network fault recovery by dynamic selection of recovery network elements, e.g. replacement by the most appropriate element after failure
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0823—Errors, e.g. transmission errors
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/16—Multipoint routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/22—Alternate routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/24—Multipath
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
- H04L45/7453—Address table lookup; Address filtering using hashing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2483—Traffic characterised by specific attributes, e.g. priority or QoS involving identification of individual flows
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/41—Flow control; Congestion control by acting on aggregated flows or links
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/09—Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Environmental & Geological Engineering (AREA)
- Computer Security & Cryptography (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
一种数据传输方法、装置以及网元,该方法包括:接收报文;按照第一种决策方式在第一组成员链路中确定第一成员链路;若所述第一成员链路不可用,按照第二种决策方式,在第二组成员链路中确定第二成员链路;其中,所述第二组成员链路中的所有成员链路均可用,所述第一组成员链路包括所述第二组成员链路以及不可用的成员链路;通过所述第二成员链路发送所述报文。通过该方法,可以实现在有链路失效后,在链路失效前分布在其它未失效链路上的流不会重新分布的目的。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种数据传输方法、装置以及网元。
背景技术
当前,网元之间采用光模块接光纤的模式实现互联。不同速率的光模块之间的价格差距较大,例如一个10吉比特(Gigabit)小封装热插拔收发器(英文:Small form-factorpluggable Transceiver,简称:SFP)价格只是一个40Gigabit SFP价格的3.8%。在光模块价格差的驱动下,通常会选择多个低速链路连接两个网元,于是,在现有的网络中,会看到多链路被广泛部署,随之而来的就是多链路负载均衡需求和技术。
在现有技术中,网元采用如下的负载均衡技术。网元接收到报文后,从报文头中提取源地址和目的地址,报文例如为网络协议(英文:Internet Protocol,简称:IP)报文,那么就从IP报文头提取源IP地址和目的IP地址。进一步,还可以提取传输层协议头提取源端口号和目的端口号。传输层协议例如为传输控制协议(英文:Transmission ControlProtocol,简称:TCP)或者用户数据报协议(英文:User Datagram Protocol,简称:UDP)。接下来网元将提取的源地址、目的地址、传输层源端口、传输层目的端口组成一个比特序列。该比特序列用来描述该报文所在的数据流,同时用作负载均衡算法的输入参数。具体来说,采用循环冗余校验(英文:Cyclic Redundancy Check,简称:CRC)算法计算该比特序列的哈希(Hash)值,然后根据计算得到的哈希值再对该网元所有可用的出端口数目进行取模运算,从而把该报文对应到一个确定的物理端口上,并选择该物理端口作为转发该报文的出端口。
在上述负载均衡技术中,最后一步是用哈希值对可用链路的数目出端口数取模,然后得到一个确定的值作为最终的出端口。换言之,失效链路或因为管理原因不再使用的链路是不被考虑到出端口数中去的,这种设计保证最终选择的出端口永远是可用端口,然而却存在如果链路失效,就会导致链路失效前其它未失效链路上的报文流重新分布的技术问题。举例来说,按照上述负载均衡技术,将报文流2和报文流7定向到链路1,报文流1、报文流3、报文流6定向到了链路4。此时链路4突然失效,那么报文流2就再会被定向到链路3,而不是原来定向的链路1。链路1上也只分布有报文流7,相较于链路4失效前,链路1和链路3上分布的报文流发生了变化。
发明内容
本发明实施例提供一种数据传输方法、装置以及网元,用以解决现有技术中负载均衡时只考虑可用的链路导致的有链路失效时,链路失效前其它未失效链路上的报文流重新分布的技术问题。
第一方面,本发明实施例提供了一种数据传输方法,包括:
接收报文;按照第一种决策方式在第一组成员链路中确定第一成员链路;若所述第一成员链路不可用,按照第二种决策方式,在第二组成员链路中确定第二成员链路;其中,所述第二组成员链路中的所有成员链路均可用,所述第一组成员链路包括所述第二组成员链路以及不可用的成员链路;通过所述第二成员链路发送所述报文。
在本发明实施例的方案中,因为在第一次决策中,考虑了不可用的成员链路,当第一次决策的结果为第一成员链路不可用时,在仅包括可用链路的第二组成员链路中确定可用的第二成员链路,所以一方面可以确保报文能够转发出去,另一方面,即使某一个成员链路失效,不会导致该成员链路失效前其它未失效链路上的流重新分布。
结合第一方面,在第一方面的第一种可能的实现方式中,所述按照第一种决策方式在第一组成员链路中确定第一成员链路,包括:获取所述报文的流信息;所述流信息用于描述所述报文;对所述流信息进行哈希计算;根据计算得到的哈希值在所述第一组成员链路中确定所述第一成员链路。通过该方法,可以保证具有同一流信息的报文流在链路不失效的情况小被分配到同一链路进行转发,避免丢包、会话一致性收到影响。
结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述对所述流信息进行哈希计算,包括:对所述流信息根据第一循环冗余校验CRC算法进行哈希计算。
结合第一方面的第二种可能的实现方式,在第一方面的第三种可能的实现方式中,所述按照第二种决策方式,在第二组成员链路中确定第二成员链路,包括:获取所述流信息;对所述流信息根据不同于所述第一CRC算法的第二CRC算法进行哈希计算;根据根据所述第二CRC算法计算得到的哈希值在所述第二组成员链路中确定所述第二成员链路。通过两次决策采用不同的CRC算法,可以避免极化这样的负载不均衡的现象。
结合第一方面的第一种可能的实现方式,在第一方面的第四种可能的实现方式中,所述根据计算得到的哈希值在所述第一组成员链路中确定所述第一成员链路,包括:根据计算得到的哈希值与所述第一组成员链路的总链路数目确定所述第一成员链路。
第二方面,本发明实施例提供一种网元,包括:
接收器;端口;处理器,用于通过所述接收器接收报文或者生成报文;还用于按照第一种决策方式在第一组成员链路中确定第一成员链路;若所述第一成员链路不可用,按照第二种决策方式,在第二组成员链路中确定第二成员链路;其中,所述第二组成员链路中的所有成员链路均可用,所述第一组成员链路包括所述第二组成员链路以及不可用的成员链路;所述成员链路与所述端口对应;发送器,用于通过与所述第二成员链路对应的端口发送所述报文。
结合第二方面,在第二方面的第一种可能的实现方式中,所述处理器用于:获取所述报文的流信息;所述流信息用于描述所述报文;对所述流信息进行哈希计算;根据计算得到的哈希值在所述第一组成员链路中确定所述第一成员链路。
结合第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,所述处理器用于对所述流信息根据第一循环冗余校验CRC算法进行哈希计算。
结合第二方面的第二种可能的实现方式中,在第二方面的第三种可能的实现方式中,所述处理器用于:获取所述流信息;对所述流信息根据不同于所述第一CRC算法的第二CRC算法进行哈希计算;根据根据所述第二CRC算法计算得到的哈希值在所述第二组成员链路中确定所述第二成员链路。
结合第二方面的第一种可能的实现方式,在第二方面的第四种可能的实现方式中,所述处理器用于根据计算得到的哈希值与所述第一组成员链路的总链路数目确定所述第一成员链路。
第三方面,本发明实施例提供一种数据传输装置,所述数据传输装置包括用于实现第一方面所述的方法的功能模块。
第四方面,本发明实施例还提供一种计算机存储介质,所述计算机存储介质上存储有程序代码,所述程序代码包括用于实现所述第一方面方法的任意可能的实现方式的指令。
在前述一些可能的实现方式中,所述流信息包括所述报文的源网络协议IP地址、目的IP地址、源端口和目的端口。
在前述一些可能的实现方式中,成员链路可用是指物理上和管理上均可用。物理上可用包括链路的物理状态正常,可以用于传输数据。管理上可用包括管理员配置使能该链路参与工作。
附图说明
图1a-图1b为本发明实施例提供的一种通信系统结构图;
图2为本发明实施例提供的一种网元的结构图;
图3为本发明实施例提供的一种数据传输方法的流程图;
图4为本发明实施例提供的根据CRC算法进行哈希计算的示意图;
图5为本发明实施例提供的一种数据传输装置的功能框图。
具体实施方式
本发明实施例提供一种数据传输方法、装置以及网元,用以解决现有技术中负载均衡时只考虑可用的链路导致的有链路失效时,链路失效前其它未失效链路上的报文流重新分布的技术问题。
以下将详细描述本发明实施例中方案的实施过程、目的。
本发明实施例提供的一种数据传输方法,该方法可以应用于通信网络系统中。请参考图1a和图1b所示,为本发明实施例提供的一种可能的通信网络系统结构图。如图1a中所示的结构,该通信网络系统包括网元1、网元2。网元1和网元2之间具有链路1至链路n的n条传输通道,其中,n为大于1的整数。每个链路的传输带宽或传输速率可以相同,也可以不相同。这n条链路例如是光模块接光纤形成的,当然也可以是其它形式的链路。进一步,在图1a所示的结构中,网元1将接收到的报文通过n条链路中的1条发送给网元2,由网元2作进一步的处理,所以需要在n条链路中作负载均衡,使得n条链路的负载量达到均衡。
可选的,网元1例如为服务器,网元2例如为架顶(英文:Top of Rack,简称:TOR)交换机。n条链路为链路汇聚组(英文:Link Aggregation Group,简称:LGA)。
可选的,网元1为主干(Spine)交换机,网元2例如为TOR交换机。n条链路为等价多路径(英文:Equal-Cost Multi-Path,简称:ECMP)。
在图1b所示的结构中,与图1a所示的结构不同的是,n条链路一端连接的是网元1,另一端连接的不同的网元,例如网元21至网元2n。网元21至网元2n中任意两个网元的功能相同或不同。在该种情况下,在n条链路中作负载均衡,也可以理解为在n个网元中作负载均衡,使得n个网元的负载量达到均衡。
应理解,图1a和图1b所示的通信系统中仅示出了两类网元和链路的情形,但本发明并不限于此。该通信系统中还可包括除图示的网元和链路以外的网络侧设备或用户侧设备,本发明实施例不做限定。
另外,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
接下来请参考图2,图2为本发明实施例提供的网元的可能的结构图。该网元例如为上述的网元1、网元2、网元21至网元2n。如图2所示,该网元包括:处理器10、发送器20、接收器30、存储器40和端口50。存储器40、发送器20和接收器30和处理器10可以通过总线进行连接。当然,在实际运用中,存储器40、发送器20和接收器30和处理器10之间可以不是总线结构,而可以是其它结构,例如星型结构,本申请不作具体限定。
可选的,处理器10具体可以是通用的中央处理器或特定应用集成电路(英文:Application Specific Integrated Circuit,简称:ASIC),可以是一个或多个用于控制程序执行的集成电路,可以是使用现场可编程门阵列(英文:Field Programmable GateArray,简称:FPGA)开发的硬件电路,可以是基带处理器。
可选的,处理器10可以包括至少一个处理核心。
可选的,存储器40可以包括只读存储器(英文:Read Only Memory,简称:ROM)、随机存取存储器(英文:Random Access Memory,简称:RAM)和磁盘存储器中的一种或多种。存储器40用于存储处理器10运行时所需的数据和/或指令。存储器40的数量可以为一个或多个。
可选的,端口50包括至少一个输入端口和至少两个出端口。
可选的,发送器20和接收器30在物理上可以相互独立也可以集成在一起。发送器20可以通过端口50中的出端口进行数据发送。接收器30可以通过端口50中的输入端口进行数据接收。
可选的,每个出端口对应一条链路。
接下来请参考如图3所示,为本发明实施例中数据传输方法的流程图。如图3所示,该方法包括:
步骤101:接收报文;
步骤102:按照第一种决策方式在第一组成员链路中确定第一成员链路;
步骤103:若第一成员链路不可用,按照第二种决策方式,在第二组成员链路中确定第二成员链路;其中,所述第二组成员链路中的所有成员链路均可用,所述第一组成员链路包括所述第二组成员链路以及不可用的成员链路;
步骤104:通过第二成员链路发送所述报文。
可选的,在步骤101中,网元1通过输入端口50接收其它网元发送给的报文。
可选的,在步骤101中,也可以是网元1自己生成的报文。
接下来,执行步骤102,即按照第一种决策方式在第一组成员链路中确定第一成员链路。第一种决策方式可以有多种实现方式,以下将举例进行说明。
一种可能的实现方式,步骤102包括:获取所述报文的流信息;对所述流信息进行哈希计算;根据计算得到的哈希值确定第一成员链路。其中,报文的流信息用于描述报文。
可选的,在IP报文中,流信息例如为源IP地址、目的IP地址。进一步可以包括源端口和目的端口。因此,在步骤101中获得报文后,可以解析该报文,在报文的IP头提取源IP地址、目的IP地址、源端口和目的端口组成流信息,例如为96比特的比特序列。
当然,在实际运用中,流信息还可以是其它信息,只要能够根据流信息将一个报文流的所有报文定向到同一成员链路即可。
接下来,对所述流信息进行哈希计算,在实际使用中,可以采用多种哈希算法进行计算,本发明实施例中以CRC算法为例进行介绍。
假设得到的流信息为一个15位的二进制信息g=101001110100001,这串二进制码可表示为代数多项式g(x)=x14+x12+x9+x8+x7+x5+1,其中g中第k位的值,对应g(x)中xk的系数。将g(x)乘以xm,即将g后加m个0,然后除以m阶的生成多项式h(x),得到的(m-1)阶余项r(x)对应的二进制码r就是CRC结果。g(x)和h(x)的除运算,是通过g和h作XOR运算,即异或运算,比如将11001与10101做XOR运算得到的结果为01100。
以下举例以CRC-m(8)算法求二进制的101001110100001的CRC结果。CRC-8采用标准的生成多项式h(x)=x8+x7+x6+x4+x2+1,即h是9位的二进制串111010101。如图4所示,先在g后面加m个0,在本例中为8个0,得到10100111010000100000000(下称g0),然后将g0和h进行除运算,得到g1,即1001101110000100000000。继续将g1和h作除运算,得到g2,即111000100000100000000。继续迭代运算,直到7阶余项r,即10001100,即为CRC计算的结果,也即得到的哈希值。
接下来根据计算得到的哈希值和第一组成员链路的链路数目确定第一成员链路。举例来说,假设第一组成员链路的链路数目为7,那么就用r对7取模运算,即用CRC结果除7求余数。二进制的10001100对7求余数得到0,那么就表示确定出的第一成员链路为第一条链路,可以对应到端口50中的第0号端口。
在得到哈希值后,另一种可能的实现方式为通过查表的方式确定出端口。具体来说,在网元上预先配置哈希值与出端口或者链路的对应关系表,该对应关系表也可以是通过哈希值对链路数目取模确定出来的。因此,在计算得到哈希值后,可以通过查找该对应关系表确定对应的出端口或者链路。
需要说明的是,h(x)可以自由选择或者使用国际通行标准,一般按照h(x)的阶数m,将CRC算法称为CRC-m,比如CRC-32、CRC-64等。
以上描述了一种可能的第一种决策方式,在实际运用中,还可以采用其它决策方式,例如通过异或运算或者取模运算对流信息进行哈希计算,本发明实施例不作具体限定。
当在步骤102中确定出第一成员链路后,可以判断第一成员当前是否可用,本发明实施例中的可用是指物理上和管理上均可用。具体来说,物理上可用包括链路的物理状态正常,可以用于传输数据。管理上可用包括管理员配置使能该链路参与工作。
另外,第一组成员链路中的成员链路是可用或不可用的,通常来讲,可以预先配置为网元上行或下行的所有链路为第一组成员链路,包括可用的以及不可用的链路。举例来说,网元1的下行链路包括链路1至链路4,其中,链路4为故障链路,即不可用,而其余三条链路为可用链路。
可选的,第一组成员链路可以以成员链路表的形式保存在网元上,同时该表上还可以记录每条链路是否为可用的状态。相应的,在步骤102中确定出第一成员链路后,可以通过查询该表中的链路的状态,可以判断第一成员链路是否可用。举例来说,第一成员链路为链路1,通过查表可以确定该链路1为可用。若第一成员链路为链路4,通过查表可以确定链路4为不可用的状态。
当然,在实际运用中,还可以通过其它方式记录每条链路可用或不可用的状态,本发明实施例不作具体限定。
可选的,若第一成员链路当前是可用的,那么就可以通过第一成员链路发送所述报文。
可选的,若第一成员链路不可用,则执行步骤103,即按照第二种决策方式,在第二组成员链路中确定第二成员链路。其中,第二组成员链路中的成员链路均为可用的链路,且为第一组成员链路中的所有可用的链路。举例来说,第二组成员链路包括链路1至链路3。换言之,将第一组成员链路中的不可用链路删除,剩余的即为第二组成员链路。
需要说明的是,第二组成员链路随着时间的增加可能会发生变化,这个变化既包括链路数量的变化也包括具体链路的变化。距离来说,随着时间的增加,链路4从故障中恢复了,而链路2又发生了故障,那么此时第二组成员链路就变成了链路1、链路3和链路4。再例如,链路4依然故障,而链路2也发生了故障,那么此时第二组成员链路就变成了链路1和链路3。
类似的,第一组成员链路的链路状态会随着时间的变化发生变化。例如在链路4从故障中恢复时,就将链路4的状态修改为可用。再例如,链路2也发生了故障,那么就将链路2的状态修改为不可用。
其中,步骤103也可以有多种实现方式。一种可能的情况为:第二种决策方式可以和第一种决策方式相同,例如也采用前述所描述的CRC算法,既可以采用相同的生成多项式,也可以可以采用不同的生成多项式。采用不同的生成多项式可以避免出现极化现象。另一种可能的情况为:第二种决策方式和第一种决策方式不相同。举例来说,第一种决策方式采用前述所描述的CRC算法,而第二种决策方式可以采用异或运算或者直接取模计算。
因为第二组成员链路均为可用,所以确定出的第二成员链路也是可用的,所以可以执行步骤104,即通过第二成员链路发送所述报文。
以下将举一个具体的例子来说明本发明实施例中的数据传输方法的实施过程,以及与现有技术中的数据传输方法作一个对比。
假设在开始一段时间内,网元的4个链路均为可用,在现有技术中,按照上述CRC算法进行链路定向,定向的结果请参考表一所示。
表一
在现有技术中,因为是用CRC结果对可用的总链路数目作取模运算,在刚开始时,无成员链路失效,所以可用的总成员链路数为4。8条报文流按照CRC结果对可用的总成员链路数取模运算的结果请参考表一中第4列的链路编号。其中链路标号0-3分别对应链路1至链路4。
在后续的某个时刻,链路4失效,按照现有技术中的方法,因为此时可用的总链路数目变为3,所以将会按照CRC结果对3取模重新计算所有报文流,计算的结果如表一第6列的链路编号。
为了更清楚的对比链路失效前和失效后每个链路上的流分布情况,请参考表二和表三所示。其中,表二表示链路失效前的每个链路上的流分布情况,表三表示链路失效后的每个链路上的流分布情况。
链路1 | 链路2 | 链路3 | 链路4 |
流2 | 流4 | 流5 | 流1 |
流7 | 流8 | 流3 | |
流6 |
表二
链路1 | 链路2 | 链路3 | 链路4 |
流7 | 流1 | 流2 | |
流5 | 流3 | ||
流6 | 流4 | ||
流8 |
表三
通过表三和表二可以看出,在链路4失效前,流2的报文从链路1进行转发,而在链路4失效后,流2的后续报文要从链路3进行转发。在链路4失效前,流5的报文从链路3进行转发,而在链路4失效后,流5的后续报文要从链路2进行转发。也就是说,在有链路失效后,在链路失效前其它未失效链路的流进行了重新分布。类似的,当链路4从故障中恢复至可用状态时,流分布又会从表三的状态恢复至表二的状态,再次发生未失效链路的流进行重新分布的情况。这样的情况容易导致业务受影响,例如拥塞、收敛导致丢包、会话一致性受到影响。
若采用本发明实施例中的传输方法时,在链路4失效的情况下,因为第一次决策时,是在第一组成员链路中确定的,即CRC结果是对可用以及不可用的所有成员链路数目进行取模运算,例如依然是CRC结果对4进行取模运算,所以计算的结果和链路4失效前的计算结果是一样的。而如果在第一次决策时,计算结果是失效的链路4,那么就再在剩余的可用的成员链路中重新计算,即用CRC结果对3进行取模运算,得到新的计算结果。请参考表四所示,为有链路失效后,采用本发明实施例中的传输方法计算的结果和链路失效前的计算结果的对比。
表四
举例来说,如表四所示,第一次CRC计算的结果为7,对4取模,得到的链路编号为3,即链路4。经过确定发现链路4已经失效,所以就重新计算CRC结果,并对3进行取模运算,得到的链路编号为0,即链路1。也就是说将原本要定向到链路4的报文流重新定向到链路1。同理,其它原本要定向到链路4的报文通过第二次决策重新定向到了其它未失效的链路上。
对于像CRC结果为8的流2来说,通过第一次决策,就确定从链路1进行转发,因为链路1是可用的,所以就不需要再次进行决策,所以在链路4失效的情况下,定位到的结果依然是链路1,即链路编号0。同理,对于其它在链路4失效前分布在其它未失效链路上的流,在链路失效后,依然分布在原来的链路上,并没有发生变化。为了更清楚的看到决策的结果,请参考表二和表五所示。其中,表五表示在链路4失效后,每个链路上的流分布情况。
链路1 | 链路2 | 链路3 | 链路4 |
流2 | 流4 | 流5 | |
流7 | 流8 | 流6 | |
流1 | 流3 |
表五
由表五和表二的对比可以看出,在链路4失效后,原本分布在链路4上的流重新分布在其它未失效的链路上。而在链路4失效前,就分布在其它未失效链路上的流在链路4失效后,依然分布在原来的链路上。类似的,当链路4从失效状态恢复到可用的状态后,也仅仅是回到链路4失效前的状态,即表二的状态,而不会造成其它未失效链路上的原本的流重新分布。
由上述描述可以看出,通过本发明实施例中方法,可以在某链路失效时或者是从失效中恢复,整个过程不会对第一次决策落到其它链路的流分布带来影响,做到业务无损。
基于同一发明构思,本发明实施例还提供一种网元(如图2所示),该网元用于实现前述方法中的任意一种方法。
具体的,处理器10,用于通过接收器30接收报文或者生成报文;还用于按照第一种决策方式在第一组成员链路中确定第一成员链路;若所述第一成员链路不可用,按照第二种决策方式,在第二组成员链路中确定第二成员链路;其中,所述第二组成员链路中的所有成员链路均可用,所述第一组成员链路包括所述第二组成员链路以及不可用的成员链路;所述成员链路与所述端口50对应;发送器20,用于通过与所述第二成员链路对应的端口50发送所述报文。
可选的,处理器10用于:获取所述报文的流信息;所述流信息用于描述所述报文;对所述流信息进行哈希计算;根据计算得到的哈希值在所述第一组成员链路中确定所述第一成员链路。
可选的,处理器10用于对所述流信息根据第一循环冗余校验CRC算法进行哈希计算。
可选的,处理器10用于:获取所述流信息;对所述流信息根据不同于所述第一CRC算法的第二CRC算法进行哈希计算;根据根据所述第二CRC算法计算得到的哈希值在所述第二组成员链路中确定所述第二成员链路。
可选的,处理器10用于根据计算得到的哈希值与所述第一组成员链路的总链路数目确定所述第一成员链路。
基于同一发明构思,本发明实施例还提供一种数据传输装置,如图5所示,该数据传输装置包括获取单元201,用于获取报文;处理单元202,用于按照第一种决策方式在第一组成员链路中确定第一成员链路;若所述第一成员链路不可用,按照第二种决策方式,在第二组成员链路中确定第二成员链路;其中,所述第二组成员链路中的所有成员链路均可用,所述第一组成员链路包括所述第二组成员链路以及不可用的成员链路;发送单元203,用于通过所述第二成员链路发送所述报文。
可选的,处理单元202用于:获取所述报文的流信息;所述流信息用于描述所述报文;对所述流信息进行哈希计算;根据计算得到的哈希值在所述第一组成员链路中确定所述第一成员链路。
可选的,处理单元202用于对所述流信息根据第一循环冗余校验CRC算法进行哈希计算。
可选的,处理单元202用于:获取所述流信息;对所述流信息根据不同于所述第一CRC算法的第二CRC算法进行哈希计算;根据根据所述第二CRC算法计算得到的哈希值在所述第二组成员链路中确定所述第二成员链路。
可选的,处理单元202用于根据计算得到的哈希值与所述第一组成员链路的总链路数目确定所述第一成员链路。
前述实施例中的数据传输方法中的各种变化方式和具体实例同样适用于本实施例的数据传输装置以及图2中的网元,通过前述对数据传输方法的详细描述,本领域技术人员可以清楚的知道本实施例中数据传输装置以及图2中的网元的实施方法,所以为了说明书的简洁,在此不再详述。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (15)
1.一种数据传输方法,其特征在于,包括:
接收报文;
按照第一种决策方式在第一组成员链路中确定第一成员链路;
若所述第一成员链路不可用,按照第二种决策方式,在第二组成员链路中确定第二成员链路;其中,所述第二组成员链路中的所有成员链路均可用,所述第一组成员链路包括所述第二组成员链路以及不可用的成员链路;
通过所述第二成员链路发送所述报文。
2.如权利要求1所述的方法,其特征在于,所述按照第一种决策方式在第一组成员链路中确定第一成员链路,包括:
获取所述报文的流信息;所述流信息用于描述所述报文;
对所述流信息进行哈希计算;
根据计算得到的哈希值在所述第一组成员链路中确定所述第一成员链路。
3.如权利要求2所述的方法,其特征在于,所述对所述流信息进行哈希计算,包括:
对所述流信息根据第一循环冗余校验CRC算法进行哈希计算。
4.如权利要求3所述的方法,其特征在于,所述按照第二种决策方式,在第二组成员链路中确定第二成员链路,包括:
获取所述流信息;
对所述流信息根据不同于所述第一CRC算法的第二CRC算法进行哈希计算;
根据根据所述第二CRC算法计算得到的哈希值在所述第二组成员链路中确定所述第二成员链路。
5.如权利要求2所述的方法,其特征在于,所述根据计算得到的哈希值在所述第一组成员链路中确定所述第一成员链路,包括:
根据计算得到的哈希值与所述第一组成员链路的总链路数目确定所述第一成员链路。
6.一种网元,其特征在于,包括:
接收器;
端口;
处理器,用于通过所述接收器接收报文或者生成报文;还用于按照第一种决策方式在第一组成员链路中确定第一成员链路;若所述第一成员链路不可用,按照第二种决策方式,在第二组成员链路中确定第二成员链路;其中,所述第二组成员链路中的所有成员链路均可用,所述第一组成员链路包括所述第二组成员链路以及不可用的成员链路;所述成员链路与所述端口对应;
发送器,用于通过与所述第二成员链路对应的端口发送所述报文。
7.如权利要求6所述的网元,其特征在于,所述处理器用于:获取所述报文的流信息;所述流信息用于描述所述报文;对所述流信息进行哈希计算;根据计算得到的哈希值在所述第一组成员链路中确定所述第一成员链路。
8.如权利要求7所述的网元,其特征在于,所述处理器用于对所述流信息根据第一循环冗余校验CRC算法进行哈希计算。
9.如权利要求8所述的网元,其特征在于,所述处理器用于:获取所述流信息;对所述流信息根据不同于所述第一CRC算法的第二CRC算法进行哈希计算;根据根据所述第二CRC算法计算得到的哈希值在所述第二组成员链路中确定所述第二成员链路。
10.如权利要求7所述的网元,其特征在于,所述处理器用于根据计算得到的哈希值与所述第一组成员链路的总链路数目确定所述第一成员链路。
11.一种数据传输装置,其特征在于,包括:
获取单元,用于获取报文;
处理单元,用于按照第一种决策方式在第一组成员链路中确定第一成员链路;若所述第一成员链路不可用,按照第二种决策方式,在第二组成员链路中确定第二成员链路;其中,所述第二组成员链路中的所有成员链路均可用,所述第一组成员链路包括所述第二组成员链路以及不可用的成员链路;
发送单元,用于通过所述第二成员链路发送所述报文。
12.如权利要求11所述的装置,其特征在于,所述处理单元用于:获取所述报文的流信息;所述流信息用于描述所述报文;对所述流信息进行哈希计算;根据计算得到的哈希值在所述第一组成员链路中确定所述第一成员链路。
13.如权利要求12所述的装置,其特征在于,所述处理单元用于对所述流信息根据第一循环冗余校验CRC算法进行哈希计算。
14.如权利要求13所述的装置,其特征在于,所述处理单元用于:获取所述流信息;对所述流信息根据不同于所述第一CRC算法的第二CRC算法进行哈希计算;根据根据所述第二CRC算法计算得到的哈希值在所述第二组成员链路中确定所述第二成员链路。
15.如权利要求12所述的装置,其特征在于,所述处理单元用于根据计算得到的哈希值与所述第一组成员链路的总链路数目确定所述第一成员链路。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110935234.5A CN113852561A (zh) | 2016-06-22 | 2016-06-22 | 一种数据传输方法、装置以及网元 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610459884.6A CN107528711B (zh) | 2016-06-22 | 2016-06-22 | 一种数据传输方法、装置以及网元 |
CN202110935234.5A CN113852561A (zh) | 2016-06-22 | 2016-06-22 | 一种数据传输方法、装置以及网元 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610459884.6A Division CN107528711B (zh) | 2016-06-22 | 2016-06-22 | 一种数据传输方法、装置以及网元 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113852561A true CN113852561A (zh) | 2021-12-28 |
Family
ID=60735407
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110935234.5A Pending CN113852561A (zh) | 2016-06-22 | 2016-06-22 | 一种数据传输方法、装置以及网元 |
CN201610459884.6A Active CN107528711B (zh) | 2016-06-22 | 2016-06-22 | 一种数据传输方法、装置以及网元 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610459884.6A Active CN107528711B (zh) | 2016-06-22 | 2016-06-22 | 一种数据传输方法、装置以及网元 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10904139B2 (zh) |
EP (1) | EP3477893B1 (zh) |
CN (2) | CN113852561A (zh) |
WO (1) | WO2017219719A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11750531B2 (en) * | 2019-01-17 | 2023-09-05 | Ciena Corporation | FPGA-based virtual fabric for data center computing |
CN112737956A (zh) * | 2019-10-28 | 2021-04-30 | 华为技术有限公司 | 报文的发送方法和第一网络设备 |
CN113472700B (zh) * | 2021-09-01 | 2022-02-25 | 阿里云计算有限公司 | 报文处理方法、设备、存储介质及网卡 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102158398A (zh) * | 2011-02-25 | 2011-08-17 | 杭州华三通信技术有限公司 | 报文转发方法和装置 |
CN102263697A (zh) * | 2011-08-03 | 2011-11-30 | 杭州华三通信技术有限公司 | 一种聚合链路流量分担方法和装置 |
CN102577280A (zh) * | 2011-11-28 | 2012-07-11 | 华为技术有限公司 | 发送报文的方法、装置和系统 |
CN103401801A (zh) * | 2013-08-07 | 2013-11-20 | 盛科网络(苏州)有限公司 | 动态负载均衡的实现方法及装置 |
WO2015085763A1 (zh) * | 2013-12-10 | 2015-06-18 | 华为技术有限公司 | 一种数据传输方法及路由器 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8264953B2 (en) * | 2007-09-06 | 2012-09-11 | Harris Stratex Networks, Inc. | Resilient data communications with physical layer link aggregation, extended failure detection and load balancing |
US8780911B2 (en) * | 2009-10-08 | 2014-07-15 | Force10 Networks, Inc. | Link aggregation based on port and protocol combination |
US9298732B2 (en) * | 2010-09-29 | 2016-03-29 | Red Hat, Inc. | Searching cloud-based distributed storage resources using a set of expendable probes |
CN102098740B (zh) * | 2011-02-15 | 2015-05-20 | 中兴通讯股份有限公司 | 链路聚合选路方法及装置 |
US20120230194A1 (en) * | 2011-03-11 | 2012-09-13 | Broadcom Corporation | Hash-Based Load Balancing in Large Multi-Hop Networks with Randomized Seed Selection |
US20130003549A1 (en) | 2011-06-30 | 2013-01-03 | Broadcom Corporation | Resilient Hashing for Load Balancing of Traffic Flows |
US8553552B2 (en) * | 2012-02-08 | 2013-10-08 | Radisys Corporation | Stateless load balancer in a multi-node system for transparent processing with packet preservation |
CN102685007B (zh) | 2012-05-04 | 2016-11-23 | 华为技术有限公司 | 一种多链路捆绑链路组中成员链路的处理方法及装置 |
CN102857419B (zh) * | 2012-10-12 | 2015-07-22 | 华为技术有限公司 | 链路聚合端口故障的处理方法和装置 |
US9565113B2 (en) * | 2013-01-15 | 2017-02-07 | Brocade Communications Systems, Inc. | Adaptive link aggregation and virtual link aggregation |
CN103236975B (zh) * | 2013-05-09 | 2017-02-08 | 杭州华三通信技术有限公司 | 报文转发方法和装置 |
-
2016
- 2016-06-22 CN CN202110935234.5A patent/CN113852561A/zh active Pending
- 2016-06-22 CN CN201610459884.6A patent/CN107528711B/zh active Active
-
2017
- 2017-03-16 WO PCT/CN2017/076966 patent/WO2017219719A1/zh unknown
- 2017-03-16 EP EP17814458.0A patent/EP3477893B1/en active Active
-
2018
- 2018-12-19 US US16/225,385 patent/US10904139B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102158398A (zh) * | 2011-02-25 | 2011-08-17 | 杭州华三通信技术有限公司 | 报文转发方法和装置 |
CN102263697A (zh) * | 2011-08-03 | 2011-11-30 | 杭州华三通信技术有限公司 | 一种聚合链路流量分担方法和装置 |
CN102577280A (zh) * | 2011-11-28 | 2012-07-11 | 华为技术有限公司 | 发送报文的方法、装置和系统 |
CN103401801A (zh) * | 2013-08-07 | 2013-11-20 | 盛科网络(苏州)有限公司 | 动态负载均衡的实现方法及装置 |
WO2015085763A1 (zh) * | 2013-12-10 | 2015-06-18 | 华为技术有限公司 | 一种数据传输方法及路由器 |
Also Published As
Publication number | Publication date |
---|---|
US10904139B2 (en) | 2021-01-26 |
EP3477893A4 (en) | 2019-05-01 |
EP3477893B1 (en) | 2021-08-18 |
CN107528711B (zh) | 2021-08-20 |
EP3477893A1 (en) | 2019-05-01 |
WO2017219719A1 (zh) | 2017-12-28 |
US20190123997A1 (en) | 2019-04-25 |
CN107528711A (zh) | 2017-12-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9942064B2 (en) | Data processing method and apparatus | |
CN107580769B (zh) | 用于网络交换机中的负载均衡的方法与装置 | |
US9699104B2 (en) | Deterministic distributed network coding | |
US7898959B1 (en) | Method for weighted load-balancing among network interfaces | |
US9608913B1 (en) | Weighted load balancing in a multistage network | |
USRE40684E1 (en) | Fast cyclic redundancy check (CRC) generation | |
JP2009534005A (ja) | 双方向リンク集約 | |
WO2018187049A1 (en) | Digital signature systems and methods for network path trace | |
CN113132249A (zh) | 一种负载均衡方法和设备 | |
CN107528711B (zh) | 一种数据传输方法、装置以及网元 | |
GB2578415A (en) | Methods and systems for transmitting information packets through tunnel groups at a network node | |
GB2527602A (en) | Galois field coding techniques | |
JP5608732B2 (ja) | 転送ネットワークにおける耐障害性のあるマルチキャストおよびユニキャストのための方法および装置 | |
CN105337860A (zh) | 一种数据包传输路径的确定方法、装置及系统 | |
Engelmann et al. | Exploiting parallelism with random linear network coding in high-speed ethernet systems | |
EP3208980A1 (en) | Service data flow sending and forwarding method and apparatus | |
CN102857436B (zh) | 一种基于irf网络的流量传输方法和设备 | |
CN110945844A (zh) | 一种分发报文的方法及装置 | |
US11689443B2 (en) | Chip to chip network routing using DC bias and differential signaling | |
CN104954249A (zh) | 一种报文转发方法、系统及装置 | |
US11394814B2 (en) | Path control by end hosts in networks | |
US10644996B2 (en) | Route determining method and apparatus, and communications device | |
US8660127B2 (en) | Cascaded load balancing | |
US11632324B2 (en) | Chip to chip communication routing using header amplitude | |
Xu et al. | Multi-source erasure networks with source precoding and random linear network coding |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |