一种报文处理方法、装置及存储介质与流程

文档序号:18639379发布日期:2019-09-11 22:47阅读:111来源:国知局
一种报文处理方法、装置及存储介质与流程

本发明涉及通信领域,尤其涉及一种报文处理方法、装置及存储介质。



背景技术:

软件定义网络(softwaredefinednetwork,sdn)是一种新型的网络架构,sdn的核心功能是将网络设备的控制面与网络设备的转发面分离;分离之后的控制面是开放的,通过openflow协议受控制器集中控制。控制器可对网络业务灵活控制,并且能够对信息进行集中更改,无需在每个网络设备上分别进行配置和更改。

相关技术中,sdn中报文处理方法的流程示意图,如图1所示,网络设备接收到业务触发的报文时,将报文发送至控制器(步骤1),以请求控制器指示网络设备针对该报文的处理方式。其中,所述报文至少包括:地址解析协议(addressresoltionprotocol,arp)报文、控制报文协议(internetcontrolmessageprotocol,icmp)报文、动态主机配置协议(dynamichostconfigurationprotocol,dhcp)报文、广播协议请求报文或组播协议请求报文等。控制器接收到网络设备发送的报文后,根据自身的业务设置将转发逻辑下发至网络设备的转发面(步骤2)。其中,转发逻辑承载在网络设备的多张流表中,流表至少包括匹配域、指令集等部分。网络设备接收到网络业务时,匹配流表以获取网络业务的处理方式,并按照获取的处理方法对网络业务进行处理(步骤3),进而实现网络业务功能。

根据图1所示的报文处理流程,随着网络规模的扩大,以及网路业务需求的增加,控制器将接收海量的代处理报文;由于控制器的处理能力有限,当代处理报文数量过多,导致控制器的处理能力出现拥塞时,降低网络业务的处理效率。



技术实现要素:

有鉴于此,本发明实施例期望提供一种报文处理方法、装置及存储介质,能够减少控制器对报文的处理量,提高网络业务的处理效率。

为达到上述目的,本发明实施例的技术方案是这样实现的:

本发明实施例提供一种报文处理方法,包括:

转发面设备接收第一代处理表;所述第一代处理表用于指示所述转发面设备对第一类型报文的处理方式;

基于所述第一代处理表对接收的第一报文进行处理。

上述方案中,所述转发面设备接收第一代处理表之前,所述方法还包括:所述转发面设备接收第二报文;所述第二报文为具有第一类型的报文;将所述第二报文发送至控制面设备。

上述方案中,所述基于所述第一代处理表对接收的第一报文进行处理,包括:

获取所述第一报文的类型;

在所述第一代处理表中匹配与所述第一报文相同的报文类型;

在匹配结果为是时,基于匹配得到的报文类型对应的处理方式对所述第一报文进行处理。

上述方案中,所述基于所述第一代处理表对接收的第一报文进行处理,包括:

获取所述第一报文的类型;

在所述第一代处理表中匹配与所述第一报文相同的报文类型;

在匹配结果为否时,将所述第一报文转发至所述控制面设备。

上述方案中,所述方法还包括:

所述转发面设备接收第二代处理表;

利用所述第二代处理表更新所述第一代处理表。

本发明实施例还提供一种报文处理方法,包括:

控制面设备基于第一类型报文和第一类型报文的处理方式构建第一代处理表;

发送所述第一代处理表至转发面设备。

上述方案中,所述控制面设备基于第一类型报文和第一类型报文的处理方式构建第一代处理表之前,所述方法还包括:

所述控制面设备接收所述转发面设备发送的第二报文;所述第二报文为具有第一类型的报文。

上述方案中,所述控制面设备基于第一类型报文和第一类型报文的处理方式构建第一代处理表,包括:

所述控制面设备解析所述第二报文,获取所述第二报文对应的第一类型以及所述第一类型报文的处理方式;

建立所述第一类型报文与所述第一类型报文的处理方式之间的第一对应关系;

将所述第一对应关系存储至所述第一代处理表。

上述方案中,所述发送所述第一代处理表至转发面设备之后,所述方法还包括:

所述控制面设备接收所述转发面设备发送的第一报文,所述第一报文的报文类型不存在于所述第一代处理表中;

解析所述第一报文,获取所述第一报文对应的第二类型以及所述第二类型报文的处理方式;

建立所述第二类型报文与所述第二类型报文的处理方式之间的第二对应关系;

将所述第二对应关系存储至第二代处理表。

上述方案中,所述方法还包括:所述控制面设备发送所述第二代处理表至所述转发面设备。

本发明实施例还提供一种报文处理装置,包括:

第一接收模块和处理模块;其中,

所述第一接收模块,用于接收第一代处理表;所述第一代处理表用于指示所述转发面设备对第一类型报文的处理方式;

所述处理模块,用于基于所述第一代处理表对接收的第一报文进行处理。

上述方案中,所述第一接收模块,还用于接收第二报文;所述第二报文为具有第一类型的报文;

相应的,所述装置还包括:

第一发送模块,用于将所述第二报文发送至控制面设备。

上述方案中,所述处理模块,具体用于获取所述第一报文的类型;

在所述第一代处理表中匹配与所述第一报文相同的报文类型;

在匹配结果为是时,基于匹配得到的报文类型对应的处理方式对所述第一报文进行处理。

上述方案中,所述处理模块,具体用于获取所述第一报文的类型;

在所述第一代处理表中匹配与所述第一报文相同的报文类型;

在匹配结果为否时,将所述第一报文转发至所述控制面设备。

上述方案中,所述第一接收模块,还用于接收第二代处理表;

所述处理模块,还用于利用所述第二代处理表更新所述第一代处理表。

本发明实施例还提供一种报文处理装置,包括:

构建模块,用于基于第一类型报文和第一类型报文的处理方式构建第一代处理表;

第二发送模块,用于发送所述第一代处理表至转发面设备。

上述方案中,所述装置还包括:

第二接收模块,用于接收所述转发面设备发送的第二报文;所述第二报文为具有第一类型的报文。

上述方案中,所述构建模块,具体用于解析所述第二报文,获取所述第二报文对应的第一类型以及所述第一类型报文的处理方式;

建立所述第一类型报文与所述第一类型报文的处理方式之间的第一对应关系;

将所述第一对应关系存储至所述第一代处理表。

上述方案中,所述第二接收模块,还用于接收所述转发面设备发送的第一报文,所述第一报文的报文类型不存在于所述第一代处理表中;

所述构建模块,还用于解析所述第一报文,获取所述第一报文对应的第二类型以及所述第二类型报文的处理方式;

建立所述第二类型报文与所述第二类型报文的处理方式之间的第二对应关系;

将所述第二对应关系存储至第二代处理表。

上述方案中,所述第二发送模块,还用于发送所述第二代处理表至所述转发面设备。

本发明实施例还提供一种报文处理装置,包括:

处理器和用于存储能够在所述处理器上运行的计算机程序的存储器,

其中,所述处理器用于运行所述计算机程序时,执行上述方法的步骤。

本发明实施例还提供一种存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述方法的步骤。

本发明实施例提供的报文处理方法、装置及存储介质,控制面设备基于第一类型报文和第一类型报文的处理方式构建第一代处理表,并发送所述第一代处理表至转发面设备;所述第一代处理表用于指示所述转发面设备对第一类型报文的处理方式。转发面设备接收第一代处理表,并基于所述第一代处理表对接收的第一报文进行处理。如此,转发面设备通过获取特定类型报文的处理方式,使得转发面设备在接收到报文的类型与第一代处理表中的报文类型匹配时,能够基于第一代处理表中记载的报文处理方式进行处理;转发面设备无需将接收的报文发送至控制面设备进行处理,缓解了控制面设备的处理压力,提高了控制面设备的处理速度,进而提高了网络业务的处理效率。

附图说明

图1为相关技术中sdn中报文处理方法的流程示意图;

图2为本发明实施例一报文处理方法的处理流程示意图;

图3为本发明实施例转发面设备基于第一代处理表对接收的第一报文进行处理的流程示意图;

图4为本发明实施例二报文处理方法的处理流程示意图;

图5为本发明实施例三报文处理方法的处理流程示意图;

图6为本发明实施例四报文处理方法的处理流程示意图;

图7为本发明实施例五报文处理方法的处理流程示意图;

图8为本发明实施例控制面设备基于第一类型报文和第一类型报文的处理方式构建第一代处理表的处理流程示意图;

图9为本发明实施例六报文处理方法的处理流程示意图;

图10为本发明实施例七报文处理方法的处理流程示意图;

图11为本发明实施例八报文处理方法的处理流程示意图;

图12为本发明实施例九报文处理方法的处理流程示意图;

图13为本发明实施例十报文处理方法的处理流程示意图;

图14为本发明实施例十一报文处理装置的组成结构示意图;

图15为本发明实施例十二报文处理装置的组成结构示意图;

图16为本发明实施例报文处理装置的硬件组成结构示意图。

具体实施方式

为了能够更加详尽地了解本发明实施例的特点与技术内容,下面结合附图对本发明实施例的实现进行详细阐述,所附附图仅供参考说明之用,并非用来限定本发明。

实施例一

本发明实施例一提供的报文处理方法的处理流程,如图2所示,包括以下步骤:

步骤s101,转发面设备接收第一代处理表。

这里,所述第一代处理表根据报文的类型至少包括代应答表和代转发表;所述第一代处理表由控制面设备发送,所述第一代处理表用于指示第一类型报文的处理方式。转发面设备也可以接收控制面设备发送的多种类型报文的处理方式。

可以理解为,转发面设备针对不同类型的报文,需要执行的处理过程不同。举例来说,针对arp请求报文、dhcp请求报文、icmp请求报文,转发面设备可根据第一代处理表进行代应答;对于arp请求报文、dhcp请求报文、icmp请求报文,转发面设备代应答的内容也不相同。针对广播请求报文或组播请求报文,转发面设备可根据第一代处理表进行代转发;对于广播请求报文和组播请求报文,转发面设备代转发的内容也不相同。

步骤s102,基于所述第一代处理表对接收的第一报文进行处理。

这里,处理至少包括:代转发或代应答。

在一可选实施方式中,转发面设备基于第一代处理表对接收的第一报文进行处理的具体处理过程,如图3所述,包括以下步骤:

步骤s1021,转发面设备获取第一报文的类型。

这里,转发面设备根据接收的第一报文,获取第一报文的类型。

其中,所述第一报文的类型至少包括:arp请求报文、dhcp请求报文、icmp请求报文、组播请求报文、转播请求报文等。

步骤s1022,在所述第一代处理表中匹配与所述第一报文相同的报文类型;在匹配结果为是时,执行步骤s1023;在匹配结果为否时,执行步骤s1024。

在一可选实施方式中,转发面设备在所述第一代处理表中查找与所述第一报文相同的报文类型。

步骤s1023,基于匹配得到的报文类型对应的处理方式对所述第一报文进行处理。

转发面设备在所述第一代处理表中查到与所述第一报文类型相同的报文类型时,按照所述第一代处理表中记载的报文类型对应的处理凡是对所述第一报文进行处理。

这里,转发面设备通过匹配自身获取的第一代处理表,可直接根据第一代处理表记载的处理方式对接收到的第一报文进行处理,无需将所述第一报文上报至控制面设备处理,缓解了控制面设备的处理压力,提高了控制面设备的处理速度,进而提高了网络业务的处理效率。

步骤s1024,将所述第一报文转发至所述控制面设备。

这里,由于转发面设备在自身获取的第一代处理表中未匹配到与第一报文相同的报文类型,即第一代处理表未记载转发面设备对第一报文的处理方式,因此转发面设备需将第一报文发送至控制面设备,由控制面设备对第一报文进行处理。

实施例二

本发明实施例二提供的报文处理方法的处理流程,如图4所示,包括以下步骤:

步骤s201,转发面设备接收电子设备发送的第二报文。

这里,所述第二报文为具有第一类型的报文。

步骤s202,转发面设备将所述第二报文发送至控制面设备。

步骤s203,转发面设备接收第一代处理表。

这里,转发面设备接收控制面设备发送的第一代处理表;所述第一代处理表由控制面设备基于第二报文的类型、第二报文的类型对应的处理方式等信息构建得到。

步骤s204,转发面设备接收电子设备发送的第一报文。

步骤s205,转发面设备基于所述第一代处理表对所述第一报文进行处理。

这里,转发面设备对所述第一报文的处理过程,与实施例一中步骤s102的处理过程相同,这里不再赘述。

实施例三

本发明实施例三提供的报文处理方法处理流程,如图5所示;本发明实施例三提供的报文处理方法的处理流程与上述实施例一和实施例二相似,不同之处在于,在步骤s102之后,或在步骤s205之后,还包括:

步骤s103,转发面设备接收第二代处理表。

这里,转发面设备接收控制面设备发送的第二代处理表,所述第一代处理表与所述第一代处理表中记载的报文类型不同,或对于相同类型的报文,所述第二代处理表中记载的处理方式与所述第一代处理表中记载的处理方式不同。

步骤s104,转发面设备利用所述第二代处理表更新所述第一代处理表。

在一可选实施例中,转发面设备在第一代处理表中增加第二代处理表中记载的报文类型及对应的处理方式。

在另一可选实施例中,转发面设备利用第二代处理表记载的报文类型对应的处理方式,更新第一代处理表记载的相同报文类型对应的处理方式。

实施例四

本发明实施例四提供的报文处理方法的处理流程,如图6所示,包括以下步骤:

步骤s301,控制面设备基于第一类型报文和第一类型报文的处理方式构建第一代处理表。

在一实施例中,由于组播请求报文或广播请求报文等特定类型的报文的字段值是可以预先获取的,并且报文的字段值是固定的,即控制面设备无需通过转发面设备发送的报文来获取报文的字段值;因此,控制面设备建立预先获取的第一类型报文与所述第一类型报文的处理方式之间的第一对应关系,将所述第一对应关系存储至所述第一代处理表,以实现所述第一代处理表的构建。

步骤s302,控制面设备发送所述第一代处理表至转发面设备。

实施例五

由于arp请求报文、dhcp请求报文、icmp请求报文等特定类型的报文的关键字段值是无法预先获得的,并且报文的字段值是不固定的;因此,控制面设备必须通过解析转发面设备发送的报文,获知报文的关键字段值才能获取报文类型及对应的处理方式。

基于此,本发明实施例五提供的报文处理方法的处理流程,如图7所示,本发明实施例五提供的报文处理方法与本发明实施例四提供的报文处理方法相似,不同之处在于,在步骤s301之前,还包括步骤:

步骤s300,控制面设备接收所述转发面设备发送的第二报文。

所述第二报文为具有第一类型的报文。

相应的,控制面设备基于第一类型报文和第一类型报文的处理方式构建第一代处理表的处理过程,如图8所示,包括以下步骤:

步骤s401,控制面设备解析所述第二报文。

这里,控制面设备通过解析所述第二报文,获得所述第二报文的关键字段值,以及第二报文对应的第一类型以及所述第一类型报文的处理方式。

步骤s402,建立所述第一类型报文与所述第一类型报文的处理方式之间的第一对应关系。

这里,控制面设备根据第一类型报文以及第一类型报文的处理方式建立第一对应关系。

步骤s403,将所述第一对应关系存储至所述第一代处理表。

这里,控制面设备将建立的第一对应关系存储至第一代处理表。

实施例六

本发明实施例六提供的报文处理方法处理流程,如图9所示;本发明实施例六提供的报文处理方法的处理流程与上述实施例四和实施例五相似,不同之处在于,在步骤s302之后,还包括:

步骤s303,控制面设备接收所述转发面设备发送的第一报文。

在一实施例中,转发面设备接收到电子设备发送的第一报文,将第一报文与自身存储的第一代处理表进行匹配,确定第一代处理表中不存在与第一报文相同的报文类型后,转发面设备将第一报文发送至控制面设备。

步骤s304,控制面设备解析所述第一报文,获取所述第一报文对应的第二类型以及所述第二类型报文的处理方式。

步骤s305,控制面设备建立所述第二类型报文与所述第二类型报文的处理方式之间的第二对应关系。

步骤s306,控制面设备将所述第二对应关系存储至第二代处理表。

步骤s307,控制面设备发送所述第二代处理表至所述转发面设备。

这里,控制面设备通过将所述第二代处理表至所述转发面设备,使得转发面设备获得第二代处理表中记载的第二类型报文的处理方式。

实施例七

以转发面设备接收到电子设备发送的arp请求报文为例,本发明实施例七报文处理方法的处理流程,如图10所示,包括:

步骤s801,转发面设备第一次接收到电子设备发送的arp请求报文。

这里,所述转发面设备可以是开放流(openflow)设备,所述电子设备可以是所述转发面设备下挂的主机,也可以是与所述转发面设备相邻的转发面设备。

此时,由于转发面设备是第一次接收到电子设备发送的arp请求报文,因此转发面设备将按照现有的sdn组网场景中已有的实现方式,执行步骤s402。

步骤s802,转发面设备将所述arp请求报文上送至控制面设备。

步骤s803,控制面设备向转发面设备发送arpreply报文。

本发明实施例中,控制面设备接收到转发面设备发送的arp请求报文后,对所述arp请求报文进行解析,根据所述arp请求报文的目的ip地址信息向所述转发面设备发送arpreply报文。

步骤s804,控制面设备判断所述arpreply报文是否可以由转发面设备代答处理,判断结果为是时,执行步骤s805,判断结果为否时,执行步骤s809。

这里,如果所述arpreply报文为免费arp报文或arp探测报文,则判断为该arpreply报文不可以由转发面设备代答处理。

免费arp报文是电子设备用于确定当前使用的ip地址是否有其他电子设备在使用;电子设备确定当前使用的ip地址是否有其他电子设备在使用的过程为,电子设备向转发面设备发送一个免费arp报文,如果没有收到对应该免费arp报文的回应,说明该电子设备当前使用的ip地址没有与其他电子设备使用的ip地址冲突;反之,若电子设备收到对应该免费arp报文的回应,说明该电子设备当前使用的ip地址与其他电子设备使用的ip地址冲突。当该电子设备当前使用的ip地址与其他电子设备使用的ip地址冲突,并且该电子设备当前使用的ip地址已经生效时,电子设备会通知网络设备,该ip地址已经占用。

arp探测报文用于在电子设备使用一个ip地址之前,电子设备通过arp探测报文检测该ip地址是否已经被使用;若该ip地址未被使用,电子设备将使用该ip地址;若该ip地址已经被使用,电子设备将请求服务器为其分配其他的ip地址。

由于转发面设备仅能获知整个sdn网络中部分arp的使用情形,而回应免费arp报文和arp探测报文时,需要参照对整个网络中的arp的使用情形,因此转发面设备无法为控制面设备代答免费arp报文和arp探测报文,需要控制面设备基于整个sdn网络中arp的使用情形,对免费arp报文和arp探测报文进行回应。

步骤s805,控制面设备向转发面设备发送arp代答表。

在一具体实施例中,控制面设备根据arp请求报文的目的ip地址信息、以及控制面设备与转发面设备预先约定的流表号以及流表格式封装arp代答表,并将封装好的arp代答表发送至转发面设备。

步骤s806,转发面设备接收并保存arp代答表。

转发面设备接收控制面设备发送的arp代答表,与转发面设备自身存储的其他任何表没有跳转关系。也就是说,对于转发面设备,arp代答表是一个独立的表。

步骤s807,转发面设备再次接收到arp请求报文时,基于arp代答表进行处理。

在一具体实施方式中,转发面设备再次接收到arp请求报文时,解析arp请求报文,至少获得arp请求报文的源ip地址信息和目的ip地址信息;当获得的源ip地址信息和目的ip地址信息与arp代答表中的相应信息一致时,由转发面设备按照arp代答表中的信息封装回应arpreply报文。当获得的源ip地址信息或目的ip地址信息与arp代答表中的相应信息不一致时,转发面设备将该arp请求报文发送至控制面设备。

步骤s808,控制面设备对arp请求报文进行处理。

在一实施例中,当转发面设备由于arp请求报文中的目的ip地址信息与arp代答表中的相应信息不一致,而向控制面设备发送arp请求报文时,控制面设备向转发面设备下发携带新的目的ip地址信息的代答表。

在另一实施例中,当转发面设备由于arp请求报文中的源ip地址信息与arp代答表中的相应信息不一致,而向控制面设备发送arp请求报文时,控制面设备需要封装arpreply报文,并向转发面设备下发新的arp代答表。

因此,当转发面设备自身存储由arp代答表后,还向控制面设备发送arp请求报文时,转发面设备需要在向控制面设备发送arp请求报文时,说明发送arp请求报文的具体原因,以使控制面设备根据原因对arp请求报文进行相应的处理。

步骤s809,控制面设备基于arp请求报文直接进行处理。

可以理解为,当控制面设备接收到转发面设备发送的免费arp报文或arp探测报文时,控制面设备直接进行处理,不经转发面设备执行代答流程。

