异构协议报文的转发方法、装置和网络交换设备与流程

文档序号:15402176发布日期:2018-09-11 17:48阅读:333来源:国知局

本发明涉及通信协议技术领域,尤其是涉及一种异构协议报文的转发方法、装置和网络交换设备。



背景技术:

通信网络中,通信的各方大多基于相同的协议进行通信,通信设备间需要有支持对应的协议交换设备以实现互连。网络交换设备需要能够解析协议的报文、查找转发表,并将协议报文转发至对应的目的端口。现有的网络交换设备协议固化,常常仅能处理单一的协议报文;由于不同的网络协议标准之间差异很大,例如包格式、包长度、地址位数等各不相同;因此,为了实现基于不同协议的网络设备之间进行通信,一般通过网关或者桥接设备进行协议转换,导致异构协议网络的构建具有局限性,可扩展性不佳。



技术实现要素:

有鉴于此,本发明的目的在于提供一种异构协议报文的转发方法、装置和网络交换设备,以使网络交换设备实现不同网络之间的通信,协议处理方式灵活且可扩展性强。

第一方面,本发明实施例提供了一种异构协议报文的转发方法,该方法应用于网络交换设备,该方法包括:接收网络报文;解析网络报文,得到网络报文的目的地址;从预设的转发表中查找目的地址对应的端口,以及端口对应的第一协议;判断第一协议与网络报文的第二协议是否匹配;如果否,按照预设的转换规则,对网络报文进行协议转换,以使网络报文的协议类型与端口相匹配;通过端口,转发协议转换后的网络报文。

结合第一方面,本发明实施例提供了第一方面的第一种可能的实施方式,其中,预设的转换规则至少包括替换字段、删除字段和添加字段中的一种。

结合第一方面的第一种可能的实施方式,本发明实施例提供了第一方面的第二种可能的实施方式,其中,如果预设的转换规则包括替换字段,对网络报文进行协议转换的步骤,包括:查找预设的协议转换映射表,将网络报文中,第二协议的字段替换为第一协议的相应字段;如果预设的转换规则包括删除字段,对网络报文进行协议转换的步骤,包括:将网络报文中,第一协议不具备的字段删除;如果预设的转换规则包括添加字段,对网络报文进行协议转换的步骤,包括:将第二协议不具备且第一协议具备的字段,添加至网络协议中。

结合第一方面,本发明实施例提供了第一方面的第三种可能的实施方式,其中,如果预设的转换规则包括替换字段,查找预设的协议转换映射表,将网络报文中,第二协议的字段替换为第一协议的相应字段的步骤,包括:查找协议转换映射表中的源地址映射子表、目的地址映射子表和优先级映射子表,将网络报文中,第二协议的字段替换为第一协议的相应字段。

结合第一方面,本发明实施例提供了第一方面的第四种可能的实施方式,其中,该方法还包括:将第一协议与第二协议的各个字段进行比对;根据比对结果,确定预设的转换规则。

结合第一方面,本发明实施例提供了第一方面的第五种可能的实施方式,其中,对网络报文进行协议转换的步骤,包括:对网络报文的协议包头进行协议转换,根据协议转换后的协议包头,对网络报文重新封装,得到第二协议对应的网络报文。

结合第一方面,本发明实施例提供了第一方面的第六种可能的实施方式,其中,该方法还包括:初始化各个端口的配置信息,配置信息至少包括协议类型、转发表和转换规则。

第二方面,本发明实施例还提供一种异构协议报文的转发装置,该装置设置于网络交换设备,该装置包括:接收模块,用于接收网络报文;解析模块,用于解析网络报文,得到网络报文的目的地址;查找模块,用于从预设的转发表中查找目的地址对应的端口,以及端口对应的第一协议;判断模块,用于判断第一协议与网络报文的第二协议是否匹配;协议转换模块,用于如果第一协议与网络报文的第二协议不匹配,按照预设的转换规则,对网络报文进行协议转换,以使网络报文的协议类型与端口相匹配;转发模块,用于通过端口,转发协议转换后的网络报文。

