CN110971535B - 一种通信拥塞控制方法及装置、设备和存储介质 - Google Patents
一种通信拥塞控制方法及装置、设备和存储介质 Download PDFInfo
- Publication number
- CN110971535B CN110971535B CN202010138318.1A CN202010138318A CN110971535B CN 110971535 B CN110971535 B CN 110971535B CN 202010138318 A CN202010138318 A CN 202010138318A CN 110971535 B CN110971535 B CN 110971535B
- Authority
- CN
- China
- Prior art keywords
- request message
- timer
- client
- time
- timestamp
- 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
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/12—Avoiding congestion; Recovering from congestion
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1829—Arrangements specially adapted for the receiver end
- H04L1/1848—Time-out mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1867—Arrangements specially adapted for the transmitter end
- H04L1/188—Time-out mechanisms
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提供一种拥塞控制方法及装置、设备和存储介质。一种通信拥塞控制方法包括:客户端发送请求消息,同时启动设置于客户端的定时器,所述请求消息包含时间戳,所述时间戳为期望收到响应消息的最晚时间,所述时间戳与发送所述请求消息的时刻之间的时间间隔是所述定时器触发的时间间隔的至少1倍;如果客户端收到针对所述请求消息的响应消息,则删除所述定时器;如果所述定时器被触发,则客户端重新发送不变的所述请求消息并重新启动定时器;如果当前时间已到所述时间戳表示的时间,则删除所述定时器。根据本申请实施例的技术方案能够减轻拥塞。
Description
技术领域
本申请涉及通信领域,具体而言,涉及一种通信拥塞控制方法及装置、设备和存储介质。
背景技术
在通讯系统中,特别是分布式的系统中,一般通过在各个功能模块或组件之间发送消息来进行通信。功能模块或组件之间的消息通信通常采用请求-响应方式,即客户端发送请求消息,服务端接收请求消息,处理请求,然后发送响应消息给客户端。
一般地,服务端接收和发送消息的速度非常快,但处理消息的具体请求内容时,则有可能很慢,特别当处理需要访问一些慢速设备或调用其他一些较耗费时间的服务时,比如访问数据库、调用一个需要大量计算的服务。当某一时间段,服务端收到请求消息的速度比处理速度快时,请求消息就会在服务端堆积,这种情况一般叫做通信拥塞。
在所述背景技术部分公开的上述信息仅用于加强对本申请的背景的理解,因此它可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本申请旨在提供一种通信拥塞控制方法及装置、设备和存储介质,可以有效的避免消息通信拥塞,或在拥塞发生时,有效地调度消息的处理,从而大大降低拥塞持续的时间,保证系统的正常工作和处理性能。
本申请的其该用户特性和优点将通过下面的详细描述变得显然,或部分地通过本申请的实践而习得。
根据本申请的第一方面,本申请提供一种通信拥塞控制方法,包括:
客户端发送请求消息,同时启动设置于客户端的定时器,所述请求消息包含时间戳,所述时间戳为期望收到响应消息的最晚时间,所述时间戳与发送所述请求消息的时刻之间的时间间隔是所述定时器触发的时间间隔的至少1倍;如果客户端收到针对所述请求消息的响应消息,则删除所述定时器;如果所述定时器被触发,则客户端重新发送不变的所述请求消息并重新启动定时器;如果当前时间已到所述时间戳表示的时间,则删除所述定时器。
在一个实施例中,所述请求消息、所述响应消息均包括客户端标识、时间戳、标识号和业务内容,其中所述客户端标识唯一标识所述客户端,所述请求消息中的标识号唯一标识所述请求消息,所述响应消息中的标识号唯一标识所述响应消息针对的请求消息。
在一个实施例中,通信拥塞控制方法还包括:判断收到的响应消息的客户端标识和标识号是否与所述请求消息完全一致,如果完全一致,则收到的响应消息是针对所述请求消息的响应消息。
根据本申请的第二方面,本申请提供一种通信拥塞控制方法,包括:
客户端发送请求消息,同时启动设置于所述客户端的定时器,所述请求消息包含时间戳,所述时间戳为期望收到响应消息的最晚时间,所述时间戳与发送所述请求消息的时刻之间的时间间隔是所述定时器触发的时间间隔的至少1倍;服务器接收所述请求消息;服务器根据所述时间戳确定是否对所述请求消息进行响应;如果所述定时器被触发,则客户端重新发送不变的所述请求消息并重新启动定时器;如果客户端收到针对所述请求消息的响应消息,则客户端删除所述定时器;如果当前时间已到所述时间戳表示的时间,则客户端删除所述定时器。
在一个实施例中,所述根据所述时间戳确定是否对所述请求消息进行响应包括:判断当前时间或当前时间与预测的处理时间之和是否早于所述时间戳表示的时间,如果早于所述时间戳表示的时间,针对所述请求消息生成响应消息,否则,不对所述请求消息进行任何处理。
在一个实施例中,所述根据所述时间戳确定是否对所述请求消息进行响应包括:判断当前时间或当前时间与预测的处理时间及预测的发送响应的通信时间之和是否早于所述时间戳表示的时间,如果早于所述时间戳表示的时间,针对所述请求消息生成响应消息,否则,不对所述请求消息进行任何处理。
在一个实施例中,针对所述请求消息生成响应消息之后,发送所述响应消息。
在一个实施例中,所述生成响应消息包括:从缓存表中查找是否存在对应所述请求消息的响应消息,如果存在,则所述响应消息即为生成的响应消息,否则,针对所述请求消息进行处理,生成响应消息,其中,所述缓存表存储有已经发送的响应消息的至少一部分。
在一个实施例中,所述请求消息、所述响应消息均包括客户端标识、时间戳、标识号和业务内容,其中所述客户端标识唯一标识所述客户端,所述请求消息中的标识号唯一标识所述请求消息,所述响应消息中的标识号唯一标识所述响应消息针对的请求消息。
在一个实施例中,通信拥塞控制方法还包括针对所述请求消息进行处理并生成所述响应消息之后,将所述响应消息添加到所述缓存表中。
在一个实施例中,所述接收请求消息包括:设置缓存器,将接收到的请求消息放到缓存器中,从缓存器中取出当前要处理的请求消息。
根据本申请的第三方面,本申请提供一种通信拥塞控制装置,包括:
发送模块,用于客户端发送请求消息,所述请求消息包含时间戳,所述时间戳为期望收到响应消息的最晚时间;定时器模块,所述定时器模块设置于客户端且在所述请求消息发送的同时启动定时器,所述时间戳与发送所述请求消息的时刻之间的时间间隔是所述定时器触发的时间间隔的至少1倍;第一处理模块,如果客户端收到的响应消息是针对所述请求消息的消息或者当前时间已到所述时间戳表示的时间,使所述定时器模块删除所述定时器; 第二处理模块,如果所述定时器模块被触发,使所述发送模块重新发送不变的所述请求消息并使所述定时器模块重新启动定时器。
根据本申请的第四方面,本申请提供一种通信拥塞控制装置,包括:发送模块,用于发送请求消息,所述请求消息包含时间戳,所述时间戳为期望收到响应消息的最晚时间;定时器模块,所述定时器模块在所述请求消息发送的同时启动定时器,所述时间戳与发送所述请求消息的时刻之间的时间间隔是所述定时器触发的时间间隔的至少1倍;第一处理模块,如果收到的响应消息是针对所述请求消息的消息或者当前时间已到所述时间戳表示的时间,使所述定时器模块删除定时器; 第二处理模块,如果所述定时器模块被触发,使所述发送模块重新发送不变的所述请求消息并使所述定时器模块重新启动定时器; 其中,所述发送模块、定时器模块、第一处理模块、第二处理模块配置于客户端;接收模块,用于接收所述请求消息;处理模块,用于根据所述时间戳确定是否对所述请求消息进行响应,其中,所述接收模块、处理模块配置于服务器。
根据本申请的第五方面,本申请提供一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如前述通信拥塞控制方法中任一所述的方法。
根据本申请的第六方面,本申请提供一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如前述通信拥塞控制方法中任一所述的方法。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本申请。
附图说明
通过参照附图详细描述其示例实施例,本申请的上述和其它目标、特征及优点将变得更加显而易见。
图1为本申请的通信系统示意图;
图2为根据本申请第一个方面的第一实施例的客户端流程图;
图3为根据本申请第一个方面的第二实施例的客户端流程图;
图4为根据本申请第一个方面的第三实施例的客户端流程图;
图5为根据本申请第二个方面的第一实施例的服务器流程图;
图6为根据本申请第二个方面的第二实施例的服务器流程图;
图7为根据本申请本申请一个实施例的客户端与服务器交互的示意图;
图8为根据本申请第一个方面的通信拥塞控制装置框图;
图9为根据本申请第二个方面的通信拥塞控制装置框图;
图10为根据本申请根据本申请实施例的电子设备。
具体实施方式
现在将参考附图更全面地描述示例实施例。然而,示例实施例能够以多种形式实施,且不应被理解为限于在此阐述的实施例;相反,提供这些实施例使得本申请将全面和完整,并将示例实施例的构思全面地传达给本领域的技术人员。在图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本申请的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本申请的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本申请的各方面。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
应理解,虽然本文中可能使用术语第一、第二、第三等来描述各种组件,但这些组件不应受这些术语限制。这些术语乃用以区分一组件与另一组件。因此,下文论述的第一组件可称为第二组件而不偏离本申请概念的教示。如本文中所使用,术语“及/或”包括相关联的列出项目中的任一个及一或多者的所有组合。
本领域技术人员可以理解,附图只是示例实施例的示意图,附图中的模块或流程并不一定是实施本申请所必须的,因此不能用于限制本申请的保护范围。
图1为本申请的通信系统示意图。如图1所示,通信系统由多个客户端110和服务端120构成,其中每一个客户端均与服务端通信连接。服务端为每一个客户端分配不同的标识,通过身份认证实现握手,继而发起信息交互。服务端例如可以是服务器。客户端例如可以是电脑、手机等终端设备,也可以是需要从服务端获取信息的另一台服务器。
针对现有技术存在的通信拥塞问题,本申请人发现,除了上述服务端处理速度慢之外,还存在以下原因:1、客户端120大量的超时重传导致服务端消息的处理时间加大;2、服务端110响应消息超过客户端期望的最晚接收时间,客户端已经不接受响应消息,服务端还在做无用功。
经过研究,本申请人发现,可以在服务端和客户端之间传递的消息中增加时间戳字段,该字段提供客户端期望接受的响应消息的最晚收到时间,如此,当服务端要处理某个请求消息时,若当前时间已经超过了时间戳所表示的时间,服务端不再对该请求消息进行处理,从而避免服务端做无用功;另外,对于客户端来说,当超过时间戳所表示的时间,不再进行消息重传,减少了超时重传的次数。
下面借助图2-7各个实施例对本申请技术构思做进一步说明。
图2为根据本申请第一个方面的第一实施例的客户端流程图。在S110中,客户端10向服务端20发送请求消息。根据示例实施例,请求消息至少包括以下四个字段:
客户端标识:用于识别客户端,每一客户端具有唯一的客户端标识;
时间戳:客户端期望接受的响应消息的最晚收到时间;
标识号:用于识别请求消息,每一请求消息具有唯一的标识号;
其他内容:包括业务内容。
客户端在发送请求消息的同时,启动设置于客户端的定时器,并等待服务端的响应。根据示例实施例,所述时间戳与发送所述请求消息的时刻之间的时间间隔是所述定时器触发的时间间隔的至少1倍
在S120中,客户端10判断是否收到针对该请求消息的响应消息,如果判断结果为“是”,则进行到S140,客户端删除定时器,客户端此次消息请求处理结束。
客户端收到的响应消息也至少包括如上4个字段。
根据一些实施例,客户端的上述判断通过如下方式进行:确认该响应消息的客户端标识和标识号是否和该请求消息完全一致。如果是,则删除定时器;否则,再次发送相同的请求消息,并重新触发定时器。
在S130中,如果定时器到期,则会重新发送不变的请求消息,即超时重传。定时器的触发时间为重传间隔时间,该间隔时间一般比时间戳对应的时间间隔要小。重新发送的请求消息的标识号不会发生任何改变,事实上,该重发的请求消息具有与在前所发送的请求消息完全相同的内容。
在一些实施例中,时间戳与发送请求消息的时刻之间的时间间隔是所述定时器触发的时间间隔的至少1倍。在另一些实施例中,二者的比值为3~20。
图3示出了又一个实施例,客户端10在执行图2所示方法的基础上增加了S150,其中判断当前时间是否已经达到或超过时间戳表示的时间,如果是,则在S140中删除定时器,客户端结束此次消息请求。
可见,通过设置时间戳,在超过客户预期最晚时间,客户端不再消息重传,因此减少了超时重传的次数。
图4示出了本申请又一个实施例的客户端流程图。与图3不同之处在于,图3中,定时器是否触发与响应消息是否收到为并行处理的两个判断,图4中二者为顺序处理。具体的,在S310中,客户端向服务端发送请求消息,同时设置一个定时器。在S320中,判断定时器是否被触发。如果被触发,客户端重新向服务端发送该请求消息;如果定时器未被触发,则进行S330,判断客户端是否接收到响应消息。如果客户端收到针对所述请求消息的响应消息,则进行S340,删除定时器,客户端此次消息请求处理结束。如果客户端尚未收到响应消息,则再次判断定时器是否被触发,如此重复前述步骤。
图5示出了本申请一个实施例的服务器端流程图。
在S210中,服务器20接收客户端10发来的请求消息,该请求消息中包括时间戳字段,服务器读取该字段。在S220中,服务器20根据该时间戳判断是否对该请求进行响应。
在一些实施例中,根据当前时间是否已达或超过该时间戳表示的时间,来判断是否对该请求进行响应。如果判断结果为“是”,则服务器丢弃当前请求消息,并且不对当前请求消息进行任何处理,即不产生响应消息;如果判断结果为“否”,则服务器对请求消息的“业务内容”进行相应处理,并生成响应消息,然后向客户端发送该响应消息。
在一些实施例中,根据当前时间与预测处理该请求的时间之和是否已达/超过该时间戳表示的时间,来判断是否对该请求进行响应。根据判断结果所进行的处理同上,在此不再赘述。
在一些实施例中,根据当前时间与预测处理该请求的时间及预测的发送响应的通信时间之和是否已达/超过该时间戳表示的时间,来判断是否对该请求进行响应。根据判断结果所进行的处理同上,在此不再赘述。
图6示出了本申请又一个实施例的服务端流程图。图6与在前实施例的区别在于:服务端20设置有响应消息缓存表,缓存表中存储有已经发送的响应消息。可以将响应消息的客户端标识和标识号的组合设置为缓存表的索引,以便快速查找。在该实施例中,在S410中,服务器20接收客户端10发来的请求消息,服务器读取该请求消息中的时间戳字段。在S420中,服务器20判断该时间戳是否已达/过期,或者当前时间与预测处理该请求的时间之和是否已达/超过该时间戳。如果判断结果为“否”,则在S480中,丢弃该请求消息。如果判断结果为“是”,在S430中,服务器读取该请求消息的客户端标识和标识号,根据缓存表的索引查找对应该请求消息的响应消息,如果在S440中,在该缓存表中查到对应的响应消息,则在S470直接向客户端发送该响应消息。否则,在S450中,服务器20对请求消息的“业务内容”进行相应处理,并生成响应消息,然后在S460中将新生成的响应消息保存到缓存表中,在S470中向客户端10发送该响应消息。
可见,通过设置响应消息缓存表能够减少服务器20对重复请求的处理时间,大大提高了客户端10与服务器20的交互速度,明显改善通信拥塞状况。
此外,由于服务器20与多个客户端10相连,多个客户端10可能在短时间内同时发来请求消息,或者某个客户端在短时间内发来多个请求消息,为此,在一个实施例中,服务器20设置缓存器,将接收到的、来不及处理的消息按照接收顺序放到该缓存器中,缓存起来。在一些实施例中,服务器20对请求消息的处理也是按照接收请求消息的顺序,即先到的请求消息先被处理。即服务器在处理前先按照顺序从缓存器中取出请求消息,根据该请求消息的时间戳判断是否要对该请求消息进行处理。在一些实施例中,服务器20对请求消息的处理按照调度规则进行,例如先处理高优先级消息,再处理低优先级消息。缓存器中响应消息的数量根据缓存器的容量而定,如果接收的消息数超过缓存空间,则缓存器会丢弃一些消息,例如仅存储最近发送的响应消息。
图7为根据本申请一个实施例的客户端与服务器交互的示意图,右侧为客户端的操作。左侧为服务器的操作。
参考图7,客户端与服务器的交互如下:在S110中,客户端发送请求消息,同时启动设置于所述客户端的定时器,所述请求消息包含时间戳,所述时间戳为期望收到响应消息的最晚时间。根据示例实施例,所述时间戳与发送所述请求消息的时刻之间的时间间隔是所述定时器触发的时间间隔的至少1倍。
在S510中,服务器20接收客户端10发来的请求消息,服务器读取该请求消息中的时间戳字段。在S520中,服务器20判断该时间戳是否已达或过期。在一些实施例中,服务器20判断当前时间与预测处理该请求的时间之和是否超过该时间戳。在一些实施例中,服务器20判断者当前时间与预测的处理时间及预测的发送响应的通信时间之和是否早于所述时间戳表示的时间。同时,客户端进行如下工作:在S120中,如果所述定时器被触发,则客户端重新发送不变的所述请求消息并重新启动定时器;在S130中,如果客户端收到针对所述请求消息的响应消息,则客户端在S140中删除所述定时器。根据示例实施例,如果当前时间已到所述时间戳表示的时间,则客户端删除所述定时器。
在一些实施例中,对于服务器在S520中的判断,如果判断结果为“否”,则在S530中,丢弃该请求消息。如果判断结果为“是”,在S540中,生成并向客户端发送该响应消息。
虚线部分示出了客户端与服务器之间信号的传输:含请求戳的请求消息自客户端发送至服务器,含时间戳的响应消息自服务器发送给客户端。
在一些实施例中,服务器与客户端进行交互时,服务器端的流程如图6所示,在此不再赘述。
在一些实施例中,采用上文所述的缓存器存储接受到的请求消息。服务器在对请求消息进行处理时,从缓存器中取出该请求消息。
可见,在不考虑通信链路异常等情况下,所有进行上述步骤所述的“消息的具体请求内容处理”的消息,都是早于客户端期望收到响应消息的最晚时间的,并且一个请求消息,不管重传多少次,都只会在服务端进行“消息的具体请求内容处理”一次,其他要么因为超时被丢弃,要么在缓存表内,直接快速返回。换句话说,就是服务端做的几乎都是有用功,因此处理性能不会因为消息拥塞而受影响。
应清楚地理解,本申请描述了如何形成和使用特定示例,但本申请不限于这些示例的任何细节。相反,基于本申请公开的内容的教导,这些原理能够应用于许多其它实施例。
本领域技术人员可以理解实现上述实施例的全部或部分步骤被实现为由CPU 执行的计算机程序。在该计算机程序被CPU 执行时,执行本申请提供的上述方法所限定的上述功能。所述的程序可以存储于一种计算机可读存储介质中,该存储介质可以是只读存储器,磁盘或光盘等。
此外,需要注意的是,上述附图仅是根据本申请示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
通过对示例实施例的描述,本领域技术人员易于理解,根据本申请实施例的通信拥塞控制方法至少具有以下优点中的一个或多个。
根据示例实施例,通过采用本申请的技术方案,服务器端对于超过客户端最晚期望时间的请求消息时不再进行处理,减少了服务器的无用功。
根据示例实施例,通过采用本申请的技术方案,客户端对于超过客户端最晚期望时间的请求消息,不再超时重传,减少了对服务器的压力。
根据示例实施例,通过采用本申请的技术方案,通过设置缓存表,对于曾经处理过的请求消息,可以直接调取对应的响应消息,可以明显提高服务器的响应速度。
下面描述本申请的装置实施例,其可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,可参照本申请方法实施例。
图8示出根据一示例性实施例的通信拥塞控制装置的框图。
图8所示装置可以执行前述根据本申请实施例的通信拥塞控制方法。如图8所示,通信拥塞控制装置可包括:发送模块110、定时器模块120、第一处理模块130、第二处理模块140。
发送模块110,用于客户端发送请求消息,请求消息包含时间戳,所述时间戳为期望收到响应消息的最晚时间。所述时间戳与发送所述请求消息的时刻之间的时间间隔是所述定时器触发的时间间隔的至少1倍。
定时器模块120,该模块设置于客户端且在请求消息发送的同时启动定时器。
第一处理模块130,如果客户端收到的响应消息是针对所述请求消息的消息或者当前时间已到所述时间戳表示的时间,第一处理模块130使定时器模块120处于禁用状态(disabled)或删除定时器。
第二处理模块140,如果所述定时器模块被触发,第一处理模块130使所述发送模块110重新发送请求消息并使所述定时器模块120重新启动定时器。
所述装置执行与前面提供的方法类似的功能,其他功能可参见前面的描述,此处不再赘述。
图9示出根据另一示例性实施例的客户端通信拥塞控制装置的框图。
图9所示装置可以执行前述根据本申请实施例的服务器端通信拥塞控制方法。如图9所示,通信拥塞控制装置可包括:接收模块410、处理模块420。
接收模块410,用于接收请求消息,所述请求消息包含时间戳,所述时间戳为期望收到响应消息的最晚时间.
处理模块420,用于根据所述时间戳确定是否对所述请求消息进行响应。
所述装置执行与前面提供的方法类似的功能,其他功能可参见前面的描述,此处不再赘述。
图10示出根据一示例性实施例的一种电子设备的框图。
下面参照图10来描述根据本申请的这种实施方式的电子设备200。图10显示的电子设备200仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图10所示,电子设备200以通用计算设备的形式表现。电子设备200的组件可以包括但不限于:至少一个处理单元210、至少一个存储单元220、连接不同系统组件(包括存储单元220和处理单元210)的总线230、显示单元240等。
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元210执行,使得所述处理单元210执行本说明书描述的根据本申请各种示例性实施方式的方法。例如,所述处理单元210可以执行如图3-7中所示的任一种方法。
所述存储单元220可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)2201和/或高速缓存存储单元2202,还可以进一步包括只读存储单元(ROM)2203。
所述存储单元220还可以包括具有一组(至少一个)程序模块2205的程序/实用工具2204,这样的程序模块2205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线230可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备200也可以与一个或多个外部设备300(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备200交互的设备通信,和/或与使得该电子设备200能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口250进行。并且,电子设备200还可以通过网络适配器260与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。网络适配器260可以通过总线230与电子设备200的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备200使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。根据本申请实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、或者网络设备等)执行根据本申请实施方式的上述方法。
所述软件产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该计算机可读介质实现前述功能。
本领域技术人员可以理解上述各模块可以按照实施例的描述分布于装置中,也可以进行相应变化唯一不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
通过以上的实施例的描述,本领域的技术人员易于理解,这里描述的示例实施例可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本申请实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、移动终端、或者网络设备等)执行根据本申请实施例的方法。
以上具体地示出和描述了本申请的示例性实施例。应可理解的是,本申请不限于这里描述的详细结构、设置方式或实现方法;相反,本申请意图涵盖包含在所附权利要求的精神和范围内的各种修改和等效设置。
本领域技术人员可以理解,附图只是示例实施例的示意图,附图中的模块或流程并不一定是实施本申请所必须的,因此不能用于限制本申请的保护范围。
Claims (15)
1.一种通信拥塞控制方法,包括:
客户端发送请求消息,同时启动设置于客户端的定时器,所述请求消息包含时间戳,所述时间戳为期望收到响应消息的最晚时间,所述时间戳与发送所述请求消息的时刻之间的时间间隔是所述定时器触发的时间间隔的3至20倍;
如果客户端收到针对所述请求消息的响应消息,则删除所述定时器;
如果所述定时器被触发,则客户端重新发送不变的所述请求消息并重新启动定时器;
如果当前时间已到所述时间戳表示的时间,则删除所述定时器。
2.根据权利要求1所述的方法,其中所述请求消息、所述响应消息均包括客户端标识、时间戳、标识号和业务内容,其中所述客户端标识唯一标识所述客户端,所述请求消息中的标识号唯一标识所述请求消息,所述响应消息中的标识号唯一标识所述响应消息针对的请求消息。
3.根据权利要求2所述的方法,还包括:客户端判断收到的响应消息的客户端标识和标识号是否与所述请求消息完全一致,如果完全一致,则收到的响应消息是针对所述请求消息的响应消息。
4.一种通信拥塞控制方法,包括:
客户端发送请求消息,同时启动设置于所述客户端的定时器,所述请求消息包含时间戳,所述时间戳为期望收到响应消息的最晚时间,所述时间戳与发送所述请求消息的时刻之间的时间间隔是所述定时器触发的时间间隔的3至20倍;
服务器接收所述请求消息;
服务器根据所述时间戳确定是否对所述请求消息进行响应;
如果所述定时器被触发,则客户端重新发送不变的所述请求消息并重新启动定时器;
如果客户端收到针对所述请求消息的响应消息,则客户端删除所述定时器;
如果当前时间已到所述时间戳表示的时间,则客户端删除所述定时器。
5.根据权利要求4所述的方法,所述根据所述时间戳确定是否对所述请求消息进行响应包括:
判断当前时间或当前时间与预测的处理时间之和是否早于所述时间戳表示的时间,如果早于所述时间戳表示的时间,针对所述请求消息生成响应消息,否则,不对所述请求消息进行任何处理。
6.根据权利要求4所述的方法,所述根据所述时间戳确定是否对所述请求消息进行响应包括:
判断当前时间或当前时间与预测的处理时间及预测的发送响应的通信时间之和是否早于所述时间戳表示的时间,如果早于所述时间戳表示的时间,针对所述请求消息生成响应消息,否则,不对所述请求消息进行任何处理。
7.根据权利要求5或6所述的方法,针对所述请求消息生成响应消息之后,发送所述响应消息。
8.根据权利要求5或6所述的方法,其中所述生成响应消息包括:
从缓存表中查找是否存在对应所述请求消息的响应消息,如果存在,则所述响应消息即为生成的响应消息,否则,针对所述请求消息进行处理,生成响应消息,其中,所述缓存表存储有已经发送的响应消息的至少一部分。
9.根据权利要求5或6所述的方法,其中所述请求消息、所述响应消息均包括客户端标识、时间戳、标识号和业务内容,其中所述客户端标识唯一标识所述客户端,所述请求消息中的标识号唯一标识所述请求消息,所述响应消息中的标识号唯一标识所述响应消息针对的请求消息。
10.根据权利要求8所述的方法,其中针对所述请求消息进行处理并生成所述响应消息之后,将所述响应消息添加到所述缓存表中。
11.根据权利要求4所述的方法,所述接收请求消息包括:设置缓存器,将接收到的请求消息放到所述缓存器中,从所述缓存器中取出当前要处理的请求消息。
12.一种通信拥塞控制装置,包括:
发送模块,用于客户端发送请求消息,所述请求消息包含时间戳,所述时间戳为期望收到响应消息的最晚时间;
定时器模块,所述定时器模块设置于客户端且在所述请求消息发送的同时启动定时器,所述时间戳与发送所述请求消息的时刻之间的时间间隔是所述定时器触发的时间间隔的3至20倍;
第一处理模块,如果客户端收到的响应消息是针对所述请求消息的消息或者当前时间已到所述时间戳表示的时间,使所述定时器模块删除所述定时器;
第二处理模块,如果所述定时器模块被触发,使所述发送模块重新发送不变的所述请求消息并使所述定时器模块重新启动定时器。
13.一种通信拥塞控制装置,包括:
发送模块,用于发送请求消息,所述请求消息包含时间戳,所述时间戳为期望收到响应消息的最晚时间;
定时器模块,所述定时器模块在所述请求消息发送的同时启动定时器,所述时间戳与发送所述请求消息的时刻之间的时间间隔是所述定时器触发的时间间隔的3至20倍;
第一处理模块,如果收到的响应消息是针对所述请求消息的消息或者当前时间已到所述时间戳表示的时间,使所述定时器模块删除定时器;
第二处理模块,如果所述定时器模块被触发,使所述发送模块重新发送不变的所述请求消息并使所述定时器模块重新启动定时器;
其中,所述发送模块、定时器模块、第一处理模块、第二处理模块配置于客户端;
接收模块,用于接收所述请求消息;
处理模块,用于根据所述时间戳确定是否对所述请求消息进行响应,
其中,所述接收模块、处理模块配置于服务器。
14.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-11中任一所述的方法。
15.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-11中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010138318.1A CN110971535B (zh) | 2020-03-03 | 2020-03-03 | 一种通信拥塞控制方法及装置、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010138318.1A CN110971535B (zh) | 2020-03-03 | 2020-03-03 | 一种通信拥塞控制方法及装置、设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110971535A CN110971535A (zh) | 2020-04-07 |
CN110971535B true CN110971535B (zh) | 2020-07-14 |
Family
ID=70038225
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010138318.1A Active CN110971535B (zh) | 2020-03-03 | 2020-03-03 | 一种通信拥塞控制方法及装置、设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110971535B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112910983A (zh) * | 2021-01-27 | 2021-06-04 | 北京百度网讯科技有限公司 | 消息推送方法、装置、设备和介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101009537A (zh) * | 2006-01-26 | 2007-08-01 | 华为技术有限公司 | 一种数据重传方法及系统 |
CN105530076A (zh) * | 2014-10-01 | 2016-04-27 | 深圳市万益图科技有限公司 | 数据丢包重传优化方法 |
CN107872396A (zh) * | 2016-09-26 | 2018-04-03 | 华为技术有限公司 | 具有超时控制的通信方法、处理设备、终端设备和服务器 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4201550B2 (ja) * | 2002-08-30 | 2008-12-24 | 富士通株式会社 | 負荷分散装置 |
CN106708661B (zh) * | 2016-12-09 | 2020-05-19 | 浙江宇视科技有限公司 | 一种广域网环境中的数据备份方法及装置 |
-
2020
- 2020-03-03 CN CN202010138318.1A patent/CN110971535B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101009537A (zh) * | 2006-01-26 | 2007-08-01 | 华为技术有限公司 | 一种数据重传方法及系统 |
CN105530076A (zh) * | 2014-10-01 | 2016-04-27 | 深圳市万益图科技有限公司 | 数据丢包重传优化方法 |
CN107872396A (zh) * | 2016-09-26 | 2018-04-03 | 华为技术有限公司 | 具有超时控制的通信方法、处理设备、终端设备和服务器 |
Also Published As
Publication number | Publication date |
---|---|
CN110971535A (zh) | 2020-04-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107872396B (zh) | 具有超时控制的通信方法、处理设备、终端设备和服务器 | |
US6981048B1 (en) | Keep-alive messaging when two applications are running | |
CN110808948B (zh) | 远程过程调用方法、装置及系统 | |
CN109743143B (zh) | 数据的重传方法、装置和计算机可读存储介质 | |
CN114039703B (zh) | 数据传输方法、装置、设备和介质 | |
CN109525376B (zh) | 快速重传方法、装置及终端设备 | |
CN111541555A (zh) | 群聊优化方法及相关产品 | |
CN103684707A (zh) | 服务端、用户端消息传输处理方法、消息传输方法及系统 | |
CN108965359B (zh) | 通信方法、通信装置、可读介质和电子设备 | |
CN110971535B (zh) | 一种通信拥塞控制方法及装置、设备和存储介质 | |
CN114338063A (zh) | 消息队列系统、业务处理方法及计算机可读存储介质 | |
CN111124717A (zh) | 消息投递方法、系统及计算机存储介质 | |
CN107786607B (zh) | 一种消息重传方法、消息重传服务器及用户设备 | |
CN104580084A (zh) | 一种分享多媒体文件的方法、终端及系统 | |
CN108718274A (zh) | 一种即时通讯消息的防丢失方法 | |
JP2005045805A (ja) | 移動通信端末機のインターネットサービス同期化方法 | |
CN107566291B (zh) | 组播传输方法、装置、电子设备及存储介质 | |
CN113645578B (zh) | 一种防止信息重复发送方法、装置及存储介质 | |
CN113098978B (zh) | 一种数据传输方法、装置及介质 | |
CN113596105B (zh) | 内容的获取方法、边缘节点及计算机可读存储介质 | |
CN114553944A (zh) | 预警消息推送方法和系统 | |
CN109600452B (zh) | 服务器集群、消息推送方法及相关服务器 | |
CN110166185B (zh) | 音频数据的处理方法、装置、存储介质和处理器 | |
CN112910983A (zh) | 消息推送方法、装置、设备和介质 | |
CN112004161A (zh) | 地址资源的处理方法、装置、终端设备和存储介质 |
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 |