更全的杂志信息网

基于P4的CoLoR架构控制平面的设计与实现

更新时间:2016-07-05

1 引言

1.1 背景

随着现代科技的进步,网络互联带来的便捷已经体现在人类生活的各个角落,层次化的结构设计为互联网带来的成就不胜枚举。然而不得不引起重视的是,随着用户需求的日益多元化和复杂化,传统网络体系结构在进行功能扩展时存在诸多问题:随着用户规模的不断扩大和各种网络新应用的不断增加,协议的更新迭代使得网络优化的难度增加,同时各种新型服务增加了运维成本。仅仅在现有网络架构的基础上改良已经难以解决其根本问题[1],北京交通大学下一代互联网互联设备国家工程实验室提出了以信息为中心的CoLoR[2]新网络体系架构,旨在通过重新设计互联网来实现可扩展和高效的内容分发功能。

必须引起重视的是,无论是创新思想的网络架构还是网络协议,必须在实际环境中部署,才能在最大程度上对其功能与性能进行检测[3],但新协议或网络架构在现有运营网络中进行部署和测试是复杂的。CoLoR对互联网网络层进行了重新设计,加入了新的字段,随着研究推进,CoLoR的报头格式和逻辑在不断完善、改进。在现有网络环境中部署测试时,为了支持新的协议字段/报头,使得协议首部内容不断增加、标准更加复杂[4],此外还需要对每个网络设备进行配置和更新操作。在这种情况下,CoLoR架构的完善与推广是一个缓慢且极具挑战性的过程,因为它涉及在网络中执行新的、非常规的处理逻辑和匹配内容,除了仍然需要解决的算法挑战,描述一些CoLoR实例显然缺乏硬件支持。因此,需要一种更灵活的系统实现方法,使CoLoR可以很方便地被部署、测试、调整、升级,这对提高对新协议、新网络构架的研究效率,加快业界对CoLoR的接纳、部署和推广,是十分必要的。

P4[5](programming protocol-independent packet processor)作为一种潜在的“OpenFlow2.0”的发展方向,区别于现有的OpenFlow通过流表指导固定功能[6]的交换机转发数据流,P4通过软件编程的方式重新定义转发设备所识别的字段以及对数据分组的处理流程和逻辑,旨在解决OpenFlow可编程性和可拓展性方面的局限性问题。

P4有其特有的交换机模拟器BMv2(behavior model version 2),P4的核心思想可以用抽象转发模型进行描述,其中有两个主要操作:配置和填充[7]。配置操作完成对分组处理器的编程,通过JSON格式的配置文件指定每个阶段处理的首部字段,设置BMv2在match+action[5]阶段所要匹配的内容和顺序,并定义对应动作域;填充操作主要是进行具体流表条目的添加或删除。

P4的“全”可编程性体现在其可重构性、协议无关性和目标独立性 3个方面[8],其中协议无关性指的是它不与任意一个特定协议绑定,所有的流规则、流表和执行顺序都由控制器制定后下发给交换机。P4的优势体现在对新的网络协议与架构进行验证与测试以及版本的迭代更新,与传统设备需要重新修改协议栈并进行重新配置相比,这种通过可编程来重新定义交换机的方式大幅度加快了科学研究的进程。

1.2 现状

参考文献[9]使用P4编写NDN(named data networking,数据命名网络)数据平面,流表通过定义一个软件API来下发,但是当系统较为复杂、功能模块种类繁多时,仅仅使用API能否实现智能的流表计算和下发并不能得到保证。

对象xi关于指标Ij的观测值xij不同时,则该指标使xi处于各评价等级的程度也不同。设xij使xi处于第k个评价等级ck的程度为μijk=μ(xij∈ck)。那么μijl是对程度的一种测量结果,作为一种测度它必须满足“非负有界性、可加性、归一性”三条测量准则。即μijl满足:1). 0≤μijk≤1,2).其中,i=1,2,…,n?j=1,2,…,m?k=1,2,…,K。称满足上述三条测量准则的μijk为未确知测度,简称测度。

CLI(command-line interface,命令行接口)可以对BMv2进行简单流表的下发。但是一个CLI只能连接一个 BMv2,不能提供针对全局网络状态制定的智能决策。为了实现新架构可编程、自动化的网络控制能力,需要一个更高可扩展性、更智能的控制平面。ONOS[10,11]是首款开源SDN[12](software defined networking,软件定义网络)操作系统,参考文献[13]在对 ONOS的研究中加入了一个简单的针对 BMv2的控制模型,但是对CoLoR提供的支持仍需完善。ONOS只支持如TCP/IP和以太网 Ethernet等现有的协议,而CoLoR中的各种分组格式需要自行开发,而且要制定复杂的网络策略、实现智能的转发仍有许多问题尚待解决。

ONOS启动后需要激活对 BMv2的驱动(driver),并开启默认监听端口 40123,BMv2启动时指定该端口并主动请求连接,并告知 ONOS其自身的thrift-port[14]。之后ONOS与BMv2通过两条TCP连接交互:链路1通过40123端口接收BMv2上传的问询消息,链路2通过thrift接口实现ONOS对BMv2的管控,如配置文件和流表的下发以及通过远程接口调用控制BMv2构造数据分组以及指定数据分组的出端口等。

具体原理如图1所示。原始P4文件经过编译器(p4c-bmv2)转化为JSON格式的配置文件[15],转化器(interpreter)将配置文件转化成设备描述表(device-context),驱动中建立设备(device)和默认设备描述表之间的映射,之后北向抽象层通过API将配置文件和流表下发,并将网络视图提供给应用层。

将提取出来的各分组头字段组合,extract和add_header动作操作的首部都会被激活变为valid,之前占位的newPid被激活,故而组合时会增加newPid分组头。需要注意的是,PID采取倒序的方式插在get消息之后,最新加入的PID添加在所有PID最前边即firstPid。

2 CoLoR架构及其机制

与当前仅使用一个命名空间(即IP地址)的TCP/IP网络不同,CoLoR使用两个全局命名空间:SID(server ID,服务标识符)、NID(node ID,节点标识符)和两个本地命名空间:域内路由定位、PID(path ID,路径标识符)。

区别于传统网络架构以主机为中心的寻址方式,CoLoR贯彻以信息为中心的思想,为网络中每个服务内容分配唯一的标识符SID,SID仅用于代表某项内容,与其所处位置无关,服务注册和请求时均依据 SID;NID代表网络中各节点的位置,用于认证;域内路由定位用于在域内进行路由;PID用于在域间定义路径,由两个域协商产生,不全球通告。

这种表面润滑的螺旋形磁性纳米机器人直径仅为500纳米,不到头发丝粗细的两百分之一,它可在短时间内完成从眼球玻璃体中心位置到视网膜的可控运动。

在CoLoR中,每一个AS(autonomous system,自治域)中都有一个RM(resource manager,资源管理器),自治域内所有服务提供方都会把SID向本域RM进行注册,故而RM维护着一个存放内容可达性信息的注册表,用于对所请求服务的查询;BR(border router,边界路由器)用于连接其他自治域并沿 PID标识路径转发CoLoR分组。

CoLoR的基本工作机制包括:服务注册、内容请求与数据分组转发。一个完整的CoLoR系统的运行流程如图2所示,为了便于阐述,选择域D2作为父域,RM2为父域RM,其他域都需向D2通告。

2.1 服务注册

图1 ONOS控制P4原理

图2 CoLoR架构运行流程

服务注册包括域内注册和域间通告两个方面,如图2中过程①~④所示。D3中服务提供者S1向本域RM3发送注册信息,注册内容包括其SID和提供者自身NID,RM3收到注册分组后,会在自身的注册表里为这一SID添加条目存储注册信息,此即服务的域内注册部分;随后RM3还需选择域间路径 PID2向其父域的 RM(D2的RM2)进行通告,通告内容为 SID、通告方 AS号和绑定PID,被通告方RM2需添加对该SID的通告条目,此即域间通告的流程。

同理D1中S2也向其RM1发送注册分组,注册信息为(SID2、NID2),RM1向RM2进行通告,通告分组内容为(SID2、AS1、PID1)。

2.2 内容请求

由于AR、RM等已经具有转发逻辑和流表,具有独立的转发功能,get分组依据流表直接转发,无需问询 ONOS,匹配失败执行默认动作send_to_cpu。

针对从互联网上采集的大量有关产品消费者发布的有正面评价、负面评价及打分等的意见,结合文本挖掘和情感分析技术,提取在线评论中正面评价、反面评价及综合评分等信息,并将这些有价值的信息碎片转封装为能对多种产品进行综合评价的不同的、独立的信息粒度。如果将每个达到产品专家评论水平的信息粒度定义为表示相应参与大群型决策的专家信息与意见,则面向在线客户偏好的大群客户偏好计算可转化为面向大型群决策的自动一致性建模与求解过程问题。第4节将用实例来说明该转换思想。基于文献[11,12,17],现有的自动一致性方法基本思想描述如下:

如图2中过程⑤~⑩所示,当D1中请求者C期望获取由SID1标识的服务时,会向其本地RM1发送 get请求消息;RM1在注册表里查询不到SID1的条目,会将路径标识PID1添加到请求分组尾部,并沿该路径将这一get请求消息转发至父域RM2;RM2收到get分组后,查询到本域存储了由D3通告来的关于SID1的通告条目,则依据通告信息将PID2封在get分组尾部,并沿该路径将请求分组转发至RM3;RM3查询SID1条目发现注册在本域内,则依据注册信息查找提供者NID(NID1),将get分组转发至S1。

同理,当 C请求 SID2对应的服务时发送get分组(SID2、NIDc),RM1发现 SID2注册在本域,直接依据注册信息查找 NID2,将 get分组转发至S2。

2.3 数据转发

一旦存储所需服务的源节点接收到get消息,服务提供者即可得知请求者的 NID、所期望服务的SID以及途经的PID。因此,如图2中过程⑪~⑬所示,D3中S1收到由C发来的get分组后,发送封装请求者NID、PID和所请求内容DATA的数据分组回送,跨域过程逐级剥去最外层 PID,从BR7经PID2到BR6后剥去外层PID2,从BR3经PID1到BR1后剥去PID1,最后依据NIDc将所需服务转发至请求者C。

同理D1中S2收到C发送的服务请求分组后,会发送数据分组(DATA、NIDc),经AR1后直接依据NIDc将所需服务转发至请求者C。

CoLoR分组头引入了新的字段如SID、NID、PID等,同时通过对CoLoR机制的分析不难发现,在服务请求发起到请求者接收到数据分组的过程中,RM、BR中需要经过复杂的逻辑处理,PID一直处于动态增减的状态。在现有网络中,新字段的添加需要对整个协议栈进行修改,服务注册、请求和数据分组转发也涉及在网络层执行新的、非常规的处理逻辑和规则,需要对每个网络设备进行配置和更新,以支持新的协议字段/报头。故而CoLoR的完善和推广受实际部署的限制。

而 P4的可编程性通过对交换机可识别的首部字段和处理逻辑进行重新定义,可以以一种十分便捷的方式改变对数据分组的处理方式。用P4实现的CoLoR架构继承了协议无关的特性,控制器ONOS通过配置文件定义CoLoR分组格式和底层转发设备BMv2处理CoLoR分组的逻辑,提取解析转发设备不能识别的分组决策并进行相应的处理,实现CoLoR架构控制平面的功能。

3 用P4编写CoLoR架构

用P4实现CoLoR架构时,各域中位于数据平面的BMv2设备(RM、BR、AR、IR等)都仅仅保留其转发作用,其所能识别的首部和控制逻辑都由控制平面ONOS制定。ONOS检测到BMv2连接时,通过TCP连接将配置文件以JSON格式下发,CoLoR分组到达BMv2后问询ONOS获取转发所需流表,此后BMv2才具有独立转发的能力,后续CoLoR分组查询BMv2中的流表匹配后直接进行转发,匹配失败才会再次问询 ONOS。以get分组为例,介绍如何使用P4定义BMv2所能识别的首部字段和处理逻辑及相关问题。

3.1 P4编写配置文件

(1)首部(header)

图3给出了P4语言定义的get分组头类型,首部定义了get分组头各字段及其长度,这里给出了固定长度部分,由于跨域过程中会增删 PID,PID字段为可变长度,在第3.2节中具体讨论。每一种首部类型都有对应的首部实例来存储具体数据[16]

各县市区政府均成立了地质灾害防治领导小组,除城区各分局外,各县市区局均设有专门的地质灾害防治工作机构(地质环境股或地质环境储量股),耒阳、常宁和衡阳县还成立了地质环境监测站,其中,耒阳、常宁市局地质环境监测站为副科级二级事业单位。自2017年以来,根据省厅的统一要求,各县市区局还采取政府购买服务方式,分别与坐落在我市的4家地勘单位合作建立地质灾害防治技术指导中心,较好地解决了市县地质灾害防治缺技术、缺人员、缺装备等问题。此外,全市所有已查明的地质灾害隐患点均确定了一名监测员。

图3 P4语言定义的get分组头类型

(2)解析器(parser)

图4给出了P4语言定义的解析器,解析器规定了BMv2可以解析的分组头和解析顺序,在第3.2节中具体阐述。

