CN106936651B - 一种数据流的确定方法及控制器 - Google Patents
一种数据流的确定方法及控制器 Download PDFInfo
- Publication number
- CN106936651B CN106936651B CN201511016560.7A CN201511016560A CN106936651B CN 106936651 B CN106936651 B CN 106936651B CN 201511016560 A CN201511016560 A CN 201511016560A CN 106936651 B CN106936651 B CN 106936651B
- Authority
- CN
- China
- Prior art keywords
- interface
- network device
- data stream
- controller
- address
- 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
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/24—Traffic characterised by specific attributes, e.g. priority or QoS
-
- 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/0805—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
- H04L43/0817—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking functioning
-
- 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/22—Traffic shaping
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Environmental & Geological Engineering (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种数据流的确定方法及控制器,该方法应用于管理至少一个网络设备的控制器,每个网络设备采用ECMP路由技术与其他网络设备通信,包括:对于每个网络设备,获取经过网络设备的数据流;根据每个数据流的源IP地址、源端口号、目的IP地址和目的端口号,计算数据流经过该网络设备的出接口号;确定每个出接口号在该网络设备上的接口标识;确定处于目标路径上的所有网络设备的接口标识对应的数据流集合,目标路径是经过至少一个网络设备的所有路径中任一路径;计算处于目标路径上的所有网络设备的接口标识对应的数据流集合的交集,以获得目标路径上能够通过的数据流集合。实施本发明实施例,可以提高路径上能够通过数据流的确定效率。
Description
技术领域
本发明涉及通信技术领域,具体涉及一种数据流的确定方法及控制器。
背景技术
传统的路由技术中,当两个网络设备间存在多条链路时,只能通过其中的一条链路传输报文,其它链路则处于备份状态或无效状态,限制了报文传输的带宽。为了解决上述问题,业界提出了等价多路径(英文:equal-cost multi-path routing,简称:ECMP)路由技术,该路由技术中两个网络设备间可以存在多条不同链路,可以将属于同一数据流的多个报文通过不同链路在两个网络设备间传输,而两个网络设备间的不同链路上能够传输的数据流可能不同,例如:链路1可以传输数据流1和数据流2,链路2可以传输数据流2和数据流3。此外,一条路径可能经过多个网络设备,而这些网络设备中任意两个网络设备间的链路可以传输的数据流也可能不同,例如:路径1经过的网络设备1和网络设备2间的链路1可以传输数据流2和数据流4,而经过的网络设备2和网络设备3间的链路3可以传输数据流3和数据流4,因此,如何确定路径上能够通过的数据流成为一个亟待解决的问题。
目前,一种常见的确定路径上能够通过的数据流的方式为:控制器构造并发送大量报文,根据报文的传输路径确定每条路径上能够通过的数据流。然而,由于上述方式需要通过传输大量报文来确定每条路径上能够通过的数据流,而传输大量报文所需时间较长,以致降低了路径上能够通过的数据流的确定效率。
发明内容
本发明实施例公开一种数据流的确定方法及控制器,用于提高路径上能够通过的数据流的确定效率。
本发明实施例第一方面公开一种数据流的确定方法,该数据流的确定方法应用于管理至少一个网络设备的控制器,至少一个网络设备中的每个网络设备采用ECMP路由技术与其他网络设备通信,该方法可以包括:
对于至少一个网络设备中的每个网络设备,获取该网络设备的所有数据流,每个数据流可以包括源IP地址、源端口号、目的IP地址和目的端口号,源IP地址是用于初始发送数据流的报文的网络设备或控制器的IP地址,源端口号是用于初始发送数据流的报文的应用的标识,目的IP地址是用于最终接收数据流的报文的网络设备或控制器的IP地址,目的端口号是用于最终接收数据流的报文的应用的标识;
根据每个数据流的源IP地址、源端口号、目的IP地址和目的端口号,计算该数据流经过该网络设备的出接口号,该数据流经过该网络设备的出接口号是该数据流经过该网络设备的出接口的接口号,该数据流经过该网络设备的出接口是该网络设备与该数据流经过的且与该网络设备相邻的下一个网络设备间的链路在该网络设备上的接口;
确定每个出接口号在该网络设备上的接口标识,例如:网络设备1的出接口号0对应网络设备1上的接口1;
确定处于目标路径上的所有网络设备的接口标识分别对应的数据流集合,目标路径可以是经过至少一个网络设备中每个网络设备的所有路径中的任一路径;
计算处于目标路径上的所有网络设备的接口标识分别对应的数据流集合的交集,可以得到目标路径上能够通过的数据流集合。
在一个实施例中,根据每个数据流的源IP地址、源端口号、目的IP地址和目的端口号计算该数据流经过该网络设备的出接口号时,对于经过该网络设备的每个数据流,可以先将数据流的源IP地址、源端口号、目的IP地址和目的端口号输入哈希(hash)算法,hash算法的输出即为该数据流的hash值,之后根据该网络设备的ECMP链路数量对该数据流的hash值进行取模运算,可以得到该数据流在该网络设备上的出接口号,该网络设备的ECMP链路数量是该网络设备与该数据流经过的网络设备中与该网络设备相邻的下一个网络设备间的ECMP链路数量。
在一个实施例中,确定每个出接口号在该网络设备上的接口标识时,可以先从第一出接口号对应的数据流中选取检测数据流,之后向该网络设备发送检测数据流的报文,获取检测数据流的报文在该网络设备上的出接口的第一接口标识,将第一接口标识确定为第一出接口号在该网络设备上的出接口的接口标识,第一出接口号是该网络设备的出接口号中的任一出接口号,检测数据流是经过该网络设备的数据流中出接口号为第一出接口号的任一数据流。
在一个实施例中,确定每个出接口号在该出接口号对应的网络设备上的接口标识时,可以先从第二出接口号对应的的数据流中选取检测数据流,并向该网络设备发送携带有该检测数据流的源IP地址、源端口号、目的IP地址和目的端口号的接口标识查询请求,之后将会接收到该网络设备发送的该检测数据流在该网络设备上的出接口的第二接口标识,第二接口标识即为第二出接口号在该网络设备上的出接口的接口标识,第二出接口号是该网络设备的出接口号中的任一出接口号,检测数据流是经过该网络设备的数据流中出接口号为第二出接口号的任一数据流。
在一个实施例中,确定处于目标路径上的所有网络设备的接口标识对应的数据流集合时,可以先统计至少一个网络设备中的每个网络设备的每个接口标识的数据流,并对于目标路径,确定处于目标路径上的所有网络设备在目标路径上的出接口的接口标识,之后可以确定目标路径上的每个网络设备在目标路径上的出接口的接口标识对应的数据流集合。
在一个实施例中,得到每条路径上能够通过的数据流集合之后,对于每条路径,可以从路径对应的数据流集合中任选一个数据流,并在该路径上发送该数据流的检测报文以检测该路径的转发质量,即检测该路径上的连通性、丢包率和延时中的至少一种,以便可以检测每条路径的转发质量,从而可以为每个数据流的报文选择一条最佳的传输路径,并且,本发明可以仅通过一个检测报文就能检测一条路径的转发质量。此外,由于检测报文的路径是确定的,因此,可以很容易的计算出丢包率。
本发明实施例第二方面公开了一种控制器,该控制器包括的单元能够执行本发明实施例第一方面公开的数据流的确定方法。
本发明实施例第三方面公开一种控制器,包括处理器、存储器和通信接口。其中,存储器用于存储一组程序代码,处理器用于执行存储器存储的程序代码,通信接口用于在处理器的控制下与网络设备或其它控制器进行通信。当处理器执行存储器存储的程序代码时,可根据存储器存储的程序代码执行本发明实施例第一方面公开的数据流的确定方法。
本发明实施例第四方面公开一种可读存储介质,该可读存储介质存储了控制器用于执行本发明实施例第一方面公开的数据流的确定方法的程序代码。
本发明实施例中,控制器可以根据经过控制器管理的网络设备的数据流,确定控制管理的每个网络设备的每个出接口的接口标识对应的数据流集合,当需要确定目标路径上能够通过的数据流集合时,控制器可以先确定处于目标路径上的所有网络设备的接口标识对应的数据流集合,之后计算所有网络设备的接口标识对应的数据流集合的交集,以获得目标路径上能够通过的数据流集合。本发明不需要通过大量报文来检测哪条路径上可以通过哪些数据流,可以缩短路径上能够通过的数据流集合的确定时间,从而可以提高路径上能够通过的数据流的确定效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例公开的一种确定数据流的网络架构图;
图2是本发明实施例公开的一种数据流的确定方法的流程图;
图3是本发明实施例公开的一种控制器的结构图;
图4是本发明实施例公开的另一种控制器的结构图;
图5是本发明实施例公开的又一种控制器的结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例公开一种数据流的确定方法及控制器,用于提高路径上能够通过的数据流的确定效率。以下分别进行详细说明。
为了更好地理解本发明实施例公开的一种数据流的确定方法及控制器,下面先对本发明实施例使用的网络架构进行描述。请参阅图1,图1是本发明实施例公开的一种确定数据流的网络架构图。如图1所示,该确定数据流的网络架构图可以包括控制器101和至少一个网络设备102,图1中画出了9个网络设备,控制器101与网络设备102之间通过网络连接,有些网络设备102之间也通过网络连接,其中:
控制器101,用于管理网络设备102,以及与其它控制器进行通信。
网络设备102,用于传输报文。其中,两个直接连接的网络设备102之间存在多条链路,图1中未画出。
基于图1所示的确定数据流的网络架构图,请参阅图2,图2是本发明实施例公开的一种数据流的确定方法的流程图。其中,该数据流的确定方法是从控制器101的角度来描述的。如图2所示,该数据流的确定方法可以包括以下步骤。
201、对于控制器管理的每个网络设备,获取经过网络设备的包括源IP地址、源端口号、目的IP地址和目的端口号的数据流。
本实施例中,当需要确定经过控制器管理的至少一个网络设备中每个网络设备的每条路径能够通过的数据流时,可以针对至少一个网络设备中的每个网络设备,获取经过网络设备的所有数据流,每个数据流包括的源IP地址、源端口号、目的IP地址和目的端口号,可以表明这个数据流是由哪一个设备的哪个应用向哪一个设备的哪个应用发送的,其中,源IP地址是发送设备的IP地址,目的IP地址是接收设备的IP地址,源端口号是发送应用的标识,目的端口号是接收应用的标识。例如:假设有5个应用,可以将这5个应用分别标识为0、1、2、3、4。其中,数据流还可以包括协议类型,协议类型可以为用户数据报协议(UserDatagram Protocol,UDP),也可以为传输控制协议(Transmission Control Protocol,TCP)。
202、根据每个数据流的源IP地址、源端口号、目的IP地址和目的端口号,计算该数据流经过该网络设备的出接口号。
本实施例中,针对至少一个网络设备中的每个网络设备,获取到经过网络设备的包括源IP地址、源端口号、目的IP地址和目的端口号的数据流之后,针对经过该网络设备中的每个数据流,可以将数据流的源IP地址、源端口号、目的IP地址和目的端口号输入目标算法,目标算法的输出即为该数据流的计算值,每个数据流唯一对应一个计算值。之后根据该网络设备的ECMP链路数量对该数据流的hash值进行取模运算,可以得到该数据流在该网络设备上的出接口号。其中,目标算法可以为hash算法,也可以为其它算法,本实施例不作限定。其中,该数据流经过该网络设备的出接口号是该数据流经过该网络设备的出接口的接口号,即该数据流流出该网络设备的接口的接口号。
举例说明,假设图1中的虚线箭头为一个数据流的传输路径,可见,该数据流依次经过网络设备3、网络设备2、网络设备1、网络设备8和网络设备9,计算得到该数据流的计算值之后,分别获取网络设备3与网络设备2间的ECMP链路数量、网络设备2与网络设备1间的ECMP链路数量、网络设备1与网络设备8间的ECMP链路数量、网络设备8与网络设备9间的ECMP链路数量,根据网络设备3与网络设备2间的ECMP链路数量对该计算值取模可以得到该数据流经过网络设备3的出接口号,根据网络设备2与网络设备1间的ECMP链路数量对该计算值取模可以得到该数据流经过网络设备2的出接口号,根据网络设备1与网络设备8间的ECMP链路数量对该计算值取模可以得到该数据流经过网络设备1的出接口号,根据网络设备8与网络设备9间的ECMP链路数量对该计算值取模可以得到该数据流经过网络设备8的出接口号。
203、确定每个出接口号在该网络设备上的接口标识。
本实施例中,两个直接连接的网络设备间存在多条不同的链路,不同链路在同一个网络设备上的接口不同,而一个数据流并不一定均经过同一网络设备上的所有接口。因此,根据经过该网络设备的每个数据流的源IP地址、源端口号、目的IP地址和目的端口号计算得到该数据流经过该网络设备的出接口号之后,也即是在计算出经过至少一个网络设备中每个网络设备的数据流在该网络设备上的出接口的接口号之后,可以将出接口号相同的数据流进行归类,如表1所示:
出接口号 | 流 |
0 | f1,f3,f5… |
1 | f2,f4,f6… |
2 | f11,f13,f15… |
… |
表1
其中,表1中,将出接口为0的数据流f1、f3、f5等归类在一起,将出接口为1的数据流f2、f4、f6等归类在一起,将出接口为2的数据流f11、f13、f15等归类在一起。之后可以从出口号为0的数据流中选取一个数据流f1,数据流f1是经过该网络设备的数据流,将向该网络设备传输数据流f1的报文,假设数据流f1经过网络设备3的出接口号为0,则检测数据流f1的报文从网络设备3出来时经过的出接口的接口标识,即报文从网络设备3向网络设备2传输时经过的链路在网络设备3上的接口的接口标识,当出接口的接口标识为1时,表明数据流f1是从网络设备3的接口1流出来的,因此,数据流f3和f5经过的网络设备的出接口号0在对应的网络设备上的出接口的接口标识也为接口1,出接口号1和出接口号2在对应设备上的接口标识可以通过相同方法获得,如表2所示:
接口标识 | 接口号 | 流 |
接口1 | 0 | f1,f3,f5… |
接口2 | 1 | f2,f4,f6… |
接口3 | 2 | f11,f13,f15… |
…… | …… | …… |
表2
也可以从出接口号0对应的数据流中选取一个数据流f1,数据流f1是经过该网络设备的数据流,向该网络设备发送携带有数据流f1的源IP地址、源端口号、目的IP地址和目的端口号的接口标识查询请求,之后将会接收到该网络设备发送的数据流f1在该网络设备的出接口的接口标识,当出接口的接口标识为1时,数据流f3和f5经过的网络设备的出接口号0在对应的网络设备上的出接口的接口标识也为接口1。
204、确定处于目标路径上的所有网络设备的接口标识对应的数据流集合。
本实施例中,确定出每个出接口号在该网络设备上的接口标识之后,可以统计至少一个网络设备中每个网络设备的每个接口标识的数据流,之后确定处于目标路径上的所有网络设备在目标路径上的出接口的接口标识,可以确定出目标路径上的每个网络设备在目标路径上的出接口的接口标识对应的数据流集合。目标路径可以是经过至少一个网络设备中的每个网络设备的所有路径中的任一路径,也可以是经过至少一个网络设备中的每个网络设备的所有路径中的多条路径,其处理过程与一条路径的处理过程相同。
205、计算处于目标路径上的所有网络设备的接口标识对应的数据流集合的交集,以获得目标路径上能够通过的数据流集合。
举例说明,假设图1中虚线箭头为目标路径,目标路径经过网络设备3的接口1、网络设备2的接口2、网络设备1的接口1、理由设备8的接口3和网络设备9的接口1,网络设备3的接口1对应的数据流集为{f1,f2,f3,f4},网络设备2的接口2对应的数据流集为{f2,f3,f4,f8},网络设备1的接口1对应的数据流集为{f1,f2,f3,f4},网络设备8的接口3对应的数据流集为{f3,f4,f7,f8},网络设备9的接口1对应的数据流集为{f3,f4,f7,f8},{f1,f2,f3,f4}∩{f2,f3,f4,f8}∩{f1,f2,f3,f4}∩{f3,f4,f7,f8}={f3,f4},即虚线箭头路径上能够通过的数据流为f3和f4。
在图2所描述的路径探测方法中,控制器可以根据经过控制器管理的网络设备的数据流,确定控制管理的每个网络设备的每个出接口的接口标识对应的数据流集合,当需要确定目标路径上能够通过的数据流集合时,控制器可以先确定处于目标路径上的所有网络设备的接口标识对应的数据流集合,之后计算所有网络设备的接口标识对应的数据流集合的交集,以获得目标路径上能够通过的数据流集合。本发明不需要通过大量报文来检测哪条路径上可以通过哪些数据流,可以缩短路径上能够通过的数据流集合的确定时间,从而可以提高路径上能够通过的数据流的确定效率。
基于图1所示的确定数据流的网络架构图,请参阅图3,图3是本发明实施例公开的一种控制器的结构图。如图3所示,该控制器300可以包括:
获取单元301,用于对于控制器管理的每个网络设备,获取经过网络设备的数据流,每个数据流包括源IP地址、源端口号、目的IP地址和目的端口号;
第一计算单元302,用于根据获取单元301获取的每个数据流的源IP地址、源端口号、目的IP地址和目的端口号,计算该数据流经过该网络设备的出接口号;
第一确定单元303,用于确定第一计算单元302计算的每个出接口号在该网络设备上的接口标识;
第二确定单元304,用于确定处于目标路径上的第一确定单元303确定的所有网络设备的接口标识对应的数据流集合,目标路径是经过控制器管理的每个网络设备的所有路径中的任一路径;
第二计算单元305,用于计算第二确定单元304确定的数据流集合的交集,以获得目标路径上能够通过的数据流集合。
作为一种可能的实施方式,第一计算单元302可以包括:
第一确定子单元3021,用于对于经过该网络设备的每个数据流,根据获取单元301获取的数据流的源IP地址、源端口号、目的IP地址和目的端口号确定该数据流的hash值;
取模子单元3022,用于根据该网络设备的ECMP链路数量对第一确定子单元3021确定的该数据流的hash值进行取模运算,以获得该数据流在该网络设备上的出接口号。
作为一种可能的实施方式,第一确定单元303可以包括:
选取子单元3031,用于从目标出接口号对应的数据流中选取检测数据流,目标出接口号是该网络设备的出接口号中的任一出接口号;
传输子单元3032,用于向该网络设备发送选取子单元3031选取的检测数据流的报文;
获取子单元3033,用于获取传输子单元3032传输的报文经过目标出接口号对应的网络设备上的出接口的第一接口标识;
第二确定子单元3034,用于将获取子单元3033获取的第一接口标识确定为目标出接口号在该网络设备上的出接口的接口标识。
作为一种可能的实施方式,第二确定单元304可以包括:
统计子单元3041,用于统计经过控制器管理的每个网络设备的每个接口标识的数据流;
第三确定子单元3042,用于确定处于目标路径上的所有网络设备在目标路径上的出接口的第二接口标识,并根据统计子单元3041统计的数据流确定处于目标路径上的每个网络设备在目标路径上的出接口的接口标识对应的数据流集合。
在图3所描述的控制器中,控制器可以根据经过控制器管理的网络设备的数据流,确定控制管理的每个网络设备的每个出接口的接口标识对应的数据流集合,当需要确定目标路径上能够通过的数据流集合时,控制器可以先确定处于目标路径上的所有网络设备的接口标识对应的数据流集合,之后计算所有网络设备的接口标识对应的数据流集合的交集,以获得目标路径上能够通过的数据流集合。本发明不需要通过大量报文来检测哪条路径上可以通过哪些数据流,可以缩短路径上能够通过的数据流集合的确定时间,从而可以提高路径上能够通过的数据流的确定效率。
基于图1所示的确定数据流的网络架构图,请参阅图4,图4是本发明实施例公开另的一种控制器的结构图。如图4所示,该控制器400可以包括:
获取单元401,用于对于控制器管理的每个网络设备,获取经过控制器管理的网络设备的数据流,每个数据流包括源IP地址、源端口号、目的IP地址和目的端口号;
第一计算单元402,用于根据获取单元401获取的每个数据流的源IP地址、源端口号、目的IP地址和目的端口号,计算该数据流经过该网络设备的出接口号;
第一确定单元403,用于确定第一计算单元402计算的每个出接口号在该网络设备上的接口标识;
第二确定单元404,用于确定处于目标路径上的第一确定单元403确定的所有网络设备的接口标识对应的数据流集合,目标路径是经过控制器管理的每个网络设备的所有路径中的任一路径;
第二计算单元405,用于计算第二确定单元404确定的数据流集合的交集,以获得目标路径上能够通过的数据流集合。
作为一种可能的实施方式,第一确定单元403可以包括:
选取子单元4031,用于从目标出接口号对应的数据流中选取检测数据流,目标出接口号是该网络设备的出接口号中的任一出接口号;
通信子单元4032,用于向该网络设备发送接口标识查询请求,该接口标识查询请求携带有选取子单元4031选取的检测源IP地址、源端口号、目的IP地址和目的端口号;
通信子单元4032,还用于接收该网络设备发送的检测数据流在该网络设备的出接口的目标接口标识,;
确定子单元4033,用于将通信子单元4032接收的目标接口标识确定为目标出接口号在该网络设备上的出接口的接口标识。
在图4所描述的控制器中,控制器可以根据经过控制器管理的网络设备的数据流,确定控制管理的每个网络设备的每个出接口的接口标识对应的数据流集合,当需要确定目标路径上能够通过的数据流集合时,控制器可以先确定处于目标路径上的所有网络设备的接口标识对应的数据流集合,之后计算所有网络设备的接口标识对应的数据流集合的交集,以获得目标路径上能够通过的数据流集合。本发明不需要通过大量报文来检测哪条路径上可以通过哪些数据流,可以缩短路径上能够通过的数据流集合的确定时间,从而可以提高路径上能够通过的数据流的确定效率。
基于图1所示的路径探测的网络架构图,请参阅图5,图5是本发明实施例公开的又一种控制器的结构图。如图5所示,该控制器500可以处理器501、存储器502和通信接口503。其中,存储器502用于存储一组程序代码,处理器501用于执行存储器502存储的程序代码,通信接口503用于在处理器501的控制下与网络设备或其它控制器进行通信。当处理器501执行存储器502存储的程序代码时,可根据存储器502存储的程序代码执行以下操作:
对于控制器管理的每个网络设备,获取经过网络设备的数据流,每个数据流包括源IP地址、源端口号、目的IP地址和目的端口号;
根据每个数据流的源IP地址、源端口号、目的IP地址和目的端口号,计算数据流经过该网络设备的出接口号;
确定计算的每个出接口号在该网络设备上的接口标识;
确定处于目标路径上的所有网络设备的接口标识对应的数据流集合,目标路径是经过控制器管理的每个网络设备的所有路径中的任一路径;
计算处于目标路径上的所有网络设备的接口标识对应的数据流集合的交集,以获得目标路径上能够通过的数据流集合。
作为一种可能的实施方式,处理器501根据每个数据流的源IP地址、源端口号、目的IP地址和目的端口号,计算该数据流经过该网络设备的出接口号的方式具体为:
对于经过该网络设备的每个数据流,根据该数据流的源IP地址、源端口号、目的IP地址和目的端口号确定该数据流的hash值;
根据该网络设备的ECMP链路数量对该数据流的hash值进行取模运算,以获得该数据流经过该网络设备的出接口号。
作为一种可能的实施方式,处理器501确定每个出接口号在该网络设备上的接口标识的方式具体为:
从第一出接口号对应的数据流中选取检测数据流,第一出接口号是该网络设备的出接口号中的任一出接口号;
向该网络设备发送该检测数据流的报文;
获取该检测数据流的报文在该网络设备上的出接口的第一接口标识;
将第一接口标识确定为第一出接口号在该网络设备上的出接口的接口标识。
作为一种可能的实施方式,处理器501确定每个出接口号在该网络设备上的接口标识的方式具体为:
从第二出接口号对应的数据流中选取检测数据流,第二出接口号是该网络设备的出接口号中的任一出接口号;
向该网络设备发送接口标识查询请求,该接口标识查询请求携带有检测数据流的源IP地址、源端口号、目的IP地址和目的端口号;
接收该网络设备发送的检测数据流在该网络设备的出接口的第二接口标识;
将第二接口标识确定为第二出接口号在该网络设备上的出接口的接口标识。
作为一种可能的实施方式,处理器401确定处于目标路径上的所有网络设备的接口标识对应的数据流集合的方式具体为:
统计经过控制器管理的每个网络设备的每个接口标识对应的数据流;
对于目标路径,确定处于目标路径上的所有网络设备在所述目标路径上的出接口的接口标识;
确定目标路径上的每个网络设备在目标路径上的出接口的的接口标识对应的数据流集合。
在图5所描述的控制器中,控制器可以根据经过控制器管理的网络设备的数据流,确定控制管理的每个网络设备的每个出接口的接口标识对应的数据流集合,当需要确定目标路径上能够通过的数据流集合时,控制器可以先确定处于目标路径上的所有网络设备的接口标识对应的数据流集合,之后计算所有网络设备的接口标识对应的数据流集合的交集,以获得目标路径上能够通过的数据流集合。本发明不需要通过大量报文来检测哪条路径上可以通过哪些数据流,可以缩短路径上能够通过的数据流集合的确定时间,从而可以提高路径上能够通过的数据流的确定效率。
一个实施例中,本发明实施例进一步公开一种可读存储介质,该可读存储介质存储有程序代码,当可读存储介质中的程序代码被读取到控制器时,能够使得控制器完成本发明实施例公开的数据流的确定方法的全部步骤。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(read-only memory,ROM)、随机存取器(random accessmemory,RAM)、磁盘或光盘等。
以上对本发明实施例所提供的数据流的确定方法及控制器进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种数据流的确定方法,其特征在于,所述方法应用于管理至少一个网络设备的控制器,所述至少一个网络设备中的每个网络设备采用等价多路径ECMP路由技术与其他网络设备通信,所述方法包括:
对于每个网络设备,所述控制器获取经过所述网络设备的数据流,每个所述数据流包括源IP地址、源端口号、目的IP地址和目的端口号;
所述控制器根据每个所述数据流的源IP地址、源端口号、目的IP地址和目的端口号,计算所述数据流经过所述网络设备的出接口号;
所述控制器确定每个所述出接口号在所述网络设备上的接口标识;
所述控制器确定处于目标路径上的所有网络设备的接口标识对应的数据流集合,所述目标路径是经过所述至少一个网络设备中每个网络设备的所有路径中的任一路径;
所述控制器计算所述所有网络设备的接口标识对应的数据流集合的交集,以获得所述目标路径上能够通过的数据流集合。
2.根据权利要求1所述的方法,其特征在于,所述根据每个所述数据流的源IP地址、源端口号、目的IP地址和目的端口号,计算所述数据流经过所述网络设备的出接口号包括:
对于经过所述网络设备的每个数据流,所述控制器根据所述数据流的源IP地址、源端口号、目的IP地址和目的端口号确定所述数据流的哈希hash值;
所述控制器根据所述网络设备的ECMP链路数量对所述数据流的hash值进行取模运算,以获得所述数据流在所述网络设备上的出接口号。
3.根据权利要求1或2所述的方法,其特征在于,所述确定每个所述出接口号在所述网络设备上的接口标识包括:
所述控制器从第一出接口号对应的数据流中选取检测数据流,所述第一出接口号是所述网络设备的出接口号中的任一出接口号;
所述控制器向所述网络设备发送所述检测数据流的报文;
所述控制器获取所述检测数据流的报文在所述网络设备上的出接口的第一接口标识;
所述控制器将所述第一接口标识确定为所述第一出接口号在所述网络设备上的出接口的接口标识。
4.根据权利要求1或2所述的方法,其特征在于,所述确定每个所述出接口号在所述网络设备上的接口标识包括:
所述控制器从第二出接口号对应的数据流中选取检测数据流,所述第二出接口号是所述网络设备的出接口号中的任一出接口号;
所述控制器向所述网络设备发送接口标识查询请求,所述接口标识查询请求携带有所述检测数据流的源IP地址、源端口号、目的IP地址和目的端口号;
所述控制器接收所述网络设备发送的所述检测数据流在所述网络设备上的出接口的第二接口标识;
所述控制器将所述第二接口标识确定为所述第二出接口号在所述网络设备上的出接口的接口标识。
5.根据权利要求1或2所述的方法,其特征在于,所述确定处于目标路径上的所有网络设备的接口标识对应的数据流集合包括:
所述控制器统计所述至少一个网络设备中的每个网络设备的每个接口标识对应的数据流;
所述控制器对于目标路径,确定处于所述目标路径上的所有网络设备在所述目标路径上的出接口的接口标识;
所述控制器确定所述目标路径上的每个网络设备在所述目标路径上的出接口的接口标识对应的数据流集合。
6.一种控制器,其特征在于,所述控制器管理至少一个网络设备,所述至少一个网络设备中的每个网络设备采用等价多路径ECMP路由技术与其他网络设备通信,包括:
获取单元,用于对于每个网络设备,获取经过所述网络设备的数据流,每个所述数据流包括源IP地址、源端口号、目的IP地址和目的端口号;
第一计算单元,用于根据所述获取单元获取的每个所述数据流的源IP地址、源端口号、目的IP地址和目的端口号,计算所述数据流经过所述网络设备的出接口号;
第一确定单元,用于确定所述第一计算单元计算的每个所述出接口号在所述网络设备上的接口标识;
第二确定单元,用于确定处于目标路径上的所述第一确定单元确定的所有网络设备的接口标识对应的数据流集合,所述目标路径是经过所述至少一个网络设备中每个网络设备的所有路径中的任一路径;
第二计算单元,用于计算所述第二确定单元确定的所有网络设备的接口标识对应的数据流集合的交集,以获得所述目标路径上能够通过的数据流集合。
7.根据权利要求6所述的控制器,其特征在于,所述第一计算单元包括:
第一确定子单元,用于对于经过所述网络设备的每个数据流,根据所述数据流的源IP地址、源端口号、目的IP地址和目的端口号确定所述数据流的哈希hash值;
取模子单元,用于根据所述网络设备的ECMP链路数量对所述第一确定子单元确定的所述数据流的hash值进行取模运算,以获得所述数据流在所述网络设备上的出接口号。
8.根据权利要求6或7所述的控制器,其特征在于,所述第一确定单元包括:
第一选取子单元,用于从第一出接口号对应的数据流中选取检测数据流,所述第一出接口号是所述网络设备的出接口号中的任一出接口号;
传输子单元,用于向所述网络设备发送所述第一选取子单元选取的检测数据流的报文;
获取子单元,用于获取所述传输子单元传输的检测数据流的报文在所述网络设备上的出接口的第一接口标识;
第二确定子单元,用于将所述获取子单元获取的第一接口标识确定为所述第一出接口号在所述网络设备上的出接口的接口标识。
9.根据权利要求6或7所述的控制器,其特征在于,所述第一确定单元包括:
第二选取子单元,用于从第二出接口号对应的数据流中选取检测数据流,所述第二出接口号是所述网络设备的出接口号中的任一出接口号;
通信子单元,用于向所述网络设备发送接口标识查询请求,所述接口标识查询请求携带有所述第二选取子单元选取的检测数据流的源IP地址、源端口号、目的IP地址和目的端口号;
所述通信子单元,还用于接收所述网络设备发送的所述检测数据流在所述网络设备上的出接口的第二接口标识,
第三确定子单元,用于将所述通信子单元接收的第二接口标识确定为所述第二出接口号在所述网络设备上的出接口的接口标识。
10.根据权利要求6或7所述的控制器,其特征在于,所述第二确定单元包括:
统计子单元,用于统计所述至少一个网络设备中的每个网络设备的每个接口标识对应的数据流;
第四确定子单元,用于对于目标路径,确定处于所述目标路径上的所有网络设备在所述目标路径上的出接口的接口标识,并确定所述目标路径上的每个网络设备在所述目标路径上的出接口的接口标识对应的数据流集合。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201511016560.7A CN106936651B (zh) | 2015-12-29 | 2015-12-29 | 一种数据流的确定方法及控制器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201511016560.7A CN106936651B (zh) | 2015-12-29 | 2015-12-29 | 一种数据流的确定方法及控制器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106936651A CN106936651A (zh) | 2017-07-07 |
CN106936651B true CN106936651B (zh) | 2020-01-31 |
Family
ID=59441554
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201511016560.7A Active CN106936651B (zh) | 2015-12-29 | 2015-12-29 | 一种数据流的确定方法及控制器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106936651B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109040316B (zh) * | 2018-09-19 | 2021-08-27 | 天津字节跳动科技有限公司 | Http服务处理方法和装置 |
CN112202644B (zh) * | 2020-10-12 | 2022-01-11 | 中国人民解放军国防科技大学 | 面向混合可编程网络环境的协同网络测量方法及系统 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1984070A (zh) * | 2006-05-31 | 2007-06-20 | 华为技术有限公司 | 通讯网络中对数据流的分流方法和装置 |
CN101383737A (zh) * | 2008-08-25 | 2009-03-11 | 中兴通讯股份有限公司 | 一种基于链路层发现协议进行链路质量检测的方法及系统 |
CN102036132A (zh) * | 2009-09-30 | 2011-04-27 | 华为技术有限公司 | 时隙端口号分配方法、装置及系统 |
CN102710507A (zh) * | 2012-05-17 | 2012-10-03 | 杭州华三通信技术有限公司 | 一种实现报文转发路径一致的方法和网络设备 |
CN103346971A (zh) * | 2013-06-19 | 2013-10-09 | 华为技术有限公司 | 数据转发方法、控制器、转发设备及系统 |
CN103354509A (zh) * | 2013-07-11 | 2013-10-16 | 杭州华三通信技术有限公司 | 一种链路连接信息的获取方法和设备 |
CN104158753A (zh) * | 2014-06-12 | 2014-11-19 | 南京工程学院 | 基于软件定义网络的动态流调度方法及系统 |
CN104283738A (zh) * | 2014-10-11 | 2015-01-14 | 杭州华三通信技术有限公司 | 一种链路检测方法及设备 |
CN104468371A (zh) * | 2014-11-28 | 2015-03-25 | 杭州华三通信技术有限公司 | 组播业务报文处理方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8769162B2 (en) * | 2012-04-10 | 2014-07-01 | Oracle International Corporation | Multiple path load distribution for host communication with a tape storage device |
-
2015
- 2015-12-29 CN CN201511016560.7A patent/CN106936651B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1984070A (zh) * | 2006-05-31 | 2007-06-20 | 华为技术有限公司 | 通讯网络中对数据流的分流方法和装置 |
CN101383737A (zh) * | 2008-08-25 | 2009-03-11 | 中兴通讯股份有限公司 | 一种基于链路层发现协议进行链路质量检测的方法及系统 |
CN102036132A (zh) * | 2009-09-30 | 2011-04-27 | 华为技术有限公司 | 时隙端口号分配方法、装置及系统 |
CN102710507A (zh) * | 2012-05-17 | 2012-10-03 | 杭州华三通信技术有限公司 | 一种实现报文转发路径一致的方法和网络设备 |
CN103346971A (zh) * | 2013-06-19 | 2013-10-09 | 华为技术有限公司 | 数据转发方法、控制器、转发设备及系统 |
CN103354509A (zh) * | 2013-07-11 | 2013-10-16 | 杭州华三通信技术有限公司 | 一种链路连接信息的获取方法和设备 |
CN104158753A (zh) * | 2014-06-12 | 2014-11-19 | 南京工程学院 | 基于软件定义网络的动态流调度方法及系统 |
CN104283738A (zh) * | 2014-10-11 | 2015-01-14 | 杭州华三通信技术有限公司 | 一种链路检测方法及设备 |
CN104468371A (zh) * | 2014-11-28 | 2015-03-25 | 杭州华三通信技术有限公司 | 组播业务报文处理方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN106936651A (zh) | 2017-07-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3496346B1 (en) | Data message forwarding method and apparatus | |
US10355971B2 (en) | System and method for data path validation and verification | |
US9742667B2 (en) | Packet processing method, device and system | |
CN113411260B (zh) | 一种IPv6网络中数据报文的发送方法及装置 | |
CN102577238A (zh) | 用于追踪多播流的方法和装置 | |
US10341235B2 (en) | Load balancing implementation method, device, and system | |
EP2883334A1 (en) | Techniques for flooding optimization for link state protocols in a network topology | |
CN103348630A (zh) | 用于在组播网络中控制选择的方法 | |
US10944667B2 (en) | Loop check packets | |
CN105791169A (zh) | 软件定义网络中交换机转发控制、转发方法及相关设备 | |
CN113542051B (zh) | 一种基于软件定义网络的监控流量负载均衡方法 | |
KR20150084647A (ko) | 상호-청취자 장치 세트에 대하여 가상 인터페이스를 설정하는 방법 및 장치 | |
CN108718258B (zh) | 一种板间链路的质量检测方法及设备 | |
WO2015094040A1 (en) | Method and control node for handling data packets | |
CN103731376A (zh) | 堆叠设备上链路汇聚根端口选择的方法及系统 | |
CN106936651B (zh) | 一种数据流的确定方法及控制器 | |
US11388631B2 (en) | Data reduction in a system | |
EP2858316A1 (en) | Packet transfer system, control device, packet transfer method and program | |
EP2830267A1 (en) | Control apparatus, communication system, node control method and program | |
WO2016101600A1 (zh) | 线卡的确定、确定处理方法及装置、线卡的确定系统 | |
JP2017050708A (ja) | 通信システム、制御装置、スイッチ、通信方法及びプログラム | |
CN108834110B (zh) | zigbee网络的数据传输控制方法及系统 | |
CN110995609A (zh) | 报文发送方法、装置、电子设备及存储介质 | |
CN103067280B (zh) | 报文处理方法和装置 | |
US20150156116A1 (en) | Routing control method and apparatus |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |