报文处理方法和装置

文档序号:1314619 发布日期:2020-07-10 浏览:17次 >En<

阅读说明:本技术 报文处理方法和装置 (Message processing method and device ) 是由 吴潇 孙志超 李高超 张伟 王晖 邹昕 李政 陈训逊 于 2020-03-20 设计创作,主要内容包括:本申请提供一种报文处理方法及装置,应用于网络设备中,所述方法包括:根据预设的重要流量缓存队列包括的各个报文确定所述重要流量缓存队列所需的实际带宽;根据所述网络设备的总带宽和所述实际带宽从所述网络设备的聚合端口中选取指定成员口;通过所述指定成员口转发所述重要流量缓存队列包括的各个报文。应用本申请的实施例,可以确保正常发送重要流量缓存队列包括的各个报文,降低重要流量缓存队列包括的报文的丢包率。(The application provides a message processing method and a device, which are applied to network equipment, wherein the method comprises the following steps: determining the actual bandwidth required by an important flow cache queue according to each message included by the preset important flow cache queue; selecting a designated member port from the aggregation ports of the network equipment according to the total bandwidth and the actual bandwidth of the network equipment; and forwarding each message included in the important flow cache queue through the appointed member port. By applying the embodiment of the application, each message included in the important flow cache queue can be sent normally, and the packet loss rate of the message included in the important flow cache queue is reduced.)

报文处理方法和装置

技术领域

本申请涉及网络通信技术领域,特别设计一种报文处理方法和装置。

背景技术

随着网络技术的飞速发展,用户的数量越来越大,网络设备接收到的用户通过终端发送的报文也越来越多。通常网络设备解析处理来自终端的报文后还需要向终端发送响应的报文,如果网络上有突发的大量的报文需要响应,响应的报文可能远大于接收的报文,若接口的带宽不足以满足业务对带宽的需求,就会产生丢包,导致发送报文的用户得不到响应的报文。

某些业务发生丢包是可以容忍的,而有些业务发生丢包则会造成业务中断,这是无法容忍的。因此,如何降低报文处理过程中的丢包率是亟需解决的问题。

发明内容

有鉴于此,本申请提供一种报文处理方法和装置,以降低报文处理过程中的丢包率。

具体地,本申请是通过如下技术方案实现的:

一种报文处理方法,应用于网络设备中,所述方法包括:

根据预设的重要流量缓存队列包括的各个报文确定所述重要流量缓存队列所需的实际带宽;

根据所述网络设备的总带宽和所述实际带宽从所述网络设备的聚合端口中选取指定成员口;

通过所述指定成员口转发所述重要流量缓存队列包括的各个报文。

一种报文处理装置,应用于网络设备中,所述装置包括:

确定模块,用于根据预设的重要流量缓存队列包括的各个报文确定所述重要流量缓存队列所需的实际带宽;

选取模块,用于根据所述网络设备的总带宽和所述实际带宽从所述网络设备的聚合端口中选取指定成员口;

转发模块,用于通过所述指定成员口转发所述重要流量缓存队列包括的各个报文。

一种电子设备,所述电子设备包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;

存储器,用于存放计算机程序;

处理器,用于执行存储器上所存储的程序时,实现上述的方法步骤。

一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述的方法步骤。

由以上本申请提供的技术方案可见,可以根据预设的重要流量缓存队列包括的各个报文确定重要流量缓存队列所需的实际带宽,然后根据网络设备的总带宽和实际带宽从网络设备的聚合端口中选取指定成员口,通过指定成员口转发重要流量缓存队列包括的各个报文,由于可以实时为重要流量缓存队列分配指定成员口,并且指定成员口的带宽足以满足重要流量缓存队列的需求,从而可以确保正常发送重要流量缓存队列包括的各个报文,降低重要流量缓存队列包括的报文的丢包率。

附图说明

图1为本申请示出的一种报文处理方法的流程图;

图2为本申请示出的一种报文处理装置的结构示意图;

图3为本申请示出的一种电子设备的结构示意图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。

在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

为了解决上述问题,本发明实施例提供了一种报文处理方法,以降低报文处理过程中的丢包率。请参见图1,图1为本申请示出的一种报文处理方法的流程图,应用于网络设备中。

S11:根据预设的重要流量缓存队列包括的各个报文确定重要流量缓存队列所需的实际带宽。

可以预先设置重要流量缓存队列,顾名思义,可以将需要发送的重要流量的报文保存在重要流量缓存队列中。在处理报文时,由于重要流量缓存队列是实时变化的,因此,可以实时根据预设的重要流量缓存队列包括的各个报文确定重要流量缓存队列所需的实际带宽。

S12:根据网络设备的总带宽和实际带宽从网络设备的聚合端口中选取指定成员口。

网络设备上转发报文的多个端口可以形成聚合端口,通常,并不是需要聚合端口所有的成员口参与转发报文,因此,可以根据网络设备的总带宽和实际带宽从网络设备的聚合端口中选取一部分成员口,这部分成员口可以定义为指定成员口。

S13:通过指定成员口转发重要流量缓存队列包括的各个报文。

由以上本申请提供的技术方案可见,可以根据预设的重要流量缓存队列包括的各个报文确定重要流量缓存队列所需的实际带宽,然后根据网络设备的总带宽和实际带宽从网络设备的聚合端口中选取指定成员口,通过指定成员口转发重要流量缓存队列包括的各个报文,由于可以实时为重要流量缓存队列分配指定成员口,并且指定成员口的带宽足以满足重要流量缓存队列的需求,从而可以确保正常发送重要流量缓存队列包括的各个报文,降低重要流量缓存队列包括的报文的丢包率。

具体的,上述S11中的根据预设的重要流量缓存队列包括的各个报文确定重要流量缓存队列所需的实际带宽,实现过程具体包括:

统计重要流量缓存队列包括的所有报文的报文总长度和报文数量;

将报文总长度除以报文数量,得到重要流量缓存队列的报文平均长度;

确定重要流量缓存队列包括的所有报文的报文长度中的最大报文长度与最小报文长度的第一均值;

确定报文平均长度是否小于第一均值;

若确定报文平均长度等于或者大于第一均值,则将报文总长度确定为重要流量缓存队列所需的实际带宽;

若确定报文平均长度小于第一均值,则确定最小报文长度与第一均值的第二均值,并确定报文平均长度是否小于第二均值,若确定报文平均长度小于第二均值,则将报文总长度的第一设定倍数确定为重要流量缓存队列所需的实际带宽;若确定报文平均长度大于或等于第二均值,则将报文总长度的第二设定倍数确定为重要流量缓存队列所需的实际带宽。

由于在发送报文时需要附带前导码等额外信息,导致发送报文时需要的带宽比报文本身的长度更多,报文越小,额外信息占比就越大。因此,当重要流量缓存队列的报文平均长度越小时,就需要额外的带宽越多。为了防止因预留带宽过小而造成发包时拥塞等等问题,需要为重要流量缓存队列的报文分配更多的带宽。其中,第一设定倍数可以但不限于为120%,第二设定倍数可以但不限于为110%。

具体的,上述S12中的根据网络设备的总带宽和实际带宽从网络设备的聚合端口中选取指定成员口,实现过程具体包括:

从网络设备的聚合端口的各个成员口中选出状态为开启的成员口,得到候选成员口集合;

计算网络设备的总带宽和实际带宽的差值;

根据预设算法从候选成员口集合中选取带宽之和不超过且最接近差值的成员口,得到指定成员口。

网络设备的聚合端口的各个成员口的状态可能是开启,也可能是关闭,这里需要从中选出状态为开启的成员口,这些成员口组成候选成员口集合A;若网络设备的总带宽为B0,重要流量缓存队列所需的实际带宽为B,可以计算B0与B的差值,根据预设算法从候选成员口集合中选取带宽之和不超过且最接近差值的成员口集合A1,用于转发不重要流量缓存队列的报文,余下的成员口集合(A-A1)是转发重要流量缓存队列的指定成员口。其中,预设算法可以有很多种,下面列举两种算法进行说明,一种算法为0/1背包问题的算法;另一种算法为,将聚合端口的各个成员口的带宽从小到大依次排序,然后从中去除带宽最小的端口开始,直到所有剔除的端口集A1的带宽之和不超过且最接近差值,余下的成员口集合(A-A1)就是需要的指定成员口。

一种可选的实施方式,上述方法还包括:

接收终端或者其他网络设备发送的第一报文;

获取第一报文的第一五元组信息,第一五元组信息包括第一源互联网协议(Internet Protocol,IP)地址、第一目的IP地址、第一源端口、第一目的端口和协议;

在预设的访问控制列表查找第一五元组信息;

若在访问控制列表中查找到第一五元组信息,则在重要流量信息表中查找包括第一目的IP地址为第二源IP地址、第一源IP地址为第二目的IP地址、第一目的端口为第二源端口、第二源端口为第二目的端口和协议的第二五元组信息,若在重要流量信息表中未查找到第二五元组信息,则在重要流量信息表中建立第二五元组信息。

终端或者其他网络设备会向该网络设备发送报文,这些报文可以定义为第一报文,第一报文携带的五元组信息可以定义为第一五元组信息,然后根据网络设备上的访问控制列表确定第一五元组信息是否需要保存在重要流量信息表中。若在预设的访问控制列表查找到第一五元组信息,说明第一报文所属的流量可以称为重要流量,因此,可以在重要流量信息表中查找包括第一目的IP地址为第二源IP地址、第一源IP地址为第二目的IP地址、第一目的端口为第二源端口、第二源端口为第二目的端口和协议的第二五元组信息,若在重要流量信息表中未查找到第二五元组信息,则在重要流量信息表中建立第二五元组信息,比较第一五元组信息与第二五元组信息可以发现,第二五元组信息就是将第一五元组信息中的源目的IP地址互换、以及将原目的端口互换;若在预设的访问控制列表未查找到第一五元组信息,说明第一报文所属的流量可以称为不重要流量,无需在重要流量信息列表中查找第二五元组信息。

一种可选的实施方式,上述方法还包括:

获取生成的第二报文;

在重要流量信息表中查找第二报文的第三五元组信息;

若在重要流量信息表中查找到第三五元组信息,则将第二报文加入重要流量缓存队列;

若在重要流量信息表中未查找到第三五元组信息,则将第二报文加入不重要流量缓存队列。

可以针对重要流量和不重要流量设置两个缓存队列,一个为重要流量缓存队列,一个为不重要流量缓存队列。网络设备通常会对接收到的报文进行响应,这些报文可以定义为第二报文,可以根据重要流量信息表来确定将第二报文加入到哪个队列中,若将第二报文的五元组信息定义为第三五元组信息,可以在重要流量信息表中查找第三五元组信息,若在重要流量信息表中查找到第三五元组信息,说明第二报文所属的流量是重要流量,则将第二报文加入重要流量缓存队列;若在重要流量信息表中未查找到第三五元组信息,说明第二报文所属的流量是不重要流量,则将第二报文加入不重要流量缓存队列。

请参见图2,图2为本申请示出的一种报文处理装置的结构示意图,应用于网络设备中,该装置包括:

确定模块21,用于根据预设的重要流量缓存队列包括的各个报文确定重要流量缓存队列所需的实际带宽;

选取模块22,用于根据网络设备的总带宽和实际带宽从网络设备的聚合端口中选取指定成员口;

转发模块23,用于通过指定成员口转发重要流量缓存队列包括的各个报文。

由以上本申请提供的技术方案可见,可以根据预设的重要流量缓存队列包括的各个报文确定重要流量缓存队列所需的实际带宽,然后根据网络设备的总带宽和实际带宽从网络设备的聚合端口中选取指定成员口,通过指定成员口转发重要流量缓存队列包括的各个报文,由于可以实时为重要流量缓存队列分配指定成员口,并且指定成员口的带宽足以满足重要流量缓存队列的需求,从而可以确保正常发送重要流量缓存队列包括的各个报文,降低重要流量缓存队列包括的报文的丢包率。

具体的,确定模块21,用于根据预设的重要流量缓存队列包括的各个报文确定重要流量缓存队列所需的实际带宽,具体用于:

