一种基于协议无感知转发的高速数据更新系统及方法技术方案

技术编号:23899253 阅读:58 留言:0更新日期:2020-04-22 10:03
本发明专利技术公开了一种基于协议无感知转发的高速数据更新系统及方法,其对应的协议无关转发设备,包括:所述系统基于DPDK驱动的协议无感知转发模块,协议无感知转发模块作为一个基于DPDK驱动的模块运行在用户态,该协议无感知转发模块包括功能平面子模块、Metadata数据查询功能子模块、Metadata数据更新功能子模块、流表维护功能子模块和路由功能子模块;基于DPDK驱动的协议无感知转发模块利用DPDK开发套件,实现该模块下的子模块对协议无关转发设备的数据包的处理是经过轮询的方式从网卡硬件设备读取数据包,绕开操作系统内核。本发明专利技术具有高速更新数据的优点。

A high-speed data update system and method based on protocol non aware forwarding

【技术实现步骤摘要】
一种基于协议无感知转发的高速数据更新系统及方法
本专利技术涉及一种基于协议无感知转发的高速更新系统及方法,属于软件定义网络

技术介绍
软件定义网络是将网络的控制与转发分离,提供一种集中式的控制平面,对整个网络进行监控、配置与管理。软件定义网络是对传统网络架构的革新,软件定义网络架构分为应用层、控制层和转发层。转发层对应的物理实体是协议无感知转发设备,控制层对应的物理实体是网络控制器。协议无感知转发设备负责网络数据的高速转发,其转发决策来自于网络控制器。网络控制器通过南向接口对协议无感知转发设备进行集中统一管理。软件定义网络使得转发层具有可编程能力,数据包的解析和转发流程通过编程控制,打破了硬件设备对转发平面的功能限制。目前的协议转发设备分为两大类,一种是协议感知的转发设备,一种是协议无感知的转发设备。协议感知的转发设备根据已知协议类型,设计好固定的操作逻辑。若进入转发设备的数据包是已知的协议类型,则设备能按照对应的协议类型对数据包字段进行读写访问操作,若是一些未知格式的协议,则无法处理,因此称协议感知的转发设备是协议绑定的。其缺点是不灵活,对于一些新协议,若协议感知的转发设备未及时进行软件更新,则无法识别新协议的数据包。协议无感知技术克服该缺点,通过指定数据包的偏移和长度构成匹配域,利用灵活的匹配域来识别任意协议格式的数据包字段,使得转发设备无需感知报文的协议类型,协议无感知转发设备按照“匹配-动作”模式工作,即对数据包的某些字段与流表项的匹配域相比较,如果匹配一致,则执行流表项的动作,如转发数据包操作、丢弃数据包操作、修改数据包字段操作等。数据包处理逻辑由网络控制器控制,因此协议无感知的转发设备具备更大的灵活性,支持任意的协议格式的数据包。现有技术需要将携带用户更新指令的更新数据包先进入操作系统的协议栈解封装处理,再进入数据库系统进行更新,然后将更新结果返回协议栈进行应答数据包封装,最后将应答数据包发送客户端。这个技术存在的缺点是数据包处理过程冗长,效率低下。当前互联网对服务时延要求越来越严格,使用现有的数据更新技术,其时延无法适应万物互联时代大规模数据快速更新的场景。
技术实现思路
本专利技术技术解决问题:克服现有技术存在的不足,提供一种基于协议无感知转发的高速数据更新系统及方法,利用数据平面协议无感知转发技术实现更新数据包解封装、数据更新、应答数据包封装等,达到高速更新数据的目的。本专利技术技术解决方案:本专利技术一种基于协议无感知转发的高速数据更新系统,其对应的协议无关转发设备,包括:所述系统基于DPDK驱动的协议无感知转发模块,协议无感知转发模块作为一个基于DPDK驱动的模块运行在用户态,该协议无感知转发模块包括功能平面子模块、Metadata数据查询功能子模块、Metadata数据更新功能子模块、流表维护功能子模块和路由功能子模块;基于DPDK驱动的协议无感知转发模块利用DPDK开发套件,实现该模块下的子模块对协议无关转发设备的数据包的处理是经过轮询的方式从网卡硬件设备读取数据包,绕开操作系统内核;Metadata是协议无感知转发设备存储且可在流表项之间共享的数据,用户可以通过协议无感知技术和Metadata数据内容操作指令集对该区域的数据进行更新操作;其中:功能平面子模块,接收携带更新指令的数据包,根据所述数据包的功能平面ID的字段值判断该数据包所要触发的功能子模块;所述功能平面ID为指示协议无感知转发设备,该数据包触发的功能平面,除了所述功能平面ID的字段,数据包的字段还包括:表ID、数据ID、操作码和数据更新内容;表ID指明待更新数据所属的表;数据ID指明待更新数据在表ID所指的表中的索引;操作码指明对数据做的操作;数据更新内容指存放数据的更新内容;Metadata数据查询功能子模块,负责对Metadata数据区域进行查询操作;Metadata数据更新功能子模块,负责对Metadata数据区域进行更新操作;该模块具有支持修改Metadata数据所有内容的Metadata数据内容操作指令集,该指令集使得数据包携带的更新内容可直接覆盖到Metadata的指定位置,从而完成更新任务;流表维护功能子模块,负责对协议无关转发设备的流表项进行修改、下发、删除和上报操作;所述流表项是协议无感知转发设备的基本组成,协议无感知转发设备包括若干流表,每个流表包括多个流表项;路由功能子模块,负责对协议无关转发设备的应答数据包进行封装、转发操作。本专利技术的一种基于协议无感知转发的高速数据更新方法,包括以下步骤:(1)客户端的更新请求根据功能平面ID、表ID、数据ID、操作码、数据更新内容的协议格式封装好,作为更新数据包,发送给协议无感知转发设备;(2)协议无感知转发模块通过DPDK驱动的CPU轮询方式从网卡设备接收客户端发来的更新数据包,协议无感知转发设备具有多个功能平面,不同的数据包,即功能平面子模块所接收到的数据包会触发协议无感知转发设备执行不同的功能,接收到的更新数据包首先进入功能平面子模块进行处理,判断所要执行的功能;(3)功能平面子模块根据“位置+偏移”解封装更新数据包,判断解析到的更新数据包的功能平面ID字段是否等于0x02,0x02是一个16进制的8比特码,是Metadata数据更新功能平面的编码,若是则进入Metadata数据更新功能子模块;(4)Metadata数据更新功能子模块判断更新数据包的表ID字段和数据ID字段,根据这两个值定位到对应的Metadata表上的记录,这两个值是目的Metadata数据位置信息;(5)Metadata数据更新功能子模块接着判断操作码,若操作码是0xfa,则表示是更新操作,0xfa是一个16进制的8比特码,是更新操作的编码,更新的具体内容使用数据包的“数据更新内容”字段的值,若操作码是0x00,则表示恢复默认值操作,更新的内容来自本地数据;(6)Metadata数据更新功能子模块根据步骤(4)和步骤(5)得到的目的Metadata数据位置信息和操作码,通过Metadata数据内容操作指令集,将数据包的数据更新内容字段复制到目的Metadata数据区域;(7)更新完成后,Metadata数据更新功能子模块更改更新数据包的功能平面ID字段的ID值为0x01,0x01是一个16进制的8比特码,是路由功能平面的编码,更新数据包的功能平面ID字段更改为0x01后,更新数据包变成应答数据包,返回给功能平面子模块,功能平面子模块判断该应答数据包的功能平面ID为0x01,0x01是一个16进制的8比特码,是路由功能平面的编码,将应答数据包交给路由功能子模块,该路由功能子模块将应答数据包返回给客户端。本专利技术与现有技术相比的优点在于:(1)现有的数据包收发技术,采用的是传统的操作系统驱动和内核协议栈收发方式,其特点是必须采用硬中断来做通讯,数据包需要经过硬中断上下文切换,数据在内核态和用户态之间的拷贝等操作,从网卡到业务进程,经过的路径太长,产生大量的C本文档来自技高网
...

