CN114070798B - 一种报文传输方法、装置及设备 - Google Patents
一种报文传输方法、装置及设备 Download PDFInfo
- Publication number
- CN114070798B CN114070798B CN202210009480.2A CN202210009480A CN114070798B CN 114070798 B CN114070798 B CN 114070798B CN 202210009480 A CN202210009480 A CN 202210009480A CN 114070798 B CN114070798 B CN 114070798B
- Authority
- CN
- China
- Prior art keywords
- token bucket
- tokens
- message
- target
- shared
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 55
- 230000005540 biological transmission Effects 0.000 title claims abstract description 25
- 238000007792 addition Methods 0.000 claims description 22
- 238000012545 processing Methods 0.000 claims description 20
- 238000010586 diagram Methods 0.000 description 23
- 230000006870 function Effects 0.000 description 15
- 230000008569 process Effects 0.000 description 15
- PWHVEHULNLETOV-UHFFFAOYSA-N Nic-1 Natural products C12OC2C2(O)CC=CC(=O)C2(C)C(CCC2=C3)C1C2=CC=C3C(C)C1OC(O)C2(C)OC2(C)C1 PWHVEHULNLETOV-UHFFFAOYSA-N 0.000 description 10
- 101100388291 Arabidopsis thaliana DTX49 gene Proteins 0.000 description 7
- 101100268840 Danio rerio chrna1 gene Proteins 0.000 description 7
- 101150065731 NIC1 gene Proteins 0.000 description 7
- 238000004590 computer program Methods 0.000 description 7
- 238000004519 manufacturing process Methods 0.000 description 7
- 230000001133 acceleration Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 3
- 230000007423 decrease Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000000691 measurement method Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000009789 rate limiting process Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/215—Flow control; Congestion control using token-bucket
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提供一种报文传输方法、装置及设备,该方法包括:针对待发送的目标报文,确定所述目标报文需要消耗的目标令牌数量;若所述目标报文是第一类报文,则确定共享令牌桶和独立令牌桶中的剩余令牌数量是否不小于所述目标令牌数量;若是,则发送所述目标报文;若所述目标报文是第二类报文,则确定所述共享令牌桶中的剩余令牌数量是否不小于所述目标令牌数量;若是,则发送所述目标报文。通过本申请的技术方案,在第一类报文和第二类报文共存的应用场景下,解决第一类报文的限速不准和抖动幅度过大等问题,使得第一类报文和第二类报文能够合理的使用网络带宽,更加合理地利用网络资源。
Description
技术领域
本申请涉及通信技术领域,尤其涉及一种报文传输方法、装置及设备。
背景技术
QoS(Quality of Service,服务质量)是利用各种基础技术,为指定网络通信提供更好的服务能力,是网络的一种安全机制,用来解决网络延迟和阻塞等问题,对于容量有限的网络十分重要。当网络发生拥塞时,所有数据流都有可能被丢弃,而支持QoS的设备,可以为不同数据流提供不同服务质量,对实时性强的重要数据流优先处理,对实时性不强的普通数据流提供较低优先级,网络拥塞时甚至丢弃,从而能够有效分配网络带宽,更加合理地利用网络资源。
流量控制是实现QoS的重要过程,为了实现流量控制,就需要对通过设备的流量进行度量,而令牌桶(Token-Bucket)就是一种流量测量方法,用于评估流量速率是否超过规定值。令牌桶可以看作是一个存放令牌的容器,预先设定一定的容量。按照设定速度向令牌桶中放置令牌,当令牌桶中令牌满时,多余的令牌溢出。当报文到达设备时,会根据报文大小从令牌桶中取出令牌数量用来传输报文,也就是说,要使报文被传输就需要保证令牌桶中有足够多的令牌,如果令牌数量不够,则报文会被丢弃或缓存,从而达到限制流量的目的。
发明内容
本申请提供一种报文传输方法,应用于网络节点,所述网络节点包括共享令牌桶和独立令牌桶,所述共享令牌桶是第一类报文和第二类报文共用的令牌桶,所述独立令牌桶是第一类报文使用的令牌桶,所述方法包括:
针对待发送的目标报文,确定所述目标报文需要消耗的目标令牌数量;
若所述目标报文是第一类报文,则确定所述共享令牌桶和所述独立令牌桶中的剩余令牌数量是否不小于所述目标令牌数量;若是,则发送所述目标报文;
若所述目标报文是第二类报文,则确定所述共享令牌桶中的剩余令牌数量是否不小于所述目标令牌数量;若是,则发送所述目标报文。
本申请提供一种报文传输装置,应用于网络节点,所述网络节点包括共享令牌桶和独立令牌桶,所述共享令牌桶是第一类报文和第二类报文共用的令牌桶,所述独立令牌桶是第一类报文使用的令牌桶,所述装置包括:确定模块,用于针对待发送的目标报文,确定所述目标报文需要消耗的目标令牌数量;
处理模块,用于若所述目标报文是第一类报文,则确定所述共享令牌桶和所述独立令牌桶中的剩余令牌数量是否不小于所述目标令牌数量;若是,则发送所述目标报文;若所述目标报文是第二类报文,则确定所述共享令牌桶中的剩余令牌数量是否不小于所述目标令牌数量;若是,则发送所述目标报文。
本申请提供一种网络节点,包括:处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令;所述处理器用于执行机器可执行指令,以实现本申请上述实施例公开的报文传输方法。
由以上技术方案可见,本申请实施例中,配置共享令牌桶和独立令牌桶,共享令牌桶是第一类报文和第二类报文共用的令牌桶,独立令牌桶是第一类报文使用的令牌桶,通过共享令牌桶和独立令牌桶实现第一类报文的流量控制,并通过共享令牌桶实现第二类报文的流量控制,在第一类报文和第二类报文共存的应用场景下,解决第一类报文的限速不准和抖动幅度过大等问题,使得第一类报文和第二类报文能够合理的使用网络带宽,更加合理地利用网络资源。
附图说明
为了更加清楚地说明本申请实施例或者现有技术中的技术方案,下面将对本申请实施例或者现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据本申请实施例的这些附图获得其他的附图。
图1A是本申请一种实施方式中的令牌桶的示意图;
图1B是本申请一种实施方式中的基于令牌桶的报文处理示意图;
图1C是本申请一种实施方式中的TCP报文的流量限速的示意图;
图2是本申请一种实施方式中的报文传输方法的流程示意图;
图3是本申请一种实施方式中的应用场景示意图;
图4是本申请一种实施方式中的共享令牌桶和独立令牌桶的示意图;
图5是本申请一种实施方式中的令牌生产过程的示意图;
图6是本申请一种实施方式中的令牌消费过程的示意图;
图7是本申请一种实施方式中的TCP报文的流量限速的示意图;
图8是本申请一种实施方式中的报文传输装置的结构示意图;
图9是本申请一种实施方式中的网络节点的硬件结构图。
具体实施方式
在本申请实施例使用的术语仅仅是出于描述特定实施例的目的,而非限制本申请。本申请和权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。还应当理解,本文中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,此外,所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
随着云计算技术的高速发展,流量限速在QoS功能中起到重要作用,同时也是提供流量计费的重要手段之一,精确的流量限速对于云网络运维以及用户体验都至关重要。其中,QoS用于解决网络延迟和阻塞等问题,可以为不同数据流提供不同服务质量,对实时性强的重要数据流优先处理,对实时性不强的普通数据流提供较低优先级,网络拥塞时甚至丢弃,从而能够有效分配网络带宽,更加合理地利用网络资源。流量限速是实现QoS的重要过程,为了实现流量限速,可以通过令牌桶对流量进行度量,评估流量速率是否超过规定值。
示例性的,令牌桶可以看作是一个存放令牌的容器,预先设定一定的容量。按照设定速度向令牌桶中放置令牌,当令牌桶中令牌满时,多余的令牌就会溢出。当报文到达设备时,可以根据报文大小从令牌桶中取出令牌数量用来传输报文,也就是说,要使报文被传输就需要保证令牌桶中有足够多的令牌,如果令牌数量不够,则报文会被丢弃或缓存,从而达到流量限速的目的。
参见图1A所示,为令牌桶的示意图,针对令牌桶的令牌生产过程,可以按照已配置的CIR(Commit Information Rate,承诺信息速率)向令牌桶中添加令牌(token),可以将令牌桶中的数量上限值记为bucket size,bucket size为固定值,可以根据经验配置,基于此,在向令牌桶中添加令牌时,令牌桶中的令牌数量不能超过bucket size,即令牌桶中的令牌数量的最大值为bucket size。
参见图1B所示,为基于令牌桶的报文处理示意图,针对令牌桶的令牌消费过程,针对待发送的报文,需要先确定该报文需要消耗的令牌数量。若令牌桶中的剩余令牌(记为bucket level)大于或等于该报文需要消耗的令牌数量,则消费令牌桶中的令牌,且该报文可以正常通过。若令牌桶中的剩余令牌小于该报文需要消耗的令牌数量,则丢弃该报文,不再消费令牌桶中的令牌。
基于上述方式,在只存在TCP(Transmission Control Protocol,传输控制协议)报文的应用场景下,基于上述令牌生产过程和令牌消费过程,就可以达到对TCP报文进行精确流量限速的目的。此外,在只存在UDP(User Datagram Protocol,用户数据包协议)报文的应用场景下,基于上述令牌生产过程和令牌消费过程,也可以达到对UDP报文进行精确流量限速的目的。
在TCP报文和UDP报文共存的应用场景下,基于上述令牌生产过程和令牌消费过程,可以达到对UDP报文进行精确流量限速的目的,但是,无法达到对TCP报文进行精确流量限速的目的,即对于TCP报文的流量限速并不准确,TCP报文只能达到目标限速的50%左右。参见图1C所示,为TCP报文的流量限速的示意图,TCP报文一直在目标限速下震荡,准确性只有50%左右。
其中,无法对TCP报文进行精确流量限速,其原因在于:UDP报文的流量比较稳定,按照均匀速率发送,而TCP报文的流量具有突发特征,可以根据拥塞算法控制不同滑动窗口的报文数量,TCP报文与UDP报文相比,突发行为更为明显。这样,当TCP报文和UDP报文混合时,UDP报文可能会过多地占用令牌,导致TCP报文消费的令牌数量较少,无法对TCP报文进行精确流量限速。
比如说,在每个周期,向令牌桶中添加100个令牌,该周期内,UDP报文的数量是100,占用100个令牌,TCP报文的数量是100,占用100个令牌。显然,UDP报文和TCP报文各占50个令牌,UDP报文的目标限速是50%,TCP报文的目标限速是50%,即只能发送50个UDP报文,且发送50个TCP报文。
针对每个周期,假设将该周期划分为子周期1和子周期2,在子周期1内,向令牌桶中添加50个令牌,在子周期2内,向令牌桶中添加50个令牌。
对于UDP报文来说,是按照均匀速率进行发送,即在子周期1内发送50个UDP报文,在子周期2内发送50个UDP报文。对于TCP报文来说,在滑动窗口1内只发送5个报文,若发现网络链路质量较好,则在滑动窗口2内发送95个报文,若发现网络链路质量较差,则在滑动窗口3内只发送5个报文,以此类推,假设滑动窗口1对应子周期1,滑动窗口2对应子周期2,那么,在子周期1内发送5个TCP报文,在子周期2内发送95个TCP报文。
综上所述,子周期1内发送50个UDP报文和5个TCP报文,共占用50个令牌,假设50个UDP报文共占用46个令牌,5个TCP报文共占用4个令牌。子周期2内发送50个UDP报文和95个TCP报文,共占用50个令牌,假设50个UDP报文共占用17个令牌,95个TCP报文共占用33个令牌。
综上所述,100个UDP报文共占用63个令牌,其远大于目标限速(如63%的限速大于50%的目标限速),而TCP报文共占用37个令牌,其远小于目标限速(如37%的限速小于50%的目标限速),也就是说,UDP报文过多地占用令牌,导致TCP报文消费的令牌数量较少,无法对TCP报文进行精确流量限速。
针对上述问题,本申请实施例中,可以配置共享令牌桶和独立令牌桶,共享令牌桶是TCP报文和UDP报文共用的令牌桶,而独立令牌桶是TCP报文使用的令牌桶,通过共享令牌桶和独立令牌桶实现TCP报文的流量控制,并通过共享令牌桶实现UDP报文的流量控制,在TCP报文和UDP报文共存的应用场景下,能够解决TCP报文的限速不准和抖动幅度过大等问题,从而使得TCP报文和UDP报文能够合理的使用网络带宽,更加合理地利用网络资源。
比如说,在每个周期来说,可以向共享令牌桶中添加70个令牌,并向独立令牌桶中添加30个令牌,在该周期内,UDP报文的数量是100,占用100个令牌,TCP报文的数量是100,占用100个令牌。显然,UDP报文和TCP报文各占50个令牌,UDP报文的目标限速是50%,TCP报文的目标限速是50%,也就是说,在该周期内,只能发送50个UDP报文,且发送50个TCP报文。
针对每个周期,假设将该周期划分为子周期1和子周期2,在子周期1内,向共享令牌桶中添加35个令牌,并向独立令牌桶中添加15个令牌,在子周期2内,向共享令牌桶中添加35个令牌,并向独立令牌桶中添加15个令牌。
对于UDP报文来说,是按照均匀速率进行发送,即在子周期1内发送50个UDP报文,在子周期2内发送50个UDP报文。对于TCP报文来说,在子周期1内发送5个TCP报文,在子周期2内发送95个TCP报文。
综上所述,子周期1内发送50个UDP报文和5个TCP报文,50个UDP报文和5个TCP报文占用共享令牌桶中的35个令牌,如50个UDP报文共占用32个令牌,5个TCP报文共占用3个令牌,剩余TCP报文占用独立令牌桶中的15个令牌,如共占用2个令牌。经过上述过程,50个UDP报文共占用32个令牌,5个TCP报文共占用5个令牌,且独立令牌桶中还剩余13个令牌。
子周期2内发送50个UDP报文和95个TCP报文,50个UDP报文和95个TCP报文占用共享令牌桶中的35个令牌,如50个UDP报文共占用12个令牌,95个TCP报文共占用23个令牌,此外,剩余TCP报文还可以占用独立令牌桶中的所有令牌,如占用28(15+13)个令牌。经过上述过程,50个UDP报文共占用12个令牌,95个TCP报文共占用51个令牌。综上可以看出,100个UDP报文共占用44个令牌,而100个TCP报文共占用56个令牌。
综上所述,100个UDP报文共占用44个令牌,其与目标限速比较接近(如44%的限速与50%的目标限速比较接近),而TCP报文共占用56个令牌,其与目标限速比较接近(如56%的限速与50%的目标限速比较接近),也就是说,UDP报文和TCP报文可以均衡的消费令牌,从而对TCP报文进行精确流量限速。
在实际应用中,通过控制共享令牌桶的数量上限值(即bucket size),就可以促使UDP报文的限速与目标限速比较接近,且使TCP报文的限速与目标限速比较接近,使得TCP报文的限速达到目标限速的90%左右,实现TCP报文和UDP报文的精确限速,而精确限速对于云网络运维以及用户体验都至关重要。
以下结合具体实施例,对本申请实施例的技术方案进行说明。
本申请实施例中提出一种报文传输方法,可以应用于网络节点,该网络节点可以是网络设备、主机设备、服务器设备等,对此网络节点的类型不做限制,可以是需要进行流量限速的任意设备。本申请实施例中,网络节点可以包括共享令牌桶和独立令牌桶,共享令牌桶可以是第一类报文和第二类报文共用的令牌桶,独立令牌桶可以是第一类报文使用的令牌桶,也就是说,第一类报文和第二类报文均可以消费共享令牌桶中的令牌,第一类报文可以消费独立令牌桶中的令牌,但是,第二类报文无法消费独立令牌桶中的令牌。在上述应用场景下,参见图2所示,为该报文传输方法的流程示意图,该方法可以包括:
步骤201、针对待发送的目标报文,确定目标报文需要消耗的目标令牌数量。
示例性的,若网络节点采用报文数量进行流量限速,则基于目标报文的报文数量确定目标报文需要消耗的目标令牌数量。若网络节点采用报文长度进行流量限速,则基于目标报文的报文长度确定目标报文需要消耗的目标令牌数量。
步骤202、确定目标报文是第一类报文还是第二类报文。若目标报文是第一类报文,则执行步骤203;若目标报文是第二类报文,则执行步骤204。
步骤203、确定共享令牌桶和独立令牌桶中的剩余令牌数量是否不小于目标令牌数量;若是,则发送目标报文。若否,则丢弃目标报文。
示例性的,若共享令牌桶和独立令牌桶中的剩余令牌数量(即共享令牌桶中的剩余令牌数量与独立令牌桶中的剩余令牌数量之和)不小于目标令牌数量,则从共享令牌桶和/或独立令牌桶中删除与目标令牌数量匹配的令牌。例如,若共享令牌桶中的剩余令牌数量不小于目标令牌数量,则从共享令牌桶中删除与目标令牌数量匹配的令牌;或者,若共享令牌桶中的剩余令牌数量小于目标令牌数量,则确定目标令牌数量与共享令牌桶中的剩余令牌数量的差值数量;从共享令牌桶中删除所有令牌,并从独立令牌桶中删除与该差值数量匹配的令牌。
步骤204、确定共享令牌桶中的剩余令牌数量是否不小于目标令牌数量;若是,则可以发送目标报文。若否,则可以丢弃目标报文。
示例性的,若共享令牌桶中的剩余令牌数量不小于目标令牌数量,则可以从共享令牌桶中删除与目标令牌数量匹配的令牌。
在一种可能的实施方式中,还可以基于已配置的承诺信息速率确定令牌添加数量,向共享令牌桶和独立令牌桶中添加与该令牌添加数量匹配的令牌。
比如说,在共享令牌桶中的令牌数量未达到第一数量上限值时,可以持续向共享令牌桶中添加令牌,一直到共享令牌桶中的令牌数量已达到第一数量上限值,在此基础上,可以持续向独立令牌桶中添加令牌,一直到共享令牌桶和独立令牌桶中已添加的令牌总数量达到该令牌添加数量。其中,共享令牌桶对应的第一数量上限值可以小于该令牌添加数量;共享令牌桶对应的第一数量上限值与独立令牌桶对应的第二数量上限值之和可以大于令牌添加数量。
示例性的,还可以基于第一类报文对应的拥塞控制特征,确定独立令牌桶对应的第二数量上限值;其中,该拥塞控制特征可以包括相邻两个滑动窗口之间的报文数量比例,当该报文数量比例越大时,则第二数量上限值越大。
示例性的,基于已配置的承诺信息速率确定令牌添加数量,可以包括:若网络节点采用报文数量进行流量限速,则确定承诺信息速率对应的报文数量,并基于该报文数量确定令牌添加数量;若网络节点采用报文长度进行流量限速,则确定承诺信息速率对应的报文长度,并基于该报文长度确定令牌添加数量。
在一种可能的实施方式中,报文传输方法可以应用于网络节点的智能网卡,由智能网卡基于共享令牌桶和独立令牌桶实现第一类报文或第二类报文的传输。
在一种可能的实施方式中,第一类报文可以为TCP报文,第二类报文可以为UDP报文。当然,TCP报文只是第一类报文的示例,对此第一类报文的类型不做限制,UDP报文只是第二类报文的示例,对此第二类报文的类型不做限制。
由以上技术方案可见,本申请实施例中,可以配置共享令牌桶和独立令牌桶,共享令牌桶是第一类报文和第二类报文共用的令牌桶,独立令牌桶是第一类报文使用的令牌桶,通过共享令牌桶和独立令牌桶实现第一类报文的流量控制,通过共享令牌桶实现第二类报文的流量控制,在第一类报文和第二类报文共存的应用场景下,解决第一类报文的限速不准和抖动幅度过大等问题,使得第一类报文和第二类报文能够合理的使用网络带宽,更加合理地利用网络资源。
以下结合具体应用场景,对本申请实施例的报文传输方法进行说明。
参见图3所示,为本申请实施例的应用场景示意图,本应用场景中,以网络节点是主机节点为例,当然,图3只是本申请的示例,对此应用场景不做限制,只要是需要进行流量限速的应用场景,均在本申请保护范围之内。
本应用场景中,以TCP报文和UDP报文的处理过程为例进行说明。
参见图3所示,Host0(主机0)中VM0(虚拟机)与Host1中VM1之间建立TCP连接,VM0与VM1之间建立UDP连接。通过TCP连接,VM0与VM1之间传输TCP报文,通过UDP连接,VM0与VM1之间传输UDP报文。
参见图3所示,Host0还可以包括NIC0(Network Interface Controller,网络接口控制器),且NIC0是Host0中的网卡(即智能网卡),Host1还可以包括NIC1,且NIC1是Host1中的网卡(即智能网卡)。在此基础上,可以由NIC0或者NIC1实现流量限速,即图2所示流程由NIC0或者NIC1实现。
参见图3所示,NIC0可以包括限速模块(也可以称为meter模块),由NIC0中的限速模块实现流量限速,NIC1可以包括限速模块(也可以称为meter模块),由NIC1中的限速模块实现流量限速,显然,图2所示流程可以由限速模块实现。
在实际应用中,限速模块可以通过加速芯片实现,也就是说,可以在NIC0或者NIC1中部署加速芯片,由加速芯片实现限速模块的功能,即,可以由加速芯片实现流量限速功能,具体流量限速过程可以参见图2所示流程。
示例性的,由智能网卡(如NIC0或者NIC1)实现流量限速功能时,智能网卡可以基于共享令牌桶和独立令牌桶实现流量限速功能,即基于共享令牌桶和独立令牌桶实现TCP报文的流量限速功能,基于共享令牌桶实现UDP报文的流量限速功能,通过流量限速功能对NIC0和NIC1之间的网络带宽进行限速。
参见图4所示,智能网卡(如NIC0或者NIC1)实现流量限速功能时,智能网卡需要配置共享令牌桶和独立令牌桶,共享令牌桶可以记为bucket0,独立令牌桶可以记为bucket1。示例性的,共享令牌桶可以是TCP报文和UDP报文共用的令牌桶,也就是说,TCP报文和UDP报文均可以消费共享令牌桶中的令牌。独立令牌桶可以是TCP报文使用的令牌桶,也就是说,TCP报文可以消费独立令牌桶中的令牌,但是,UDP报文无法消费独立令牌桶中的令牌。
为了区分方便,将共享令牌桶的数量上限值记为第一数量上限值,如bucket0size,将独立令牌桶的数量上限值记为第二数量上限值,如bucket1 size。第一数量上限值表示共享令牌桶中令牌的最大数量,即共享令牌桶中最多存储第一数量上限值个令牌,当令牌超过第一数量上限值时,共享令牌桶就会溢出。第二数量上限值表示独立令牌桶中令牌的最大数量,即独立令牌桶中最多存储第二数量上限值个令牌,当令牌超过第二数量上限值时,独立令牌桶就会溢出。
示例性的,共享令牌桶对应的第一数量上限值可以根据经验配置,对此第一数量上限值不做限制。比如说,可以基于CIR(Committed Information Rate,承诺信息速率)确定令牌添加数量M,表示在每个周期,需要向共享令牌桶和独立令牌桶中添加M个令牌,即共享令牌桶和独立令牌桶中一共添加M个令牌,因此,共享令牌桶对应的第一数量上限值可以小于令牌添加数量M,避免将M个令牌均添加到共享令牌桶中,还可以将部分令牌添加到独立令牌桶中。
示例性的,独立令牌桶对应的第二数量上限值可以根据经验配置,对此第二数量上限值不做限制。比如说,第一数量上限值与第二数量上限值之和,还可以大于令牌添加数量M,从而使得共享令牌桶和独立令牌桶能够容纳M个令牌,即所有M个令牌能够添加到共享令牌桶和独立令牌桶中。
本申请实施例中,参见图5所示,令牌生产过程可以包括以下步骤:
步骤501、基于承诺信息速率确定令牌添加数量M。
示例性的,承诺信息速率是CIR,表示向令牌桶中投放令牌的速率,因此,可以基于承诺信息速率确定令牌添加数量M,即在每个周期,向共享令牌桶和独立令牌桶中添加M个令牌,即共享令牌桶和独立令牌桶中一共添加M个令牌。
在一种可能的实施方式中,若智能网卡采用报文数量进行流量限速,则一个报文对应一个令牌,即一个报文需要消费一个令牌。在该情况下,承诺信息速率用于表示每个周期向令牌桶中投放令牌的数量,且该数量对应的是报文数量,因此,可以确定承诺信息速率对应的报文数量,并基于该报文数量确定令牌添加数量M,即将该报文数量作为令牌添加数量M。基于上述令牌添加数量M可知,在每个周期,需要向共享令牌桶和独立令牌桶中添加M个令牌。
在另一种可能的实施方式中,若智能网卡采用报文长度进行流量限速,则一个字节对应一个令牌,即一个报文需要消费多个令牌,假设报文长度是N字节,则该报文需要消费N个令牌。在该情况下,承诺信息速率用于表示每个周期向令牌桶中投放令牌的数量,且该数量对应的是报文长度,因此,可以确定承诺信息速率对应的报文长度,并基于该报文长度确定令牌添加数量M,比如说,可以将该报文长度作为令牌添加数量M。基于上述令牌添加数量M可知,在每个周期,需要向共享令牌桶和独立令牌桶中添加M个令牌。
当然,上述只是确定令牌添加数量M的示例,本实施例对此不做限制。
步骤502、向共享令牌桶中添加令牌,对此添加过程不做限制。
步骤503、判断共享令牌桶中的令牌数量是否达到第一数量上限值。如果否,则返回步骤502,继续向共享令牌桶中添加令牌。如果是,则执行步骤504。
步骤504、向独立令牌桶中添加令牌,对此添加过程不做限制。
示例性的,针对每个周期来说,可以向共享令牌桶和独立令牌桶中添加M个令牌,具体添加过程可以参见步骤502-步骤504,即先向共享令牌桶中添加令牌,在共享令牌桶中的令牌溢出时,向独立令牌桶中添加令牌,且独立令牌桶中添加的令牌数量与共享令牌桶中添加的令牌数量之和,为令牌添加数量M。
参见步骤502-步骤504,针对每个周期来说,在共享令牌桶中的令牌数量未达到第一数量上限值时,会持续向共享令牌桶中添加令牌,一直到共享令牌桶中的令牌数量已达到第一数量上限值,持续向独立令牌桶中添加令牌,一直到共享令牌桶和独立令牌桶中已添加的令牌总数量达到令牌添加数量M。
参见上述实施例,由于第一数量上限值小于令牌添加数量M,因此,在持续向共享令牌桶中添加令牌时,共享令牌桶中的令牌数量会大于第一数量上限值,从而能够向独立令牌桶中添加令牌。由于第一数量上限值与第二数量上限值之和大于令牌添加数量M,因此,在向共享令牌桶和独立令牌桶中添加令牌时,共享令牌桶和独立令牌桶可以容纳令牌添加数量M个令牌。
在一种可能的实施方式中,还可以基于TCP报文对应的拥塞控制特征,确定独立令牌桶对应的第二数量上限值;其中,该拥塞控制特征包括相邻两个滑动窗口之间的报文数量比例,当该报文数量比例越大时,第二数量上限值越大。
比如说,由于独立令牌桶的第二数量上限值会影响TCP报文的抖动,因此,需要优先保证独立令牌桶的第二数量上限值,也就是说,可以动态调节第二数量上限值。在实际应用中,第二数量上限值与第一数量上限值之和可以为固定值,对此固定值不做限制,因此,当第二数量上限值增加时,则第一数量上限值可以降低,当第二数量上限值降低时,则第一数量上限值可以增加。
其中,为了动态调节第二数量上限值,可以采用如下方式:获取TCP报文对应的拥塞控制特征,并基于该拥塞控制特征确定第二数量上限值。关于该拥塞控制特征,与TCP报文的拥塞控制算法有关,对此拥塞控制算法不做限制。
比如说,基于拥塞控制算法1对TCP报文进行拥塞控制时,在滑动窗口1内只发送a个报文,若发现网络链路质量较好,则在滑动窗口2内发送a*k1个报文,若发现网络链路质量较差,则在滑动窗口3内只发送a个报文,以此类推。对于拥塞控制算法1来说,拥塞控制特征包括相邻两个滑动窗口之间的报文数量比例k1,k1可以为大于1的数值。基于拥塞控制算法2对TCP报文进行拥塞控制时,在滑动窗口1内只发送a个报文,若发现网络链路质量较好,则在滑动窗口2内发送a*k2个报文,若发现网络链路质量较差,则在滑动窗口3内只发送a个报文,以此类推。对于拥塞控制算法2来说,拥塞控制特征包括相邻两个滑动窗口之间的报文数量比例k2,k2可以为大于1的数值。
综上所述,不同拥塞控制算法可以对应不同的拥塞控制特征(如报文数量比例),而本实施例中,可以基于该报文数量比例确定第二数量上限值,当报文数量比例越大时,该第二数量上限值越大。比如说,基于报文数量比例k1确定拥塞控制算法1对应的第二数量上限值w1,基于报文数量比例k2确定拥塞控制算法2对应的第二数量上限值w2。显然,若报文数量比例k1大于报文数量比例k2,则第二数量上限值w1大于第二数量上限值w2,若报文数量比例k2大于报文数量比例k1,则第二数量上限值w2大于第二数量上限值w1。
关于第二数量上限值的确定方式,本实施例中不做限制,只要能够基于拥塞控制算法对应的拥塞控制特征动态调节第二数量上限值即可,使得第二数量上限值能够与拥塞控制算法适应,从而减轻TCP报文的抖动。
本申请实施例中,参见图6所示,令牌消费过程可以包括以下步骤:
步骤601、针对待发送的目标报文,确定目标报文需要消耗的目标令牌数量。
在一种可能的实施方式中,若智能网卡采用报文数量进行流量限速,则一个报文对应一个令牌,即一个报文需要消费一个令牌。在该情况下,可以基于目标报文的报文数量确定目标报文需要消耗的目标令牌数量,例如,目标报文的报文数量可以为1个,确定目标报文需要消耗的目标令牌数量为1。
在另一种可能的实施方式中,若智能网卡采用报文长度进行流量限速,则一个字节对应一个令牌,即一个报文需要消费多个令牌。在该情况下,可以基于目标报文的报文长度确定目标报文需要消耗的目标令牌数量,例如,目标报文的报文长度可以是N字节,确定目标报文需要消耗的目标令牌数量为N。
当然,上述只是确定目标令牌数量的示例,本实施例对此不做限制。
步骤602、确定目标报文是TCP报文还是UDP报文。若目标报文是TCP报文,则执行步骤603;若目标报文是UDP报文,则执行步骤606。
步骤603、确定共享令牌桶和独立令牌桶中的剩余令牌数量是否不小于目标令牌数量,即共享令牌桶中的剩余令牌数量与独立令牌桶中的剩余令牌数量之和,是否不小于目标令牌数量。若是,则执行步骤604,若否,则执行步骤605。
步骤604、发送目标报文,即发送TCP报文。
示例性的,在共享令牌桶和独立令牌桶中的剩余令牌数量不小于目标令牌数量时,还可以从共享令牌桶和/或独立令牌桶中删除与目标令牌数量匹配的令牌。其中,在删除与目标令牌数量匹配的令牌时,可以优先消费共享令牌桶中的令牌,在共享令牌桶中没有令牌时,可以消费独立令牌桶中的令牌。
示例性的,为了实现“优先消费共享令牌桶中的令牌,在共享令牌桶中没有令牌时,可以消费独立令牌桶中的令牌”,则可以采用如下方式:若共享令牌桶中的剩余令牌数量不小于目标令牌数量,则从共享令牌桶中删除与目标令牌数量匹配的令牌。若共享令牌桶中的剩余令牌数量小于目标令牌数量,则确定目标令牌数量与共享令牌桶中的剩余令牌数量的差值数量;从共享令牌桶中删除所有令牌,并从独立令牌桶中删除与该差值数量匹配的令牌。
例如,假设目标令牌数量是20,若共享令牌桶中的剩余令牌数量是30,则从共享令牌桶中删除20个令牌,这样,共享令牌桶中的剩余令牌数量更新为10。
若共享令牌桶中的剩余令牌数量是15,独立令牌桶中的剩余令牌数量是30,则从共享令牌桶中删除15个令牌,从独立令牌桶中删除5个令牌,这样,共享令牌桶中的剩余令牌数量更新为0,独立令牌桶中的剩余令牌数量更新为25。
步骤605、丢弃目标报文,即丢弃TCP报文。当然,在实际应用中,也可以缓存目标报文,而不是丢弃目标报文,在下个发送周期继续处理该目标报文。
步骤606、确定共享令牌桶中的剩余令牌数量是否不小于目标令牌数量。
若是,则可以执行步骤607,若否,则可以执行步骤608。
步骤607、发送目标报文,即发送UDP报文。
示例性的,在共享令牌桶中的剩余令牌数量不小于目标令牌数量时,还可以从共享令牌桶中删除与目标令牌数量匹配的令牌。其中,在删除与目标令牌数量匹配的令牌时,只能消费共享令牌桶中的令牌,而不会消费独立令牌桶中的令牌。例如,若目标令牌数量是20,共享令牌桶中的剩余令牌数量是30,则从共享令牌桶中删除20个令牌,这样,共享令牌桶中的剩余令牌数量更新为10。
步骤608、丢弃目标报文,即丢弃UDP报文。当然,在实际应用中,也可以缓存目标报文,而不是丢弃目标报文,在下个发送周期继续处理该目标报文。
由以上技术方案可见,本申请实施例中,在TCP报文和UDP报文共存的应用场景下,能够解决TCP报文的限速不准和抖动幅度过大等问题,使得TCP报文和UDP报文能够合理的使用网络带宽,更加合理地利用网络资源。针对UDP报文来说,UDP报文的实际限速与UDP报文的目标限速比较接近,针对TCP报文来说,TCP报文的实际限速与TCP报文的目标限速比较接近,TCP报文的实际限速一直在目标限速上下震荡,准确性达到90%左右。参见图7所示,示出了TCP报文的流量限速的示意图,TCP报文一直在目标限速上下震荡。
基于与上述方法同样的申请构思,本申请实施例中提出一种报文传输装置,应用于网络节点,所述网络节点包括共享令牌桶和独立令牌桶,所述共享令牌桶是第一类报文和第二类报文共用的令牌桶,所述独立令牌桶是第一类报文使用的令牌桶,参见图8所示,为所述装置的结构示意图,所述装置可以包括:
确定模块81,用于针对待发送的目标报文,确定所述目标报文需要消耗的目标令牌数量;
处理模块82,用于若所述目标报文是第一类报文,则确定所述共享令牌桶和所述独立令牌桶中的剩余令牌数量是否不小于所述目标令牌数量;若是,则发送所述目标报文;若所述目标报文是第二类报文,则确定所述共享令牌桶中的剩余令牌数量是否不小于所述目标令牌数量;若是,则发送所述目标报文。
在一种可能的实施方式中,所述处理模块82发送所述目标报文之后还可以用于:在所述目标报文是第一类报文时,则可以从所述共享令牌桶和/或所述独立令牌桶中删除与所述目标令牌数量匹配的令牌;在所述目标报文是第二类报文时,则可以从所述共享令牌桶中删除与所述目标令牌数量匹配的令牌。
示例性的,所述处理模块82从所述共享令牌桶和/或所述独立令牌桶中删除与所述目标令牌数量匹配的令牌时具体用于:若所述共享令牌桶中的剩余令牌数量不小于所述目标令牌数量,从所述共享令牌桶中删除与所述目标令牌数量匹配的令牌;若所述共享令牌桶中的剩余令牌数量小于所述目标令牌数量,确定所述目标令牌数量与所述共享令牌桶中的剩余令牌数量的差值数量,从共享令牌桶中删除所有令牌,从所述独立令牌桶中删除与所述差值数量匹配的令牌。
示例性的,所述处理模块82确定所述共享令牌桶和所述独立令牌桶中的剩余令牌数量是否不小于所述目标令牌数量之后还用于:若否,则丢弃所述目标报文;示例性的,所述处理模块82确定所述共享令牌桶中的剩余令牌数量是否不小于所述目标令牌数量之后还用于:若否,则丢弃所述目标报文。
示例性的,所述确定模块81确定目标报文需要消耗的目标令牌数量时具体用于:若网络节点采用报文数量进行流量限速,则基于目标报文的报文数量确定所述目标报文需要消耗的目标令牌数量;若网络节点采用报文长度进行流量限速,则基于目标报文的报文长度确定所述目标报文需要消耗的目标令牌数量。
示例性的,所述确定模块81,还用于基于已配置的承诺信息速率确定令牌添加数量;其中,所述报文传输装置还包括(在图中未示出):添加模块,用于向所述共享令牌桶和所述独立令牌桶中添加与所述令牌添加数量匹配的令牌。
示例性的,所述添加模块向所述共享令牌桶和所述独立令牌桶中添加与所述令牌添加数量匹配的令牌时具体用于:在共享令牌桶中的令牌数量未达到第一数量上限值时,持续向所述共享令牌桶中添加令牌,直到所述共享令牌桶中的令牌数量已达到第一数量上限值,并持续向独立令牌桶中添加令牌,直到所述共享令牌桶和所述独立令牌桶中已添加的令牌总数量达到所述令牌添加数量。
示例性的,共享令牌桶对应的第一数量上限值小于所述令牌添加数量;第一数量上限值与独立令牌桶对应的第二数量上限值之和大于所述令牌添加数量。
示例性的,所述添加模块,还用于基于第一类报文对应的拥塞控制特征确定所述独立令牌桶对应的第二数量上限值;所述拥塞控制特征包括相邻两个滑动窗口之间的报文数量比例,当报文数量比例越大时,第二数量上限值越大。
示例性的,所述确定模块81基于已配置的承诺信息速率确定令牌添加数量时具体用于:若所述网络节点采用报文数量进行流量限速,则确定与所述承诺信息速率对应的报文数量,并基于该报文数量确定所述令牌添加数量;或者,若所述网络节点采用报文长度进行流量限速,则确定与所述承诺信息速率对应的报文长度,并基于该报文长度确定所述令牌添加数量。
示例性的,所述装置应用于所述网络节点的智能网卡,由所述智能网卡基于所述共享令牌桶和所述独立令牌桶实现第一类报文或第二类报文的传输。
示例性的,第一类报文可以为TCP报文,第二类报文可以为UDP报文。
基于与上述方法同样的申请构思,本申请实施例中提出一种网络节点,参见图9所示,所述网络节点包括:处理器91和机器可读存储介质92,所述机器可读存储介质92存储有能够被所述处理器91执行的机器可执行指令;所述处理器91用于执行机器可执行指令,以实现本申请上述示例公开的报文传输方法。
基于与上述方法同样的申请构思,本申请实施例还提供一种机器可读存储介质,所述机器可读存储介质上存储有若干计算机指令,所述计算机指令被处理器执行时,能够实现本申请上述示例公开的报文传输方法。
其中,上述机器可读存储介质可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:RAM(Radom Access Memory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。
上述实施例阐明的***、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本申请的实施例可提供为方法、***、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可以由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其它可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其它可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
而且,这些计算机程序指令也可以存储在能引导计算机或其它可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或者多个流程和/或方框图一个方框或者多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其它可编程数据处理设备上,使得在计算机或者其它可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其它可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (14)
1.一种报文传输方法,其特征在于,应用于网络节点,所述网络节点包括共享令牌桶和独立令牌桶,所述共享令牌桶是第一类报文和第二类报文共用的令牌桶,所述独立令牌桶是第一类报文使用的令牌桶,其中,所述第一类报文为TCP报文,所述第二类报文为UDP报文,所述方法包括:
针对待发送的目标报文,确定所述目标报文需要消耗的目标令牌数量;
若所述目标报文是第一类报文,则确定所述共享令牌桶和所述独立令牌桶中的剩余令牌数量是否不小于所述目标令牌数量;若是,则发送所述目标报文;
若所述目标报文是第二类报文,则确定所述共享令牌桶中的剩余令牌数量是否不小于所述目标令牌数量;若是,则发送所述目标报文。
2.根据权利要求1所述的方法,其特征在于,
所述发送所述目标报文之后,所述方法还包括:
在所述目标报文是第一类报文时,从所述共享令牌桶和/或所述独立令牌桶中删除与所述目标令牌数量匹配的令牌;或者,在所述目标报文是第二类报文时,从所述共享令牌桶中删除与所述目标令牌数量匹配的令牌。
3.根据权利要求2所述的方法,其特征在于,所述从所述共享令牌桶和/或所述独立令牌桶中删除与所述目标令牌数量匹配的令牌,包括:
若所述共享令牌桶中的剩余令牌数量不小于所述目标令牌数量,则从所述共享令牌桶中删除与所述目标令牌数量匹配的令牌;或者,
若所述共享令牌桶中的剩余令牌数量小于所述目标令牌数量,则确定所述目标令牌数量与所述共享令牌桶中的剩余令牌数量的差值数量;从所述共享令牌桶中删除所有令牌,并从所述独立令牌桶中删除与所述差值数量匹配的令牌。
4.根据权利要求1所述的方法,其特征在于,
所述确定所述共享令牌桶和所述独立令牌桶中的剩余令牌数量是否不小于所述目标令牌数量之后,所述方法还包括:若否,则丢弃所述目标报文;
所述确定所述共享令牌桶中的剩余令牌数量是否不小于所述目标令牌数量之后,所述方法还包括:若否,则丢弃所述目标报文。
5.根据权利要求1所述的方法,其特征在于,
所述确定所述目标报文需要消耗的目标令牌数量,包括:
若所述网络节点采用报文数量进行流量限速,则基于所述目标报文的报文数量确定所述目标报文需要消耗的目标令牌数量;或者,
若所述网络节点采用报文长度进行流量限速,则基于所述目标报文的报文长度确定所述目标报文需要消耗的目标令牌数量。
6.根据权利要求1-5任一所述的方法,其特征在于,所述方法还包括:
基于已配置的承诺信息速率确定令牌添加数量,并向所述共享令牌桶和所述独立令牌桶中添加与所述令牌添加数量匹配的令牌。
7.根据权利要求6所述的方法,其特征在于,所述向所述共享令牌桶和所述独立令牌桶中添加与所述令牌添加数量匹配的令牌,包括:
在所述共享令牌桶中的令牌数量未达到第一数量上限值时,持续向所述共享令牌桶中添加令牌,一直到所述共享令牌桶中的令牌数量已达到第一数量上限值,并持续向所述独立令牌桶中添加令牌,一直到所述共享令牌桶和所述独立令牌桶中已添加的令牌总数量达到所述令牌添加数量。
8.根据权利要求7所述的方法,其特征在于,所述共享令牌桶对应的第一数量上限值小于所述令牌添加数量;所述共享令牌桶对应的第一数量上限值与所述独立令牌桶对应的第二数量上限值之和大于所述令牌添加数量。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:基于第一类报文对应的拥塞控制特征,确定所述独立令牌桶对应的第二数量上限值;
其中,所述拥塞控制特征包括相邻两个滑动窗口之间的报文数量比例,当所述报文数量比例越大时,则所述第二数量上限值越大。
10.根据权利要求6所述的方法,其特征在于,
所述基于已配置的承诺信息速率确定令牌添加数量,包括:
若所述网络节点采用报文数量进行流量限速,则确定所述承诺信息速率对应的报文数量,并基于该报文数量确定所述令牌添加数量;
若所述网络节点采用报文长度进行流量限速,则确定所述承诺信息速率对应的报文长度,并基于该报文长度确定所述令牌添加数量。
11.根据权利要求1-5任一所述的方法,其特征在于,
所述方法应用于所述网络节点的智能网卡,由所述智能网卡基于所述共享令牌桶和所述独立令牌桶实现第一类报文或第二类报文的传输。
12.一种报文传输装置,其特征在于,应用于网络节点,所述网络节点包括共享令牌桶和独立令牌桶,所述共享令牌桶是第一类报文和第二类报文共用的令牌桶,所述独立令牌桶是第一类报文使用的令牌桶,其中,所述第一类报文为TCP报文,所述第二类报文为UDP报文,所述装置包括:
确定模块,用于针对待发送的目标报文,确定所述目标报文需要消耗的目标令牌数量;
处理模块,用于若所述目标报文是第一类报文,则确定所述共享令牌桶和所述独立令牌桶中的剩余令牌数量是否不小于所述目标令牌数量;若是,则发送所述目标报文;若所述目标报文是第二类报文,则确定所述共享令牌桶中的剩余令牌数量是否不小于所述目标令牌数量;若是,则发送所述目标报文。
13.根据权利要求12所述的装置,其特征在于,其中,所述处理模块发送所述目标报文之后还用于:在所述目标报文是第一类报文时,从所述共享令牌桶和/或所述独立令牌桶中删除与所述目标令牌数量匹配的令牌;在所述目标报文是第二类报文时,从所述共享令牌桶中删除与所述目标令牌数量匹配的令牌;
其中,所述处理模块从所述共享令牌桶和/或所述独立令牌桶中删除与所述目标令牌数量匹配的令牌时具体用于:若所述共享令牌桶中的剩余令牌数量不小于所述目标令牌数量,从所述共享令牌桶中删除与所述目标令牌数量匹配的令牌;若所述共享令牌桶中的剩余令牌数量小于所述目标令牌数量,确定所述目标令牌数量与所述共享令牌桶中的剩余令牌数量的差值数量,从所述共享令牌桶中删除所有令牌,从所述独立令牌桶中删除与所述差值数量匹配的令牌;
其中,所述处理模块确定所述共享令牌桶和所述独立令牌桶中的剩余令牌数量是否不小于所述目标令牌数量之后还用于:若否,则丢弃所述目标报文;
其中,所述处理模块确定所述共享令牌桶中的剩余令牌数量是否不小于所述目标令牌数量之后还用于:若否,则丢弃所述目标报文;
其中,所述确定模块确定所述目标报文需要消耗的目标令牌数量时具体用于:若网络节点采用报文数量进行流量限速,则基于目标报文的报文数量确定所述目标报文需要消耗的目标令牌数量;若网络节点采用报文长度进行流量限速,则基于目标报文的报文长度确定所述目标报文需要消耗的目标令牌数量;
其中,所述确定模块,还用于基于已配置的承诺信息速率确定令牌添加数量;其中,所述报文传输装置还包括:添加模块,用于向所述共享令牌桶和所述独立令牌桶中添加与所述令牌添加数量匹配的令牌;
其中,所述添加模块向所述共享令牌桶和所述独立令牌桶中添加与所述令牌添加数量匹配的令牌时具体用于:在共享令牌桶中的令牌数量未达到第一数量上限值时,持续向所述共享令牌桶中添加令牌,一直到所述共享令牌桶中的令牌数量已达到第一数量上限值,并持续向独立令牌桶中添加令牌,一直到所述共享令牌桶和所述独立令牌桶中已添加的令牌总数量达到所述令牌添加数量;
其中,共享令牌桶对应的第一数量上限值小于所述令牌添加数量;所述第一数量上限值与独立令牌桶对应的第二数量上限值之和大于所述令牌添加数量;
其中,所述添加模块,还用于基于第一类报文对应的拥塞控制特征,确定所述独立令牌桶对应的第二数量上限值;所述拥塞控制特征包括相邻两个滑动窗口之间的报文数量比例,当所述报文数量比例越大时,第二数量上限值越大;
其中,所述确定模块基于已配置的承诺信息速率确定令牌添加数量时具体用于:若所述网络节点采用报文数量进行流量限速,则确定与所述承诺信息速率对应的报文数量,并基于该报文数量确定所述令牌添加数量;或者,若所述网络节点采用报文长度进行流量限速,则确定与所述承诺信息速率对应的报文长度,并基于该报文长度确定所述令牌添加数量;
其中,所述装置应用于所述网络节点的智能网卡,由所述智能网卡基于所述共享令牌桶和所述独立令牌桶实现第一类报文或第二类报文的传输。
14.一种网络节点,其特征在于,包括:处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令;所述处理器用于执行机器可执行指令,以实现权利要求1-11任一项所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210009480.2A CN114070798B (zh) | 2022-01-06 | 2022-01-06 | 一种报文传输方法、装置及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210009480.2A CN114070798B (zh) | 2022-01-06 | 2022-01-06 | 一种报文传输方法、装置及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114070798A CN114070798A (zh) | 2022-02-18 |
CN114070798B true CN114070798B (zh) | 2022-06-14 |
Family
ID=80230657
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210009480.2A Active CN114070798B (zh) | 2022-01-06 | 2022-01-06 | 一种报文传输方法、装置及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114070798B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115102908B (zh) * | 2022-08-25 | 2023-03-10 | 珠海星云智联科技有限公司 | 基于带宽控制的网络报文生成的方法以及相关装置 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8032653B1 (en) * | 2000-09-08 | 2011-10-04 | Juniper Networks, Inc. | Guaranteed bandwidth sharing in a traffic shaping system |
US7564790B2 (en) * | 2005-02-28 | 2009-07-21 | Cisco Technology, Inc. | Method and system for shaping traffic in a parallel queuing hierarchy |
US8913501B2 (en) * | 2012-08-16 | 2014-12-16 | International Business Machines Corporation | Efficient urgency-aware rate control scheme for multiple bounded flows |
CN104519021B (zh) * | 2013-09-29 | 2018-07-20 | 新华三技术有限公司 | 防止恶意流量攻击的方法及装置 |
CN105939285A (zh) * | 2015-08-21 | 2016-09-14 | 杭州迪普科技有限公司 | 报文转发方法及装置 |
CN105376175B (zh) * | 2015-12-03 | 2019-01-25 | 北京浩瀚深度信息技术股份有限公司 | 具有带宽保障功能的级联令牌桶实现方法 |
CN113742114A (zh) * | 2020-09-28 | 2021-12-03 | 北京沃东天骏信息技术有限公司 | 一种***限流的方法和装置 |
-
2022
- 2022-01-06 CN CN202210009480.2A patent/CN114070798B/zh active Active
Non-Patent Citations (2)
Title |
---|
A Modified Approach for Fair Bandwidth Allocation between TCP and UDP Traffic in DiffServ Network;S. Sudha等;《Proceedings of the International Conference on Computer and Communication Engineering 2008》;20080729;全文 * |
Adaptive Token Bucket Algorithm for Fair Bandwidth Allocation in DiffServ Networks;Eun-Chan Park 等;《Published in: GLOBECOM "03. IEEE Global Telecommunications Conference (IEEE Cat. No.03CH37489)》;20140114;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN114070798A (zh) | 2022-02-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11336581B2 (en) | Automatic rate limiting based on explicit network congestion notification in smart network interface card | |
JP6430462B2 (ja) | バーチャルマシン通信トラフィックを成形すること | |
CN109714268B (zh) | 一种虚拟私有云的流量控制方法及相关装置 | |
US20220078119A1 (en) | Network interface device with flow control capability | |
US10419965B1 (en) | Distributed meters and statistical meters | |
CN113438181B (zh) | 网络拥塞控制方法和装置 | |
CN103888377A (zh) | 报文缓存方法及装置 | |
EP2670085A1 (en) | System for performing Data Cut-Through | |
CN112968845B (zh) | 一种带宽管理方法、装置、设备及机器可读存储介质 | |
US10536385B2 (en) | Output rates for virtual output queses | |
US20220311711A1 (en) | Congestion control based on network telemetry | |
CN114070798B (zh) | 一种报文传输方法、装置及设备 | |
CN108566344B (zh) | 一种报文处理方法和装置 | |
US20240195749A1 (en) | Path selection for packet transmission | |
CN114189477B (zh) | 一种报文拥塞控制方法及装置 | |
CN117581518A (zh) | 拥塞控制 | |
CN106911740A (zh) | 一种缓存管理的方法和装置 | |
CN113328953A (zh) | 网络拥塞调整的方法、装置和存储介质 | |
CN116868553A (zh) | 用于管理端点资源和拥塞缓解的数据中心网络上的动态网络接收器驱动的数据调度 | |
CN112367270B (zh) | 一种报文发送的方法和设备 | |
CN110515728B (zh) | 服务器调度方法、装置、电子设备及机器可读存储介质 | |
CN112995060B (zh) | 一种基于硬件计数器的流量控制方法 | |
CN112367708B (zh) | 一种网络资源分配方法及装置 | |
CN113453285B (zh) | 一种资源调整方法、装置及存储介质 | |
JP2011035608A (ja) | エッジノード、ウィンドウサイズ制御方法およびプログラム |
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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40067480 Country of ref document: HK |