掌桥专利:专业的专利平台
掌桥专利
首页

流量控制方法、装置、终端设备及计算机存储介质

文献发布时间:2023-06-19 11:27:38


流量控制方法、装置、终端设备及计算机存储介质

技术领域

本发明实施例涉及数据处理技术领域,尤其涉及一种流量控制方法、装置、终端设备及计算机存储介质。

背景技术

通常,在通过数据端口传输数据时,大多会限制数据端口的流量,从而提高带宽的利用率。而令牌桶是现有技术中应用较为广泛的限制流量的方案。

在使用令牌桶限制流量时,会对数据包进行上色,并根据数据包的颜色来执行不同的行为,例如,根据数据包的颜色标记执行允许通过、丢弃、重新上色等行为。

但是,这种通过令牌桶进行流量限制方案实现方式较为单一,不适合应用于较为复杂的数据传输场景中。

发明内容

有鉴于此,本发明实施例提供一种流量控制方法、装置、终端设备及计算机存储介质,以解决上述问题。

根据本发明实施例的第一方面,提供了一种流量控制方法,其包括:根据数据端口传输的数据包对应的令牌桶,确定所述数据包的流量标记;若所述数据包的流量标记为超量标记,则确定所述数据包对应的丢包概率;根据所述丢包概率以及随机生成数,确定是否丢弃所述数据包,以通过概率丢包的方式控制所述数据端口的流量。

根据本发明实施例的第二方面,提供了一种流量控制装置,其包括:流量标记确定模块,用于根据数据端口传输的数据包对应的令牌桶,确定所述数据包的流量标记;丢包概率确定模块,用于若所述数据包的流量标记为超量标记,则确定所述数据包对应的丢包概率;丢弃确定模块,用于根据所述丢包概率以及随机生成数,确定是否丢弃所述数据包,以通过概率丢包的方式控制所述数据端口的流量。

根据本发明实施例的第三方面,提供了一种终端设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;

所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如上所述的流量控制方法对应的操作。

根据本发明实施例的第四方面,提供了一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上所述的流量控制方法。

根据本发明实施例提供的方案,通过根据数据端口传输的数据包对应的令牌桶,确定所述数据包的流量标记;若所述数据包的流量标记为超量标记,则确定所述数据包对应的丢包概率;根据所述丢包概率以及随机生成数,确定是否丢弃所述数据包,以通过概率丢包的方式控制所述数据端口的流量。通过根据丢包概率来丢弃部分具有超量标记的数据包,增加了提前丢弃的数据包的数量,减少了阻塞情况的发生;通过保证丢包概率较低的数据包被丢弃的较少,从而增加了丢包概率较低的数据包在被保留的数据包中的占比,提高了带宽的利用率;并且通过确定各个数据包的丢包概率来实现流量控制,使得本方案尤其适用于数据包的优先级不同的数据传输场景中,即适用于较为复杂的数据传输场景中。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明实施例中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。

图1为本发明实施例一的一种流量控制方法的步骤流程图;

图2a为本发明实施例二的一种流量控制方法的步骤流程图;

图2b为本发明实施例二的一种数据包处理方法的步骤流程图;

图2c为本发明实施例二的一种确定丢包参考值的步骤流程图;

图3为本发明实施例三的一种流量控制方法的步骤流程图;

图4为本发明实施例四的一种流量控制装置的结构框图;

图5为本发明实施例五的一种终端设备的结构示意图。

具体实施方式

为了使本领域的人员更好地理解本发明实施例中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明实施例一部分实施例,而不是全部的实施例。基于本发明实施例中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于本发明实施例保护的范围。

下面结合本发明实施例附图进一步说明本发明实施例具体实现。

实施例一

参照图1,示出了根据本发明实施例一的一种流量控制方法的步骤流程图。

本实施例的流量控制方法包括以下步骤:

S102、根据数据端口传输的数据包对应的令牌桶,确定所述数据包的流量标记。

本实施例中,数据端口可以为设备之间交互数据的端口,例如可以为TCP端口或者UDP端口等。

数据端口之间通过发送或接收数据包来传输数据,本实施例中,数据端口可以为用于发送数据包的数据端口,也可以为用于接收数据包的数据端口,本实施例对此不进行限定。

本实施例中,不同的数据包可以对应有不同的令牌桶,不同的令牌桶的桶深、令牌生成速度等参数可以不同。

根据令牌桶,可以对数据包执行上色逻辑,即确定数据包的流量标记。例如,假设包长为B,令牌桶包括C桶以及E桶,C桶中的令牌数量为Tc,E桶中的令牌数量为Te,Tc

1.若B小于Tc,包被标记为绿色;

2.若Tc

3.若B>Te,包被标记为红色。

其中,绿色对应的流量标记为通过标记,黄色对应的流量标记为超量标记,红色对应的流量标记为丢弃标记。

当然,令牌桶的类型包括多种,令牌桶的上色逻辑也不仅限于此,本实施例在此仅进行举例说明,并不作为本实施例的限定。

S104、若所述数据包的流量标记为超量标记,则确定所述数据包对应的丢包概率。

本实施例中,由于现有技术中,被标记为绿色(通过标记)的数据包直接通过,且不会对数据端口的流量产生较大影响;被标记为红色(丢弃标记)的数据包可以直接丢弃;而被标记为黄色(超量标记)的数据包也直接通过,但会对数据端口的流量产生了较大影响。

现有技术中,被标记为黄色的数据包仍然会直接通过,但会消耗E桶中令牌的数量,使得Te的值减小,从而增加了后续的数据包被标记为红色进而直接被丢弃的可能性,并且,当数据传输场景较为复杂时,后续数据包的优先级可能会高于当前被标记为黄色的数据包的优先级,如果仍然允许被标记为黄色的数据包直接通过,会导致优先级低的数据直接通过而优先级高的数据被丢弃的情况,使得带宽利用率较低;然而,若将被标记为黄色的数据包全部丢弃,则会出现被丢弃的数据包太多的情况。

因此,本实施例中,通过确定流量标记为超量标记(黄色)的数据包的丢包概率,并通过步骤S106确定是否丢弃该数据包,从而可以按照丢包概率丢弃部分具有超量标记(黄色)的数据包,以增加提前丢弃的数据包的数量,而不仅丢弃具有丢弃标记(红色)的数据包,但仍保留部分具有超量标记的数据包,从而减少了阻塞情况的发生,进而提高了带宽利用率,且避免被丢弃的数据包太多的情况。

本实施例中,数据包的丢包概率是指丢弃该数据包的概率。

具体地,丢包概率可以预先设置,或者可以根据数据包计算得到丢包概率,例如根据发送或接收数据包的数据端口、根据数据包所在的数据流等计算得到数据包的丢包概率。

本实施例中,不同的数据包对应的丢包概率可以不同,使得本方案尤其适用于数据包的优先级不同的数据传输场景,本领域的技术人员可以根据优先级设置不同数据包的丢包概率,从而实现较为复杂的数据传输场景下的流线控制。

S106、根据所述丢包概率以及随机生成数,确定是否丢弃所述数据包,以通过概率丢包的方式控制所述数据端口的流量。

本实施例中,通过根据丢包概率和随机生成数确定是否丢弃数据包,由于每次生成的随机生成数的值是随机的,但每个随机生成数出现的概率是相等的,从而可以通过随机生成数保证按照所述丢包概率丢弃所述数据包,即实现概率丢包。

例如,若流量标记为超量标记的数据包共100个,对应的丢包概率均为80%,则通过随机生成数可以丢弃其中80个左右的数据包,数据包的数量越大,被丢弃的数据包在所有数据包中的占比越接近丢包概率80%。当然,本实施例中,流量标记为超量标记数据包对应的丢包概率可以不同,在实际使用时,可以通过设置来保证优先级较高的数据包对应的丢包概率的值较低,从而使得优先级较低的数据包被丢弃的较多,进而使得本方案使用时更加灵活。例如,若流量标记为超量标记的数据包共100个,其中50个数据包的丢包概率为80%,50个数据包的丢包概率为40%,则丢包概率为80%的数据包中被丢弃的数据包可能为40个左右,而丢包概率为40%的数据包中被丢弃的数据包可能为20个左右。

尤其当数据传输的场景较为复杂时,例如输出传输场景中包括多个数据流,每个数据流中包括多个数据包,一个数据流中的不同数据包可以通过不同的数据端口接收并再次发送,一个数据端口可以接收并发送属于多个流的数据包等。针对这种较为复杂的数据传输场景,本领域的技术人员可以根据数据传输场景中的各个数据流或各个数据端口等灵活地设置数据包的丢包概率,从而更加灵活地限制数据端口的流量。同时,本方案通过随机生成数保证了数据包被随机丢弃,从而可以降低与当前的数据端口关联的多个数据端口的流量,若数据端口为TCP端口,则将不同TCP端口的数据包按照不同的丢包概率进行丢弃,从而减少了TCP全局同步问题的发生,提高了带宽利用率。

另外需要说明的是,本实施例提供的方案不仅可以用于进行比特率(bps,bitsper second)限速,还可以用于进行包转发率(pps,packet per second)限速。进行bps限速时,可以接收一个数据包,并根据该数据包的包长进行流量控制;进行pps限速时,每次可以接收多个数据包,并对数据包的包速率进行控制,即进行流量控制。

本实施例提供的方案,通过根据数据端口传输的数据包对应的令牌桶,确定所述数据包的流量标记;若所述数据包的流量标记为超量标记,则确定所述数据包对应的丢包概率;根据所述丢包概率以及随机生成数,确定是否丢弃所述数据包,以通过概率丢包的方式控制所述数据端口的流量。通过根据丢包概率来丢弃部分具有超量标记的数据包,增加了提前丢弃的数据包的数量,减少了阻塞情况的发生;通过保证丢包概率较低的数据包被丢弃的较少,从而增加了丢包概率较低的数据包在被保留的数据包中的占比,提高了带宽的利用率;并且通过确定各个数据包的丢包概率来实现流量控制,使得本方案尤其适用于数据包的优先级不同的数据传输场景中,即适用于较为复杂的数据传输场景中。

本实施例的流量控制方法可以由任意适当的具有数据处理能力的终端设备执行,包括但不限于:服务端、移动终端(如平板电脑、手机等)和PC机。

实施例二

参照图2a,示出了根据本发明实施例二的一种流量控制方法的步骤流程图。

本实施例中,以接收数据包为例,对流量控制方法进行示例性说明,本实施例的流量控制方法包括以下步骤:

S202、确定接收到的数据包对应的数据端口,并确定与数据端口对应的令牌桶。

本实施例中,可以设定接收自同一个所述数据端口的所述数据包或属于同一个数据流的所述数据包共用一个所述令牌桶,以减少令牌桶的设置数量。当接收到数据端口发送的数据包时,根据数据包中存储的数据端口的标识或数据流标识可以确定对应的令牌桶。

一个数据端口可以接收多个数据端口发送的数据,或接收属于多个数据流的数据包,对应的,一个数据端口可以设置有多个令牌桶。

S204、确定令牌桶中的令牌数量,根据令牌数量以及数据包的包长确定数据包的流量标记。

具体地,可以假设包长为B,令牌桶包括C桶以及E桶,C桶中的令牌数量为Tc,E桶中的令牌数量为Te,Tc

1.若B小于Tc,数据包被标记为绿色(通过标记);

2.若Tc

3.若B>Te,数据包被标记为红色(丢弃标记)。

本方案中,如图2b所示,当数据包被标记为绿色时,直接确定该数据包被通过,当数据包被标记为黄色时,通过后续步骤S206-S208采用概率丢弃方式丢弃该数据包,当数据包被标记为红色时,直接丢弃该数据包。

S206、根据所述数据包的包长以及所述令牌桶中的令牌数量确定所述数据包的所述丢包概率。

在令牌桶使用时,令牌桶中的令牌数量直接用于流量限速,对应的,现有的丢包逻辑为:丢弃包长大于令牌数量的数据包。据此可知,不仅数据包的包长对数据包的丢弃结果有很大影响,令牌桶的令牌数量同样对数据包的丢弃结果有很大影响。因此本实施例中,同时根据数据包的包长以及令牌桶中的令牌数量确定丢包概率,使得确定的数据包是否被丢弃的结果更加符合令牌桶的使用情况。

具体地,假设数据包的包长不变,令牌数量较多时确定的丢包概率可以较小,令牌数量较少时确定的丢包概率可以较大;假设令牌数量不变,数据包的包长较大时确定的丢包概率可以较大,数据包的包长较小时确定的丢包概率可以较小。

本实施例中,为了更加灵活地限速,可以使得所述数据包的丢包概率与所述数据包的丢包优先级成反比,从而尽量保证优先级较高的数据包的丢包概率较小,进而保证优先级较高的数据包尽量不被丢弃。

并且,通过保证所述数据包的丢包概率与所述数据包的丢包优先级成反比,使得本实施例提供的方案更加适用于处于数据处理中心的、包括多个端口vport的虚拟机的流量管理。

另外,本实施例中,如图2c所示,步骤S206具体可以包括:

S2061、根据所述数据包的包长以及所述令牌桶中的令牌数量确定丢包索引值。

S2062、根据所述丢包索引值在丢包概率表中确定数据包对应的丢包参考值,所述丢包参考值用于表征所述数据包的丢包概率。

本实施例中,所述丢包概率表中存储有多组丢包索引值以及对应的丢包参考值,其中,丢包索引值用于作为丢包参考值的索引。例如,当数据包的包长不变时,令牌桶的令牌数量越大,确定的丢包索引值越小,根据丢包索引值确定的丢包概率值也可以越小,即数据包的丢包概率越小。

丢包概率表可以是预先设置的,本领域的技术人员可以对数据端口的历史丢包时的令牌数量、包长,以及数据端口因丢包不及时产生堵塞等情况进行分析,来确定丢包概率表中存储的多组丢包索引值及其对应的丢包参考值。

由于数据包的包长以及令牌桶的令牌数量的量纲不同,因此本实施例中,通过步骤S2061可以综合包长以及令牌桶中的令牌数量,来确定数据包对应的丢包索引值,从而可以统一考虑包长以及令牌数量,并通过步骤S2062来确定数据包的丢包参考值,从而使得确定的数据包是否被丢弃的结果更加符合令牌桶的使用情况;且确定丢包参考值的过程仅需要计算得到丢包索引值即可,计算简单方便。

具体地,本实施例中,步骤S2016具体可以包括:根据所述令牌桶中的令牌数量以及所述数据包的包长进行归一化计算,得到所述丢包索引值。通过进行归一化处理,可以统一令牌数量以及包长的量纲,方便计算;并且,现有的归一化计算大多为计算两者的比例,使得丢包概率表中的丢包索引值与两者的比例相对应,而不受两者取值范围的影响,进而使得一个丢包概率表可以适用于多个不同桶深的令牌桶。

进一步地,接收自同一个所述数据端口的所述数据包或属于同一个数据流的所述数据包共用一个所述丢包概率表,以减少丢包概率表的数量。

进一步地,由于确定丢包概率的数据包为流量标记为超量标记的数据包,因此,可以根据E桶中的令牌数量Te(与流量突发峰值对应)来计算丢包索引值。即,丢包参考值可以为:包长与Te的比值。

S208、根据所述丢包概率以及随机生成数,确定是否丢弃所述数据包,以通过概率丢包的方式控制所述数据端口的流量。

具体地,若步骤S206中,确定的为丢包参考值,则步骤S208可以包括:比较所述丢包参考值以及所述随机生成数的大小,根据比较结果确定是否丢弃所述数据包。通过比较随机生成数与丢包参考值来确定是否丢弃数据包,可以保证数据包的丢包概率。

本实施例中,为了保证丢包参考值与随机生成数的可比性,所述丢包概率表中的多个丢包参考值的取值范围与所述随机生成数的取值范围相同。例如,随机生成数的范围为1-1000,丢包概率80%对应的丢包参考值可以为800。在执行步骤S208时,随机在1-1000范围内生成一个随机生成数,并比较随机生成数的大小与丢包参考值的大小,根据比较结果判断是否丢弃。例如,如丢包参考值小于随机生成数,则结果为不丢弃,反之则丢弃。由于随机生成数处于1-800以内的概率为80%,从而可以通过随机生成数保证丢包概率为80%。

在本实施例的另一实现方式中,步骤S208还可以包括:确定所述丢包概率的取值范围以及所述随机生成数的取值范围为设定取值范围;比较所述丢包概率以及所述随机生成数的值,根据比较结果确定是否丢弃所述数据包。

本实施例中,设定取值范围的作用为使得:随机生成数与丢包概率处于同一个处置范围内,从而使得丢包概率与随机生成数具有可比性,进而可以比较丢包概率与随机生成数来确定是否丢弃数据包。设定取值范围的大小可以由本领域的技术人员根据需求设置,本实施例对此不进行限定。例如,可以直接将随机生成数的取值范围作为设定取值范围,然后通过扩大或缩小丢包概率的取值范围为设定取值范围等。

另外,本实施例中,为了提高处理速度,所述随机生成数通过可编程门阵列(FPGA,Field-Programmable Gate Array)的伪随机数生成器生成并输出。当然,如需节省硬件成本,同样可以通过软件方式生成随机生成数并输出。

本实施例提供的方案,通过根据数据包的包长以及令牌桶中的令牌数量确定丢包概率,使得确定的数据包是否被丢弃的结果更加符合令牌桶的使用情况,根据丢包概率与随机生成数确定是否丢弃数据包时,通过保证丢包参考值与随机生成数的取值范围相等,或者通过确定丢包概率与随机生成数的取值范围均为预设取值范围,再通过比较确定是否丢弃数据包,使得数据处理更加简单。

本实施例的流量控制方法可以由任意适当的具有数据处理能力的终端设备执行,包括但不限于:服务端、移动终端(如平板电脑、手机等)和PC机。

实施例三

参照图3,示出了根据本发明实施例三的一种流量控制方法的步骤流程图。

本实施例中,预先根据各个数据流的不同优先级,设置各个数据流对应的丢包概率表,并针对各个数据流设置对应的令牌桶。

基于此,本实施例提供的方法包括:

S301、接收数据包,确定数据包的包长B以及数据包所属的数据流。

S302、根据数据包所属的数据流确定对应的令牌桶,并根据令牌桶以及数据包的包长B确定数据包的流量标记。

根据数据包的流量标记执行步骤S303、S304、S305中的一个。

S303、当流量标记为通过标记(绿色)时,数据包直接通过。结束本次流程。

S304、当流量标记为丢弃标记(红色)时,数据包直接丢弃。结束本次流程。

S305、当流量标记为超量标记(黄色)时,确定令牌桶的E桶令牌数量te。执行步骤S306。

S306、计算数据包的包长B以及令牌数量Te的比值,确定丢包索引值,并通过丢包索引值在数据流对应的丢包概率表中查找,得到丢包参考值。

需要说明的是,当由于超量标记的数据包的包长B小于令牌数量Te,因此,计算得到的两者的比值为一个小于1的数,可以通过将比值乘100等方法,确定最终的丢包索引值。

S307、比较丢包参考值以及随机生成数的大小,丢包参考值大于随机生成数,则丢弃数据包,反之则不丢弃。

本实施例提供的方案,通过预先根据数据流的优先级设置对应的丢包概率表,可以使得优先级较低的数据包被丢弃的较多,进而使得本方案使用时更加灵活,尤其适用于较为复杂的数据传输场景中。

本实施例的流量控制方法可以由任意适当的具有数据处理能力的终端设备执行,包括但不限于:服务端、移动终端(如平板电脑、手机等)和PC机。

实施例四

参照图4,示出了根据本发明实施例四的一种流量控制装置的结构框图。

如图4所示,流量控制装置包括流量标记确定模块402、丢包概率确定模块404、丢弃确定模块406。

其中,流量标记确定模块402,用于根据数据端口传输的数据包对应的令牌桶,确定所述数据包的流量标记;

丢包概率确定模块404,用于若所述数据包的流量标记为超量标记,则确定所述数据包对应的丢包概率;

丢弃确定模块406,用于根据所述丢包概率以及随机生成数,确定是否丢弃所述数据包,以通过概率丢包的方式控制所述数据端口的流量。

在一种可选的实施方式中,所述丢包概率确定模块404具体包括:丢包概率确定子模块,用于根据所述数据包的包长以及所述令牌桶中的令牌数量确定所述数据包的所述丢包概率。

在一种可选的实施方式中,所述丢包概率确定子模块包括:索引值确定模块,用于根据所述数据包的包长以及所述令牌桶中的令牌数量确定丢包索引值;参考值确定模块,用于根据所述丢包索引值在丢包概率表中确定数据包对应的丢包参考值,所述丢包参考值用于表征所述数据包的丢包概率,所述丢包概率表中存储有多组丢包索引值以及对应的丢包参考值。

在一种可选的实施方式中,所述丢包概率表中的多个丢包参考值的取值范围与所述随机生成数的取值范围相同。

在一种可选的实施方式中,所述丢弃确定模块包括:比较丢弃模块,用于比较所述丢包参考值以及所述随机生成数的大小,根据比较结果确定是否丢弃所述数据包。

在一种可选的实施方式中,所述索引值确定模块包括:归一化确定模块,用于根据所述令牌桶中的令牌数量以及所述数据包的包长进行归一化计算,得到所述丢包索引值。

在一种可选的实施方式中,接收自同一个所述数据端口的所述数据包或属于同一个数据流的所述数据包共用一个所述丢包概率表;和/或,接收自同一个所述数据端口的所述数据包或属于同一个数据流的所述数据包共用一个所述令牌桶。

在一种可选的实施方式中,所述随机生成数通过可编程门阵列的伪随机数生成器生成并输出。

在一种可选的实施方式中,所述数据包的丢包概率与所述数据包的丢包优先级成反比。

在一种可选的实施方式中,所述丢弃确定模块包括:范围确定模块,用于确定所述丢包概率的取值范围以及所述随机生成数的取值范围为设定取值范围;比较模块,用于比较所述丢包概率以及所述随机生成数的值,根据比较结果确定是否丢弃所述数据包。

本实施例提供的流量控制方案,通过根据数据端口传输的数据包对应的令牌桶,确定所述数据包的流量标记;若所述数据包的流量标记为超量标记,则确定所述数据包对应的丢包概率;根据所述丢包概率以及随机生成数,确定是否丢弃所述数据包,以通过概率丢包的方式控制所述数据端口的流量。通过根据丢包概率来丢弃部分具有超量标记的数据包,增加了提前丢弃的数据包的数量,减少了阻塞情况的发生;通过保证丢包概率较低的数据包被丢弃的较少,从而增加了丢包概率较低的数据包在被保留的数据包中的占比,提高了带宽的利用率;并且通过确定各个数据包的丢包概率来实现流量控制,使得本方案尤其适用于数据包的优先级不同的数据传输场景中,即适用于较为复杂的数据传输场景中。

实施例五

一种终端设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如上所述的流量控制方法对应的操作。

具体地,参照图5,示出了根据本发明实施例五的一种终端设备的结构示意图,本发明具体实施例并不对终端设备的具体实现做限定。

如图5所示,该终端设备可以包括:处理器(processor)502、通信接口(Communications Interface)504、存储器(memory)506、以及通信总线508。

其中:

处理器502、通信接口504、以及存储器506通过通信总线508完成相互间的通信。

通信接口504,用于与其它终端设备或服务器进行通信。

处理器502,用于执行程序510,具体可以执行上述流量控制方法实施例中的相关步骤。

具体地,程序510可以包括程序代码,该程序代码包括计算机操作指令。

处理器502可能是中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。终端设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个CPU;也可以是不同类型的处理器,如一个或多个CPU以及一个或多个ASIC。

存储器506,用于存放程序510。存储器506可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。

程序510具体可以用于使得处理器502执行以下操作:根据数据端口传输的数据包对应的令牌桶,确定所述数据包的流量标记;若所述数据包的流量标记为超量标记,则确定所述数据包对应的丢包概率;根据所述丢包概率以及随机生成数,确定是否丢弃所述数据包,以通过概率丢包的方式控制所述数据端口的流量。

在一种可选的实施方式中,所述确定所述数据包对应的丢包概率包括:

根据所述数据包的包长以及所述令牌桶中的令牌数量确定所述数据包的所述丢包概率。

在一种可选的实施方式中,所述根据所述数据包的包长以及所述令牌桶中的令牌数量确定所述数据包的所述丢包概率包括:根据所述数据包的包长以及所述令牌桶中的令牌数量确定丢包索引值;根据所述丢包索引值在丢包概率表中确定数据包对应的丢包参考值,所述丢包参考值用于表征所述数据包的丢包概率,所述丢包概率表中存储有多组丢包索引值以及对应的丢包参考值。

在一种可选的实施方式中,所述丢包概率表中的多个丢包参考值的取值范围与所述随机生成数的取值范围相同。

在一种可选的实施方式中,所述根据所述丢包概率以及随机生成数,确定是否丢弃所述数据包包括:比较所述丢包参考值以及所述随机生成数的大小,根据比较结果确定是否丢弃所述数据包。

在一种可选的实施方式中,所述根据所述数据包的包长以及所述令牌桶中的令牌数量确定丢包索引值包括:根据所述令牌桶中的令牌数量以及所述数据包的包长进行归一化计算,得到所述丢包索引值。

在一种可选的实施方式中,接收自同一个所述数据端口的所述数据包或属于同一个数据流的所述数据包共用一个所述丢包概率表;和/或,接收自同一个所述数据端口的所述数据包或属于同一个数据流的所述数据包共用一个所述令牌桶。

在一种可选的实施方式中,所述随机生成数通过可编程门阵列的伪随机数生成器生成并输出。

在一种可选的实施方式中,所述数据包的丢包概率与所述数据包的丢包优先级成反比。

在一种可选的实施方式中,所述根据所述丢包概率以及随机生成数,确定是否丢弃所述数据包包括:确定所述丢包概率的取值范围以及所述随机生成数的取值范围为设定取值范围;比较所述丢包概率以及所述随机生成数的值,根据比较结果确定是否丢弃所述数据包。

程序510中各步骤的具体实现可以参见上述流量控制方法实施例中的相应步骤和单元中对应的描述,在此不赘述。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的设备和模块的具体工作过程,可以参考前述方法实施例中的对应过程描述,在此不再赘述。

本实施例的终端设备,通过根据数据端口传输的数据包对应的令牌桶,确定所述数据包的流量标记;若所述数据包的流量标记为超量标记,则确定所述数据包对应的丢包概率;根据所述丢包概率以及随机生成数,确定是否丢弃所述数据包,以通过概率丢包的方式控制所述数据端口的流量。通过根据丢包概率来丢弃部分具有超量标记的数据包,增加了提前丢弃的数据包的数量,减少了阻塞情况的发生;通过保证丢包概率较低的数据包被丢弃的较少,从而增加了丢包概率较低的数据包在被保留的数据包中的占比,提高了带宽的利用率;并且通过确定各个数据包的丢包概率来实现流量控制,使得本方案尤其适用于数据包的优先级不同的数据传输场景中,即适用于较为复杂的数据传输场景中。

需要指出,根据实施的需要,可将本发明实施例中描述的各个部件/步骤拆分为更多部件/步骤,也可将两个或多个部件/步骤或者部件/步骤的部分操作组合成新的部件/步骤,以实现本发明实施例的目的。

上述根据本发明实施例的方法可在硬件、固件中实现,或者被实现为可存储在记录介质(诸如CD ROM、RAM、软盘、硬盘或磁光盘)中的软件或计算机代码,或者被实现通过网络下载的原始存储在远程记录介质或非暂时机器可读介质中并将被存储在本地记录介质中的计算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件(诸如ASIC或FPGA)的记录介质上的这样的软件处理。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件(例如,RAM、ROM、闪存等),当所述软件或计算机代码被计算机、处理器或硬件访问且执行时,实现在此描述的流量控制方法。此外,当通用计算机访问用于实现在此示出的流量控制方法的代码时,代码的执行将通用计算机转换为用于执行在此示出的流量控制方法的专用计算机。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及方法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明实施例的范围。

以上实施方式仅用于说明本发明实施例,而并非对本发明实施例的限制,有关技术领域的普通技术人员,在不脱离本发明实施例的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明实施例的范畴,本发明实施例的专利保护范围应由权利要求限定。

相关技术
  • 流量控制方法、装置、终端设备及计算机存储介质
  • 终端设备控制方法及装置、终端设备及计算机可读存储介质
技术分类

06120112935490