基于流表驱动的异构协议转换方法和装置与流程

文档序号:18632392发布日期:2019-09-11 21:46阅读:153来源:国知局
基于流表驱动的异构协议转换方法和装置与流程

本发明涉及通信技术领域,尤其是涉及基于流表驱动的异构协议转换方法和装置。



背景技术:

目前,各个通信设备都是基于单一的通信协议,例如:存储系统和航天系统中一般采用单一的fc(fiberchannel,光纤通信)协议网络,嵌入式系统及高性能计算系统中一般采用rapidio和pcie(peripheralcomponentinterconnectexpress,扩展外围组件的扩展协议)的单一协议网络,数据中心及传统网络中一般采用ethernet的单一协议网络。但随着航空航天、工业控制、舰艇、坦克、飞机、雷达、电子战等作战设备技术突飞猛进,随着信息系统体系架构从冯诺依曼到软件定义的变革,对新一代软件定义体系架构的需求愈发紧迫,需要实现异构协议的互连互通。

实现异构协议的互连互通通常采用over(承接)技术或桥接技术。over技术存在转换性能效率低的缺点。桥接技术随着网络系统的复杂性,需要大量的桥接设备,而大量的桥接设备会增加整个网络的规模,严重影响网络组网的灵活性和扩展性,从而导致各类系统网络复杂,系统性能低,在实现协议转换时,转换性能效率低。



技术实现要素:

有鉴于此,本发明的目的在于提供基于流表驱动的异构协议转换方法和装置,可以进行源协议与目的协议的转换,达到线速处理要求,转换效率高。

第一方面,本发明实施例提供了基于流表驱动的异构协议转换方法,所述方法包括:

获取源协议报文;

将所述源协议报文通过统一协议解析跳转图进行解析和提取处理,得到报文载荷和源协议统一描述符信息;

将所述源协议统一描述符信息通过多级流表的异构协议报文包头转换处理,得到目标协议描述符信息;

对所述目标协议描述符信息进行提取,得到目标协议的包头信息和缓存地址信息;

根据所述缓存地址信息读取所述报文载荷;

将所述目标协议的包头信息和所述报文载荷进行封装,得到目标协议报文。

进一步的,所述将所述源协议统一描述符信息通过多级流表的异构协议报文包头转换处理,得到目标协议描述符信息包括,重复执行以下处理,直至每级结构流表都被遍历:

将所述源协议统一描述符信息进行解析,得到源协议报文关键字段和初始描述符信息;

将所述源协议报文关键字段进行匹配,得到第一级结构流表的地址信息;

根据所述第一级结构流表的地址信息从所述第一级结构流表中读取目标协议的包头信息;

将所述目标协议的包头信息和所述初始描述符信息进行封装,得到第一描述符。

进一步的,所述将所述源协议报文关键字段进行匹配,得到第一级结构流表的地址信息,包括:

根据所述源协议报文关键字段确定所述源协议报文的子类型;

根据所述源协议报文的子类型,得到所述第一级结构流表的地址信息。

进一步的,所述将所述源协议报文关键字段进行匹配,得到第一级结构流表的地址信息,包括:

根据所述源协议报文关键字段确定协议转换类型;

根据所述协议转换类型对应的编码信息,得到所述第一级结构流表的地址信息。

进一步的,所述源协议统一描述符信息包括包头长度、包头关键字段、载荷长度、载荷地址、各级结构流表的地址信息和会话标识符id中的一种或几种,其中,所述包头关键字段包括源协议标识符id和目标协议标识符id。

第二方面,本发明实施例提供了基于流表驱动的异构协议转换装置,所述装置包括:

获取单元,用于获取源协议报文;

第一处理单元,用于将所述源协议报文通过统一协议解析跳转图进行解析和提取处理,得到报文载荷和源协议统一描述符信息;

第二处理单元,用于将所述源协议统一描述符信息通过多级流表的异构协议报文包头转换处理,得到目标协议描述符信息;

提取单元,用于对所述目标协议描述符信息进行提取,得到目标协议的包头信息和缓存地址信息;

读取单元,用于根据所述缓存地址信息读取所述报文载荷;

封装单元,用于将所述目标协议的包头信息和所述报文载荷进行封装,得到目标协议报文。

进一步的,所述第二处理单元包括,重复执行以下处理,直至每级结构流表都被遍历:

将所述源协议统一描述符信息进行解析,得到源协议报文关键字段和初始描述符信息;

将所述源协议报文关键字段进行匹配,得到第一级结构流表的地址信息;

根据所述第一级结构流表的地址信息从所述第一级结构流表中读取目标协议的包头信息;

将所述目标协议的包头信息和所述初始描述符信息进行封装,得到第一描述符。

进一步的,所述第二处理单元包括:

根据所述源协议报文关键字段确定所述源协议报文的子类型;

根据所述源协议报文的子类型,得到所述第一级结构流表的地址信息。

第三方面,本发明实施例提供了电子设备,包括存储器、处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上所述的方法的步骤。

第四方面,本发明实施例提供了具有处理器可执行的非易失的程序代码的计算机可读介质,所述程序代码使所述处理器执行如上所述的方法。

本发明实施例提供了基于流表驱动的异构协议转换方法和装置,包括:获取源协议报文;将源协议报文通过统一协议解析跳转图进行解析和提取处理,得到报文载荷和源协议统一描述符信息;将源协议统一描述符信息通过多级流表的异构协议报文包头转换处理,得到目标协议描述符信息;对目标协议描述符信息进行提取,得到目标协议的包头信息和缓存地址信息;根据缓存地址信息读取报文载荷;将目标协议的包头信息和报文载荷进行封装,得到目标协议报文,可以进行源协议与目的协议的转换,达到线速处理要求,转换效率高。

本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。

为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

附图说明

为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例一提供的基于流表驱动的异构协议转换方法流程图;

图2为本发明实施例一提供的统一协议解析跳转示意图;

图3为本发明实施例一提供的协议无感报文包头转换处理示意图;

图4为本发明实施例一提供的目标协议报文封装处理示意图;

图5为本发明实施例二提供的基于流表驱动的异构协议转换架构示意图;

图6为本发明实施例三提供的基于流表驱动的异构协议转换装置示意图。

图标:

10-获取单元;20-第一处理单元;30-第二处理单元;40-提取单元;50-读取单元;60-封装单元。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

为便于对本实施例进行理解,下面对本发明实施例进行详细介绍。

实施例一:

图1为本发明实施例一提供的基于流表驱动的异构协议转换方法流程图。

参照图1,该方法包括以下步骤:

步骤s101,获取源协议报文;

在本实施例中,源协议报文是从外部激励源获取的,外部激励源可以包括但不限于二层mac(mediaaccesscontrol,介质访问控制),基于流表驱动的协议转换架构对从外部激励源获取的源协议报文进行处理,并转换为目标协议报文。

当获取源协议报文时,需要对源协议报文进行格式处理,将源协议报文中的所有字段都放在包头,报文载荷放在包头后面,从而得到包括包头和报文载荷格式的源协议报文。例如,将rapidio报文中间的mic-crc和尾部的final-crc去掉,并把报文载荷进行拼接;将fc协议报文尾部的crc(cyclicredundancycheck,循环冗余校验)字段和eof(endofframe,帧结束)字段去除;将以太网尾部的crc去除等。

步骤s102,将源协议报文通过统一协议解析跳转图进行解析和提取处理,得到报文载荷和源协议统一描述符信息;

在本实施例中,通过统一协议解析跳转图将源协议报文进行解析和提取,具体参照图2,此统一协议解析跳转图可以是软件定义的,idle为初始化,将源协议报文进行解析,得到fc协议、ethernet协议或rapdiio协议的报文,fc协议包括的子协议为fc-ae-asm;rapdiio协议包括的子协议为response(响应)、swrite(流写操作)、doorbell(门铃)、message(消息)和nwrite(写操作)等;ethernet协议包括的子协议为vlan(virtuallocalareanetwork,虚拟局域网)、ipv4(internetprotocolversion4,网际协议版本4)、tcp(transmissioncontrolprotocol,传输控制协议)、udp(userdatagramprotocol,用户数据报协议)和icmp(internetcontrolmessageprotocol,互联网控制报文协议)等。具体地,将源协议报文进行解析,判断源协议报文属于fc协议、ethernet协议或rapdiio协议中的哪类协议,如果源协议报文属于rapdiio协议,则判断属于rapdiio协议中的哪类子协议,从而完成对源协议报文的解析,得到报文载荷和源协议统一描述符信息。

进一步的,源协议统一描述符信息包括包头长度、包头关键字段、载荷长度、载荷地址、各级结构流表的地址信息和会话标识符id中的一种或几种,其中,包头关键字段包括源协议标识符id和目标协议标识符id。

步骤s103,将源协议统一描述符信息通过多级流表的异构协议报文包头转换处理,得到目标协议描述符信息;

在本实施例中,源协议统一描述符信息基于可编程技术,利用多级流表架构,实现协议无感的报文包头转换处理,即将源协议的包头信息转换为目标协议的包头信息。具体参照图3,多级结构流表包括第一级结构流表(多级结构流表-1)、第二级结构流表(多级结构流表-2),…,第n级结构流表(多级结构流表-n),多级结构流表中包括存储目标协议的包头字段。例如,当fc-ae-asm协议转换为rapidio协议时,多级流表里面就需要存储rapidio协议的包头字段,具体包括:vc、crf、prio、tt、ftype、destid、srcid、ttype、wrsize、srctid和address等字段。

本申请是基于流表驱动的,用户可以在线配置流表内部的具体信息,完成协议无感的报文包头转换处理,从而实现源协议包头信息到目标协议包头信息的异构协议转换,并且结构流表的级数可以灵活扩展,具有极大的灵活性的扩展性。

步骤s104,对目标协议描述符信息进行提取,得到目标协议的包头信息和缓存地址信息;

步骤s105,根据缓存地址信息读取报文载荷;

步骤s106,将目标协议的包头信息和报文载荷进行封装,得到目标协议报文。

在本实施例中,本申请是基于二层异构协议进行源协议报文与目标协议报文的转换,同时也支持osi标准的三层、四层,甚至更高层协议的解析与业务报文处理。本申请是多级流表驱动的多种异构协议转换,基于流水线机制,可以达到线速处理要求,处理性能高。

进一步的,步骤s103包括以下步骤,重复执行以下处理,直至每级结构流表都被遍历:

步骤s201,将源协议统一描述符信息进行解析,得到源协议报文关键字段和初始描述符信息;

步骤s202,将源协议报文关键字段进行匹配,得到第一级结构流表的地址信息;

步骤s203,根据第一级结构流表的地址信息从第一级结构流表中读取目标协议的包头信息;

步骤s204,将目标协议的包头信息和初始描述符信息进行封装,得到第一描述符。

在本实施例中,如图3所示,源协议统一描述符信息经过第一级可编程(pipeline-1)的描述符信息解析后,得到源协议报文关键字段和初始描述符信息;源协议报文关键字段再经过匹配和计算后,得到第一级结构流表的地址信息;并从第一级结构流表中读取目标协议的包头信息(例如:rapidio协议的vc、crf、prio、tt、ftype、destid、srcid等字段);新描述符封装模块根据第一级结构流表中存储的目标协议的包头信息与初始描述符信息进行封装,得到第一描述符。第二级可编程根据第一描述符,进行上述处理,并得到第二描述符,基于该可编程架构经过n级类似的处理后,最终输出目标协议描述符信息,从而实现源协议包头信息与目标协议包头信息的转换。

进一步的,步骤s202包括以下步骤:

步骤s301,根据源协议报文关键字段确定源协议报文的子类型;

步骤s302,根据源协议报文的子类型,得到第一级结构流表的地址信息。

在本实施例中,源协议包头信息通过匹配规则进行匹配,得到匹配结果,根据匹配结果从第一级结构流表中查找目标协议包头,其中,第一级结构流表中存储有目标协议报文包头。匹配规则可以为源协议报文的子类型的匹配过程,例如,源协议报文为rapidio协议的报文,通过匹配规则得到rapidio协议的报文的子协议为response,根据response匹配得到第一级结构流表的地址信息,再根据第一级结构流表的地址信息从第一级结构流表中读取目标协议的包头信息。

进一步的,步骤s202包括:

步骤s401,根据源协议报文关键字段确定协议转换类型;

步骤s402,根据协议转换类型对应的编码信息,得到第一级结构流表的地址信息。

在本实施例中,匹配规则可以为指令运算的匹配,即根据源协议报文关键字段确定是哪种协议转换的类型。例如,如果是fc协议转换为rapidio协议,fc协议转换为rapidio协议对应的编码信息为001,则根据001返回一个第一级结构流表的地址信息,再根据第一级结构流表的地址信息从第一级结构流表中读取目标协议的包头信息。

另外,如果查表得到的目标协议的包头信息占128比特,而源协议的包头信息为400比特,因此,需要通过多级可编程的处理过程,将所有的源协议的包头信息通过目标协议的包头信息进行替换。

对目标协议描述符信息中的关键信息进行提取,得到目标协议的包头信息和缓存地址信息,图4为目标协议报文的封装过程,根据缓存地址信息从buffer模块中读取报文载荷,报文封装模块将报文载荷和目标协议的包头信息进行封装,得到目标协议报文,从而完成源协议报文到目标协议报文的转换。

本发明实施例提供了基于流表驱动的异构协议转换方法,包括:获取源协议报文;将源协议报文通过统一协议解析跳转图进行解析和提取处理,得到报文载荷和源协议统一描述符信息;将源协议统一描述符信息通过多级流表的异构协议报文包头转换处理,得到目标协议描述符信息;对目标协议描述符信息进行提取,得到目标协议的包头信息和缓存地址信息;根据缓存地址信息读取报文载荷;将目标协议的包头信息和报文载荷进行封装,得到目标协议报文,可以进行源协议与目的协议的转换,达到线速处理要求,转换效率高。

实施例二:

图5为本发明实施例二提供的基于流表驱动的异构协议转换架构示意图。

参照图5,基于流表驱动的协议转换架构包括软件定义异构协议解析、协议无感报文包头转换处理和软件定义异构协议报文封装。

软件定义协议解析过程中将源协议报文描述符统一格式,结合协议无感报文包头转换处理,提出基于查表机制的多种异构协议包头字段的映射规则与报文封装技术,最后通过软件定义异构协议报文封装,将目标协议的包头信息和报文载荷进行封装,得到目标协议报文,可以进行源协议与目的协议的转换,达到线速处理要求,转换效率高。

实施例三:

图6为本发明实施例三提供的基于流表驱动的异构协议转换装置示意图。

参照图6,该装置包括:

获取单元10,用于获取源协议报文;

第一处理单元20,用于将源协议报文通过统一协议解析跳转图进行解析和提取处理,得到报文载荷和源协议统一描述符信息;

第二处理单元30,用于将源协议统一描述符信息通过多级流表的异构协议报文包头转换处理,得到目标协议描述符信息;

提取单元40,用于对目标协议描述符信息进行提取,得到目标协议的包头信息和缓存地址信息;

读取单元50,用于根据缓存地址信息读取报文载荷;

封装单元60,用于将目标协议的包头信息和报文载荷进行封装,得到目标协议报文。

进一步的,第二处理单元30包括,重复执行以下处理,直至每级结构流表都被遍历:

将源协议统一描述符信息进行解析,得到源协议报文关键字段和初始描述符信息;

将源协议报文关键字段进行匹配,得到第一级结构流表的地址信息;

根据第一级结构流表的地址信息从第一级结构流表中读取目标协议的包头信息;

将目标协议的包头信息和初始描述符信息进行封装,得到第一描述符。

进一步的,第二处理单元30包括:

根据源协议报文关键字段确定源协议报文的子类型;

根据源协议报文的子类型,得到第一级结构流表的地址信息。

本发明实施例提供了基于流表驱动的异构协议转换装置,包括:获取源协议报文;将源协议报文通过统一协议解析跳转图进行解析和提取处理,得到报文载荷和源协议统一描述符信息;将源协议统一描述符信息通过多级流表的异构协议报文包头转换处理,得到目标协议描述符信息;对目标协议描述符信息进行提取,得到目标协议的包头信息和缓存地址信息;根据缓存地址信息读取报文载荷;将目标协议的包头信息和报文载荷进行封装,得到目标协议报文,可以进行源协议与目的协议的转换,达到线速处理要求,转换效率高。

本发明实施例还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述实施例提供的基于流表驱动的异构协议转换方法的步骤。

本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器运行时执行上述实施例的基于流表驱动的异构协议转换方法的步骤。

本发明实施例所提供的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

另外,在本发明实施例的描述中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。

最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1