结合第二方面,本发明实施例提供了第二方面的第一种可能的实施方式,其中,该装置还包括:初始化模块,用于初始化各个端口的配置信息,配置信息至少包括协议类型、转发表和转换规则。

第三方面,本发明实施例还提供了一种网络交换设备,包括存储器和处理器,其中,存储器用于存储一条或多条计算机指令,一条或多条计算机指令被处理器执行,以实现上述异构协议报文的转发方法。

本发明实施例带来了以下有益效果:

本发明实施例提供的一种异构协议报文的转发方法、装置和网络交换设备,网络交换设备解析接收到的网络报文,得到该网络报文的目的地址;从预设的转发表中查找该目的地址对应的端口,以及该端口对应的第一协议;如果该第一协议与网络报文的第二协议不匹配,按照预设的转换规则,对网络报文进行协议转换;该网络报文的协议类型与端口相匹配后,再通过端口转发协议转换后的网络报文。该方式可以对来自不同协议网络的报文进行协议转换,以使网络交换设备实现不同网络之间的通信,协议处理方式灵活且可扩展性强。

本发明的其他特征和优点将在随后的说明书中阐述,或者,部分特征和优点可以从说明书推知或毫无疑义地确定,或者通过实施本公开的上述技术即可得知。

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

附图说明

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

图1为本发明实施例提供的一种异构协议报文的转发方法的流程图;

图2为本发明实施例提供的另一种异构协议报文的转发方法的流程图;

图3为本发明实施例提供的另一种异构协议报文的转发方法的流程图;

图4为本发明实施例提供的实现异构协议报文的转发方法的实体电路的结构图;

图5为本发明实施例提供的一种异构协议报文的转发装置的结构示意图;

图6为本发明实施例提供的一种网络交换设备的结构示意图。

具体实施方式

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

现有的网络交换设备通信协议单一,仅能够解析特定的协议包头,根据交换功能的需求,确定解析深度;网络交换设备的报文处理过程相对固定,无法在不同网络之间进行通信。以ethernet(以太网)为例,现有的网络设备在mac控制器(mac控制器为一种以太网中,数据链路层的芯片)之后根据交换机或路由器的功能,按照固定的处理流程逐层解析数据包,但是对于其他通信协议,如rapidio,infiniband或fibrechannel(光纤信道)等,则无法处理。

上述rapidio主要应用于嵌入式系统内部互连,支持芯片到芯片、板到板间的通讯,可作为嵌入式设备的背板(backplane)连接;上述infiniband主要用于服务器端的连接,例如服务器与服务器(比如复制,分布式工作等),服务器和存储设备(比如san和直接存储附件)以及服务器和网络之间(比如lan,wans和theinternet)的通信。

考虑到现有的网络交换设备仅能处理同种协议的报文,协议兼容性和可扩展性较差的问题,本发明实施例提供了一种异构协议报文的转发方法、装置和网络交换设备;该技术方法可以应用于各种网络交换设备中;本实施例中,协议也可以称为二层协议,即数据链路层协议;该技术可以采用相关的软件或硬件实现,下面通过实施例进行描述。

参见图1所示的一种异构协议报文的转发方法的流程图;该方法应用于网络交换设备,该方法包括如下步骤:

步骤s102,接收网络报文;

网络报文为网络交换设备接收到的交换与传输的数据单元,即站点一次性要发送的数据块;报文中包含了将要发送的完整的数据信息,长短不限且可变。

步骤s104,解析网络报文,得到网络报文的目的地址;

网络交换设备解析从网络中接收的网络报文,可以得到该报文的多种信息,除上述目的地址外,还可以提取得到其他有用的协议字段,例如该网络报文中携带的源地址、优先级等。

步骤s106,从预设的转发表中查找目的地址对应的端口,以及端口对应的第一协议;

具体地,网络交换设备在初始化时,可以预先配置好上述转发表(该转发表也可以称为映射表),该转发表可以包含端口的端口号、端口所连接网络的第一协议以及端口对于的目的地址等表项;该转发表可以分布式存储在各个端口ram(randomaccessmemory,随机存取存储器)中或者集中式存储在网络交换设备的ram中;该转发表可以为单播表,也可以为多播表。

步骤s108,判断第一协议与网络报文的第二协议是否匹配;

在实际实现时,可以判断第一协议与网络报文的第二协议是否相同,也可以判断网络报文的第二协议是否能够被第一协议所兼容。

步骤s110,如果否,按照预设的转换规则,对网络报文进行协议转换,以使网络报文的协议类型与端口相匹配;

不同的协议之间,其包格式、包长度、地址位数等可能均不同;上述预设的转换规则中包含有两两协议之间的对应关系;例如可以通过替换字段、删除字段和添加字段等多种方式,将报文从第一协议转换为第二协议,转换完毕后,采用第二协议对报文中的数据进行封装。

步骤s112,通过端口,转发协议转换后的网络报文;该网络报文可以转发至核心网,也可以转发至接入网的其他网络设备中。

本发明实施例提供了一种异构协议报文的转发方法,网络交换设备解析接收到的网络报文,得到该网络报文的目的地址;从预设的转发表中查找该目的地址对应的端口,以及该端口对应的第一协议;如果该第一协议与网络报文的第二协议不匹配,按照预设的转换规则,对网络报文进行协议转换;该网络报文的协议类型与端口相匹配后,再通过端口转发协议转换后的网络报文。该方式可以对来自不同协议网络的报文进行协议转换,以使网络交换设备实现不同网络之间的通信,协议处理方式灵活且可扩展性强。

参见图2所示的另一种异构协议报文的转发方法的流程图;该方法在图1所示方法基础上实现,该方法应用于网络交换设备;该方法包括如下步骤:

步骤s202,接收网络报文;

步骤s204,解析网络报文,得到网络报文的目的地址;

通过解析网络报文的协议包头,可以提取包含有目的地址等信息的相关字段;根据当前二层协议的类型以及设置情况,需要提取不同的字段,但是至少包含转发的目的地址,用于查找转发表。

步骤s206,从预设的转发表中查找目的地址对应的端口,以及端口对应的第一协议;

步骤s208,判断第一协议与网络报文的第二协议是否匹配;如果是,执行步骤s218;如果否,执行步骤s210;

步骤s210,将第一协议与第二协议的各个字段进行比对;根据比对结果,确定预设的转换规则;该预设的转换规则中可以包含替换字段、删除字段、添加字段中的一种或多种。

步骤s212,如果预设的转换规则包括替换字段,查找预设的协议转换映射表,将网络报文中,第二协议的字段替换为第一协议的相应字段;

该协议转换映射表中,将第一协议和第二协议的各个字段进行了匹配和映射,例如,用于保存目的地址的字段位置,在第一协议中可能设置于字段a,而在第二协议中可能设置于字段b;协议转换时,可以将目的地址从字段b转移至字段a。

上述查找预设的协议转换映射表,将网络报文中,第二协议的字段替换为第一协议的相应字段的步骤,具体可以通过下述方式实现:查找协议转换映射表中的源地址映射子表、目的地址映射子表和优先级映射子表,将网络报文中,第二协议的字段替换为第一协议的相应字段;该源地址映射子表、目的地址映射子表和优先级映射子表可以分别将源地址、目的地址和优先级的保存字段分别进行转换。例如,上述源地址映射子表的各个表项中保存了各种协议保存源地址的字段位置,以及各种协议之间的源地址字段的映射方式。

步骤s214,如果预设的转换规则包括删除字段,将网络报文中,第一协议不具备的字段删除;

步骤s216,如果预设的转换规则包括添加字段,将第二协议不具备且第一协议具备的字段,添加至网络协议中;

