CN111371693B - 一种通过硬件、软件快速报文转发的方法和系统 - Google Patents

一种通过硬件、软件快速报文转发的方法和系统 Download PDF

Info

Publication number
CN111371693B
CN111371693B CN201811595254.7A CN201811595254A CN111371693B CN 111371693 B CN111371693 B CN 111371693B CN 201811595254 A CN201811595254 A CN 201811595254A CN 111371693 B CN111371693 B CN 111371693B
Authority
CN
China
Prior art keywords
acceleration
message
software
hardware
forwarding
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201811595254.7A
Other languages
English (en)
Other versions
CN111371693A (zh
Inventor
施晟
夏刚
袁开心
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sanechips Technology Co Ltd
Original Assignee
Sanechips Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sanechips Technology Co Ltd filed Critical Sanechips Technology Co Ltd
Priority to CN201811595254.7A priority Critical patent/CN111371693B/zh
Priority to PCT/CN2019/112551 priority patent/WO2020134415A1/zh
Publication of CN111371693A publication Critical patent/CN111371693A/zh
Application granted granted Critical
Publication of CN111371693B publication Critical patent/CN111371693B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/66Arrangements for connecting between networks having differing types of switching systems, e.g. gateways
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0823Configuration setting characterised by the purposes of a change of settings, e.g. optimising configuration for enhancing reliability

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种通过硬件、软件快速报文转发的方法和系统,其中,所述通过硬件快速报文转发方法包括:接收到报文后,判断是否能够转发所述报文;如果不能转发所述报文,将所述报文发送至通过软件转发报文的入口。本发明能够将硬件报文转发和软件报文转发结合起来以达到更高的报文转发性能。

Description

一种通过硬件、软件快速报文转发的方法和系统
技术领域
本发明涉及报文转发技术,尤指一种通过硬件、软件快速报文转发的方法和系统。
背景技术
随着通信技术的发展,大众对于网络通信带宽的需求越来越高,百兆宽带已经逐步普及,各运营商开始推广千兆宽带。因此市场对于网关以及路由器类产品的转发能力及稳定性的要求也越来越高。
传统的报文处理方法是通过TCP/IP协议栈转发处理,由于处理流程耗时较长,已经难以满足当前需求。针对此,提出一种通过学习五元组信息的快速转发方法,一定程度上提高了报文转发的软件处理效率,但是纯软件处理仍然难以达到性能要求。为了提高报文转发性能,又提出一种通过硬件转发的装置,通过硬件逻辑处理,大幅提升整体转发性能;但是硬件转发表项资源有限,硬件转发表项中的硬件加速条目满时仍然进入协议栈进行转发。还有一种转发报文的方式是采用固定的转发装置,定时刷新所述转发装置中的快速转发表,以使长期未使用的表项老化,但是刷新频率是固定的,无法适应实际多种业务场景。
发明内容
为了解决上述技术问题,本发明提供了一种通过硬件、软件快速报文转发的方法和系统,能够将硬件报文转发和软件报文转发结合起来以达到更高的报文转发性能。
为了达到本发明目的,本发明提供了一种通过硬件快速报文转发方法,该方法包括:
接收到报文后,判断是否能够转发所述报文;
如果不能转发所述报文,将所述报文发送至通过软件转发报文的入口。
作为一种实现方式,所述接收到报文后,判断是否能够转发所述报文,包括:
接收到报文后,判断自身存储的硬件加速条目是否老化,如果老化,则不能转发所述报文;或,
接收到报文后,判断自身存储的硬件加速条目是否还有剩余,如果没有剩余,则不能转发所述报文。
作为一种实现方式,接收到报文后,判断自身存储的硬件加速条目是否老化,包括:
接收到报文后,判断自身存储的硬件加速条目是否到达其老化时间,如果到达其老化时间,则说明所述硬件加速条目已老化。
本发明实施例还提供了一种通过软件快速报文转发方法,包括:
接收无法根据硬件加速条目转发的报文;
判断是否能够根据软件加速条目对所述报文进行转发,如果能,按照所述软件加速条目对所述报文进行转发。
作为一种实现方式,所述方法还包括:
如果不能,通过TCP/IP协议栈对所述报文进行转发。
作为一种实现方式,所述方法还包括:
在通过TCP/IP协议栈对所述报文进行转发的过程中,生成或更新所述软件加速条目。
作为一种实现方式,所述方法还包括:
获取单位时间内经软件转发的流的报文数(PPS);
如果经软件转达的流的报文数超过PPS阈值,将根据该流生成的软件加速条目配置为硬件加速条目。
作为一种实现方式,所述方法还包括:
获取硬件加速条目已使用个数;
根据所述硬件加速条目的已使用个数,控制硬件加速条目的老化时间。
作为一种实现方式,所述根据所述硬件加速条目的已使用个数,控制硬件加速条目的老化时间,包括:
当所述硬件加速条目的已使用个数超过第一预设值,加快硬件加速条目的老化时间;
当所述硬件加速条目的已使用个数不到第二预设值,减小硬件加速条目的老化时间;
所述第一预设值大于第二预设值。
本发明实施例还提供了一种用于快速转发报文的硬件加速器,包括:
接收模块,用于接收到报文后,判断是否能够转发所述报文;
发送模块,用于在判断出不能转发所述报文后,将所述报文发送至通过软件转发报文的入口。
作为一种实现方式,所述接收模块,用于接收到报文后,判断是否能够转发所述报文,包括:
接收到报文后,判断自身存储的硬件加速条目是否老化,如果老化,则不能转发所述报文;或,
接收到报文后,判断自身存储的硬件加速条目是否还有剩余,如果没有剩余,则不能转发所述报文。
作为一种实现方式,所述接收模块,用于接收到报文后,判断自身存储的硬件加速条目是否老化,包括:
接收到报文后,判断自身存储的硬件加速条目是否到达其老化时间,如果到达其老化时间,则说明所述硬件加速条目已老化。
本发明实施例还提供了一种通过软件快速转发报文的系统,包括软件加速模块;
所述软件加速模块包括:
接收单元,用于接收无法根据硬件加速条目转发的报文;
转发单元,用于判断是否能够根据软件加速条目对所述报文进行转发,如果能,按照所述软件加速条目对所述报文进行转发。
作为一种实现方式,所述系统还包括:协议栈模块:
所述转发单元,还用于在判断出根据软件加速条目不能对所述报文进行转发时,将所述报文发送至协议栈模块;
所述协议栈模块,用于通过TCP/IP协议栈对所述报文进行转发。
作为一种实现方式,所述系统还包括:
加速调节模块,用于在通过TCP/IP协议栈对所述报文进行转发的过程中,生成或更新所述软件加速条目。
作为一种实现方式,所述加速调节模块,还用于获取单位时间内经软件转发的流的报文数(PPS);如果经软件转达的流的报文数超过PPS阈值,将根据该流生成的软件加速条目配置为硬件加速条目。
作为一种实现方式,所述加速调节模块,还用于获取硬件加速条目已使用个数;根据所述硬件加速条目的已使用个数,控制硬件加速条目的老化时间。
作为一种实现方式,所述加速调节模块,用于根据所述硬件加速条目的已使用个数,控制硬件加速条目的老化时间,包括:
当所述硬件加速条目的已使用个数超过第一预设值,加快硬件加速条目的老化时间;
当所述硬件加速条目的已使用个数不到第二预设值,减小硬件加速条目的老化时间;
所述第一预设值大于第二预设值。
本发明实施例还提供了一种快速转发报文系统,包括:
如前所述的用于快速转发报文的硬件加速器;以及
如前所述的用于通过软件快速转发报文的系统。
与现有技术相比,本发明包括:接收到报文后,判断是否能够转发所述报文;如果不能转发所述报文,将所述报文发送至通过软件转发报文的入口。本发明能够将硬件报文转发和软件报文转发结合起来以达到更高的报文转发性能。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图说明
附图用来提供对本发明技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本发明的技术方案,并不构成对本发明技术方案的限制。
图1为本发明实施例提供的通过硬件快速报文转发方法流程图;
图2为本发明实施例提供的通过软件快速报文转发方法流程图;
图3为本发明应用示例所示的PON上行网关组网结构图;
图4为本发明实施例提供的用于快速转发报文的硬件加速器组成模块图;
图5为本发明实施例提供的通过软件快速转发报文的系统组成模块图;
图6为本发明实施例提供的快速转发报文系统组成模块图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本发明实施例提供了一种通过硬件快速报文转发方法,如图1所示,所述方法包括:
S101接收到报文后,判断是否能够转发所述报文;如果不能,执行步骤S102;如果能,执行步骤S103;
作为一种实现方式,所述硬件判断是否能够转发所述报文,包括:
接收到报文后,判断自身存储的硬件加速条目是否老化,如果老化,则不能转发所述报文;或,接收到报文后,判断自身存储的硬件加速条目是否还有剩余,如果没有剩余,则不能转发所述报文;
上述判断自身存储的硬件加速条目是否老化,包括:
判断自身存储的硬件加速条目是否到达其老化时间,如果到达其老化时间,则说明所述硬件加速条目已老化。本发明实施例中的硬件加速条目老化时间可根据数据流数目、单条流速率等因素进行修改。
S102将所述报文发送至通过软件转发报文的入口,流程结束。
S103转发所述报文,流程结束。
本发明实施例在通过硬件无法转发报文时,将报文发送至通过软件转发报文入口,即将硬件报文转发和软件报文转发结合起来,相对单纯用硬件转发报文或者用软件转发报文,能够实现更高的报文转发性能。
本发明实施例还提供了一种通过软件快速报文转发方法,如图2所示,所述方法包括:
S201接收无法根据硬件加速条目转发的报文;
S202判断是否能够根据软件加速条目对所述报文进行转发;如果能,执行步骤S203;如果不能,执行步骤S204;
上述判断是否能够根据软件加速条目对所述报文进行转发,包括:
判断是否存在软件加速条目;或者判断软件加速条目是否已满;
如果不存在软件加速条目,或软件加速条目已满,则不能根据软件加速条目对所述报文进行转发;
S203按照所述软件加速条目对所述报文进行转发,流程结束。
S204通过TCP/IP协议栈对所述报文进行转发。
所述软件加速条目可以由匹配项match与目标项target两部分组成,作为一种实现方式,所述方法还包括:
在通过TCP/IP协议栈对所述报文进行转发的过程中,生成或更新所述软件加速条目,可以包括:
提取报文的“源IP\目的IP\源端口\目的端口\协议”五元组作为match信息,同时记录网络地址转换NAT信息、虚拟局域网VLAN信息、出端口信息等报文修改动作作为target信息;
根据提取的match信息和target信息生成或更新软件加速条目。
作为一种实现方式,将所述报文按照所述软件加速条目进行转发后,对所述报文所在流的后续报文可直接查询该软件加速条目,match信息匹配命中后,根据target信息进行报文修改,直接从出接口发出,从而加速了后续报文的转发速度。
作为一种实现方式,所述方法还包括:
获取单位时间内经软件转发的流的报文数(Packets Per Second,PPS);如果经软件转达的流的报文数超过PPS阈值,将根据该流生成的软件加速条目配置为硬件加速条目。如果硬件加速条目使用越多,且后续快速增长,很可能导致硬加速资源短期内耗尽,此时可将PPS阈值动态调大,可以避免一些慢速流占用硬加速资源,因为PPS越大,说明报文所在数据流的速率越高,将PPS阈值调大,可以使流速达到PPS阈值的数据流才被配置到硬件加速条目中,进而可以避免慢流速占用硬加速资源;反之,如果硬件加速条目使用较少,说明硬加速资源充足,此时可将PPS阈值动态调小,尽可能通过硬加速资源转发报文,实现对报文的快速转发。
上述,PPS阈值的获取方法可以包括:
公式一:带宽利用率=设备当前吞吐量/设备最大吞吐量
带宽利用率的取值范围为0-1;
公式二:硬加速饱和度=当前软件加速条目数/硬加速最大条目数
硬加速饱和度反映的是硬件加速条目的使用情况,由于当前软件加速条目数可能大于硬件加速最大条目数,因此硬加速饱和度可能大于1,即还存在等待配置为硬件加速条目的软件加速条目;为避免频繁抖动,精度为小数点后两位(0.01),小数点两位以后的值四舍五入处理,如果结果为0,则补齐为0.01;
公式三:
Figure BDA0001921202610000081
公式四:PPS调节系数=硬加速饱和度/单位带宽空余率
公式五:PPS阈值=初始PPS阈值*PPS调节系数;
PPS阈值与硬加速饱和度成正比,与单位带宽空余率成反比。硬件加速条目越多,PPS阈值越大;带宽空余越多,PPS阈值越小。由于PPS阈值为整数,计算结果需进行取整,不足1时补齐为1。
作为一种实现方式,所述方法还包括:
获取硬件加速条目已使用个数;根据所述硬件加速条目的已使用个数,控制硬件加速条目的老化时间。
所述根据所述硬件加速条目的已使用个数,控制硬件加速条目的老化时间,包括:
当所述硬件加速条目的已使用个数超过第一预设值,加快硬件加速条目的老化时间;当所述硬件加速条目的已使用个数不到第二预设值,减小硬件加速条目的老化时间;所述第一预设值大于第二预设值。
当所述硬件加速条目的已使用个数超过第一预设值,硬加速资源可能会短期内耗尽,加快硬件加速条目的老化时间,有利于一些无用或慢速连接快速老化,节省加速资源;当所述硬件加速条目的已使用个数不到第二预设值,减小硬件加速条目的老化时间,可在数据传输过程中尽可能通过硬件加速器进行报文转发,吞吐量得到最大利用,并且可以减小使用软件加速器重新学习造成的丢包与抖动,速率平稳。
上述,硬件加速条目的老化时间可以通过以下方式获得:
公式一:带宽利用率=设备当前吞吐量/设备最大吞吐量
带宽利用率的取值范围为0-1;
公式二:
Figure BDA0001921202610000091
说明:单位带宽利用率的取值范围为0-1,为避免频繁抖动,精度为小数点后两位(0.01),小数点两位以后的值四舍五入处理,如果结果为0,则补齐为0.01;
公式三:硬加速饱和度=当前软件加速条目数/硬加速最大条目数
硬加速饱和度反映的是加速条目的使用情况,由于当前软件加速条目数可能大于硬件加速最大条目数,因此硬加速饱和度可能大于1,即还存在等待配置为硬加速的软件加速条目;为避免频繁抖动,精度为小数点后两位(0.01),小数点两位以后的值四舍五入处理,如果结果为0,则补齐为0.01;
公式四:老化时间调节系数=单位带宽利用率/硬加速饱和度
硬件加速条目老化时间与带宽利用率成正比,与硬加速饱和度成反比;也就是吞吐量越大,老化时间调节系数越大;加速条目越多,老化时间调节系数越大越小;
公式五:加速老化时间=初始老化时间*老化时间调节系数。
下面以几个具体的应用示例对本发明实施例进行说明。
应用实例一
设定初始硬件加速条目老化时间为10s;
启动周期为1s的周期定时器,定时对设备吞吐量,以及硬件加速条目数进行计算,并进行硬件加速条目老化时间调节;
下面分别用两种典型场景进行说明:
单用户单业务场景
如图3所示,PC1通过ONU网关访问Server1启动FTP高速上传下载,无其他业务,其他下挂设备未连接网关。
ONU在转发过程中学习生成两条连接,分别是PC1到Server1的上传连接,以及Server1到PC1的下载连接。每个连接上下行分别学习先生成软件加速条目,最终生成硬件加速条目,当前软件加速条目数为4,加速条目内容包括match与target两部分,硬加速最大条目数为5000。
设定设备最大吞吐量为1.5Gbps,在调节定时器内统计计算得出ONU设备上行吞吐量200Mbps,下行吞吐量800Mbps,设备当前吞吐量为设备上行吞吐量和下行吞吐量之和,共1Gbps,由此计算得出:
单位带宽利用率=0.33;
硬加速饱和度=0.01;
老化时间调节系数=33;
加速老化时间调整=10s*33=330s。
老化时间配置较长,在整个数据传输过程中可以尽可能通过硬件加速器进行转发,吞吐量得到最大利用,并且不存在由于硬件加速条目老化而重新软件学习造成丢包与抖动,速率平稳。
多用户多业务场景
该场景下PC1-PCN,Phone1-PhoneN逐步接入网关,进行网页浏览、视频、微信、QQ、游戏、直播等各类业务,对应Server1-ServerN,并且业务切换较为频繁。
设定设备最大吞吐量为1.5Gbps,在调节定时器的第一个周期内,只有部分下挂设备接入,统计计算出ONU设备上行吞吐量50Mbps,下行吞吐量500Mbps,设备当前吞吐量为设备上行吞吐量和下行吞吐量之和,共0.55Gbps,当前软件加速条目数量为500条,硬加速最大条目数为5000,由此计算得出:
单位带宽利用率=0.02;
硬加速饱和度=0.1;
老化时间调节系数=0.1;
加速老化时间=10s*0.2=2s。
此时硬件加速条目已占用10%,如果快速增长,很可能导致硬加速资源短期内耗尽。因此将硬件加速条目老化时间动态调小为2s,有利于一些无用或慢速连接快速老化,节省加速资源。
在下一周期内,其他下挂设备全部接入网关,业务访问量也增大,在当前周期内,统计计算出ONU设备上行吞吐量200Mbps,下行吞吐量900Mbps,当前加速条目数量为4000条,由此计算得出:
单位带宽利用率=0.01;
硬加速饱和度=0.8;
老化时间调节系数=0.0125;
加速老化时间=10s*0.0125=125ms。
此时硬加速资源已接近满,经过加速调节器调整,无用或慢速连接的加速条目快速老化。
应用示例二
通过PPS配置硬件加速条目,仍然用两种典型场景进行说明:
单用户单业务场景
如图3所示,PC1通过ONU网关访问Server1启动FTP高速上传下载,无其他业务,其他下挂设备未连接网关。
ONU在转发过程中学习生成两条连接,分别是PC1到Server1的上传连接,以及Server1到PC1的下载连接。每个连接上下行分别学习生成加速条目,由此生成4条加速条目。
在调节定时器内统计计算得出ONU设备上行吞吐量200Mbps,下行吞吐量800Mbps,共1Gbps,设备最大吞吐量为1.5Gbps,当前软件加速条目数量为4条,硬加速最大条目数为5000,由此计算得出:
单位带宽空余率为0.17;
硬加速饱和度为0.01;
PPS调节系数为0.01;
PPS阈值调整为20*0.01=1(取整)。
此时硬件加速资源充足,PPS阈值配置较低,可以尽可能地使用硬件加速器进行转发。
多用户多业务场景
该场景下PC1-PCN,Phone1-PhoneN逐步接入网关,进行网页浏览、视频、微信、QQ、游戏、直播等各类业务,对应Server1-ServerN,并且业务切换较为频繁。
在调节定时器的第一个周期内,只有部分下挂设备接入,统计计算出ONU设备上行吞吐量50Mbps,下行吞吐量500Mbps,设备最大吞吐量为1.5Gbps,当前软件加速条目数量为500条,硬加速最大条目数为5000,由此计算得出:
单位带宽空余率=0.03;
硬加速饱和度=0.1;
PPS调节系数=3.33;
PPS阈值调整=20*3.33=67(取整);
此时硬件加速条目已占用10%,如果后续快速增长,很可能导致硬加速资源短期内耗尽;此时PPS动态调大为67,可以避免一些慢速流占用硬加速资源。
在下一周期内,其他下挂设备全部接入网关,业务访问量也增大,在当前周期内,统计计算出ONU设备上行吞吐量200Mbps,下行吞吐量900Mbps,当前软件加速条目数量为4000条,由此计算得出:
单位带宽空余率=0.01;
硬加速饱和度=0.8;
PPS调节系数=80;
PPS阈值=20*80=1600;
此时硬件加速条目已将近满,进一步调大PPS阈值,以保证高速流才配置硬加速,低速流通过软件加速器进行转发,节约硬加速资源。
通过上述应用示例可见,对于单用户但业务场景,其特点是数据流数目少,单条流速率相对较高,且相对稳定,此时关注的是性能与稳定性表现,即速率与丢包率,可以充分利用硬件进行转发,同时需要降低硬件加速条目的老化速率。而对于多用户多业务场景,即数据流数目较多,单条流速率相对不高,且刷新较快,此时关注的是总体性能表现与网关的承载能力,需要合理利用软加速与硬加速资源。本发明实施例能够根据业务场景动态调节硬件加速条目和软件加速条目,能够更充分地利用软硬件资源,提高了报文转发的稳定性与灵活性。
本发明实施例还提供了一种用于快速转发报文的硬件加速器,如图4所示,所述硬件加速器包括:
接收模块,用于接收到报文后,判断是否能够转发所述报文;
作为一种实现方式,所述接收模块,用于接收到报文后,判断是否能够转发所述报文,包括:接收到报文后,判断自身存储的硬件加速条目是否老化,如果老化,则不能转发所述报文;或,接收到报文后,判断自身存储的硬件加速条目是否还有剩余,如果没有剩余,则不能转发所述报文;
所述接收到报文后,判断自身存储的硬件加速条目是否老化,包括:
接收到报文后,判断自身存储的硬件加速条目是否到达其老化时间,如果到达其老化时间,则说明所述硬件加速条目已老化;本发明实施例中的硬件加速条目老化时间可根据数据流数目、单条流速率等因素进行修改。
发送模块,用于在判断出不能转发所述报文后,将所述报文发送至通过软件转发报文的入口。
本发明实施例在通过硬件无法转发报文时,将报文发送至通过软件转发报文入口,即将硬件报文转发和软件报文转发结合起来,相对单纯用硬件转发报文或者用软件转发报文,能够实现更高的报文转发性能。
本发明实施例还提供了一种通过软件快速转发报文的系统,如图5所示,所述系统包括软件加速模块;
所述软件加速模块包括:
接收单元,用于接收无法根据硬件加速条目转发的报文;
转发单元,用于判断是否能够根据软件加速条目对所述报文进行转发,如果能,按照所述软件加速条目对所述报文进行转发。
转发单元用于判断是否能够根据软件加速条目对所述报文进行转发,包括:判断是否存在软件加速条目;或者判断软件加速条目是否已满;如果不存在软件加速条目,或软件加速条目已满,则不能根据软件加速条目对所述报文进行转发。
作为一种实现方式,所述系统还包括:协议栈模块:
所述转发单元,还用于在判断出根据软件加速条目不能对所述报文进行转发时,将所述报文发送至协议栈模块;
所述协议栈模块,用于通过TCP/IP协议栈对所述报文进行转发。
所述软件加速条目可以由匹配项match与目标项target两部分组成,作为一种实现方式,所述系统还包括:
加速调节模块,用于在通过TCP/IP协议栈对所述报文进行转发的过程中,生成或更新所述软件加速条目:提取报文的“源IP\目的IP\源端口\目的端口\协议”五元组作为match信息,同时记录网络地址转换NAT信息、虚拟局域网VLAN信息、出端口信息等报文修改动作作为target信息;根据提取的match信息和target信息生成或更新软件加速条目。
作为一种实现方式,所述转发单元,还用于将所述报文按照所述软件加速条目进行转发后,对所述报文所在流的后续报文可直接查询该软件加速条目,match信息匹配命中后,根据target信息进行报文修改,直接将所述后续报文从出接口发出,从而加速了后续报文的转发速度。
作为一种实现方式,加速调节模块,还用于获取单位时间内经软件转发的流的报文数(Packets Per Second,PPS);如果经软件转达的流的报文数超过PPS阈值,将根据该流生成的软件加速条目配置为硬件加速条目。如果硬件加速条目使用越多,且后续快速增长,很可能导致硬加速资源短期内耗尽,此时可将PPS阈值动态调大,可以避免一些慢速流占用硬加速资源,因为PPS越大,说明报文所在数据流的速率越高,将PPS阈值调大,可以使流速达到PPS阈值的数据流才被配置到硬件加速条目中,进而可以避免慢流速占用硬加速资源;反之,如果硬件加速条目使用较少,说明硬加速资源充足,此时可将PPS阈值动态调小,尽可能通过硬加速资源转发报文,实现对报文的快速转发。
上述,PPS阈值的获取方法可以包括:
公式一:带宽利用率=设备当前吞吐量/设备最大吞吐量
带宽利用率的取值范围为0-1;
公式二:硬加速饱和度=当前软件加速条目数/硬加速最大条目数
硬加速饱和度反映的是硬件加速条目的使用情况,由于当前软件加速条目数可能大于硬件加速最大条目数,因此硬加速饱和度可能大于1,即还存在等待配置为硬件加速条目的软件加速条目;为避免频繁抖动,精度为小数点后两位(0.01),小数点两位以后的值四舍五入处理,如果结果为0,则补齐为0.01;
公式三:
Figure BDA0001921202610000151
公式四:PPS调节系数=硬加速饱和度/单位带宽空余率
公式五:PPS阈值=初始PPS阈值*PPS调节系数;
PPS阈值与硬加速饱和度成正比,与单位带宽空余率成反比。硬件加速条目越多,PPS阈值越大;带宽空余越多,PPS阈值越小。由于PPS阈值为整数,计算结果需进行取整,不足1时补齐为1。
作为一种实现方式,所述加速调节模块,还用于获取硬件加速条目已使用个数;根据所述硬件加速条目的已使用个数,控制硬件加速条目的老化时间。
所述加速调节模块,用于根据所述硬件加速条目的已使用个数,控制硬件加速条目的老化时间,包括:当所述硬件加速条目的已使用个数超过第一预设值,加快硬件加速条目的老化时间;当所述硬件加速条目的已使用个数不到第二预设值,减小硬件加速条目的老化时间;所述第一预设值大于第二预设值。
所述硬件加速条目的已使用个数超过第一预设值,硬加速资源可能会短期内耗尽,加快硬件加速条目的老化时间,有利于一些无用或慢速连接快速老化,节省加速资源;当所述硬件加速条目的已使用个数不到第二预设值,减小硬件加速条目的老化时间,可在数据传输过程中尽可能通过硬件加速器进行报文转发,吞吐量得到最大利用,并且可以减小使用软件加速器重新学习造成的丢包与抖动,速率平稳。
上述,硬件加速条目的老化时间可以通过以下方式获得:
公式一:带宽利用率=设备当前吞吐量/设备最大吞吐量
带宽利用率的取值范围为0-1;
公式二:
Figure BDA0001921202610000161
说明:单位带宽利用率的取值范围为0-1,为避免频繁抖动,精度为小数点后两位(0.01),小数点两位以后的值四舍五入处理,如果结果为0,则补齐为0.01;
公式三:硬加速饱和度=当前软件加速条目数/硬加速最大条目数
硬加速饱和度反映的是加速条目的使用情况,由于当前软件加速条目数可能大于硬件加速最大条目数,因此硬加速饱和度可能大于1,即还存在等待配置为硬加速的软件加速条目;为避免频繁抖动,精度为小数点后两位(0.01),小数点两位以后的值四舍五入处理,如果结果为0,则补齐为0.01;
公式四:老化时间调节系数=单位带宽利用率/硬加速饱和度
硬件加速条目老化时间与带宽利用率成正比,与硬加速饱和度成反比;也就是吞吐量越大,老化时间调节系数越大;加速条目越多,老化时间调节系数越大越小;
公式五:加速老化时间=初始老化时间*老化时间调节系数。
本发明实施例能够实时协调软硬件加速资源,提高了报文转发的稳定性与灵活性。
本发明实施例还提供了一种快速转发报文系统,如图6所示,包括:
如前实施例所述的用于快速转发报文的硬件加速器;以及如前实施例所述的用于通过软件快速转发报文的系统。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些组件或所有组件可以被实施为由处理器,如数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。

Claims (15)

1.一种通过硬件快速报文转发方法,包括:
接收到报文后,判断是否能够转发所述报文;
如果不能转发所述报文,将所述报文发送至通过软件转发报文的入口;
其中,所述接收到报文后,判断是否能够转发所述报文,包括:
接收到报文后,判断自身存储的硬件加速条目是否到达其老化时间;如果到达其老化时间,则不能转发所述报文;
调整硬件加速条目的老化时间;
其中,调整后的老化时间 = 初始老化时间 * 老化时间调节系数;
其中,老化时间调节系数=单位带宽利用率/硬加速饱和度;
硬加速饱和度=当前软件加速条目数/硬加速最大条目数;
Figure DEST_PATH_IMAGE001
带宽利用率=设备当前吞吐量/设备最大吞吐量。
2.根据权利要求1所述的通过硬件快速报文转发方法,其特征在于,所述接收到报文后,判断是否能够转发所述报文,还包括:
接收到报文后,判断自身存储的硬件加速条目是否还有剩余,如果没有剩余,则不能转发所述报文。
3.一种通过软件快速报文转发方法,包括:
接收无法根据硬件加速条目转发的报文;
判断是否能够根据软件加速条目对所述报文进行转发,如果能,按照所述软件加速条目对所述报文进行转发;
获取单位时间内经软件转发的流的报文数PPS;
如果经软件转达的流的报文数超过PPS阈值,将根据该流生成的软件加速条目配置为硬件加速条目;
调整PPS阈值;
其中,调整后的PPS阈值 = 初始PPS阈值 * PPS调节系数;
其中,PPS调节系数= 硬加速饱和度/单位带宽空余率;
Figure 288701DEST_PATH_IMAGE002
硬加速饱和度=当前软件加速条目数/硬加速最大条目数;
带宽利用率=设备当前吞吐量/设备最大吞吐量。
4.根据权利要求3所述的通过软件快速报文转发方法,其特征在于,所述方法还包括:
如果不能,通过TCP/IP协议栈对所述报文进行转发。
5.根据权利要求4所述的通过软件快速报文转发方法,其特征在于,所述方法还包括:
在通过TCP/IP协议栈对所述报文进行转发的过程中,生成或更新所述软件加速条目。
6.根据权利要求5所述的通过软件快速报文转发方法,其特征在于,还包括:
获取硬件加速条目已使用个数;
根据所述硬件加速条目的已使用个数,控制硬件加速条目的老化时间。
7.根据权利要求6所述的通过软件快速报文转发方法,其特征在于,所述根据所述硬件加速条目的已使用个数,控制硬件加速条目的老化时间,包括:
当所述硬件加速条目的已使用个数超过第一预设值,加快硬件加速条目的老化时间;
当所述硬件加速条目的已使用个数不到第二预设值,减小硬件加速条目的老化时间;
所述第一预设值大于第二预设值。
8.一种用于快速转发报文的硬件加速器,包括:
接收模块,用于接收到报文后,判断是否能够转发所述报文;
发送模块,用于在判断出不能转发所述报文后,将所述报文发送至通过软件转发报文的入口;
其中,所述接收到报文后,判断是否能够转发所述报文,包括:
接收到报文后,判断自身存储的硬件加速条目是否到达其老化时间;如果到达其老化时间,则不能转发所述报文;
调整硬件加速条目的老化时间;
其中,调整后的老化时间 = 初始老化时间 * 老化时间调节系数;
其中,老化时间调节系数=单位带宽利用率/硬加速饱和度;
硬加速饱和度=当前软件加速条目数/硬加速最大条目数;
Figure 621594DEST_PATH_IMAGE001
带宽利用率=设备当前吞吐量/设备最大吞吐量。
9.根据权利要求8所述的用于快速转发报文的硬件加速器,其特征在于,所述接收模块,用于接收到报文后,判断是否能够转发所述报文,还包括:
接收到报文后,判断自身存储的硬件加速条目是否还有剩余,如果没有剩余,则不能转发所述报文。
10.一种通过软件快速转发报文的系统,其特征在于,包括软件加速模块;
所述软件加速模块包括:
接收单元,用于接收无法根据硬件加速条目转发的报文;
转发单元,用于判断是否能够根据软件加速条目对所述报文进行转发,如果能,按照所述软件加速条目对所述报文进行转发;
加速调节模块,用于:
获取单位时间内经软件转发的流的报文数PPS;
如果经软件转达的流的报文数超过PPS阈值,将根据该流生成的软件加速条目配置为硬件加速条目;
调整PPS阈值;
其中,PPS调节系数= 硬加速饱和度/单位带宽空余率;
Figure 373649DEST_PATH_IMAGE002
硬加速饱和度=当前软件加速条目数/硬加速最大条目数;
带宽利用率=设备当前吞吐量/设备最大吞吐量。
11.根据权利要求10所述的通过软件快速转发报文的系统,其特征在于,所述系统还包括:协议栈模块:
所述转发单元,还用于在判断出根据软件加速条目不能对所述报文进行转发时,将所述报文发送至协议栈模块;
所述协议栈模块,用于通过TCP/IP协议栈对所述报文进行转发。
12.根据权利要求11所述的通过软件快速转发报文的系统,其特征在于,所述系统还包括:
加速调节模块,用于在通过TCP/IP协议栈对所述报文进行转发的过程中,生成或更新所述软件加速条目。
13.根据权利要求12所述的通过软件快速转发报文的系统,其特征在于,
所述加速调节模块,还用于获取硬件加速条目已使用个数;根据所述硬件加速条目的已使用个数,控制硬件加速条目的老化时间。
14.根据权利要求13所述的通过软件快速转发报文的系统,其特征在于,
所述加速调节模块,用于根据所述硬件加速条目的已使用个数,控制硬件加速条目的老化时间,包括:
当所述硬件加速条目的已使用个数超过第一预设值,加快硬件加速条目的老化时间;
当所述硬件加速条目的已使用个数不到第二预设值,减小硬件加速条目的老化时间;
所述第一预设值大于第二预设值。
15.一种快速转发报文系统,其特征在于,包括:
如权利要求8或9所述的用于快速转发报文的硬件加速器;
以及
如权利要求10至14中任一项所述的通过软件快速转发报文的系统。
CN201811595254.7A 2018-12-25 2018-12-25 一种通过硬件、软件快速报文转发的方法和系统 Active CN111371693B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201811595254.7A CN111371693B (zh) 2018-12-25 2018-12-25 一种通过硬件、软件快速报文转发的方法和系统
PCT/CN2019/112551 WO2020134415A1 (zh) 2018-12-25 2019-10-22 一种通过硬件、软件快速报文转发的方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811595254.7A CN111371693B (zh) 2018-12-25 2018-12-25 一种通过硬件、软件快速报文转发的方法和系统

Publications (2)

Publication Number Publication Date
CN111371693A CN111371693A (zh) 2020-07-03
CN111371693B true CN111371693B (zh) 2023-01-10

Family

ID=71127335

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811595254.7A Active CN111371693B (zh) 2018-12-25 2018-12-25 一种通过硬件、软件快速报文转发的方法和系统

Country Status (2)

Country Link
CN (1) CN111371693B (zh)
WO (1) WO2020134415A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB202105736D0 (en) 2021-04-22 2021-06-09 Microsoft Technology Licensing Llc Hardware and software router

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101695047A (zh) * 2009-10-26 2010-04-14 中兴通讯股份有限公司 一种实现动态隧道报文转发的方法及交换机
CN103220219A (zh) * 2013-04-16 2013-07-24 杭州华三通信技术有限公司 一种报文转发方法和设备
CN107196776A (zh) * 2016-03-14 2017-09-22 中兴通讯股份有限公司 一种报文转发的方法和装置
CN107547346A (zh) * 2017-07-24 2018-01-05 新华三技术有限公司 一种报文传输方法和装置
CN107592287A (zh) * 2016-07-07 2018-01-16 深圳市中兴微电子技术有限公司 一种报文加速方法及装置
CN108243107A (zh) * 2018-01-30 2018-07-03 盛科网络(苏州)有限公司 一种动态调整硬件表项老化周期的方法及装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100555991C (zh) * 2006-12-29 2009-10-28 华为技术有限公司 报文访问控制的方法、转发引擎装置和通信设备
CN101340276A (zh) * 2008-08-11 2009-01-07 杭州华三通信技术有限公司 防止IPv6数据报文攻击的方法、装置和交换路由设备
CN108616452B (zh) * 2018-03-30 2020-12-25 新华三技术有限公司 报文转发方法及装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101695047A (zh) * 2009-10-26 2010-04-14 中兴通讯股份有限公司 一种实现动态隧道报文转发的方法及交换机
CN103220219A (zh) * 2013-04-16 2013-07-24 杭州华三通信技术有限公司 一种报文转发方法和设备
CN107196776A (zh) * 2016-03-14 2017-09-22 中兴通讯股份有限公司 一种报文转发的方法和装置
CN107592287A (zh) * 2016-07-07 2018-01-16 深圳市中兴微电子技术有限公司 一种报文加速方法及装置
CN107547346A (zh) * 2017-07-24 2018-01-05 新华三技术有限公司 一种报文传输方法和装置
CN108243107A (zh) * 2018-01-30 2018-07-03 盛科网络(苏州)有限公司 一种动态调整硬件表项老化周期的方法及装置

Also Published As

Publication number Publication date
CN111371693A (zh) 2020-07-03
WO2020134415A1 (zh) 2020-07-02

Similar Documents

Publication Publication Date Title
US9774932B2 (en) Method and apparatus for data packet switching, access switch and switching system
WO2019185013A1 (zh) 报文转发
US10855606B2 (en) Information processing apparatus and information processing system
KR102177574B1 (ko) 컴퓨팅 디바이스에서 패킷 수명을 예측하기 위한 큐잉 시스템
WO2018013443A1 (en) Multiple core software forwarding
WO2022222674A1 (zh) 消息处理方法和装置、电子设备、计算机可读存储介质
CN109873776A (zh) 一种组播报文负载分担的均衡方法及装置
US9137030B1 (en) Multicast queueing in a network switch
CN111371693B (zh) 一种通过硬件、软件快速报文转发的方法和系统
CN115037399A (zh) 报文转发方法、电子设备和存储介质
US11677666B2 (en) Application-based queue management
CN114124830B (zh) 一种面向数据中心多应用场景的rdma服务质量保证方法及系统
CN111224889A (zh) 一种数据传输的方法和装置
CN116886621B (zh) 报文转发控制方法、dpu及相关设备
Ko et al. Openqflow: Scalable openflow with flow-based qos
CN117793583A (zh) 报文转发方法、装置、电子设备及计算机可读存储介质
WO2023116611A1 (zh) 一种队列控制的方法及装置
US8467311B2 (en) Method and system for avoiding flooding of packets in switches
CN116471238A (zh) 基于新型网络拥塞通告及速率调整策略的拥塞管理方法
US11621920B2 (en) Bandwidth-control policers in a network adapter
CN112449255B (zh) 报文处理方法和计算机存储介质
US11201829B2 (en) Technologies for pacing network packet transmissions
CN111065118A (zh) 一种移动终端网络速度控制方法
CN117041776B (zh) 一种基于gpon系统实现节省带宽的组播流转发方法
US20220224989A1 (en) Multiple Core Software Forwarding

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant