CN112313910B - 用于以数据中心为中心的城域网的多路径选择系统和方法 - Google Patents
用于以数据中心为中心的城域网的多路径选择系统和方法 Download PDFInfo
- Publication number
- CN112313910B CN112313910B CN201980039799.6A CN201980039799A CN112313910B CN 112313910 B CN112313910 B CN 112313910B CN 201980039799 A CN201980039799 A CN 201980039799A CN 112313910 B CN112313910 B CN 112313910B
- Authority
- CN
- China
- Prior art keywords
- flow
- data
- network
- spine switch
- metro
- 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
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/38—Flow based routing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/14—Details of searching files based on file metadata
- G06F16/148—File search processing
- G06F16/152—File search processing using file content signatures, e.g. hash values
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/2852—Metropolitan area networks
-
- 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
- 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
- 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/2441—Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]
-
- 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/30—Flow control; Congestion control in combination with information about buffer occupancy at either end or at transit nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/15—Interconnection of switching modules
- H04L49/1515—Non-blocking multistage, e.g. Clos
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Library & Information Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
一种用于城域网的网络适配器和一种包括用于所述城域网的所述网络适配器的系统,所述网络适配器包括:接收器,所述接收器用于接收入端口处的报文数据流的数据报文;存储器,所述存储器包括指令;处理器,所述处理器耦合到所述存储器和所述接收器,所述指令使所述处理器用于确定所述数据报文的哈希值是否与流表中的流标识符(identifier,ID)匹配,并响应于所述数据报文的所述哈希值与所述流ID匹配而获得所述数据报文的流类别;以及传输器,所述传输器耦合到所述处理器,并用于使用所述流类别将所述数据报文传输到多个脊交换机中的一个脊交换机。
Description
相关申请案交叉申请
本发明要求2018年6月13日递交的发明名称为“增强型等价多路径哈希算法”的第62/684,457号美国临时专利申请和2018年10月11日递交的发明名称为“用于以数据中心为中心的城域网的多路径选择系统和方法”的第16/157,957号美国非临时专利申请的在先申请优先权,该等在先申请的内容以全文引入的方式并入本文本中。
技术领域
本公开大体上涉及通信系统,且更具体地,涉及监视和响应数据流的网络适配器和其它计算机系统。
背景技术
城域网(metropolitan network)(以下称为城域网(metro network))是可以覆盖几英里到几十英里的区域并且可以跨越整个城市或区域(通常称为城域)的计算机通信网络。网络层和传输层的组合形成城域网。超过70%的工业和商业网络业务流起源并终止于同一个城域内。对城域内工业和商业服务的需求不断增长,促使过多的服务提供商(OTT)、电信服务提供商等增加基础设施来支持这种不断增长的需求。例如,OTT不断添加POP边缘服务器来支持内容分发、社交媒体访问和低时延服务,而电信服务提供商正添加基础设施,通过用于5G的统一城域网、固定接入网、IoT、数据中心互联、企业网络连接等将用户连接到服务提供商及其服务。OTT和其它服务提供商可以在城域内使用不同的技术来提供服务。例如,网络层或传输层可以使用各种协议、公共和专用网络、网络设备和多路复用方案,而网络层和传输层的协议、控制/管理和架构演进的组合会是昂贵而复杂的。
随着越来越多的东西向M2M通信要求,城域网可以用数据中心网络(DCN)架构来实现。在DCN架构中,用户计算机连接到数据中心和其它用户计算机。众所周知的用于云计算的DCN架构的拓扑可以是利用网络中的多个等价传输路径的叶脊拓扑(在Charles Clos之后也称为CLOS网络)。在CLOS网络中,每个脊(或行尾)交换机连接到每个叶交换机,但每个叶交换机不直接连接到另一个叶交换机,每个脊交换机也不直接连接到另一个脊交换机。
使用CLOS网络拓扑,城市或区域的城域网必须动态地承载大量的实时/非实时、短周期/长周期流并且以经济有效的方式处理拥塞或性能下降。然而,随着城域网中的应用和用户数量不断增长,可能难以维持高可靠性和低时延的数据流,同时使用传统的DCN架构优化网络利用率。
发明内容
在实施例中,本公开包括一种用于城域网的网络适配器,其包括:接收器,所述接收器用于接收入端口处的报文数据流的数据报文;存储器,所述存储器包括指令;处理器,所述处理器耦合到所述存储器和所述接收器,所述指令使所述处理器用于确定所述数据报文的哈希值是否与流表中的流标识符(identifier,ID)匹配,并响应于所述数据报文的所述哈希值与所述流ID匹配而获得所述数据报文的流类别;以及传输器,所述传输器耦合到所述处理器,并用于使用所述流类别将所述数据报文传输到多个脊交换机中的一个脊交换机。
在又另一个实施例中,本公开包括:所述处理器用于确定所述报文数据流在预先确定的阈值时间段内是否有效,并且所述传输器用于响应于所述报文数据流在所述预先确定的阈值时间段内有效而将与所述报文数据流相关联的附加数据报文传输到所述脊交换机。
在又另一个实施例中,本公开包括:所述处理器用于获得所述网络适配器与第二脊交换机之间的脊交换机队列长度或脊交换机链路利用率中的至少一个,并且所述传输器用于响应于所述数据报文的所述哈希值与所述流表中的所述流ID不匹配而将所述数据报文传输到所述第二脊交换机。
在又另一个实施例中,本公开包括:所述处理器用于根据第三脊交换机的最小队列长度和链路利用率来确定所述第三脊交换机,并且所述传输器用于响应于所述数据报文的所述哈希值与所述流表中的所述流ID不匹配而将所述数据报文传输到所述第三脊交换机。
在又另一个实施例中,本公开包括:脊交换机队列长度具有所述脊交换机的缓冲区中的队列延迟。
在又另一个实施例中,本公开包括:所述处理器用于确定所述至少一个脊交换机的每个网元的加权值,并且所述传输器用于使用所述至少一个脊交换机中的较高加权脊交换机将所述数据报文传输到所述目的地节点。
在又另一个实施例中,本公开包括:所述处理器用于对所述脊交换机分配所述流ID,所述流ID对应于所述数据报文的所述流类别。
在另一实施例中,本公开包括一种在城域网中实现的方法,所述方法包括:在网络适配器处接收入端口处的报文数据流的数据报文;通过所述网络适配器确定所述数据报文的哈希值是否与流表中的流标识符(identifier,ID)匹配;通过所述网络适配器响应于所述数据报文的所述哈希值与所述流ID匹配而获得所述数据报文的流类别;以及通过所述网络适配器使用所述流类别将所述数据报文传输到多个脊交换机中的一个脊交换机,以允许所述脊交换机使用网络状态和后续路由路径将所述数据报文路由到目的地。
在又另一个实施例中,本公开包括:确定所述报文数据流在预先确定的阈值时间段内是否有效;以及响应于所述所确定的报文数据流在所述预先确定的阈值时间段内有效而将与所述报文数据流相关联的附加数据报文传输到所述脊交换机。
在又另一个实施例中,本公开包括:获得所述网络适配器与第二脊交换机之间的脊交换机队列长度或脊交换机链路利用率中的至少一个;以及响应于所述数据报文的所述哈希值与所述流表中的所述流ID不匹配而将所述数据报文传输到所述第二脊交换机。
在又另一个实施例中,本公开包括:根据第三脊交换机的最小队列长度和链路利用率来选择所述第三脊交换机;以及响应于所述数据报文的所述哈希值与所述流表中的所述流ID不匹配而将所述数据报文传输到所述第三脊交换机。
在又另一个实施例中,本公开包括:队列长度包括所述脊交换机的缓冲区中的队列延迟。
在又另一个实施例中,本公开包括:确定至少一个脊交换机的每个网元的加权值;以及使用所述至少一个脊交换机中的较高加权脊交换机将所述数据报文传输到所述目的地节点。
在又另一个实施例中,本公开包括:对所述脊交换机分配所述数据报文的所述流ID,所述流ID对应于所述数据报文的所述流类别。
在另一实施例中,本公开包括一种系统,所述系统包括:多个计算服务器,所述计算服务器中的每个计算服务器被配置为源节点或目的地节点;多个脊交换机;以及至少一个叶交换机,所述至少一个叶交换机耦合到所述多个计算服务器中的一个计算服务器并耦合到所述多个脊交换机中的每个脊交换机,每个叶交换机中的至少一个包括具有指令的存储器和耦合到所述存储器的处理器,所述指令使所述处理器用于:确定所述数据报文的哈希值是否与流表中的流标识符(identifier,ID)匹配;并响应于所述数据报文的所述哈希值与所述流ID匹配而获得所述数据报文的流类别;以及传输器,所述传输器耦合到所述处理器,并用于使用所述流类别将所述数据报文传输到所述多个脊交换机中的一个脊交换机。
在又另一个实施例中,本公开包括:所述处理器用于确定所述报文数据流在预先确定的阈值时间段内是否有效,并且所述传输器用于响应于所述报文数据流在所述预先确定的阈值时间段内有效而将与所述报文数据流相关联的附加数据报文传输到所述脊交换机。
在又另一个实施例中,本公开包括:所述处理器用于获得所述网络适配器与第二脊交换机之间的队列长度或链路利用率中的至少一个,并且所述传输器用于响应于所述数据报文的所述所确定的哈希值与所述流表中的所述流ID不匹配而将所述数据报文传输到所述第二脊交换机。
在又另一个实施例中,本公开包括:所述处理器用于根据所述网络适配器与第三脊交换机之间的最小队列长度和链路利用率来选择所述第三脊交换机,并且所述传输器用于响应于所述数据报文的所述所确定的哈希值与所述流表中的所述流ID不匹配而将所述数据报文传输到所述第三脊交换机。
在又另一个实施例中,本公开包括:所述处理器用于确定所述至少一个脊交换机的每个网元的加权值,并且所述传输器用于使用所述至少一个脊交换机中的较高加权脊交换机将所述数据报文传输到所述目的地节点。
在又另一个实施例中,本公开包括:所述处理器用于对所述脊交换机分配所述数据报文的所述流ID,所述流ID对应于所述数据报文的所述流类别。
可以将任何上述实施例与任何其它上述实施例组合以形成新的实施例。从结合附图以及权利要求书进行的以下详细描述中将更清楚地理解这些以及其它特征。
附图说明
为了更透彻地理解本发明,现参阅结合附图和具体实施方式而描述的以下简要说明,其中的相同参考标号表示相同部分。
图1是根据本公开实施例的解耦叠加/底层城域通信网络的示意图;
图2是根据本公开实施例的用于提供metroinsight技术的城域底层通信网络的示意图;
图3是根据本公开实施例的网络协议模型的示意图;
图4是根据本公开实施例的用于提供metroinsight技术的图2的叶脊拓扑的示意图;
图5A是根据本公开实施例的metroslice技术的操作原理的示意图;
图5B是示出根据本公开实施例的用于实现metroslice技术的方法的流程图;
图6是示出根据本公开实施例的用于业务流路径选择的metrofinder技术的示意图;
图7是示出根据本公开实施例的用于增强型ECMP技术的连续验证方法的示意图;
图8是示出根据本公开实施例的用于增强型ECMP方法的metrofinder技术的方法的流程图;
图9是示出根据本公开实施例的用于实现metroburst缓冲区管理技术的方法的流程图;
图10是根据本公开实施例的装置的示意图。
具体实施方式
首先应理解,尽管下文提供一项或多项实施例的说明性实施方案,但所公开的系统和/或方法可使用任何数目的技术来实施,无论该技术是当前已知还是现有的。本发明决不应限于下文所说明的说明性实施方案、附图和技术,包括本文所说明并描述的示例性设计和实施方案,而是可在所附权利要求书的范围以及其等效物的完整范围内修改。
以下缩写和首字母缩略词适用:
5G:第五代网络
AI:人工智能
ASCII:美国信息交换标准码
ASIC:专用集成电路
ATM:异步传输模式
BCD:二进码十进制
BGP:边界网关协议
CBQ:基于类的加权公平队列
CDN:内容分发网络
CPU:中央处理器
CO:中心局
DCI:数据中心互联
DCN:数据中心网络
DRL:深度强化学习
DNN:深度神经网络
DSP:数字信号处理器
DSCP:差分服务码点
DWDM:密集波分复用
EBCDIC:扩展二进制编码的十进制交换码
ECMP:等价多路径
E-LAN:仿真局域网
EO:电光
ERP:企业资源计划
FPGA:现场可编程门阵列
FlexE:灵活以太网
ID:标识符
ICMP:互联网控制报文协议
IGMP:互联网组管理协议
IOT:物联网
IP:互联网协议
IPv4:第四版互联网协议
IPv6:第六版互联网协议
IPTV:IP电视
IS-IS:中间系统到中间系统
JPEG:联合活动图像专家组
L1:OSI模型的层1
L2:OSI模型的层2
L3:OSI模型的层3
L4:OSI模型的层4
L5:OSI模型的层5
L6:OSI模型的层6
L7:OSI模型的层7
M2M:机器到机器
MPLS:多协议标记交换
MPLS TE:MPLS流量工程
OE:光电
OSI:开放系统互联
OSPF:开放式最短路径优先
OTN:光传送网
OTT:过多
P2P:点对点
POP:访问点
QoS:服务质量
PSN:报文交换网络
PW:伪线路
RAM:随机存取存储器
RF:射频
ROM:只读存储器
RX:接收器单元
RTT:往返时间
SDH:同步数字体系
SLA:服务水平协议
SONET:同步光网络
SRAM:静态RAM
TCAM:三态内容寻址存储器
TCP:传输控制协议
TX:传输器单元
TCP/IP:传输控制协议/互联网协议
UDP:用户数据报协议
UPE:面向用户的边缘设备
V2X:车辆到一切通信
vCDN:虚拟CDN
VLAN:虚拟局域网
vOLT:虚拟光线路终端
VNF:虚拟网络功能
VM:虚拟机
VPLS:虚拟专用局域网业务
VPN:虚拟专用网络
如上文所提及,城域网可以包括使用不同技术的网络层和传输层。例如,在网络层,使用MPLS/MPLS-TE、运营级以太网、IP、分段路由、OSPF/IS-IS/BGP路由协议或类似的路由协议,而在传输层使用SONET/SDH、OTN、DWDM。随着数据和服务转移到网络边缘,内容缓存和应用也从集中式数据中心转移到分布式数据中心,以改善用户体验。与将内容和应用传输到城域网相一致的是,云提供商和互联网内容提供商(例如,城域POP)将额外的数据中心部署到城域网中。服务提供商还可以使用其固产位置(例如,中心局)来部署本地数据中心(例如,电信边缘云)作为边缘云服务器。数据中心可以包括电信边缘云和城域POP,其可以存储高速缓存的内容和分布式应用服务以及支持VNF。随着流量模型在城域网内转移,VNF可以按需部署在任何数据中心。随着流量模型变得更加动态,城域网可以在各种VNF之间以及在VNF与用户之间提供快速、高容量的数据连接,无论VNF在何处部署,例如部署在同一机架、同一数据中心,或者在地理上分布的数据中心。
借用用于城域网的DCN架构可能必须克服本质差异和独特挑战。除了DCN中的传统长(大象)流和短(老鼠)流之外,城域网还可能必须支持流媒体流(例如,CDN/视频的数据流)、商业VPN数据流(例如,租用线路服务),以及用于大数据备份应用的机会数据流等。此外,TCP/UDP流量分布在城域网和DCN的突发强度方面不同。由于终端用户数量众多(例如,每个城域超过100万,针对IoT设备更是不断增长),因此城域必须支持比DCN多10倍的流量。这种增长可能会加剧微突发问题。此外,CO和Metro PoP在地理上分布。城域内的光传输链路可以达100公里(Km)范围,并使用具有可编程带宽的DWDM波长,波长和带宽可能有很大差异。相反,DCN可以具有小于2 Km的均匀灰色光链路。因此,对于一些对时延敏感的应用,不能忽略城域时延(例如,对于100 Km传播延迟大约1毫秒(ms))。可编程光带宽(例如,每波长100千兆字节(G)/200G/400G)和带宽切片技术(例如FlexE通信协议)可用于解决拥塞和/或时延问题。
本文公开了一种服务和/或企业提供商的统一叶脊城域网,其具有三种新颖技术,例如,用于在以云为中心的应用中路由网络流量的metroslice技术、metrofinder技术和metroburst技术。这三种技术可以共同组织为metroinsight技术。metroslice技术可以执行详细的业务流分类和实时流量分析,以隔离城域网中多种类型的流量模型,从而为转发数据流量提供适当的路径,并提供差异化的缓冲区管理以降低报文流的时延、提高带宽利用率并减小缓冲区大小。metrofinder技术可以执行细粒度动态路径选择,以便在数据中心和/或POP之间传输大量“东西向”M2M业务流。metrofinder技术可以是用于选择具有较低队列延迟的脊交换机以便通过城域网改善流量工程(traffic engineering,TE)并允许脊交换机使用网络状态和后续路由路径将数据报文路由到目的地的ECMP技术。通过使用metrofinder技术来改进TE,服务提供商和/或企业提供商可以通过城域网路由更多网络流量,从而容纳比现有城域通信网络中可容纳的更多用户。metroburst技术可以进行缓冲区管理,以实时缓解城域微突发数据流。例如,metroburst技术可以利用AI技术来监视脊交换机队列状态并基于微突发传输自动调整脊交换机缓冲区。
图1是根据本公开实施例的城域通信网络100的示意图。城域通信网络100包括城域叠加网络102和城域底层网络104。城域底层网络104可以包括叶交换机、脊交换机、路由器和光网元的物理网络基础设施,以便在电信边缘云106、城域数据中心/POP 108和城域骨干脊110之间传递数据报文。城域底层网络104内的光传输链路可以相距100公里(KM)。城域底层网络104可以使用例如WDM技术等光纤传输技术在节点之间发送数据报文。
城域叠加网络是建立在城域底层网络104的基础设施之上的虚拟网络。城域叠加网络102可以从城域底层网络104解耦或解聚。在解耦的网络中,城域叠加网络102的网络服务可以与其它网络服务分开自治并且与城域底层网络104的底层基础设施分开自治。城域叠加网络102可以实现虚拟化网络切片,其可以允许多个逻辑网络在城域底层网络104的共享物理网络基础设施之上运行。城域叠加网络102中的每个分片可以配置有虚拟化城域应用或可以向城域通信网络100的用户提供特定服务的服务单元。网络服务单元可以包括UPE、vCDN、vOLT等,其可以实现为硬件或软件。城域应用可以包括在城域通信网络100内提供例如OTT内容共享、宽带互联网服务或IPTV视频分发等服务的应用。
图2是根据本公开实施例的通信架构200的示意图。通信架构200包括通信地连接到核心网络204的城域底层网络202。城域底层网络202可以实现为混合Clos网络拓扑,并且可以包括例如叶脊路由器、交换机、光传输元件和网络适配器或元件等网元的物理基础设施,所述网元在多层架构中通信地耦合在一起以通过底层网络202在多个路径上转发数据报文。
城域底层网络202的组件可以称为节点。每个节点可以是例如计算机或服务器之类的网元、例如交换机之类的网络设备、路由器、光转换器、网络适配器、一组硬件计算机或服务器、存储设备、或硬件计算机或服务器的软件功能。尽管城域底层网络202示出了特定数量的节点,但是城域底层网络202可以具有任何数量的这种节点。城域底层网络202可以是PSN,其用于在数据流中通过多个路径从源节点向目的地节点传输和/或转发数据报文。城域底层网络202中的节点通过链路和路径连接。如本公开中所使用,两个节点之间的直接连接可以被称为链路,而由作为从源交换机/路由器到目的地交换机/路由器的数据流的一部分的数据报文行进的所有链路的总和(包括源节点与目的地节点之间的任何中间交换机)可以称为路径。
城域底层网络202中的节点可以是城域数据中心或城域POP 206和208、城域骨干脊210、中心局(CO)或电信边缘云212A-212D、计算服务器214A-214D,以及客户端-用户设备216A-216D。城域数据中心206和208、城域骨干脊210以及CO 212A-212D定义城域底层网络202。城域底层网络202可以用于路由去往或来自连接到城域叠加网络102的服务层(图1中示出)的节点或在所述节点之间的网络业务流。在实施例中,在通过城域底层网络202路由网络流期间,节点中的交换机可以实现一种或多种技术,以执行流分类、允许节点中的交换机使用路由流将网络流路由到目的地的最佳路径和时间段选择,以及用于城域底层网络202中的以云为中心的应用的自适应缓冲区配置。所述一种或多种技术可以包括metroslice技术、metrofinder技术和metroburst技术(统称为“metroinsight技术”),如下文所论述。
计算服务器214A-214D(统称为“214”)可以通过路由器和/或交换机连接到城域底层网络202。计算服务器214可以被配置为城域底层网络202的源节点或目的地节点。计算服务器214可以是一个传输路径中的源节点和另一个传输路径中的目的地节点。计算服务器214也可以是另一个计算服务器的若干目的地节点之一。客户端设备216A-216D(统称为“216”)可以在计算服务器214处通信地耦合到城域底层网络202。客户端设备216可以用于生成通过通信架构200传输的L2或L3数据报文,如下所述。如本公开中所使用,术语L2和L3定义应用于城域底层网络202的OSI模型的层功能,如下文在图3中所论述。客户端设备216可以包括个人计算机、服务器、智能手机、笔记本电脑、IOT设备、车辆、家用电器或其它类似设备。客户端设备216可以经由城域底层网络202中的链路和路径在其它客户端设备216之间或与城域数据中心206、208之间传输和接收L2或L3数据报文。
城域底层网络202包括CO 212A-212D(统称为“212”)节点。CO 212(也称为“本地数据中心”)可以是位于城域底层网络202的边缘的电信边缘云。在实施例中,CO 212可以包括物理或虚拟网元。CO 212可以将网络硬件虚拟化为CO 212处的VNF,并且使网络服务功能能够通过网元在城域底层网络202的边缘运行。CO 212可以在Clos网络拓扑中实现。每个CO212可以包括配置有L2或L3功能的叶交换机。叶交换机可以包括计算机系统或程序集,企业提供商、网络提供商或例如Verizon®、AT&T®或Sprint®等服务提供商运行所述计算机系统或程序集以便提供网络服务,例如网络连接、应用程序支持、在CO 212处通过边缘云计算服务器214的其它支持。在实施例中,CO 212还可以包括L2或L3脊交换机,所述脊交换机连接到其下方的叶交换机,作为节点(在下文中描绘为城域叶节点213)中的二向图。在城域叶节点213中,叶交换机直接连接到每一个脊交换机,但是叶交换机不连接到另一个叶交换机。在实施例中,CO 212处的叶交换机可以用于托管代理功能,用于在映射数据库中执行端点IP地址的查找,以代表计算服务器214通过城域底层网络202进行数据传输和转发决策。数据传输和转发决策可以使用一种或多种metroinsight技术来实现,例如,metroslice、metrofinder和/或metroburst技术。CO 212中的叶交换机可以是CO 212的端节点。这样,叶交换机可以直接连接到其下方的节点,例如,可以直接连接到计算服务器214。脊交换机是叶交换机上方的中间节点,并且可以连接到下方的叶交换机和脊交换机上方的额外交换机。虽然图2中示出了四(4)个CO 212A-212D节点,但是城域底层网络202可以具有任何数量的CO 212节点。CO 212可以分布在整个城域底层网络202的各个地理位置处,并且可以被称为城域底层网络202中的地理分布位置处的CO分支。
城域骨干脊210可以包括脊交换机210A、210B和210C。脊交换机210-210C可以连接到下方的CO 212中的叶交换机并连接到上方的城域数据中心(datacenter,DC)206、208。城域骨干脊210可以在Clos网络拓扑中实现,并且可以用L3功能实现。在实施例中,城域骨干脊210可以包括脊交换机210A-210C,所述脊交换机耦合到脊交换机210A-210C节点(示为城域脊节点211)内的L3叶交换机。每个脊交换机210A-210C可以连接到CO 212中的每个叶交换机,作为二向图,例如作为城域叶节点213。CO 212与骨干脊210之间的耦合可以表示双层叶交换机网络,在CO 212的叶交换机处具有层1并且在城域骨干脊210的脊交换机处具有层2。在实施例中,城域骨干脊210可以为城域底层网络202执行路由。在实施例中,从CO 212路由到骨干脊210的网络流量可以从CO 212经过一跳到达城域骨干脊210处的默认网关,以便将漫出数据流或漫入数据流从CO 212路由到其它CO 212或城域DC/PoP 206、208。从计算服务器214处的始发主机和目的地节点发送的数据报文可以通过CO 212中的叶交换机和/或脊交换机以及城域骨干脊210转发到目的地节点。城域骨干脊210可以用作城域数据中心206和208的L3边界和服务器网关。在实施例中,城域骨干脊210可以执行VLAN内帧切换,通过城域底层网络202进行东西向内网流量的VLAN间路由,并且可以与上行链路路由的层3(例如,BGP VPN)交换路由邻接信息,以通过城域底层网络202路由南北向网络流量。
城域数据中心206和208可以表示城域底层网络202的核心层。城域数据中心206、208可以是与服务提供商或企业服务提供商相关联的基于云的数据中心。每个城域数据中心206、208可以包括容纳服务器、路由器、网络交换机、多路复用器、其它网络接口设备以及例如电信和存储系统等相关联组件的POP设施。所述POP设施可以是到核心网络204的接入点。虽然城域底层网络202示出了特定数量的城域数据中心,但是城域底层网络202可以具有任意数量的这种城域数据中心206、208。城域数据中心206、208可以为主机和目的地节点托管一个或多个服务,例如数据或应用服务。可以使用IP路由地址作为连接到城域数据中心206、208的L3功能的一部分来从城域骨干脊210访问这些服务。城域数据中心206、208可以并置在城域底层网络202内,或者可以地理上分布在城域底层网络202中的不同位置。
核心网络204(也称为骨干网络)是外部IP网络,例如互联网。核心网络204是具有例如路由器和交换机等网络设备的通信网络,其可以使用网络以及包括ATM、IP、SONET和DWDM的数据链路层技术在城域底层网络202与其它外部网络之间发送和接收数据。
在操作中,城域底层网络202中的CO 212节点可以用于实现metroinsight技术,以便执行下文论述的增强型流路由技术,从而将网络流量路由到城域底层网络202中的源节点和目的地节点以及从源节点和目的地节点路由或在源节点与目的地节点之间路由。例如,CO 212A处的网络适配器或交换机可以实现metroinsight技术以使用CO 212和骨干脊210将L3报文数据流从客户端设备216A路由到其它客户端设备216B-216C。其它客户端设备216B-216C可以耦合到城域底层网络202的目的地节点。其它CO 212B-212D可以类似地用于路由L3数据报文,如本公开在本文中所描述。
在实施例中,CO 212A处的例如网络适配器等网元可以获得从CO 212A到城域底层网络202中的其它目的地节点的链路和/或路径的当前网络状态。当前网络状态可以从网络状态表中检索,网络状态表可以存储在CO 212A处。当前网络状态可以包括城域底层网络202中的每个链路和路径的总路径延迟,这将在下文论述。CO 212A处的网元可以使用探测报文来确定每个路径的网络状态。例如,网络适配器可以使用多个路径将探测报文传输到其它目的地节点,并且可以针对到目的地节点的每个路径监视探测报文的RTT。网络适配器可以使用从每个目的地节点接收的信息来确定到每个目的地节点的总路径延迟。总路径延迟可以表示城域底层网络202中的每个链路和路径的当前网络状态。网络适配器还可以存储网络状态表中的每个链路和路径的当前网络状态。
CO 212A处的网元可以标记城域应用和当前网络状态以通过城域底层网络202传输和/或转发L3数据报文。例如,城域应用可以指示L3数据报文是高优先级,在这种情况下,可以使用根据存储在CO 212A处的网络状态表确定的最低时延链路和/或路径来传输L3数据报文。CO 212A可以用于近实时地将L3数据报文传输到目的地节点,或者将L3数据报文传输和/或转发到中间存储设备进行存储。在第一示例中,当应用将L3数据报文分类为具有高优先级时,L3数据报文可以近实时地传输到目的地节点,例如计算服务器214D。在实施例中,高优先级数据包括与语音应用相关联的数据或与作为SLA的一部分的租用线路相关联的数据。在第二示例中,当L3数据报文被分类为低优先级数据报文并且城域底层网络202内的路径的网络利用率低于第一预定义阈值百分比时,CO 212A可以近实时地将L3数据报文传输到目的地节点。第一预定义阈值可以是40百分比(%)。在第三示例中,当L3数据报文被分类为低优先级数据报文并且城域底层网络202内的路径的网络利用率高于第二预定义阈值百分比时,CO 212A可以延迟传输L3数据报文并将L3数据报文存储在CO 212A处。在实施例中,当第二预定义阈值百分比高于或等于60%时,L3数据报文可以存储在CO 212A处的服务器处。当在稍后的时间段网络利用率低于60%时,CO 212A可以将低优先级数据报文传输到目的地节点。本公开的范围内还设想其它网络利用率百分比。在实施例中,可以将低优先级数据报文转发到另一个节点用于存储,以代替在CO 212A处存储低优先级数据报文。在稍后的时间,当网络利用率低于第二预定义阈值百分比,例如低于60%时,CO 212A可以通知另一节点开始传输低优先级数据报文。
在另一实施例中,CO 212A处的网络适配器可以将在CO 212A的入端口处接收的报文数据流与流类别查找表进行比较,以便确定一个或多个数据报文的流ID是否与预先确定的流类别相关联。网络适配器可以使用五元组标签的哈希函数来确定报文数据流702的流类别。例如,网络适配器可以使用哈希函数来获得数据报文中的标头字段的五元组标签的哈希值,并使用流类别查找表来确定五元组标签的哈希值是否与流类别查找表中的流类别相关联。五元组标签可以包括源IP地址、目的地IP地址、源端口、目的地端口和传输协议。当数据报文的流ID不与流类别相关联时,CO 212A处的网络适配器还可以使用AI技术处理报文数据流的数据报文的子集。AI技术可以使用机器学习模型来识别第一数据报文子集的流类别。
在另一实施例中,CO 212A处的网络适配器可以使用来自AI技术的流类别信息和/或来自流类别查找表的流类别信息来识别报文数据流中的数据报文的流类别。网络适配器可以将根据数据报文的流类别分类的数据报文发送到缓冲区以进行存储。在实施例中,每个流类别可以包括优先级,该优先级可以是执行最佳路径选择,以便将报文数据流传输到骨干脊210的一个或多个脊交换机。
在另一实施例中,骨干脊210处的网络适配器可以包括智能模块,以调整在骨干脊210处接收的报文数据流的缓冲区要求。例如,网络适配器可以连续地监视缓冲区的队列状态,以及在骨干脊210处进入或离开缓冲区队列的报文数据流的流速。可以根据基于类的加权公平队列(CBQ)针对不同的流类别分配缓冲区队列,并且流类别的每个缓冲区队列可以与来自不同叶交换机的流共享。可以从脊交换机处的多个叶交换机接收流类别的报文数据流,并将其存储在为所述流类别分配的缓冲区中。网络适配器还可以监视进入缓冲区队列的数据报文的输入速率、离开缓冲区队列的数据报文的输出速率、缓冲区队列的长度以及缓冲区队列的大小。
图3是OSI模型300的示意图。OSI模型300包括层302到314。每个层302-314定义计算系统的通信功能,其中层服务于其上方的层。
层302是L1或物理层。物理层是OSI模型300的最低层。层302是指处理传输介质的物理特性的标准,包括连接器、引脚、引脚的使用、电流、编码、光调制以及如何启用和停用物理介质的使用的规则。
层304是L2或数据链路层。数据链路层位于物理层之上。数据链路层定义了确定节点何时可以通过特定物理介质发送数据的规则。数据链路协议还定义了标头和尾部的格式,允许附接到物理介质的客户端设备发送和接收数据。
层306是L3或网络层。网络层位于数据链路层之上。网络层定义发送数据时的逻辑寻址、路由(转发)和路径确定。路由定义节点中的路由器如何将数据报文转发到最终目的地。逻辑寻址定义了每个客户端设备可以如何具有可由路由进程使用的地址。路径确定是指路由协议如何学习所有可能的路由,并选择最佳路由。
层308是L4或传输层。传输层位于网络层之上。传输层涉及在将数据从一个客户端设备传输到另一个客户端设备时的错误恢复和控制等问题。
层310是L5或会话层。会话层位于传输层之上。会话层定义了如何在客户端设备之间启动、控制和结束对话(称为会话)。会话可以包括对多个双向消息的控制和管理,使得如果仅完成一系列消息中的一些消息则可以通知用户应用程序。这允许表示层具有输入数据流的无缝视图。
层312是L6或表示层。表示层位于会话层之上。表示层定义和协商数据格式,例如ASCII文本、EBCDIC文本、二进制、BCD和JPEG。加密也由OSI模型200定义为表示层服务。
层314是L7或应用层。应用层是OSI模型300的最高层。应用层提供通信软件与需要在应用所驻留的客户端设备外部通信的任何应用之间的接口。应用层还定义了用户认证的过程。1994年11月的国际标准化组织(International Organization forStandardization,ISO)文件ISO/IEC 7498-1中描述了OSI模型300,该文献以引入的方式并入本文本中。
图4示出了根据本公开实施例的用于metroinsight技术的叶脊拓扑400的示意图,所述叶脊拓扑用于控制图2的城域底层网络202中的报文流,并允许叶脊拓扑400中的脊交换机使用网络状态和后续路由路径将报文流路由到目的地。叶脊拓扑400可以包括城域叶404和城域骨干脊406。城域骨干脊406可以是图2的城域骨干脊211,并且城域叶404可以是图2的城域叶节点213。城域叶404可以包括大体上类似的叶交换机404A-404C。每个叶交换机404A-404C可以包括网络端口,其可以从它们各自的始发节点接收报文数据流,或者可以从源自叶交换机404A-404C的城域骨干脊406处的脊交换机接收数据报文流。例如,叶交换机404A示出具有网络端口A-C;叶交换机404B示出具有网络端口D和E;叶交换机404C示出具有网络端口F、G、L和M。城域骨干脊406可以包括具有网络端口的脊交换机406A-406C。例如,脊交换机406B示出具有网络端口H、I和J;脊交换机406C示出具有网络端口K。虽然城域叶404和城域骨干脊406示出具有图4所示的网络端口A-M,但在城域叶404和城域骨干脊406中还可以提供额外的网络端口。
在实施例中,网络端口可以连接到叶脊拓扑400中的其它网络端口。网络端口可以被配置为网络入端口和/或网络出端口。在特定网络入端口处接收的报文数据流可以被路由到脊交换机406A-406C处的特定网络端口,以便将报文数据流路由到目的地城域叶404A-404C。例如,如图4所示,网络端口B可以连接到网络端口H,网络端口C可以逻辑地连接到端口K,并且网络端口J可以连接到网络端口G。流类别可以包括老鼠流、大象流、专用流、备用流等。此外,城域骨干脊406处的脊交换机可以包括连接到目的地叶交换机处的网络端口的网络端口。在实施例中,可以在叶交换机的网络入端口处接收的每个报文数据流(例如,叶交换机404A)可以使用城域骨干脊406处的脊交换机处的网络端口路由到目的地叶交换机(例如,叶交换机404C)处的网络端口。网络端口可以连接或耦合到其它网络端口并且可以用于使用来自始发叶交换机和目的地叶交换机的相同网络端口经由城域骨干脊406路由特定数据报文流,并允许脊交换机使用网络状态和后续路由路径将数据报文路由到目的地。在实施例中,可以基于流类别通过相同的网络入端口和网络出端口来路由报文数据流。在示例中,在网络端口A处接收的报文数据流可以经由网络端口H和J传输到网络端口G。在其它实施例中,还可以使用时延灵敏度、丢失灵敏度或吞吐量灵敏度通过特定网络端口传输报文数据流。
在实施例中,叶脊拓扑400可以在示例性城域叶节点213(图2)和示例性城域脊节点211上实现metroinsight技术,以便使用自适应负载均衡的报文流通过城域底层网络202传输和接收数据报文。metroinsight技术可以在叶脊拓扑400中使用若干技术。例如,叶脊拓扑400可以使用metroslice技术408进行由城域叶节点404A-404C接收的报文数据流的实时流分类和模型识别,使用metrofinder技术410执行增强型ECMP路由方法,连续验证用于通过城域叶节点404A-404C传输报文数据流的最佳流路径和脊交换机选择,以及在城域脊节点406A-406C使用进行缓冲区管理的metroburst缓冲区管理技术412,其缓解城域脊节点406A-406C处的报文数据流的微突发传输。
在实施例中,例如城域叶节点404A处的网络适配器等网元可以对由网络适配器在来自始发节点402A的叶交换机处接收的报文数据流实施metroslice技术。metroslice技术可以对报文数据流执行分类和模型识别,以便确定报文数据流的流配置文件。例如,报文数据流的流配置文件可以利用报文数据流中的五元组信息、流持续时间、流的平均数据速率等。当在流配置文件表中未找到流标识符时,可以使用五元组信息来获得流标识符并识别数据流类型,如下文所论述。下文在图5A和5B中示出和描述了metroslice技术。
图5A是根据本公开实施例的metroslice技术的操作原理500的示意图。虽然用图4的示例性城域叶节点404A示出了metroslice技术,但也可以用其它城域叶节点404B-404C实现metroslice技术。继续参考图4,城域叶节点404A处的网络适配器可以基于来自传输节点的数据传输来接收报文数据流。例如,城域叶节点404A中的叶交换机处的网络适配器可以在城域叶节点404A的入端口处从节点402A接收报文数据流502。可以将报文数据流502与流类别查找表504中的报文数据流进行比较,以便确定报文数据流502中的一个或多个数据报文的流ID是否与预先确定的流类别相关联。在实施例中,流类别查找表中的流类别可以包括专用数据流、老鼠数据流、大象数据流、备用数据流或未知数据流。可以使用五元组标签的哈希函数和流506的前M个报文来确定报文数据流502的流类别。例如,可以使用哈希函数来获得报文数据流502的数据报文中标头字段的五元组标签的哈希值。五元组标签可以包括源IP地址、目的地IP地址、源端口、目的地端口和传输协议。可以将五元组标签的哈希值与流类别查找表504中的数据值进行比较,以确定五元组标签的哈希值是否与流类别查找表504中的流类别相关联。
当数据报文的流ID不与流类别相关联时,网络适配器还可以将报文数据流502的数据报文的子集转发到基于AI的流分类器模块510。在示例中,网络适配器可以将前M个数据报文506(例如,1-100个数据报文)转发到基于AI的流分类器模块510,以进行分类和模型识别。基于AI的流分类器模块510可以使用机器学习模型而基于流的前M个数据报文506来识别流类别。由基于AI的流分类器模块506根据前M个数据报文506获得的流类别信息可以由基于AI的流分类器模块506发送到流类别查找表504。
网络适配器可以使用来自基于AI的流分类器模块510的流类别信息和/或来自流类别查找表804的流类别信息来识别报文数据流502中的数据报文的流类别并对其分类。网络适配器可以使用流类别将分类后的数据报文发送到缓冲区512以进行转发。当根据缓冲区512中的数据报文的流类别存储所述数据报文时,每个流类别可以包括优先级,流路径选择模块522可以使用所述优先级来执行最佳路径选择,以便将报文数据流502传输到城域脊节点406A-406C的一个或多个脊交换机。
图5B是示出根据本公开实施例的用于实现metroslice技术的方法550的流程图。城域叶节点404A(图4)处的网元可以在报文数据流502上实现方法550。虽然用示例性城域叶节点404A示出了metroslice技术,但也可以用其它城域叶节点404B-404C实现metroslice技术。
参考图4和5A-5B,在步骤555,城域叶节点404A可以从传输节点接收报文数据流502。例如,与城域叶节点404A处的叶交换机相关联的网络适配器可以从叶交换机的入端口i处的节点402A处的服务器接收报文数据流502。在实施例中,入端口i处的报文数据流502可以与一个或多个流类别相关联。如表1所示,流类别可以包括专用数据流、老鼠数据流、大象数据流、备用数据流或未知数据流。在实施例中,专用数据流可以与用于企业租用线路服务的报文数据流相关联,例如E线路通信、E-LAN、VPLS、DCI、切片应用或其它类似应用。在实施例中,老鼠流可以与用于短期应用的高突发速率数据流相关联,例如游戏、协作、交互式应用、分布式计算、V2X、任务关键型应用流、大数据分析、移动回程或其它类似应用。在实施例中,大象流可以与传输大量数据的长期报文数据流相关联,例如与流视频、CDN、数据复制、高速互联网接入、视频监控等智能城市/智能家庭流量相关联的应用或其它类似应用,备用流可以与例如尽力而为应用、数据库备份、软件升级应用、P2P应用或其它类似应用之类的应用的报文数据流相关联。在实施例中,未知流可以是与metroslice技术无法识别的应用相关联的数据流。报文数据流的附加字段可以包括优先级、时延灵敏度、丢失灵敏度或吞吐量灵敏度。表1还可用于下面讨论的metrofinder和metroburst技术,以确保流QoS。
流类别 | 优先级 | 时延灵敏 | 丢失灵敏 | 吞吐量灵敏 |
专用流 | 最高(#7) | Y | Y | Y |
老鼠流(微流) | 最高(#6) | Y | Y | N |
大象流(宏流) | 最高(#6) | N | N | Y |
备用流 | 最低(#0) | N | N | N |
未知流 | 高(#5) | Y | Y | N |
表1
在步骤560,网络适配器可以使用五元组标签的哈希函数来确定数据报文的流ID(j),并且将流ID j用作流配置文件表中的关键属性。在实施例中,流配置文件表可以是流类别查找表504。例如,网络适配器可以使用哈希函数来获得数据报文中的标头的五元组标签的哈希值。网络适配器可以使用流配置文件表来确定哈希值是否与流配置文件表中的流ID j匹配。五元组标签可以包括源IP地址、目的地IP地址、源端口、目的地端口和传输协议。
在步骤565,网络适配器可以确定流ID j是否与流配置文件表中的流ID匹配。流配置文件表在表2中示出,并且可以包括作为关键属性字段的网络端口ID和流ID的属性、流类别和流配置文件。如果流ID j与流ID不匹配(在流配置文件表中未找到流ID j并且步骤565=“否”),则报文数据流中的数据报文可以与新的流类别相关联,并且步骤565进行到步骤575。
在步骤575,网络适配器可以在流配置文件表中添加数据报文的未知流类别。可以为称为未知的流类别分配网络端口ID和流ID。网络端口ID可以表示叶交换机的网络端口,并且流ID可以表示报文数据流的数据报文的五元组标签的哈希值。流类别和流ID可以是存储在流配置文件表中的关键字段中的数据报文的新类别。还可以使用关键字段来更新流配置文件表,所述关键字段包括网络入端口号和流ID值、流类别,以及未知类别的报文数据流502的流配置文件。在实施例中,可以对数据报文的流ID j分配“未知”流类别。关键字段中的网络端口号i可以包含表示接收报文数据流的网络端口的值。如表2所示,流配置文件表可以包括具有网络端口号和流ID的关键字段、流类别以及流配置文件。
<入端口i,流ID j> | 流类别 | 流配置文件 |
<1, 200281> | 老鼠流 | 高突发性(MAX_BURST = 10ms) |
<3, 895623> | 未知流 | 未知 |
<6, 768764> | 专用流 | 吞吐量 ~ 400Mb/s |
. . . | . . . | . . . |
表2
在步骤590,网络适配器可以为报文数据流502分配DSCP值,并将报文数据流502的数据报文506转发到基于AI的流分类器模块510。在实施例中,DSCP值可以对应于流配置文件表中的未知流类别,并且可以表示表1的优先级值#5。在实施例中,DSCP值可以写入到IP报文标头字段中的“业务类型”字段(图5)。步骤590进行到步骤595。
然而,如果在步骤565,流ID j与流配置文件表中的流ID匹配(步骤565 =“是”),则报文数据流可以与现有流类别相关联,并且步骤565进行到步骤570。
在步骤570,网络适配器可以确定报文数据流502的数据报文的流类别。如果报文数据流中的数据报文的流类别是流配置文件表中的“未知”流类别(步骤570 =“是”),则步骤570进行到步骤580。
在步骤580,网络适配器可以使用基于AI的流分类器模块510基于前M个数据报文506来确定流类别。例如,预先确定的数量的M个数据报文506可以由网络适配器转发到基于AI的流分类器模块510以用于分析M个数据报文506中的流类别。基于AI的流分类器模块510可以通过使用机器学习模型来识别流类别并对其分类,以根据接收到的流的前M个数据报文506来实时地识别流类别。在实施例中,M可以是1到256之间的预先确定的或预定义数量。业务流配置文件可以包括表1中所示的流类别,以及估计流大小、近似平均速率、近似突发速率或平均吞吐量/时延要求的附加类别。如果基于AI的流分类器模块510基于前M个数据报文506成功地识别接收到的流的流类别,则可以不将用于接收到的流的附加数据报文转发到基于AI的流分类器模块510进行分析。此外,可以使用报文数据流502中的数据报文的网络端口ID和流ID j来更新流配置文件表。步骤580进行到步骤595。
然而,在步骤570,如果报文数据流502的流类别与已经在流配置文件表中的流类别相关联(步骤570 =“否”),则步骤570进行到步骤585。在步骤585,网络适配器可以对报文数据流502的IP报文标头字段分配DSCP值。在实施例中,DSCP值可以是在表1中示出和描述的优先级值。步骤585进行到步骤595。在步骤595,网络适配器可以根据步骤555监视用于附加数据报文流的链路并处理数据报文,否则当没有接收到附加报文数据流时,方法550进行到步骤805(图8)。
返回参考图4,城域叶节点404A-404C处的每个叶交换机可以实现metroinsight技术以连续地验证多路径数据报文流。例如,metroinsight技术可以通过使用存储在流配置文件表中的信息对例如数据报文流502使用多个数据报文流路径,以便确定用于经由城域脊节点406B从城域叶节点404A处的叶交换机的网络出端口路由报文数据流到城域叶节点404C处的叶交换机的网络入端口的最佳路径。在实施例中,城域叶节点404A可以用于通过使用连续路径验证来确定包括到城域叶节点404C的城域叶交换机的多个路径中的最佳路径。连续路径验证可以经由城域脊节点406B处的脊交换机将周期性探测报文传输到另一个城域叶节点404A-404C。在实施例中,连续路径验证可以使用包括RTT、队列长度和链路利用率的路径性能度量来确定用于经由城域脊节点406A-406C将数据报文从城域叶节点404A处的始发叶交换机传输到城域叶节点404B-404C处的目的地叶交换机的最佳路径。
探测报文可以是L3数据报文,其可以用于确定城域脊节点406A-406C的队列长度、每个链路的网络状态,以及从叶脊拓扑400中的始发叶交换机到目的地叶交换机的每个路径。在实施例中,城域叶节点404A可以使用城域脊节点406A-406C的不同网络端口将探测报文传输到目的地城域叶节点404B-404C处的另一个叶交换机。例如,始发城域叶节点404A可以从网络端口A传输探测报文,并使用将始发城域叶节点404A连接到目的地城域叶节点404B-404C的每个路径/脊交换机。可以将探测报文从始发城域叶节点404A重复传输到目的地城域叶节点404B-404C,以便检测网络状态随时间的变化。在实施例中,始发城域叶节点404A还可以确定到城域底层网络202中的其它节点的路径的网络状态,包括从始发城域叶节点404A到城域底层网络202的城域数据中心206、208的路径的网络状态。
始发城域叶节点404A可以监视跨每个路径传输探测报文与从每个目的地城域叶节点404B-404C接收响应报文之间的RTT。目的地城域叶节点404B-404C可以使用最初用于发送探测报文的相同路径(例如,城域脊节点406A-406C的相同脊交换机)来发送响应报文。响应报文可以为城域叶节点404A-404C中的每个叶交换机提供网络利用率信息。使用响应报文,始发城域叶节点404A可以确定从始发城域叶节点404A处的叶交换机到目的地城域叶节点404B-404C处的叶交换机的每个路径的总路径延迟/RTT。总路径延迟/RTT可以表示城域底层网络202中的链路和路径的网络状态。由于始发城域叶节点404A和目的地城域叶节点404B-404C之间的一些链路可能被破坏,所以始发城域叶节点404A还可以通过监视是否已经在预先确定的或预定义阈值时间内接收到来自目的地城域叶节点404B-404C的响应报文来识别断链。在一些示例中,当在预先确定的阈值时间内没有接收到RTT消息时,预定义阈值时间可以设置为1毫秒(ms)、10 ms或100 ms,始发城域叶节点404A可以将链路确定为断链。
如下表5中所示,总路径延迟/RTT可以是以微秒(us)为单位的如下表3所示的脊交换机队列长度和如下表4所示的链路利用率的总和。可以使用探测报文的RTT来确定总路径延迟。脊交换机队列长度可以是报文在始发城域叶节点404A处插入叶脊拓扑400的时间与基于存储在城域脊节点406A-406C的缓冲区中并等待传递到目的地城域叶节点404B-404C的数据报文经由城域脊节点406A-406C传递到目的地城域叶节点404B-404C的时间之间所遇到的延迟。链路延迟可以是始发城域叶节点404A与目的地城域叶节点404B-404C之间的链路的链路利用率。从始发城域叶节点404A到目的地城域叶节点404C的网络流量路径的总路径延迟可以存储在始发城域叶节点404A的路由表中。metroinsight算法可以使用总路径延迟来连续验证链路和路径的网络状态,如图6所示和所述,用于选择通过城域底层网络202传输数据流流量的最佳路径和脊交换机。
脊交换机队列长度 | 队列长度(us) |
目的地1,路径1,脊 | 1000 |
目的地1,路径2,脊 | 500 |
. . . | . . . |
表3
链路 | 链路利用率(%) |
路径1,链路1 | 80 |
路径1,链路2 | 20 |
. . . | . . . |
表4
总路径RTT | 总路径延迟(us) |
目的地1,路径1 | 800 |
目的地1,路径2 | 700 |
. . . | . . . |
表5
图6是示出根据本公开实施例的用于自适应地选择业务流路径的metrofinder技术600的示意图。继续参考图4,每个城域叶节点404A-404C可以用于实现用于业务流路径选择的metrofinder技术。在实施例中,可以在哈希模块604处接收数据报文流602。哈希模块604可以使用五元组标签的哈希函数来确定五元组哈希值。例如,网络适配器可以使用哈希函数来获得数据报文流602中的标头字段的五元组标签的哈希值。哈希值可以存储在存储模块606处的哈希桶中。可以将哈希值发送到脊选择模块608,在所述脊选择模块可以对哈希值分配不同的权重。metrofinder技术可以使用权重来基于路径性能度量将数据报文流602传输到城域脊交换机406A-406C。路径性能度量可以包括链路利用率、RTT和脊交换机队列长度。分配的权重可以影响哪个城域脊交换机406A-406C具有优先级。在实施例中,权重的范围可以在1到255之间。例如,可以分配不同的权重以便影响脊交换机406A-406C的选择并确保报文数据流的最佳负载均衡。在实施例中,可以基于流类别的数据流大小为流类别分配不同的权重。例如,对于老鼠流,可以为较低RTT或较低链路利用率分配较高权重,或为较高RTT或较高链路利用率分配较低权重。
图7是根据本公开实施例的可以与用于业务流路径选择的metrofinder技术一起使用的叶脊拓扑700的示意图。叶脊拓扑700可以实现图2的城域底层网络102中的CO 212和骨干脊210的叶脊结构。在实施例中,增强型ECMP技术可以用于通过城域底层网络202确定最佳路径和时间段选择。
叶脊拓扑700可以包括脊交换机704A和704B,以及叶交换机706A、706B、706C和706D。每个叶交换机706A-706D可以位于城域底层网络202的边缘,并且经由链路直接连接到节点708A-708B。每个叶交换机706A-706D在二向图中连接到每一个脊交换机704A-704B。使用二向图链路,路由的网络流量仅经过一跳从脊交换机704A-704B到另一个叶交换机706A-706D,以便到达目的地节点708A或708B。这样,脊交换机704A-704B可以被视为城域底层网络202中的中间交换机。节点708A和708B通过链路连接到叶交换机706A-706B。在示例中,节点708A可以连接到叶交换机706A,而节点708B可以连接到叶交换机706D。
在示例中,用于第一示例数据流的数据报文可以源自节点708A并且经过路径A-B从叶交换机706A通过脊交换机704A到达叶交换机706D处的目的地节点。在另一示例中,用于第二示例数据流的数据报文可以源自节点708A并且经过路径C-D从叶交换机706A通过脊交换机704B到达叶交换机706D处的目的地节点。由于叶脊拓扑700中的每个路径A-B或路径C-D的距离可以是几十英里,例如,可以是50英里或更大,因此使用任何路径A-B或C-D传输的数据报文可能必须考虑可能需要从源节点到目的地节点近实时传输数据报文的路径的时延。例如,由实时语音应用或内容流应用生成的数据报文可能必须近实时地传输,而IOT应用或分析应用的数据报文可能不需要考虑路径的时延。这样,当通过城域底层网络202传输或转发数据报文时,叶脊拓扑700可能必须考虑应用类型、应用位置、网络拥塞和数据量。
在实施例中,每个叶交换机706A-706D可以用于将探测报文传输到另一个叶交换机706A-706D。探测报文可以是L3数据报文,其可以用于确定叶脊拓扑700中的每个链路和每个路径的网络状态。在实施例中,每个叶交换机706A-706D可以使用每个脊交换机704A-704B并使用每个路径将探测报文传输到目的地叶交换机706A-706D。例如,始发叶交换机706A可以使用路径A-B将第一探测报文传输到目的地叶交换机706D。始发叶交换机706A还可以使用路径C-D将第二探测报文传输到目的地叶交换机706D。可以将探测报文从始发叶交换机706A-706D重复传输到目的地叶交换机706A-706D,以检测网络状态随时间的变化。在实施例中,每个始发叶交换机706A-706D还可以确定到城域底层网络102中的其它节点的路径的网络状态,包括从始发叶交换机706A-706D到城域底层网络202的城域数据中心206、208的路径。
始发叶交换机706A可以监视跨每个路径A-B和C-D传输探测报文与从每个目的地叶交换机接收响应报文之间的RTT。可以由目的地节点使用最初用于发送探测报文的相同路径来发送响应报文。响应报文可以提供关于目的地节点接收到探测报文的时间的信息。使用响应报文,始发叶交换机706A可以确定到目的地叶交换机706D的每条路径的总路径延迟。类似地,可以使用类似的探测报文来获得其它路径的总路径延迟,例如,包括任何叶交换机706A-706D的始发叶交换机与包括任何叶交换机706A-706D的目的地叶交换机之间的总路径延迟。总路径延迟可以表示城域底层网络202中的链路和路径的网络状态。由于始发叶交换机706A与目的地叶交换机706D之间的一些链路可能被破坏,所以始发叶交换机706A还可以通过监视是否已经在预先确定的或预定义阈值时间内接收到来自目的地叶交换机706D的响应报文来识别断链。在一些示例中,预定义阈值时间可以设置为1毫秒(ms)、10 ms或100 ms。如果在预定义阈值时间内没有接收到RTT消息,则始发叶交换机706A可以将链路定义为断链。
如表8所示,总路径延迟可以是如表6所示的路径延迟和如表7所示的链路延迟的总和。总路径延迟可以使用探测报文的RTT来确定。路径延迟可以是报文在始发叶交换机706A-706D处插入叶脊拓扑700的时间与传递到目的地叶交换机706A-706D的时间之间所遇到的延迟。链路延迟可以是报文当插入叶脊拓扑700中时在始发叶交换机706A-706D与脊交换机704A-704B之间的链路中所遇到的延迟。从始发叶交换机706A-706D到目的地叶交换机706A-706D的网络流量路径的总路径延迟可以存储在始发叶交换机的路由表中。
路径 | 队列延迟(us) |
目的地1,路径1 | 100 |
目的地1,路径2 | 500 |
. . . | . . . |
表6
链路 | 链路延迟(us) |
路径1,链路1 | 500 |
路径1,链路2 | 1000 |
路径2,链路1 | 300 |
路径2,链路2 | 800 |
. . . | . . . |
表7
总路径 | 总路径延迟(us) |
目的地1,路径1 | 600 |
目的地1,路径2 | 1500 |
. . . | . . . |
表8
图8是示出根据本公开实施例的可以利用增强型ECMP方法的metrofinder技术的方法800的流程图。任何城域叶节点404A-404C(图4)中的叶交换机处的网络适配器可以在报文数据流602上实现方法800。
方法800可以在步骤805开始并且进行到步骤810。在步骤810,可以将在叶交换机处接收的用于报文数据流602的数据报文分类并识别为流类别查找表中的五(5)个不同的流类别。例如,可以根据表1中提供的流类别对流类别进行分类。
在步骤815,网络适配器可以计算/获得用于报文数据流602的数据报文的五元组标签的哈希值。例如,网络适配器可以使用哈希函数来计算用于报文数据流602的每个流类别的数据报文的标头字段的五元组标签的哈希值,并获得数据报文的流ID。五元组标签可以包括源IP地址、目的地IP地址、源端口、目的地端口和传输协议。
在步骤820,网络适配器确定数据报文的流ID j是否与流表中的流ID匹配。例如,网络适配器可以确定流表中的流ID j是否与报文数据流602的数据报文的五元组标签的哈希值匹配。
在步骤820,如果流ID j与五元组标签的哈希值不匹配,则数据报文的流ID不存在于流表中(步骤820 =“否”),接着步骤820进行到步骤830。
在步骤830,网络适配器可以使用表3-5来选择脊交换机以将数据报文发送到脊交换机。例如,网络适配器可以使用脊交换机队列长度以及叶交换机与脊交换机之间的链路的链路利用率百分比来选择脊交换机。在实施例中,网络适配器可以从表3中选择具有最小队列长度(例如,500 us)的脊交换机,并且从表4中选择较低链路利用率(例如,20%)。在实施例中,可以对每个脊交换机处的网络适配器进行加权,使得可以选择较高加权网络适配器从叶交换机接收数据报文,以便影响脊交换机/路径的选择并执行报文数据流的负载均衡。
然而,在步骤820,如果流表中的流ID j与用于报文数据流602的数据报文的五元组标签的哈希值匹配,则数据报文的流ID与流表中的流类别相关联(步骤820 =“是”),并且步骤820进行到825。
在步骤825,网络适配器可以确定报文数据流在预先确定的阈值时间段内是否有效。例如,网络适配器可以确定叶交换机是否已经将数据报文传输到城域脊节点406A-406C的脊交换机并且持续空闲的时间段(“空闲时间段”)尚未超过阈值时间段。如果报文数据流时间段有效(例如,空闲时间段小于阈值时间段),则步骤825进行到步骤835。在实施例中,阈值时间段可以是10 ms。可以通过网络适配器预定义或预先确定其它阈值时间段。
在步骤835,网络适配器可以将数据报文传输到先前用于数据流的同一脊交换机。例如,网络适配器可以将报文数据流视为现有数据流,并且可以使用先前用于数据流传输的同一脊交换机。
在步骤845,可以用关于用于传输报文数据流的脊交换机的信息来更新流表。例如,网络适配器可以更新流表以对用于传输数据流的脊交换机分配对应于特定流类别的数据流的流ID。
在步骤825,如果数据流时间段是无效的(例如,数据流传输的空闲已经超过阈值时间段),则步骤825进行到步骤840。在步骤840,网络适配器可以基于脊交换机队列长度和链路利用率从城域脊节点406A-406C中的脊交换机选择另一个新的脊交换机。
在步骤845,网络适配器可以存储用于在城域叶节点404A-404C处的叶交换机与城域脊节点406A-406C处的特定脊交换机之间传输具有流ID j和网络端口i的报文数据流的当前关系。J表示五元组标签的哈希值。
返回参考图4,根据本发明的实施例,可以通过城域脊节点406A-406C的脊交换机来实现metroburst缓冲区管理技术。Metroburst缓冲区管理技术可以用于在从城域叶节点404A-404C的叶交换机进行数据流业务的微突发数据传输期间的缓冲区队列缓解。如本文中所使用,微突发传输可以是在脊交换机处以小突发到达并且可以导致全线速传输的时段的数据流,其可能使脊交换机中的报文缓冲区溢出。当在同一脊交换机输出端口处容纳多个同时的老鼠流时,可能发生微突发传输。处理微突发问题的一个解决方案可以是增加脊交换机406A-406C中的缓冲区大小。然而,增加脊交换机的缓冲区大小可能会导致缓冲区浮动,因此增加的缓冲区大小可能会引起高时延以及时延变化。metroburst缓冲区管理技术可以在使用最小缓冲区大小的同时缓解微突发问题。
可以使用智能模块来实现metroburst缓冲区管理技术,以根据流类别周期性地测量缓冲区队列的队列长度、队列时延、流输入速率、流输出速率、流丢包率以及其变化率。城域脊节点406A-406C可以根据到目的地城域叶节点404A-404C的链路和路径中的拥塞而自动调整其缓冲区参数,例如弃包概率、缓冲区大小、缓冲区阈值,如图9将示出和描述。metroburst模块可以连续地监视缓冲区队列的系统状态,包括每个队列的平均长度、每个流输入速率、输出速率、队列中的流的总数或类似参数。基于每个间隔(例如,1毫秒至100毫秒范围内的间隔)期间的观察,metroburst模块可以提高或降低属于特定流类别的报文的丢弃概率,或者增加缓冲区大小以便吸收特定流类别的突发流。例如,metroburst模块可以增加老鼠流的缓冲区大小。metroburst模块可以最大化由每个业务流类别定义的效益/效用。例如,老鼠流可以具有1/平均队列时延的效用。用户可以预定义目标值,例如在优化过程期间要实现的metroburst模块的平均时延和平均丢包率(PLR)。metroburst模块可以连续地推断根据策略自动调整缓冲区参数(例如,用于报文丢弃或动态缓冲区分配的队列阈值)并实现最佳效用的适当动作。缓冲区管理的好处可以通过联合学习脊交换机缓冲区状态及其动态,并在机器学习的指导下做出决定,从而最大化广泛使用的效用函数。
图9是示出根据本公开实施例的用于实现主动缓冲区管理技术的方法900的流程图。城域脊节点406A-406C(图4)处的网络适配器可以包括metroburst模块,所述模块对由城域脊节点406A-406C接收的报文数据流业务实施方法900。
在步骤905,网络适配器可以连续地监视缓冲区的队列状态和进入或离开缓冲区队列的报文数据流的流速。可以根据CBQ针对不同的数据流分配缓冲区队列。流类别的每个缓冲区队列可以与来自不同叶交换机的数据流共享。可以从脊交换机处的多个叶交换机接收流类别的报文数据流,并将其存储在为所述流类别分配的缓冲区中。网络适配器还可以监视进入缓冲区队列的数据报文的输入速率、离开缓冲区队列的数据报文的输出速率、缓冲区队列的长度以及缓冲区队列的大小。
在步骤910,网络适配器可以预测待由与流类别相关联的缓冲区队列接收的报文数据流的下一周期。例如,基于由城域脊接收的步骤905中的队列监视结果,网络适配器可以计算当前队列状态的效益或效用。
在步骤915,网络适配器可以确定缓冲区的平均报文时延。例如,网络适配器可以获得由缓冲区队列接收的平均数据报文的平均报文时延。在实施例中,平均报文时延可以由RTT确定。在另一实施例中,平均报文时延可以通过接收数据报文的一路时间来确定。如果平均报文时延小于目标时延阈值(步骤915 =“是”),则步骤915进行到步骤920。然而,如果平均报文时延大于目标时延阈值(步骤915 =“否”),则步骤915进行到步骤935。在步骤935,网络适配器可以调整队列丢弃阈值参数。例如,网络适配器可以根据到目的地城域叶节点404A-404C的链路和路径中的拥塞来调整报文丢弃概率。
在步骤920,网络适配器可以确定缓冲区的丢包率是否小于目标丢包率阈值。丢包率可以定义为丢弃的报文数量相比接收到的总报文(例如,0.01%)。如果丢包率小于目标丢包率阈值(步骤920 =“是”),则步骤920进行到步骤925。但是,如果丢包率大于目标丢包率阈值(步骤920 =“否”),则步骤920进行到步骤940。在步骤940,网络适配器可以调整缓冲区队列参数。例如,网络适配器可以根据到目的地城域叶节点404A-404C的链路和路径中的拥塞而将缓冲区队列参数调整为更大的缓冲区大小。
在步骤925,网络适配器可以确定每流吞吐量是否大于目标每流吞吐量阈值。每流吞吐量(Mb/s)可以用于获得或定义共享链路内的报文数据流的带宽。如果每流吞吐量大于目标每流吞吐量阈值(步骤925 =“是”),则步骤925进行到步骤930。然而,如果每流吞吐量小于目标每流吞吐量阈值(步骤925 =“否”),则步骤925进行到步骤945。在步骤945,网络适配器可以调整报文数据流的调度权重,以根据到目的地城域叶节点404A-404C的链路和路径中的拥塞来提高高优先级报文数据流的吞吐量并降低低优先级报文数据流的吞吐量。
在步骤930,网络适配器可以预测给定时间段的下一周期SLA。在实施例中,网络适配器可以生成QoS要求,例如排队时延、丢包和业务流的吞吐量。
图10是根据本公开实施例的装置1000的示意图。装置1000可以实现所公开的实施例。装置1000包括用于接收数据的入端口1010和RX 1020;用于处理数据的处理器、逻辑单元、基带单元或CPU 1030;用于传输数据的TX 1040和出口端口1050;以及用于存储数据的存储器1060。装置1000还可以包括耦合到端口1010的OE组件、EO组件或RF组件;RX 1020;TX1040;以及用于光信号、电信号或RF信号的入/出的出端口1050。
处理器1030是硬件、中间件、固件或软件的任何组合。处理器1030包括一个或多个CPU芯片、内核、FPGA、ASIC或DSP的任何组合。处理器1030与入端口1010、RX 1020、TX 1040、出端口1050和存储器1060通信。处理器1030包括metroinsight模块1070,其实现所公开的实施例。因此,包括metroinsight模块1070提供了对装置1000的功能的实质改进,并且实现了装置1000到不同状态的转换。或者,存储器1060将metroinsight模块1070存储为指令,并且处理器1030执行那些指令。
存储器1060包括磁盘、磁带驱动器或固态驱动器的任何组合。当装置1000选择用于执行的程序并且存储装置1000在执行那些程序期间读取的指令和数据时,装置1000可以使用存储器1060作为存储那些程序的溢流数据存储装置。存储器1060可以是易失性的或非易失性的,并且可以是ROM、RAM、TCAM或SRAM的任何组合。
虽然本发明提供了多个具体实施例,但应当理解,所公开的系统和方法也可通过其它多种具体形式体现,而不会脱离本发明的精神或范围。本发明的示例应被视为说明性而非限制性的,且本发明并不限于本文中所给出的细节。例如,各种元件或组件可以在另一系统中组合或整合,或者某些特征可以省略或不实施。
此外,在不脱离本发明的范围的情况下,各种实施例中描述和说明为离散或单独的技术、系统、子系统和方法可以与其它系统、组件、技术或方法进行组合或合并。展示或论述为彼此耦合或直接耦合或通信的其它项也可以采用电方式、机械方式或其它方式经由某一接口、设备或中间组件间接地耦合或通信。其它变更、替换、更替示例对本领域技术人员而言是显而易见的,均不脱离此处公开的精神和范围。
Claims (20)
1.一种用于城域网的网络适配器,其特征在于,包括:
接收器,所述接收器用于接收入端口处的报文数据流的数据报文;
存储器,所述存储器包括指令;
处理器,所述处理器耦合到所述存储器和所述接收器,所述指令使所述处理器用于:
确定所述数据报文的哈希值是否与流表中的流标识符(identifier,ID)匹配;并
响应于所述数据报文的所述哈希值与所述流ID匹配而获得所述数据报文的流类别,所述流类别包括专用数据流、老鼠数据流、大象数据流、备用数据流或未知数据流,每个流类别对应有优先级;以及
传输器,所述传输器耦合到所述处理器,并用于使用所述流类别将所述数据报文传输到多个脊交换机中的一个脊交换机。
2.根据权利要求1所述的网络适配器,其特征在于,所述指令还使所述处理器用于确定所述报文数据流在预先确定的阈值时间段内是否有效,并且所述传输器用于响应于所述报文数据流在所述预先确定的阈值时间段内有效而将与所述报文数据流相关联的附加数据报文传输到所述脊交换机。
3.根据权利要求1所述的网络适配器,其特征在于,所述指令还使所述处理器用于获得所述网络适配器与第二脊交换机之间的脊交换机队列长度或脊交换机链路利用率中的至少一个,并且所述传输器用于响应于所述数据报文的所述哈希值与所述流表中的所述流ID不匹配而将所述数据报文传输到所述第二脊交换机。
4.根据权利要求1-3中任一项所述的网络适配器,其特征在于,所述指令还使所述处理器用于根据第三脊交换机的最小队列长度和链路利用率来确定所述第三脊交换机,并且所述传输器用于响应于所述数据报文的所述哈希值与所述流表中的所述流ID不匹配而将所述数据报文传输到所述第三脊交换机。
5.根据权利要求3所述的网络适配器,其特征在于,所述脊交换机队列长度包括所述脊交换机的缓冲区中的队列延迟。
6.根据权利要求1-3中任一项所述的网络适配器,其特征在于,所述指令还使所述处理器用于确定至少一个脊交换机的每个网元的加权值,并且所述传输器用于使用所述至少一个脊交换机中的较高加权脊交换机将所述数据报文传输到目的地节点。
7.根据权利要求1-3中任一项所述的网络适配器,其特征在于,所述指令还使所述处理器用于对所述脊交换机分配所述流ID,所述流ID对应于所述数据报文的所述流类别。
8.一种在城域网中实现的方法,其特征在于,包括:
在网络适配器处接收入端口处的报文数据流的数据报文;
通过所述网络适配器确定所述数据报文的哈希值是否与流表中的流标识符(identifier,ID)匹配;
通过所述网络适配器响应于所述数据报文的所述哈希值与所述流ID匹配而获得所述数据报文的流类别,所述流类别包括专用数据流、老鼠数据流、大象数据流、备用数据流或未知数据流,每个流类别对应有优先级;以及
通过所述网络适配器使用所述流类别将所述数据报文传输到多个脊交换机中的一个脊交换机,以允许所述脊交换机使用网络状态和后续路由路径将所述数据报文路由到目的地。
9.根据权利要求8所述的方法,其特征在于,还包括:
确定所述报文数据流在预先确定的阈值时间段内是否有效;以及
响应于所述所确定的报文数据流在所述预先确定的阈值时间段内有效而将与所述报文数据流相关联的附加数据报文传输到所述脊交换机。
10.根据权利要求8所述的方法,其特征在于,还包括:
获得所述网络适配器与第二脊交换机之间的脊交换机队列长度或脊交换机链路利用率中的至少一个;以及
响应于所述数据报文的所述哈希值与所述流表中的所述流ID不匹配而将所述数据报文传输到所述第二脊交换机。
11.根据权利要求8-10中任一项所述的方法,其特征在于,还包括:
根据第三脊交换机的最小队列长度和链路利用率来选择所述第三脊交换机;以及
响应于所述数据报文的所述哈希值与所述流表中的所述流ID不匹配而将所述数据报文传输到所述第三脊交换机。
12.根据权利要求10所述的方法,其特征在于,所述队列长度包括所述脊交换机的缓冲区中的队列延迟。
13.根据权利要求8-10中任一项所述的方法,其特征在于,还包括:
确定至少一个脊交换机的每个网元的加权值;以及
使用所述至少一个脊交换机中的较高加权脊交换机将所述数据报文传输到目的地节点。
14.根据权利要求8-10中任一项所述的方法,其特征在于,还包括对所述脊交换机分配所述数据报文的所述流ID,所述流ID对应于所述数据报文的所述流类别。
15.一种网络中的系统,其特征在于,所述系统包括:
多个计算服务器,所述计算服务器中的每个计算服务器被配置为源节点或目的地节点;
多个脊交换机;以及
至少一个叶交换机,所述至少一个叶交换机耦合到所述多个计算服务器中的一个计算服务器并耦合到所述多个脊交换机中的每个脊交换机,每个叶交换机中的至少一个包括具有指令的存储器和耦合到所述存储器的处理器,所述指令使所述处理器用于:
确定数据报文的哈希值是否与流表中的流标识符(identifier,ID)匹配;
响应于所述数据报文的所述哈希值与所述流ID匹配而获得所述数据报文的流类别,所述流类别包括专用数据流、老鼠数据流、大象数据流、备用数据流或未知数据流,每个流类别对应有优先级;以及
传输器,所述传输器耦合到所述处理器,并用于使用所述流类别将所述数据报文传输到所述多个脊交换机中的一个脊交换机。
16.根据权利要求15所述的系统,其特征在于,所述指令还使所述处理器用于确定报文数据流在预先确定的阈值时间段内是否有效,并且所述传输器用于响应于所述报文数据流在所述预先确定的阈值时间段内有效而将与所述报文数据流相关联的附加数据报文传输到所述脊交换机。
17.根据权利要求15所述的系统,其特征在于,所述指令还使所述处理器用于获得网络适配器与第二脊交换机之间的队列长度或链路利用率中的至少一个,并且所述传输器用于响应于所述数据报文的所述所确定的哈希值与所述流表中的所述流ID不匹配而将所述数据报文传输到所述第二脊交换机。
18.根据权利要求15-17中任一项所述的系统,其特征在于,所述指令还使所述处理器用于根据网络适配器与第三脊交换机之间的最小队列长度和链路利用率来选择所述第三脊交换机,并且所述传输器用于响应于所述数据报文的所述所确定的哈希值与所述流表中的所述流ID不匹配而将所述数据报文传输到所述第三脊交换机。
19.根据权利要求15-17中任一项所述的系统,其特征在于,所述指令还使所述处理器用于确定至少一个脊交换机的每个网元的加权值,并且所述传输器用于使用所述至少一个脊交换机中的较高加权脊交换机将所述数据报文传输到所述目的地节点。
20.根据权利要求15-17中任一项所述的系统,其特征在于,所述指令还使所述处理器用于对所述脊交换机分配所述数据报文的所述流ID,所述流ID对应于所述数据报文的所述流类别。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862684457P | 2018-06-13 | 2018-06-13 | |
US62/684,457 | 2018-06-13 | ||
US16/157,957 | 2018-10-11 | ||
US16/157,957 US10880206B2 (en) | 2018-06-13 | 2018-10-11 | Multipath selection system and method for datacenter-centric metro networks |
PCT/CN2019/090858 WO2019238058A1 (en) | 2018-06-13 | 2019-06-12 | Multipath selection system and method for datacenter-centric metro networks |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112313910A CN112313910A (zh) | 2021-02-02 |
CN112313910B true CN112313910B (zh) | 2022-08-19 |
Family
ID=68840553
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980039799.6A Active CN112313910B (zh) | 2018-06-13 | 2019-06-12 | 用于以数据中心为中心的城域网的多路径选择系统和方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10880206B2 (zh) |
EP (1) | EP3794782A4 (zh) |
CN (1) | CN112313910B (zh) |
WO (1) | WO2019238058A1 (zh) |
Families Citing this family (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110574019B (zh) * | 2017-04-26 | 2023-05-30 | 瑞典爱立信有限公司 | 数据中心之间鲁棒的数据复制 |
WO2019046603A1 (en) | 2017-08-31 | 2019-03-07 | Pensando Systems Inc. | METHODS AND SYSTEMS FOR MANAGING NETWORK DIMENSIONS |
US11140068B2 (en) * | 2018-06-25 | 2021-10-05 | Edgewater Networks, Inc. | Edge networking devices and systems for identifying a software application |
JP6965838B2 (ja) * | 2018-07-09 | 2021-11-10 | 日本電信電話株式会社 | ネットワーク負荷分散装置および方法 |
JP7077825B2 (ja) * | 2018-07-09 | 2022-05-31 | 日本電信電話株式会社 | ネットワーク負荷分散装置および方法 |
US10826770B2 (en) * | 2018-07-26 | 2020-11-03 | Cisco Technology, Inc. | Synthesis of models for networks using automated boolean learning |
US10819597B2 (en) * | 2018-12-18 | 2020-10-27 | At&T Intellectual Property I, L.P. | Network device measurements employing white boxes |
WO2020172721A1 (en) * | 2019-02-28 | 2020-09-03 | Newsouth Innovations Pty Limited | Network bandwidth apportioning |
US11070472B1 (en) * | 2019-03-19 | 2021-07-20 | Juniper Networks, Inc. | Dynamically mapping hash indices to member interfaces |
US10999207B2 (en) * | 2019-05-15 | 2021-05-04 | Rad Data Communications Ltd. | Packet loss reduction using auxiliary path |
US11212227B2 (en) | 2019-05-17 | 2021-12-28 | Pensando Systems, Inc. | Rate-optimized congestion management |
US10805206B1 (en) * | 2019-05-23 | 2020-10-13 | Cybertan Technology, Inc. | Method for rerouting traffic in software defined networking network and switch thereof |
US11399312B2 (en) * | 2019-08-13 | 2022-07-26 | International Business Machines Corporation | Storage and retention intelligence in mobile networks |
US11153221B2 (en) * | 2019-08-28 | 2021-10-19 | Pensando Systems Inc. | Methods, systems, and devices for classifying layer 4-level data from data queues |
JP7447910B2 (ja) * | 2019-10-30 | 2024-03-12 | 日本電信電話株式会社 | 送信制御装置、送信制御方法、および、送信制御プログラム |
CN113225253B (zh) * | 2020-01-21 | 2022-08-09 | 华为技术有限公司 | 一种报文转发方法及装置 |
US11394700B2 (en) | 2020-01-31 | 2022-07-19 | Pensando Systems Inc. | Proxy service through hardware acceleration using an IO device |
WO2021155568A1 (en) * | 2020-02-07 | 2021-08-12 | Qualcomm Incorporated | Configuration for prioritizing vehicle to everything communications |
US11431681B2 (en) | 2020-04-07 | 2022-08-30 | Pensando Systems Inc. | Application aware TCP performance tuning on hardware accelerated TCP proxy services |
US11343207B1 (en) * | 2020-05-11 | 2022-05-24 | Amazon Technologies, Inc. | Configuring of a shared memory buffer in a network device |
US11652736B2 (en) | 2020-06-30 | 2023-05-16 | Amazon Technologies, Inc. | Transmitting network traffic to a pool of redundant network appliances |
TWI743860B (zh) * | 2020-06-30 | 2021-10-21 | 瑞昱半導體股份有限公司 | 通訊裝置以及網路管理方法 |
US11711307B2 (en) * | 2020-07-03 | 2023-07-25 | Vmware, Inc. | Network resource selection for flows using flow classification |
CN111756634B (zh) * | 2020-07-15 | 2022-10-14 | 中国舰船研究设计中心 | 一种基于强化学习的舰载网络性能自优化方法 |
JP2022019278A (ja) * | 2020-07-17 | 2022-01-27 | 富士通株式会社 | パケットスイッチおよびパケットの周期判定方法 |
US11489776B2 (en) * | 2020-07-28 | 2022-11-01 | Arista Networks, Inc. | Multicore offloading of network processing |
US20220094637A1 (en) * | 2020-09-23 | 2022-03-24 | Nokia Solutions And Networks Oy | Neighbor discovery for border gateway protocol in a multi-access network |
US11595307B1 (en) * | 2020-09-25 | 2023-02-28 | Amazon Technologies, Inc. | Customized tuple definition for hashing at a network appliance routing service |
EP4092966A1 (en) * | 2021-05-21 | 2022-11-23 | Deutsche Telekom AG | Method for operating a broadband access network of a telecommunications network comprising at least one central office point of delivery, system, broadband access network or telecommunications network, central office point of delivery cluster, program and computer-readable medium |
US20220393967A1 (en) * | 2021-06-07 | 2022-12-08 | Vmware, Inc. | Load balancing of vpn traffic over multiple uplinks |
CN113595822B (zh) * | 2021-07-26 | 2024-03-22 | 北京恒光信息技术股份有限公司 | 一种数据包管理方法、系统和装置 |
CN114070893B (zh) * | 2021-11-17 | 2023-04-28 | 中国联合网络通信集团有限公司 | 数据报文的传输方法、装置和核心网设备 |
CN114338167B (zh) * | 2021-12-29 | 2024-04-30 | 无锡沐创集成电路设计有限公司 | 通信加密系统、方法、存储介质及电子设备 |
CN114598825B (zh) * | 2022-02-22 | 2024-05-17 | 中央广播电视总台 | 视音频信号调度方法、装置、计算机设备及可读存储介质 |
CN115277504B (zh) * | 2022-07-11 | 2024-04-05 | 京东科技信息技术有限公司 | 一种网络流量监控方法、装置和系统 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7664048B1 (en) * | 2003-11-24 | 2010-02-16 | Packeteer, Inc. | Heuristic behavior pattern matching of data flows in enhanced network traffic classification |
CN102726021A (zh) * | 2009-05-28 | 2012-10-10 | 微软公司 | 灵活的数据中心网络体系结构 |
CN107046506A (zh) * | 2016-02-06 | 2017-08-15 | 华为技术有限公司 | 一种报文处理方法、流分类器和业务功能实例 |
US9756152B1 (en) * | 2015-05-29 | 2017-09-05 | Netronome Systems, Inc. | Making a flow ID for an exact-match flow table using a byte-wide multiplexer circuit |
US9807006B1 (en) * | 2015-05-29 | 2017-10-31 | Netronome Systems, Inc. | Crossbar and an egress packet modifier in an exact-match flow switch |
CN107566206A (zh) * | 2017-08-04 | 2018-01-09 | 华为技术有限公司 | 一种流量测量方法、设备及系统 |
CN107959634A (zh) * | 2016-10-14 | 2018-04-24 | 北京计算机技术及应用研究所 | 一种基于Hash技术的IP数据包分流方法 |
Family Cites Families (41)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7698457B2 (en) * | 2003-11-12 | 2010-04-13 | Andrei Ghetie | Scalable and dynamic quality of service control |
US20070242675A1 (en) * | 2006-04-13 | 2007-10-18 | David Romrell | Dual scheduling for efficient network traffic management |
JP4774357B2 (ja) * | 2006-05-18 | 2011-09-14 | アラクサラネットワークス株式会社 | 統計情報収集システム及び統計情報収集装置 |
US8295177B1 (en) * | 2007-09-07 | 2012-10-23 | Meru Networks | Flow classes |
US20100192225A1 (en) * | 2009-01-28 | 2010-07-29 | Juniper Networks, Inc. | Efficient application identification with network devices |
US8824284B2 (en) * | 2009-08-27 | 2014-09-02 | Broadcom Corporation | Dynamic load balancing using virtual link credit accounting |
US9083740B1 (en) * | 2009-09-28 | 2015-07-14 | Juniper Networks, Inc. | Network traffic pattern matching using adaptive deterministic finite automata |
US8472311B2 (en) * | 2010-02-04 | 2013-06-25 | Genband Us Llc | Systems, methods, and computer readable media for providing instantaneous failover of packet processing elements in a network |
US8537674B2 (en) * | 2010-11-16 | 2013-09-17 | At&T Mobility Ii Llc | Data bundling and fast dormancy based upon interactivity |
US9167618B2 (en) * | 2010-11-16 | 2015-10-20 | At&T Mobility Ii Llc | Data bundling and fast dormancy based upon intelligent application learning |
US9032089B2 (en) * | 2011-03-09 | 2015-05-12 | Juniper Networks, Inc. | Methods and apparatus for path selection within a network based on flow duration |
US20130003549A1 (en) * | 2011-06-30 | 2013-01-03 | Broadcom Corporation | Resilient Hashing for Load Balancing of Traffic Flows |
US8654643B2 (en) * | 2011-07-27 | 2014-02-18 | Ixia | Wide field indexing for packet tracking |
US8976647B2 (en) * | 2011-11-08 | 2015-03-10 | Futurewei Technologies, Inc. | Hardware-based dynamic load balancing that avoids flow packet reordering statistically |
US8937955B2 (en) * | 2012-12-05 | 2015-01-20 | Cisco Technology, Inc. | System and method for scaling IPv6 addresses in a network environment |
US10291503B2 (en) * | 2013-09-26 | 2019-05-14 | Taiwan Semiconductor Manufacturing Co., Ltd. | File block placement in a distributed network |
US10778584B2 (en) * | 2013-11-05 | 2020-09-15 | Cisco Technology, Inc. | System and method for multi-path load balancing in network fabrics |
US20150242429A1 (en) * | 2014-02-25 | 2015-08-27 | Alcatel Lucent | Data matching based on hash table representations of hash tables |
CN104901878B (zh) * | 2014-03-06 | 2018-11-20 | 华为技术有限公司 | 确定中间节点的方法和装置 |
US11675837B2 (en) * | 2014-03-17 | 2023-06-13 | Modelizeit Inc. | Analysis of data flows in complex enterprise IT environments |
CN103929492B (zh) * | 2014-04-28 | 2017-08-29 | 华为技术有限公司 | 业务链负载均衡方法及其装置、系统 |
US9548927B2 (en) * | 2014-06-17 | 2017-01-17 | Comcast Cable Communications, Llc | Flow-based load balancing |
US9608938B2 (en) * | 2014-08-12 | 2017-03-28 | Arista Networks, Inc. | Method and system for tracking and managing network flows |
US10218629B1 (en) * | 2014-12-23 | 2019-02-26 | Juniper Networks, Inc. | Moving packet flows between network paths |
US9998374B1 (en) * | 2015-03-01 | 2018-06-12 | Netronome Systems, Inc. | Method of handling SDN protocol messages in a modular and partitioned SDN switch |
US10009270B1 (en) * | 2015-03-01 | 2018-06-26 | Netronome Systems, Inc. | Modular and partitioned SDN switch |
US20160285753A1 (en) * | 2015-03-27 | 2016-09-29 | Telefonaktiebolaget L M Ericsson (Publ) | Lock free flow learning in a network device |
US9807035B1 (en) * | 2015-03-31 | 2017-10-31 | Juniper Networks, Inc. | Using available bandwidths of an IP fabric to intelligently distribute data |
US10425322B2 (en) | 2015-04-13 | 2019-09-24 | Ciena Corporation | Scalable broadband metro network architecture |
US9912591B1 (en) * | 2015-05-29 | 2018-03-06 | Netronome Systems, Inc. | Flow switch IC that uses flow IDs and an exact-match flow table |
US9819585B1 (en) | 2015-05-29 | 2017-11-14 | Netronome Systems, Inc. | Making a flow ID for an exact-match flow table using a programmable reduce table circuit |
US9641436B1 (en) | 2015-05-29 | 2017-05-02 | Netronome Systems, Inc. | Generating a flow ID by passing packet data serially through two CCT circuits |
US10033638B1 (en) * | 2015-05-29 | 2018-07-24 | Netronome Systems, Inc. | Executing a selected sequence of instructions depending on packet type in an exact-match flow switch |
US9654424B2 (en) * | 2015-07-31 | 2017-05-16 | Nicira, Inc. | Managed forwarding element with conjunctive match flow entries |
CN106713182B (zh) | 2015-08-10 | 2020-10-09 | 华为技术有限公司 | 一种处理流表的方法及装置 |
US10348600B2 (en) * | 2016-02-09 | 2019-07-09 | Flowtune, Inc. | Controlling flow rates of traffic among endpoints in a network |
US10103992B1 (en) * | 2016-06-27 | 2018-10-16 | Amazon Technologies, Inc. | Network traffic load balancing using rotating hash |
US10237171B2 (en) * | 2016-09-20 | 2019-03-19 | Intel Corporation | Efficient QoS support for software packet processing on general purpose servers |
US10419366B1 (en) * | 2017-01-31 | 2019-09-17 | Barefoot Networks, Inc. | Mechanism for communicating to remote control plane from forwarding element |
US10257082B2 (en) * | 2017-02-06 | 2019-04-09 | Silver Peak Systems, Inc. | Multi-level learning for classifying traffic flows |
US10567300B2 (en) * | 2017-11-22 | 2020-02-18 | Cisco Technology, Inc. | Layer 3 fair rate congestion control notification |
-
2018
- 2018-10-11 US US16/157,957 patent/US10880206B2/en active Active
-
2019
- 2019-06-12 WO PCT/CN2019/090858 patent/WO2019238058A1/en unknown
- 2019-06-12 EP EP19819986.1A patent/EP3794782A4/en active Pending
- 2019-06-12 CN CN201980039799.6A patent/CN112313910B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7664048B1 (en) * | 2003-11-24 | 2010-02-16 | Packeteer, Inc. | Heuristic behavior pattern matching of data flows in enhanced network traffic classification |
CN102726021A (zh) * | 2009-05-28 | 2012-10-10 | 微软公司 | 灵活的数据中心网络体系结构 |
US9756152B1 (en) * | 2015-05-29 | 2017-09-05 | Netronome Systems, Inc. | Making a flow ID for an exact-match flow table using a byte-wide multiplexer circuit |
US9807006B1 (en) * | 2015-05-29 | 2017-10-31 | Netronome Systems, Inc. | Crossbar and an egress packet modifier in an exact-match flow switch |
CN107046506A (zh) * | 2016-02-06 | 2017-08-15 | 华为技术有限公司 | 一种报文处理方法、流分类器和业务功能实例 |
CN107959634A (zh) * | 2016-10-14 | 2018-04-24 | 北京计算机技术及应用研究所 | 一种基于Hash技术的IP数据包分流方法 |
CN107566206A (zh) * | 2017-08-04 | 2018-01-09 | 华为技术有限公司 | 一种流量测量方法、设备及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN112313910A (zh) | 2021-02-02 |
US20190386913A1 (en) | 2019-12-19 |
WO2019238058A1 (en) | 2019-12-19 |
EP3794782A1 (en) | 2021-03-24 |
US10880206B2 (en) | 2020-12-29 |
EP3794782A4 (en) | 2021-07-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112313910B (zh) | 用于以数据中心为中心的城域网的多路径选择系统和方法 | |
US20200244588A1 (en) | Scalable network slice based queuing using segment routing flexible algorithm | |
Lin et al. | QoS-aware adaptive routing in multi-layer hierarchical software defined networks: A reinforcement learning approach | |
US9270598B1 (en) | Congestion control using congestion prefix information in a named data networking environment | |
Egilmez et al. | OpenQoS: An OpenFlow controller design for multimedia delivery with end-to-end Quality of Service over Software-Defined Networks | |
KR101317969B1 (ko) | 링크 애그리게이션 방법 및 노드 | |
US10581723B2 (en) | PCEP extension for PCECC support of distributed computing, multiple services, and inter-domain routing | |
US9197544B2 (en) | Comprehensive multipath routing for congestion and quality-of-service in communication networks | |
EP3949293A1 (en) | Slice-based routing | |
US11108678B2 (en) | Inspired path computation in a network | |
US20070177505A1 (en) | Method for creating a path for data transmission in a network | |
US10153964B2 (en) | Network routing using dynamic virtual paths in an overlay network | |
US9401868B2 (en) | Method of traffic engineering for provisioning routing and storage in content-oriented networks | |
US10187305B2 (en) | System and method for using a path control element as a central controller for local protection of label switched path (LSP) | |
CN103746931A (zh) | 在服务应用后用网络设备维持负载均衡 | |
US11522784B2 (en) | Routing and forwarding method for multi-homed network based on programmable network technology | |
TWI700912B (zh) | 運算裝置中預測封包壽命之佇列系統 | |
US20070230427A1 (en) | Smart ethernet mesh edge device | |
US11381518B2 (en) | Forecasting SDN fabric saturation and machine learning-based flow admission control | |
Zhang et al. | A multipath transport scheme for real-time multimedia services based on software-defined networking and segment routing | |
US7889745B2 (en) | Systems and methods for multi-layer interworking | |
Egilmez et al. | Openqos: Openflow controller design and test network for multimedia delivery with quality of service | |
US10218612B2 (en) | Method and a device for defining implementation of a look-up table for a network element of a software-defined network | |
Erfanian et al. | On maximizing QoE in AVC-based HTTP adaptive streaming: An SDN approach | |
Ito et al. | Path Planning Method using Deep Learning Model for Traffic Engineering in Small Networks |
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 |