CN103259738B - 一种数据发送方法、数据产生器及主动流控系统 - Google Patents
一种数据发送方法、数据产生器及主动流控系统 Download PDFInfo
- Publication number
- CN103259738B CN103259738B CN201310152251.7A CN201310152251A CN103259738B CN 103259738 B CN103259738 B CN 103259738B CN 201310152251 A CN201310152251 A CN 201310152251A CN 103259738 B CN103259738 B CN 103259738B
- Authority
- CN
- China
- Prior art keywords
- data
- message
- data message
- counter
- flag bit
- 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
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
- Communication Control (AREA)
Abstract
本发明实施例公开了一种数据发送方法、数据产生器及主动流控系统,涉及通信领域,解决了主动流控机制中通过软件定时将计数器清零过程中造成的数据断流问题。具体方案为:向数据通道发送包含第一标志位的第一数据报文,根据第一数据报文的报文长度信息增加计数器的计数数值;根据预设的时间阈值将计数器的计数数值设置为初始值;向数据通道发送包含第二标志位的第二数据报文,第二标志位与第一标志位不同,根据第二数据报文的报文长度信息增加计数器的计数数值;接收出口处理器发送的流控信息,并当流控信息包括第二标志位时,根据流控信息中包括的第二数据报文的报文长度信息减少计数器的计数数值。本发明用于主动流控机制中。
Description
技术领域
本发明涉及通信领域,尤其涉及一种数据发送方法、数据产生器及主动流控系统。
背景技术
在通信系统中,为了避免出口处理器由于资源完全耗尽产生链路反压,从而导致某个端口的数据报文大量积压的问题发生,通常需要对单一端口占用出口处理器资源的情况进行控制。采用主动流控机制便可以有效的对端口的数据报文进行控制,该主动流控机制主要是在数据产生器中对每个端口从数据产生器产生但还未从出口处理器发出的数据量进行主动控制,具体的实现方式为:在数据产生器中为每个端口分别设置一个计数器,当数据产生器发出一个端口的数据报文时,则将该端口的计数器增加,当出口处理器接收到数据通道发送的一个端口的数据报文时,出口处理器通知数据产生器,以便数据产生器将该端口的计数器进行相应的减少,并当某一个端口的计数器的计数结果等于设定的阈值时,数据产生器停止产生对应端口的数据报文,这样可以避免该端口中数据报文的积压。由此可以看出主动流控机制要求每一个从数据产生器发出的数据报文的长度信息都能够从出口处理器处得到正确的反馈,若数据报文在从数据产生器发出后由于某些原因丢失,或者出口处理器反馈给数据产生器的长度信息错误,则主动流控机制便会失效,并且由于计数器的误差会持续累计,在最恶劣的状态下,若数据报文丢失过多,便会使得计数器的计数结果超过设定的阈值并且无法下降,最终导致系统无法继续正常工作。
现有技术通过软件的控制,定时将数据产生器中的计数器清零,以用来解决由于数据报文丢失或出口处理器反馈的数据报文的长度信息错误而导致的计数器的错误累计甚至系统无法继续正常工作的情况发生。由于计数器的增减是动态过程,所以在将计数器进行清零前必须先禁止数据产生器继续产生数据报文,并等待在计数器清零前的所有数据报文都从出口处理器发出后才可以重新开始产生数据报文,以此来确保计数器重新计数的准确性。但是这样便会导致数据在一段时间内断流。
因此急需一种方案以解决上述主动流控机制中通过软件定时将计数器清零过程中造成的数据断流问题。
发明内容
本发明的实施例提供一种数据发送方法、数据产生器及主动流控系统,解决了主动流控机制中通过软件定时将计数器清零过程中造成的数据断流问题。
为达到上述目的,本发明的实施例采用如下技术方案:
本发明的第一方面,提供一种数据发送方法,应用于数据产生器,所述数据产生器包含N个端口,每个端口设置一个计数器,所述方法包括:
通过端口X向数据通道发送第一数据报文,以便所述数据通道将所述第一数据报文发送至出口处理器;其中,所述第一数据报文包含第一标志位,所述端口X为所述N个端口中的任意端口;
根据所述第一数据报文的报文长度信息增加所述端口X对应的计数器的计数数值;
根据预设的时间阈值将所述计数器的计数数值设置为初始值;
通过所述端口X向所述数据通道发送第二数据报文,以便所述数据通道将所述第二数据报文发送至所述出口处理器;其中,所述第二数据报文包含第二标志位,所述第二标志位与所述第一标志位不同;
根据所述第二数据报文的报文长度信息增加所述计数器的计数数值;
接收所述出口处理器发送的流控信息;其中,当所述出口处理器接收到所述第一数据报文时,所述流控信息包括所述第一数据报文的报文长度信息和所述第一标志位,或,当所述出口处理器接收到所述第二数据报文,所述流控信息包括所述第二数据报文的报文长度信息和所述第二标志位;
当所述流控信息包括所述第二标志位时,根据所述流控信息中的所述第二数据报文的报文长度信息减少所述计数器的计数数值。
结合第一方面,在一种可能的实现方式中,还包括:
当所述流控信息包括所述第一标志位时,保持所述计数器的计数数值不变。
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,在所述通过端口X向数据通道发送第一数据报文之前,还包括:
生成所述端口X的所述第一数据报文;
判断所述计数器的计数数值小于预设的计数阈值。
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,所述根据预设的时间阈值将所述计数器的计数数值设置为初始值,包括:
当定时器的定时时间等于所述时间阈值时,将所述计数器的计数数值设置为所述初始值;
将所述定时器的定时时间清零,并重新开始计时。
本发明的第二方面,提供一种数据产生器,所述数据产生器包含N个端口,每个端口设置一个计数器,所述数据产生器包括:
第一发送单元,用于通过端口X向数据通道发送第一数据报文,以便所述数据通道将所述第一数据报文发送至出口处理器;其中,所述第一数据报文包含第一标志位,所述端口X为所述N个端口中的任意端口;
第一增加单元,用于根据所述第一数据报文的报文长度信息增加所述端口X对应的计数器的计数数值;
设置单元,用于根据预设的时间阈值将所述计数器的计数数值设置为初始值;
第二发送单元,用于通过所述端口X向所述数据通道发送第二数据报文,以便所述数据通道将所述第二数据报文发送至所述出口处理器;其中,所述第二数据报文包含第二标志位,所述第二标志位与所述第一标志位不同;
第二增加单元,用于根据所述第二数据报文的报文长度信息增加所述计数器的计数数值;
接收单元,用于接收所述出口处理器发送的流控信息;其中,当所述出口处理器接收到所述第一数据报文时,所述流控信息包括所述第一数据报文的报文长度信息和所述第一标志位,或,当所述出口处理器接收到所述第二数据报文,所述流控信息包括所述第二数据报文的报文长度信息和所述第二标志位;
减少单元,用于当所述流控信息包括所述第二标志位时,根据所述流控信息中的所述第二数据报文的报文长度信息减少所述计数器的计数数值。
结合第二方面,在一种可能的实现方式中,还包括:
保持单元,用于当所述流控信息包括所述第一标志位时,保持所述计数器的计数数值不变。
结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,还包括:
生成单元,用于在所述第一发送单元通过端口X向数据通道发送第一数据报文之前,生成所述端口X的所述第一数据报文;
判断单元,用于判断所述计数器的计数数值小于预设的计数阈值。
结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,所述设置单元,包括:
设置模块,用于当定时器的定时时间等于所述时间阈值时,将所述计数器的计数数值设置为所述初始值;
清零模块,用于将所述定时器的定时时间清零,并重新开始计时。
本发明的第三方面,提供一种主动流控系统,包括:数据产生器、数据通道以及出口处理器;
所述数据产生器,用于通过端口X向数据通道发送第一数据报文,以便所述数据通道将所述第一数据报文发送至出口处理器;其中,所述第一数据报文包含第一标志位,所述端口X为所述N个端口中的任意端口;根据所述第一数据报文的报文长度信息增加所述端口X对应的计数器的计数数值;根据预设的时间阈值将所述计数器的计数数值设置为初始值;通过所述端口X向所述数据通道发送第二数据报文,以便所述数据通道将所述第二数据报文发送至所述出口处理器;其中,所述第二数据报文包含第二标志位,所述第二标志位与所述第一标志位不同;根据所述第二数据报文的报文长度信息增加所述计数器的计数数值;接收所述出口处理器发送的流控信息;其中,当所述出口处理器接收到所述第一数据报文时,所述流控信息包括所述第一数据报文的报文长度信息和所述第一标志位,或,当所述出口处理器接收到所述第二数据报文,所述流控信息包括所述第二数据报文的报文长度信息和所述第二标志位;当所述流控信息包括所述第二标志位时,根据所述流控信息中的所述第二数据报文的报文长度信息减少所述计数器的计数数值;
所述数据通道,用于接收所述数据产生器发送的第一数据报文,并将所述第一数据报文发送至所述出口处理器,接收所述数据产生器发送的第二数据报文,并将所述第二数据报文发送至所述出口处理器;其中,所述第一数据报文包含第一标志位,所述第二数据报文包含第二标志位;
所述出口处理器,用于接收所述数据通道发送的所述第一数据报文;接收所述数据通道发送的所述第二数据报文;当接收到所述第一数据报文,向所述数据产生器发送包括所述第一数据报文的报文长度信息和所述第一标志位的流控信息,当接收到所述第二数据报文,向所述数据产生器发送包括所述第二数据报文的报文长度信息和所述第二标志位的流控信息。
本发明实施例提供的数据发送方法、数据产生器及主动流控系统,向数据通道发送包含第一标志位的第一数据报文,根据预设的时间阈值将计数器的计数数值设置为初始值,在将计数器进行重设之后,向数据通道发送包含与第一标志位不同的第二标志位的第二数据报文,并当接收到出口处理器发送的流控信息,在判断得到流控信息包括第二标志位时,根据流控信息中的第二数据报文的报文长度信息减少计数器的计数数值,通过在数据报文中添加不同的标志位来将计数器进行重设前后的数据报文进行区分,解决了主动流控机制中通过软件定时将计数器清零过程中造成的数据断流问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一实施例提供的一种数据发送方法流程示意图;
图2为本发明另一实施例提供的一种数据发送方法流程示意图;
图3为本发明另一实施例提供的一种数据产生器组成示意图;
图4为本发明另一实施例提供的另一种数据产生器组成示意图;
图5为本发明另一实施例提供的另一种数据产生器组成示意图;
图6为本发明另一实施例提供的一种主动流控系统组成示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明一实施例提供一种数据发送方法,应用于数据产生器,该数据产生器包含N个端口,每个端口设置一个计数器,如图1所示,该方法可以包括:
101、数据产生器通过端口X向数据通道发送包含第一标志位的第一数据报文,以便数据通道将第一数据报文发送至出口处理器。
其中,在主动流控机制中由于各种原因导致的计数器计数不准确的问题,可以通过定时清零计数器得到解决,但是为了使得计数器清零后能够继续正确的进行计数,并保证数据不断流,在本发明实施例中,当数据产生器需要发送某个端口的数据报文时,在数据报文中携带标志位。具体的可以是:当数据产生器需要发送端口X的数据报文时,通过端口X向数据通道发送包含第一标志位的第一数据报文,以便数据通道将包含第一标志位的第一数据报文发送至出口处理器。其中,端口X为数据产生器的N个端口中的任意一个端口。
102、数据产生器根据第一数据报文的报文长度信息增加端口X对应的计数器的计数数值。
其中,数据产生器向数据通道发送包含第一标志位的第一数据报文之后,数据产生器可以根据第一数据报文的报文长度信息增加端口X对应的计数器的计数数值。
103、数据产生器根据预设的时间阈值将计数器的计数数值设置为初始值。
其中,当预设的时间阈值到达时,数据产生器便可以将计数器的计数数值设置为初始值,例如,可以是将计数器清零,也可以是将计数器的计数数值重置为其他初始值。
104、数据产生器通过端口X向数据通道发送包含第二标志位的第二数据报文,以便数据通道将第二数据报文发送至出口处理器。
其中,当数据产生器根据预设的时间阈值将计数器的计数数值设置为初始值之后,当数据产生器需要发送端口X的数据报文时,此时便可以通过端口X向数据通道发送包含第二标志位的第二数据报文,以便数据通道将包含第二标志位的第二数据报文发送至出口处理器,并且,第二标志位与第一标志位不同。也就是说,在计数器的数值重新设置前后发送的报文携带不同的标志位,以进行区分,在本发明实施例中可以看到,计数器更新之前的数据报文均携带第一标志位,而在计数器更新之后发送的数据报文则携带第二标志位。
105、数据产生器根据第二数据报文的报文长度信息增加计数器的计数数值。
其中,当数据产生器向数据通道发送包含第二标志位的第二数据报文之后,数据产生器可以根据第二数据报文的报文长度信息相应的将端口X对应的计数器的计数数值增加。
106、数据产生器接收出口处理器发送的流控信息。
其中,当出口处理器接收到数据通道发送的数据报文时,需要向数据产生器发送流控信息,以便数据产生器根据流控信息对计数器的计数数值进行相应的操作,具体的当出口处理器接收到数据通道发送的第一数据报文时,向数据产生器发送流控信息可以包括第一数据报文的报文长度信息和第一标志位,当出口处理器接收到数据通道发送的第二数据报文时,向数据产生器发送流控信息可以包括第二数据报文的报文长度信息和第二标志位。
107、当流控信息包括第二标志位时,数据产生器根据流控信息中的第二数据报文的报文长度信息减少计数器的计数数值。
其中,当数据产生器接收到出口处理器发送的流控信息时,可以判断流控信息中包含的标志位是否为第二标志位,且当流控信息中包括第二标志位时,根据流控信息中的第二数据报文的报文长度信息减少计数器的计数数值,若流控信息中包含的标志位不是第二标志位,则不对计数器进行任何操作,换句话说,当接收到流控信息时,仅对包含有当前使用的标志位(如第二标志位)的流控信息进行响应。
本发明实施例提供的数据发送方法,向数据通道发送包含第一标志位的第一数据报文,根据预设的时间阈值将计数器的计数数值设置为初始值,在将计数器进行重设之后,向数据通道发送包含与第一标志位不同的第二标志位的第二数据报文,并当接收到出口处理器发送的流控信息,在判断得到流控信息包括第二标志位时,根据流控信息中的第二数据报文的报文长度信息减少计数器的计数数值,通过在数据报文中添加不同的标志位来将计数器进行重设前后的数据报文进行区分,解决了主动流控机制中通过软件定时将计数器清零过程中造成的数据断流问题。
本发明另一实施例提供一种数据发送方法,应用于数据产生器,该数据产生器包含N个端口,每个端口设置一个计数器,如图2所示,该方法可以包括:
201、数据产生器生成端口X的第一数据报文。
其中,端口X为数据产生器中N个端口中的任意一个端口,第一数据报文包含第一标志位。
202、数据产生器判断端口X对应的计数器的计数数值小于预设的计数阈值。
其中,通过计数器控制每个端口产生的数据报文在数据通道和出口处理器中的数据总量,可以避免出口处理器对数据通产生链路反压。具体的,可以当数据产生器生成端口X的第一数据报文,在数据产生器向数据通道发送该第一数据报文时,可以先判断计数器当前的计数数值是否小于预设的计数阈值,并在判断得到计数器的计数数值小于预设的计数阈值时,再执行以下步骤,若判断得到的结果为计数器的计数数值不小于计数阈值,此时便可以禁止发送该端口的数据报文,以此来避免出口处理器由于数据量过多对数据通道产生链路反压。
需要说明的是,对于数据产生器中的N个端口分别对应的计数器可以设置相同的计数阈值,也可以根据实际的情况对不同端口的计数器设置不同的计数阈值,且每个端口对应的计数器的计数阈值的具体值可根据实际情况来设定,本发明实施例在此对数据产生器中不同端口对应的计数器的计数阈值不作限制。
203、数据产生器通过端口X向数据通道发送包含第一标志位的第一数据报文,以便数据通道将第一数据报文发送至出口处理器。
其中,当数据产生器判断得到端口X对应的计数器的计数数值小于计数阈值之后,数据产生器可以通过端口X向数据通道发送包含第一标志位的第一数据报文,以便数据通过将包含第一标志位的第一数据报文发送至出口处理器。例如,可以在数据产生器中设置1比特的标志位,还可以将标志位的初始值设置为0,在数据产生器向数据通道发送第一数据报文时,在第一数据报文前添加1比特的标志位。
204、数据产生器根据第一数据报文的报文长度信息增加计数器的计数数值。
其中,当数据产生器向数据通道发送包含第一标志位的第一数据报文之后,数据产生器可以按照第一数据报文的报文长度信息对端口X对应的计数器的计数数值进行相应的增加。
205、当定时器的定时时间等于时间阈值时,数据产生器将计数器的计数数值设置为初始值,将定时器的定时时间清零,并重新开始计时。
其中,为了避免数据报文在从数据产生器到出口处理器发送的过程中,由于软失效等原因使得报文丢失或者报文长度信息发生错误,导致计数器的计数数值出现错误的情况发生,在本发明实施例中设置一个定时器,并且在定时器的定时时间等于时间阈值时,数据产生器自动将计数器的计数数值设置为初始值,并将定时器的定时时间清零,重新开始计时。定时器的定时时间可以根据实际的异常概率进行设定,例如通过软失效率计算出的错误出现的概率可能是1次/1年,那么可以将定时器的定时时间设置为1月或2月,以保证能够及时清理计数器的累计错误。
206、数据产生器通过端口X向数据通道发送包含第二标志位的第二数据报文,以便数据通道将第二数据报文发送至出口处理器。
其中,当数据产生器在定时时间等于时间阈值,将计数器的计数数值设置为初始值之后,若数据产生器中的端口X需要发送数据报文时,数据产生器通过端口X向数据通道发送包含第二标志位的第二数据报文,以便数据通道将第二数据报文发送至出口处理器,其中第二标志位与第一标志位不同。例如,若在将计数器的计数数值重新设置为初始值之前,数据产生器发送的第一数据报文的第一标志位为0,那么在将计数器的计数数值进行重设之后,便可以在第二数据报文中采用与第一标志位不同的标志位作为的第二标志位,例如,第二标志位可以为1。
可选的,在数据产生器将计数器的计数数值设置为初始值之后,若数据产生器需要通过端口X发送数据报文,可以先判断端口X对应的计数器的计数数值是否小于计数阈值,并计数器的计数数值小于计数阈值时,再执行步骤206。
需要说明的是,在本发明实施例中,第一标志位和第二标志位只需不同便可,本发明实施例对第一标志位和第二标识位的具体形式不作限制。
207、数据产生器根据第二数据报文的报文长度信息增加计数器的计数数值。
其中,当数据产生器向数据通道发送包含第二标志位的第二数据报文之后,数据产生器便可以将通道X对应的计数器的计数数值根据第二数据报文的报文长度信息进行相应的增加。
208、数据产生器接收出口处理器发送的流控信息。
其中,为了保证计数器能够正确的统计数据通道和出口处理器中的数据总量,就需要从数据产生器发出的数据能够从出口处理器得到反馈,当出口处理器接收到数据通道发送的数据报文时,出口处理器需要向数据产生器发送流控信息,该流控信息需要包括出口处理器接收到的数据报文的报文长度信息和该数据报文包含的标志位,此时数据产生器便可以接收到出口处理器发送的流控信息。具体的:当出口处理器接收到数据通道发送的第一数据报文时,出口处理器向数据产生器发送的流控信息需要包括第一数据报文的报文长度信息和第一标志位,当出口处理器接收到数据通道发送的第二数据报文时,出口处理器向数据产生器发送的流控信息需要包括第二数据报文的报文长度信息和第二标志位。
209、当流控信息包括第二标志位时,数据产生器根据流控信息中的第二数据报文的报文长度信息减少计数器的计数数值。
其中,当数据产生器接收到出口处理器发送的流控信息时,可以先判断流控信息中包含的标志位的信息,当流控信息中包含的为第二标志位时,表明出口处理器接收到的数据报文为计数器重设计数数值后发送的数据报文,即计数器的当前的计数数值中包含出口处理器接收到的数据报文的报文长度,因此,数据产生器则需要根据流控信息中包含的第二数据报文的长度信息相应的减少计数器的计数数值。
210、当流控信息包括第一标志位时,数据产生器保持计数器的计数数值不变。
其中,当数据产生器判断得到流控信息中包含的为第一标志位时,则说明出口处理器接收到的数据为计数器重设计数数值之前数据产生器发出的数据报文,因此当流控信息包括第一标志位时,数据产生器需要保持计数器的计数数值不变,以保证计数器计数的准确性。
本发明实施例提供的数据发送方法,向数据通道发送包含第一标志位的第一数据报文,根据预设的时间阈值将计数器的计数数值设置为初始值,在将计数器进行重设之后,向数据通道发送包含与第一标志位不同的第二标志位的第二数据报文,并当接收到出口处理器发送的流控信息,在判断得到流控信息包括第二标志位时,根据流控信息中的第二数据报文的报文长度信息减少计数器的计数数值,通过在数据报文中添加不同的标志位来将计数器进行重设前后的数据报文进行区分,解决了主动流控机制中通过软件定时将计数器清零过程中造成的数据断流问题。
并且,通过在数据处理器中设置定时器定时的将计数器进行自动重新设置,减少了软件的处理开销。
本发明另一实施例提供一种数据产生器,该数据产生器包含N个端口,每个端口设置一个计数器,如图3所示,该数据产生器包括:第一发送单元30、第一增加单元31、设置单元32、第二发送单元33、第二增加单元34、接收单元35、减少单元36。
第一发送单元30,用于通过端口X向数据通道发送第一数据报文,以便所述数据通道将所述第一数据报文发送至出口处理器;其中,所述第一数据报文包含第一标志位,所述端口X为所述N个端口中的任意端口。
第一增加单元31,用于根据所述第一数据报文的报文长度信息增加所述端口X对应的计数器的计数数值。
设置单元32,用于根据预设的时间阈值将所述计数器的计数数值设置为初始值。
第二发送单元33,用于通过所述端口X向所述数据通道发送第二数据报文,以便所述数据通道将所述第二数据报文发送至所述出口处理器;其中,所述第二数据报文包含第二标志位,所述第二标志位与所述第一标志位不同。
第二增加单元34,用于根据所述第二数据报文的报文长度信息增加所述计数器的计数数值。
接收单元35,用于接收所述出口处理器发送的流控信息;其中,当所述出口处理器接收到所述第一数据报文时,所述流控信息包括所述第一数据报文的报文长度信息和所述第一标志位,或,当所述出口处理器接收到所述第二数据报文,所述流控信息包括所述第二数据报文的报文长度信息和所述第二标志位。
减少单元36,用于当所述流控信息包括所述第二标志位时,根据所述流控信息中的所述第二数据报文的报文长度信息减少所述计数器的计数数值。
进一步的,如图4所示,该数据产生器还可以包括:保持单元37。
保持单元37,用于当所述流控信息包括所述第一标志位时,保持所述计数器的计数数值不变。
进一步的,该数据产生器还可以包括:生成单元38、判断单元39。
生成单元38,用于在所述第一发送单元30通过端口X向数据通道发送第一数据报文之前,生成所述端口X的所述第一数据报文。
判断单元39,用于判断所述计数器的计数数值小于预设的计数阈值。
进一步的,该设置单元32可以包括:设置模块321、清零模块322。
设置模块321,用于当定时器的定时时间等于所述时间阈值时,将所述计数器的计数数值设置为所述初始值。
清零模块322,用于将所述定时器的定时时间清零,并重新开始计时。
本发明实施例提供的数据产生器,向数据通道发送包含第一标志位的第一数据报文,根据预设的时间阈值将计数器的计数数值设置为初始值,在将计数器进行重设之后,向数据通道发送包含与第一标志位不同的第二标志位的第二数据报文,并当接收到出口处理器发送的流控信息,在判断得到流控信息包括第二标志位时,根据流控信息中的第二数据报文的报文长度信息减少计数器的计数数值,通过在数据报文中添加不同的标志位来将计数器进行重设前后的数据报文进行区分,解决了主动流控机制中通过软件定时将计数器清零过程中造成的数据断流问题。
并且,通过在数据处理器中设置定时器定时的将计数器进行自动重新设置,减少了软件的处理开销。
本发明另一实施例提供一种数据产生器,所述数据产生器包含N个端口,每个端口设置一个计数器,如图5所示,所述数据产生器包括:至少一个处理器41、存储器42、通信接口43和总线44,该至少一个处理器41、存储器42和通信接口43通过总线44连接并完成相互问的通信,其中:
所述总线44可以是工业标准体系结构(Industry Standard Architecture,ISA)总线、外部设备互连(Peripheral Component Interconnect,PCI)总线或扩展工业标准体系结构(Extended Industry Standard Architecture,EISA)总线等。该总线44可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
所述存储器42用于存储可执行程序代码,该程序代码包括计算机操作指令。存储器42可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
所述处理器41可能是一个中央处理器(Central Processing Unit,CPU),或者是特定集成电路(Application Specific Integrated Circuit,ASIC),或者是被配置成实施本发明实施例的一个或多个集成电路。
所述通信接口43,主要用于实现本实施例的设备之间的通信。
所述处理器41,用于通过端口X向数据通道发送第一数据报文,以便所述数据通道将所述第一数据报文发送至出口处理器;其中,所述第一数据报文包含第一标志位,所述端口X为所述N个端口中的任意端口;根据所述第一数据报文的报文长度信息增加所述端口X对应的计数器的计数数值;根据预设的时间阈值将所述计数器的计数数值设置为初始值;通过所述端口X向所述数据通道发送第二数据报文,以便所述数据通道将所述第二数据报文发送至所述出口处理器;其中,所述第二数据报文包含第二标志位,所述第二标志位与所述第一标志位不同;根据所述第二数据报文的报文长度信息增加所述计数器的计数数值;接收所述出口处理器发送的流控信息;其中,当所述出口处理器接收到所述第一数据报文时,所述流控信息包括所述第一数据报文的报文长度信息和所述第一标志位,或,当所述出口处理器接收到所述第二数据报文,所述流控信息包括所述第二数据报文的报文长度信息和所述第二标志位;当所述流控信息包括所述第二标志位时,根据所述流控信息中的所述第二数据报文的报文长度信息减少所述计数器的计数数值。
所述处理器41,还用于当所述流控信息包括所述第一标志位时,保持所述计数器的计数数值不变。
所述处理器41,还用于在所述通过端口X向数据通道发送第一数据报文之前,生成所述端口X的所述第一数据报文;判断所述计数器的计数数值小于预设的计数阈值。
所述处理器41,还用于当定时器的定时时间等于所述时间阈值时,将所述计数器的计数数值设置为所述初始值;将所述定时器的定时时间清零,并重新开始计时。
本发明实施例提供的数据产生器,向数据通道发送包含第一标志位的第一数据报文,根据预设的时间阈值将计数器的计数数值设置为初始值,在将计数器进行重设之后,向数据通道发送包含与第一标志位不同的第二标志位的第二数据报文,并当接收到出口处理器发送的流控信息,在判断得到流控信息包括第二标志位时,根据流控信息中的第二数据报文的报文长度信息减少计数器的计数数值,通过在数据报文中添加不同的标志位来将计数器进行重设前后的数据报文进行区分,解决了主动流控机制中通过软件定时将计数器清零过程中造成的数据断流问题。
并且,通过在数据处理器中设置定时器定时的将计数器进行自动重新设置,减少了软件的处理开销。
本发明另一实施例提供一种主动流控系统,如图6所示,包括:数据产生器51、数据通道52以及出口处理器53。
所述数据产生器51,用于通过端口X向数据通道52发送第一数据报文,以便所述数据通道52将所述第一数据报文发送至出口处理器53;其中,所述第一数据报文包含第一标志位,所述端口X为所述N个端口中的任意端口;根据所述第一数据报文的报文长度信息增加所述端口X对应的计数器的计数数值;根据预设的时间阈值将所述计数器的计数数值设置为初始值;通过所述端口X向所述数据通道52发送第二数据报文,以便所述数据通道52将所述第二数据报文发送至所述出口处理器53;其中,所述第二数据报文包含第二标志位,所述第二标志位与所述第一标志位不同;根据所述第二数据报文的报文长度信息增加所述计数器的计数数值;接收所述出口处理器53发送的流控信息;其中,当所述出口处理器53接收到所述第一数据报文时,所述流控信息包括所述第一数据报文的报文长度信息和所述第一标志位,或,当所述出口处理器53接收到所述第二数据报文,所述流控信息包括所述第二数据报文的报文长度信息和所述第二标志位;当所述流控信息包括所述第二标志位时,根据所述流控信息中的所述第二数据报文的报文长度信息减少所述计数器的计数数值;
所述数据通道52,用于接收所述数据产生器51发送的第一数据报文,并将所述第一数据报文发送至所述出口处理器53,接收所述数据产生器51发送的第二数据报文,并将所述第二数据报文发送至所述出口处理器53;其中,所述第一数据报文包含第一标志位,所述第二数据报文包含第二标志位;
所述出口处理器53,用于接收所述数据通道52发送的所述第一数据报文;接收所述数据通道52发送的所述第二数据报文;当接收到所述第一数据报文,向所述数据产生器51发送包括所述第一数据报文的报文长度信息和所述第一标志位的流控信息,当接收到所述第二数据报文,向所述数据产生器51发送包括所述第二数据报文的报文长度信息和所述第二标志位的流控信息。
本发明实施例提供的主动流控系统,向数据通道发送包含第一标志位的第一数据报文,根据预设的时间阈值将计数器的计数数值设置为初始值,在将计数器进行重设之后,向数据通道发送包含与第一标志位不同的第二标志位的第二数据报文,并当接收到出口处理器发送的流控信息,在判断得到流控信息包括第二标志位时,根据流控信息中的第二数据报文的报文长度信息减少计数器的计数数值,通过在数据报文中添加不同的标志位来将计数器进行重设前后的数据报文进行区分,解决了主动流控机制中通过软件定时将计数器清零过程中造成的数据断流问题。
并且,通过在数据处理器中设置定时器定时的将计数器进行自动重新设置,减少了软件的处理开销。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘,硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (9)
1.一种数据发送方法,应用于数据产生器,所述数据产生器包含N个端口,每个端口设置一个计数器,其特征在于,包括:
所述数据产生器判断端口X对应的计数器的计数数值小于预设的计数阈值;
通过所述端口X向数据通道发送第一数据报文,以便所述数据通道将所述第一数据报文发送至出口处理器;其中,所述第一数据报文包含第一标志位,所述端口X为所述N个端口中的任意端口;
根据所述第一数据报文的报文长度信息增加所述端口X对应的计数器的计数数值;
根据预设的时间阈值将所述计数器的计数数值设置为初始值;
通过所述端口X向所述数据通道发送第二数据报文,以便所述数据通道将所述第二数据报文发送至所述出口处理器;其中,所述第二数据报文包含第二标志位,所述第二标志位与所述第一标志位不同;
根据所述第二数据报文的报文长度信息增加所述计数器的计数数值;
接收所述出口处理器发送的流控信息;其中,当所述出口处理器接收到所述第一数据报文时,所述流控信息包括所述第一数据报文的报文长度信息和所述第一标志位,或,当所述出口处理器接收到所述第二数据报文,所述流控信息包括所述第二数据报文的报文长度信息和所述第二标志位;
当所述流控信息包括所述第二标志位时,根据所述流控信息中的所述第二数据报文的报文长度信息减少所述计数器的计数数值。
2.根据权利要求1所述的数据发送方法,其特征在于,还包括:
当所述流控信息包括所述第一标志位时,保持所述计数器的计数数值不变。
3.根据权利要求1所述的数据发送方法,其特征在于,在所述通过端口X向数据通道发送第一数据报文之前,还包括:
生成所述端口X的所述第一数据报文;
判断所述计数器的计数数值小于预设的计数阈值。
4.根据权利要求1-3中任一权利要求所述的数据发送方法,其特征在于,所述根据预设的时间阈值将所述计数器的计数数值设置为初始值,包括:
当定时器的定时时间等于所述时间阈值时,将所述计数器的计数数值设置为所述初始值;
将所述定时器的定时时间清零,并重新开始计时。
5.一种数据产生器,所述数据产生器包含N个端口,每个端口设置一个计数器,其特征在于,所述数据产生器包括:
第一发送单元,用于通过端口X向数据通道发送第一数据报文,以便所述数据通道将所述第一数据报文发送至出口处理器;其中,所述第一数据报文包含第一标志位,所述端口X为所述N个端口中的任意端口;
第一增加单元,用于根据所述第一数据报文的报文长度信息增加所述端口X对应的计数器的计数数值;
设置单元,用于根据预设的时间阈值将所述计数器的计数数值设置为初始值;
第二发送单元,用于通过所述端口X向所述数据通道发送第二数据报文,以便所述数据通道将所述第二数据报文发送至所述出口处理器;其中,所述第二数据报文包含第二标志位,所述第二标志位与所述第一标志位不同;
第二增加单元,用于根据所述第二数据报文的报文长度信息增加所述计数器的计数数值;
接收单元,用于接收所述出口处理器发送的流控信息;其中,当所述出口处理器接收到所述第一数据报文时,所述流控信息包括所述第一数据报文的报文长度信息和所述第一标志位,或,当所述出口处理器接收到所述第二数据报文,所述流控信息包括所述第二数据报文的报文长度信息和所述第二标志位;
减少单元,用于当所述流控信息包括所述第二标志位时,根据所述流控信息中的所述第二数据报文的报文长度信息减少所述计数器的计数数值;
以及判断所述端口X对应的计数器的计数数值小于预设的计数阈值的单元。
6.根据权利要求5所述的数据产生器,其特征在于,还包括:
保持单元,用于当所述流控信息包括所述第一标志位时,保持所述计数器的计数数值不变。
7.根据权利要求5所述的数据产生器,其特征在于,还包括:
生成单元,用于在所述第一发送单元通过端口X向数据通道发送第一数据报文之前,生成所述端口X的所述第一数据报文;
判断单元,用于判断所述计数器的计数数值小于预设的计数阈值。
8.根据权利要求5-7中任一权利要求所述的数据产生器,其特征在于,所述设置单元,包括:
设置模块,用于当定时器的定时时间等于所述时间阈值时,将所述计数器的计数数值设置为所述初始值;
清零模块,用于将所述定时器的定时时间清零,并重新开始计时。
9.一种主动流控系统,其特征在于,包括:
如权利要求5-8中任一权利要求所述的数据产生器;
数据通道;
以及出口处理器;
所述数据通道,用于接收所述数据产生器发送的第一数据报文,并将所述第一数据报文发送至所述出口处理器,接收所述数据产生器发送的第二数据报文,并将所述第二数据报文发送至所述出口处理器;其中,所述第一数据报文包含第一标志位,所述第二数据报文包含第二标志位;
所述出口处理器,用于接收所述数据通道发送的所述第一数据报文;接收所述数据通道发送的所述第二数据报文;当接收到所述第一数据报文,向所述数据产生器发送包括所述第一数据报文的报文长度信息和所述第一标志位的流控信息,当接收到所述第二数据报文,向所述数据产生器发送包括所述第二数据报文的报文长度信息和所述第二标志位的流控信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310152251.7A CN103259738B (zh) | 2013-04-27 | 2013-04-27 | 一种数据发送方法、数据产生器及主动流控系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310152251.7A CN103259738B (zh) | 2013-04-27 | 2013-04-27 | 一种数据发送方法、数据产生器及主动流控系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103259738A CN103259738A (zh) | 2013-08-21 |
CN103259738B true CN103259738B (zh) | 2017-06-06 |
Family
ID=48963446
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310152251.7A Active CN103259738B (zh) | 2013-04-27 | 2013-04-27 | 一种数据发送方法、数据产生器及主动流控系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103259738B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114827033B (zh) * | 2022-04-15 | 2024-04-19 | 咪咕文化科技有限公司 | 数据流控方法、装置、设备与计算机可读存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1917478A (zh) * | 2006-09-14 | 2007-02-21 | 杭州华为三康技术有限公司 | 转发报文的处理方法及处理模块 |
CN101067804A (zh) * | 2007-05-29 | 2007-11-07 | 山东大学 | 一种高速可配置扩展spi总线及其工作方法 |
CN101778113A (zh) * | 2010-01-25 | 2010-07-14 | 福建星网锐捷网络有限公司 | 组播网中rp状态检测方法、装置、rp装置和组播系统 |
CN102647351A (zh) * | 2012-04-01 | 2012-08-22 | 飞天诚信科技股份有限公司 | 一种处理xml报文的方法和装置 |
-
2013
- 2013-04-27 CN CN201310152251.7A patent/CN103259738B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1917478A (zh) * | 2006-09-14 | 2007-02-21 | 杭州华为三康技术有限公司 | 转发报文的处理方法及处理模块 |
CN101067804A (zh) * | 2007-05-29 | 2007-11-07 | 山东大学 | 一种高速可配置扩展spi总线及其工作方法 |
CN101778113A (zh) * | 2010-01-25 | 2010-07-14 | 福建星网锐捷网络有限公司 | 组播网中rp状态检测方法、装置、rp装置和组播系统 |
CN102647351A (zh) * | 2012-04-01 | 2012-08-22 | 飞天诚信科技股份有限公司 | 一种处理xml报文的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN103259738A (zh) | 2013-08-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103326953B (zh) | 一种基于令牌桶的流量限制方法和装置 | |
EP3128704B1 (en) | Method and apparatus for limiting rate by means of token bucket, and computer storage medium | |
CN101404556B (zh) | 一线总线的通讯方法 | |
CN103973406B (zh) | 一种控制器局域网总线的提速方法 | |
US20210211379A1 (en) | Method and System for Counting Quantity of Active Flows and Network Device | |
CN105527564A (zh) | Fpga内部功能自诊断方法与系统 | |
CN106453126A (zh) | 一种虚拟机流量控制方法及装置 | |
CN101951389A (zh) | 信息通道流量控制的方法和装置 | |
CN108206781A (zh) | 选择转发路径的方法和设备 | |
CN104660718B (zh) | 一种消息推送方法、装置及推送服务器 | |
WO2020238649A1 (zh) | 用于控制通讯补偿的方法及装置、空调 | |
CN108304335A (zh) | 一种通过dma接收串口不定长报文的方法 | |
CN102984081A (zh) | 网络设备中报文处理方法及系统 | |
CN108243117A (zh) | 一种流量监控方法、装置及电子设备 | |
CN103259738B (zh) | 一种数据发送方法、数据产生器及主动流控系统 | |
EP1059774A3 (en) | Method and apparatus for queue modeling | |
US11330114B2 (en) | Quota management method and apparatus | |
CN102710502B (zh) | 一种基于消耗时间的网络限速方法及装置 | |
CN107734475A (zh) | 基于短信链路的短信发送方法及业务平台 | |
CN111698176A (zh) | 数据传输方法、装置、电子设备和计算机可读存储介质 | |
CN111541959A (zh) | 带宽调整方法及相关装置、设备、计算机可读存储介质 | |
CN104811998B (zh) | 一种控制传输控制协议窗口调整的方法和无线接入点 | |
CN112511323B (zh) | 处理网络拥塞的方法和相关装置 | |
CN112013506B (zh) | 用于通讯检测的方法及装置、空调 | |
CN106385384A (zh) | 一种报文发送方法及网络设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |