报文的处理方法及装置与流程

文档序号:20946045发布日期:2020-06-02 19:52阅读:241来源:国知局
报文的处理方法及装置与流程

本发明涉及通信领域,具体而言,涉及一种报文的处理方法及装置。



背景技术:

相关技术中,分布式网络设备的地址解析协议(addressresolutionprotocol,简称arp)同步的机制通过以下方式实现:当设备中某个板卡收到arp报文,设备将此arp条目写入此板卡中。同时,为了保证每个板卡都可以正确的寻找到到这个arp的转发路径,设备cpu会把这个arp条目向所有的板卡进行同步写入,告知其他板卡此arp条目的转发路径。然而通过上述的方法可以看出的是,每一个写入的arp条目都会同步到其他的板卡中。如果存在多个arp报文写入不同的板卡的话,那么每一个板卡上写入的arp报文都会同步到其他的板卡中。然而板卡的承载能力有限,如果有重要的数据信息需要同步到其他报文时,很可能因此存储满的情况导致拒绝,会给用户造成极大的困扰。此外上述设计意味着需要更大的arp承载能力的板卡,因此设备成本很高。再而在报文写入过程中,需要保证设备中每一个板卡的最大arp承载能力都能够满足需求。如果其中一个板卡的最大arp承载能力不能够满足需求的话,那么整个设备会受到木桶效应的影响。



技术实现要素:

本发明实施例提供了一种报文的处理方法及装置,以至少解决相关技术中的arp同步机制所带来的网络设备成本高,使用效率低,不能够满足用户需求的问题。

根据本发明的一个实施例,提供了一种报文的处理方法,包括:当设备的第一板卡收到arp报文时,所述设备的处理器将根据arp报文形成的arp条目写入所述第一板卡;当设备的第二板卡收到指向所述arp条目的数据报文时,所述处理器将该arp条目同步至所述第二板卡。

可选地,所述处理器将根据所述arp报文形成的所述arp条目写入所述第一板卡,包括:所述处理器在接收到所述arp报文后,生成所述arp条目;根据所述arp报文的端口号,所述处理器确定所述第一板卡并将所述arp条目发送至所述第一板卡。

可选地,所述处理器将所述arp条目同步至所述第二板卡包括:所述处理器接收第二板卡通过子网路由发送的所述数据报文,其中,所述子网路由为所述设备中所述第二板卡在未查到所述数据报文对应的主机路由后确定的路由;在确定所述数据报文的出口为所述第一板卡后,所述处理器将所述数据报文通过软件转发的形式发送至所述第一板卡;所述处理器将所述arp条目同步至所述第二板卡。

可选地,在所述第二板卡再次接收到所述数据报文时,所述第二板卡通过硬件转发的形式将所述数据报文发送至所述第一板卡。

可选地,所述方法还包括:所述处理器判断在老化时间是否所述第二板卡的所述arp条目被所述数据报文命中;在判断结果为否的情况下,所述处理器指示所述第二板卡删除所述arp条目。

可选地,在所述第二板卡再次接收到所述数据报文时,所述处理器将所述arp条目重新同步至所述第二板卡。

可选地,所述方法还包括:在老化时间内所述第一板卡的所述arp条目未被所述数据报文命中的情况下,所述处理器指示所述第一板卡删除所述arp条目。

可选地,所述方法还包括:所述处理器查询第三板卡的同步情况,其中,所述第三板卡为同步了所述第一板卡的所述arp条目的同步板卡;当确定所述同步板卡中第三板卡同步了所述arp条目时,所述处理器指示所述第三板卡删除所述arp条目。

可选地,所述处理器将根据所述arp报文形成的所述arp条目写入所述第一板卡,还包括:所述处理器将所述arp的出口端口信息以及mac信息写入到所述第一板卡。

根据本发明的另一个实施例,提供了一种报文的处理装置,位于设备的处理器中,包括:学习模块,用于当设备的第一板卡收到arp报文时,将根据arp报文形成的arp条目写入所述第一板卡;同步模块,用于当设备的第二板卡收到指向所述arp条目的报文时,所述处理器将该arp条目同步至所述第二板卡。

根据本发明的又一个实施例,还提供了一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。

根据本发明的又一个实施例,还提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。

通过本发明,由于在板卡进行arp学习的时候,仅仅只对学习此arp的板卡进行arp条目的下发而不进行其他板卡的同步,因此,可以解决相关技术中arp同步机制所导致的网络设备成本高,使用效率低,不能够满足用户需求的问题,达到了优化网络设备的利用率,并节省网络成本的效果。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是本发明实施例的一种报文的处理方法的移动终端的硬件结构框图;

图2是根据本发明实施例的一种报文的处理方法的流程图;

图3是根据本发明实施例的一种报文的处理装置的结构框图。

具体实施方式

下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。

实施例1

本申请实施例一所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在移动终端上为例,图1是本发明实施例的一种报文的处理方法的移动终端的硬件结构框图。如图1所示,移动终端10可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器mcu或可编程逻辑器件fpga等的处理装置)和用于存储数据的存储器104,可选地,上述移动终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述移动终端的结构造成限定。例如,移动终端10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。

存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的报文的处理方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至移动终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括移动终端10的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(networkinterfacecontroller,简称为nic),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(radiofrequency,简称为rf)模块,其用于通过无线方式与互联网进行通讯。

在本实施例中提供了一种运行于上述移动终端的一种报文的处理方法,图2是根据本发明实施例的一种报文的处理方法的流程图,如图2所示,该流程包括如下步骤:

步骤s202,当设备的第一板卡收到arp报文时,所述设备的处理器将根据arp报文形成的arp条目写入所述第一板卡;

步骤s204,当设备的第二板卡收到指向所述arp条目的数据报文时,所述处理器将该arp条目同步至所述第二板卡。

可选地,所述处理器将根据所述arp报文形成的所述arp条目写入所述第一板卡,包括:所述处理器在接收到所述arp报文后,生成所述arp条目;根据所述arp报文的端口号,所述处理器确定所述第一板卡并将所述arp条目发送至所述第一板卡。

可选地,所述处理器将所述arp条目同步至所述第二板卡包括:所述处理器接收第二板卡通过子网路由发送的所述数据报文,其中,所述子网路由为所述设备中所述第二板卡在未查到所述数据报文对应的主机路由后确定的路由;在确定所述数据报文的出口为所述第一板卡后,所述处理器将所述数据报文通过软件转发的形式发送至所述第一板卡;所述处理器将所述arp条目同步至所述第二板卡。

具体而言,如果第二板卡收到数据报文中(例如arp的流量),如果发现第二板卡本地没有学习到该数据报文对应的arp条目,那么第二板卡会去查找与该数据报文相关的子网路由表。并向查询到的子网路由发送该数据报文,使得子网路由将数据报文发送至处理器当中。

具体而言,处理器会根据自身保存的arp表,查询到该数据报文本应该转发到第一板卡,即出口是第一板卡的端口。然而通过软甲转发的方式发送至第一板卡。同时处理器还会判断是否有必要同步到第二板卡上,如果有必要的话,则将数据报文对应的arp条目发送给第二板卡。如果没有必要的话,则不会进行其他的操作。

可选地,在所述第二板卡再次接收到所述数据报文时,所述第二板卡通过硬件转发的形式将所述数据报文发送至所述第一板卡。

可选地,所述方法还包括:所述处理器判断在老化时间是否所述第二板卡的所述arp条目被所述数据报文命中;在判断结果为否的情况下,所述处理器指示所述第二板卡删除所述arp条目。

可选地,在所述第二板卡再次接收到所述数据报文时,所述处理器将所述arp条目重新同步至所述第二板卡。

可选地,所述方法还包括:在老化时间内所述第一板卡的所述arp条目未被所述数据报文命中的情况下,所述处理器指示所述第一板卡删除所述arp条目。

可选地,所述方法还包括:所述处理器查询第三板卡的同步情况,其中,所述第三板卡为同步了所述第一板卡的所述arp条目的同步板卡;当确定所述同步板卡中第三板卡同步了所述arp条目时,所述处理器指示所述第三板卡删除所述arp条目。