【技术保护点】
1.一种基于协议无感知转发的高速数据更新系统,其对应的协议无关转发设备,其特征在于,包括:所述系统基于DPDK驱动的协议无感知转发模块,协议无感知转发模块作为一个基于DPDK驱动的模块运行在用户态,该协议无感知转发模块包括功能平面子模块、Metadata数据查询功能子模块、Metadata数据更新功能子模块、流表维护功能子模块和路由功能子模块;基于DPDK驱动的协议无感知转发模块利用DPDK开发套件,实现该模块下的子模块对协议无关转发设备的数据包的处理是经过轮询的方式从网卡硬件设备读取数据包,绕开操作系统内核;Metadata是协议无感知转发设备存储且可在流表项之间共享的数据,用户可以通过协议无感知技术和Metadata数据内容操作指令集对该区域的数据进行更新操作;其中:/n功能平面子模块,接收携带更新指令的数据包,根据所述数据包的功能平面ID的字段值判断该数据包所要触发的功能子模块;所述功能平面ID为指示协议无感知转发设备,该数据包触发的功能平面,除了所述功能平面ID的字段,数据包的字段还包括:表ID、数据ID、操作码和数据更新内容;表ID指明待更新数据所属的表;数据ID指明待更新数据在表ID所指的表中的索引;操作码指明对数据做的操作;数据更新内容指存放数据的更新内容;/nMetadata数据查询功能子模块,负责对Metadata数据区域进行查询操作;/nMetadata数据更新功能子模块,负责对Metadata数据区域进行更新操作;该模块具有支持修改Metadata数据所有内容的Metadata数据内容操作指令集,该指令集使得数据包携带的更新内容可直接覆盖到Metadata的指定位置,从而完成更新任务;/n流表维护功能子模块,负责对协议无关转发设备的流表项进行修改、下发、删除和上报操作;所述流表项是协议无感知转发设备的基本组成,协议无感知转发设备包括若干流表,每个流表包括多个流表项;/n路由功能子模块,负责对协议无关转发设备的应答数据包进行封装、转发操作。/n...

