CN113923148A - 基于SRv6和带宽测量的带宽保证网络传输方法 - Google Patents
基于SRv6和带宽测量的带宽保证网络传输方法 Download PDFInfo
- Publication number
- CN113923148A CN113923148A CN202111250341.0A CN202111250341A CN113923148A CN 113923148 A CN113923148 A CN 113923148A CN 202111250341 A CN202111250341 A CN 202111250341A CN 113923148 A CN113923148 A CN 113923148A
- Authority
- CN
- China
- Prior art keywords
- array
- path
- network
- transmission
- bandwidth
- 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.)
- Granted
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
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0896—Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities
-
- 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/0876—Network utilisation, e.g. volume of load or congestion level
- H04L43/0894—Packet rate
-
- 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/70—Routing based on monitoring results
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
本发明公开了基于SRv6和带宽测量的带宽保证网络传输方法,目的是解决网络流传输的带宽保障问题。技术方案是:构建由网络控制节点、M个网络应用节点组成的带宽保证网络传输控制系统,网络控制节点上安装有配置文件、初始化模块、拓扑计算模块、路径计算模块、传输控制模块、带宽数据接收模块,网络应用节点上安装有传输代理模块。带宽数据接收模块、拓扑计算模块、路径计算模块、传输控制模块和传输代理模块并行配合工作,利用网络带宽测量获得的网络带宽数据,根据网络流的传输带宽需求,计算出传输带宽满足网络流需求的传输路径,利用SRv6路由转发机制控制网络流每个报文按计算出的传输路径传输,使得网络流传输带宽满足要求。
Description
技术领域
本发明属于计算机网络技术领域,尤其涉及一种基于SRv6(Segment Routing forIPv6即IPv6网络中的段路由)和带宽测量的带宽保证网络传输方法。
背景技术
IP网络是一种提供尽力而为服务的网络,无法在网络报文传输带宽、传输路径、服务质量保证等方面为网络应用提供确定性和差异性服务。
随着云计算、人工智能、移动互联网等技术发展,计算机网络规模迅速扩大,网络应用的种类和数量日益增多,网络用户对网络应用体验的要求越来越高,现有IP网络越来越无法满足网络传输和用户体验的需求。对于各种视频和音频类应用来说,流量传输具有较高的带宽质量保障需求。如果传输路径中的传输带宽不能满足流量传输需求,则会出现丢包、堵塞等现象,造成流量传输的卡顿,严重影响音视频应用的用户服务体验。
关于网络传输带宽保障问题的传统解决方法是资源预留,在网络中为用户预留一定的带宽资源,实施方案为资源预留协议(Resource ReSerVation Protocol,RSVP)。但是RSVP协议非常复杂,部署运维工作量非常大,而且协议运行本身占用相当的网络带宽,因此实际网络中应用很少。
SDN技术兴起后,很多研究人员考虑资源预留和SDN技术结合为网络传输增加带宽保障功能。殷昭印(参见殷昭印.业务传输的方法和装置:中国专利,授权公告号CN109274589 B,2021年3月2日)提出将网络应用划分为多个业务类型,通过SDN控制器中的流表项为对应业务类型预留网络资源;王正强等(参见王正强,朱兴浩,王冰,樊自甫,万晓榆.基于SDN的数据中心网络中一种保障QoS的路由算法:中国专利,授权公告号CN 106341346B,2019年7月19日)提出采用OpenFlow交换机,通过OpenFlow协议流表为网络流按优先级进行服务保障;陈潇等(参见陈潇,曾浩洋,田永春,姜永广,邓伟华,丁锐,李默嘉.一种基于SDN多业务动态带宽分配的方法和系统:中国专利,授权公告号CN 105897612 B,2019年5月28日)提出根据优先级划分SDN业务类型,根据SDN业务类型分配带宽资源;张鹏飞等(参见张鹏飞,屈恒,王益冬.带宽分配的方法及装置:中国专利,授权公告号CN 104954286 B,2019年3月215)提出预设关键服务的方法,根据当前网络服务的技术参数判断是否为预设关键服务,如果是预设关键服务则分配相应的网络资源。这些为网络流量划分优先级或者业务类型的方法都是预设等级或类型,难以做到动态化,由于某一等级或者类型的网络应用可能在相当时间内不会传输,这就造成了网络带宽资源的大量浪费。
另外,李宇赫等(参见李宇赫,张娇,黄程远,李浩哲.边缘云的带宽保障方法及相关设备:中国专利,授权公告号CN 105897612 B,2019年5月28日)以云计算中的虚拟机为单位,根据接收端的反馈数据包来为虚拟机分配网络资源;郭勐等(参见郭勐.一种网络带宽保障方法、装置、系统和终端:中国专利,授权公告号CN 106413007 B,2019年11月19日)以无线网络中的网络终端为单位,根据网络终端的无线网络环境参数值为网络终端分配网络资源。这些方法及上述方法,实现带宽保障的粒度都很粗,只能以终端或者业务类型为单位进行保障,无法针对具体的网络应用进行保障。
SRv6是一种段路由技术,可以使得报文源节点或网关节点能够控制每一个报文的传输路径和经过的转发节点,在路由优化、流量工程等领域有广阔的应用前景。同时,由于SRv6技术兼容IPv6网络,可以在现有IP网络上进行增量部署,进而解决现有IP网络中的问题,因此成为科研院所、网络设备商和网络运营商在网络新技术领域的研究热点。
如何利用SRv6技术以及实时网络带宽测量数据,设计针对网络流级的满足传输带宽需求的网络传输控制方法,解决现有IP网络中网络流传输的带宽保障问题是本领域技术人员极为关注的技术问题。
发明内容
本发明要解决的技术问题是利用SRv6技术解决现有IP网络中网络流传输的无法保证网络流所需带宽的问题。
技术方案是:利用网络带宽测量获得的网络带宽数据,根据每个网络流的传输带宽需求,计算出传输带宽满足网络流需求的传输路径,并利用SRv6路由转发机制控制网络流每个报文按照计算出的传输路径传输,实现网络中网络流传输带宽满足要求。
第一步,构建带宽保证网络传输控制系统,方法是:
带宽保证网络传输控制系统由一个网络控制节点、M个网络应用节点组成。网络控制节点是服务器,其上安装有配置文件、初始化模块、拓扑计算模块、路径计算模块、传输控制模块、带宽数据接收模块。网络应用节点是服务器或者终端,其上安装有传输代理模块。
配置文件存储网络报文时延确定性传输控制系统运行所需的参数,包括网络中转发节点(即网络中转发报文的节点,上面不运行传输控制系统的模块)数量N(N为正整数,且N≥3),N个转发节点的编号及IP地址。
初始化模块与配置文件、路径计算模块、传输控制模块、传输代理模块相连。初始化模块从配置文件读取网络中转发节点数量N,按照顺序分别从配置文件中读取N个转发节点的编号及IP地址,将转发节点IP地址存入IP地址数组ip_array,ip_array共有N个元素,每个元素有两个域,一个域为序号,存储一个转发节点的编号,另一个域为值,存储相应编号转发节点的IP地址。初始化模块将N发送给拓扑计算模块,将N和ip_array发送给传输控制模块。
带宽数据接收模块与拓扑计算模块、传输控制模块和外部带宽测量系统(一般采用INT、SNMP协议等技术实现,可参考Andrea Campanella,Jonghwan Hyun.In-bandNetwork Telemetry(INT)with ONOS and P4[EB/OL]on Apr 25,2019(见https:// wiki.onosproject.org/display/ONOS/In-band+Network+Telemetry+%28INT%29+with+ONOS+and+p4,2019-04-25.网络测量系统的实现)相连。带宽数据接收模块监听外部带宽测量系统,从外部带宽测量系统接收网络带宽数据。网络带宽数据由网络带宽数据数组netband_array以及带宽数据个数BN组成。netband_array中共有BN个元素,每个元素存储一个带宽数据。每个带宽数据包括3个域:该数据所在网络链路的起始节点编号start_id,所在网络链路的终止节点编号end_id,所在网络链路的带宽band。带宽数据接收模块将BN和netband_array分别发送给拓扑计算模块和传输控制模块。
拓扑计算模块与初始化模块、带宽数据接收模块和路径计算模块相连。拓扑计算模块从初始化模块接收网络中转发节点数量N,从带宽数据接收模块接收网络带宽数据个数BN和网络带宽数据数组netband_array,根据N、BN和netband_array计算网络拓扑数据。网络拓扑数据由邻接表数组topo_array组成,topo_array中共有N个元素,每个元素存储一个邻接表数据。邻接表数据包括3个域:该邻接表代表的转发节点编号nid,与编号为nid的转发节点直接相连的转发节点个数an,与编号为nid的转发节点直接相连的转发节点编号数组id_array(id_arrray中每个元素存储与编号为nid的转发节点直接相连的一个转发节点的编号,共有an个元素,an为正整数)。拓扑计算模块将N和topo_array发送给路径计算模块。
路径计算模块与拓扑计算模块和传输控制模块相连。路径计算模块从拓扑计算模块接收网络拓扑数据topo_array和N,根据N和topo_array计算网络中任意两个转发节点之间的所有传输路径(采用传输路径上顺序经过的转发节点编号来表示),并存储于传输路径数组path_array中,path_array中共有N×(N-1)/2个元素,每个元素的数据结构为path_str,path_str存储多条路径,path_str包含4个域:路径起始节点编号sid,路径终止节点编号did,从路径起始节点到路径终止节点的所有路径数量pn(每个path_str存储pn条路径),每个路径中转发节点数量数组(即NN,NN中共有pn个元素,第i_nn个元素存储第i_nn条路径中转发节点数量,i_nn=1,2,…,pn),pn条路径顺序经过的转发节点编号数组node_array,(node_array为二维数组,node_array中共有pn个元素,每个元素为一个数组。node_array中第i_node_array个元素是存储第i_node_array条路径中转发节点编号的数组,该数组顺序存储第i_node_array条路径中转发节点编号,每个元素存储一个转发节点编号,共有NN[i_node_array]个元素,NN[i_node_array]表示第i_node_array条路径中转发节点数量)。路径计算模块将计算出的传输路径数组path_array发送给传输控制模块。
传输控制模块与初始化模块、路径计算模块、带宽数据接收模块和传输代理模块相连。从初始化模块接收N和ip_array,从带宽数据接收BN和netband_array,从路径计算模块接收path_array,从传输代理模块接收传输带宽需求req_str。传输控制模块根据N,BN,netband_array,path_array计算满足req_str需求的传输路径,并将计算结果存入传输路径信息数据pathinfo,pathinfo包含2个域:传输路径上所有转发节点的数量(即pin,为正整数),传输路径上顺序经历的转发节点的IP地址数组pinIP_array(pinIP_array中每个元素存储一个转发节点的IP地址,共有pin个元素)。传输控制模块将pathinfo发送给传输代理模块。
传输代理模块与传输控制模块和外部网络应用(即用网络传输数据的应用程序)相连。传输代理模块维护一个传输路径信息链表flow_path_list,链表中每个元素的数据结构为网络流传输路径数据结构flow_path_str,flow_path_str存储一个正在传输的网络流的路径信息,flow_path_str包含7个域:网络流最近传输报文的时间(即flow_t)、网络流的源IP(即flow_sip)、网络流的目的IP(即flow_dip)、网络流的源端口(即flow_sport)、网络流的目的端口(即flow_dport)、网络流传输路径中节点数量(即flow_nn)、网络流传输路径节点IP数组(即flow_ip_array)。传输代理模块从外部网络应用接收网络流传输带宽需求,并将网络应用对网络流传输带宽需求存储于传输带宽需求数据结构req_str,req_str包含5个域:网络流源节点IP地址(即sip),网络流目的节点IP地址(即dip),网络应用的网络流源端口(即sport),网络应用的网络流目的端口(即dport),网络流传输带宽需求(即minBand)。传输代理模块将req_str发送给传输控制模块,然后从传输控制模块接收pathinfo,根据pathinfo构建flow_path_str,并将flow_path_str加入flow_path_list。同时,传输代理模块从外部网络应用接收要传输的网络报文,根据网络报文的源IP、目的IP、源端口、目的端口信息从flow_path_list中查找对应网络流传输路径数据,并根据网络流传输路径数据中的传输节点IP数组为网络报文封装SRv6报文头,将封装了SRv6报文头的网络报文(因为网络会根据SRv6报文头中封装的IP地址依序经由传输路径中的转发节点传输,而该路径是传输控制模块从网络所有路径中找出的能够满足传输带宽要求的路径,所以封装了SRv6报文头的网络报文是满足传输带宽需求的报文)发送至外部网络应用。
第二步,初始化配置文件,方法是:
根据使用本发明的应用网络的网络拓扑,统计网络中转发节点的数量N,并将N写入配置文件;根据使用本发明的应用网络中每个转发节点的IP地址以及对应每个转发节点对应网络拓扑中的编号,分别将N个转发节点的编号和对应IP地址写入配置文件。
第三步,初始化模块对带宽保证网络传输控制系统进行初始化,方法是:
3.1从配置文件读取N,按照顺序读取N个转发节点的编号和IP地址。
3.2初始化ip_array,即将N个转发节点的编号和IP地址分别存入ip_array的N个元素中。
3.3将N发送给拓扑计算模块。
3.4将N和ip_array发送给传输控制模块。
第四步,带宽保证网络传输控制系统的带宽数据接收模块、拓扑计算模块、路径计算模块、传输控制模块和M个网络应用节点上的传输代理模块并行配合工作,对网络报文传输进行带宽保证传输控制,
方法是:带宽数据接收模块按照4.1所述流程监听外部带宽测量系统,从外部带宽测量系统接收网络带宽数据,将接收的BN个网络带宽数据存入带宽数据数组netband_array,并将BN和netband_array发送给拓扑计算模块和传输控制模块;同时,拓扑计算模块按照4.2所述流程从初始化模块接收N,从带宽数据接收模块接收BN和netband_array,计算邻接表数组topo_array,将N和topo_array发送给路径计算模块;同时,路径计算模块按照4.3所述流程从拓扑计算模块接收N和topo_array,根据topo_array计算网络中任意两个转发节点间的所有路径,将任意两个转发节点间的所有路径存入传输路径数组path_array,将path_array发送给传输控制模块;同时,传输控制模块按照4.4所述流程从初始化模块接收N和ip_array,从路径计算模块接收path_array,从带宽数据接收模块接收netband_array及BN,从传输代理模块接收req_str,根据netband_array和req_str计算出满足网络带宽要求的路径,构建传输路径信息数据pathinfo,将计算出的路径存入pathinfo,将pathinfo发送给传输代理模块;同时,M个网络应用节点上的传输代理模块按照4.5所述流程从外部网络应用接收需要网络带宽保证传输控制的网络流的源IP地址和目的IP地址,以及所需网络带宽最小值minBand,将接收数据存入req_str,将req_str发送给传输控制模块,从传输控制模块接收pathinfo,利用pathinfo为网络流中的每个报文封装SRv6报文头,将封装了SRv6报文头的网络报文发送至外部网络应用,实现对网络报文传输的带宽保证。
4.1带宽数据接收模块按4.1.1-4.1.4所述方法接收数据并进行转发:
4.1.1带宽数据接收模块监听外部带宽测量系统,如果有网络带宽数据到达,转步骤4.1.2,否则转4.1.1继续监听。
4.1.2带宽数据接收模块从外部带宽测量系统接收网络带宽数据的个数以及网络带宽数据(以所述带宽数据的格式),并发送给拓扑计算模块和传输控制模块。方法是:
4.1.2.1接收网络带宽数据个数BN。
4.1.2.2初始化网络带宽数据数组netband_array为空。
4.1.2.3依序接收BN个网络带宽数据,将这BN个网络带宽数据存入netband_array,方法是:
4.1.2.3.1令n=1;
4.1.2.3.2将第n个网络带宽数据所在网络链路的起始节点编号存放到netband_array[n-1]的start_id,将第n个网络带宽数据所在网络链路的终止节点编号存放到netband_array[n-1]的end_id,将第n个网络带宽数据所在网络链路的带宽存放到netband_array[n-1]的band。netband_array[n-1]netband_array表示的第n个元素,一般数组的元素序号是从0开始,netband_array中元素的序号为0~BN-1。
4.1.2.3.3令n=n+1;若n≤BN,转4.1.2.3.2,若n>BN,转4.1.2.4。
4.1.2.4将BN和netband_array发送给拓扑计算模块和传输控制模块。
4.1.2.5转步骤4.1.1。
4.2拓扑计算模块按照4.2.1-4.2.6所述方法计算网络拓扑:
4.2.1拓扑计算模块从初始化模块接收转发节点数量N。
4.2.2拓扑计算模块监听带宽数据接收模块,当有带宽数据到达时,转步骤4.2.3,否则转4.2.2继续监听。
4.2.3接收网络带宽数据数组netband_array以及数组中元素个数BN。
4.2.4构建含有N个元素的到达网络拓扑数据数组topo_array,初始化topo_array中所有元素的每一个域的值为0。
4.2.5拓扑计算模块根据netband_array计算网络拓扑,并将网络拓扑存入网络拓扑数据数组topo_array。topo_array中第i个元素topo_array[i]记录了网络中与节点i链接的所有节点信息。方法是:
4.2.5.1定义循环变量i、j,令i=0。
4.2.5.2令j=0。
4.2.5.3如果netband_array[j].start_id=i,说明netband_array[j]表示的链路是从节点i开始的,则令:
topo_array[i].nid=netband_array[j].start_id;
topo_array[i].id_array[topo_array[i].an]=netband_array[j].end_id;
topo_array[i].an=topo_array[i].an+1;
其中topo_array[i].id_array[topo_array[i].an]表示与节点i有链接的第an个节点的编号。转步骤4.2.5.4;
否则直接转步骤4.2.5.。
4.2.5.4令j=j+1,如果j<BN,转4.2.5.3,否则转步骤4.2.5.5。
4.2.5.5令i=i+1,如果i<N,转步骤4.2.5.2,否则转步骤4.2.6。
4.2.6将N和topo_array发送给路径计算模块,转步骤4.2.2。
4.3路径计算模块按照4.3.1-4.3.8所述方法计算网络中任意两个转发节点间的所有路径:
4.3.1监听拓扑计算模块,如果有topo_array到达,转步骤4.3.2,否则转4.3.1继续监听。
4.3.2从拓扑计算模块接收N和topo_array,构建含有(N-1)×N/2个元素的传输路径数组path_array,将path_array中所有元素的每一个域的值初始化为0。
4.3.3定义循环变量ii、jj、k,令ii=0,k=0。
4.3.4令jj=ii+1,如果jj≤N,转步骤4.3.5,否则转步骤4.3.7。
4.3.5计算编号为ii的转发节点和编号为jj的转发节点之间的所有路径。方法是:使用深度优先遍历算法计算编号为i和编号为j的转发节点之间所有路径(算法可参考梁磊.两点间所有路径的遍历算法[J].科技信息,2010,000(033):92-93.),算法输入为ii、jj和topo_array,算法输出为路径path_str_ii_jj,path_str_ii_jj的数据结构与path_str相同。
4.3.6将计算出的路径path_str_ii_jj添加到传输路径数组中。方法是:将path_str_ii_jj复制到path_array[k]中,path_array[k]表示path_array的第k个元素。
4.3.7令k=k+1,转步骤4.3.4。
4.3.8令ii=ii+1,如果ii≤N,转步骤4.3.4,否则转步骤4.3.9。
4.3.9将传输路径数组path_array发送给传输控制模块,转步骤4.3.1
4.4传输控制模块按照4.4.1-4.4.7所述方法计算出满足网络带宽需求的路径:
4.4.1传输控制模块从初始化模块接收N、ip_array,初始化netband_array和path_array为空。
4.4.2传输控制模块监听带宽数据接收模块、路径计算模块和传输代理模块,当有netband_array到达时转步骤4.4.3,当有path_array到达时转步骤4.4.4,当有网络带宽需求数据req_str到达时转步骤4.4.5,否则转4.4.2继续监听。
4.4.3从带宽数据接收模块接收netband_array及数组元素个数BN,转步骤4.4.2。
4.4.4从路径计算模块接收传输路径数据数组path_array,转步骤4.4.2。
4.4.5从传输代理模块接收网络带宽需求数据req_str。
4.4.6传输控制模块判断netband_array和path_array是否为空,如果为空则转步骤4.4.2;否则转步骤4.4.7;
4.4.7传输控制模块根据netband_array和req_str从path_array中计算出满足网络带宽需求的路径,将满足网络带宽需求的路径存入传输路径信息pathinfo,将pathinfo发送给传输代理模块。方法是:
4.4.7.1计算req_str中传输控制起始节点的编号req_sid,方法是:在数组ip_array中找出与req_str.sip相等的元素,该元素编号即为传输控制起始节点的编号。
4.4.7.2计算req_str中传输控制终止节点的编号req_did,方法是:在数组ip_array中找出与req_str.dip相等的元素,该元素编号即为传输控制终止节点的编号。
4.4.7.3遍历path_array,找出path_array中域sid等于req_sid并且域did等于req_did的元素,令找出的元素编号为path_id_req。
4.4.7.4遍历节点req_sid和节点req_did之间的所有路径,定义循环变量i2,j2,令i2=0。
4.4.7.5计算第i2个路径能够传输流量的最大带宽(即第i2个路径上各个链路可传输带宽中的最小值)。定义传输带宽变量path_band用以记录第i2个路径上各个链路可传输带宽中的最小值,将path_band初始化为一个足够大的值(优选为1000000000),令j2=0。
4.4.7.6令:
j2_start_id=path_array[path_id_req].node_array[i2][j2];
j2_end_id=path_array[path_id_req].node_array[i2][j2+1];
4.4.7.7遍历netband_array,找出netband_array中域start_id等于j2_start_id并且域end_id等于j2_end_id的元素,令其编号为j2_netband_array。
4.4.7.8如果netband_array[j2_netband_array].band<path_band,说明第i2个路径上第j2个链路的可传输带宽小于path_band,令:
path_band=netband_array[j2_netband_array].band。
4.4.7.9令j2=j2+1,如果j2≤path_array[path_id_req].NN[i2]-1,说明第i2个路径上还有链路没有遍历完,转步骤4.4.7.6,否则,转步骤4.4.7.10。
4.4.7.10判断path_band≥req_str.minBand是否成立;如果成立,说明第i2个路径可传输流量最大带宽大于流量传输要求的带宽(即第i2个路径满足传输带宽需求),转步骤4.4.7.12,否则转步骤4.4.7.11。
4.4.7.11令i2=i2+1,如果i2≤path_array[path_id_req].pn,说明传输路径数据中还有路径没有计算完,转步骤4.4.7.5继续计算,否则转步骤4.4.7.12。
4.4.7.12构建传输路径信息pathinfo,令pathinfo.pin=path_array[path_id_req].NN[i2]。
4.4.7.13令j2=0。
4.4.7.14为pathinfo的第j2个节点的IP地址赋值,令pathinfo.pinIP_array[j2]=ip_array[path_array[path_id_req].node_array[i2][j2]]。其中path_array[path_id_req].node_array[i2][j2]表示节点req_sid和节点req_did(见4.4.7.3中path_id_req的计算)之间的所有路径中的第i2个路径的第j2个节点的IP地址。
4.4.7.15令j2=j2+1,如果j2≤path_array[path_id_req].nn[i2],转步骤4.4.7.14,否则转步骤4.4.7.16。
4.4.7.16将pathinfo发送给传输代理模块,转步骤4.4.2。
4.5网络应用节点1,…,网络应用节点m,…,网络应用节点M上的传输代理模块并行按照4.5.1-4.5.14所述方法利用pathinfo为网络流中的每个报文封装SRv6报文头,将封装了SRv6报文头的网络报文发送至外部网络应用,实现对整个网络流的带宽保证传输,1≤m≤M,方法是:
4.5.1构建传输路径信息链表flow_path_list并初始化为空。
4.5.2监听外部网络应用,如果有传输带宽数据需求到达,转步骤4.5.3;如果有网络报文到达,转步骤4.5.9;否则转4.5.2继续监听。
4.5.3从外部网络应用接收传输带宽需求数据,包括flow_sip,flow_dip,flow_sport,flow_dport,flow_band。
4.5.4构建传输带宽需求数据结构req_str,将传输带宽需求数据存入req_str,令:
req_str.sip=flow_sip;
req_str.dip=flow_dip;
req_str.sport=flow_sport;
req_str.dport=flow_dport;
req_str.minband=flow_band;
将req_str发送给传输控制模块。
4.5.5从传输控制模块接收路径信息pathinfo。
4.5.6构建网络流传输路径数据结构flow_path_str,获取系统当前时间t_current。
4.5.7利用传输带宽需求和路径信息为网络流传输路径数据结构flow_path_str赋值。方法是,令:
flow_path_str.flow_t=t_current;
flow_path_str.flow_sip=req_str.sip;
flow_path_str.flow_dip=req_str.dip;
flow_path_str.flow_sport=req_str.sport;
flow_path_str.flow_dport=req_str.dport;
flow_path_str.flow_nn=pathinfo.pin;
将数组pathinfo.pinIP_array中的pathinfo.pin个元素按顺序复制到flow_path_str.flow_ip_array中。
4.5.8将网络流传输路径数据flow_path_str加入到传输路径信息链表flow_path_list中。转步骤4.5.2。
4.5.9从外部网络应用接收要传输的网络报文pkt。
4.5.10提取网络报文pkt的源IP地址pkt_sip、目的IP地址pkt_dip、源端口pkt_sport、目的端口pkt_dport。
4.5.11遍历传输路径信息链表flow_path_list,从中找出满足如下条件的元素flow_path_pkt:域网络流的源IP值与pkt_sip相等,并且域网络流的目的IP值与pkt_dip相等,并且域网络流源端口值与pkt_sport相等,并且域网络流目的端口值与pkt_dport相等。如果找到,转步骤4.5.12,如果没有找到,转步骤4.5.13。
4.5.12顺序利用数组flow_path_pkt.flow_ip_array中的IP地址,根据SRH规范(参考IETF标准C.Filsfils,D.Dukes(ed.)et al.,“IPv6 Segment Routing Header(SRH),”RFC 8754,Mar.2020.[Online].Available:https://tools.ietf.org/html/rfc8754)为网络报文封装SRv6报文头(SRv6报文头中只有IPv6地址列表是不确定的,其他字段都是确定的或者与IPv6地址列表相关的,即只要确定了IPv6地址列表即可确定SRv6报文头。),并将封装后的报文发送至网络(网络收到报文后,会根据SRv6报文头逐跳转发,实现了利用SRv6路由转发机制控制网络流每个报文按照计算出的路径传输)。转步骤4.5.2。
4.5.13将网络报文pkt发送至网络。转步骤4.5.2。
由于带宽保证网络传输控制系统是部署在网络中的在线运行系统,所以只要网络正常运行,带宽保证网络传输控制系统将不断对网络报文传输进行带宽保证传输控制,即带宽数据接收模块、拓扑计算模块、路径计算模块、传输控制模块和传输代理模块的流程是死循环。
本发明基于SDN(Solft Defining Network,软件定义网络)思想,利用SRv6技术以及实时网络带宽测量数据,设计了针对网络流级的满足传输带宽需求的网络传输控制方法,能解决现有IP网络中网络流传输的带宽保障问题。
采用本发明可以达到以下技术效果:
1)本发明第一步基于SRv6和网络测量构建了带宽保证网络传输控制系统,根据网络链路的带宽数据数据为网络报文传输计算出网络带宽满足需求的传输路径,并利用SRv6机制控制网络报文按照计算出的路径进行传输,能实现网络报文传输的带宽保证。
2)本发明第四步带宽数据接收模块实时接收外部带宽测量系统的网络带宽数据,并分别发送给拓扑计算模块和传输控制模块进行路径计算和选择,保证了带宽保证网络传输控制系统根据最新的网络链路带宽数据控制网络报文的传输,实现任意时间网络流传输的带宽保证。
3)本发明第四步传输代理模块实时接收外部网络应用的传输带宽需求,并根据需求为每个网络流计算满足带宽需求传输路径,并控制网络报文根据所在流的传输路径进行传输,可以实现外部网络应用的每个网络流均按照该网络流的带宽需求进行传输。
4)本发明可以支持任意基于TCP/IP协议的网络应用,只需要网络应用将传输带宽需求按照第一步所述格式发送给传输代理模块,因此通用性好。
附图说明
图1是本发明总体流程图;
图2是本发明第一步构建的带宽保证网络传输控制系统逻辑结构图。
具体实施方式
下面对照附图对本发明进行具体说明:
如图1所示,本发明包括以下步骤:
第一步,构建带宽保证网络传输控制系统,方法是:
带宽保证网络传输控制系统如图2所示,由一个网络控制节点、M个网络应用节点组成。网络控制节点是服务器,其上安装有配置文件、初始化模块、拓扑计算模块、路径计算模块、传输控制模块、带宽数据接收模块。网络应用节点是服务器或者终端,其上安装有传输代理模块。
配置文件存储网络报文时延确定性传输控制系统运行所需的参数,包括网络中转发节点数量N(N为正整数,且N≥3),N个转发节点的编号及IP地址。
初始化模块与配置文件、路径计算模块、传输控制模块、传输代理模块相连。初始化模块从配置文件读取网络中转发节点数量N,按照顺序分别从配置文件中读取N个转发节点的编号及IP地址,将转发节点IP地址存入IP地址数组ip_array,ip_array共有N个元素,每个元素有两个域,一个域为序号,存储一个转发节点的编号,另一个域为值,存储相应编号转发节点的IP地址。初始化模块将N发送给拓扑计算模块,将N和ip_array发送给传输控制模块。
带宽数据接收模块与拓扑计算模块、传输控制模块和外部带宽测量系统相连。带宽数据接收模块监听外部带宽测量系统,从外部带宽测量系统接收网络带宽数据。网络带宽数据由网络带宽数据数组netband_array以及带宽数据个数BN组成。netband_array中共有BN个元素,每个元素存储一个带宽数据。每个带宽数据包括3个域:该数据所在网络链路的起始节点编号start_id,所在网络链路的终止节点编号end_id,所在网络链路的带宽band。带宽数据接收模块将BN和netband_array分别发送给拓扑计算模块和传输控制模块。
拓扑计算模块与初始化模块、带宽数据接收模块和路径计算模块相连。拓扑计算模块从初始化模块接收网络中转发节点数量N,从带宽数据接收模块接收网络带宽数据个数BN和网络带宽数据数组netband_array,根据N、BN和netband_array计算网络拓扑数据。网络拓扑数据由邻接表数组topo_array组成,topo_array中共有N个元素,每个元素存储一个邻接表数据。邻接表数据包括3个域:该邻接表代表的转发节点编号nid,与编号为nid的转发节点直接相连的转发节点个数an,与编号为nid的转发节点直接相连的转发节点编号数组id_array(id_arrray中每个元素存储与编号为nid的转发节点直接相连的一个转发节点的编号,共有an个元素,an为正整数)。拓扑计算模块将N和topo_array发送给路径计算模块。
路径计算模块与拓扑计算模块和传输控制模块相连。路径计算模块从拓扑计算模块接收网络拓扑数据topo_array和N,根据N和topo_array计算网络中任意两个转发节点之间的所有传输路径(采用传输路径上顺序经过的转发节点编号来表示),并存储于传输路径数组path_array中,path_array中共有N×(N-1)/2个元素,每个元素的数据结构为path_str,path_str存储多条路径,path_str包含4个域:路径起始节点编号sid,路径终止节点编号did,从路径起始节点到路径终止节点的所有路径数量pn(每个path_str存储pn条路径),每个路径中转发节点数量数组(即NN,NN中共有pn个元素,第i_nn个元素存储第i_nn条路径中转发节点数量,i_nn=1,2,…,pn),pn条路径顺序经过的转发节点编号数组node_array,(node_array为二维数组,node_array中共有pn个元素,每个元素为一个数组。node_array中第i_node_array个元素是存储第i_node_array条路径中转发节点编号的数组,该数组顺序存储第i_node_array条路径中转发节点编号,每个元素存储一个转发节点编号,共有NN[i_node_array]个元素,NN[i_node_array]表示第i_node_array条路径中转发节点数量)。路径计算模块将计算出的传输路径数组path_array发送给传输控制模块。
传输控制模块与初始化模块、路径计算模块、带宽数据接收模块和传输代理模块相连。从初始化模块接收N和ip_array,从带宽数据接收BN和netband_array,从路径计算模块接收path_array,从传输代理模块接收传输带宽需求req_str。传输控制模块根据N,BN,netband_array,path_array计算满足req_str需求的传输路径,并将计算结果存入传输路径信息数据pathinfo,pathinfo包含2个域:传输路径上所有转发节点的数量(即pin,为正整数),传输路径上顺序经历的转发节点的IP地址数组pinIP_array(pinIP_array中每个元素存储一个转发节点的IP地址,共有pin个元素)。传输控制模块将pathinfo发送给传输代理模块。
传输代理模块与传输控制模块和外部网络应用(即用网络传输数据的应用程序)相连。传输代理模块维护一个传输路径信息链表flow_path_list,链表中每个元素的数据结构为网络流传输路径数据结构flow_path_str,flow_path_str存储一个正在传输的网络流的路径信息,flow_path_str包含7个域:网络流最近传输报文的时间(即flow_t)、网络流的源IP(即flow_sip)、网络流的目的IP(即flow_dip)、网络流的源端口(即flow_sport)、网络流的目的端口(即flow_dport)、网络流传输路径中节点数量(即flow_nn)、网络流传输路径节点IP数组(即flow_ip_array)。传输代理模块从外部网络应用接收网络流传输带宽需求,并将网络应用对网络流传输带宽需求存储于传输带宽需求数据结构req_str,req_str包含5个域:网络流源节点IP地址(即sip),网络流目的节点IP地址(即dip),网络应用的网络流源端口(即sport),网络应用的网络流目的端口(即dport),网络流传输带宽需求(即minBand)。传输代理模块将req_str发送给传输控制模块,然后从传输控制模块接收pathinfo,根据pathinfo构建flow_path_str,并将flow_path_str加入flow_path_list。同时,传输代理模块从外部网络应用接收要传输的网络报文,根据网络报文的源IP、目的IP、源端口、目的端口信息从flow_path_list中查找对应网络流传输路径数据,并根据网络流传输路径数据中的传输节点IP数组为网络报文封装SRv6报文头,将封装了SRv6报文头的网络报文(因为网络会根据SRv6报文头中封装的IP地址依序经由传输路径中的转发节点传输,而该路径是传输控制模块从网络所有路径中找出的能够满足传输带宽要求的路径,所以封装了SRv6报文头的网络报文是满足传输带宽需求的报文)发送至外部网络应用。
第二步,初始化配置文件,方法是:
根据使用本发明的应用网络的网络拓扑,统计网络中转发节点的数量N,并将N写入配置文件;根据使用本发明的应用网络中每个转发节点的IP地址以及对应每个转发节点对应网络拓扑中的编号,分别将N个转发节点的编号和对应IP地址写入配置文件。
第三步,初始化模块对带宽保证网络传输控制系统进行初始化,方法是:
3.1从配置文件读取N,按照顺序读取N个转发节点的编号和IP地址。
3.2初始化ip_array,即将N个转发节点的编号和IP地址分别存入ip_array的N个元素中。
3.3将N发送给拓扑计算模块。
3.4将N和ip_array发送给传输控制模块。
第四步,带宽保证网络传输控制系统的带宽数据接收模块、拓扑计算模块、路径计算模块、传输控制模块和M个网络应用节点上的传输代理模块并行配合工作,对网络报文传输进行带宽保证传输控制,
方法是:带宽数据接收模块按照4.1所述流程监听外部带宽测量系统,从外部带宽测量系统接收网络带宽数据,将接收的BN个网络带宽数据存入带宽数据数组netband_array,并将BN和netband_array发送给拓扑计算模块和传输控制模块;同时,拓扑计算模块按照4.2所述流程从初始化模块接收N,从带宽数据接收模块接收BN和netband_array,计算邻接表数组topo_array,将N和topo_array发送给路径计算模块;同时,路径计算模块按照4.3所述流程从拓扑计算模块接收N和topo_array,根据topo_array计算网络中任意两个转发节点间的所有路径,将任意两个转发节点间的所有路径存入传输路径数组path_array,将path_array发送给传输控制模块;同时,传输控制模块按照4.4所述流程从初始化模块接收N和ip_array,从路径计算模块接收path_array,从带宽数据接收模块接收netband_array及BN,从传输代理模块接收req_str,根据netband_array和req_str计算出满足网络带宽要求的路径,构建传输路径信息数据pathinfo,将计算出的路径存入pathinfo,将pathinfo发送给传输代理模块;同时,M个网络应用节点上的传输代理模块按照4.5所述流程从外部网络应用接收需要网络带宽保证传输控制的网络流的源IP地址和目的IP地址,以及所需网络带宽最小值minBand,将接收数据存入req_str,将req_str发送给传输控制模块,从传输控制模块接收pathinfo,利用pathinfo为网络流中的每个报文封装SRv6报文头,将封装了SRv6报文头的网络报文发送至外部网络应用,实现对网络报文传输的带宽保证。
4.1带宽数据接收模块按4.1.1-4.1.4所述方法接收数据并进行转发:
4.1.1带宽数据接收模块监听外部带宽测量系统,如果有网络带宽数据到达,转步骤4.1.2,否则转4.1.1继续监听。
4.1.2带宽数据接收模块从外部带宽测量系统接收网络带宽数据的个数以及网络带宽数据(以所述带宽数据的格式),并发送给拓扑计算模块和传输控制模块。方法是:
4.1.2.1接收网络带宽数据个数BN。
4.1.2.2初始化网络带宽数据数组netband_array为空。
4.1.2.3依序接收BN个网络带宽数据,将这BN个网络带宽数据存入netband_array,方法是:
4.1.2.3.1令n=1;
4.1.2.3.2将第n个网络带宽数据所在网络链路的起始节点编号存放到netband_array[n-1]的start_id,将第n个网络带宽数据所在网络链路的终止节点编号存放到netband_array[n-1]的end_id,将第n个网络带宽数据所在网络链路的带宽存放到netband_array[n-1]的band。netband_array[n-1]netband_array表示的第n个元素,一般数组的元素序号是从0开始,netband_array中元素的序号为0~BN-1。
4.1.2.3.3令n=n+1;若n≤BN,转4.1.2.3.2,若n>BN,转4.1.2.4。
4.1.2.4将BN和netband_array发送给拓扑计算模块和传输控制模块。
4.1.2.5转步骤4.1.1。
4.2拓扑计算模块按照4.2.1-4.2.6所述方法计算网络拓扑:
4.2.1拓扑计算模块从初始化模块接收转发节点数量N。
4.2.2拓扑计算模块监听带宽数据接收模块,当有带宽数据到达时,转步骤4.2.3,否则转4.2.2继续监听。
4.2.3接收网络带宽数据数组netband_array以及数组中元素个数BN。
4.2.4构建含有N个元素的到达网络拓扑数据数组topo_array,初始化topo_array中所有元素的每一个域的值为0。
4.2.5拓扑计算模块根据netband_array计算网络拓扑,并将网络拓扑存入网络拓扑数据数组topo_array。topo_array中第i个元素topo_array[i]记录了网络中与节点i链接的所有节点信息。方法是:
4.2.5.1定义循环变量i、j,令i=0。
4.2.5.2令j=0。
4.2.5.3如果netband_array[j].start_id=i,说明netband_array[j]表示的链路是从节点i开始的,则令:
topo_array[i].nid=netband_array[j].start_id;
topo_array[i].id_array[topo_array[i].an]=netband_array[j].end_id;
topo_array[i].an=topo_array[i].an+1;
其中topo_array[i].id_array[topo_array[i].an]表示与节点i有链接的第an个节点的编号。转步骤4.2.5.4;
否则直接转步骤4.2.5.。
4.2.5.4令j=j+1,如果j<BN,转4.2.5.3,否则转步骤4.2.5.5。
4.2.5.5令i=i+1,如果i<N,转步骤4.2.5.2,否则转步骤4.2.6。
4.2.6将N和topo_array发送给路径计算模块,转步骤4.2.2。
4.3路径计算模块按照4.3.1-4.3.8所述方法计算网络中任意两个转发节点间的所有路径:
4.3.1监听拓扑计算模块,如果有topo_array到达,转步骤4.3.2,否则转4.3.1继续监听。
4.3.2从拓扑计算模块接收N和topo_array,构建含有(N-1)×N/2个元素的传输路径数组path_array,将path_array中所有元素的每一个域的值初始化为0。
4.3.3定义循环变量ii、jj、k,令ii=0,k=0。
4.3.4令jj=ii+1,如果jj≤N,转步骤4.3.5,否则转步骤4.3.7。
4.3.5计算编号为ii的转发节点和编号为jj的转发节点之间的所有路径。方法是:使用深度优先遍历算法计算编号为i和编号为j的转发节点之间所有路径,算法输入为ii、jj和topo_array,算法输出为路径path_str_ii_jj,path_str_ii_jj的数据结构与path_str相同。
4.3.6将计算出的路径path_str_ii_jj添加到传输路径数组中。方法是:将path_str_ii_jj复制到path_array[k]中,path_array[k]表示path_array的第k个元素。
4.3.7令k=k+1,转步骤4.3.4。
4.3.8令ii=ii+1,如果ii≤N,转步骤4.3.4,否则转步骤4.3.9。
4.3.9将传输路径数组path_array发送给传输控制模块,转步骤4.3.1
4.4传输控制模块按照4.4.1-4.4.7所述方法计算出满足网络带宽需求的路径:
4.4.1传输控制模块从初始化模块接收N、ip_array,初始化netband_array和path_array为空。
4.4.2传输控制模块监听带宽数据接收模块、路径计算模块和传输代理模块,当有netband_array到达时转步骤4.4.3,当有path_array到达时转步骤4.4.4,当有网络带宽需求数据req_str到达时转步骤4.4.5,否则转4.4.2继续监听。
4.4.3从带宽数据接收模块接收netband_array及数组元素个数BN,转步骤4.4.2。
4.4.4从路径计算模块接收传输路径数据数组path_array,转步骤4.4.2。
4.4.5从传输代理模块接收网络带宽需求数据req_str。
4.4.6传输控制模块判断netband_array和path_array是否为空,如果为空则转步骤4.4.2;否则转步骤4.4.7;
4.4.7传输控制模块根据netband_array和req_str从path_array中计算出满足网络带宽需求的路径,将满足网络带宽需求的路径存入传输路径信息pathinfo,将pathinfo发送给传输代理模块。方法是:
4.4.7.1计算req_str中传输控制起始节点的编号req_sid,方法是:在数组ip_array中找出与req_str.sip相等的元素,该元素编号即为传输控制起始节点的编号。
4.4.7.2计算req_str中传输控制终止节点的编号req_did,方法是:在数组ip_array中找出与req_str.dip相等的元素,该元素编号即为传输控制终止节点的编号。
4.4.7.3遍历path_array,找出path_array中域sid等于req_sid并且域did等于req_did的元素,令找出的元素编号为path_id_req。
4.4.7.4遍历节点req_sid和节点req_did之间的所有路径,定义循环变量i2,j2,令i2=0。
4.4.7.5计算第i2个路径能够传输流量的最大带宽(即第i2个路径上各个链路可传输带宽中的最小值)。定义传输带宽变量path_band用以记录第i2个路径上各个链路可传输带宽中的最小值,将path_band初始化为一个足够大的值(优选为1000000000),令j2=0。
4.4.7.6令:
j2_start_id=path_array[path_id_req].node_array[i2][j2];
j2_end_id=path_array[path_id_req].node_array[i2][j2+1];
4.4.7.7遍历netband_array,找出netband_array中域start_id等于j2_start_id并且域end_id等于j2_end_id的元素,令其编号为j2_netband_array。
4.4.7.8如果netband_array[j2_netband_array].band<path_band,说明第i2个路径上第j2个链路的可传输带宽小于path_band,令:
path_band=netband_array[j2_netband_array].band。
4.4.7.9令j2=j2+1,如果j2≤path_array[path_id_req].NN[i2]-1,说明第i2个路径上还有链路没有遍历完,转步骤4.4.7.6,否则,转步骤4.4.7.10。
4.4.7.10判断path_band≥req_str.minBand是否成立;如果成立,说明第i2个路径可传输流量最大带宽大于流量传输要求的带宽(即第i2个路径满足传输带宽需求),转步骤4.4.7.12,否则转步骤4.4.7.11。
4.4.7.11令i2=i2+1,如果i2≤path_array[path_id_req].pn,说明传输路径数据中还有路径没有计算完,转步骤4.4.7.5继续计算,否则转步骤4.4.7.12。
4.4.7.12构建传输路径信息pathinfo,令pathinfo.pin=path_array[path_id_req].NN[i2]。
4.4.7.13令j2=0。
4.4.7.14为pathinfo的第j2个节点的IP地址赋值,令pathinfo.pinIP_array[j2]=ip_array[path_array[path_id_req].node_array[i2][j2]]。其中path_array[path_id_req].node_array[i2][j2]表示节点req_sid和节点req_did(见4.4.7.3中path_id_req的计算)之间的所有路径中的第i2个路径的第j2个节点的IP地址。
4.4.7.15令j2=j2+1,如果j2≤path_array[path_id_req].nn[i2],转步骤4.4.7.14,否则转步骤4.4.7.16。
4.4.7.16将pathinfo发送给传输代理模块,转步骤4.4.2。
4.5网络应用节点1,…,网络应用节点m,…,网络应用节点M上的传输代理模块并行按照4.5.1-4.5.14所述方法利用pathinfo为网络流中的每个报文封装SRv6报文头,将封装了SRv6报文头的网络报文发送至外部网络应用,实现对整个网络流的带宽保证传输,1≤m≤M,方法是:
4.5.1构建传输路径信息链表flow_path_list并初始化为空。
4.5.2监听外部网络应用,如果有传输带宽数据需求到达,转步骤4.5.3;如果有网络报文到达,转步骤4.5.9;否则转4.5.2继续监听。
4.5.3从外部网络应用接收传输带宽需求数据,包括flow_sip,flow_dip,flow_sport,flow_dport,flow_band。
4.5.4构建传输带宽需求数据结构req_str,将传输带宽需求数据存入req_str,令:
req_str.sip=flow_sip;
req_str.dip=flow_dip;
req_str.sport=flow_sport;
req_str.dport=flow_dport;
req_str.minband=flow_band;
将req_str发送给传输控制模块。
4.5.5从传输控制模块接收路径信息pathinfo。
4.5.6构建网络流传输路径数据结构flow_path_str,获取系统当前时间t_current。
4.5.7利用传输带宽需求和路径信息为网络流传输路径数据结构flow_path_str赋值。方法是,令:
flow_path_str.flow_t=t_current;
flow_path_str.flow_sip=req_str.sip;
flow_path_str.flow_dip=req_str.dip;
flow_path_str.flow_sport=req_str.sport;
flow_path_str.flow_dport=req_str.dport;
flow_path_str.flow_nn=pathinfo.pin;
将数组pathinfo.pinIP_array中的pathinfo.pin个元素按顺序复制到flow_path_str.flow_ip_array中。
4.5.8将网络流传输路径数据flow_path_str加入到传输路径信息链表flow_path_list中。转步骤4.5.2。
4.5.9从外部网络应用接收要传输的网络报文pkt。
4.5.10提取网络报文pkt的源IP地址pkt_sip、目的IP地址pkt_dip、源端口pkt_sport、目的端口pkt_dport。
4.5.11遍历传输路径信息链表flow_path_list,从中找出满足如下条件的元素flow_path_pkt:域网络流的源IP值与pkt_sip相等,并且域网络流的目的IP值与pkt_dip相等,并且域网络流源端口值与pkt_sport相等,并且域网络流目的端口值与pkt_dport相等。如果找到,转步骤4.5.12,如果没有找到,转步骤4.5.13。
4.5.12顺序利用数组flow_path_pkt.flow_ip_array中的IP地址,根据SRH规范为网络报文封装SRv6报文头(SRv6报文头中只有IPv6地址列表是不确定的,其他字段都是确定的或者与IPv6地址列表相关的,即只要确定了IPv6地址列表即可确定SRv6报文头。),并将封装后的报文发送至网络(网络收到报文后,会根据SRv6报文头逐跳转发,实现了利用SRv6路由转发机制控制网络流每个报文按照计算出的路径传输)。转步骤4.5.2。
4.5.13将网络报文pkt发送至网络。转步骤4.5.2。
Claims (7)
1.一种基于SRv6和带宽测量的带宽保证网络传输方法,其特征在于包括以下步骤:
第一步,构建带宽保证网络传输控制系统,带宽保证网络传输控制系统由一个网络控制节点、M个网络应用节点组成;网络控制节点是服务器,其上安装有配置文件、初始化模块、拓扑计算模块、路径计算模块、传输控制模块、带宽数据接收模块;网络应用节点是服务器或者终端,其上安装有传输代理模块;
配置文件存储网络报文时延确定性传输控制系统运行所需的参数,包括网络中转发节点数量N,N个转发节点的编号及IP地址;N为正整数,且N≥3;
初始化模块与配置文件、路径计算模块、传输控制模块、传输代理模块相连;初始化模块从配置文件读取网络中转发节点数量N,按照顺序分别从配置文件中读取N个转发节点的编号及IP地址,将转发节点IP地址存入IP地址数组ip_array;ip_array共有N个元素,每个元素有两个域,一个域为序号,存储一个转发节点的编号,另一个域为值,存储相应编号转发节点的IP地址;初始化模块将N发送给拓扑计算模块,将N和ip_array发送给传输控制模块;
带宽数据接收模块与拓扑计算模块、传输控制模块和外部带宽测量系统相连;带宽数据接收模块监听外部带宽测量系统,从外部带宽测量系统接收网络带宽数据;网络带宽数据由网络带宽数据数组netband_array以及带宽数据个数BN组成;netband_array中共有BN个元素,每个元素存储一个带宽数据;每个带宽数据包括3个域:该数据所在网络链路的起始节点编号start_id,所在网络链路的终止节点编号end_id,所在网络链路的带宽band;带宽数据接收模块将BN和netband_array分别发送给拓扑计算模块和传输控制模块;
拓扑计算模块与初始化模块、带宽数据接收模块和路径计算模块相连;拓扑计算模块从初始化模块接收网络中转发节点数量N,从带宽数据接收模块接收网络带宽数据个数BN和网络带宽数据数组netband_array,根据N、BN和netband_array计算网络拓扑数据;网络拓扑数据由邻接表数组topo_array组成,topo_array中共有N个元素,每个元素存储一个邻接表数据;邻接表数据包括3个域:该邻接表代表的转发节点编号nid,与编号为nid的转发节点直接相连的转发节点个数an,与编号为nid的转发节点直接相连的转发节点编号数组id_array,id_arrray中每个元素存储与编号为nid的转发节点直接相连的一个转发节点的编号,共有an个元素,an为正整数;拓扑计算模块将N和topo_array发送给路径计算模块;
路径计算模块与拓扑计算模块和传输控制模块相连;路径计算模块从拓扑计算模块接收网络拓扑数据topo_array和N,根据N和topo_array计算网络中任意两个转发节点之间的所有传输路径,并存储于传输路径数组path_array中,path_array中共有N×(N-1)/2个元素,每个元素的数据结构为path_str,path_str存储多条路径,path_str包含4个域:路径起始节点编号sid,路径终止节点编号did,从路径起始节点到路径终止节点的所有路径数量pn,每个路径中转发节点数量数组NN,NN中共有pn个元素,第i_nn个元素存储第i_nn条路径中转发节点数量,i_nn=1,2,…,pn,pn条路径顺序经过的转发节点编号数组node_array,node_array为二维数组,node_array中共有pn个元素,每个元素为一个数组;node_array中第i_node_array个元素是存储第i_node_array条路径中转发节点编号的数组,该数组顺序存储第i_node_array条路径中转发节点编号,每个元素存储一个转发节点编号,共有NN[i_node_array]个元素,NN[i_node_array]表示第i_node_array条路径中转发节点数量;路径计算模块将计算出的传输路径数组path_array发送给传输控制模块;
传输控制模块与初始化模块、路径计算模块、带宽数据接收模块和传输代理模块相连;从初始化模块接收N和ip_array,从带宽数据接收BN和netband_array,从路径计算模块接收path_array,从传输代理模块接收传输带宽需求req_str;传输控制模块根据N,BN,netband_array,path_array计算满足req_str需求的传输路径,并将计算结果存入传输路径信息数据pathinfo,pathinfo包含2个域:传输路径上所有转发节点的数量pin,pin为正整数,传输路径上顺序经历的转发节点的IP地址数组pinIP_array,pinIP_array中每个元素存储一个转发节点的IP地址,共有pin个元素;传输控制模块将pathinfo发送给传输代理模块;
传输代理模块与传输控制模块和外部网络应用相连;传输代理模块维护一个传输路径信息链表flow_path_list,链表中每个元素的数据结构为网络流传输路径数据结构flow_path_str,flow_path_str存储一个正在传输的网络流的路径信息,flow_path_str包含7个域:网络流最近传输报文的时间即flow_t、网络流的源IP即flow_sip、网络流的目的IP即flow_dip、网络流的源端口即flow_sport、网络流的目的端口即flow_dport、网络流传输路径中节点数量即flow_nn、网络流传输路径节点IP数组即flow_ip_array;传输代理模块从外部网络应用接收网络流传输带宽需求,并将网络应用对网络流传输带宽需求存储于传输带宽需求数据结构req_str,req_str包含5个域:网络流源节点IP地址即sip,网络流目的节点IP地址即dip,网络应用的网络流源端口即sport,网络应用的网络流目的端口即dport,网络流传输带宽需求即minBand;传输代理模块将req_str发送给传输控制模块,然后从传输控制模块接收pathinfo,根据pathinfo构建flow_path_str,并将flow_path_str加入flow_path_list;同时,传输代理模块从外部网络应用接收要传输的网络报文,根据网络报文的源IP、目的IP、源端口、目的端口信息从flow_path_list中查找对应网络流传输路径数据,并根据网络流传输路径数据中的传输节点IP数组为网络报文封装SRv6报文头,将封装了SRv6报文头的网络报文发送至外部网络应用;
第二步,初始化配置文件,方法是:
根据应用网络的网络拓扑,统计网络中转发节点的数量N,并将N写入配置文件;根据使用本发明的应用网络中每个转发节点的IP地址以及对应每个转发节点对应网络拓扑中的编号,分别将N个转发节点的编号和对应IP地址写入配置文件;
第三步,初始化模块对带宽保证网络传输控制系统进行初始化,方法是:
3.1从配置文件读取N,按照顺序读取N个转发节点的编号和IP地址;
3.2初始化ip_array,即将N个转发节点的编号和IP地址分别存入ip_array的N个元素中;
3.3将N发送给拓扑计算模块;
3.4将N和ip_array发送给传输控制模块;
第四步,带宽保证网络传输控制系统的带宽数据接收模块、拓扑计算模块、路径计算模块、传输控制模块和M个网络应用节点上的传输代理模块并行配合工作,对网络报文传输进行带宽保证传输控制,方法是:带宽数据接收模块按照4.1所述流程监听外部带宽测量系统,从外部带宽测量系统接收网络带宽数据,将接收的BN个网络带宽数据存入带宽数据数组netband_array,并将BN和netband_array发送给拓扑计算模块和传输控制模块;同时,拓扑计算模块按照4.2所述流程从初始化模块接收N,从带宽数据接收模块接收BN和netband_array,计算邻接表数组topo_array,将N和topo_array发送给路径计算模块;同时,路径计算模块按照4.3所述流程从拓扑计算模块接收N和topo_array,根据topo_array计算网络中任意两个转发节点间的所有路径,将任意两个转发节点间的所有路径存入传输路径数组path_array,将path_array发送给传输控制模块;同时,传输控制模块按照4.4所述流程从初始化模块接收N和ip_array,从路径计算模块接收path_array,从带宽数据接收模块接收netband_array及BN,从传输代理模块接收req_str,根据netband_array和req_str计算出满足网络带宽要求的路径,构建传输路径信息数据pathinfo,将计算出的路径存入pathinfo,将pathinfo发送给传输代理模块;同时,M个网络应用节点上的传输代理模块按照4.5所述流程从外部网络应用接收需要网络带宽保证传输控制的网络流的源IP地址和目的IP地址,以及所需网络带宽最小值minBand,将接收数据存入req_str,将req_str发送给传输控制模块,从传输控制模块接收pathinfo,利用pathinfo为网络流中的每个报文封装SRv6报文头,将封装了SRv6报文头的网络报文发送至外部网络应用,实现对网络报文传输的带宽保证;
4.1带宽数据接收模块按4.1.1-4.1.4所述方法接收数据并进行转发:
4.1.1带宽数据接收模块监听外部带宽测量系统,如果有网络带宽数据到达,转步骤4.1.2,否则转4.1.1继续监听;
4.1.2带宽数据接收模块从外部带宽测量系统接收网络带宽数据的个数以及网络带宽数据,并发送给拓扑计算模块和传输控制模块;方法是:
4.1.2.1接收网络带宽数据个数BN;
4.1.2.2初始化网络带宽数据数组netband_array为空;
4.1.2.3依序接收BN个网络带宽数据,将这BN个网络带宽数据存入netband_array;
4.1.2.4将BN和netband_array发送给拓扑计算模块和传输控制模块;
4.1.2.5转步骤4.1.1;
4.2拓扑计算模块按照4.2.1-4.2.6所述方法计算网络拓扑:
4.2.1拓扑计算模块从初始化模块接收转发节点数量N;
4.2.2拓扑计算模块监听带宽数据接收模块,当有带宽数据到达时,转步骤4.2.3,否则转4.2.2继续监听;
4.2.3接收网络带宽数据数组netband_array以及数组中元素个数BN;
4.2.4构建含有N个元素的到达网络拓扑数据数组topo_array,初始化topo_array中所有元素的每一个域的值为0;
4.2.5拓扑计算模块根据netband_array计算网络拓扑,并将网络拓扑存入网络拓扑数据数组topo_array;topo_array中第i个元素topo_array[i]记录网络中与节点i链接的所有节点信息;
4.2.6将N和topo_array发送给路径计算模块,转步骤4.2.2;
4.3路径计算模块按照4.3.1-4.3.8所述方法计算网络中任意两个转发节点间的所有路径:
4.3.1监听拓扑计算模块,如果有topo_array到达,转步骤4.3.2,否则转4.3.1继续监听;
4.3.2从拓扑计算模块接收N和topo_array,构建含有(N-1)×N/2个元素的传输路径数组path_array,将path_array中所有元素的每一个域的值初始化为0;
4.3.3定义循环变量ii、jj、k,令ii=0,k=0;
4.3.4令jj=ii+1,如果jj≤N,转步骤4.3.5,否则转步骤4.3.7;
4.3.5计算编号为ii的转发节点和编号为jj的转发节点之间的所有路径;方法是:使用深度优先遍历算法计算编号为i和编号为j的转发节点之间所有路径,算法输入为ii、jj和topo_array,算法输出为路径path_str_ii_jj,path_str_ii_jj的数据结构与path_str相同;
4.3.6将计算出的路径path_str_ii_jj添加到传输路径数组中;方法是:将path_str_ii_jj复制到path_array[k]中,path_array[k]表示path_array的第k个元素;
4.3.7令k=k+1,转步骤4.3.4;
4.3.8令ii=ii+1,如果ii≤N,转步骤4.3.4,否则转步骤4.3.9;
4.3.9将传输路径数组path_array发送给传输控制模块,转步骤4.3.1
4.4传输控制模块按照4.4.1-4.4.7所述方法计算出满足网络带宽需求的路径:
4.4.1传输控制模块从初始化模块接收N、ip_array,初始化netband_array和path_array为空;
4.4.2传输控制模块监听带宽数据接收模块、路径计算模块和传输代理模块,当有netband_array到达时转步骤4.4.3,当有path_array到达时转步骤4.4.4,当有网络带宽需求数据req_str到达时转步骤4.4.5,否则转4.4.2继续监听;
4.4.3从带宽数据接收模块接收netband_array及数组元素个数BN,转步骤4.4.2;
4.4.4从路径计算模块接收传输路径数据数组path_array,转步骤4.4.2;
4.4.5从传输代理模块接收网络带宽需求数据req_str;
4.4.6传输控制模块判断netband_array和path_array是否为空,如果为空则转步骤4.4.2;否则转步骤4.4.7;
4.4.7传输控制模块根据netband_array和req_str从path_array中计算出满足网络带宽需求的路径,将满足网络带宽需求的路径存入传输路径信息pathinfo,将pathinfo发送给传输代理模块;转步骤4.4.2;
4.5网络应用节点1,…,网络应用节点m,…,网络应用节点M上的传输代理模块并行按照4.5.1-4.5.14所述方法利用pathinfo为网络流中的每个报文封装SRv6报文头,将封装了SRv6报文头的网络报文发送至外部网络应用,实现对整个网络流的带宽保证传输,1≤m≤M,方法是:
4.5.1构建传输路径信息链表flow_path_list并初始化为空;
4.5.2监听外部网络应用,如果有传输带宽数据需求到达,转步骤4.5.3;如果有网络报文到达,转步骤4.5.9;否则转4.5.2继续监听;
4.5.3从外部网络应用接收传输带宽需求数据,包括flow_sip,flow_dip,flow_sport,flow_dport,flow_band;
4.5.4构建传输带宽需求数据结构req_str,将传输带宽需求数据存入req_str,令:
req_str.sip=flow_sip;
req_str.dip=flow_dip;
req_str.sport=flow_sport;
req_str.dport=flow_dport;
req_str.minband=flow_band;
将req_str发送给传输控制模块;
4.5.5从传输控制模块接收路径信息pathinfo;
4.5.6构建网络流传输路径数据结构flow_path_str,获取系统当前时间t_current;
4.5.7利用传输带宽需求和路径信息为网络流传输路径数据结构flow_path_str赋值;
4.5.8将网络流传输路径数据flow_path_str加入到传输路径信息链表flow_path_list中;转步骤4.5.2;
4.5.9从外部网络应用接收要传输的网络报文pkt;
4.5.10提取网络报文pkt的源IP地址pkt_sip、目的IP地址pkt_dip、源端口pkt_sport、目的端口pkt_dport;
4.5.11遍历传输路径信息链表flow_path_list,从中找出满足如下条件的元素flow_path_pkt:域网络流的源IP值与pkt_sip相等,并且域网络流的目的IP值与pkt_dip相等,并且域网络流源端口值与pkt_sport相等,并且域网络流目的端口值与pkt_dport相等;如果找到,转步骤4.5.12,如果没有找到,转步骤4.5.13;
4.5.12顺序利用数组flow_path_pkt.flow_ip_array中的IP地址,根据SRH规范为网络报文封装SRv6报文头,并将封装后的报文发送至网络;转步骤4.5.2;
4.5.13将网络报文pkt发送至网络;转步骤4.5.2。
2.如权利要求1所述的基于SRv6和带宽测量的带宽保证网络传输方法,其特征在于所述网络中任意两个转发节点之间的所有传输路径采用传输路径上顺序经过的转发节点编号来表示。
3.如权利要求1所述的基于SRv6和带宽测量的带宽保证网络传输方法,其特征在于4.1.2.3步所述依序接收BN个网络带宽数据,将这BN个网络带宽数据存入netband_array的方法是:
4.1.2.3.1令n=1;
4.1.2.3.2将第n个网络带宽数据所在网络链路的起始节点编号存放到netband_array[n-1]的start_id,将第n个网络带宽数据所在网络链路的终止节点编号存放到netband_array[n-1]的end_id,将第n个网络带宽数据所在网络链路的带宽存放到netband_array[n-1]的band;netband_array[n-1]netband_array表示的第n个元素,一般数组的元素序号是从0开始,netband_array中元素的序号为0~BN-1;
4.1.2.3.3令n=n+1;若n≤BN,转4.1.2.3.2,若n>BN,结束。
4.如权利要求1所述的基于SRv6和带宽测量的带宽保证网络传输方法,其特征在于4.2.5步所述拓扑计算模块根据netband_array计算网络拓扑,并将网络拓扑存入网络拓扑数据数组topo_array的方法是:
4.2.5.1定义循环变量i、j,令i=0;
4.2.5.2令j=0;
4.2.5.3如果netband_array[j].start_id=i,说明netband_array[j]表示的链路是从节点i开始的,令:
topo_array[i].nid=netband_array[j].start_id;
topo_array[i].id_array[topo_array[i].an]=netband_array[j].end_id;
topo_array[i].an=topo_array[i].an+1;
其中topo_array[i].id_array[topo_array[i].an]表示与节点i有链接的第an个节点的编号;转步骤4.2.5.4;
否则直接转步骤4.2.5.4;
4.2.5.4令j=j+1,如果j<BN,转4.2.5.3,否则转步骤4.2.5.5;
4.2.5.5令i=i+1,如果i<N,转步骤4.2.5.2,否则结束。
5.如权利要求1所述的基于SRv6和带宽测量的带宽保证网络传输方法,其特征在于4.4.7步所述传输控制模块根据netband_array和req_str从path_array中计算出满足网络带宽需求的路径,将满足网络带宽需求的路径存入传输路径信息pathinfo,将pathinfo发送给传输代理模块的方法是:
4.4.7.1计算req_str中传输控制起始节点的编号req_sid,方法是:在数组ip_array中找出与req_str.sip相等的元素,该元素编号即为传输控制起始节点的编号;
4.4.7.2计算req_str中传输控制终止节点的编号req_did,方法是:在数组ip_array中找出与req_str.dip相等的元素,该元素编号即为传输控制终止节点的编号;
4.4.7.3遍历path_array,找出path_array中域sid等于req_sid并且域did等于req_did的元素,令找出的元素编号为path_id_req;
4.4.7.4遍历节点req_sid和节点req_did之间的所有路径,定义循环变量i2,j2,令i2=0;
4.4.7.5计算第i2个路径能够传输流量的最大带宽即第i2个路径上各个链路可传输带宽中的最小值;定义传输带宽变量path_band用以记录第i2个路径上各个链路可传输带宽中的最小值,将path_band初始化为一个足够大的值,令j2=0;
4.4.7.6令:
j2_start_id=path_array[path_id_req].node_array[i2][j2];
j2_end_id=path_array[path_id_req].node_array[i2][j2+1];
4.4.7.7遍历netband_array,找出netband_array中域start_id等于j2_start_id并且域end_id等于j2_end_id的元素,令其编号为j2_netband_array;
4.4.7.8如果netband_array[j2_netband_array].band<path_band,令:
path_band=netband_array[j2_netband_array].band;
4.4.7.9令j2=j2+1,如果j2≤path_array[path_id_req].NN[i2]-1,转步骤4.4.7.6,否则,转步骤4.4.7.10;
4.4.7.10判断path_band≥req_str.minBand是否成立;如果成立,转步骤4.4.7.12,否则转步骤4.4.7.11;
4.4.7.11令i2=i2+1,如果i2≤path_array[path_id_req].pn,转步骤4.4.7.5继续计算,否则转步骤4.4.7.12;
4.4.7.12构建传输路径信息pathinfo,令pathinfo.pin=path_array[path_id_req].NN[i2];
4.4.7.13令j2=0;
4.4.7.14为pathinfo的第j2个节点的IP地址赋值,令pathinfo.pinIP_array[j2]=ip_array[path_array[path_id_req].node_array[i2][j2]];其中path_array[path_id_req].node_array[i2][j2]表示节点req_sid和节点req_did之间的所有路径中的第i2个路径的第j2个节点的IP地址;
4.4.7.15令j2=j2+1,如果j2≤path_array[path_id_req].nn[i2],转步骤4.4.7.14,否则转步骤4.4.7.16;
4.4.7.16将pathinfo发送给传输代理模块。
6.如权利要求5所述的基于SRv6和带宽测量的带宽保证网络传输方法,其特征在于4.4.7.5步所述path_band初始化1000000000。
7.如权利要求1所述的基于SRv6和带宽测量的带宽保证网络传输方法,其特征在于4.5.7步所述利用传输带宽需求和路径信息为网络流传输路径数据结构flow_path_str赋值的方法是,令:
flow_path_str.flow_t=t_current;
flow_path_str.flow_sip=req_str.sip;
flow_path_str.flow_dip=req_str.dip;
flow_path_str.flow_sport=req_str.sport;
flow_path_str.flow_dport=req_str.dport;
flow_path_str.flow_nn=pathinfo.pin;
将数组pathinfo.pinIP_array中的pathinfo.pin个元素按顺序复制到flow_path_str.flow_ip_array中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111250341.0A CN113923148B (zh) | 2021-10-26 | 2021-10-26 | 基于SRv6和带宽测量的带宽保证网络传输方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111250341.0A CN113923148B (zh) | 2021-10-26 | 2021-10-26 | 基于SRv6和带宽测量的带宽保证网络传输方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113923148A true CN113923148A (zh) | 2022-01-11 |
CN113923148B CN113923148B (zh) | 2022-11-22 |
Family
ID=79242992
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111250341.0A Active CN113923148B (zh) | 2021-10-26 | 2021-10-26 | 基于SRv6和带宽测量的带宽保证网络传输方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113923148B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114363196A (zh) * | 2022-01-17 | 2022-04-15 | 中国人民解放军国防科技大学 | 主动应用感知的网络服务质量保障方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110971433A (zh) * | 2018-09-29 | 2020-04-07 | 华为技术有限公司 | 获取SRv6隧道信息的方法、设备和系统 |
CN111049859A (zh) * | 2019-12-27 | 2020-04-21 | 东南大学 | 一种基于拓扑分析的攻击流量分流和阻断方法 |
CN111478854A (zh) * | 2020-04-01 | 2020-07-31 | 中国人民解放军国防科技大学 | 基于流量数据的实时网络节点重要性排序方法 |
CN113014485A (zh) * | 2021-02-25 | 2021-06-22 | 烽火通信科技股份有限公司 | 一种基于SRv6-TE路径的报文转发方法和报文转发装置 |
-
2021
- 2021-10-26 CN CN202111250341.0A patent/CN113923148B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110971433A (zh) * | 2018-09-29 | 2020-04-07 | 华为技术有限公司 | 获取SRv6隧道信息的方法、设备和系统 |
CN111049859A (zh) * | 2019-12-27 | 2020-04-21 | 东南大学 | 一种基于拓扑分析的攻击流量分流和阻断方法 |
CN111478854A (zh) * | 2020-04-01 | 2020-07-31 | 中国人民解放军国防科技大学 | 基于流量数据的实时网络节点重要性排序方法 |
CN113014485A (zh) * | 2021-02-25 | 2021-06-22 | 烽火通信科技股份有限公司 | 一种基于SRv6-TE路径的报文转发方法和报文转发装置 |
Non-Patent Citations (2)
Title |
---|
WEIQIANG CHENG: "G-SID:SRv6 Header Compression Solution", 《IEEE》 * |
张磊,耿子炜,王奇文: "基于SDN的SRv6 TE在新型城域网中的探索", 《网络安全和信息化》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114363196A (zh) * | 2022-01-17 | 2022-04-15 | 中国人民解放军国防科技大学 | 主动应用感知的网络服务质量保障方法 |
CN114363196B (zh) * | 2022-01-17 | 2023-09-19 | 中国人民解放军国防科技大学 | 主动应用感知的网络服务质量保障方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113923148B (zh) | 2022-11-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Yu et al. | Traffic statistics and performance evaluation in optical burst switched networks | |
US7636781B2 (en) | System and method for realizing the resource distribution in the communication network | |
US6633585B1 (en) | Enhanced flow control in ATM edge switches | |
Liu et al. | Towards large-scale deterministic IP networks | |
CN113676550B (zh) | 基于SRv6和网络测量的网络报文时延确定性传输方法 | |
CN102638409A (zh) | 基于转发和控制分离网络件架构内通道间的流量控制方法 | |
Detti et al. | Supporting RSVP in a differentiated service domain: an architectural framework and a scalability analysis | |
CN113923148B (zh) | 基于SRv6和带宽测量的带宽保证网络传输方法 | |
Saad et al. | Optimal network rate allocation under end-to-end quality-of-service requirements | |
US7804779B2 (en) | Method and device for remotely controlling the congestion of meshed flow in a packet mode telecommunication network | |
Olabisi et al. | A comparative analysis of latency, jitter and bandwidth of ipv6 packets using flow labels in open flow switch in software defined network | |
Liu et al. | PPO-based reliable concurrent transmission control for telemedicine real-time services | |
Suhaimy et al. | Analysis of MPLS-TP network for different applications | |
Thazin et al. | Resource allocation scheme for SDN-based cloud data center network | |
Grežo et al. | Network traffic measurement and management in software defined networks | |
Akyıldız et al. | Joint server and route selection in SDN networks | |
Rodrigues et al. | Performance analysis of a LAN/WAN bridging architecture | |
Goyal et al. | LBASMPL: Load balancing adaptive scheduling with minimum packet loss in Wireless Mesh Network | |
Huang et al. | CSQF-based Time-Sensitive Flow Scheduling in Long-distance Industrial IoT Networks | |
Shajahan et al. | Congestion Controller for best effort networks using Fuzzy Inference System | |
Diwan et al. | Optimal per-node rate allocation to provide per-flow end-to-end delay guarantees in a network of routers supporting guaranteed service class | |
Yabusaki et al. | Network management for higher-bandwidth-use efficiency by optimizing paths in virtual networks | |
Ghazel et al. | Dimensioning of NGN Main Components with Improved and Guaranteed Quality of Service | |
Li et al. | Schedulability criterion and performance analysis of coordinated schedulers | |
Orman et al. | Increasing Quality of Services with Priority Active Package Management |
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 |