教师在对教学计划进行安排时,必须对“课题学习”内容的选取以及教学设计安排有一定重视度,这个安排计划需要教学者花费足够的教学心思来对这种“课题学习”进行准备,必须根据学生的整体实际学习水平,来对“课题学习”的具体课时内容以及目标进行掌控,并确定“课题学习”的教学次数。这个次数的确定不在于多,而需要关注每一次“课题学习”所达到的质量。例如,笔者在七年级教学中设置了三次关于“课题学习”的主题活动安排,其中包括“测量不规则图形”“生活中的数字”“包装盒的多种分类、设计和制作”的主题内容。

图4 P4语言定义的解析器

(3)匹配动作表(table)[17]

图5给出了RM处理get分组的一条匹配动作表:table sid_nid,表中定义了匹配字段、对应动作和表容量,RM提取SID进行精确匹配,依据匹配结果分别执行对应的动作:若SID在域内则修改源地址、目的地址转发,若SID在域外则添加 PID后转发,若匹配失败,会在 table_miss后执行提前设定的 default_action即 send_to_cpu问询控制器。

图5 P4定义的匹配动作表

(4)流控制程序(control ingress)

图6给出了P4定义的流控制程序。流控制程序规定了匹配动作表的执行条件和顺序。当 RM判断分组类型为get分组时,进入流表table sid_nid进行匹配转发。

图6 P4定义的流控制程序

3.2 变长问题

(1)注册分组

(1)解析器

get分组到来时首先提取 Ethernet分组头解析,并依据etherType字段判断:0x0800解析IP分组,否则停止解析,进入流控制程序处理Ethernet分组;解析完成后偏移至IP分组头字段,提取IP分组头,解析并依据protocol字段判断接下来解析分组头类型:0xA0为请求分组,0xA1为数据分组,0xA2为注册分组,0xA3为通告分组,否则停止解析处理IP分组;之后偏移至get分组头字段,提取get分组头,并依据pid_o字段判断:pid_o=0xFF则解析newPid字段,0xFF为理论上不可能达到的值,故解析过程通常不会提取 newPid,仅用于对 deparser(逆解析)阶段的占位,默认进入下一个解析for_merge,依据pid_o进行判断:若为0则结束解析处理get分组;若不为0代表这个get分组已经跨域,解析firstPid字段,最终会仍进入流控制程序,结束解析。

(2)流控制程序

进入流控制程序,满足条件后进行流表匹配,完成相应动作。RM发现SID在域外时执行action:add_header添加newPid,在域内则依据NID转发。

(3)逆解析器

自2012年开始,聊城市政府围绕徒骇河建设“世界运河(建筑)博览园”,计划将世界各地优秀的运河建筑景观搬到河流两岸。可以此为契机,适时推出特色水上游览项目,让游客乘坐葫芦状游船,在欣赏两岸世界运河文化风情的同时,体验古人泛舟浮于江湖的逍遥境界。另外,可在姜堤乐园内或其北面的徒骇河水域,开辟水上乐园,开发葫芦“腰舟”娱乐项目和竞技项目。

3.3 首分组问题

Three-component synthesis of 1H-benzo[h][1,2,3]triazolo[4,5-a]acridine derivatives

(1)对于首个到达BMv2的get分组

尾矿在资源特征上与传统的建筑材料基本相近,主要化学成分为硅、铝、钙和镁氧化物,还有少量碱金属、钛、铁、硫氧化物,因此可以考虑进行整体利用。尾矿用作传统建筑材料,如水泥、混凝土砂石料、免烧砖、空心砖和加气砌块等,其市场需求量巨大,是尾矿的减量化、规模化消纳的主要手段。

图7 解析流程

AR连接到 ONOS后,其初始转发流表“protocol_dstAddr”为空(发送给控制器问询的默认流表不计),get分组到达 AR后进入其match+action管道,由于无法正确匹配而table_miss,执行默认动作send_to_cpu,通过TCP连接问询ONOS,此时get分组完成match+action过程,离开该管道。ONOS对请求信息进行解析后,计算AR至RM的路径并为该链路上所有设备下发流表。同时通过远程接口调用,控制 AR生成get分组并直接从其对应端口发送出去,而不再经过AR的match+action管道查询流表转发;get在各IR依据下发的流表匹配转发;到达RM时,RM转发流表为空,问询ONOS,下发“sid_nid”流表并通过远程接口调用发送get分组。

BMv2通过thrift接口向ONOS提供远程接口调用服务。ONOS为BMv2下发配置文件和具体流表,也可以控制BMv2构造CoLoR分组从特定端口发出。这里以get分组为例,介绍远程接口调用处理首分组问题。