【技术特征摘要】
1.一种基于协议无感知转发的高速数据更新系统,其对应的协议无关转发设备,其特征在于,包括:所述系统基于DPDK驱动的协议无感知转发模块,协议无感知转发模块作为一个基于DPDK驱动的模块运行在用户态,该协议无感知转发模块包括功能平面子模块、Metadata数据查询功能子模块、Metadata数据更新功能子模块、流表维护功能子模块和路由功能子模块;基于DPDK驱动的协议无感知转发模块利用DPDK开发套件,实现该模块下的子模块对协议无关转发设备的数据包的处理是经过轮询的方式从网卡硬件设备读取数据包,绕开操作系统内核;Metadata是协议无感知转发设备存储且可在流表项之间共享的数据,用户可以通过协议无感知技术和Metadata数据内容操作指令集对该区域的数据进行更新操作;其中:
功能平面子模块,接收携带更新指令的数据包,根据所述数据包的功能平面ID的字段值判断该数据包所要触发的功能子模块;所述功能平面ID为指示协议无感知转发设备,该数据包触发的功能平面,除了所述功能平面ID的字段,数据包的字段还包括:表ID、数据ID、操作码和数据更新内容;表ID指明待更新数据所属的表;数据ID指明待更新数据在表ID所指的表中的索引;操作码指明对数据做的操作;数据更新内容指存放数据的更新内容;
Metadata数据查询功能子模块,负责对Metadata数据区域进行查询操作;
Metadata数据更新功能子模块,负责对Metadata数据区域进行更新操作;该模块具有支持修改Metadata数据所有内容的Metadata数据内容操作指令集,该指令集使得数据包携带的更新内容可直接覆盖到Metadata的指定位置,从而完成更新任务;
流表维护功能子模块,负责对协议无关转发设备的流表项进行修改、下发、删除和上报操作;所述流表项是协议无感知转发设备的基本组成,协议无感知转发设备包括若干流表,每个流表包括多个流表项;
路由功能子模块,负责对协议无关转发设备的应答数据包进行封装、转发操作。<...

【专利技术属性】
技术研发人员:林国誌葛敬国陈家玓鄂跃鹏弭伟
申请(专利权)人:中国科学院信息工程研究所
类型:发明
国别省市:北京;11

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

1