当前位置: 首页 > 专利查询>清华大学专利>正文

可编程数据平面的报文转发方法技术

技术编号:18356011 阅读:59 留言:0更新日期:2018-07-02 09:29
本发明专利技术涉及互联网技术领域,公开了一种可编程数据平面的报文转发方法,包括步骤:S1:生成缓存MAT,并将所述缓存MAT插入P4Pipeline的起始位置;S2:按照预定策略将流经数据平面的报文流的特征和转发处理行为作为表项添加到缓存MAT中,或从缓存MAT中移除,所述表项对应该报文流中所有的数据包;S3:对于数据平面命中缓存MAT表项的数据包对应的报文流的相应操作在所述缓存MAT内执行。本发明专利技术的可编程数据平面的报文转发方法避免了对数据包不必要的重复匹配,加快了可编程数据平面对报文的转发处理操作。

【技术实现步骤摘要】
可编程数据平面的报文转发方法
本专利技术涉及互联网
,特别涉及一种可编程数据平面的报文转发方法。
技术介绍
软件定义网络(Software-DefinedNetworking,SDN)的思想可以追溯至1995年Sun公司发布Java语言,经过二十多年的发展已经渐趋成熟。在美国知名科技网站InfoWorld2011年11月公布的影响未来10年的十项新技术中,SDN排名第二。SDN的设计核心是控制平面和数据平面的分离。网络应用通过北向接口与控制平面进行交流,控制平面通过南向接口与数据平面进行交流。网络工程师和管理员只需要对网络应用进行编程,就能够简单和高效地配置和管理网络,从而对网络功能需求的变化作出快速相应,使得网络演进变得敏捷而灵活。然而,SDN在发展过程中遇到了一定的阻碍。随着数据中心的蓬勃发展,越来越多的针对数据中心的网络协议被提出。鉴于硬件交换机支持新协议的周期往往达到数年之久,网络管理员通过大量的编码工作扩展软件交换机的功能来支持新的网络协议——这同样要花费许多精力。为了让交换机能够跟进网络协议的演进,2014年斯坦福大学的NickMcKeown教授和普林斯顿大学的JenniferRexford教授等共同提出了P4编程语言。作为数据平面的特定领域语言,P4语言使用报文解析器(Parser),匹配-动作表(Match-ActionTable,MAT),管道(Pipeline)等语素对SDN数据平面转发操作进行建模。P4语言描述下的数据平面,其报文转发是独立于网络协议的。P4语言解决了交换机发展滞后于网络协议发展的问题,为SDN网络中的数据平面带来了可编程性,使得SDN中“软件定义”的特质进一步彰显。在本文说明书中,可编程数据平面特指P4语言描述下的数据平面。数据传输的高吞吐和低时延一直是网络演进的重要目标,SDN网络同样有此追求。现有的P4语言处于发展初期,仅用于描述数据平面的转发处理流程,具有较大的局限性。而在P4语言诞生之前,一些适用于SDN网络的数据平面设备(比如:OpenvSwitch)就依靠设备缓存机制加快了数据平面的报文转发处理速率。但是这种内建缓存机制并不是一种通用的缓存机制,对SDN网络转发设备本身有一定的要求,每个SDN网络转发设备需要分别对待。而现有的P4程序定义的报文转发处理流程会对同一个无状态报文流中的数据包进行重复的表项匹配,即P4pipeline必须让数据包与多个MAT匹配才可将相应操作执行完毕,导致报文转发处理的吞吐量低,报文转发时延较大。
技术实现思路
(一)要解决的技术问题本专利技术要解决的技术问题是:如何提高可编程数据平面的报文转发吞吐量,降低报文转发时延。(二)技术方案为解决上述技术问题,本专利技术提供了一种可编程数据平面的报文转发方法,包括步骤:S1:生成缓存MAT,并将所述缓存MAT插入P4Pipeline的起始位置;S2:按照预定策略将流经数据平面的报文流的特征和转发处理行为作为表项添加到缓存MAT中,或从缓存MAT中移除,所述表项对应该报文流中所有的数据包;S3:对于数据平面命中缓存MAT表项的数据包对应的报文流的相应操作在所述缓存MAT内执行。其中,所述步骤S1包括:查找能够有效区分报文流的匹配域和报文流所有可能的转发处理操作;将所述匹配域和转发处理操作作为表项添加到缓存MAT中;添加所述缓存MAT至P4程序;编译和安装P4程序至交换机,并在编译时将所述缓存MAT插入P4Pipeline的起始位置。其中,所述分析能够有效区分报文流的匹配域和该报文流所有可能的转发处理操作具体包括:采用语句控制流图SCFG对P4Pipeline进行建模,所述SCFG是一种有向无环图,包含四种类型的元素:预测节点:一个预测节点用于表征P4Pipleline中的一条if条件语句或一个MAT的match部分;动作节点:一个动作节点用于表征P4Pipeline中的一个MAT对数据包的一种复合操作;终止节点:一个SCFG中有且仅有一个终止节点,用于表征P4Pipeline的结束;有向边:一条连接了两个节点的有向边用于表征P4Pipeline在处理数据包时节点所代表的语素的执行顺序;基于SCFG分析出对P4Pipeline执行流产生影响的若干初始变量,所述初始变量中的数据包字段和标准元数据作为所述匹配域,SCFG每一条有向路径上动作节点所表征的复合操作的串行叠加对应缓存MAT中的每一种转发处理操作。其中,所述步骤S2包括:当一个新的报文流的转发处理行为将要被缓存时,缓存MAT表项的动态维护过程如下:S211:获取流摘要并存储;S212:基于流摘要中的流描述构建缓存MAT新表项的匹配域的参数,基于流摘要中的流轨迹构建缓存MAT新表项的转发处理操作的参数,进而构建出完整的缓存MAT新表项;S213:存储所述流摘要与缓存MAT新表项之间的对应关系;S214:将新表项写入缓存MAT中;当一个已缓存的报文流的转发处理行为将要被移除缓存时,缓存MAT表项的动态维护过程如下:S221:获取流摘要并存储;S222:根据所述流摘要与缓存MAT表项之间的对应关系,找出此流摘要对应的缓存MAT表项;S223:将此表项从缓存MAT中删除。其中,所述步骤S2中还包括:当非缓存MAT表项发生改变时,经由如下步骤对缓存MAT表项进行调整:S231:确定由于非缓存MAT表项变化而受到影响的缓存MAT表项;S232:从缓存MAT中删除所述受到影响的缓存MAT表项;S233:缓存MAT中的表项删除将造成部分原先可以命中缓存MAT的数据包无法继续命中缓存MAT,利用数据平面消息上传机制再次获取这些数据包对应的流摘要;S234:更新原有的流摘要并存储;此后操作同S212~S214。其中,所述步骤S2中预定策略为:以流剩余大小的估计值作为是否缓存某条报文流对应的转发处理行为的标准,流剩余大小估计值前K大的报文流,其对应的报文转发处理行为将被缓存MAT以表项的形式缓存下来,所述K为缓存MAT表项个数上限,所述流剩余大小为报文流中尚未被数据平面处理的数据包的个数。(三)有益效果本专利技术的可编程数据平面的报文转发方法避免了对数据包不必要的重复匹配,加快了可编程数据平面对报文的转发处理操作。而且本专利技术的缓存机制是基于对P4程序的修改和MAT表项的维护,对于可编程数据平面设备本身并无特殊要求,这使得此缓存机制可以作为一种通用的缓存机制部署在各种可编程数据平面设备上,提升设备的转发速率和吞吐量。附图说明图1为本专利技术的一种可编程数据平面的报文转发方法流程图;图2为本专利技术的一种可编程数据平面的报文转发方法的BCP整体架构图。具体实施方式下面结合附图和实施例,对本专利技术的具体实施方式作进一步详细描述。以下实施例用于说明本专利技术,但不用来限制本专利技术的范围。针对现有的P4程序定义的报文转发处理流程会对同一个无状态报文流中的数据包进行重复的表项匹配这一问题,本实施例设计了一种可编程数据平面的快速转发方法,如图1所示,包括:步骤S1,生成缓存MAT,并将所述缓存MAT插入P4Pipeline的起始位置。步骤S2,按照预定策略将流经数据平面的报文流的特征和转发处理行为作为表项添加到缓存MAT中,或从缓存MAT中移除,所述表项对应该报文流中所有的数据包本文档来自技高网
...
可编程数据平面的报文转发方法

【技术保护点】
1.一种可编程数据平面的报文转发方法,其特征在于,包括步骤:S1:生成缓存MAT,并将所述缓存MAT插入P4Pipeline的起始位置;S2:按照预定策略将流经数据平面的报文流的特征和转发处理行为作为表项添加到缓存MAT中,或从缓存MAT中移除,所述表项对应该报文流中所有的数据包;S3:对于数据平面命中缓存MAT表项的数据包对应的报文流的相应操作在所述缓存MAT内执行。

【技术特征摘要】
1.一种可编程数据平面的报文转发方法,其特征在于,包括步骤:S1:生成缓存MAT,并将所述缓存MAT插入P4Pipeline的起始位置;S2:按照预定策略将流经数据平面的报文流的特征和转发处理行为作为表项添加到缓存MAT中,或从缓存MAT中移除,所述表项对应该报文流中所有的数据包;S3:对于数据平面命中缓存MAT表项的数据包对应的报文流的相应操作在所述缓存MAT内执行。2.根据权利要求1所述的可编程数据平面的报文转发方法,其特征在于,所述步骤S1包括:查找能够有效区分报文流的匹配域和报文流所有可能的转发处理操作;将所述匹配域和转发处理操作作为表项添加到缓存MAT中;添加所述缓存MAT至P4程序;编译和安装P4程序至交换机,并在编译时将所述缓存MAT插入P4Pipeline的起始位置。3.根据权利要求2所述的可编程数据平面的报文转发方法,其特征在于,所述分析能够有效区分报文流的匹配域和该报文流所有可能的转发处理操作具体包括:采用语句控制流图SCFG对P4Pipeline进行建模,所述SCFG是一种有向无环图,包含四种类型的元素:预测节点:一个预测节点用于表征P4Pipleline中的一条if条件语句或一个MAT的match部分;动作节点:一个动作节点用于表征P4Pipeline中的一个MAT对数据包的一种复合操作;终止节点:一个SCFG中有且仅有一个终止节点,用于表征P4Pipeline的结束;有向边:一条连接了两个节点的有向边用于表征P4Pipeline在处理数据包时节点所代表的语素的执行顺序;基于SCFG分析出对P4Pipeline执行流产生影响的若干初始变量,所述初始变量中的数据包字段和标准元数据作为所述匹配域,SCFG每一条有向路径上动作节点所表征的复合操作的串行叠加对应缓存MAT中的每一种转发处理操作。...

【专利技术属性】
技术研发人员:毕军张程马子俊周禹
申请(专利权)人:清华大学
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1