一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

主动应用感知的网络服务质量保障方法

2022-04-16 16:21:06 来源:中国专利 TAG:


1.本发明属于计算机网络技术领域,尤其涉及一种主动应用感知的网络服务质量保障方法。


背景技术:

2.随着云计算、移动互联网等技术的发展,互联网规模日益扩大,互联网上的应用的类型和数量呈现爆发式增长。不同类型的应用对底层网络传输在带宽、时延、抖动等方面需求各不相同。当前互联网架构为分层设计,底层网络无法感知上层应用的传输需求,因此难以为应用提供相应的服务质量(qos,quality of service)保障。
3.为使网络能够为应用提供服务质量保障,需要网络能够同时感知应用类型、应用服务质量并能够实时准确的实施流量工程,控制应用流量按需传输。
4.现有部分针对应用感知的研究,并没有将应用的服务需求与网络服务质量保障结合起来。如西安交通大学曲桦等(参见曲桦,赵季红,冯富静,陈梁骏.一种基于软件定义和用户中心网络的应用感知系统及其方法:中国专利,授权公告号cn 108092920 b,2020年6月19日)针对5g移动通信网络中应用感知问题基于软件定义和用户中心网络提出一种分层的应用感知方法,可实现对每个用户的应用感知,但是对于应用感知结果的使用并没有进一步的研究。北京邮电大学周文安等(参见周文安,林立霞,葛维春,张东龙,胡大帅,李树阳,罗桓桓,周桂平,张锐,邓伟,郭栋.一种基于应用感知确保业务公平性的带宽分配方法和系统:中国专利,授权公告号cn 108881067 b,2020年11月6日)针对光网络带宽分配问题,根据用户对终端业务的满意度以及光网络单元的负载状态,根据效用函数以效用最大最小原则计算光网络单元带宽并进行分配,实现带宽分配的公平。该发明中的应用感知主要是对用户终端业务满意度的感知,并非具体应用类型的感知,带宽分配依据的是设计的效用函数而非应用的实际服务质量需求。
5.目前关于应用需求与网络服务质量结合的研究主要为基于ipv6的应用感知网络apn6,但是apn6需要应用将网络服务需求封装在网络报文中,属于应用主动、网络被动,实施中对应用要求很高,无法兼容现有的应用。如清华大学何林等(参见何林,况鹏,王士诚,等.基于"ipv6 "的应用感知网络(apn6)[j].2021(2020-8):36-42.)提出一个基于ipv6的应用感知网络框架——apn6,通过将应用的需求信息封装在数据分组中,使网络能感知应用及其需求,便于网络进行流量调度和资源调整。华为技术公司李呈等(参见c.li,j.mao,s.peng,y.xia,z.hu and z.li,"application-aware g-srv6 network enabling5g services,"(应用感知g-srv6网络使能5g服务)ieee infocom 2021-ieee conference on computer communications workshops(infocom wkshps),2021,pp.1-2,doi:10.1109/infocomwkshps51825.2021.9484608.)基于g-srv6技术提出支持5g服务的应用感知网络,但是该方案同样需要应用将需求信息封装至网络报文中,面临着与现有应用不兼容的问题。
[0006]
部分研究利用sdn技术实现流量工程的实施。如北京邮电大学王敬宇等(参见王敬宇,王晶,戚琦,孙海峰,徐军.基于深度学习实现应用感知的sdn网络资源调度方法:中国专
利,授权公告号cn 108881028 b,2020年6月26日)面向物联网场景,在sdn网络架构中通过深度学习方法实现对流量的应用识别,根据识别结果通过sdn控制器实现网络资源调度。该发明实现了从应用感知到网络资源调度,但是由于通过sdn技术实现,sdn控制器需要频繁与交换设备交互,下发路由转发表,影响网络的实时性和可靠性。
[0007]
上述研究,要么没有将应用感知与应用服务质量保障结合起来,要么需要应用将网络服务需求插入网络报文、对应用要求高,要么流量工程实施时对网络运行产生一定的影响。如何在应用无感、网络无感的情况下实现对应用的网络服务质量保障是本领域技术人员极为关注的问题。


技术实现要素:

[0008]
本发明要解决的技术问题是在应用无感、网络无感的情况下,如何实现对应用的网络服务质量保障的问题。
[0009]
技术方案是:基于现有的应用识别技术实现对应用类型的主动感知,实现对应用服务质量的主动感知,利用网络测量数据计算网络中满足应用服务质量需求的路径,基于srv6技术控制应用的网络流按照计算出的路径传输,实现对应用的网络服务质量保障。
[0010]
本发明具体包括以下步骤:
[0011]
第一步,构建主动应用感知网络服务质量保障系统:
[0012]
主动应用感知网络服务质量保障系统由配置文件,初始化模块,应用感知模块,服务质量感知模块,路径优化模块,传输控制模块组成。
[0013]
配置文件存储主动应用感知网络服务质量保障系统运行所需参数,包括网络应用传输失效时间t(t为正整数,单位为秒),网络中转发节点(即网络中转发报文的节点)数量n(n为正整数,且n≥3),n个网络转发节点的编号及ip地址,网络应用个数an,每个网络应用的名称及服务质量需求。
[0014]
初始化模块与配置文件、应用感知模块、服务质量感知模块、路径优化模块和传输控制模块相连。初始化模块从配置文件读取网络中转发节点数量n、网络应用传输失效时间t,按照顺序分别从配置文件中读取n个网络转发节点的编号及ip地址,将网络转发节点ip地址存入ip地址数组ip_array,ip_array共有n个元素,每个元素有两个域,一个域为网络转发节点的编号(即device_id),另一个域为相应编号的网络转发节点的ip地址(即device_ip);从配置文件读取网络应用个数an,按照顺序分别从配置文件中读取an个网络应用的名称及服务质量需求,将网络应用的名称及服务质量需求存入服务质量数据数组app_sla_array,app_sla_array共有an个元素,每个元素有两个域,一个域为网络应用的名称(即app_name),另一个域为相应名称网络应用的服务质量需求(即app_band)。初始化模块将an和app_sla_array发送给服务质量感知模块,将n和ip_array发送给路径优化模块,将t发送给应用感知模块和传输控制模块。
[0015]
应用感知模块与初始化模块、服务质量感知模块相连,并通过网络分流器(一种网络设备,用于复制网络流量)与外部网络相连。应用感知模块内部维护应用识别结果链表appid_list,链表中每个元素为应用识别结果数据appid_str,appid_str包括7个域:网络应用的名称(即app_name),网络应用所在流最新报文到达时间(即app_time),网络应用所在流的源ip(即app_sip),网络应用所在流的目的ip(即app_dip),网络应用所在流的源端
口(即app_sport),网络应用所在流的目的端口(即app_dport),网络应用所在流的协议号(即app_proto)。应用感知模块通过网络分流器接收外部网络的网络报文,通过应用识别方法识别出网络报文所在流所属的网络应用名称,构建应用识别结果数据appid_str,将应用识别结果数据appid_str发送给服务质量感知模块,同时将应用识别结果数据appid_str加入应用识别结果链表。从初始化模块接收网络应用传输失效时间t,用于判断网络应用传输是否失效。
[0016]
服务质量感知模块与初始化模块、应用感知模块和路径优化模块相连。服务质量感知模块从初始化模块接收网络应用的个数an和服务质量数据数组app_sla_array,从应用感知模块接收应用识别结果数据appid_str。根据app_sla_array和appid_str构建网络流服务质量数据flow_sla_str,flow_sla_str包含6个域:网络流的源ip(即flow_sip),网络流的目的ip(即flow_dip),网络流的源端口(即flow_sport),网络流的目的端口(即flow_dport),网络流的协议号(即flow_proto),网络流的服务质量需求(即flow_band)。将flow_sla_str发送给路径优化模块。
[0017]
路径优化模块与初始化模块、服务质量感知模块、传输控制模块和外部网络测量系统(一般采用int、snmp协议等主动式探测技术实现)相连。路径优化模块从初始化模块接收网络转发节点个数n和节点ip地址数组ip_array,从服务质量感知模块接收服务质量感知数据flow_sla_str,从外部网络测量系统接收网络测量数据,网络测量数据由网络带宽数据数组link_band_array以及带宽数据个数bn组成。link_band_array中共有bn个元素,每个元素存储一个带宽数据。每个带宽数据包括3个域:该数据所在网络链路的起始节点编号start_id,所在网络链路的终止节点编号end_id,所在网络链路的带宽band。路径优化模块根据网络测量数据计算网络拓扑数据,网络拓扑数据由邻接表数组topo_array组成,topo_array中共有n个元素,每个元素存储一个邻接表数据。邻接表数据包括3个域:该邻接表代表的网络转发节点编号nid,与编号为nid的网络转发节点直接相连的网络转发节点个数an,与编号为nid的网络转发节点直接相连的网络转发节点编号数组id_array(id_arrray中每个元素存储与编号为nid的网络转发节点直接相连的一个网络转发节点的编号,共有an个元素,an为正整数)。路径优化模块根据网络拓扑数据计算服务质量感知数据中源ip所在节点与目的ip所在节点间的所有路径,选出符合服务质量需求的路径,构建网络应用传输路径数据app_path_str。app_path_str存储一个正在传输的网络应用的路径信息,app_path_str包含7个域:网络应用最近传输报文的时间(即app_t)、网络应用的源ip(即sip)、网络应用的目的ip(即dip)、网络应用的源端口(即sport)、网络应用的目的端口(即dport)、网络应用传输路径中节点数量(即nn)、网络应用传输路径节点ip数组(即pathip_array)。路径优化模块将app_path_str发送给传输控制模块。
[0018]
传输控制模块与初始化模块、路径优化模块和外部网络相连。传输控制模块从初始化模块接收t,内部维护网络应用传输路径链表app_path_list,app_path_list中每个元素存储一个网络应用的传输路径数据。网络应用传输路径数据结构为app_path_str。传输控制模块从路径优化模块接收网络应用传输路径数据app_path_str,将其存入app_path_list。传输控制模块从外部网络接收网络报文pkt,根据pkt的源ip、目的ip、源端口、目的端口、协议号从app_path_list中查找pkt所在网络流所属的网络应用。如果在app_path_list找到对应的网络应用,传输控制模块使用网络应用传输路径数据将pkt封装为服务质量保
障报文pkt_sla,将pkt_sla发送至外部网络;如果没有找到对应的网络应用,传输控制模块直接将pkt发送至外部网络。
[0019]
第二步,初始化配置文件,方法是:
[0020]
确定网络应用传输失效时间t(t的单位为秒,t》0,t优选值为90秒),将t写入配置文件;根据使用本发明的应用网络的网络拓扑,统计网络中转发节点的数量n,将n写入配置文件;根据使用本发明的应用网络中每个网络设备的ip地址以及对应每个网络设备对应网络拓扑中的编号,分别将n个网络设备的编号和对应ip地址写入配置文件;根据使用本发明的应用网络中网络应用的数量an(an≥1),以及每个网络应用的名称及服务质量需求,将an及an个网络应用的名称和服务质量需求顺序写入配置文件。
[0021]
第三步,初始化模块对主动应用感知网络服务质量保障系统进行初始化,方法是:
[0022]
3.1从配置文件读取t、n,按照顺序读取n个网络设备的编号和ip地址。
[0023]
3.2初始化ip_array,即将n个网络设备的编号和ip地址分别存入ip_array的n个元素中。
[0024]
3.3从配置文件读取an,按照顺序读取an个网络应用的名称和服务质量需求。
[0025]
3.4初始化app_sla_array,即将an个网络应用的名称和服务质量需求分别存入app_sla_array的an个元素中。
[0026]
3.5将t发送给应用感知模块和传输控制模块;将n和ip_array发送给路径优化模块;将an和app_sla_array发送给服务质量感知模块。
[0027]
第四步,主动应用感知网络服务质量保障系统的应用感知模块、服务质量感知模块、路径优化模块和传输控制模块并行配合工作,实现主动应用感知的网络服务质量保障,
[0028]
方法是:应用感知模块按照4.1所述流程实现网络报文的应用感知:从初始化模块接收网络应用传输失效时间、通过网络分流器接收外部网络的网络报文,根据网络报文的源ip、目的ip、源端口、目的端口、协议号等数据以及应用识别结果链表,判断该网络报文所在网络流是否已有识别结果,如果有则丢弃该网络报文,如果没有则识别出网络报文所在网络流所属网络应用的名称,根据识别结果构建网络应用识别结果数据,将网络应用识别结果数据加入到应用识别结果链表中,并发送给服务质量感知模块,同时根据网络应用传输失效时间判断应用识别结果链表中元素是否失效,并删除失效的元素;同时,服务质量感知模块按照4.2所述流程实现网络流的服务质量感知:从初始化模块接收网络应用的个数以及每个网络应用的名称和服务质量需求,从应用感知模块接收网络应用识别结果,构建网络流服务质量数据,将网络流服务质量数据发送给路径优化模块;同时,路径优化模块按照4.3所述流程根据网络流服务质量感知数据和网络测量数据计算优化网络流传输路径:从初始化模块接收网络应用传输失效时间,从服务质量感知模块接收网络流服务质量数据,监听网络测量系统并从网络测量系统接收网络测量数据,根据网络测量数据计算当前外部网络的网络拓扑数据,根据实时的网络拓扑数据计算每个网络应用所在网络流的所有可能路径,并根据网络流服务质量数据计算满足网络流服务质量需求的路径,构建网络应用传输路径数据,并发送给传输控制模块;同时传输控制模块按照4.4所述流程根据网络流服务质量感知数据和网络测量数据计算优化网络流传输路径,实现对应用的网络服务质量保障:从初始化模块接收网络应用传输失效时间,从路径优化模块接收网络应用传输路径数据,根据网络应用传输路径数据更新网络应用传输路径链表,从外部网络接收网络报文,
根据网络报文的源ip、目的ip、源端口、目的端口、协议号等从网络应用传输路径链表中查找对应网络流所属的网络应用的传输路径,如果找到,根据传输路径中网络设备的ip地址将网络报文封装为服务质量保障报文,并发送至外部网络,如果没有找到,则不进行网络服务质量保障,将网络报文直接发送至外部网络。
[0029]
4.1应用感知模块按照4.1.1-4.1.8所述方法实现网络报文的应用感知:
[0030]
4.1.1应用感知模块从初始化模块接收网络应用传输失效时间t,初始化应用识别结果链表appid_list为空。
[0031]
4.1.2应用感知模块监听网络分流器,如果有网络报文到达,转步骤4.1.3,否则转4.1.2继续监听。
[0032]
4.1.3接收网络报文,获取网络报文的源ip地址sip1,目的ip地址dip1,源端口sport1,目的端口dport1,协议号proto1,获取当前系统时间ct。
[0033]
4.1.4从appid_list中查找同时满足如下条件的元素:
[0034]
域app_sip=sip1;
[0035]
域app_dip=dip1;
[0036]
域app_sport=sport1;
[0037]
域app_dport=dport1;
[0038]
域app_proto=proto1;
[0039]
如果没有找到,转步骤4.1.5,如果找到,假定找到的元素为app1,转步骤4.1.8。
[0040]
4.1.5以网络报文作为检测样本,使用多层分类器方法(具体实现可以参考赵双,陈曙晖,孙一品,王飞,苏金树.基于多层分类器的移动应用流量识别方法(第五步):中国专利,授权公告号cn 109151880 b)识别网络报文所在网络流所属的网络应用(输入为网络报文,输出为网络报文所在网络流所属网络应用的名称或者识别失败标识符),如果识别成功,假定识别出的网络应用名称为name1,转步骤4.1.6,如果识别失败,丢弃网络报文,转步骤4.1.2。
[0041]
4.1.6构建应用识别结果数据appid_str,令:
[0042]
appid_str.app_name=name1;
[0043]
appid_str.app_time=ct;
[0044]
appid_str.app_sip=sip1;
[0045]
appid_str.app_dip=dip1;
[0046]
appid_str.app_sport=sport1;
[0047]
appid_str.app_dport=dport1;
[0048]
appid_str.app_proto=proto1;
[0049]
4.1.7将appid_str加入appid_list中,将appid_str发送给服务质量感知模块。转步骤4.1.2。
[0050]
4.1.8判断ct-app1.app_time》t是否成立,如果成立说明app1已经超时,将app1从appid_list中删除,转步骤4.1.5;如果不成立,更新网络应用所在流最新报文到达时间,即令app1.app_time=ct,丢弃网络报文,转步骤4.1.2。
[0051]
4.2服务质量感知模块按照4.2.1-4.2.6所述方法实现网络流的服务质量感知:
[0052]
4.2.1服务质量感知模块从初始化模块接收an以及app_sla_array。
[0053]
4.2.2服务质量感知模块监听应用感知模块,如果有appid_str到来,转步骤4.2.3,否则转步骤4.2.2继续监听。
[0054]
4.2.3服务质量感知模块从应用感知模块接收appid_str。
[0055]
4.2.4服务质量感知模块从app_sla_array中查找域app_name的值与appid_str.app_name相同的元素,如果找到,假定找到的元素为app_sla_array[id],转步骤4.2.5,否则转步骤4.2.2。
[0056]
4.2.5构建网络流服务质量数据flow_sla_str,令:
[0057]
flow_sla_str.flow_sip=appid_str.app_sip;
[0058]
flow_sla_str.flow_dip=appid_str.app_dip;
[0059]
flow_sla_str.flow_sport=appid_str.app_sport;
[0060]
flow_sla_str.flow_dport=appid_str.app_dport;
[0061]
flow_sla_str.flow_proto=appid_str.app_proto;
[0062]
flow_sla_str.flow_band=app_sla_array[id].app_band;
[0063]
4.2.6将flow_sla_str发送给路径优化模块,转步骤4.2.2。
[0064]
4.3路径优化模块按照4.3.1-4.3.12所述方法根据网络流服务质量感知数据和网络测量数据计算优化网络流传输路径:
[0065]
4.3.1路径优化模块从初始化模块接收n和ip_array。
[0066]
4.3.2路径优化模块判断是否有服务质量感知数据到来,若有,转步骤4.3.6;否则转步骤4.3.3。
[0067]
4.3.3路径优化模块判断是否有网络测量数据到来,若有,转步骤4.3.4;否则转步骤4.3.2。
[0068]
4.3.4从网络测量系统接收bn和link_band_array。
[0069]
4.3.5根据link_band_array计算网络拓扑数据topo_array,计算方法参见发明专利申请——基于srv6和带宽测量的带宽保证网络传输方法(参见原玉磊,赵宝康,彭伟,赵锋,时向泉,陶静.基于srv6和带宽测量的带宽保证网络传输方法:中国专利,申请号202111250341.0,2021年10月26日)第4.2.4步到第4.2.5步。转步骤4.3.2。
[0070]
4.3.6从服务质量感知模块接收flow_sla_str。
[0071]
4.3.7计算flow_sla_str代表的网络流的源节点和目的节点在网络拓扑中的节点编号,方法是:
[0072]
4.3.7.1获取源节点ip地址,即flow_sla_str.flow_sip,遍历数组ip_array,找出域device_ip与flow_sla_str.flow_sip相等的元素,假定为ip_array[k1],则源节点的节点编号sid为:sid=ip_array[k1].device_id,k1只有一个值,是符合“域device_ip与flow_sla_str.flow_sip相等的元素”的编号。
[0073]
4.3.7.2获取目的节点ip地址,即flow_sla_str.flow_dip,遍历数组ip_array,找出域device_ip与flow_sla_str.flow_dip相等的元素,假定为ip_array[k2],则源节点的节点编号did为:did=ip_array[k2].device_id,k2是符合“域device_ip与flow_sla_str.flow_dip相等的元素”的编号。
[0074]
4.3.8根据n和topo_array计算节点sid和节点did之间的所有路径,计算方法参见发明专利申请——基于srv6和带宽测量的带宽保证网络传输方法(参见原玉磊,赵宝康,彭
伟,赵锋,时向泉,陶静.基于srv6和带宽测量的带宽保证网络传输方法:中国专利,申请号202111250341.0,2021年10月26日)第4.3.5步,计算结果为节点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条路径中转发节点数量)。
[0075]
4.3.9计算flow_sla_str代表的网络流源节点和目的节点的优化路径,即根据pn、nn、node_array计算节点sid和节点did之间满足最小链路带宽大于flow_sla_str.flow_band的第一个路径,具体方法参见发明专利申请——基于srv6和带宽测量的带宽保证网络传输方法(参见原玉磊,赵宝康,彭伟,赵锋,时向泉,陶静.基于srv6和带宽测量的带宽保证网络传输方法:中国专利,申请号202111250341.0,2021年10月26日)第4.4.7.4步到4.4.7.11步,计算结果为路径在node_array中的编号kk(即优化路径为node_array的第kk个元素,kk为202111250341.0中的i2)。
[0076]
4.3.10构建网络应用传输路径数据app_path_str,获取当前系统时间ct1,令:
[0077]
app_path_str.app_t=ct1;
[0078]
app_path_str.sip=flow_sla_str.flow_sip;
[0079]
app_path_str.dip=flow_sla_str.flow_dip;
[0080]
app_path_str.sport=flow_sla_str.flow_sport;
[0081]
app_path_str.dport=flow_sla_str.flow_dport;
[0082]
app_path_str.nn=nn[kk];
[0083]
4.3.11为app_path_str的pathip_array赋值,方法是:
[0084]
4.3.11.1定义循环变量i=0。
[0085]
4.3.11.2循环数组ip_array,查找域device_id与node_array[kk][i]相等的元素(由于node_array[kk][i]为网络中转发节点编号,ip_array记录了网络中所有转发节点的编号和ip数据,所以在本发明的设计中,一定能找到),假定为ip_array_i。
[0086]
4.3.11.3令app_path_str.pathip_array[i]=ip_array_i.device_ip。
[0087]
4.3.11.4令i=i 1,如果i<app_path_str.nn,转步骤4.3.11.2,否则转步骤4.3.12。
[0088]
4.3.12将app_path_str发送给传输控制模块,转步骤4.3.2。
[0089]
4.4传输控制模块按照4.4.1-4.4.11所述方法根据网络流服务质量感知数据和网络测量数据计算优化网络流传输路径,实现对应用的网络服务质量保障:
[0090]
4.4.1传输控制模块从初始化模块接收t。
[0091]
4.4.2传输控制模块监听路径优化模块和外部网络,有app_path_str到来时,转步骤4.4.3,有网络报文到来时,转步骤4.4.4接收网络报文,否则转步骤4.4.2继续监听。
[0092]
4.4.3传输控制模块从路径优化模块接收app_path_str,将app_path_str加入到网络应用传输路径链表app_path_list中,转步骤4.4.2。
[0093]
4.4.4传输控制模块从外部网络接收网络报文pkt。
[0094]
4.4.5从pkt中提取源ip地址pkt_sip,目的ip地址pkt_dip,源端口pkt_sport,目的端口pkt_dport。
[0095]
4.4.6遍历app_path_list,查找域flow_sip与pkt_sip相等并且域flow_dip与pkt_dip相等并且域flow_sport与pkt_sport相等并且域flow_dport与pkt_dport相等的元素,如果找到,假定为app_path_pkt,转步骤4.4.7,如果没有找到,转步骤4.4.11。
[0096]
4.4.7获取当前系统时间ct2,判断app_path_pkt.app_t t》ct2是否成立,如果成立转步骤4.4.8,否则转步骤4.4.10。
[0097]
4.4.8更新网络应用传输路径数据的最近报文传输时间,令app_path_pkt.app_t=ct2。
[0098]
4.4.9顺序利用数组app_path_pkt.pathip_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)为pkt封装srv6报文头(srv6报文头中只有ipv6地址列表是不确定的,其他字段都是确定的或者与ipv6地址列表相关的,即只要确定了ipv6地址列表即可确定srv6报文头),并将封装后的报文发送至网络(网络收到报文后,会根据srv6报文头逐跳转发,实现网络流每个报文按照根据应用感知和服务质量感知结果计算出的路径传输,从而实现了网络服务质量保障)。转步骤4.4.2。
[0099]
4.4.10将app_path_pkt从app_path_list中删除,转步骤4.4.11。
[0100]
4.4.11将网络报文pkt发送至网络。转步骤4.4.2。
[0101]
本发明基于srv6技术和主动应用感知方法以及实时网络测量数据,设计了针对应用流级的应用无感、网络无感的网络服务质量保障方法,能解决现有网络无法针对应用提供网络服务质量保障的问题。
[0102]
采用本发明可以达到以下技术效果:
[0103]
1)本发明第一步基于srv6和网络测量设计了主动应用感知网络服务质量保障系统,利用现有应用识别技术感知应用类型,进而感知应用的服务质量需求,根据网络测量数据为应用的网络流计算满足服务质量需求的传输路径,利用srv6技术控制网络报文的传输路径,实现了应用的网络服务质量保障。
[0104]
2)本发明第二步将网络应用及其服务质量需求写入配置文件,第三步从配置文件读取网络应用及其服务质量需求并将服务质量需求发送给服务质量感知模块,使得主动应用感知服务质量保障系统根据需要为不同的应用配置不同服务质量需求,实现了应用服务质量需求的灵活配置。
[0105]
3)本发明第4.1步和4.2步在应用之外主动感知应用的类型和服务质量需求,对现有应用没有要求,实现了应用服务质量保障的应用无感;第4.4步基于srv6技术控制网络报文按照满足服务质量需求的路径传输,不需要控制器的参与,实现了网络控制面无感。
[0106]
4)本发明可以支持任意基于tcp/ip协议的网络应用,通用性好。
附图说明
[0107]
图1是本发明总体流程图;
[0108]
图2是本发明第一步构建的主动应用感知网络服务质量保障系统逻辑结构图。
具体实施方式
[0109]
下面对照附图对本发明进行具体说明。
[0110]
如图1所示,本发明包括以下步骤:
[0111]
第一步,构建主动应用感知网络服务质量保障系统:
[0112]
主动应用感知网络服务质量保障系统如图2所示,由配置文件,初始化模块,应用感知模块,服务质量感知模块,路径优化模块,传输控制模块组成。
[0113]
配置文件存储主动应用感知网络服务质量保障系统运行所需参数,包括网络应用传输失效时间t(t为正整数,单位为秒),网络中转发节点(即网络中转发报文的节点)数量n(n为正整数,且n≥3),n个网络转发节点的编号及ip地址,网络应用个数an,每个网络应用的名称及服务质量需求。
[0114]
初始化模块与配置文件、应用感知模块、服务质量感知模块、路径优化模块和传输控制模块相连。初始化模块从配置文件读取网络中转发节点数量n、网络应用传输失效时间t,按照顺序分别从配置文件中读取n个网络转发节点的编号及ip地址,将网络转发节点ip地址存入ip地址数组ip_array,ip_array共有n个元素,每个元素有两个域,一个域为网络转发节点的编号(即device_id),另一个域为相应编号的网络转发节点的ip地址(即device_ip);从配置文件读取网络应用个数an,按照顺序分别从配置文件中读取an个网络应用的名称及服务质量需求,将网络应用的名称及服务质量需求存入服务质量数据数组app_sla_array,app_sla_array共有an个元素,每个元素有两个域,一个域为网络应用的名称(即app_name),另一个域为相应名称网络应用的服务质量需求(即app_band)。初始化模块将an和app_sla_array发送给服务质量感知模块,将n和ip_array发送给路径优化模块,将t发送给应用感知模块和传输控制模块。
[0115]
应用感知模块与初始化模块、服务质量感知模块相连,并通过网络分流器(一种网络设备,用于复制网络流量)与外部网络相连。应用感知模块内部维护应用识别结果链表appid_list,链表中每个元素为应用识别结果数据appid_str,appid_str包括7个域:网络应用的名称(即app_name),网络应用所在流最新报文到达时间(即app_time),网络应用所在流的源ip(即app_sip),网络应用所在流的目的ip(即app_dip),网络应用所在流的源端口(即app_sport),网络应用所在流的目的端口(即app_dport),网络应用所在流的协议号(即app_proto)。应用感知模块通过网络分流器接收外部网络的网络报文,通过应用识别方法识别出网络报文所在流所属的网络应用名称,构建应用识别结果数据appid_str,将应用识别结果数据appid_str发送给服务质量感知模块,同时将应用识别结果数据appid_str加入应用识别结果链表。从初始化模块接收网络应用传输失效时间t,用于判断网络应用传输是否失效。
[0116]
服务质量感知模块与初始化模块、应用感知模块和路径优化模块相连。服务质量感知模块从初始化模块接收网络应用的个数an和服务质量数据数组app_sla_array,从应用感知模块接收应用识别结果数据appid_str。根据app_sla_array和appid_str构建网络流服务质量数据flow_sla_str,flow_sla_str包含6个域:网络流的源ip(即flow_sip),网络流的目的ip(即flow_dip),网络流的源端口(即flow_sport),网络流的目的端口(即
flow_dport),网络流的协议号(即flow_proto),网络流的服务质量需求(即flow_band)。将flow_sla_str发送给路径优化模块。
[0117]
路径优化模块与初始化模块、服务质量感知模块、传输控制模块和外部网络测量系统(一般采用int、snmp协议等主动式探测技术实现,可参考andrea campanella,jonghwan hyun.in-band network 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.网络测量系统的实现)或朱凤天.基于主动方式的可用带宽测量方法研究[d].哈尔滨工业大学,2020.)相连。路径优化模块从初始化模块接收网络转发节点个数n和节点ip地址数组ip_array,从服务质量感知模块接收服务质量感知数据flow_sla_str,从外部网络测量系统接收网络测量数据,网络测量数据由网络带宽数据数组link_band_array以及带宽数据个数bn组成。link_band_array中共有bn个元素,每个元素存储一个带宽数据。每个带宽数据包括3个域:该数据所在网络链路的起始节点编号start_id,所在网络链路的终止节点编号end_id,所在网络链路的带宽band。路径优化模块根据网络测量数据计算网络拓扑数据,网络拓扑数据由邻接表数组topo_array组成,topo_array中共有n个元素,每个元素存储一个邻接表数据。邻接表数据包括3个域:该邻接表代表的网络转发节点编号nid,与编号为nid的网络转发节点直接相连的网络转发节点个数an,与编号为nid的网络转发节点直接相连的网络转发节点编号数组id_array(id_arrray中每个元素存储与编号为nid的网络转发节点直接相连的一个网络转发节点的编号,共有an个元素,an为正整数)。路径优化模块根据网络拓扑数据计算服务质量感知数据中源ip所在节点与目的ip所在节点间的所有路径,选出符合服务质量需求的路径,构建网络应用传输路径数据app_path_str。app_path_str存储一个正在传输的网络应用的路径信息,app_path_str包含7个域:网络应用最近传输报文的时间(即app_t)、网络应用的源ip(即sip)、网络应用的目的ip(即dip)、网络应用的源端口(即sport)、网络应用的目的端口(即dport)、网络应用传输路径中节点数量(即nn)、网络应用传输路径节点ip数组(即pathip_array)。路径优化模块将app_path_str发送给传输控制模块。
[0118]
传输控制模块与初始化模块、路径优化模块和外部网络相连。传输控制模块从初始化模块接收t,内部维护网络应用传输路径链表app_path_list,app_path_list中每个元素存储一个网络应用的传输路径数据。网络应用传输路径数据结构为app_path_str。传输控制模块从路径优化模块接收网络应用传输路径数据app_path_str,将其存入app_path_list。传输控制模块从外部网络接收网络报文pkt,根据pkt的源ip、目的ip、源端口、目的端口、协议号从app_path_list中查找pkt所在网络流所属的网络应用。如果在app_path_list找到对应的网络应用,传输控制模块使用网络应用传输路径数据为pkt封装为服务质量保障报文pkt_sla,将pkt_sla发送至外部网络;如果没有找到对应的网络应用,传输控制模块直接将pkt发送至外部网络。
[0119]
第二步,初始化配置文件,方法是:
[0120]
确定网络应用传输失效时间t(t的单位为秒,t》0,t优选值为90秒),将t写入配置文件;根据使用本发明的应用网络的网络拓扑,统计网络中转发节点的数量n,将n写入配置文件;根据使用本发明的应用网络中每个网络设备的ip地址以及对应每个网络设备对应网络拓扑中的编号,分别将n个网络设备的编号和对应ip地址写入配置文件;根据使用本发明
的应用网络中网络应用的数量an(an≥1),以及每个网络应用的名称及服务质量需求,将an及an个网络应用的名称和服务质量需求顺序写入配置文件。
[0121]
第三步,初始化模块对主动应用感知网络服务质量保障系统进行初始化,方法是:
[0122]
3.1从配置文件读取t、n,按照顺序读取n个网络设备的编号和ip地址。
[0123]
3.2初始化ip_array,即将n个网络设备的编号和ip地址分别存入ip_array的n个元素中。
[0124]
3.3从配置文件读取an,按照顺序读取an个网络应用的名称和服务质量需求。
[0125]
3.4初始化app_sla_array,即将an个网络应用的名称和服务质量需求分别存入app_sla_array的an个元素中。
[0126]
3.5将t发送给应用感知模块和传输控制模块;将n和ip_array发送给路径优化模块;将an和app_sla_array发送给服务质量感知模块。
[0127]
第四步,主动应用感知网络服务质量保障系统的应用感知模块、服务质量感知模块、路径优化模块和传输控制模块并行配合工作,实现主动应用感知的网络服务质量保障,
[0128]
方法是:应用感知模块按照4.1所述流程从初始化模块接收网络应用传输失效时间、通过网络分流器接收外部网络的网络报文,根据网络报文的源ip、目的ip、源端口、目的端口、协议号等数据以及应用识别结果链表,判断该网络报文所在网络流是否已有识别结果,如果有则丢弃该网络报文,如果没有则识别出网络报文所在网络流所属网络应用的名称,根据识别结果构建网络应用识别结果数据,将网络应用识别结果数据加入到应用识别结果链表中,并发送给服务质量感知模块,同时根据网络应用传输失效时间判断应用识别结果链表中元素是否失效,并删除失效的元素;同时,服务质量感知模块按照4.2所述流程从初始化模块接收网络应用的个数以及每个网络应用的名称和服务质量需求,从应用感知模块接收网络应用识别结果,构建网络流服务质量数据,将网络流服务质量数据发送给路径优化模块;同时,路径优化模块按照4.3所述流程从初始化模块接收网络应用传输失效时间,从服务质量感知模块接收网络流服务质量数据,监听网络测量系统并从网络测量系统接收网络测量数据,根据网络测量数据计算当前外部网络的网络拓扑数据,根据实时的网络拓扑数据计算每个网络应用所在网络流的所有可能路径,并根据网络流服务质量数据计算满足网络流服务质量需求的路径,构建网络应用传输路径数据,并发送给传输控制模块;同时传输控制模块按照4.4所述流程从初始化模块接收网络应用传输失效时间,从路径优化模块接收网络应用传输路径数据,根据网络应用传输路径数据更新网络应用传输路径链表,从外部网络接收网络报文,根据网络报文的源ip、目的ip、源端口、目的端口、协议号等从网络应用传输路径链表中查找对应网络流所属的网络应用的传输路径,如果找到,根据传输路径中网络设备的ip地址将网络报文封装为服务质量保障报文,并发送至外部网络,如果没有找到,则不进行网络服务质量保障,将网络报文直接发送至外部网络。
[0129]
4.1应用感知模块按照4.1.1-4.1.8所述方法实现网络报文的应用感知:
[0130]
4.1.1应用感知模块从初始化模块接收网络应用传输失效时间t,初始化应用识别结果链表appid_list为空。
[0131]
4.1.2应用感知模块监听网络分流器,如果有网络报文到达,转步骤4.1.3,否则转4.1.2继续监听。
[0132]
4.1.3接收网络报文,获取网络报文的源ip地址sip1,目的ip地址dip1,源端口
sport1,目的端口dport1,协议号proto1,获取当前系统时间ct。
[0133]
4.1.4从appid_list中查找同时满足如下条件的元素:
[0134]
域app_sip=sip1;
[0135]
域app_dip=dip1;
[0136]
域app_sport=sport1;
[0137]
域app_dport=dport1;
[0138]
域app_proto=proto1;
[0139]
如果没有找到,转步骤4.1.5,如果找到,假定找到的元素为app1,转步骤4.1.8。
[0140]
4.1.5以网络报文作为检测样本,使用多层分类器方法(具体实现可以参考赵双,陈曙晖,孙一品,王飞,苏金树.基于多层分类器的移动应用流量识别方法(第五步):中国专利,授权公告号cn 109151880 b)识别网络报文所在网络流所属的网络应用(输入为网络报文,输出为网络报文所在网络流所属网络应用的名称或者识别失败标识符),如果识别成功,假定识别出的网络应用名称为name1,转步骤4.1.6,如果识别失败,丢弃网络报文,转步骤4.1.2。
[0141]
4.1.6构建应用识别结果数据appid_str,令:
[0142]
appid_str.app_name=name1;
[0143]
appid_str.app_time=ct;
[0144]
appid_str.app_sip=sip1;
[0145]
appid_str.app_dip=dip1;
[0146]
appid_str.app_sport=sport1;
[0147]
appid_str.app_dport=dport1;
[0148]
appid_str.app_proto=proto1;
[0149]
4.1.7将appid_str加入appid_list中,将appid_str发送给服务质量感知模块。转步骤4.1.2。
[0150]
4.1.8判断ct-app1.app_time》t是否成立,如果成立说明app1已经超时,将app1从appid_list中删除,转步骤4.1.5;如果不成立,更新网络应用所在流最新报文到达时间,即令app1.app_time=ct,丢弃网络报文,转步骤4.1.2。
[0151]
4.2服务质量感知模块按照4.2.1-4.2.6所述方法实现网络流的服务质量感知:
[0152]
4.2.1服务质量感知模块从初始化模块接收an以及app_sla_array。
[0153]
4.2.2服务质量感知模块监听应用感知模块,如果有appid_str到来,转步骤4.2.3,否则转步骤4.2.2继续监听。
[0154]
4.2.3服务质量感知模块从应用感知模块接收appid_str。
[0155]
4.2.4服务质量感知模块从app_sla_array中查找域app_name的值与appid_str.app_name相同的元素,如果找到,假定找到的元素为app_sla_array[id],转步骤4.2.5,否则转步骤4.2.2。
[0156]
4.2.5构建网络流服务质量数据flow_sla_str,令:
[0157]
flow_sla_str.flow_sip=appid_str.app_sip;
[0158]
flow_sla_str.flow_dip=appid_str.app_dip;
[0159]
flow_sla_str.flow_sport=appid_str.app_sport;
[0160]
flow_sla_str.flow_dport=appid_str.app_dport;
[0161]
flow_sla_str.flow_proto=appid_str.app_proto;
[0162]
flow_sla_str.flow_band=app_sla_array[id].app_band;
[0163]
4.2.6将flow_sla_str发送给路径优化模块,转步骤4.2.2。
[0164]
4.3路径优化模块按照4.3.1-4.3.11所述方法根据网络流服务质量感知数据和网络测量数据计算优化网络流传输路径:
[0165]
4.3.1路径优化模块从初始化模块接收n和ip_array。
[0166]
4.3.2路径优化模块判断是否有服务质量感知数据到来,若有,转步骤4.3.6;否则转步骤4.3.3。
[0167]
4.3.3路径优化模块判断是否有网络测量数据到来,若有,转步骤4.3.4;否则转步骤4.3.2。
[0168]
4.3.4从网络测量系统接收bn和link_band_array。
[0169]
4.3.5根据link_band_array计算网络拓扑数据topo_array,计算方法参见发明专利申请——基于srv6和带宽测量的带宽保证网络传输方法(参见原玉磊,赵宝康,彭伟,赵锋,时向泉,陶静.基于srv6和带宽测量的带宽保证网络传输方法:中国专利,申请号202111250341.0,2021年10月26日)第4.2.4步到第4.2.5步。转步骤4.3.2。
[0170]
4.3.6从服务质量感知模块接收flow_sla_str。
[0171]
4.3.7计算flow_sla_str代表的网络流的源节点和目的节点在网络拓扑中的节点编号,方法是:
[0172]
4.3.7.1获取源节点ip地址,即flow_sla_str.flow_sip,遍历数组ip_array,找出域device_ip与flow_sla_str.flow_sip相等的元素,假定为ip_array[k1],则源节点的节点编号sid为:sid=ip_array[k1].device_id,k1只有一个值,是符合“域device_ip与flow_sla_str.flow_sip相等的元素”的编号。
[0173]
4.3.7.2获取目的节点ip地址,即flow_sla_str.flow_dip,遍历数组ip_array,找出域device_ip与flow_sla_str.flow_dip相等的元素,假定为ip_array[k2],则源节点的节点编号did为:did=ip_array[k2].device_id,k2是符合“域device_ip与flow_sla_str.flow_dip相等的元素”的编号。
[0174]
4.3.8根据n和topo_array计算节点sid和节点did之间的所有路径,计算方法参见发明专利申请——基于srv6和带宽测量的带宽保证网络传输方法(参见原玉磊,赵宝康,彭伟,赵锋,时向泉,陶静.基于srv6和带宽测量的带宽保证网络传输方法:中国专利,申请号202111250341.0,2021年10月26日)第4.3.5步,计算结果为节点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条路径中转发节点数量)。
[0175]
4.3.9计算flow_sla_str代表的网络流源节点和目的节点的优化路径,即根据pn、
nn、node_array计算节点sid和节点did之间满足最小链路带宽大于flow_sla_str.flow_band的第一个路径,具体方法参见发明专利申请——基于srv6和带宽测量的带宽保证网络传输方法(参见原玉磊,赵宝康,彭伟,赵锋,时向泉,陶静.基于srv6和带宽测量的带宽保证网络传输方法:中国专利,申请号202111250341.0,2021年10月26日)第4.4.7.4步到4.4.7.11步,计算结果为路径在node_array中的编号kk(即优化路径为node_array的第kk个元素,kk为202111250341.0中的i2)。
[0176]
4.3.10构建网络应用传输路径数据app_path_str,获取当前系统时间ct1,令:
[0177]
app_path_str.app_t=ct1;
[0178]
app_path_str.sip=flow_sla_str.flow_sip;
[0179]
app_path_str.dip=flow_sla_str.flow_dip;
[0180]
app_path_str.sport=flow_sla_str.flow_sport;
[0181]
app_path_str.dport=flow_sla_str.flow_dport;
[0182]
app_path_str.nn=nn[kk];
[0183]
4.3.11为app_path_str的pathip_array赋值,方法是:
[0184]
4.3.11.1定义循环变量i=0。
[0185]
4.3.11.2循环数组ip_array,查找域device_id与node_array[kk][i]相等的元素(由于node_array[kk][i]为网络中转发节点编号,ip_array记录了网络中所有转发节点的编号和ip数据,所以在本发明的设计中,一定能找到),假定为ip_array_i。
[0186]
4.3.11.3令app_path_str.pathip_array[i]=ip_array_i.device_ip。
[0187]
4.3.11.4令i=i 1,如果i<app_path_str.nn,转步骤4.3.11.2,否则转步骤4.3.12。
[0188]
4.3.12将app_path_str发送给传输控制模块,转步骤4.3.2。
[0189]
4.4传输控制模块按照4.4.1-4.4.11所述方法根据网络流服务质量感知数据和网络测量数据计算优化网络流传输路径:
[0190]
4.4.1传输控制模块从初始化模块接收t。
[0191]
4.4.2传输控制模块监听路径优化模块和外部网络,有app_path_str到来时,转步骤4.4.3,有网络报文到来时,转步骤4.4.4接收网络报文,否则转步骤4.4.2继续监听。
[0192]
4.4.3传输控制模块从路径优化模块接收app_path_str,将app_path_str加入到网络应用传输路径链表app_path_list中,转步骤4.4.2。
[0193]
4.4.4传输控制模块从外部网络接收网络报文pkt。
[0194]
4.4.5从pkt中提取源ip地址pkt_sip,目的ip地址pkt_dip,源端口pkt_sport,目的端口pkt_dport。
[0195]
4.4.6遍历app_path_list,查找域flow_sip与pkt_sip相等并且域flow_dip与pkt_dip相等并且域flow_sport与pkt_sport相等并且域flow_dport与pkt_dport相等的元素,如果找到,假定为app_path_pkt,转步骤4.4.7,如果没有找到,转步骤4.4.11。
[0196]
4.4.7获取当前系统时间ct2,判断app_path_pkt.app_t t》ct2是否成立,如果成立转步骤4.4.8,否则转步骤4.4.10。
[0197]
4.4.8更新网络应用传输路径数据的最近报文传输时间,令app_path_pkt.app_t=ct2。
[0198]
4.4.9顺序利用数组app_path_pkt.pathip_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)为pkt封装srv6报文头(srv6报文头中只有ipv6地址列表是不确定的,其他字段都是确定的或者与ipv6地址列表相关的,即只要确定了ipv6地址列表即可确定srv6报文头),并将封装后的报文发送至网络(网络收到报文后,会根据srv6报文头逐跳转发,实现网络流每个报文按照根据应用感知和服务质量感知结果计算出的路径传输,从而实现了网络服务质量保障)。转步骤4.4.2。
[0199]
4.4.10将app_path_pkt从app_path_list中删除,转步骤4.4.11。
[0200]
4.4.11将网络报文pkt发送至网络。转步骤4.4.2。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献