可选地,所述处理器将根据所述arp报文形成的所述arp条目写入所述第一板卡,还包括:所述处理器将所述arp的出口端口信息以及mac信息写入到所述第一板卡。

具体而言,在本实施例中还提供了如下的实施例,以便更好的理解技术方案:

场景1:

分布式设备板卡a端口a上收到10.10.10.1的arp学习(端口a上有三层接口,ip地址配置为10.10.10.2255.255.255.0)。

1、设备板卡a端口a收到10.10.10.1的arp报文。

2、设备板卡a上报此arp报文给cpu,形成cpu上的软件arp表项10.10.10.1条目。

3、cpu根据此apr条目是来自于板卡a,则下发arp10.10.10.1和此arp相关的出口信息端口a以及其他mac相关信息给板卡a。

4、设备不再将此arp信息同步给其他板卡,结束arp学习过程。

场景2:

分布式设备板卡b端口b上收到目的地址是10.10.10.1的ip报文,需要进行三层转发

1、设备板卡b端口b上收到目的地址是10.10.10.1的ip报文。

2、板卡b查找硬件主机路由表,未能找到10.10.10.1的主机路由,但是可以找到10.10.10.0255.255.255.0的子网路由。

3、10.10.10.0255.255.255.0的子网路由将此报文上送cpu

4、设备cpu在软件arp表中查询到10.10.10.1的出口是板卡a的端口a,则将此报文软转出去。

5、设备cpu将此arp表项10.10.10.1,同步到此数据报文的来源板卡b上。

6、后续的数据流量,在板卡b上可以查询到10.10.10.1的硬件arp条目,直接硬件转发。

场景3:

分布式设备板卡a端口a上10.10.10.1的arp老化时间到达被老化(arp按全局情况老化)

1、板卡a上10.10.10.1的arp到达老化时间没有arp应答则需要进行老化。

2、cpu删除板卡a上10.10.10.1的arp条目。

3、查询此arp条目在其他板卡上的同步情况,发现板卡b也下发了此arp条目,则删除板卡b的arp条目10.10.10.1。

场景4:

分布式设备板卡b端口b上10.10.10.1的流量消失(arp按流量命中情况老化)

1、板卡b上10.10.10.1的流量已经消失。

2、cpu判断板卡b上的arp条目10.10.10.1的表项被报文命中情况。

3、若持续一段时间此arp条目没有被命中,则板卡b上按需将此arp条目删除。

4、若再有流量再次触发此10.10.10.1的arp条目,则重新下发此条目。

5、若10.10.10.1的arp条目在a板卡上被老化,则按照场景3的方法全局删除。

通过上述步骤,解决了相关技术中arp同步机制所导致的网络设备成本高,使用效率低,不能够满足用户需求的问题,达到了优化网络设备的利用率,并节省网络成本的效果。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

实施例2

在本实施例中还提供了一种报文的处理装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。

图3是根据本发明实施例的一种报文的处理装置的结构框图,如图3所示,位于设备的处理器中,包括:

学习模块32,用于当设备的第一板卡收到arp报文时,将根据arp报文形成的arp条目写入所述第一板卡;

同步模块34,用于当设备的第二板卡收到指向所述arp条目的报文时,所述处理器将该arp条目同步至所述第二板卡。

需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。

实施例3

本发明的实施例还提供了一种存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。

可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:

s1,当设备的第一板卡收到arp报文时,所述设备的处理器将根据arp报文形成的arp条目写入所述第一板卡;

s2,当设备的第二板卡收到指向所述arp条目的数据报文时,所述处理器将该arp条目同步至所述第二板卡。

可选地,在本实施例中,上述存储介质可以包括但不限于:u盘、只读存储器(read-onlymemory,简称为rom)、随机存取存储器(randomaccessmemory,简称为ram)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。

本发明的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。

可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。

可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:

s1,当设备的第一板卡收到arp报文时,所述设备的处理器将根据arp报文形成的arp条目写入所述第一板卡;

s2,当设备的第二板卡收到指向所述arp条目的数据报文时,所述处理器将该arp条目同步至所述第二板卡。

可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。

显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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