一种基于令牌环的网络流量控制方法、节点及系统转让专利

申请号 : CN201110248171.2

文献号 : CN102291309B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 江滢

申请人 : 华为技术有限公司

摘要 :

一种基于令牌环的网络流量控制方法,包括:获得令牌的节点获取令牌中携带的网络拥塞情况信息,所述网络拥塞情况信息包括:当前令牌传递周期内节点请求重传消息数量之和;所述获得令牌的节点将所述当前令牌传递周期内节点请求重传消息数量之和与拥塞阈值进行比较;所述获得令牌的节点根据比较结果,确定可发送消息数量,并按照所述可发送消息数量发送消息。本发明实施例还提供了一种令牌环节点和基于令牌环的网络流量控制系统。由于在令牌中增加了当前令牌传递周期内节点请求重传消息数量之和,来反映网络拥塞情况,使得节点能够在网络拥塞较为严重时,减少消息发送的数量,从而减少网络负担,提高了集群的可用性。

权利要求 :

1.一种基于令牌环的网络流量控制方法,其特征在于,包括:

获得令牌的节点获取令牌中携带的网络拥塞情况信息,所述网络拥塞情况信息包括:当前令牌传递周期内节点请求重传消息数量之和;

所述获得令牌的节点将所述当前令牌传递周期内节点请求重传消息数量之和与拥塞阈值进行比较;

所述获得令牌的节点根据比较结果,确定可发送消息数量,并按照所述可发送消息数量发送消息;

其中,所述获得令牌的节点根据比较结果,确定可发送消息数量,并按照所述可发送消息数量发送消息包括:如果所述当前令牌传递周期内节点请求重传消息数量之和小于拥塞阈值,所述获得令牌的节点按照确定的第一可发送消息数量发送消息;

如果所述当前令牌传递周期内节点请求重传消息数量之和大于或等于拥塞阈值,所述获得令牌的节点按照确定的第二可发送消息数量发送消息,所述第二可发送消息数量由所述网络拥塞情况信息和所述第一可发送消息数量确定,且所述第二可发送消息数量小于所述第一可发送消息数量。

2.根据权利要求1所述的方法,其特征在于,该方法还包括:

所述获得令牌的节点根据本地接收缓冲队列,确定本地请求重传消息数量,并根据所述请求重传消息数量更新所述当前令牌传递周期内节点请求重传消息数量之和。

3.根据权利要求1或2所述的方法,其特征在于,所述网络拥塞情况信息还包括:拥塞拥塞出现次数出现次数;所述第二可发送消息数量=[所述第一可发送消息数量×(1/2 )],或拥塞出现次数者,所述第二可发送消息数量=[所述第一可发送消息数量×(1/2 )+1]。

4.根据权利要求1或2所述的方法,其特征在于,所述获得令牌的节点中设置有拥塞出拥塞出现次数现次数;所述第二可发送消息数量=所述第一可发送消息数量×(1/2 ),或者,所拥塞出现次数述第二可发送消息数量=[所述第一可发送消息数量×(1/2 )+1]。

5.根据权利要求3所述的方法,其特征在于,该方法还包括:

如果所述当前令牌传递周期内节点请求重传消息数量之和小于拥塞阈值,且所述拥塞出现次数不为0,则所述获得令牌的节点将所述拥塞出现次数重置为0;

如果所述当前令牌传递周期内节点请求重传消息数量之和大于或等于拥塞阈值,则所述获得令牌的节点将所述拥塞出现次数加1。

6.一种令牌环节点,其特征在于,包括:

拥塞信息接收模块,用于获取令牌中携带的网络拥塞情况信息,所述网络拥塞情况信息包括:当前令牌传递周期内节点请求重传消息数量之和;

拥塞情况控制模块,用于将所述当前令牌传递周期内节点请求重传消息数量之和与拥塞阈值进行比较;根据比较结果,确定可发送消息数量,并按照所述可发送消息数量发送消息;

其中,所述拥塞情况控制模块具体用于,如果所述当前令牌传递周期内节点请求重传消息数量之和小于拥塞阈值,按照确定的第一可发送消息数量发送消息;如果所述当前令牌传递周期内节点请求重传消息数量之和大于或等于拥塞阈值,按照确定的第二可发送消息数量发送消息,所述第二可发送消息数量由所述网络拥塞情况信息和所述第一可发送消息数量确定,且所述第二可发送消息数量小于所述第一可发送消息数量。

7.根据权利要求6所述的令牌环节点,其特征在于,所述令牌环节点还包括:拥塞信息更新模块,用于根据接收缓冲队列,确定请求重传消息数量,并根据所述请求重传消息数量更新所述当前令牌传递周期内节点请求重传消息数量之和。

8.根据权利要求6或7所述的令牌环节点,其特征在于,所述网络拥塞情况信息还包括:拥塞出现次数,或者,获得令牌的节点中设置有拥塞出现次数;所述拥塞信息更新模块还用于:如果所述当前令牌传递周期内节点请求重传消息数量之和小于拥塞阈值,且所述拥塞出现次数不为0,则将所述拥塞出现次数重置为0;如果所述当前令牌传递周期内节点请求重传消息数量之和大于或等于拥塞阈值,则将所述拥塞出现次数加1。

9.一种基于令牌环的网络流量控制系统,其特征在于,包括:

至少三个节点构成环网,各个节点之间按照预定的顺序传递令牌;

获得令牌的节点用于,获取令牌中携带的网络拥塞情况信息,所述网络拥塞情况信息包括:当前令牌传递周期内节点请求重传消息数量之和;将所述当前令牌传递周期内节点请求重传消息数量之和与拥塞阈值进行比较;根据比较结果,确定可发送消息数量,并按照所述可发送消息数量发送消息;

其中,所述获得令牌的节点具体用于,如果所述当前令牌传递周期内节点请求重传消息数量之和小于拥塞阈值,按照确定的第一可发送消息数量发送消息;如果所述当前令牌传递周期内节点请求重传消息数量之和大于或等于拥塞阈值,按照确定的第二可发送消息数量发送消息,所述第二可发送消息数量由所述网络拥塞情况信息和所述第一可发送消息数量确定,且所述第二可发送消息数量小于所述第一可发送消息数量。

10.根据权利要求9所述的系统,其特征在于,所述获得令牌的节点还用于,根据本地接收缓冲队列,确定本地请求重传消息数量,并根据所述请求重传消息数量更新所述当前令牌传递周期内节点请求重传消息数量之和。

11.根据权利要求9或10所述的系统,其特征在于,所述网络拥塞情况信息还包括:拥塞出现次数,或者,所述获得令牌的节点中设置有拥塞出现次数;所述获得令牌的节点还用于:如果所述当前令牌传递周期内节点请求重传消息数量之和小于拥塞阈值,且所述拥塞出现次数不为0,则将所述拥塞出现次数重置为0;如果所述当前令牌传递周期内节点请求重传消息数量之和大于或等于拥塞阈值,则将所述拥塞出现次数加1。

说明书 :

一种基于令牌环的网络流量控制方法、节点及系统

技术领域

[0001] 本发明实施例涉及网络通信技术领域,尤其涉及一种基于令牌环的网络流量控制方法、节点及系统。

背景技术

[0002] Totem单环有序协议提供了一种广播域内全局有序向上层服务递交消息的机制,从而保证消息传递的可靠性和有序性。支持令牌单环有序协议的网络,例如令牌环网中,由令牌控制各节点对令牌环网的访问。令牌在令牌环网的各个节点中有序传递,只有持有令牌的节点能够在令牌环网中广播消息,每个节点接收令牌传递周期内其他节点发送的所有消息,并将接收到的消息存放在接收缓冲队列中。如果不对节点广播消息的数量进行限制,令牌环网中处理速度较慢的节点可能来不及处理接收缓冲队列中的消息而导致接收缓冲队列溢出。为了避免这种情况发生,需要对网络中的流量进行控制。
[0003] 现有的流量控制方式如下:
[0004] 在一个令牌传递周期内:规定所有节点可发送消息的总数量N;规定每个节点拿到令牌后,可发送的最大消息数量M;针对待发送消息较多的节点,可以考虑为其分配更多的发送份额,则还规定节点按比例可发送消息数量K=[(cbl/backlog)×N],其中,cbl表示获得令牌的节点待发送消息数量、backlog表示所有节点待发送消息数量之和,[]表示取整。当令牌的传递顺序改变时,一个令牌传递周期结束。
[0005] 相应的,每个节点最终可以发送的消息数量X=min(M,K,N-fcc),其中,fcc表示在当前令牌传递周期内所有已发送消息节点已经发送的消息数量之和。
[0006] 发明人在实现本发明的过程中,发现现有技术中至少存在如下问题:
[0007] 当网络拥塞情况严重时,可能会出现消息大量丢失的情况。按照令牌单环有序协议对消息可靠性的要求,节点会请求消息重传。现有的网络流量控制方式,没有考虑到网络拥塞情况,会导致重传消息越来越多,增加网络负担。且重传消息的递增会导致令牌中的重传列表溢出,消息的大量丢失又会导致接收缓冲队列中的消息得不到有序提交,进而导致接收缓冲队列溢出,降低集群的可用性。