相关技术中,转发面设备,如开放流(openflow)设备接收到主机发送的arp请求报文后,均会将接收到的arp请求报文发送至控制面设备,由控制面设备统一进行学习和代答处理。导致对于大规模的组网或业务叠加的场景,控制面设备处理arp请求报文的业务量大;或者控制面设备不在线时,电子设备(主机或转发面设备)发送的arp请求报文无法解析。通过本发明实施例的报文处理方法,将控制面设备的部分arp代答功能下移至转发面设备,减轻了控制面设备对arp请求报文的处理压力,提高了对arp请求报文的处理速率,提高了整个网络的稳定性。

实施例八

以转发面设备接收到电子设备发送的广播组播报文为例,本发明实施例八报文处理方法的处理流程,如图11所示,包括:

步骤s501,控制面设备预先向转发面设备发送广播组播代转表。

本发明实施例中,控制面设备根据组网中不同的广播域向转发面设备发送对应的广播组播代转表。

对于sdn组网场景,广播组播报文进入转发面设备的端口类型包括两种,分别是fabric端口和access端口;其中,fabric端口为连接相邻转发面设备的隧道口,access端口为转发面设备下挂主机的端口。针对fabric端口和access端口,控制面设备分别下发一张代转表;也就是说,控制面设备向转发面设备下发两张代转表,两张代转表分别对应fabric端口和access端口。并且,两张代转表均下发到转发面设备的目的介质访问控制(mac,mediaaccesscontrol)表中,广播组播代转表的使用通过流水线触发。同一广播域的两张广播组播代转表中的目的mac都是01:00:00:00:00:00,广播组播代转表能够匹配所有的广播组播报文,转发面设备根据具体的端口类型以及广播域值作为匹配广播组播报文的依据。

步骤s502,转发面设备接收电子设备发送的广播组播报文。

本发明实施例中,转发面设备接收转发面设备本端下挂的主机发送的广播组播报文,或者转发面设备接收相邻的转发面设备发送的广播组播报文。

步骤s503,转发面设备基于存储的代转表转发广播组播报文。

本发明实施例中,由于代转表的使用通过流水线触发,转发面设备接收到电子设备发送的广播组播报文之后,根据流表的流水线流程,到达转发面设备的目的mac时,判断所述广播组播报文的入端口类型为access端口还是fabric端口。

在所述广播组播报文的入端口类型为access端口时,转发面设备根据端口类型、广播域值以及目的mac地址,匹配预先存储的access端口类型对应的广播组播代转表;根据匹配得到的处理流程对广播组播报文进行转发;以所述广播组播代转表中的处理流程为走一张组表,组表中的出端口为该转发面设备上所有的与广播域值相关的access端口和fabric端口为例,转发面设备向除从所述广播组播代转表中接收所述广播组播报文access端口以外的所有端口转发该广播组播报文,以完成入端口为access端口类型的广播组播报文的代转流程。

在所述广播组播报文的入端口类型为fabric端口时,转发面设备根据端口类型、广播域值以及目的mac地址,匹配预先存储的fabric端口类型对应的广播组播代转表;根据匹配得到的处理流程对广播组播报文进行转发;以所述广播组播代转表中的处理流程为走一张组表,组表中的出端口为该转发面设备上所有的与广播域值相关的access端口为例,转发面设备向所述广播组播代转表中所述有access端口类型转发该广播组播报文,以完成入端口为fabric端口类型的广播组播报文的代转流程。

相关技术中,对于sdn组网场景,转发面接收到广播组播报文后,按照流表流水线流程进行转发,当转发至转发面设备的目的mac表时,由于目的mac表通常只会下发实时存在的主机的目的mac表,因此会导致很多时候无法匹配而将广播组播报文上送至控制器,控制器根据上送广播组播报文的上送端口查询其所属的广播域,再将广播组播报文从所述广播域的端口进行广播组播。通过本发明实施例的报文处理方法,将控制面设备的广播组播报文的代转功能下移至转发面设备,减轻了控制面设备对广播组播报文的处理压力,提高了对广播组播报文的处理速率,提高了整个网络的稳定性。

实施例九

在sdn组网场景中,转发面设备下挂的主机在上线时,主机需要通过与控制面设备之间进行dhcp报文的交互,以获取ip地址。当控制面设备为控制器时,控制器充当hdcp服务器的角色;主机以广播形式向转发面设备发送dhcpdiscover报文,转发面设备基于dhcpdiscover报文匹配控制器预先下发给转发面设备的dhcp基础流表,并将dhcpdiscover报文发送给控制器。控制器接收并解析dhcpdiscover报文,从尚未出租的ip地址中选择一个ip地址分配给主机。同时,控制器向转发面设备发送一个包含出去的ip地址和其他设置的dhcpoffer报文;转发面设备按照基本的转发流表将dhcpoffer报文转发给对应的下挂主机。当有多台控制器同时向主机回应dhcpoffer报文时,主机只接受第一个收到的dhcpoffer报文,并以广播的形式回答一个dhcprequest报文,dhcprequest报文中包含向其所选定的控制器请求ip地址的内容。主机通过以广播的形式回答dhcprequest报文,使得主机通知所有控制器其选择的ip地址对应的控制器。转发面设备接收到dhcprequest报文之后,匹配dhcp基础流表,并将dhcprequest报文发送至控制器。控制器接收并解析dhcprequest报文,同时向转发面设备发送一个包含控制器提供的ip地址和dhcpack报文,以通知主机可使用控制器所提供的ip地址;转发面设备接收到dhcpack报文后,将dhcpack报文发送给转发面设备下挂的主机,主机将自身的tcp/ip协议与网卡绑定。除主机选择的控制器外,其他的控制器都将收回曾经提供的ip地址。

上述过程为sdn网络场景下主机获取ip地址的基本实现流程,通常控制器出租给主机使用的ip地址存在一个租借期限,期限到达时控制器需要收回出租的ip地址。如果主机向继续使用该ip地址,延长ip地址的租期,需要更新ip租约。即在主机使用ip地址的时间达到ip地址的租期的一半时,主机主动向控制器发送续租报文;该续租报文仍旧封装在dhcprequest报文中,经匹配转发面设备上的dhcp基础流表而上送至控制器,控制器更新ip地址的租约时间,并封装在dhcpack报文中,通过转发面设备转发至相应的下挂主机,以完成续租流程

以转发面设备接收到主机发送的dhcp续租请求报文为例,本发明实施例九报文处理方法的处理流程,如图12所示,包括:

步骤s601,转发面设备第一次接收主机发送的dhcpdiscover广播报文。

这里,转发面设备第一次接收转发面设备下挂的主机发送的dhcpdiscover广播报文,或者转发面设备第一次接收相邻的转发面设备发送的dhcpdiscover广播报文。

步骤s602,转发面设备将dhcpdiscover广播报文发送至控制面设备。

在一实施例中,控制面设备预先向转发面设备发送dhcp基础流表,转发面设备接收到dhcpdiscover广播报文后,利用dhcpdiscover广播报文匹配该dhcp基础流表,根据匹配结果将dhcpdiscover广播报文上送至控制面设备进行处理。

步骤s603,控制面设备为主机分配ip地址,向转发面设备发送dhcpoffer报文。

在一实施例中,控制面设备接收到转发面设备上送的dhcpdiscover广播报文后,对所述dhcpdiscover广播报文进行解析、处理,从尚未出租的ip地址中选择一个ip地址发送给主机,同时向转发面设备发送一个包含出租的ip地址和其他相关设置的dhcpoffer报文。

步骤s604,转发面设备接收dhcpoffer报文,并将dhcpoffer报文转发给主机。

步骤s605,主机向转发面设备发送dhcprequest广播报文。

这里,dhcprequest广播报文中包括主机向控制面设备请求ip地址的内容。

步骤s606,转发面设备匹配预先存储的基础流表,根据匹配结果将dhcprequest广播报文发送至控制面设备。

步骤s607,控制面设备向转发面设备发送dhcpack报文和dhcp续租代答表。

本发明实施例中,控制面设备接收并解析dhcprequest广播报文,同时向转发面设备发送包含控制面设备提供的ip地址和相关设置的dhcpack报文,以使主机获知主机可使用的ip地址。控制面设备还根据主机的源mac地址及为主机分配的ip地址信息,按照预先与转发面设备越好的流表号及流表格式封装一个全新的dhcp续租代答表,并将dhcp续租代答表下发给转发面设备。

步骤s608,转发面设备将dhcpack报文转发给主机,将dhcp续租代答表进行本地保存。

步骤s609,转发面设备再次接收主机发送的dhcprequest广播报文,并将dhcprequest广播报文与dhcp续租代答表进行匹配;匹配结果为是时,执行步骤s610,匹配结果为否时,执行步骤s606。

步骤s610,转发面设备根据dhcp续租报文匹配dhcp续租代答表,回应dhcpack报文,以完成dhcp续租代答。

本发明实施例中,转发面设备根据dhcp续租报文匹配dhcp续租代答表,按照匹配的dhcp续租代答表中对应的处理方式进行代答处理,并封装回应dhcpack报文,以完成dhcp续租代答

通过本发明实施例的报文处理方法,将控制面设备的dhcp续租请求报文的代答功能下移至转发面设备,减轻了控制面设备对dhcp续租请求报文的处理压力,提高了对广播组播报文的处理速率,提高了整个网络的稳定性。

实施例十

对于sdn组网的场景,转发面设备下挂主机之间通过控制面设备下发的基础转发表来实现基本业务的转发;在没有新增主机的情况下,原有主机之间的基本业务转发不需要上送至控制面设备进行处理,只需要按照转发面设备保存的基础转发表即可实现。即使有新增主机,也仅需向控制面设备上送一次业务请求,控制面设备便下发新的基础业务转发表给转发面设备,以使转发面设备完成后续的业务转发流程。因此,对于icmp流程中的基本业务转发,并不会增加控制面设备的处理压力。

但是,由于sdc组网场景中各网段的网关都统一配置在控制面设备,由控制面设备统一代答完成与网关之间的通信。

以转发面设备接收到主机发送的网关icmprequest报文为例,本发明实施例十报文处理方法的处理流程,如图13所示,包括:

步骤s701,控制面设备预先向转发面设备下发转发面设备所挂网段的网关代答表。

在一实施例中,控制面设备根据预先配置获取转发面设备本端下挂网段信息,并按照预先与转发面设备约定的流表号以及流表格式,预先给转发面设备下发本端设备所挂网段的网关代答表。每个网段对应一个网关代答表,代答表中匹配字段分别为vrf和目的ip地址信息;其中,vrf字段用于区分不同的路由,在现网场景中,不同的路由下允许拥有相同的网段;目的ip地址是指每个网段的网关地址。如此,便能够匹配某个路由下某个网段上送的网关请求报文。

步骤s702,转发面设备接收下挂主机上送的网关icmprequest报文,匹配培网关代答表;在匹配结果为是时,执行步骤s703;匹配结果为否时,执行步骤s704。

步骤s703,转发面设备根据网关代答表封装相应的网关icmpreply报文,以完成网关代答。

这里,转发面设备根据网关代答表中的要求封装相应的网关icmpreply报文。

步骤s704,转发面设备将网关icmprequest报文上送至控制面设备。

步骤s705,控制面设备封装回应相关的网关icmpreply报文,下发新的网关代答表。

在一实施例中,控制面设备接收并解析转发面设备上送的网关icmprequest报文,封装回应相应的网关icmpreply报文,完成应答。再根据网关icmprequest报文中的vrf及目的ip地址信息封装下发一张新的网关代答表给转发面设备。

步骤s706,转发面设备接收并保存网关代答表。

这里,该网关代答表作为转发面再次接收到的网关icmprequest报文的处理依据;即再次接收到的网关icmprequest报文能够匹配到网关代答表时,执行步骤s703,再次接收到的网关icmprequest报文不能够匹配到网关代答表时,执行步骤s704。

通过本发明实施例的报文处理方法,将控制面设备的网关icmprequest报文的功能下移至转发面设备,减轻了控制面设备对网关icmprequest报文的处理压力,提高了对广播组播报文的处理速率,提高了整个网络的稳定性。

需要说明的是,本发明上述实施例所涉及的控制面设备的功能可由控制器实现。

实施例十一

基于上述报文处理方法,本发明实施例十一还提供一种报文处理装置,所述报文处理装置的组成结构,如图14所示,包括:第一接收模块11和处理模块12;其中,

所述第一接收模块11,用于接收第一代处理表;所述第一代处理表用于指示所述转发面设备对第一类型报文的处理方式;

所述处理模块12,用于基于所述第一代处理表对接收的第一报文进行处理。

上述方案中,所述第一接收模块11,还用于接收第二报文;所述第二报文为具有第一类型的报文。

相应的,所述装置还包括:第一发送模块13,用于将所述第二报文发送至控制面设备。

上述方案中,所述处理模块12,具体用于获取所述第一报文的类型;

在所述第一代处理表中匹配与所述第一报文相同的报文类型;

在匹配结果为是时,基于匹配得到的报文类型对应的处理方式对所述第一报文进行处理。

上述方案中,所述处理模块12,具体用于获取所述第一报文的类型;

在所述第一代处理表中匹配与所述第一报文相同的报文类型;

在匹配结果为否时,将所述第一报文转发至所述控制面设备。

上述方案中,所述第一接收模块11,还用于接收第二代处理表;

所述处理模块12,还用于利用所述第二代处理表更新所述第一代处理表。

实施例十二

基于上述报文处理方法,本发明实施例十二还提供一种报文处理装置,所述报文处理装置的组成结构,如图15所示,包括:

构建模块21,用于基于第一类型报文和第一类型报文的处理方式构建第一代处理表;

第二发送模块22,用于发送所述第一代处理表至转发面设备。

上述方案中,所述装置还包括:

第二接收模块23,用于接收所述转发面设备发送的第二报文;所述第二报文为具有第一类型的报文。

上述方案中,所述构建模块21,具体用于解析所述第二报文,获取所述第二报文对应的第一类型以及所述第一类型报文的处理方式;

建立所述第一类型报文与所述第一类型报文的处理方式之间的第一对应关系;

将所述第一对应关系存储至所述第一代处理表。

上述方案中,所述第二接收模块23,还用于接收所述转发面设备发送的第一报文,所述第一报文的报文类型不存在于所述第一代处理表中;

所述构建模块21,还用于解析所述第一报文,获取所述第一报文对应的第二类型以及所述第二类型报文的处理方式;

建立所述第二类型报文与所述第二类型报文的处理方式之间的第二对应关系;将所述第二对应关系存储至第二代处理表。

上述方案中,所述第二发送模块22,还用于发送所述第二代处理表至所述转发面设备。

在实际应用中,第一接收模块11、处理模块12和第一发送模块13均可由位于转发面设备上的中央处理器(cpu,centralprocessingunit)、微处理器(mpu,microprocessorunit)、数字信号处理器(dsp,digitalsignalprocessor)、或现场可编程门阵列(fpga,fieldprogrammablegatearray)等实现。

在实际应用中,构建模块21、第二发送模块22和第二接收模块23均可由位于控制面设备上的cpu、mpu、dsp、或fpga等实现。所述控制面设备可以是控制器。

本发明实施例还提供一种报文处理装置,所述报文处理装置700的硬件组成结构,如图16所示,包括:处理器701和用于存储能够在处理器701上运行的计算机程序的存储器702,

在一实施例中,所述处理器701用于运行所述计算机程序时,执行:

接收第一代处理表;所述第一代处理表用于指示所述转发面设备对第一类型报文的处理方式;

基于所述第一代处理表对接收的第一报文进行处理。

所述处理器701用于运行所述计算机程序时,还执行:接收第二报文;所述第二报文为具有第一类型的报文;

将所述第二报文发送至控制面设备。

所述处理器701用于运行所述计算机程序时,还执行:获取所述第一报文的类型;在所述第一代处理表中匹配与所述第一报文相同的报文类型;在匹配结果为是时,基于匹配得到的报文类型对应的处理方式对所述第一报文进行处理。

所述处理器701用于运行所述计算机程序时,还执行:获取所述第一报文的类型;在所述第一代处理表中匹配与所述第一报文相同的报文类型;在匹配结果为否时,将所述第一报文转发至所述控制面设备。

