CN110166358B - 可编程数据平面路由方法、系统、可读存储介质及设备 - Google Patents
可编程数据平面路由方法、系统、可读存储介质及设备 Download PDFInfo
- Publication number
- CN110166358B CN110166358B CN201910356564.1A CN201910356564A CN110166358B CN 110166358 B CN110166358 B CN 110166358B CN 201910356564 A CN201910356564 A CN 201910356564A CN 110166358 B CN110166358 B CN 110166358B
- Authority
- CN
- China
- Prior art keywords
- hop
- routing
- datagram
- node
- area
- 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/34—Source 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/74—Address processing for routing
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种可编程数据平面路由方法、系统、可读存储介质及设备,所述方法包括:周期性地获取网络内一跳或多跳的端到端性能组;基于性能驱动和优化目标驱动的方法,动态地将网络划分为多个网络区域,相邻两个网络区域的区域类型不同;数据报的转发过程中,在源路由域内的节点执行区域可调源路由协议,在逐跳路由域内的节点执行逐跳路由协议,数据报可以在源路由域和逐跳路由域之间进行转发。本发明基于精细化性能测量,利用可编程转发技术实现负载均衡等性能最优的精细化路由,通过简化路由减少处理时延,解决现有路由对网络状态变化的适应较慢等问题,可满足5G网络、工业互联网、智能灌溉传感网络等对低时延、大吞吐量的应用需求。
Description
技术领域
本发明涉及网络通信技术领域,特别是涉及一种可编程数据平面路由方法、系统、可读存储介质及设备。
背景技术
随着互联网的普及和互联网业务的增长,各行各业以及个体用户每天都会产生大量网络流量,例如文件传输、语音通话、网络游戏等,新的应用模式和需求也不断出现,传统网络架构已经无法应对快速发展的互联网,面临着诸多如网络地址空间不足、设备日益臃肿、服务质量难以保证等问题。
软件定义网络(Software-DefinedNetworking,简称SDN)将控制面与数据面相分离,两个面存在着双向交互的过程,在控制面,通过感知网络状态和网络资源,中央控制器对网络的逻辑控制功能和高层策略灵活地进行动态、优化地配置;而在数据面,可在不影响网络正常流量的情况下执行这一配置,进而实现网络资源的优化配置。
现有技术中,目前主流的SDN控制器如RYU、POX、FloodLight等均提供了控制数据报转发的模块,其数据报路径的选择通常都是查找数据报转发的起始节点到目的节点的一条最短路径,或者是通过人为地为分组添加统一的标签,通过设定各节点的标签交换表来指定路径。然而,在实际应用中,其路由信令复杂,扩展性较差,对网络状态变化的适应较慢。
P4(Programming Protocol-Independent Packet Processors)是可编程数据平面的一种可编程转发技术,一方面,P4不仅可以控制数据流的转发,还可以对交换设备的数据处理流程进行软件编程定义,甚至可做到转发无中断的重配置,并且,可实现交换设备协议无关转发,克服了OpenFlow的扩展性差的问题。另一方面,基于INT(In-band networktelemetry)可实现数据平面的状态/资源的感知,可以追踪网络中每一个数据报的行为,也能够监测到网络的状态。
P4+INT可实现全网的精细化性能测量,不仅可实现逐跳的性能(如延迟、抖动、丢包率、吞吐量等)测量,还可实现测量范围(跳数)可调的性能测量,并且测量结果是实时的。所以,基于精细化测量结果,通过精细化的路由可实现全网性能最优。
发明内容
为了解决上述问题,本发明的目的是提供一种传输路径灵活、对网络状态变化适应快、传输效率高的可编程数据平面路由方法、系统、可读存储介质及设备。
根据本发明提供的可编程数据平面路由方法,包括:
周期性地获取网络内一跳或多跳的端到端性能组;
基于性能驱动和优化目标驱动的方法,动态地将所述网络划分为多个网络区域,相邻两个所述网络区域的区域类型不同,所述区域类型包括源路由域及逐跳路由域;
判断数据报所在的当前网络区域的区域类型,采用可编程转发技术转发所述数据报;
若所述数据报所在的当前网络区域的区域类型为源路由域,则所述源路由域内的节点在数据报转发时执行区域可调源路由协议;
若所述数据报所在的当前网络区域的区域类型为逐跳路由域,则所述逐跳路由域内的节点在数据报转发时执行逐跳路由协议。
根据本发明提供的可编程数据平面路由方法,首先周期性地获取网络内一跳或多跳的端到端性能组;动态地将所述网络划分为多个网络区域,相邻两个所述网络区域的区域类型不同,所述区域类型包括源路由域及逐跳路由域;判断数据报所在的当前网络区域的区域类型,采用可编程转发技术转发所述数据报;若所述数据报所在的当前网络区域的区域类型为源路由域,则所述源路由域内的节点在数据报转发时执行区域可调源路由协议;若所述数据报所在的当前网络区域的区域类型为逐跳路由域,则所述逐跳路由域内的节点在数据报转发时执行逐跳路由协议,从而实现了对所述数据报的传输;由于能够周期性的对网络内端到端的性能组进行采集与的反馈,以便于能够对所述网络内一跳或多跳的网络状态进行监控,从而及时了解所述网络内各个一跳或多跳的网络状态及拥塞程度;通过根据所述性能组周期性的将所述网络划分为多个网络区域,以便于所述数据报能够根据各个网络区域的网络状态执行不同的路由协议,避免所述数据报在传输的过程由于路径拥塞或不同网络区域中传输节点的性能组相差较大,而导致所述数据报的传输效率降低的状况;由于本发明提供的可编程数据平面路由方法能够根据不同网络区域的网络状态灵活的改变传输路径、对网络状态变化适应快、传输效率高;此外,由于本发明基于精细化性能测量,利用可编程转发技术实现负载均衡等性能最优的精细化路由,通过简化路由减少处理时延,解决现有路由对网络状态变化的适应较慢等问题,可满足5G网络、工业互联网、智能灌溉传感网络等对低时延、大吞吐量的应用需求。
另外,根据本发明上述的可编程数据平面路由方法,还可以具有如下附加的技术特征:
进一步地,所述源路由域内的节点在数据报转发时执行区域可调源路由协议的步骤包括:
SDN控制器基于P4计算得到一路径长度为X的路径序列;
将计算好的所述路径序列发送给源路由域内的源节点,所述路径序列用于指示数据报沿途经过的源路由域内的节点;
当一数据报到达源路由域内的该源节点时,查询所述路径序列,确定所述数据报的下一跳,并将所述路径序列嵌入到数据报内;
所述源路由域内的中间节点收到所述数据报后,根据所述路径序列确定所述数据报的下一跳,并将所述数据报转发至下一跳,直至到达所述路径序列所指向的源路由目的地。
进一步地,所述源路由域内的节点在数据报转发时执行区域可调源路由协议的步骤之前,所述方法还包括:
采用P4设计所述源路由域内所转发的所述数据报的头部,实现所述源路由域内节点在可编程数据平面的Parse,其中,所述源路由域内所需转发的数据报的头部中包含源路由路径的标识栈、路由标识、目的IP地址,所述标识栈用于存放所述路径序列,所述路由标识用于指示节点执行区域可调源路由协议或逐跳路由协议;
采用P4设计所述源路由域内节点在可编程数据平面的match-action,其中,match为源路由的目的IP地址,action为根据所述源路由路径的标识栈指定的节点ID转发到下一跳节点。
进一步地,所述源路由路径的标识栈包括沿途经过的节点ID的序列及两节点之间的某条链路的链路ID,所述节点ID和链路ID均由SDN控制器统一分配,其中,节点ID为唯一地标识源路由域内的一个节点,链路ID为两个节点之间存在着多条链路,链路ID表示节点上的某一条链路,仅在节点本地有效。
进一步地,所述逐跳路由域内的节点在数据报转发时执行逐跳路由协议的步骤包括:
SDN控制器将逐跳路由域内各跳的性能组发送到其所控制的逐跳路由域内的各节点;
所述逐跳路由域内的相邻两个节点之间互相发送自己去往目的地的性能组及下一跳信息;
所述逐跳路由域内的节点根据从邻居接收到的所述目的地性能组,更新自己到达各个目的地的路由表;
当任一数据报到达所述逐跳路由域内的节点,查询所述路由表确定数据报的下一跳,并逐跳地转发,直到到达所述逐跳路由目的地。
进一步地,所述逐跳路由域内的节点在数据报转发时执行逐跳路由协议的步骤之前,所述方法还包括:
采用P4设计所述逐跳路由域内所转发的数据报的IP头部,实现所述逐跳路由域内节点在可编程数据平面的Parser,其中,IP头部包含目的IP地址字段;
采用P4设计所述逐跳路由域内节点在可编程数据平面的match-action,其中,match为所述逐跳路由的目的IP地址,action是根据所述查询路由表转发到将所述数据报下一节点。
进一步地,所述SDN控制器基于P4计算得到一路径长度为X的路径序列的方法包括性能驱动和优化目标驱动,其中,
性能驱动:SDN控制器定期地通过数据挖掘技术分析所述性能组来计算X;
优化目标驱动:根据应用对于时延、吞吐量等优化目标来计算X。
进一步地,SDN控制器基于P4采用性能驱动和优化目标驱动计算得到一路径长度为X的路径序列,以根据得到的X值划分源路由域和逐跳路由域的范围的方法包括:
当X=k(k>1),亦即,存在一段连续k跳的子路径,那么将该子路径设为源路由的路径,该子路径上k跳内的节点组成了源路由域;
那些不满足被划入源路由域的条件的节点组成了逐跳路由域;
启动划分所述源路由域和逐跳路由域的时机是:网络中端到端性能组的变化及应用需求的变化。
进一步地,所述方法还包括:
当所述数据报当前所在的网络区域为源路由域边界的节点,且下一跳为逐跳路由域时,则所述数据报所在的当前节点执行所述X=1的区域可调源路由协议或逐跳路由协议中的任意一种协议;
当所述数据报当前所在的网络区域为逐跳路由域边界的节点,且下一跳为源路由域时,则所述数据报所在的当前节点执行逐跳路由协议。
本发明的另一个实施例提出一种可编程数据平面路由系统,解决现有的路由对网络状态变化的适应较慢等问题,可满足5G网络、工业互联网、智能灌溉传感网络等对低时延、大吞吐量的应用需求。
根据本发明实施例的可编程数据平面路由系统,具体包括:
获取模块,用于周期性地获取网络内一跳或多跳的端到端性能组;
划分模块,用于动态地将所述网络划分为多个网络区域,相邻两个所述网络区域的区域类型不同,所述区域类型包括源路由域及逐跳路由域;
判断模块,用于判断数据报所在的当前网络区域的区域类型;
第一执行模块,用于若所述数据报所在的当前网络区域的区域类型为源路由域,则所述源路由域内的节点在数据报转发时执行区域可调源路由协议;
第二执行模块,用于若所述数据报所在的当前网络区域的区域类型为逐跳路由域,则所述逐跳路由域内的节点在数据报转发时执行逐跳路由协议。
本发明的另一个实施例还提出一种存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述方法的步骤。
本发明的另一个实施例还提出一种设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述程序时实现上述方法的步骤。
本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实施例了解到。
附图说明
图1是本发明第一实施例提出的可编程数据平面路由方法的流程图;
图2是图1中步骤S104的具体流程图;
图3是图1中步骤S105的具体流程图;
图4是本发明第一实施例的可编程数据平面路由方法的原理图;
图5是本发明第二实施例提出的可编程数据平面路由方法的流程图;
图6是本发明第三实施例提出的可编程数据平面路由系统的结构框图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1,本发明第一实施例提出的一种可编程数据平面路由方法,其中,包括步骤S101~S105:
步骤S101,利用P4+INT周期性地获取网络内一跳或多跳的端到端性能组。
如上所述,周期性的获取网络内一跳或多跳的端到端的性能组,一跳表示网络中两个相邻路由器之间的一段链路。所述性能组包括延迟、抖动、丢包率、吞吐量、链路利用率中的一种或多种,但不限于此,在其他实施例中,所述性能组还可根据实际需求进行增减。可以理解的,通过预设的时间长度,周期性的对所述网络内端到端的性能组进行监测、更新与存储,因此在将其存储在对应的存储空间中时,该存储的性能组是不断替换预覆盖前一周期中已存储的性能组的。其中,获取所述网络内端到端的性能组的周期可以为实时、十五分钟、一天或一周,在此不作限制,用户可根据实际需求进行调整与设置。
步骤S102,基于性能驱动和优化目标驱动的方法,动态地将所述网络划分为多个网络区域,其中,相邻两个所述网络区域的区域类型不同,所述区域类型包括源路由域及逐跳路由域。
如上所述,根据所述性组及预设的划分规则周期性的将所述网络范围划分为多个网络区域,其中相邻两个所述网络区域的区域类型不同,本实施例中,所述网络区域的区域类型包括源路由域及逐跳路由域,但不限于此,在其他实施例中,所述网络区域的区域类型还可以根据实际需求进行调整。可以理解的,所述网络中网络区域的划分可以是根据周期性获取网络内一跳或多跳的性能组进行动态的划分的,或者是根据网络内当前周期的一跳或多跳的性能组进行划分的,也可以是通过学习算法进行计算的。
可以理解的,通过将所述网络划分为多个网络区域,以便于在对所述数据报进行传输时,可以根据各个网络区域的网络状态执行相应的路由协议,从而避免了由于当前网络区域的负载较大,或当前网络区域与下一跳节点所在的网络区域的性能组相差较大,而使所述当前网络内的网络性能降低的状况。
其中,由于根据所述网络内一跳或多跳的性能组周期性的将所述网络划分为多个网络区域的过程中,所述性能组的种类较多,所需划分的网络区域较多,且所述网络内各节点的网络状态与各时段内的入网量有关,因此,为提高所述网络的网络性能,需对其进行工作状态进行动态划分,具体可以包括:
当X=k(k>1),亦即,存在一段连续k跳的子路径,那么将该子路径设为源路由的路径,子路径上k跳内的节点组成了源路由域;那些不满足被划入源路由域的条件的节点组成了逐跳路由域;启动划分所述源路由域和逐跳路由域的时机是:网络中端到端性能组的变化及应用需求的变化。
具体的,若所述路径中的一段连续k(k>1)跳的子路径,其端到端性能组高度确定并变化缓慢,即在预设的时间段,如1周内,其端到端性能组没有发生变化或浮动值小于15%时,则将该子路径设为源路由的路径;若所述路径中的一段连续k(k>1)跳的子路径,其端到端性能组变化快速,即在预设的时间段,如1周内,其端到端性能组变化快速或浮动值大于15%时,则将该子路径设为逐跳路由的路径。在本发明其他实施例中,还可根据负载均衡、吞吐量最大等优化目标对所述网络进行网络区域的划分。
步骤S103,判断数据报所在的当前网络区域的区域类型,采用可编程转发技术转发所述数据报。
步骤S104,若所述数据报所在的当前网络区域的区域类型为源路由域,则所述源路由域内的节点在数据报转发时执行区域可调源路由协议。
如上所述,当判断到所述数据报所在的当前网络区域的区域类型为源路由域时,且采用可编程转发技术转发所述数据报时,则所述源路由域内的节点在数据报转发时执行区域可调源路由协议。
其中,请参阅图2,所述源路由域内的节点在数据报转发时执行区域可调源路由协议的步骤包括:
步骤S1041,SDN控制器基于P4计算得到一路径长度为X的路径序列。
如上所述,SDN控制器通过对所述性能组进行数据挖掘分析或根据应用的网络要求,基于P4,计算得到一路径长度为X的路径序列。本发明中源路由路径的长度X可以等于1,也可以大于1,并且可根据需要进行调整。如果X>1,那么意味着是指定了连续X跳路径的源路由,在X跳内的节点不需要进行路由相关的处理,从而减少所述源路由域内的中间节点的处理时间。如果X=1,就只是指定了下一跳。
进一步地,所述SDN控制器基于P4计算得到一路径长度为X的路径序列的方法包括性能驱动和优化目标驱动,其中性能驱动为SDN控制器定期地通过数据挖掘技术分析所述性能组来计算X;优化目标驱动为根据应用对于时延、吞吐量等优化目标来计算X。
具体的,所述SDN控制器基于P4采用性能驱动的方法计算得到一路径长度为X的路径序。如SDN控制器定期地通过数据挖掘技术分析获取采集到的网络内一跳或多跳的性能组,如果计算得到的所述路径中存在一段连续k(k>1)跳的子路径,其端到端性能组高度确定并变化缓慢(也就是说,即使用OSPF逐跳地选择下一跳,每个报文都会选择这段子路径),则将该子路径设为源路由的路径。当端到端性能组快速变化时通过逐跳的选择下一跳来适应这种快速变化的逐跳路由的路径,实现最优路由。其中网络中端到端性能组的变化了,则k也会变化,从而就需要启动划分源路由域和逐跳路由域的操作。
具体的,所述SDN控制器基于P4采用优化目标驱动的方法计算得到一路径长度为X的路径序。如根据负载均衡、吞吐量最大等优化目标,应用对网络提出一些特殊要求,需要一条吞吐量大于1Gbps,延时少于30ms的转发路径。那么,应用在节点据此要求向控制器发起路径计算请求。例如:一个大型公司召开了一个分布于全国各地的分公司都需要参加的视频会议,在会议期间,该视频会议产生的视频流所走的路径是不变的,并且是事先已知的。所以,可根据这个特征划分源路由域,从而可保证该视频流的可靠传输。当该会议结束后,再根据其他应用需求建立其他的源路由域。
步骤S1042,将计算好的所述路径序列发送给源路由域内的源节点,所述路径序列用于指示数据报沿途经过的源路由域内的节点。
步骤S1043,当一数据报到达源路由域内的该源节点时,查询所述路径序列,确定所述数据报的下一跳,并将所述路径序列嵌入到数据报内。
步骤S1044,所述源路由域内的中间节点收到所述数据报后,根据所述路径序列确定所述数据报的下一跳,并将所述数据报转发至下一跳,直至到达所述路径序列所指向的源路由目的地。
如上所述,所述SDN控制器将计算好的路径序列发送给源路由域内的源节点,当一数据报到达源路由域内的该源节点时,查询所述路径序列,确定所述数据报的下一跳,并将所述路径序列嵌入到数据报内,所述源路由域内的中间节点收到所述数据报后,根据所述路径序列确定所述数据报的下一跳,并将所述数据报转发至下一跳,直至到达所述路径序列所指向的源路由目的地。
在此还需要说明的是,所述源路由域内的节点在数据报转发时执行区域可调源路由协议的步骤之前,所述方法还包括:
采用P4设计所述源路由域内所转发的所述数据报的头部,实现所述源路由域内节点在可编程数据平面的Parse;其中,所述源路由域内所需转发的数据报的头部中包含源路由路径的标识栈、路由标识、目的IP地址,所述标识栈用于存放所述路径序列,所述路由标识用于指示节点执行区域可调源路由协议或逐跳路由协议;采用P4设计所述源路由域内节点在可编程数据平面的match-action,其中,match为源路由的目的IP地址,action为根据所述源路由路径的标识栈指定的节点ID转发到下一跳节点。
本实施例中,所述源路由域内的路由标识包括传输节点ID和传输链路ID两种,由控制器统一分配。传输节点ID:唯一地标识源路由域内的一个节点;传输链路ID:两个节点之间存在着多条链路,传输链路ID表示设备上某一条链路的单跳路径,仅在设备本地有效。其中,当所述路由标识=1,指示当前节点执行网络区域可调的源路由协议;当所述路由标识=0,指示当前节点执行逐跳路由协议。
步骤S105,若所述数据报所在的当前网络区域的区域类型为逐跳路由域,则所述逐跳路由域内的节点在数据报转发时执行逐跳路由协议。
如上所述,当判断到所述数据报所在的当前网络区域的区域类型为逐跳路由域时,且采用可编程转发技术转发所述数据报时,则所述逐跳路由域内的节点在数据报转发时执行逐跳路由协议。
其中,请参阅图3,所述逐跳路由域内的节点在数据报转发时执行逐跳路由协议的步骤包括:
步骤S1051,SDN控制器将逐跳路由域内各跳的性能组发送到其所控制的逐跳路由域内的各节点。
步骤S1052,所述逐跳路由域内的相邻两个节点之间互相发送自己去往目的地的性能组及下一跳信息。
步骤S1053,所述逐跳路由域内的节点根据从邻居接收到的所述目的地性能组,更新自己到达各个目的地的路由表。
步骤S1054,当任一数据报到达所述逐跳路由域内的节点,查询所述路由表确定数据报的下一跳,并逐跳地转发,直到到达所述逐跳路由目的地。
可以理解的,通过各逐跳路由域内的各节点根据逐跳目的地性能组更新各自到所述逐跳路由目的地的路由表,并根据所述路由表确定下一跳节点的设置,减少了所述逐跳路由域内各节点的路由表信息,提高了所述数据报在逐跳路由域内的传递速度,优化了所述数据报在网络区域内的路径选择。
在此还需要说明的是,所述逐跳路由域内的节点在数据报转发时执行逐跳路由协议的步骤之前,所述方法还包括:采用P4设计所述逐跳路由域内所转发的数据报的IP头部,实现所述逐跳路由域内节点在可编程数据平面的Parser,其中,IP头部包含目的IP地址字段;采用P4设计所述逐跳路由域内节点在可编程数据平面的match-action,其中,match为所述逐跳路由的目的IP地址,action是根据所述查询路由表转发到将所述数据报下一节点。
作为一个具体的实施例,如请参阅图4,A向F发送数据报,默认情况下,通过逐跳路由域内的逐跳路由可发现网络中存在着很多的路径,比如ABCDEF,ABKGF,AHJDEF等等。
SDN控制器通过已获取的性能组信息计算出符合条件的显式路径。如果SDN控制器发现一条性能稳定的直达路由,那么确定好X值后,例如图4中的ABCD,此时X=3。
如图4所示,SDN控制器向源路由域内的节点A下发源路由路径的路径标识栈{16011,16021,313,16031}来引导A往F的所有数据报按指定路径转发。
源路由域内的节点A收到路径标识栈后,会嵌入到数据报内。节点A收到路径标识栈后,发现第一个标识16011对应节点B,于是查找路由将数据报转发给节点B;节点B收到后,发现顶层标识16011是自己,于是将标识弹出,并将数据报发往16021对应的节点C,在节点C,发现顶层标识16021是自己,于是将标识弹出,并将数据报通过313对应的链路发往源D,…最终数据数据报会依据指定的路径转发到目的地D。
数据报到达D后,根据逐跳路由域内逐跳路由的策略实时地选择下一跳,会通过E或者G,最终到达F。
根据本发明提供的可编程数据平面路由方法,首先周期性地获取网络内一跳或多跳的端到端性能组;动态地将所述网络划分为多个网络区域,相邻两个所述网络区域的区域类型不同,所述区域类型包括源路由域及逐跳路由域;判断数据报所在的当前网络区域的区域类型;若所述数据报所在的当前网络区域的区域类型为源路由域,则所述源路由域内的节点在数据报转发时执行区域可调源路由协议;若所述数据报所在的当前网络区域的区域类型为逐跳路由域,则所述逐跳路由域内的节点在数据报转发时执行逐跳路由协议,从而实现了对所述数据报的传输;由于能够周期性的对网络内端到端的性能组进行采集与的反馈,以便于能够对所述网络内一跳或多跳的网络状态进行监控,从而及时了解所述网络内各个一跳或多跳的网络状态及拥塞程度;通过根据所述性能组周期性的将所述网络划分为多个网络区域,以便于所述数据报能够根据各个网络区域的网络状态执行不同的路由协议,避免所述数据报在传输的过程由于路径拥塞或不同网络区域中各节点的性能组相差较大,而导致所述数据报的传输效率降低的状况;由于本发明基于精细化性能测量,利用可编程转发技术实现负载均衡等性能最优的精细化路由,通过简化路由减少处理时延,解决现有路由对网络状态变化的适应较慢等问题,可满足5G网络、工业互联网、智能灌溉传感网络等对低时延、大吞吐量的应用需求。
请参阅图5,对于第二实施例中可编程数据平面路由方法,其中,包括步骤S201~S203。
步骤S201,判断所述数据报当前所在的网络区域的类型及下一跳的节点类型。
步骤S202,当所述数据报当前所在的网络区域为源路由域边界的节点,且下一跳为逐跳路由域时,则所述数据报所在的当前节点执行所述X=1的区域可调源路由协议或逐跳路由协议中的任意一种协议。
如上所述,当根据所述路径传输所述数据报的过程中,当判断到所述数据报由当前节点传输到下一跳节点的区域类型发生变化,则根据下一跳节点的区域类型执行相应的路由协议,其中,当当前所在的网络区域为源路由域边界的节点,且下一跳为逐跳路由域时,则所述数据报所在的当前节点执行所述X=1的区域可调源路由协议或逐跳路由协议中的任意一种协议,具体选择时可随机选择,或根据预先设定的规则进行选择。
步骤S203,当所述数据报当前所在的网络区域为逐跳路由域边界的节点,且下一跳为源路由域时,则所述数据报所在的当前节点执行逐跳路由协议。
如上所述,当根据所述路径传输所述数据报的过程中,当判断到所述数据报由当前节点传输到下一跳节点的区域类型发生变化,则将所述当前节点的路由协议作为所述下一跳节点的路由协议,其中,当当所述数据报当前所在的网络区域为逐跳路由域边界的节点,且下一跳为源路由域时,则所述数据报所在的当前节点执行逐跳路由协议。
本实施例在第一实施例的基础上进一步完善了可编程数据平面路由的路径规划方法,优化了所述数据报在网络内的路径选择,满足了实时应用需求。
需要说明是,本实施例重点说明的是与上一实施例的不同之处,各个实施例之间相同相似的部分未重复描述,可以相互参见,且各实施例之间的技术特征可以根据本领域技术人员的常规技术手段进行选择性组合。
请参阅图6,基于同一发明构思,本发明第三实施例提供的可编程数据平面路由系统,包括:获取模块10、划分模块20、判断模块30、第一执行模块40、第二执行模块50。
所述获取模块10,用于周期性地获取网络内一跳或多跳的端到端性能组。所述性能组包括延迟、抖动、丢包率、吞吐量、链路利用率中的一种或多种。
所述划分模块20,用于基于性能驱动和优化目标驱动的方法,动态地将所述网络划分为多个网络区域,相邻两个所述网络区域的区域类型不同,所述区域类型包括源路由域及逐跳路由域。
本实施例中,所述划分模块20包括:
第一设置单元21,用于若所述路径中的一段连续k(k>1)跳的子路径,其端到端性能组高度确定并变化缓慢,则将该子路径设为源路由的路径。
第二设置单元22,用于若所述路径中的一段连续k(k>1)跳的子路径,其端到端性能组变化快速,则将则将该子路径设为逐跳路由的路径。
可以理解的,当X=k(k>1),亦即,存在一段连续k跳的子路径,那么将该子路径设为源路由的路径,子路径上k跳内的节点组成了源路由域;那些不满足被划入源路由域的条件的节点组成了逐跳路由域;启动划分所述源路由域和逐跳路由域的时机是:网络中端到端性能组的变化及应用需求的变化。
所述判断模块30,用于判断数据报所在的当前网络区域的区域类型,采用可编程转发技术转发所述数据报。
所述第一执行模块40,用于若所述数据报所在的当前网络区域的区域类型为源路由域,则所述源路由域内的节点在数据报转发时执行区域可调源路由协议。
本实施例中,所述第一执行模块40包括:
计算单元41,用于SDN控制器基于P4计算得到一路径长度为X的路径序列。
所述SDN控制器基于P4计算得到一路径长度为X的路径序列的方法包括性能驱动和优化目标驱动,其中,
性能驱动:SDN控制器定期地通过数据挖掘技术分析所述性能组来计算X;
优化目标驱动:根据应用对于时延、吞吐量等优化目标来计算X。
指示单元42,用于将计算好的所述路径序列发送给源路由域内的源节点,所述路径序列用于指示数据报沿途经过的源路由域内的节点。
第一查询单元43,用于当一数据报到达源路由域内的该源节点时,查询所述路径序列,确定所述数据报的下一跳,并将所述路径序列嵌入到数据报内。
确定单元44,用于所述源路由域内的中间节点收到所述数据报后,根据所述路径序列确定所述数据报的下一跳,并将所述数据报转发至下一跳,直至到达所述路径序列所指向的源路由目的地。
其中,所述源路由域内的节点在数据报转发时执行区域可调源路由协议的步骤之前,所述方法还包括:采用P4设计所述源路由域内所转发的所述数据报的头部,实现所述源路由域内节点在可编程数据平面的Parse,其中,所述源路由域内所需转发的数据报的头部中包含源路由路径的标识栈、路由标识、目的IP地址,所述标识栈用于存放所述路径序列,所述路由标识用于指示节点执行区域可调源路由协议或逐跳路由协议;采用P4设计所述源路由域内节点在可编程数据平面的match-action,其中,match为源路由的目的IP地址,action为根据所述源路由路径的标识栈指定的节点ID转发到下一跳节点。其中,当所述路由标识=1,指示当前节点执行网络区域可调的源路由协议;当所述路由标识=0,指示当前节点执行逐跳路由协议。
本实施例中,所述第一执行模块40,还用于当所述数据报当前所在的网络区域为源路由域边界的节点,且下一跳为逐跳路由域时,则所述数据报所在的当前节点执行所述X=1的区域可调源路由协议或逐跳路由协议中的任意一种协议。
所述第二执行模块50,用于若所述数据报所在的当前网络区域的区域类型为逐跳路由域,则所述逐跳路由域内的节点在数据报转发时执行逐跳路由协议。
第一发送单元51,用于SDN控制器将逐跳路由域内各跳的性能组发送到其所控制的逐跳路由域内的各节点。
第二发送单元52,用于所述逐跳路由域内的相邻两个节点之间互相发送自己去往目的地的性能组及下一跳信息。
更新单元53,用于所述逐跳路由域内的节点根据从邻居接收到的所述目的地性能组,更新自己到达各个目的地的路由表。
第二查询单元54,用于当任一数据报到达所述逐跳路由域内的节点,查询所述路由表确定数据报的下一跳,并逐跳地转发,直到到达所述逐跳路由目的地。
其中,所述逐跳路由域内的节点在数据报转发时执行逐跳路由协议的步骤之前,所述方法还包括:采用P4设计所述逐跳路由域内所转发的数据报的IP头部,实现所述逐跳路由域内节点在可编程数据平面的Parser,其中,IP头部包含目的IP地址字段;采用P4设计所述逐跳路由域内节点在可编程数据平面的match-action,其中,match为所述逐跳路由的目的IP地址,action是根据所述查询路由表转发到将所述数据报下一节点。
本实施例中,所述第二执行模块50,还用于当所述数据报当前所在的网络区域为逐跳路由域边界的节点,且下一跳为源路由域时,则所述数据报所在的当前节点执行逐跳路由协议。
本发明实施例提出的可编程数据平面路由系统的技术特征和技术效果与本发明实施例提出的方法相同,在此不予赘述。
此外,本发明的实施例还提出一种存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述方法的步骤。
此外,本发明的实施例还提出一种设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述程序时实现上述方法的步骤。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,“计算机可读介质”可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。
计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。
Claims (11)
1.一种可编程数据平面路由方法,应用于路由设备,其特征在于,所述方法包括如下步骤:
周期性地获取网络内一跳或多跳的端到端性能组,所述性能组包括延迟、抖动、丢包率、吞吐量、链路利用率中的一种或多种组合;
基于性能驱动和优化目标驱动的方法,动态地将所述网络划分为多个网络区域,相邻两个所述网络区域的区域类型不同,所述区域类型包括源路由域及逐跳路由域;
判断数据报所在的当前网络区域的区域类型,采用可编程转发技术转发所述数据报;
若所述数据报所在的当前网络区域的区域类型为源路由域,则所述源路由域内的节点在数据报转发时执行区域可调源路由协议;
若所述数据报所在的当前网络区域的区域类型为逐跳路由域,则所述逐跳路由域内的节点在数据报转发时执行逐跳路由协议
具体的,SDN控制器基于P4计算得到一路径长度为X的路径序列;
其中,SDN控制器基于P4采用性能驱动和优化目标驱动计算得到一路径长度为X的路径序列,以根据得到的X值划分源路由域和逐跳路由域的范围的方法包括:
当X=k(k>1),亦即,存在一段连续k跳的子路径,那么将该子路径设为源路由的路径,该子路径上k跳内的节点组成了源路由域;
那些不满足被划入源路由域的条件的节点组成了逐跳路由域;
启动划分所述源路由域和逐跳路由域的时机是:网络中端到端性能组的变化及应用需求的变化。
2.根据权利要求1所述的可编程数据平面路由方法,其特征在于,所述源路由域内的节点在数据报转发时执行区域可调源路由协议时,SDN控制器基于P4计算得到一路径长度为X的路径序列的步骤之后,所述方法还包括:
将计算好的所述路径序列发送给源路由域内的源节点,所述路径序列用于指示数据报沿途经过的源路由域内的节点;
当一数据报到达源路由域内的该源节点时,查询所述路径序列,确定所述数据报的下一跳,并将所述路径序列嵌入到数据报内;
所述源路由域内的中间节点收到所述数据报后,根据所述路径序列确定所述数据报的下一跳,并将所述数据报转发至下一跳,直至到达所述路径序列所指向的源路由目的地。
3.根据权利要求2所述的可编程数据平面路由方法,其特征在于,所述源路由域内的节点在数据报转发时执行区域可调源路由协议的步骤之前,所述方法还包括:
采用P4设计所述源路由域内所转发的所述数据报的头部,实现所述源路由域内节点在可编程数据平面的Parse,其中,所述源路由域内所需转发的数据报的头部中包含源路由路径的标识栈、路由标识、目的IP地址,所述标识栈用于存放所述路径序列,所述路由标识用于指示节点执行区域可调源路由协议或逐跳路由协议;
采用P4设计所述源路由域内节点在可编程数据平面的match-action,其中,match为源路由的目的IP地址,action为根据所述源路由路径的标识栈指定的节点ID转发到下一跳节点。
4.根据权利要求3所述的可编程数据平面路由方法,其特征在于,所述源路由路径的标识栈包括沿途经过的节点ID的序列及两节点之间的某条链路的链路ID,所述节点ID和链路ID均由SDN控制器统一分配,其中,节点ID为唯一地标识源路由域内的一个节点,链路ID为两个节点之间存在着多条链路,链路ID表示节点上的某一条链路,仅在节点本地有效。
5.根据权利要求1所述的可编程数据平面路由方法,其特征在于,所述逐跳路由域内的节点在数据报转发时执行逐跳路由协议的步骤包括:
SDN控制器将逐跳路由域内各跳的性能组发送到其所控制的逐跳路由域内的各节点;
所述逐跳路由域内的相邻两个节点之间互相发送自己去往目的地的性能组及下一跳信息;
所述逐跳路由域内的节点根据从邻居接收到的所述目的地性能组,更新自己到达各个目的地的路由表;
当任一数据报到达所述逐跳路由域内的节点,查询所述路由表确定数据报的下一跳,并逐跳地转发,直到到达所述逐跳路由目的地。
6.根据权利要求5所述的可编程数据平面路由方法,其特征在于,所述逐跳路由域内的节点在数据报转发时执行逐跳路由协议的步骤之前,所述方法还包括:
采用P4设计所述逐跳路由域内所转发的数据报的IP头部,实现所述逐跳路由域内节点在可编程数据平面的Parser,其中,IP头部包含目的IP地址字段;
采用P4设计所述逐跳路由域内节点在可编程数据平面的match-action,其中,match为所述逐跳路由的目的IP地址,action是根据所述查询路由表转发到将所述数据报下一节点。
7.根据权利要求1所述的可编程数据平面路由方法,其特征在于,
所述性能驱动为SDN控制器定期地通过数据挖掘技术分析所述性能组来计算X;
所述优化目标驱动为根据应用对于时延、吞吐量等优化目标来计算X。
8.根据权利要求1所述的可编程数据平面路由方法,其特征在于,所述方法还包括:
当所述数据报当前所在的网络区域为源路由域边界的节点,且下一跳为逐跳路由域时,则所述数据报所在的当前节点执行X=1的区域可调源路由协议或逐跳路由协议中的任意一种协议;
当所述数据报当前所在的网络区域为逐跳路由域边界的节点,且下一跳为源路由域时,则所述数据报所在的当前节点执行逐跳路由协议。
9.一种可编程数据平面路由系统,具体包括:
获取模块,用于周期性地获取网络内一跳或多跳的端到端性能组,所述性能组包括延迟、抖动、丢包率、吞吐量、链路利用率中的一种或多种组合;
划分模块,用于动态地将所述网络划分为多个网络区域,相邻两个所述网络区域的区域类型不同,所述区域类型包括源路由域及逐跳路由域;
判断模块,用于判断数据报所在的当前网络区域的区域类型,采用可编程转发技术转发所述数据报;
第一执行模块,用于若所述数据报所在的当前网络区域的区域类型为源路由域,则所述源路由域内的节点在数据报转发时执行区域可调源路由协议;
第二执行模块,用于若所述数据报所在的当前网络区域的区域类型为逐跳路由域,则所述逐跳路由域内的节点在数据报转发时执行逐跳路由协议
具体的,SDN控制器基于P4计算得到一路径长度为X的路径序列;
其中,SDN控制器基于P4采用性能驱动和优化目标驱动计算得到一路径长度为X的路径序列,以根据得到的X值划分源路由域和逐跳路由域的范围包括:
当X=k(k>1),亦即,存在一段连续k跳的子路径,那么将该子路径设为源路由的路径,该子路径上k跳内的节点组成了源路由域;
那些不满足被划入源路由域的条件的节点组成了逐跳路由域;
启动划分所述源路由域和逐跳路由域的时机是:网络中端到端性能组的变化及应用需求的变化。
10.一种可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-8任意一项所述的可编程数据平面路由方法。
11.一种路由设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1-8任意一项所述的可编程数据平面路由方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910356564.1A CN110166358B (zh) | 2019-04-29 | 2019-04-29 | 可编程数据平面路由方法、系统、可读存储介质及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910356564.1A CN110166358B (zh) | 2019-04-29 | 2019-04-29 | 可编程数据平面路由方法、系统、可读存储介质及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110166358A CN110166358A (zh) | 2019-08-23 |
CN110166358B true CN110166358B (zh) | 2021-09-03 |
Family
ID=67633163
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910356564.1A Active CN110166358B (zh) | 2019-04-29 | 2019-04-29 | 可编程数据平面路由方法、系统、可读存储介质及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110166358B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101610432A (zh) * | 2009-07-10 | 2009-12-23 | 北京邮电大学 | 一种支持群计算单元协作路径计算的信令实现方法 |
CN101754059A (zh) * | 2009-12-18 | 2010-06-23 | 北京邮电大学 | 一种光分组网络中多业务分级驱动的二级标签转发方法 |
CN102035731A (zh) * | 2010-11-23 | 2011-04-27 | 常熟理工学院 | 一种6LoWPAN无线传感器网络路由方法 |
CN107771404A (zh) * | 2015-06-22 | 2018-03-06 | 瑞典爱立信有限公司 | 无线网状网络中的路径选择 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10009794B2 (en) * | 2013-12-05 | 2018-06-26 | Huawei Technologies Co., Ltd. | Framework for traffic engineering in software defined networking |
-
2019
- 2019-04-29 CN CN201910356564.1A patent/CN110166358B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101610432A (zh) * | 2009-07-10 | 2009-12-23 | 北京邮电大学 | 一种支持群计算单元协作路径计算的信令实现方法 |
CN101754059A (zh) * | 2009-12-18 | 2010-06-23 | 北京邮电大学 | 一种光分组网络中多业务分级驱动的二级标签转发方法 |
CN102035731A (zh) * | 2010-11-23 | 2011-04-27 | 常熟理工学院 | 一种6LoWPAN无线传感器网络路由方法 |
CN107771404A (zh) * | 2015-06-22 | 2018-03-06 | 瑞典爱立信有限公司 | 无线网状网络中的路径选择 |
Non-Patent Citations (2)
Title |
---|
Classification of Surface EMG Signal Based on Energy Spectra Change;liuwaixi等;《 2008 International Conference on BioMedical Engineering and Informatics》;20080624;全文 * |
网络架构演进下的高性能流量管理研究;陈飞;《中国博士学位论文电子期刊网》;20171231;第15页第2段-第16页最后一段、第33页第1-6段、第42页第2段-第43页第1段 * |
Also Published As
Publication number | Publication date |
---|---|
CN110166358A (zh) | 2019-08-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3427448B1 (en) | Pcep extension for pcecc support of distributed computing, multiple services, and inter-domain routing | |
CN109787921B (zh) | Cdn带宽调度方法、采集及调度服务器和存储介质 | |
US6956820B2 (en) | Methods, systems, and computer program products for voice over IP (VoIP) traffic engineering and path resilience using network-aware media gateway | |
CN100596102C (zh) | 最小化路径抢占代价的标签交换路径建立方法 | |
US9923798B1 (en) | Dynamic load balancing of network traffic on a multi-path label switched path using resource reservation protocol with traffic engineering | |
US7787364B2 (en) | Control scheme for standby channel route | |
KR20080114774A (ko) | 통신 네트워크에서의 라우팅 방법 및 통신 네트워크에서의 라우팅 장치 | |
US20090185481A1 (en) | Method and network node for self-regulating, autonomous and decentralized traffic distribution in a multipath network | |
WO2020052306A1 (zh) | 一种报文转发路径的确定方法、设备和系统 | |
KR20100021606A (ko) | 연결-지향형 패킷-교환 통신 네트워크에서의 논리적 연결 경로를 셋업하기 위한 방법 | |
CN101841487A (zh) | 聚合链路服务流的配置方法及包交换装置 | |
CN106850422A (zh) | 一种基于路由反射器的路径优选方法和系统 | |
CN113132225A (zh) | 路径选择方法、装置、计算机设备和计算机可读介质 | |
KR101674177B1 (ko) | 멀티노드간 이더넷 가상연결서비스를 제공하는 트랜스포트 sdn 컨트롤러 및 멀티노드간 이더넷 가상연결서비스 제공 방법 | |
CN1996921A (zh) | 建立业务连接的方法、路由设备、业务网络 | |
CN101350761B (zh) | 实现路径建立、计算的方法、装置及系统 | |
CN101155119A (zh) | 一种确定自治系统边界节点的方法、装置及路径计算方法 | |
US20140185607A1 (en) | Communication system, communication path establishing method and management server | |
CN115733791A (zh) | 对支持分段路由的多路径网络的优化 | |
Akin et al. | Comparison of routing algorithms with static and dynamic link cost in SDN | |
KR20150080183A (ko) | 데이터 센터 네트워크의 동적 트래픽 분배 방법 및 장치 | |
JP2007074055A (ja) | 動的制御用ネットワークリソース制御方法および動的制御用ネットワークリソース制御装置 | |
CN102123089B (zh) | 隧道建立方法及装置 | |
CN110166358B (zh) | 可编程数据平面路由方法、系统、可读存储介质及设备 | |
CN1330141C (zh) | 光网络的路由选择方法 |
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 |