在实际实现时,上述协议转换映射表,或其他映射表可以保存有第二协议不具备且第一协议具备的字段,以及第一协议不具备且第二协议具备的字段,用于第一协议和第二协议相互转换时,添加删除字段。

具体地,上述预设的转换规则还可以描述如下:替换字段是通过查找协议转换映射表获取,将原二层协议包中的字段替换成新二层协议包中的字段;删除字段是指在新的二层协议包中没有与该字段对应的字段,在封装新二层协议包时,直接将该字段删除即可;添加字段是指根据预先设定的协议转换规则,在封装新二层协议的协议包时,需要添加的字段,这些字段在原二层协议包中没有与对应的字段。

步骤s218,通过所述端口,转发协议转换后的所述网络报文。

在实际实现时,上述异构协议报文的转发方法,可以由下述实体电路实现:软件定义的异构二层协议解析器模块,用于异构二层协议的解析,对协议字段进行提取;融合路由查表模块,用于对解析器提取的异构协议的目的地址查找对应端口号,以及协议转换类型等;协议转换查表模块,用于协议转换时对需要替换字段查协议转换映射表获取转换后的新协议字段;协议转换模块,用于对将需要协议转换的二层协议报文进行删除字段、替换字段、添加字段等操作,并重新封装成新的二层协议报文,实现二层协议转换功能。

由上述可知,本发明实施例首先通过使用软件定义的异构二层协议解析器模块实现对异构二层协议的解析;然后通过融合路由查表模块对异构二层协议的目的地址查找转发表,获取转发端口号以及转换类型,并根据查表结果判断是否需要协议转换;随后在协议转换查表模块中查找协议转换表,获取新二层协议的替换字段;最后在协议转换模块中完成新二层协议的协议包封装。整个过程实现了网络交换设备对异构二层协议的解析和查表以及协议转换,实现了基于不同二层协议的网络之间的通信。与现有技术相比,本发明实施例提供的协议处理方法更加灵活,可扩展性强,能够用于异构二层协议之间的通信。

参见图3所示的另一种异构协议报文的转发方法的流程图;该方法在上述图1或图2所示方法基础上实现;该方法应用于网络交换设备,该方法包括:

步骤s302,初始化各个端口的配置信息,该配置信息至少包括协议类型、转发表和转换规则;

上述设备及端口初始化的过程,还可以包括配置各端口二层协议类型,异构协议解析规则,地址匹配规则,转发表,协议转换规则等。该异构协议解析规则是指根据当前端口的二层协议类型,以及协议转换的方式,设定该协议包需要解析的字段;上述地址匹配规则是指异构二层协议的地址映射方式;上述转发表是指设备初始化时在网络交换设备中配置好的目的地址与端口号以及二层协议类型的映射表;上述协议转换规则是指异构协议字段的映射方式。

步骤s304,接收网络报文;解析网络报文,得到网络报文的目的地址;

步骤s306,从预设的转发表中查找目的地址对应的端口,以及端口对应的第一协议;

步骤s308,判断第一协议与网络报文的第二协议是否匹配;如果是,执行步骤s314;如果否,执行步骤s310;

步骤s310,按照预设的转换规则,对网络报文的协议包头进行协议转换;

协议转换的方式包括替换协议字段、删除字段、添加字段等动作;用协议转换后的字段替换当前协议包头中对应的字段,组成协议转换后的协议包头,重新封装成转换后的二层协议报文。

步骤s312,根据协议转换后的协议包头,对网络报文重新封装,得到第二协议对应的网络报文;

步骤s314,通过端口,转发协议转换后的网络报文。例如,网络报文可以发送至设备中的核心交换模块进行处理。

在实际实现时,上述异构协议报文的转发方法,可以由下述实体电路实现,如图4所示,该实体电路包括配置管理模块21,用于对系统各模块进行初始化配置,以及在系统运行时,对各模块进行状态跟踪和配置管理;

异构协议解析模块22,用于对设备接收到的协议包进行解析,根据配置情况,解析出协议头的字段传递给融合路由查表模块23和协议转换查表模块24以及协议转换模块25;

融合路由查表模块23,用于根据异构协议解析魔窟开22解析出的目的地址查找对应的转发端口号,转发表在设备初始化时由配置管理模块配置的,可以是任意二层协议地址与转发端口的映射表;

协议转换查表模块24,用于对需要做二层协议转换的数据包中,待替换字段进行查表,获取转换后协议的对应字段,协议转换表在设备初始化时由配置管理模块配置,至少包含地址转换表以及其他二层协议转换需要做映射的字段转换表;

协议转换模块25,用于对需要做二层协议转换的数据包,根据协议转换查表模块24中的查表结果,用新的二层协议的包头字段替换原二层协议包中的包头字段,重新封装新二层协议数据包。

对应于上述方法实施例,本发明实施例提供了一种异构协议报文的转发方法装置,如图5所示,该装置包括:

接收模块50,用于接收网络报文;

解析模块51,用于解析所述网络报文,得到所述网络报文的目的地址;

查找模块52,用于从预设的转发表中查找所述目的地址对应的端口,以及所述端口对应的第一协议;

判断模块53,用于判断所述第一协议与所述网络报文的第二协议是否匹配;

协议转换模块54,用于如果所述第一协议与所述网络报文的第二协议不匹配,按照预设的转换规则,对所述网络报文进行协议转换,以使所述网络报文的协议类型与所述端口相匹配;

转发模块55,用于通过所述端口,转发协议转换后的所述网络报文。

上述装置还包括:初始化模块,用于初始化各个端口的配置信息,该配置信息至少包括协议类型、转发表和转换规则。

本发明实施例提供了一种异构协议报文的转发装置,可以将需要协议转换的网络报文通过查找协议转换表,通过替换字段、删除字段、添加字段以使网络报文的第一协议包装成和第二协议相匹配,使得网络交换设备能处理多种协议的报文,提高了网络交换设备协议兼容性和可扩展性。

上述异构协议报文的转发方法和装置,提供了一种基于硬件实现的用于网络交换设备中的异构二层协议解析、融合匹配查表和协议转换的方法,用以解决网络交换设备对异构二层协议报文的处理问题,进一步实现异构二层协议的网络之间进行通信。该方式可以对来自不同协议网络的报文进行协议转换,以使网络交换设备实现不同网络之间的通信,协议处理方式灵活且可扩展性强。

本实施例提供了一种与上述方法实施例相对应的一种网络交换设备。图6为该网络交换设备的结构示意图,如图6所示,该网络交换设备包括存储器100和处理器101;其中,存储器100用于存储一条或多条计算机指令,一条或多条计算机指令被处理器执行,以实现上述异构协议报文的转发方法,该方法可以包括以上方法中的一种或多种。

进一步,图6所示的云端服务器还包括总线102和通信接口103,处理器101、通信接口103和存储器100通过总线102连接。

其中,存储器100可能包含高速随机存取存储器(ram,randomaccessmemory),也可能还包括非不稳定的存储器(non-volatilememory),例如至少一个磁盘存储器。通过至少一个通信接口103(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。总线102可以是isa总线、pci总线或eisa总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。

处理器101可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器101中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器101可以是通用处理器,包括中央处理器(centralprocessingunit,简称cpu)、网络处理器(networkprocessor,简称np)等;还可以是数字信号处理器(digitalsignalprocessing,简称dsp)、专用集成电路(applicationspecificintegratedcircuit,简称asic)、现成可编程门阵列(field-programmablegatearray,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器100,处理器101读取存储器100中的信息,结合其硬件完成前述实施例的方法的步骤。

本发明实施例还提供了一种机器可读存储介质,该机器可读存储介质存储有机器可执行指令,该机器可执行指令在被处理器调用和执行时,机器可执行指令促使处理器实现上述异构协议报文的转发方法,具体实现可参见方法实施例,在此不再赘述。

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

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

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