所述处理器701用于运行所述计算机程序时,还执行:接收第二代处理表;

利用所述第二代处理表更新所述第一代处理表。

在另一实施例中,所述处理器701用于运行所述计算机程序时,执行:

基于第一类型报文和第一类型报文的处理方式构建第一代处理表;发送所述第一代处理表至转发面设备。

所述处理器701用于运行所述计算机程序时,还执行:接收所述转发面设备发送的第二报文;所述第二报文为具有第一类型的报文。

所述处理器701用于运行所述计算机程序时,还执行:解析所述第二报文,获取所述第二报文对应的第一类型以及所述第一类型报文的处理方式;建立所述第一类型报文与所述第一类型报文的处理方式之间的第一对应关系;将所述第一对应关系存储至所述第一代处理表。

所述处理器701用于运行所述计算机程序时,还执行:接收所述转发面设备发送的第一报文,所述第一报文的报文类型不存在于所述第一代处理表中;解析所述第一报文,获取所述第一报文对应的第二类型以及所述第二类型报文的处理方式;建立所述第二类型报文与所述第二类型报文的处理方式之间的第二对应关系;将所述第二对应关系存储至第二代处理表。

所述处理器701用于运行所述计算机程序时,还执行:发送所述第二代处理表至所述转发面设备。

可以理解,存储器702可以是易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(rom,readonlymemory)、可编程只读存储器(prom,programmableread-onlymemory)、可擦除可编程只读存储器(eprom,erasableprogrammableread-onlymemory)、电可擦除可编程只读存储器(eeprom,electricallyerasableprogrammableread-onlymemory)、磁性随机存取存储器(fram,ferromagneticrandomaccessmemory)、快闪存储器(flashmemory)、磁表面存储器、光盘、或只读光盘(cd-rom,compactdiscread-onlymemory);磁表面存储器可以是磁盘存储器或磁带存储器。易失性存储器可以是随机存取存储器(ram,randomaccessmemory),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的ram可用,例如静态随机存取存储器(sram,staticrandomaccessmemory)、同步静态随机存取存储器(ssram,synchronousstaticrandomaccessmemory)、动态随机存取存储器(dram,dynamicrandomaccessmemory)、同步动态随机存取存储器(sdram,synchronousdynamicrandomaccessmemory)、双倍数据速率同步动态随机存取存储器(ddrsdram,doubledataratesynchronousdynamicrandomaccessmemory)、增强型同步动态随机存取存储器(esdram,enhancedsynchronousdynamicrandomaccessmemory)、同步连接动态随机存取存储器(sldram,synclinkdynamicrandomaccessmemory)、直接内存总线随机存取存储器(drram,directrambusrandomaccessmemory)。本发明实施例描述的存储器702旨在包括但不限于这些和任意其它适合类型的存储器。

本发明实施例中的存储器702用于存储各种类型的数据以支持报文处理装置700的操作。这些数据的示例包括:用于在报文处理装置700上操作的任何计算机程序,如操作系统7021和应用程序7022。其中,操作系统7021包含各种系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务。应用程序7022可以包含各种应用程序,实现本发明实施例方法的程序也包含在应用程序7022中。

本发明实施例还提供一种存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器运行时,执行:接收第一代处理表;所述第一代处理表用于指示所述转发面设备对第一类型报文的处理方式;

基于所述第一代处理表对接收的第一报文进行处理。

在一实施例中,该计算机程序被处理器运行时,还执行:接收第二报文;所述第二报文为具有第一类型的报文;

将所述第二报文发送至控制面设备。

在一实施例中,该计算机程序被处理器运行时,还执行:获取所述第一报文的类型;

在所述第一代处理表中匹配与所述第一报文相同的报文类型;

在匹配结果为是时,基于匹配得到的报文类型对应的处理方式对所述第一报文进行处理。

在一实施例中,该计算机程序被处理器运行时,还执行:获取所述第一报文的类型;

在所述第一代处理表中匹配与所述第一报文相同的报文类型;

在匹配结果为否时,将所述第一报文转发至所述控制面设备。

在一实施例中,该计算机程序被处理器运行时,还执行:接收第二代处理表;利用所述第二代处理表更新所述第一代处理表。

本发明实施例还提供另一种存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器运行时,执行:基于第一类型报文和第一类型报文的处理方式构建第一代处理表;

发送所述第一代处理表至转发面设备。

在一实施例中,该计算机程序被处理器运行时,还执行:接收所述转发面设备发送的第二报文;所述第二报文为具有第一类型的报文。

在一实施例中,该计算机程序被处理器运行时,还执行:解析所述第二报文,获取所述第二报文对应的第一类型以及所述第一类型报文的处理方式;建立所述第一类型报文与所述第一类型报文的处理方式之间的第一对应关系;将所述第一对应关系存储至所述第一代处理表。

在一实施例中,该计算机程序被处理器运行时,还执行:接收所述转发面设备发送的第一报文,所述第一报文的报文类型不存在于所述第一代处理表中;

解析所述第一报文,获取所述第一报文对应的第二类型以及所述第二类型报文的处理方式;

建立所述第二类型报文与所述第二类型报文的处理方式之间的第二对应关系;将所述第二对应关系存储至第二代处理表。

在一实施例中,该计算机程序被处理器运行时,还执行:发送所述第二代处理表至所述转发面设备。

本领域的技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、ram、rom、磁碟或者光盘等各种可以存储程序代码的介质。

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

以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

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