发明内容

[0008] 本发明的实施例提供了一种基于令牌环的网络流量控制方法、节点及系统,从而解决网络拥塞情况下的流量控制问题。
[0009] 本发明的目的是通过以下技术方案实现的:
[0010] 本发明一个实施例提供一种基于令牌环的网络流量控制方法,包括:
[0011] 获得令牌的节点获取令牌中携带的网络拥塞情况信息,所述网络拥塞情况信息包括:当前令牌传递周期内节点请求重传消息数量之和;
[0012] 所述获得令牌的节点将所述当前令牌传递周期内节点请求重传消息数量之和与拥塞阈值进行比较;
[0013] 所述获得令牌的节点根据比较结果,确定可发送消息数量,并按照所述可发送消息数量发送消息。
[0014] 本发明一个实施例提供一种令牌环节点,包括:
[0015] 拥塞信息接收模块,用于获取令牌中携带的网络拥塞情况信息,所述网络拥塞情况信息包括:当前令牌传递周期内节点请求重传消息数量之和;
[0016] 拥塞情况控制模块,用于将所述当前令牌传递周期内节点请求重传消息数量之和与拥塞阈值进行比较;根据比较结果,确定可发送消息数量,并按照所述可发送消息数量发送消息。
[0017] 本发明一个实施例提供一种基于令牌环的网络流量控制系统,包括:
[0018] 至少三个节点构成环网,各个节点之间按照预定的顺序传递令牌;
[0019] 获得令牌的节点用于,获取令牌中携带的网络拥塞情况信息,所述网络拥塞情况信息包括:当前令牌传递周期内节点请求重传消息数量之和;将所述当前令牌传递周期内节点请求重传消息数量之和与拥塞阈值进行比较;根据比较结果,确定可发送消息数量,并按照所述可发送消息数量发送消息。
[0020] 由上述本发明的实施例提供的技术方案可以看出,本发明实施例中,由于在令牌中增加了当前令牌传递周期内节点请求重传消息数量之和,来反映网络拥塞情况,使得获得令牌的节点能够在网络拥塞较为严重的情况下,减少消息发送的数量,从而缓解网络拥塞,减少网络负担。避免了由于网络拥塞严重导致重传列表溢出以及接收缓冲队列溢出,提高了集群的可用性。

附图说明

[0021] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0022] 图1为本发明实施例提供的方法流程图;
[0023] 图2为本发明实施例提供的令牌环网示意图;
[0024] 图3为本发明实施例提供的令牌环节点结构示意图;
[0025] 图4为本发明实施例提供的系统结构示意图。

具体实施方式

[0026] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0027] 本发明实施例提供一种基于令牌环的网络流量控制方法,如图1所示,具体包括如下操作:
[0028] S101、获得令牌的节点获取令牌中携带的网络拥塞情况信息;
[0029] 上述网络拥塞情况信息包括:当前令牌传递周期内节点请求重传消息数量之和,用来反映网络拥塞情况。
[0030] S102、上述获得令牌的节点将所述当前令牌传递周期内节点请求重传消息数量之和与拥塞阈值进行比较;
[0031] 拥塞阈值可以根据网络拥塞测试确定。
[0032] S103、上述获得令牌的节点根据比较结果,确定可发送消息数量,并按照所述可发送消息数量发送消息。
[0033] 本发明实施例提供的方法,由于在令牌中增加了当前令牌传递周期内节点请求重传消息数量之和,来反映网络拥塞情况,使得获得令牌的节点能够在网络拥塞较为严重的情况下,减少消息发送的数量,从而缓解网络拥塞,减少网络负担。避免了由于网络拥塞严重导致重传列表溢出以及接收缓冲队列溢出,提高了集群的可用性。
[0034] 其中,上述S103的具体实现方式可以是:
[0035] 如果所述当前令牌传递周期内节点请求重传消息数量之和小于拥塞阈值,则上述获得令牌的节点按照确定的第一可发送消息数量发送消息;如果所述当前令牌传递周期内节点请求重传消息数量之和大于或等于拥塞阈值,则上述获得令牌的节点按照确定的第二可发送消息数量发送消息。
[0036] 上述S103的具体实现方式还可以是:
[0037] 如果所述当前令牌传递周期内节点请求重传消息数量之和小于或等于拥塞阈值,则上述获得令牌的节点按照确定的第一可发送消息数量发送消息;如果所述当前令牌传递周期内节点请求重传消息数量之和大于拥塞阈值,则上述获得令牌的节点按照确定的第二可发送消息数量发送消息。
[0038] 上述第一可发送消息数量为min(M,K,N-fcc)。
[0039] 上述第二可发送消息数量由上述网络拥塞情况信息和上述第一可发送消息数量确定,且上述第二可发送消息数量小于上述第一可发送消息数量。
[0040] 本发明实施例中,还有根据网络拥塞情况确定的拥塞出现次数。其具体实现方式可以包括如下两种:(一)令牌环网中的每个节点中均设置有拥塞出现次数,该拥塞出现次数是指,当前令牌传递周期内,连续出现的节点请求重传消息数量之和大于或等于(或大于)拥塞阈值的次数,拥塞出现次数的初始值为0;(二)所述的网络拥塞情况信息中还可以包括拥塞出现次数。相应的,上述的第二可发送消息数量=[所述第一可发送消拥塞出现次数息数量×(1/2 )],或者,上述的第二可发送消息数量=[所述第一可发送消息数拥塞出现次数
量×(1/2 )+1],。根据该公式可知,第二可发送消息数量随着拥塞出现次数的增加,呈几何级递减,从而有效控制了网络拥塞时,网络中的消息流量。应当指出的是,上述给出的是一种优选的第二可发送消息数量确定方法,还可以有其他确定第二可发送消息数量的方法,只要满足第二可发送消息数量随着网络拥塞情况恶化而减少即可。
[0041] 本发明实施例中,还包括对令牌中携带的网络拥塞情况信息的更新过程,具体如下:
[0042] (一)所述获得令牌的节点根据本地接收缓冲队列,确定本地请求重传消息数量,并根据所述请求重传消息数量更新所述当前令牌传递周期内节点请求重传消息数量之和;
[0043] 其中,当前令牌传递周期内节点请求重传消息数量之和=令牌中取出的请求重传消息数量之和+获得令牌的节点当前请求重传消息数量-获得令牌的节点上一次请求重传消息数量。
[0044] (二)根据上述判断结果,如果所述当前令牌传递周期内节点请求重传消息数量之和小于拥塞阈值,且所述拥塞出现次数不为0,则所述获得令牌的节点将所述拥塞出现次数重置为0;如果所述当前令牌传递周期内节点请求重传消息数量之和大于或等于拥塞阈值,则所述获得令牌的节点将所述拥塞出现次数加1。
[0045] 下面将对本发明实施例在实际应用过程中的具体实现方式进行详细的说明。
[0046] 一个应用实施例
[0047] 在图2所示的网络中,令牌按照节点1->节点2->节点3->节点4->节点1的顺序在环网中传递。其中,令牌中至少携带如下字段:seq和rtt_count,seq表示全局唯一消息编码,rtr_count表示当前令牌传递周期内节点请求重传消息数量之和,rtr_count的初始值为0。每个节点中设置有拥塞阈值H,还设置有拥塞出现次数C,C的初始值为0。本发明实施例中,假设各个节点的拥塞阈值H相同。
[0048] 应用本发明实施例提供的方法进行网络流量控制的实现方式包括如下操作:
[0049] S201、节点1将令牌传递给节点2,令牌中的seq=100,rtr_count为初始值0;
[0050] S202、节点2获得令牌后,获取令牌中的rtr_count值,并将rtr_count值与H进行比较,由于rtr_count值<H,因此节点2确定可发送消息数量X2=min(M2,K2,N-fcc),其中,M2表示节点2可发送的最大消息数量,K2表示节点2按比例可发送消息数量;
[0051] S203、节点2发送消息#101~#110,并将令牌中的seq值修改为110,[0052] 节点2修改seq值依据的公式为:seq=seq+10;
[0053] 节点2发送的消息数量没有超过确定的可发送消息数量X2;
[0054] S204、节点2确定本地请求重传消息数量为2,将rtr_count值修改为2,[0055] 其中,节点2确定本地请求重传消息数量为2的具体实现方式为:由于seq=100,则节点2的接收缓冲队列中应该保存有消息#1~#100,根据有序性要求,节点2查看本地接收缓冲队列,发现没有收到消息#81和#82,则确定本地请求重传消息数量为2;
[0056] S205、节点2将令牌传递给节点3,令牌中的seq=110,rtr_count=2;
[0057] S206、节点3获得令牌后,获取令牌中的rtr_count值,并将rtr_count值与H进行比较,假设rtr_count值<H,则节点3确定可发送消息数量X3=min(M3,K3,N-fcc),其中,M3表示节点3可发送的最大消息数量,K3表示节点3按比例可发送消息数量;
[0058] S207、节点3发送消息#111~#120,并将令牌中的seq值修改为120,[0059] 节点3修改seq值依据的公式为:seq=seq+10;
[0060] 节点3发送的消息数量没有超过确定的可发送消息数量X3;
[0061] S208、节点3确定本地请求重传消息数量为1,将rtr_count值修改为3,[0062] 其中,节点3确定本地请求重传消息数量为1的具体实现方式为:由于seq=110,则节点3的接收缓冲队列中应该保存有消息#1~#110,根据有序性要求,节点3查看本地接收缓冲队列,发现没有收到消息#85,则确定本地请求重传消息数量为1;
[0063] S209、节点3将令牌传递给节点4,令牌中的seq=120,rtr_count=3;
[0064] S210、节点4获得令牌后,获取令牌中的rtr_count值,并将rtr_count值与H进行比较,假设rtr_count值>H,则节点4确定可发送消息数量X4=[min(M4,K4,CN-fcc)×(1/2)],并将C值加1,其中,M4表示节点4可发送的最大消息数量,K4表示节点4按比例可发送消息数量;
[0065] S211、节点4发送消息#121~#130,并将令牌中的seq值修改为130,[0066] 节点4修改seq值依据的公式为:seq=seq+10;
[0067] 节点4发送的消息数量没有超过确定的可发送消息数量X3;
[0068] S212、节点4确定本地请求重传消息数量为3,将rtr_count值修改为6,[0069] 其中,节点4确定本地请求重传消息数量为3的具体实现方式为:由于seq=120,则节点4的接收缓冲队列中应该保存有消息#1~#120,根据有序性要求,节点4查看本地接收缓冲队列,发现没有收到消息#91、#92和#93,则确定本地请求重传消息数量为3;
[0070] S213、节点4将令牌传递给节点1,令牌中的seq=130,rtr_count=6。
[0071] 上述处理过程仅以令牌传递周期内,节点1->节点2->节点3->节点4->节点1的令牌传递片段为例,对本发明实施例提供的方法进行说明。且,假设各个节点上一次请求重传的消息数量为0。
[0072] 另一个应用实施例
[0073] 在图2所示的网络中,令牌按照节点1->节点2->节点3->节点4->节点1的顺序在环网中传递。其中,令牌中至少携带如下字段:seq、rtr_count和cong_count,seq表示全局唯一消息编码,rtr_count表示当前令牌传递周期内节点请求重传消息数量之和,rtr_count的初始值为0,cong_count表示拥塞出现次数,cong_count的初始值为0。每个节点中设置有拥塞阈值H。本发明实施例中,假设各个节点的拥塞阈值H相同。
[0074] 应用本发明实施例提供的方法进行网络流量控制的实现方式包括如下操作:
[0075] S301、节点1将令牌传递给节点2,令牌中的seq=100,rtr_count为初始值0;
[0076] S302、节点2获得令牌后,获取令牌中的rtr_count值,并将rtr_count值与H进行比较,由于rtr_count值<H,因此节点2确定可发送消息数量X2=min(M2,K2,N-fcc),其中,M2表示节点2可发送的最大消息数量,K2表示节点2按比例可发送消息数量;
[0077] S303、节点2发送消息#101~#110,并将令牌中的seq值修改为110,[0078] 节点2修改seq值依据的公式为:seq=seq+10;
[0079] 节点2发送的消息数量没有超过确定的可发送消息数量X2;
[0080] S304、节点2确定本地请求重传消息数量为2,将rtr_count值修改为2,[0081] 其中,节点2确定本地请求重传消息数量为2的具体实现方式为:由于seq=100,则节点2的接收缓冲队列中应该保存有消息#1~#100,根据有序性要求,节点2查看本地接收缓冲队列,发现没有收到消息#81和#82,则确定本地请求重传消息数量为2;
[0082] S305、节点2将令牌传递给节点3,令牌中的seq=110,rtr_count=2;
[0083] S306、节点3获得令牌后,获取令牌中的rtr_count值,并将rtr_count值与H进行比较,假设rtr_count值<H,则节点3确定可发送消息数量X3=min(M3,K3,N-fcc),其中,M3表示节点3可发送的最大消息数量,K3表示节点3按比例可发送消息数量;
[0084] S307、节点3发送消息#111~#120,并将令牌中的seq值修改为120,[0085] 节点3修改seq值依据的公式为:seq=seq+10;
[0086] 节点3发送的消息数量没有超过确定的可发送消息数量X3;
[0087] S308、节点3确定本地请求重传消息数量为1,将rtr_count值修改为3,[0088] 其中,节点3确定本地请求重传消息数量为1的具体实现方式为:由于seq=110,则节点3的接收缓冲队列中应该保存有消息#1~#110,根据有序性要求,节点3查看本地接收缓冲队列,发现没有收到消息#85,则确定本地请求重传消息数量为1;
[0089] S309、节点3将令牌传递给节点4,令牌中的seq=120,rtr_count=3;
[0090] S310、节点4获得令牌后,获取令牌中的rtr_count值,并将rtr_count值与H进行比较,假设rtr_count值>H,则节点4确定可发送消息数量X4=min(M4,K4,cong_countN-fcc)×(1/2 ),并将cong_count值加1,其中,M4表示节点4可发送的最大消息数量,K4表示节点4按比例可发送消息数量;
[0091] S311、节点4发送消息#121~#130,并将令牌中的seq值修改为130,[0092] 节点4修改seq值依据的公式为:seq=seq+10;
[0093] 节点4发送的消息数量没有超过确定的可发送消息数量X3;
[0094] S312、节点4确定本地请求重传消息数量为3,将rtr_count值修改为6,[0095] 其中,节点4确定本地请求重传消息数量为3的具体实现方式为:由于seq=120,则节点4的接收缓冲队列中应该保存有消息#1~#120,根据有序性要求,节点4查看本地接收缓冲队列,发现没有收到消息#91、#92和#93,则确定本地请求重传消息数量为3;
[0096] S313、节点4将令牌传递给节点1,令牌中的seq=130,rtr_count=6。
[0097] 上述处理过程仅以令牌传递周期内,节点1->节点2->节点3->节点4->节点1的令牌传递片段为例,对本发明实施例提供的方法进行说明。且,假设各个节点上一次请求重传的消息数量为0。
[0098] 实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
[0099] 本发明实施例还提供了一种令牌环节点,其结构如图3所示,具体实现结构包括:
[0100] 拥塞信息接收模块3001,用于获取令牌中携带的网络拥塞情况信息,所述网络拥塞情况信息包括:当前令牌传递周期内节点请求重传消息数量之和,用来反映网络拥塞情况;
[0101] 拥塞情况控制模块3002,用于将所述当前令牌传递周期内节点请求重传消息数量之和与拥塞阈值进行比较;根据比较结果,确定可发送消息数量,并按照所述可发送消息数量发送消息。
[0102] 本发明实施例提供的令牌环节点,由于在令牌中增加了当前令牌传递周期内节点请求重传消息数量之和,来反映网络拥塞情况,使得获得令牌的节点能够在网络拥塞较为严重的情况下,减少消息发送的数量,从而缓解网络拥塞,减少网络负担。避免了由于网络拥塞严重导致重传列表溢出以及接收缓冲队列溢出,提高了集群的可用性。
[0103] 上述拥塞情况控制模块3002具体用于,如果所述当前令牌传递周期内节点请求重传消息数量之和小于拥塞阈值,按照确定的第一可发送消息数量发送消息;如果所述当前令牌传递周期内节点请求重传消息数量之和大于或等于拥塞阈值,按照确定的第二可发送消息数量发送消息,所述第二可发送消息数量由所述网络拥塞情况信息和所述第一可发送消息数量确定,且所述第二可发送消息数量小于所述第一可发送消息数量。或者,上述拥塞情况控制模块3002具体用于,如果所述当前令牌传递周期内节点请求重传消息数量之和小于或等于拥塞阈值,则上述获得令牌的节点按照确定的第一可发送消息数量发送消息;如果所述当前令牌传递周期内节点请求重传消息数量之和大于拥塞阈值,则上述获得令牌的节点按照确定的第二可发送消息数量发送消息。
[0104] 本发明实施例提供的令牌环节点还可以包括拥塞信息更新模块3003,用于根据接收缓冲队列,确定请求重传消息数量,并根据所述请求重传消息数量更新所述当前令牌传递周期内节点请求重传消息数量之和。
[0105] 本发明实施例中,还有根据网络拥塞情况确定的拥塞出现次数。其具体实现方式可以包括如下两种:(一)令牌环网中的每个节点中均设置有拥塞出现次数,该拥塞出现次数是指,当前令牌传递周期内,连续出现的节点请求重传消息数量之和大于或等于(或大于)拥塞阈值的次数,拥塞出现次数的初始值为0;(二)所述网络拥塞情况信息还可以包括拥塞出现次数,或者,所述获得令牌的节点中设置有拥塞出现次数。相应的,所述拥塞信息更新模块3003还用于:如果所述当前令牌传递周期内节点请求重传消息数量之和小于拥塞阈值,且所述拥塞出现次数不为0,则将所述拥塞出现次数重置为0;如果所述当前令牌传递周期内节点请求重传消息数量之和大于或等于拥塞阈值,则将所述拥塞出现次数加1。
[0106] 本发明实施例还提供一种基于令牌环的网络流量控制系统,其结构如图4所示,包括:
[0107] 至少三个节点构成环网,各个节点之间按照预定的顺序传递令牌;
[0108] 获得令牌的节点用于,获取令牌中携带的网络拥塞情况信息,所述网络拥塞情况信息包括:当前令牌传递周期内节点请求重传消息数量之和;将所述当前令牌传递周期内节点请求重传消息数量之和与拥塞阈值进行比较;根据比较结果,确定可发送消息数量,并按照所述可发送消息数量发送消息。
[0109] 本发明实施例提供的系统,由于在令牌中增加了当前令牌传递周期内节点请求重传消息数量之和,来反映网络拥塞情况,使得获得令牌的节点能够在网络拥塞较为严重的情况下,减少消息发送的数量,从而缓解网络拥塞,减少网络负担。避免了由于网络拥塞严重导致重传列表溢出以及接收缓冲队列溢出,提高了集群的可用性。
[0110] 所述获得令牌的节点具体用于,如果所述当前令牌传递周期内节点请求重传消息数量之和小于拥塞阈值,按照确定的第一可发送消息数量发送消息;如果所述当前令牌传递周期内节点请求重传消息数量之和大于或等于拥塞阈值,按照确定的第二可发送消息数量发送消息,所述第二可发送消息数量由所述网络拥塞情况信息和所述第一可发送消息数量确定,且所述第二可发送消息数量小于所述第一可发送消息数量。
[0111] 所述获得令牌的节点还用于,根据本地接收缓冲队列,确定本地请求重传消息数量,并根据所述请求重传消息数量更新所述当前令牌传递周期内节点请求重传消息数量之和。
[0112] 所述网络拥塞情况信息还包括:拥塞出现次数,或者,所述获得令牌的节点中设置有拥塞出现次数;所述获得令牌的节点还用于:如果所述当前令牌传递周期内节点请求重传消息数量之和小于拥塞阈值,且所述拥塞出现次数不为0,则将所述拥塞出现次数重置为0;如果所述当前令牌传递周期内节点请求重传消息数量之和大于或等于拥塞阈值,则将所述拥塞出现次数加1。
[0113] 以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。