(2)对于之后到来的get分组

请求者期望获取某项服务时,会向其本地RM发送get请求消息。get消息应包含请求者所期望的服务的SID和其自身NID。若RM在注册表里找不到SID的条目,会发往父域问询;若SID注册在本域,则直接将请求分组转发至服务提供者。

通过远程接口调用转发CoLoR分组时,由于CoLoR分组不再进入 match+action管道,要求ONOS完成下发给这个BMv2流表的所有功能,远程接口调用只实现了对出端口的指定,但对分组内容的修改,需要ONOS自身完成,这一问题将在第4.3节中进行分析解决。

4 基于P4的CoLoR架构控制平面的实现

图8给出了ONOS的控制平面实现框架。实现的过程中涉及多个 ONOS提供的服务:其中deviceService用于控制BMv2切换JSON文件和查询流表信息等;flowService实现对流表从selector+treatment[19]到 match+action的转换和持久化下发等;packetService接收来自BMv2的各种分组。

CoLoR初始化主模块接收BMv2提交的包含CoLoR信息的TCP分组,接收分组分析模块解析CoLoR分组的来源以及分组类型,进行分流使之进入相应的处理过程:这些处理方法中调用了流规则生成模块定义的流规则,具体的匹配参数由分组头读写模块提取解析得到,并依路径计算模块选路结果为其传入流表的具体动作参数,应用流表对CoLoR分组进行相应处理。需要注意的是,其中首分组运用分组头读写模块修改分组相应字段的内容,并通过远程接口调用传送分组。之后到来的CoLoR分组到达RM、BR等设备时,由于已经下发配置文件和流表,可以直接查询流表,匹配成功直接转发无需问询 ONOS,匹配失败才会执行默认动作send_to_cpu。

图8 ONOS的控制平面实现框架

4.1 初始化主模块

CoLoR初始化主模块为ONOS进行分组处理的主模块,主要实现的功能有与BMv2建立连接、接收含有CoLoR信息的TCP分组以及控制流表下发。

本文中流表下发模式设计为主动与被动结合。ONOS检测到BMv2连接时就要主动下发一些特定的默认控制流表(如丢弃报文、对下一张流表进行匹配、转发给控制器等),其余流表当BMv2问询时,依据对CoLoR信息解析后生成,通过TCP连接下发。被动模式的好处是当规模扩大时,BMv2无需时刻维护全部的流表,只有当产生实际流量时才向ONOS获取流表并存储。且每条流表都设有定时器,超时后删除,故而在很大程度上节省存储空间。

4.2 接收分组分析模块

接收分组分析模块对到来的CoLoR分组进行分流。ONOS对CoLoR分组进行初步解析,获得发送端BMv2的设备信息(如deviceID、deviceName等)和CoLoR分组类型信息(versionType),并据此分流,将CoLoR分组送到对应的分组处理函数,理论上所有的BMv2设备(RM、AR、BR等)都应实现对注册分组、通告分组、请求分组、数据分组的处理逻辑。

4.3 分组头读写模块

(1)分组头读写模块解析CoLoR分组,为流规则生成模块提供匹配参数,具体解析CoLoR分组信息如SID、NID、PID和versionType等字段,可作为路径计算的源、目的地址依据或者作为流控制程序中流表执行的判断依据。

(2)分组头读写模块修改CoLoR分组内容,包括源地址、目的地址和标志位flag等,是为了解决远程接口调用时的首分组问题。ONOS远程接口调用指定出端口,但对分组内容的修改,需要分组头读写模块完成,继续以get为例,简要介绍分组头读写模块对分组内容的修改。

· 修改源地址、目的地址是为了实现CoLoR分组正常转发:get首分组到达AR后需要将目的地址修改为本域RM的地址,并从相应端口转发出去。而ONOS通过远程接口调用为get指定了出端口,但目的地址仍为AR,从正确端口到达IR后,查询ip_port后由于目的地址有误最终仍旧无法正常到达RM,因此需要在ONOS中完成对CoLoR分组内容的修改,将目的地址改为本域RM的地址,只有修改过目的地址的get分组才能依据match+action传递给RM,其他过程同理,不再细述。

近年来,我国汽车行业的发展态势良好,在国际上都占有一定的地位和优势,决定了专业的汽车营销人才在未来的很长一段时间内都具有良好的就业和发展前景,这也给院校汽车营销教学提供了很好的发展契机。与此同时,随着我国市场经济体制的不断变革,汽车营销市场的复杂性和多变性程度不断提升,汽车学院需要时刻把握市场变化调整人才培养模式,在进行专业的汽车和营销知识的教学过程中,还要注重学生心理和身体素质、沟通能力、以及团队协作能力等的培养,全面提升学生的综合素质和能力。

· 设置flag标志位是为了区分CoLoR分组路径:到达AR的get分组有两种情况,即从客户端到RM和从RM到服务器;同样到达BR的get分组有两种情况:RM到外域BR和外域BR到RM。标志位flag对分组路径进行区分,默认从客户端发出的原始服务请求分组flag=0,经过AR走客户端→RM路径;经过RM处理后,改为flag=1;到达本域 BR走 RM→BR路线,同时使flag=0;到达外域BR走BR→RM路线,到达RM再次使flag=1;此时到达AR走RM→服务器路线,完成get路径区分。

4.4 路径计算模块

路径计算模块用于计算路径,为流规则生成模块提供动作域参数。读取配置文件的链路信息和设备映射信息,提取并解析CoLoR分组的源、目的信息,计算以向ONOS发送问询的BMv2为根生成的最短路径树,并选取到目的路径的这条,得到所需路径信息(包括经过的设备以及该设备的出端口),将端口信息作为流表动作域参数发送给对应设备。

不吃早餐:一日三餐,早餐最重要。老祖宗传下的养生规律告诉我们,早餐要吃而且要丰富,除了蛋白质、矿物质、微量元素还要有维生素。因为维生素可以促进肝组织修复,早餐不可过饱否则也会伤肝。

4.5 流规则生成模块

流规则生成模块是具体的流规则制定模块。流规则的组成部分可以划分为selector、treatment、forTable、deviceID和JSON[20]。其中selector部分用于条件匹配,包括匹配类型和匹配字段;treatment部分用于匹配达成后相应动作的执行;deviceID确定流条目所对应的设备;forTable用于指定流条目对应JSON文件中的流表项;JSON用于将默认配置文件与BMv2当前文件对应,定期检测,发现不同后迅速切换。

5 结果检测

为对基于P4的CoLoR架构控制平面进行功能验证并测试其性能,在实验室实体机柜上部署了测试拓扑,使用Click[16]路由器模拟发分组。测试拓扑如图9所示,其中沿PID1、PID2出去的设备PID1、PID2为虚拟主机,用于监控PID链路上的分组信息。

5.1 功能检测

本文选择一个域 D1为研究对象,通过对从D1发送出去的CoLoR分组和到达D1的CoLoR分组的转发结果验证其功能,其他域同理。

解析器提取分组头并依据现有分组头字段判断接下来解析分组头的类型,解析的最终结果是进入流控制程序处理数据分组。当解析器工作时,会将当前处理的数据分组头字节的偏移量记录在首部实例中,并在状态迁移(即调用另一个解析器)时指向分组头中下一个待处理的有效字节[18]。现以RM处理get过程为例简要分析变长问题,解析流程如图7所示。

靶控输注系统(target control infusion, TCI)采用药代动力学模型来控制全身麻醉期间镇静药和阿片类药物的血浆或效应部位浓度[1]。在成人中,最广泛使用的药代动力学模型由Marsh等和Schnider等开发;这些模型在健康的非孕人群中的使用已较为成熟,但是否适用于产妇目前尚不清楚[2]。

图9 测试拓扑

本域通告给外域:D1中的server1发送注册分组,注册信息为“inside”(36 byte,其余部分用“__”补全,均省略,下同)。图10给出了 ONOS1收到域内注册分组提取出的相关内容,由versionType=0xA2判断这是注册分组,解析并保存注册信息:SID=“inside”,NID=“server1”。D1内注册信息需向D2通告,对沿路径 PID2出去的虚拟设备 PID2进行抓取分组,结果如图 11所示,由 versionType=0xA3可知这是通告分组,通告信息:SID=“inside”,PID=“PID2”。

图10 ONOS1解析域内注册分组结果

图11 PID2抓取通告分组结果

外域通告给本域:D2沿PID2向D1通告,ONOS1解析通告分组结果如图 12所示,由versionType=0xA3判断这是通告分组,通告信息:SID=“outside”,PID=“PID2”。

图12 ONOS1解析域间通告分组结果

(2)服务请求分组

本域请求外域:D1中 client1请求 SID为“outside”的服务时,发送get分组沿PID2转发至外域。图13给出了对PID2抓取分组得到的结果,versionType=0xA0表示这是一个get分组,请求信息为:SID=“outside”,NIDc=“client1”,PID=“PID2”。

(1)通过尺神经受刺激后拇指内收肌的收缩速率来评价两组患者给药后的肌松效果,主要包括起效时间、临床作用时间以及恢复指数[6]。(2)记录两组患者给药前、给药5 min时心率、平均动脉压,并进行比较。

图13 PID2抓取请求分组结果

外域请求本域:外域client1请求D1中SID为“inside”的内容时,server1收到CoLoR分组,图 14给出了对其抓取分组的结果,versionType=0xA0表示为get分组,请求信息为:SID=“inside”,NIDc=“client1”,PID=“PIDX”,这是外域get分组跨域到达本域时所添加的PID。

图14 server1抓取请求分组结果

(3)数据分组

本域转发至外域:D1中server1经PID2收到get分组后回送数据分组。图15给出了PID2进行抓取分组的结果,versionType=0xA1表示这是一个data分组,内容为:所请求内容和NIDc=“client1”,data分组依据最后一次添加的 PID(PID2)跨域转发后删掉这一PID,故而此时看不到这一PID字段。

外域转发至本域:外域收到D1中client1发送的get分组后回送数据,图16对 client1进行wireshark抓取分组,versionType=0xA1表示这是一个data分组,内容为:所请求内容和NIDc=“client1”,因为pid_o=0,表示请求者在本域,直接依据NIDc将data分组转至client1。

图15 PID2抓取数据分组结果

图16 client1抓取数据分组结果

5.2 性能测试

(1)ONOS流表下发速率

ONOS通过thrift端口对BMv2下发流表,其流表的下发性能标志着ONOS对BMv2的控制能力。测试中ONOS和BMv2分别部署在两台物理机上,并通过普通的二层交换机建立TCP连接,测试流表分为两种:规模较小的流表“ip_port”匹配域和动作域种类少,字段长度为5 byte,信息量较少;规模较大的流表“sid_nid”匹配域和动作域种类多,字段长度为65 byte,信息量较多。如图17所示,测试结果表明,ONOS对BMv2流表下发的平均性能大致在 750条/s(约每 1.3 ms添加一条流表),而且流表规模较小时性能更稳定,随着流表条目增加,性能下降较为缓慢。在测试过程中同时发现,当ONOS在下发流表总数达到13万时到达瓶颈,下发速率趋近于零,无法完成测试。ONOS下发流表后,同时自己缓存了一份相同的流表并定期下发,用于BMv2断开重连后的流表恢复,下发总流表数目越多,ONOS需要缓存的流表数越多,因此导致性能到达瓶颈后急剧下降。因此在CoLoR中的SID的映射转发表不能全部存储到BMv2中,过期的SID条目会被BMv2和ONOS移除,get分组匹配失败后向ONOS询问该流表即可。

体验式教学方法在小学高段作文教学中的应用,要求教师在写作教学中关注学生的真实体验和情感,引导学生应用真实的体会来写作,有助于锻炼学生的写作能力,激发学生作文学习的积极性,提升小学高段作文教学质量。

(2)JSON文件切换时延

ONOS切换 JSON文件有两种情况:一是BMv2设备中的 JSON文件出现异常如重启时,ONOS定时检测,发现其与默认文件不匹配时切换;二是CoLoR版本迭代更新时ONOS主动更新默认配置文件。JSON文件切换的过程会不可避免地出现丢失分组从而导致服务中断,JSON文件切换时延越短越好,如图18所示。测试结果表明,JSON文件的切换时延与大小的关系为正相关,如本次测试对象为AR、RM、IR、BR 4种设备对应的JSON文件,其中BR处理逻辑最为复杂,JSON文件最大为59.1 KB,切换时延为4.648 ms。

图17 下发速率随流表数目变化

图18 JSON文件切换时延

6 结束语

本文简要介绍了新网络架构CoLoR的运行原理,分析了CoLoR架构推广受到限制的因素,在此基础上用P4实现CoLoR架构,详细阐述了基于P4的CoLoR架构控制平面的设计与实现,介绍如何用P4语言定义RM、BR、AR、IR等设备的可以识别的首部字段和处理逻辑以及如何用ONOS控制P4实现CoLoR架构流程,并对其进行功能验证和性能测试。

然而,围绕基于 P4实现CoLoR架构,仍然有许多亟待解决的问题。本文重点侧重于功能实现,如何在保证系统稳定运行的基础上提升性能以及配置文件的不中断切换等,有待进一步实现。

参考文献:

[1]罗洪斌, 张宏科.智慧协同标识网络体系:研究背景、思路与进展[J].电信科学, 2015, 31(2): 11-21.LUO H B, ZHANG H K.Smart and cooperative networks:background, basic ideas and progress[J].Telecommunications Science, 2015, 31(2): 11-21.

[2]LUO H, CHEN Z, CUI J, et al.CoLoR: an information-centric internet architecture for innovations[J].IEEE Network, 2014,28(3): 4-10.

[3]王歆平, 王茜, 刘恩慧, 等.基于 SDN的按需智能路由系统研究与验证[J].电信科学, 2014, 30(4): 8-14.WANG X P, WANG Q, LIU E H, et al.Research and verification on SDN-based on-demand smart routing system [J].Telecommunications Science, 2014, 30(4): 8-14.

[4]王晓峰, 吴建平, 崔勇.互联网 IPv6 过渡技术综述[J].小型微型计算机系统, 2006, 27(3): 385-395.WANG X F, WU J P, CUI Y.Survey of internet IPv6 transition technologies[J].Journal of Chinese Computer Systems, 2006,27(3): 385-395.

[5]BOSSHART P, IZZARD M, IZZARD M, et al.P4: programming protocol-independent packet processors[J].ACM SIGCOMM Computer Communication Review, 2014, 44(3):87-95.

[6]王振法, 王雷, 高翔宇, 等.POF 环境下的一种内容中心网络架构及其实现[J].小型微型计算机系统, 2016, 37(9):1959-1963.WANG Z F, WANG L, GAO X Y, et al.Architecture and implementation of content-centric networking under POF environment[J].Journal of Chinese Computer Systems, 2016, 37(9):1959-1963.

[7]Behavioral-model[EB].2016.

[8]p4language[EB].2017.

[9]SIGNORELLO S, STATE R, FRANÇOIS J, et al.NDN.p4:programming information-centric data-planes[C]//Netsoft Conference and Workshops, June 10, 2016, Seoul, Korea.Piscataway: IEEE Press, 2016: 384-389.

[10]What is ONOS?[EB].2015.

[11]VOELLMY A, WANG J.Scalable software defined network controllers[J].ACM SIGCOMM Computer Communication Review, 2012, 42(4): 289-290.

[12]何晓明, 冀晖, 毛东峰, 等.电信IP网向SDN演进的探讨[J].电信科学, 2014, 30(6): 131-137.HE X M, JI H, MAO D F, et al.Discussion of evolution of carrier IP network to SDN [J].Telecommunications Science, 2014,30(6): 131-137.

[13]P4 experimental support via BMv2[EB].2018.

[14]BERDE P, GEROLA M, HART J, et al.ONOS: towards an open, distributed SDN OS[C]//The Workshop on Hot Topics in Software Defined Networking, August 22, 2014, Chicago, IL,USA.New York: ACM Press, 2014: 1-6.

[15]The P4 language specification, version 1.1.0-release candidate[EB].2018.

[16]P4 status update: where are we now and what’s next?[EB].2017.

[17]BOSSHART P, GIBB G, KIM H S, et al.Forwarding metamorphosis: fast programmable match-action processing in hardware for SDN[J].ACM SIGCOMM Computer Communication Review, 2013, 43(4): 99-110.

[18]Openstate.p4: supporting stateful forwarding in P4[EB].2018.

[19]HAN Y, RYU S, SUH Y J, et al.Design and implementation of LISP controller in ONOS[C]//Netsoft Conference and Work-shops, June 10, 2016, Seoul, Korea.Piscataway: IEEE Press,2016: 417-422.

[20]PARULKAR G, TOFIGH T, LEENHEER M D.SDN control of packet over optical networks[C]//Optical Fiber Communications Conference and Exhibition, March 22-26, 2015, Los Angeles,CA, USA.Piscataway: IEEE Press, 2015: W1G.4.

[21]KOHLER E.The click modular router[M].New York: ACM Press, 2001.

刘若涵,罗洪斌,温兴泵
《电信科学》 2018年第05期
《电信科学》2018年第05期文献

服务严谨可靠 7×14小时在线支持 支持宝特邀商家 不满意退款

本站非杂志社官网,上千家国家级期刊、省级期刊、北大核心、南大核心、专业的职称论文发表网站。
职称论文发表、杂志论文发表、期刊征稿、期刊投稿,论文发表指导正规机构。是您首选最可靠,最快速的期刊论文发表网站。
免责声明:本网站部分资源、信息来源于网络,完全免费共享,仅供学习和研究使用,版权和著作权归原作者所有
如有不愿意被转载的情况,请通知我们删除已转载的信息 粤ICP备2023046998号