统计重要流量缓存队列包括的所有报文的报文总长度和报文数量;

将报文总长度除以报文数量,得到重要流量缓存队列的报文平均长度;

确定重要流量缓存队列包括的所有报文的报文长度中的最大报文长度与最小报文长度的第一均值;

确定报文平均长度是否小于第一均值;

若确定报文平均长度等于或者大于第一均值,则将报文总长度确定为重要流量缓存队列所需的实际带宽;

若确定报文平均长度小于第一均值,则确定最小报文长度与第一均值的第二均值,并确定报文平均长度是否小于第二均值,若确定报文平均长度小于第二均值,则将报文总长度的第一设定倍数确定为重要流量缓存队列所需的实际带宽;若确定报文平均长度大于或等于第二均值,则将报文总长度的第二设定倍数确定为重要流量缓存队列所需的实际带宽。

具体的,选取模块22,用于根据网络设备的总带宽和实际带宽从网络设备的聚合端口中选取指定成员口,具体用于:

从网络设备的聚合端口的各个成员口中选出状态为开启的成员口,得到候选成员口集合;

计算网络设备的总带宽和实际带宽的差值;

根据预设算法从候选成员口集合中选取带宽之和不超过且最接近差值的成员口,得到指定成员口。

一种可选的实施方式,上述装置还包括:

接收模块,用于接收终端或者其他网络设备发送的第一报文;

第一获取模块,用于获取第一报文的第一五元组信息,第一五元组信息包括第一源IP地址、第一目的IP地址、第一源端口、第一目的端口和协议;

第一查找模块,用于在预设的访问控制列表查找第一五元组信息;

建立模块,用于若在访问控制列表中查找到第一五元组信息,则在重要流量信息表中查找包括第一目的IP地址为第二源IP地址、第一源IP地址为第二目的IP地址、第一目的端口为第二源端口、第二源端口为第二目的端口和协议的第二五元组信息,若在重要流量信息表中未查找到第二五元组信息,则在重要流量信息表中建立第二五元组信息。

一种可选的实施方式,上述装置还包括:

第二获取模块,用于获取生成的第二报文;

第二查找模块,用于在重要流量信息表中查找第二报文的第三五元组信息;

加入模块,用于若在重要流量信息表中查找到第三五元组信息,则将第二报文加入重要流量缓存队列;若在重要流量信息表中未查找到第三五元组信息,则将第二报文加入不重要流量缓存队列。

对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

本申请实施例还提供了一种电子设备,请参见图3所示,包括处理器310、通信接口320、存储器330和通信总线340,其中,处理器310,通信接口320,存储器330通过通信总线340完成相互间的通信。

存储器330,用于存放计算机程序;

处理器310,用于执行存储器330上所存放的程序时,实现上述实施例中任一所述的报文处理方法。

通信接口320用于上述电子设备与其他设备之间的通信。

存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。

上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

由以上本申请提供的技术方案可见,可以根据预设的重要流量缓存队列包括的各个报文确定重要流量缓存队列所需的实际带宽,然后根据网络设备的总带宽和实际带宽从网络设备的聚合端口中选取指定成员口,通过指定成员口转发重要流量缓存队列包括的各个报文,由于可以实时为重要流量缓存队列分配指定成员口,并且指定成员口的带宽足以满足重要流量缓存队列的需求,从而可以确保正常发送重要流量缓存队列包括的各个报文,降低重要流量缓存队列包括的报文的丢包率。

相应地,本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的报文处理方法。

由以上本申请提供的技术方案可见,可以根据预设的重要流量缓存队列包括的各个报文确定重要流量缓存队列所需的实际带宽,然后根据网络设备的总带宽和实际带宽从网络设备的聚合端口中选取指定成员口,通过指定成员口转发重要流量缓存队列包括的各个报文,由于可以实时为重要流量缓存队列分配指定成员口,并且指定成员口的带宽足以满足重要流量缓存队列的需求,从而可以确保正常发送重要流量缓存队列包括的各个报文,降低重要流量缓存队列包括的报文的丢包率。

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

12页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:报文处理方法和装置

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!