CN109587822A - 信息发送控制方法、信息接收控制方法、装置、存储介质 - Google Patents

信息发送控制方法、信息接收控制方法、装置、存储介质 Download PDF

Info

Publication number
CN109587822A
CN109587822A CN201811526981.8A CN201811526981A CN109587822A CN 109587822 A CN109587822 A CN 109587822A CN 201811526981 A CN201811526981 A CN 201811526981A CN 109587822 A CN109587822 A CN 109587822A
Authority
CN
China
Prior art keywords
information
connection
default
sent
sending
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.)
Granted
Application number
CN201811526981.8A
Other languages
English (en)
Other versions
CN109587822B (zh
Inventor
马全增
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Netease Hangzhou Network Co Ltd
Original Assignee
Netease Hangzhou Network Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Netease Hangzhou Network Co Ltd filed Critical Netease Hangzhou Network Co Ltd
Priority to CN201811526981.8A priority Critical patent/CN109587822B/zh
Publication of CN109587822A publication Critical patent/CN109587822A/zh
Application granted granted Critical
Publication of CN109587822B publication Critical patent/CN109587822B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W76/00Connection management
    • H04W76/10Connection setup

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本公开提供了一种信息发送控制方法及装置、信息接收方法及装置、电子设备、计算机可读存储介质,属于计算机技术领域。该信息发送控制方法包括:根据信息发送节点的标识及信息接收节点的标识生成连接标识,并根据所述连接标识确定多链路中所述连接标识对应的默认链路;通过所述默认链路向所述信息接收节点发送信息;如果通过所述默认链路发送信息异常时,则切换到非默认链路向所述信息接收节点发送信息;如果通过所述非默认链路发送信息达到预设条件,则重新采用所述默认链路向所述信息接收节点发送信息。本公开基于多链路信息转发以及默认链路机制,可以提高信息转发的可靠性,并实现转发链路间的负载均衡。

Description

信息发送控制方法、信息接收控制方法、装置、存储介质
技术领域
本公开涉及计算机技术领域,尤其涉及一种信息发送控制方法、信息接收控制方法、信息发送控制装置、信息接收控制装置、电子设备及计算机可读存储介质。
背景技术
随着计算机技术的发展,服务器与终端系统的架构越来越复杂,使得网络信息的传递方式也越来越多样化,为了提高网络服务质量,需要对信息的发送与接收进行高效、可靠的控制。
现有的信息发送控制方法通常利用转发节点在两个进程间进行信息转发,而两个进程间可能存在多个转发节点,从而形成多条转发链路。在现有方法中,两进程间通过转发链路进行信息的发送与接收,由于不同链路的延迟状况不同,可能导致信息的乱序,且由于链路的波动或异常等因素,可能导致信息的丢失。因此,现有方法对于信息发送控制的可靠性较差。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本公开提供了一种信息发送控制方法、信息接收控制方法、信息发送控制装置、信息接收控制装置、电子设备及计算机可读存储介质,进而至少在一定程度上克服现有的信息发送控制方法可靠性较差的问题。
本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。
根据本公开的一个方面,提供一种信息发送控制方法,应用于信息发送节点,所述方法包括:生成连接标识,并根据所述连接标识确定多链路中所述连接标识对应的默认链路;通过所述默认链路向信息接收节点发送信息;如果通过所述默认链路发送信息异常,则切换到非默认链路向所述信息接收节点发送信息;如果通过所述非默认链路发送信息达到预设条件,则重新采用所述默认链路向所述信息接收节点发送信息。
在本公开的一种示例性实施例中,所述通过所述默认链路向所述信息接收节点发送信息包括:为待发送信息分配发送序号,并将所述待发送信息添加到信息发送队列;按照所述发送序号,通过所述默认链路向所述信息接收节点依次发送信息发送队列中的待发送信息;将已发送的待发送信息标记为已发送信息;如果接收到所述信息接收节点返回的确认信息,则将所述确认信息对应的已发送信息从所述信息发送队列中移除。
在本公开的一种示例性实施例中,所述如果接收到所述信息接收节点返回的确认信息,则将所述确认信息对应的已发送信息从所述信息发送队列中移除包括:如果接收到所述信息接收节点返回的确认信息,则提取所述确认信息中的期望序号;将发送序号小于所述期望序号的已发送信息都从所述信息发送队列中移除。
在本公开的一种示例性实施例中,所述方法还包括:如果重复接收到所述信息接收节点返回的相同的期望序号,则将所述期望序号对应的已发送信息重新发送。
在本公开的一种示例性实施例中,所述方法还包括:如果连续接收到T个相同的期望序号,则切换到非默认链路向所述信息接收节点重新发送所述期望序号对应的已发送信息,并通过所述非默认链路发送后续信息,其中T≥3。
在本公开的一种示例性实施例中,所述如果通过所述默认链路发送信息异常,则切换到非默认链路向所述信息接收节点发送信息包括:如果所述信息发送队列中存在第一预设时间内未被确认的已发送信息,则切换到一条非默认链路向所述信息接收节点重新发送所述未被确认的已发送信息,并通过所述非默认链路发送后续信息;如果通过所述非默认链路向所述信息接收节点重新发送所述未被确认的已发送信息异常,则切换到其他非默认链路向所述信息接收节点重新发送所述未被确认的已发送信息,并通过所述其他非默认链路发送后续信息。
在本公开的一种示例性实施例中,所述方法还包括:如果重新发送任一已发送信息的次数达到预设次数,则断开与所述信息接收节点的连接。
在本公开的一种示例性实施例中,所述方法还包括:如果所述信息发送队列中的信息数量达到第一阈值,则断开与所述信息接收节点的连接。
在本公开的一种示例性实施例中,所述根据所述连接标识确定多链路中所述连接标识对应的默认链路包括:根据一致性哈希(hash)算法确定多链路中所述连接标识对应的默认链路。
在本公开的一种示例性实施例中,所述如果通过所述非默认链路发送信息达到预设条件,则重新采用所述默认链路向所述信息接收节点发送信息包括:当通过所述非默认链路发送信息的数量达到第二阈值时,重新采用所述默认链路向所述信息接收节点发送信息。
根据本公开的一个方面,提供一种信息接收控制方法,应用于信息接收节点,所述方法包括:接收信息发送节点发送的连接请求,所述连接请求包括连接标识;检测所述连接标识是否处于短期已销毁连接列表中;如果所述连接标识处于所述短期已销毁连接列表中,则将所述连接请求丢弃;如果所述连接标识未处于所述短期已销毁连接列表中,则创建与所述信息发送节点的连接。
在本公开的一种示例性实施例中,所述方法还包括:在接收到连接请求后,检测所述连接请求的连接标识与当前连接的连接标识是否重复;如果所述连接请求的连接标识与当前连接的连接标识重复,则将所述连接请求丢弃;如果所述连接请求的连接标识与当前连接的连接标识不重复,则执行检测所述连接标识是否处于短期已销毁连接列表中的步骤。
在本公开的一种示例性实施例中,所述方法还包括:如果接收到所述信息发送节点发送的连接断开请求,则断开与所述信息发送节点的连接;将所述连接的连接信息添加到所述短期已销毁连接列表,所述连接信息至少包括所述连接的连接标识与断开时间;从所述短期已销毁连接列表中删除断开时间超过第二预设时间的连接信息。
在本公开的一种示例性实施例中,所述方法还包括:如果所述连接请求的发送时间与接收时间的间隔超过第三预设时间,则将所述连接请求丢弃。
在本公开的一种示例性实施例中,在创建与所述信息发送节点的连接后,所述方法还包括:通过所述连接接收所述信息发送节点发送的待接收信息,并提取所述待接收信息的发送序号;如果所述发送序号大于或等于期望序号,则将所述待接收信息添加到信息接收队列;按照所述期望序号处理所述信息接收队列中的待接收信息,并将已处理的待接收信息从所述信息接收队列中移除。
在本公开的一种示例性实施例中,所述方法还包括:如果所述发送序号小于所述期望序号,则将所述待接收信息丢弃。
在本公开的一种示例性实施例中,所述方法还包括:每次按照所述期望序号处理所述信息接收队列中的待接收信息后,将所述期望序号加一,以更新所述期望序号。
在本公开的一种示例性实施例中,所述如果所述发送序号大于或等于所述期望序号,则将所述待接收信息添加到信息接收队列后,所述方法还包括:生成关于所述待接收信息的确认信息,所述确认信息包括所述期望序号;向所述信息发送节点发送所述确认信息。
在本公开的一种示例性实施例中,所述方法还包括:如果所述信息接收队列中的信息数量达到第三阈值,则断开与所述信息发送节点的连接;将所述连接的连接信息添加到所述短期已销毁连接列表,所述连接信息至少包括所述连接的连接标识与断开时间;从所述短期已销毁连接列表中删除断开时间超过第二预设时间的连接信息。
根据本公开的一个方面,提供一种信息发送控制装置,应用于信息发送节点,包括:确定模块,用于生成连接标识,并根据所述连接标识确定多链路中所述连接标识对应的默认链路;发送模块,用于通过所述默认链路向信息接收节点发送信息;切换模块,用于如果通过所述默认链路发送信息异常,则切换到非默认链路向所述信息接收节点发送信息;保持模块,用于如果通过所述非默认链路发送信息达到预设条件,则重新采用所述默认链路向所述信息接收节点发送信息。
根据本公开的一个方面,提供一种信息接收控制装置,应用于信息接收节点,包括:接收模块,用于接收信息发送节点发送的连接请求,所述连接请求包括连接标识;检测模块,用于检测所述连接标识是否处于短期已销毁连接列表中;丢弃模块,用于如果所述连接标识处于所述短期已销毁连接列表中,则将所述连接请求丢弃;创建模块,用于如果所述连接标识未处于所述短期已销毁连接列表中,则创建与所述信息发送节点的连接。
根据本公开的一个方面,提供一种电子设备,包括:处理器;以及存储器,用于存储所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行上述任意一项所述的信息发送控制方法或上述任意一项所述的信息接收控制方法。
根据本公开的一个方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一项所述的信息发送控制方法或上述任意一项所述的信息接收控制方法。
本公开的示例性实施例具有以下有益效果:
在多链路系统中通过默认链路发送信息,当默认链路异常时,切换到非默认链路,并在满足预设条件后恢复到使用默认链路。一方面,通过设置信息发送异常切换链路的机制,确保信息成功发送,提高信息发送的可靠性。另一方面,通过连接标识确定默认链路的方式与默认链路的保持机制,可以合理分配每条链路处理的信息量,实现负载均衡。
通过接收信息发送节点发送的连接请求,对其连接标识是否存在于短期已销毁连接列表中进行判断,当连接标识未处于该列表中时,允许创建与信息发送节点的连接,从而提高了连接建立过程的可靠性,并减少了无效的重复连接,降低了信息转发链路的负载。
在本公开的一些示例性实施例中,通过发送序号与期望序号的管理机制对信息的发送与接收顺序进行控制,可以解决信息发送过程中的乱序问题,保证异常时信息能够正常重发与接收,进一步提高信息发送的可靠性。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示意性示出本示例性实施例的一种运行环境的系统架构图;
图2示意性示出本示例性实施例中一种信息发送控制方法的流程图;
图3示意性示出本示例性实施例中一种信息发送控制与信息接收控制方法的交互流程图;
图4示意性示出本示例性实施例中一种信息发送控制与信息接收控制方法的交互子流程图;
图5示意性示出本示例性实施例中一种一致性哈希算法的示意图;
图6示意性示出本示例性实施例中另一种信息发送控制方法的流程图;
图7示意性示出本示例性实施例中再一种信息发送控制方法的流程图;
图8示意性示出本示例性实施例中一种信息接收控制方法的流程图;
图9示意性示出本示例性实施例中另一种信息接收控制方法的流程图;
图10示意性示出本示例性实施例中一种信息发送控制装置的结构框图;
图11示意性示出本示例性实施例中一种信息接收控制装置的结构框图;
图12示意性示出本示例性实施例中一种用于实现上述方法的电子设备;
图13示意性示出本示例性实施例中一种用于实现上述方法的计算机可读存储介质。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。
相关技术的一种方案中,是通过设置固定链路以进行信息转发的。举例而言,如果进程A第一次通过转发链路M将信息转发到进程B,那么进程A始终选择转发链路M进行信息转发,从而尽可能保证信息的有序性。该方案的缺点是如果进行选定转发链路后不再改变,很容易造成转发链路的热点,导致转发节点无法很好的实现负载均衡,且当转发链路出现波动时,无法解决信息发送的丢失问题。
鉴于上述原因,本公开的示例性实施例首先提供了一种信息发送控制方法,该方法运行环境的系统架构可以如图1所示。参考图1,该系统100可以包括信息发送节点110、转发节点120与信息接收节点130。其中,各节点可以是物理节点,例如信息发送节点110为终端,转发节点120为代理服务器,信息接收节点130为应用服务器,或者信息发送节点110与信息接收节点130为不同的进程服务器,转发节点120为转发服务器等;各节点也可以是虚拟节点,例如信息发送节点110与信息接收节点130为游戏服务器上的不同游戏进程,转发节点120为该游戏服务器上的转发进程等。因此,本实施例可以应用于终端与服务器之间的信息交互(如发送Http请求、上传游戏数据等场景),也可以应用于不同服务器或同一服务器的不同进程间的信息交互(如游戏中玩家之间的私信、即时通讯等场景)等等。应当理解,本实施例可以应用于图1中的信息发送节点110。
下面以不同服务器之间的信息交互场景为例做进一步说明。参考图2所示,该信息发送控制方法可以包括以下步骤S210~S240:
步骤S210,生成连接标识,并根据该连接标识确定多链路中该连接标识对应的默认链路。
信息发送节点在向信息接收节点发送信息时,首先可以建立连接,在该连接中发送连续性信息或进行会话。连接标识用于唯一性标识连接的信息,可以是自增的编号或通过其他机制生成的字符串等。在一示例性实施例中,为了保证多个信息发送节点的连接标识不冲突,可以根据信息发送节点的标识生成连接标识,其中信息发送节点的标识是指可以表示其节点身份的信息,例如服务器的IP地址(网络协议地址)、MAC地址(物理地址)、设备名或序列号等。在生成连接标识时,可以将信息发送节点的标识进行转换或编码,并在其后添加自增的编号,从而生成了具有信息发送节点唯一性的连接标识。此外,还可以在连接标识中添加关于连接时间、连接类型等信息,本实施例对此不做特别限定。
链路是指信息发送节点与信息接收节点之间的数据传递的通路,包括转发节点,也可以包括转发节点分别与信息发送节点、信息接收节点的连接线路。从信息发送节点到转发节点,再到信息接收节点的全路径可以成为一条链路。对于同一组信息发送节点与信息接收节点,可以通过多条链路进行信息的收发。
在一示例性实施例中,信息发送节点与信息接收节点之间建立连接后,可以为该连接分配一条固定的链路,即默认链路,默认链路包括默认选择哪个转发节点,也可以包括默认选择哪条线路连接到转发节点等。连接标识与默认链路之间具有一定的对应关系,在一示例性实施例中,可以根据一致性哈希算法确定连接标识对应的默认链路。也可以采用其他编码的方法使连接标识与默认链路之间形成对应关系,或者通过人工编辑的对应关系表确定其对应关系等。此外,默认链路可以是一条,也可以有多条,当有多条默认链路时,可以通过一定的机制确定具体选择哪条默认链路,例如随机选择、设置优先级等。
步骤S220,通过默认链路向信息接收节点发送信息。
由于连接标识与默认链路具有对应关系,因此属于该连接的所有信息都可以通过该默认链路进行发送。系统通过合理分配各连接的默认链路,可以实现各链路之间的负载均衡。
步骤S230,如果通过默认链路发送信息异常,则切换到非默认链路向信息接收节点发送信息。
在通过默认链路发送信息时,可能会出现异常情况,例如,链路堵塞引起的信息延迟或信息丢失等等。此时,可以切换到其他链路,即非默认链路。举例而言,可以从非默认链路中选择负载最小的链路,将信息发送节点与信息接收节点之间的当前连接切换到该链路,有利于负载均衡,也可以按照一定顺序检测非默认链路是否可用,并将最先检测到可用的非默认链路确定为切换当前连接的目标链路,有利于信息发送异常时的迅速恢复,还可以采用其他方式选择非默认链路,本实施例对此不做特别限定。
步骤S240,如果通过非默认链路发送信息达到预设条件,则重新采用默认链路向信息接收节点发送信息。
考虑到通过非默认链路发送的信息过多会造成链路波动,导致负载失衡,可以在发送信息时设置预设条件,以判断是否恢复使用默认链路,例如,当通过非默认链路发送的信息数量达到50条时,即达到预设条件;或者当通过非默认链路发送的信息流量达到100M时,即达到预设条件;或者通过非默认链路发送信息达到一定的时长,即达到预设条件等等。在达到预设条件后,可以尝试重新采用默认链路向信息接收节点发送信息。通过以上方式,实现了默认链路保持机制,使得信息发送节点尽可能通过默认链路发送信息,提高了各链路间的负载均衡。需要补充的是,如果默认链路仍然异常,则可以再次切换到非默认链路。
基于上述说明,本示例性实施例在多链路系统中通过默认链路发送信息,当默认链路异常时,切换到非默认链路,并在满足预设条件后恢复到使用默认链路。一方面,通过设置信息发送异常切换链路的机制,确保信息成功发送,提高信息发送的可靠性。另一方面,通过连接标识确定默认链路的方式与默认链路的保持机制,可以合理分配每条链路处理的信息量,实现负载均衡。
图3示意性示出了本实施例中一种信息发送控制与信息接收控制方法的交互流程图。参考图3所示,通过默认链路向信息接收节点发送信息可以包括以下步骤:
步骤S301,为待发送信息分配发送序号,并将待发送信息添加到信息发送队列;
步骤S302,按照发送序号,通过默认链路向信息接收节点依次发送信息发送队列中的待发送信息;
步骤S303,将已发送的待发送信息标记为已发送信息;
步骤S304,如果接收到信息接收节点返回的确认信息,则将确认信息对应的已发送信息从信息发送队列中移除。
其中,为待发送信息分配的发送序号可以是根据待发送信息的生成时间设置的唯一有序的自增序号,通过发送序号的顺序来保证信息的有序性。在一示例性实施例中,待发送信息可以是发送序号+连接标识+实际内容的形式。信息发送队列为信息发送节点上设置的信息发送的缓冲区,在发送信息时,为了减少瞬时多信息并发的情况,或者便于信息超时重传等,可以首先将信息写入信息发送队列中,然后通过队列发送信息。信息发送后可以返回步骤S301,继续处理其他信息。
在本实施例中,信息发送队列可以按照待发送信息的发送序号将其依次排列,并依次发送。信息发送队列可以将信息分类管理:未发送的信息为待发送信息,发送过的信息为已发送信息,从而避免无效的重复发送。分类可以通过标记的方式实现,例如可以为每条信息添加“待发送”或“已发送”的后台标记等。在发送信息后,无法保证信息接收节点一定接收到并处理了该信息,因此将已发送信息暂时保留在信息发送队列中,如果信息接收节点未正常接收,可以再次发送,如果信息接收节点正常接收并处理,将发送确认信息,此时可以将确认信息对应的已发送信息从信息发送队列中移除。其中,已发送信息与确认信息的对应方式可以是两条信息具有对应的发送序号与接收序号,也可以是其他类型标识的对应等,本实施例对此不做限定。
在一示例性实施例中,步骤S304可以通过以下步骤实现:
如果接收到信息接收节点返回的确认信息,则提取确认信息中的期望序号;
将发送序号小于期望序号的已发送信息都从信息发送队列中移除。
其中,期望序号可以是信息接收节点当前所期望接收的信息的序号,例如信息接收节点按照序号依次接收并处理信息时,如果正常接收了seq的信息,当前的期望序号可以是seq+1。
具体而言,待发送信息中可以包括:sent+seq(sent为发送的标记,seq为发送序号),相应的,确认信息中可以包括:rcvd+(seq+1)(rcvd为接收的标记,seq+1为期望序号,期望序号为发送序号的基础上加1),具有对应关系的发送序号与期望序号之间相差为1。可以采用累积确认的方式,对于信息接收节点来说,按照seq的顺序接收信息,如果接收到的信息的seq为当前期望的seq,则将期望的seq加1,得到新的期望序号,将其添加到确认信息中,并发送至信息发送节点;对于信息发送节点来说,当接收到seq+1的期望序号时,可以认为发送序号为seq及小于seq的所有信息都被信息接收节点正常接收,为了清理缓存,可以设置将这些已发送信息从信息发送队列中全部移除。
此外,信息接收节点也可以无需每次接收信息后都发送确认信息,而采取每接收一定数量的信息或每隔一定时间后发送一条最后接收信息对应的确认信息,从而减少确认信息的数量,提高信息收发的效率。
在一示例性实施例中,确认信息的发送还可以通过捎带确认的方式,通常信息发送节点与信息接收节点之间的信息传递是双向的,当信息接收节点有信息需要发送时,可以捎带确认信息一起发送至信息发送节点,从而优化确认信息的发送机制,提高信息发送效率。
在一示例性实施例中,信息发送控制方法还可以包括:
步骤S305,如果重复接收到信息接收节点返回的相同的期望序号,则将该期望序号对应的已发送信息重新发送。
当信息接收节点接收到正确的信息时,可以返回相应的确认信息,当信息未被正常接收时,可以通过重新发送信息来保证信息传递的可靠性。对于信息接收节点来说,其通过期望序号判断是否接收到当前期望的信息,如果当前接收到信息的发送序号与期望序号不一致,说明接收到了非期望信息,可以向信息发送节点返回包括正确期望序号的确认信息。对于信息发送节点来说,其按照发送序号的顺序发送信息,若信息都被信息接收节点正常接收,每个期望序号最多接收一次,如果某个期望序号是第二次接收到,说明该期望序号对应的已发送信息未被信息接收节点正常接收,可以重新发送。通过期望序号管理接收信息的顺序,可以保证信息发送与接收的有序性。
在一示例性实施例中,信息控制发送方法还可以包括:
如果连续接收到T个相同的期望序号,则切换到非默认链路向信息接收节点重新发送该期望序号对应的已发送信息,并通过该非默认链路发送后续信息,其中T≥3。
如上所述,信息接收节点在未正常接收到期望的信息时,可以向信息发送节点返回期望序号,当信息发送节点连续收到T个相同的期望序号时,说明信息接收节点持续未收到期望的信息,则信息发送过程可能存在异常,通常是当前使用的默认链路异常。此时可以切换到非默认链路,立即重新发送期望序号对应的已发送信息,并通过该非默认链路进行后续发送。当然,在使用非默认链路满足预设条件时,可以执行步骤S240,即重新恢复使用默认链路。根据实际情况,T可以是任意不小于3的整数,如果网络状况较好或信息的平均字节量较小,则可以将T设置为较小的数值,反之可以设置为较大的数值,本实施例对此不做特别限定。
在上述示例性实施例中,通过发送序号与期望序号的管理机制对信息的发送与接收顺序进行控制,可以解决信息发送过程中的乱序问题,保证异常时信息能够正常重发与接收,进一步提高信息发送的可靠性。
在一示例性实施例中,步骤S230可以包括以下步骤:
如果信息发送队列中存在第一预设时间内未被确认的已发送信息,则切换到一条非默认链路向信息接收节点重新发送该未被确认的已发送信息,并通过该非默认链路发送后续信息;
如果通过该非默认链路向信息接收节点重新发送该未被确认的已发送信息异常,则切换到其他非默认链路向信息接收节点重新发送该未被确认的已发送信息,并通过该其他非默认链路发送后续信息。
其中,为了保证信息发送的效率和准确性,信息发出后需要在一段可允许时间内接收到信息接收节点返回的确认信息,如果长时间未接收到确认信息,可以认为该信息发送异常。因此,可以设置第一预设时间作为可允许未接收到确认信息的最大时间范围,当信息发送队列中存在第一预设时间内未被确认的已发送信息时,说明当前使用的默认链路可能存在异常,可以通过非默认链路向信息接收节点重新发送未被确认的已发送信息,并且可以通过该非默认链路继续发送后续信息。
第一预设时间可以根据网络连接稳定性或速度等情况具体而定。例如,网络情况较好,可以将第一预设时间设置的较短,如2秒;如果网络情况较差,可以将第一预设时间设置的较长,如10秒。
在一示例性实施例中,在第一预设时间内可以设置更短的超时时间,以进行信息重发。例如设置第一预设时间为10秒,超时时间为2秒,如果发送信息后2秒内未被确认,则重发该信息,如果重发4次(加上初始发送,共发送5次)仍未被确认,相当于10秒内未被确认,触发切换链路。
在一示例性实施例中,也可以采用退避的方式进行超时重发,例如第一次2秒超时重发,第二次4秒超时重发,第三次6秒超时重发,第四次8秒超时重发,第五次10秒超时重发,第六次10秒超时重发(设置超时时间达到10秒后不再增加)……如果达到预设的最大重发次数仍然未被确认,则可以切换链路。
另外,在设置上述第一预设时间时也可以考虑信息发送队列的容量等因素,本实施例对此不做特别限定。
此外,如果切换到非默认链路后,通过该非默认链路仍然发送信息异常,例如因为链路波动导致发送上述未被确认的已发送信息失败或未及时收到确认信息等,也可以再次切换至另一条非默认链路进行信息重发,及发送后续信息。
图4示意性示出了信息发送节点与信息接收节点之间建立连接与断开连接的交互流程图。参考图4所示,步骤S401中,信息发送节点在发送信息时,首先需要生成连接标识,并向信息接收节点发送包含该连接标识的连接请求。在一示例性实施例中,信息发送节点可以通过步骤S402断开上述连接:
步骤S402,如果重新发送任一已发送信息的次数达到预设次数,则断开与信息接收节点的连接。
在重发信息次数较多时,可能存在以下两种情况:在当前链路内多次发送期望序号的信息,或通过多条链路发送未被确认的信息,说明信息无法被信息接收节点正常接收与处理,则信息发送节点可能存在异常,或整个系统的链路可能存在异常。为了减少信息的无效重复发送,可以设置重发次数是否过多的判断机制,如果重新发送任一已发送信息的次数达到预设次数,则判断与信息接收节点的连接异常,断开连接。其中,预设次数的设置可以根据服务器的处理能力以及信息发送的频度而定。如果服务器的处理能力较强,或者信息发送的频度较低,可以设置较高的预设次数;如果服务器的处理能力较弱,或者信息发送的频度较高,可以设置较低的预设次数等。在断开与信息接收节点的连接后,可以等待一定时间重新建立连接或者向逻辑调用层发送异常提示信息等。
在一示例性实施例中,可以对重发次数设置三个层级的管理机制:在一个链路内,发送某条信息未被信息接受节点正常确认,则在当前链路内尝试重新发送该信息;如果通过当前链路重新发送多次仍未被正常确认,说明当前链路可能存在异常,则切换链路重新发送该信息;如果切换多条链路仍未被正常确认,说明信息接收节点或整个系统存在异常,则断开与信息接收节点的连接。
在一示例性实施例中,信息发送节点也可以通过步骤S403断开上述连接:
步骤S403,如果信息发送队列中的信息数量达到第一阈值,则断开与信息接收节点的连接。
在信息发送队列中,已收到确认信息的已发送信息可以被移除,因此,当链路出现异常导致已发送信息无法被正常确认,或者短时间内产生大量发送信息时,信息发送队列中的信息数量可能过多。为了保证整个系统的正常运行,避免链路拥塞等情况,可以对信息发送队列中的信息数量设定第一阈值,如果信息发送队列中的信息数量达到第一阈值,则判断队列中的信息数量过多,可以断开与信息接收节点的连接。第一阈值可以根据信息发送队列的容量、信息发送频度、链路状况等进行具体设定,在此不做特别限定。
在一示例性实施例中,根据连接标识确定默认链路可以通过以下步骤实现:
根据一致性哈希算法确定连接标识对应的默认链路。
其中,一致性哈希算法是为了解决因特网中的热点问题而提出的一种计算方法,在分布式集群与多种场景中具有广泛应用。以图5为例进行说明:
在图5所示的圆环中,均匀的确定设定232个点,圆环正上方的点代表0,0点顺时针侧的第一个点代表1,以此类推,其他点分别代表2、3、……、232-1,即0点逆时针侧的第一个点代表232-1,这个由232个点组成的圆环可以称为一致性hash环。假设有三条链路M、N、P,分布在一致性hash环上的特定位置。对于连接K,通过公式hash(K)=K%232(表示对232取余)可以计算出其在一致性hash环上的对应点位,其中K为该连接的连接标识(数值型连接标识,对于其他字符形式的连接标识,可以首先进行数值转换)。在确定连接标识对应的点位后,顺时针方向最接近的链路即为该连接对应默认链路,例如图5所示,连接K与L对应的默认链路为M,连接G对应的默认链路为N,连接H对应的默认链路为P。利用一致性hash算法进行默认链路的选择可以避免链路的增加或减少导致的对应关系大幅度变动。如图5所示,可以在一致性hash环中增设另一默认链路F,此时连接K、G、H对应默认链路不变,连接L对应的默认链路由M变为F。另外,为了避免一致性hash环偏斜的情况(即各链路之间分配的连接不均衡),还可以在一致性hash环中设置各链路的虚拟节点,以将一致性hash环进一步平均分割,通常虚拟节点越多,各链路均匀分布的概率就越大,系统的负载均衡性越好。因此,通过一致性哈希算法确定默认链路,可以较好的实现转发链路间的负载均衡。
在一示例性实施例中,如果通过非默认链路发送信息达到预设条件,则重新采用默认链路向信息接收节点发送信息可以包括:
当通过非默认链路发送信息的数量达到第二阈值时,重新采用默认链路向信息接收节点发送信息。
换而言之,不允许信息发送节点通过非默认链路发送过多的信息,以避免非默认链路的拥堵,以及各链路间的负载失衡等问题。因此可以设置第二阈值,当通过非默认链路发送信息的数量达到第二阈值时,判断发送的信息过多,可以重新采用默认链路向信息接收节点发送信息。第二阈值可以根据非默认链路的传输能力、系统内的总链路数、信息发送频度等具体设定,在此不做特别限定。
图6示意性示出了本实施中一种信息发送控制方法流程图。参考图6所示,信息发送节点在与信息接收节点建立连接后,可以通过一致性hash算法确定一条默认链路,并通过该默认链路发送信息。如果发生信息超时重发的情况,说明默认链路可能存在异常,可以遍历一致性hash环,选择一条可用的非默认链路。在使用非默认链路发送的信息数量达到第二阈值时,可以重新恢复使用默认链路发送信息。另外,链路的状况可能发生变化,例如已存在的链路断开,或者增设新的链路等,当链路增加或减少时,信息发送节点可以获取一致性hash环的最新配置,并实时更新可用链路,一致性hash环的最新配置可以通过人工的方式为每个信息发送节点统一配置文件,也可以设定各信息发送节点间同步更新的机制等,本实施例对此不做特别限定。
图7示意性示出本示例性实施例中一种信息发送控制方法的流程图。参考图7所示,该方法流程包括以下步骤:步骤S710,信息发送节点通过默认链路发送信息;步骤S720,在发送信息时,可以添加至信息发送队列中,并按照信息的发送序号依次发送,发送过的信息可以标记为已发送信息,并暂时保留在信息发送队列中;步骤S730,如果收到信息接收节点发来的确认信息,则可以提取其中的确认序号;步骤S740,通过累积确认的方式,将发送序号小于该确认序号的已发送信息都从信息发送队列中移除;步骤S750,如果信息发送队列中存在超过第一预设时间未确认的信息,可以切换到一条非默认链路,继续进行信息的发送;例如,信息发送节点可以维护信息超时检测的定时器,如果有信息超时没有收到确认信息,则遍历转发链路的一致性hash环,选择一个可用的非默认链路进行信息的转发;步骤S760,如果信息重发达到最大次数,或者发送队列中的信息数量超过第一阈值,又或者信息接收节点心跳超时,则说明连接异常,可以断开与信息接收节点的连接;其中,心跳为信息发送节点与信息接受节点之间周期性发送的、用于表明状态的信息,当无法正常接收到对方的心跳时,说明整个连接存在异常;步骤S770,如果通过非默认链路发送的信息数量达到第二阈值,则可以恢复默认链路进行信息的发送。通过上述信息发送控制方法,可以提高信息发送的可靠性,并实现转发链路的负载均衡。
本公开的示例性实施例还提供了一种信息接收控制方法,可以应用于图1中的信息接收节点130。下面结合附图8对本示例性实施例做进一步说明,如图8所示,信息接收控制方法可以包括以下步骤S810~S840:
步骤S810,接收信息发送节点发送的连接请求,连接请求包括连接标识;
步骤S820,检测连接标识是否处于短期已销毁连接列表中;
步骤S830,如果连接标识处于短期已销毁连接列表中,则将连接请求丢弃;
步骤S840,如果连接标识未处于短期已销毁连接列表中,则创建与信息发送节点的连接。
其中,已销毁连接是指已经断开的连接。本实施例中,连接一旦断开,则成为历史连接,该连接的连接标识不再使用,即使需要重新发送该连接内的信息,也应当通过新的连接发送。为了区分连接请求为已销毁连接的超时重传(或接收延迟)还是合法的新连接请求,可以设置一个短期已销毁连接列表,该列表可以用于储存一定时间内已销毁的连接标识,并可以根据信息接收的频率、服务器的处理能力等因素确定该时间,例如,当信息量较多时,可以设置5min内已销毁连接列表;当信息量较少时,可以设置10min内已销毁连接列表等等。通过对接收到的连接请求中的连接标识与短期已销毁连接列表中的连接标识进行匹配,判断该连接标识是否处于短期已销毁连接列表中,如果是,则说明该连接请求为已销毁连接的超时重传(或接收延迟),可以将该连接请求丢弃;如果否,则可以认为该连接请求为新连接请求,创建与信息发送节点的连接。
基于上述说明,本示例性实施例通过接收信息发送节点发送的连接请求,对其连接标识是否存在于短期已销毁连接列表中进行判断,当连接标识未处于该列表中时,允许创建与信息发送节点的连接,从而提高了连接建立过程的可靠性,并减少了无效的重复连接,降低了信息转发链路的负载。
连接请求除了可能是已销毁连接的超时重传(或接收延迟)外,也可能是当前连接的超时重传(或接收延迟),对于这种情况,应当不允许重复建立连接。因此,参考上述图4所示的建立连接与断开连接的交互流程图,在一示例性实施例中,信息接收控制方法还可以包括:
步骤S411,在接收到连接请求后,检测连接请求的连接标识与当前连接的连接标识是否重复;
步骤S412,如果连接请求的连接标识与当前连接的连接标识重复,则将连接请求丢弃;
步骤S413,如果连接请求的连接标识与当前连接的连接标识不重复,则执行检测连接标识是否处于短期已销毁连接列表中的步骤。
其中,当前连接即正在使用中的连接。考虑到每个连接标识具有唯一性,所以如果出现与当前连接重复的连接标识,则接收的连接请求可能是当前连接的超时重传(或接收延迟)等异常情况,则可以将该连接请求丢弃。因此,本示例性实施例实际上设置了对连接请求的双重验证机制,连接请求的标识需要同时满足:与当前连接的连接标识不重复且未处于短期已销毁连接列表中,信息接收节点才允许与信息发送节点建立连接,只要有一项不满足,则丢弃该连接请求,从而实现了连接请求的有效性确认。
在一示例性实施例中,参考图4所示,信息接收控制方法还可以包括以下步骤:
步骤S414,如果接收到信息发送节点发送的连接断开请求,则断开与信息发送节点的连接;
步骤S416,将上述连接的连接信息添加到短期已销毁连接列表,连接信息至少包括连接的连接标识与断开时间;
步骤S417,从短期已销毁连接列表中删除断开时间超过第二预设时间的连接信息。
图7中示出了在一些异常情况下(如信息重发达到预设次数、心跳超时等),信息发送节点可能要求断开与信息接收节点的连接,此时,信息发送节点通常会先发送连接断开请求。信息接收节点在接收到连接断开请求时,可以断开与信息发送节点的连接,并且将该连接的连接信息添加到短期已销毁连接列表,其中,连接信息可以包括连接标识与断开时间。短期已销毁连接列表仅保存短期内断开的连接的信息,可以设置第二预设时间的判断机制,如果断开时间超过第二预设时间,则可以将该连接信息从短期已销毁连接列表中删除。第二预设时间可以根据短期已销毁连接列表的容量、连接的数量等具体设定,在此不做特别限定。
在一示例性实施例中,信息接收控制方法还可以包括:
如果连接请求的发送时间与接收时间的间隔超过第三预设时间,则将该连接请求丢弃。
其中,第三预设时间用于判断连接请求是否存在接收超时的情况,如果连接请求的发送时间与接收时间的间隔超过第三预设时间,则判断接收超时,可以将连接请求丢弃。需要说明的是,第三预设时间与上述短期已销毁连接列表的第二预设时间可以相同,也可以不同。在一示例性实施例中,可以设置第三预设时间不超过第二预设时间,以便于确认超时的连接请求是否为过时的请求。
本示例性实施例相对于对连接请求增设了第三重验证机制,连接请求需要同时满足三个条件:与当前连接的连接标识不重复、未处于短期已销毁连接列表中、且发送时间与接收时间的间隔不超过第三预设时间;只要上述有一项不满足,则丢弃该连接请求,以更好地确认连接请求的有效性。
在一示例性实施例中,在创建与所述信息发送节点的连接后,参考上述图3所示,信息接收控制方法还可以包括以下步骤:
步骤S311,通过上述连接接收信息发送节点发送的待接收信息,并提取待接收信息的发送序号;
步骤S312,如果发送序号大于或等于期望序号,则将待接收信息添加到信息接收队列;
步骤S315,按照期望序号处理信息接收队列中的待接收信息,并将已处理的待接收信息从信息接收队列中移除。
即信息接收节点按照信息的发送序号依次接收并处理,如果接收到信息的发送序号等于期望序号,说明信息传输正常,可以将信息添加到信息接收队列中并立即处理。如果接收到信息的发送序号大于期望序号,说明信息发送节点较后发送的信息先到达了信息接收节点,信息接收节点可以按序号将待接收信息添加到信息接收队列,待接收到期望序号的信息后,依次处理信息。按照期望序号对信息接收队列中的待接收信息进行处理,为了减少信息接收队列中的缓存压力,可以将已处理的待接收信息从信息接收队列中移除。
在一示例性实施例中,信息接收控制方法还可以包括以下步骤:
步骤S317,如果发送序号小于期望序号,则将待接收信息丢弃。
其中,当发送序号小于期望序号时,说明与该发送序号有关的信息是过期信息,因此,可以将待接收信息丢弃。在一示例性实施例中,在接收到过期信息时,也可以向信息发送节点发送期望序号,以告知信息发送节点期望的信息。在一示例性实施例中,信息接受节点在接收到过期信息时,也可以发送关于该过期信息的确认信息,该确认信息可视为异常确认信息,期望序号可以包含于该确认信息中。通过发送序号对接收到的信息进行有效性确认,可以提高信息接收的可靠性。
在一示例性实施例中,信息接收控制方法还可以包括以下步骤:
步骤S316,每次按照期望序号处理信息接收队列中的待接收信息后,将期望序号加一,以更新期望序号。
其中,期望序号按照信息处理的顺序依次加一更新,即期望序号始终为已处理的信息中最大的发送序号加一,从而实现对信息的有序接收与管理,保证信息传递的准确性。
在一示例性实施例中,在步骤S312后,信息接收控制方法还可以包括以下步骤:;
步骤S313,生成关于待接收信息的确认信息,该确认信息包括期望序号;
步骤S314,向信息发送节点发送该确认信息。
即信息接收节点在正常接收到信息时,可以生成关于该信息的确认信息,其中,期望序号用于告知信息发送节点下一条期望的信息,从而保证信息传递的准确性。在一示例性实施例中,可以采用累积确认及捎带确认的机制,即可以每累积一定数量的确认信息、或每隔一定的时间,在向信息发送节点主动发送信息时,将累积的确认信息捎带发送。
在一示例性实施例中,信息接收控制方法还可以包括以下步骤:
步骤S415,如果信息接收队列中的信息数量达到第三阈值,则断开与信息发送节点的连接。
步骤S416,将连接的连接信息添加到短期已销毁连接列表,连接信息至少包括连接的连接标识与断开时间。
步骤S417,从短期已销毁连接列表中删除断开时间超过第二预设时间的连接信息。
考虑到接收到的信息数量过多,或者无法正常处理信息时,可能发生信息堆积,造成信息接收队列堵塞,可以设置第三阈值,如果信息接收队列中的信息数量达到第三阈值,则断开与信息发送节点的连接。在断开连接时,可以先向信息发送节点发送连接断开请求,信息发送节点可以执行图4中的步骤S404,以断开与信息接收节点的连接。
连接的断开可以采用类似TCP的四次握手方式。举例而言,当由信息接收节点发起连接断开请求时,可以向信息发送节点发送第一条Fin信息(结束信息),表示后续已不会再发送信息数据,信息发送节点在接收到第一条Fin信息后,向信息接收节点发送关于该Fin信息的确认信息,并发送第二条Fin信息,第二条Fin信息包含信息发送节点最后需要发送的信息,信息接收节点在受到第二条Fin信息后,再发送一次关于第二条Fin信息的确认信息,然后双方可以断开连接。
在断开连接后,可以将该连接的连接信息添加至短期已销毁连接列表,并定期更新该列表,将较早断开的连接的信息从中移除。此处第二预设时间可以用于判断列表中的连接是否为短期内断开的连接,如果断开时间超出第二预设时间,则将对应的连接信息从列表中移除。
需要说明的是,本示例实施方式中,第一阈值、第二阈值与第三阈值为相互无关联的阈值,其可以相同,也可以不同;第一预设时间与第二预设时间也是相互无关联的时间判断标准,可以相同,也可以不同。
图9示意性示出本示例性实施例中另一种信息接收控制方法的流程图。参考图9所示,该方法流程包括以下步骤:步骤S910,信息接收节点在接收到连接请求时,首先可判断连接请求的有效性;步骤S920,如果连接请求有效,则与信息发送节点建立连接;步骤S930,通过该连接接收信息发送节点发送的信息,可以根据信息的发送序号判断信息的有效性;步骤S940,如果信息有效,可以将信息添加到信息接收队列中,并发送关于该信息的确认信息,确认信息中可以包含最新的期望序号,以正常接收后续信息;步骤S950,如果信息无效,则回复信息发送节点期望接收到的信息的正确序号,即当前的期望序号;步骤S960,对于信息接收队列中的信息,可以按照期望序号依次处理,将处理过的信息从队列中移除,并更新期望序号。在本实施例中,信息发送节点与信息接收节点为相对的概念,在一个连接中,信息发送节点与信息接收节点的角色可以随时互换,信息接收节点如果有信息需要主动发送,可以执行步骤S970,以信息发送节点的角色,按照信息发送节点的方式发送信息。此外,在信息接收过程中,如果信息接收队列中数量达到第二阈值或接收信息发送节点的心跳超过,说明当前的连接可能存在异常,则可以执行步骤S980,断开与信息发送节点的连接,并将错误通知到调用层,调用层可以是需要调用信息数据的逻辑层或应用层等。通过上述过程,可以提高信息接收的可靠性,并减少无效连接请求与无效信息的重复处理,降低系统负载。
本公开的示例性实施例还提供了一种信息发送控制装置。参照图10所示,该装置1000可以包括:确定模块1010,用于生成连接标识,并根据该连接标识确定多链路中该连接标识对应的默认链路;发送模块1020,用于通过默认链路向信息接收节点发送信息;切换模块1030,用于如果通过默认链路发送信息异常,则切换到非默认链路向信息接收节点发送信息;保持模块1040,用于如果通过非默认链路发送信息达到预设条件,则重新采用默认链路向信息接收节点发送信息。
在一示例性实施例中,发送模块可以包括:序号分配单元,用于为待发送信息分配发送序号,并将待发送信息添加到信息发送队列;有序发送单元,用于按照发送序号,通过默认链路向信息接收节点依次发送信息发送队列中的待发送信息;信息标记单元,用于将已发送的待发送信息标记为已发送信息;信息移除单元,用于在接收到信息接收节点返回的确认信息时,将确认信息对应的已发送信息从信息发送队列中移除。
在一示例性实施例中,信息移除单元可以包括:序号提取子单元,用于在接收到信息接收节点返回的确认信息时,提取确认信息中的期望序号;累积移除子单元,用于将发送序号小于期望序号的已发送信息都从信息发送队列中移除。
在一示例性实施例中,有序发送单元还可以用于如果重复接收到信息接收节点返回的相同的期望序号,则将该期望序号对应的已发送信息重新发送。
在一示例性实施例中,切换模块还可以用于如果连续接收到T个相同的期望序号,则切换到非默认链路向信息接收节点重新发送该期望序号对应的已发送信息,并通过该非默认链路发送后续信息,其中T≥3。
在一示例性实施例中,切换模块可以用于在信息发送队列中存在第一预设时间内未被确认的已发送信息时,切换到一条非默认链路向信息接收节点重新发送未被确认的已发送信息,并通过非默认链路发送后续信息,以及在通过非默认链路向信息接收节点重新发送未被确认的已发送信息异常时,则切换到其他非默认链路向信息接收节点重新发送未被确认的已发送信息,并通过其他非默认链路发送后续信息。
在一示例性实施例中,信息发送控制装置还可以包括:连接管理模块,用于如果重新发送任一已发送信息的次数达到预设次数,则断开与信息接收节点的连接。
在一示例性实施例中,信息发送控制装置还可以包括:连接管理模块,用于如果信息发送队列中的信息数量达到第一阈值,则断开与信息接收节点的连接。
在一示例性实施例中,确定模块还可以用于根据一致性哈希算法确定多链路中连接标识对应的默认链路。
在一示例性实施例中,保持模块可以用于当通过非默认链路发送信息的数量达到第二阈值时,重新采用默认链路向信息接收节点发送信息。
本公开的示例性实施例还提供了一种信息接收控制装置。参照图11所示,该装置1100可以包括:接收模块1110,用于接收信息发送节点发送的连接请求,连接请求包括连接标识;检测模块1120,用于检测连接标识是否处于短期已销毁连接列表中;丢弃模块1130,用于如果连接标识处于短期已销毁连接列表中,则将连接请求丢弃;创建模块1140,用于如果连接标识未处于短期已销毁连接列表中,则创建与信息发送节点的连接。
在一示例性实施例中,检测模块还可以用于在接收到连接请求后,检测连接请求的连接标识与当前连接的连接标识是否重复,以及如果连接请求的连接标识与当前连接的连接标识不重复,则检测连接标识是否处于短期已销毁连接列表中的;丢弃模块还可以用于在连接请求的连接标识与当前连接的连接标识重复时,则将连接请求丢弃。
在一示例性实施例中,信息接收控制装置还可以包括:断开模块,用于在接收到信息发送节点发送的连接断开请求时,断开与信息发送节点的连接;列表管理模块,用于将上述连接的连接信息添加到短期已销毁连接列表,并从短期已销毁连接列表中删除断开时间超过第二预设时间的连接信息,其中连接信息至少包括连接的连接标识与断开时间。
在一示例性实施例中,丢弃模块还可以用于如果连接请求的发送时间与接收时间的间隔超过第三预设时间,则将连接请求丢弃。
在一示例性实施例中,信息接收控制装置还可以包括信息接收模块,其中信息接收模块又可以包括:序号提取单元,用于通过上述连接接收信息发送节点发送的待接收信息,并提取待接收信息的发送序号;队列管理单元,用于在发送序号大于或等于期望序号时,将待接收信息添加到信息接收队列,以及按照期望序号处理信息接收队列中的待接收信息,并将已处理的待接收信息从信息接收队列中移除。
在一示例性实施例中,信息接收模块还可以包括:无效处理单元,用于在发送序号小于期望序号时,将待接收信息丢弃。
在一示例性实施例中,信息接收模块还可以包括:期望序号更新单元,用于在队列管理单元每次按照期望序号处理信息接收队列中的待接收信息后,将期望序号加一,以更新所述期望序号。
在一示例性实施例中,信息接收模块还可以包括:信息确认单元,用于生成关于该待接收信息的确认信息,以及向信息发送节点发送该确认信息,该确认信息包括期望序号。
在一示例性实施例中,信息接收控制装置还可以包括:断开模块,用于在信息接收队列中的信息数量达到第三阈值时,断开与信息发送节点的连接;列表管理模块,用于将上述连接的连接信息添加到短期已销毁连接列表,并从短期已销毁连接列表中删除断开时间超过第二预设时间的连接信息,其中连接信息至少包括连接的连接标识与断开时间。
上述各模块/单元的具体细节在方法部分的实施例中已经详细说明,因此不再赘述。
本公开的示例性实施例还提供了一种能够实现上述方法的电子设备。
所属技术领域的技术人员能够理解,本公开的各个方面可以实现为系统、方法或程序产品。因此,本公开的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
下面参照图12来描述根据本公开的这种示例性实施例的电子设备1200。图12显示的电子设备1200仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图12所示,电子设备1200以通用计算设备的形式表现。电子设备1200的组件可以包括但不限于:上述至少一个处理单元1210、上述至少一个存储单元1220、连接不同系统组件(包括存储单元1220和处理单元1210)的总线1230、显示单元1240。
其中,存储单元存储有程序代码,程序代码可以被处理单元1210执行,使得处理单元1210执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施方式的步骤。例如,处理单元1210可以执行图2所示的步骤S210~S240,也可以执行图3所示的步骤S301~S305或步骤S311~S317等。
存储单元1220可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)1221和/或高速缓存存储单元1222,还可以进一步包括只读存储单元(ROM)1223。
存储单元1220还可以包括具有一组(至少一个)程序模块1225的程序/实用工具1224,这样的程序模块1225包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线1230可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备1200也可以与一个或多个外部设备1400(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备1200交互的设备通信,和/或与使得该电子设备1200能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口1250进行。并且,电子设备1200还可以通过网络适配器1260与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器1260通过总线1230与电子设备1200的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备1200使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开示例性实施例的方法。
本公开的示例性实施例还提供了一种计算机可读存储介质,其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施方式中,本公开的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在终端设备上运行时,程序代码用于使终端设备执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施方式的步骤。
参考图13所示,描述了根据本公开的示例性实施例的用于实现上述方法的程序产品1300,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本公开的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本公开操作的程序代码,程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
此外,上述附图仅是根据本公开示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的示例性实施例,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其他实施例。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限。

Claims (23)

1.一种信息发送控制方法,应用于信息发送节点,其特征在于,所述方法包括:
生成连接标识,并根据所述连接标识确定多链路中所述连接标识对应的默认链路;
通过所述默认链路向信息接收节点发送信息;
如果通过所述默认链路发送信息异常,则切换到非默认链路向所述信息接收节点发送信息;
如果通过所述非默认链路发送信息达到预设条件,则重新采用所述默认链路向所述信息接收节点发送信息。
2.根据权利要求1所述的方法,其特征在于,所述通过所述默认链路向所述信息接收节点发送信息包括:
为待发送信息分配发送序号,并将所述待发送信息添加到信息发送队列;
按照所述发送序号,通过所述默认链路向所述信息接收节点依次发送信息发送队列中的待发送信息;
将已发送的待发送信息标记为已发送信息;
如果接收到所述信息接收节点返回的确认信息,则将所述确认信息对应的已发送信息从所述信息发送队列中移除。
3.根据权利要求2所述的方法,其特征在于,所述如果接收到所述信息接收节点返回的确认信息,则将所述确认信息对应的已发送信息从所述信息发送队列中移除包括:
如果接收到所述信息接收节点返回的确认信息,则提取所述确认信息中的期望序号;
将发送序号小于所述期望序号的已发送信息都从所述信息发送队列中移除。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
如果重复接收到所述信息接收节点返回的相同的期望序号,则将所述期望序号对应的已发送信息重新发送。
5.根据权利要求3所述的方法,其特征在于,所述方法还包括:
如果连续接收到T个相同的期望序号,则切换到非默认链路向所述信息接收节点重新发送所述期望序号对应的已发送信息,并通过所述非默认链路发送后续信息,其中T≥3。
6.根据权利要求2所述的方法,其特征在于,所述如果通过所述默认链路发送信息异常,则切换到非默认链路向所述信息接收节点发送信息包括:
如果所述信息发送队列中存在第一预设时间内未被确认的已发送信息,则切换到一条非默认链路向所述信息接收节点重新发送所述未被确认的已发送信息,并通过所述非默认链路发送后续信息;
如果通过所述非默认链路向所述信息接收节点重新发送所述未被确认的已发送信息异常,则切换到其他非默认链路向所述信息接收节点重新发送所述未被确认的已发送信息,并通过所述其他非默认链路发送后续信息。
7.根据权利要求4-6任一项所述的方法,其特征在于,所述方法还包括:
如果重新发送任一已发送信息的次数达到预设次数,则断开与所述信息接收节点的连接。
8.根据权利要求2所述的方法,其特征在于,所述方法还包括:
如果所述信息发送队列中的信息数量达到第一阈值,则断开与所述信息接收节点的连接。
9.根据权利要求1所述的方法,其特征在于,所述根据所述连接标识确定多链路中所述连接标识对应的默认链路包括:
根据一致性哈希算法确定多链路中所述连接标识对应的默认链路。
10.根据权利要求1所述的方法,其特征在于,所述如果通过所述非默认链路发送信息达到预设条件,则重新采用所述默认链路向所述信息接收节点发送信息包括:
当通过所述非默认链路发送信息的数量达到第二阈值时,重新采用所述默认链路向所述信息接收节点发送信息。
11.一种信息接收控制方法,应用于信息接收节点,其特征在于,所述方法包括:
接收信息发送节点发送的连接请求,所述连接请求包括连接标识;
检测所述连接标识是否处于短期已销毁连接列表中;
如果所述连接标识处于所述短期已销毁连接列表中,则将所述连接请求丢弃;
如果所述连接标识未处于所述短期已销毁连接列表中,则创建与所述信息发送节点的连接。
12.根据权利要求11所述的方法,其特征在于,所述方法还包括:
在接收到连接请求后,检测所述连接请求的连接标识与当前连接的连接标识是否重复;
如果所述连接请求的连接标识与当前连接的连接标识重复,则将所述连接请求丢弃;
如果所述连接请求的连接标识与当前连接的连接标识不重复,则执行检测所述连接标识是否处于短期已销毁连接列表中的步骤。
13.根据权利要求11所述的方法,其特征在于,所述方法还包括:
如果接收到所述信息发送节点发送的连接断开请求,则断开与所述信息发送节点的连接;
将所述连接的连接信息添加到所述短期已销毁连接列表,所述连接信息至少包括所述连接的连接标识与断开时间;
从所述短期已销毁连接列表中删除断开时间超过第二预设时间的连接信息。
14.根据权利要求11所述的方法,其特征在于,所述方法还包括:
如果所述连接请求的发送时间与接收时间的间隔超过第三预设时间,则将所述连接请求丢弃。
15.根据权利要求11所述的方法,其特征在于,在创建与所述信息发送节点的连接后,所述方法还包括:
通过所述连接接收所述信息发送节点发送的待接收信息,并提取所述待接收信息的发送序号;
如果所述发送序号大于或等于期望序号,则将所述待接收信息添加到信息接收队列;
按照所述期望序号处理所述信息接收队列中的待接收信息,并将已处理的待接收信息从所述信息接收队列中移除。
16.根据权利要求15所述的方法,其特征在于,所述方法还包括:
如果所述发送序号小于所述期望序号,则将所述待接收信息丢弃。
17.根据权利要求15所述的方法,其特征在于,所述方法还包括:
每次按照所述期望序号处理所述信息接收队列中的待接收信息后,将所述期望序号加一,以更新所述期望序号。
18.根据权利要求17所述的方法,其特征在于,所述如果所述发送序号大于或等于所述期望序号,则将所述待接收信息添加到信息接收队列后,所述方法还包括:
生成关于所述待接收信息的确认信息,所述确认信息包括所述期望序号;
向所述信息发送节点发送所述确认信息。
19.根据权利要求15所述的方法,其特征在于,所述方法还包括:
如果所述信息接收队列中的信息数量达到第三阈值,则断开与所述信息发送节点的连接;
将所述连接的连接信息添加到所述短期已销毁连接列表,所述连接信息至少包括所述连接的连接标识与断开时间;
从所述短期已销毁连接列表中删除断开时间超过第二预设时间的连接信息。
20.一种信息发送控制装置,应用于信息发送节点,其特征在于,包括:
确定模块,用于生成连接标识,并根据所述连接标识确定多链路中所述连接标识对应的默认链路;
发送模块,用于通过所述默认链路向信息接收节点发送信息;
切换模块,用于如果通过所述默认链路发送信息异常,则切换到非默认链路向所述信息接收节点发送信息;
保持模块,用于如果通过所述非默认链路发送信息达到预设条件,则重新采用所述默认链路向所述信息接收节点发送信息。
21.一种信息接收控制装置,应用于信息接收节点,其特征在于,包括:
接收模块,用于接收信息发送节点发送的连接请求,所述连接请求包括连接标识;
检测模块,用于检测所述连接标识是否处于短期已销毁连接列表中;
丢弃模块,用于如果所述连接标识处于所述短期已销毁连接列表中,则将所述连接请求丢弃;
创建模块,用于如果所述连接标识未处于所述短期已销毁连接列表中,则创建与所述信息发送节点的连接。
22.一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1-10任一项所述的信息发送控制方法或权利要求11-19任一项所述的信息接收控制方法。
23.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-10任一项所述的信息发送控制方法或权利要求11-19任一项所述的信息接收控制方法。
CN201811526981.8A 2018-12-13 2018-12-13 信息发送控制方法、信息接收控制方法、装置、存储介质 Active CN109587822B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811526981.8A CN109587822B (zh) 2018-12-13 2018-12-13 信息发送控制方法、信息接收控制方法、装置、存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811526981.8A CN109587822B (zh) 2018-12-13 2018-12-13 信息发送控制方法、信息接收控制方法、装置、存储介质

Publications (2)

Publication Number Publication Date
CN109587822A true CN109587822A (zh) 2019-04-05
CN109587822B CN109587822B (zh) 2021-06-18

Family

ID=65928403

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811526981.8A Active CN109587822B (zh) 2018-12-13 2018-12-13 信息发送控制方法、信息接收控制方法、装置、存储介质

Country Status (1)

Country Link
CN (1) CN109587822B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110688236A (zh) * 2019-08-08 2020-01-14 深圳木成林科技有限公司 信息触达方法、系统和终端设备
CN111787349A (zh) * 2020-05-19 2020-10-16 视联动力信息技术股份有限公司 一种数据缓存方法、装置、设备及介质
WO2021209059A1 (zh) * 2020-04-18 2021-10-21 华为技术有限公司 链路处理方法、多链路设备及计算机可读存储介质
WO2022068602A1 (zh) * 2020-09-29 2022-04-07 华为技术有限公司 数据传输方法及装置

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101699797A (zh) * 2009-11-13 2010-04-28 珠海网博信息科技有限公司 使用udp协议进行数据传输的方法
CN103368753A (zh) * 2012-03-26 2013-10-23 上海地面通信息网络有限公司 一种多链路互为冗余备份的网络路由控制系统
CN103986647A (zh) * 2014-05-21 2014-08-13 大唐移动通信设备有限公司 报文传输方法及设备
US20150172100A1 (en) * 2013-12-13 2015-06-18 International Business Machines Corporation Trill network with multipath redundancy
CN108183950A (zh) * 2017-12-28 2018-06-19 新华三技术有限公司 一种网络设备建立连接的方法及装置
CN108347357A (zh) * 2017-01-24 2018-07-31 腾讯科技(深圳)有限公司 一种数据通信方法、应用客户端、加速节点服务器及系统
CN108449408A (zh) * 2018-02-08 2018-08-24 四川速宝网络科技有限公司 基于多路径的游戏加速系统
CN108768686A (zh) * 2018-04-08 2018-11-06 安徽展航信息科技发展有限公司 一种计算机网络的链路备份方法

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101699797A (zh) * 2009-11-13 2010-04-28 珠海网博信息科技有限公司 使用udp协议进行数据传输的方法
CN103368753A (zh) * 2012-03-26 2013-10-23 上海地面通信息网络有限公司 一种多链路互为冗余备份的网络路由控制系统
US20150172100A1 (en) * 2013-12-13 2015-06-18 International Business Machines Corporation Trill network with multipath redundancy
CN103986647A (zh) * 2014-05-21 2014-08-13 大唐移动通信设备有限公司 报文传输方法及设备
CN108347357A (zh) * 2017-01-24 2018-07-31 腾讯科技(深圳)有限公司 一种数据通信方法、应用客户端、加速节点服务器及系统
CN108183950A (zh) * 2017-12-28 2018-06-19 新华三技术有限公司 一种网络设备建立连接的方法及装置
CN108449408A (zh) * 2018-02-08 2018-08-24 四川速宝网络科技有限公司 基于多路径的游戏加速系统
CN108768686A (zh) * 2018-04-08 2018-11-06 安徽展航信息科技发展有限公司 一种计算机网络的链路备份方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110688236A (zh) * 2019-08-08 2020-01-14 深圳木成林科技有限公司 信息触达方法、系统和终端设备
WO2021209059A1 (zh) * 2020-04-18 2021-10-21 华为技术有限公司 链路处理方法、多链路设备及计算机可读存储介质
CN111787349A (zh) * 2020-05-19 2020-10-16 视联动力信息技术股份有限公司 一种数据缓存方法、装置、设备及介质
CN111787349B (zh) * 2020-05-19 2023-12-12 视联动力信息技术股份有限公司 一种数据缓存方法、装置、设备及介质
WO2022068602A1 (zh) * 2020-09-29 2022-04-07 华为技术有限公司 数据传输方法及装置

Also Published As

Publication number Publication date
CN109587822B (zh) 2021-06-18

Similar Documents

Publication Publication Date Title
CN109587822A (zh) 信息发送控制方法、信息接收控制方法、装置、存储介质
JP5804054B2 (ja) 通信システム、制御装置、ノード、処理規則の設定方法およびプログラム
US7974186B2 (en) Connection recovery device, method and computer-readable medium storing therein processing program
KR101887581B1 (ko) 플로우 기반의 패킷 전송 장치 및 그것의 패킷 처리 방법
JP4948054B2 (ja) 管理装置及び通信端末装置及び通信システム及び通信管理方法
JP2004032224A (ja) サーバ引継システムおよびその方法
CN106452909B (zh) 一种路由发布方法以及路由反射器设备
CN105743614B (zh) 数据的传输方法和装置
KR20200011967A (ko) 네트워크에서 소켓의 그룹에 대한 조정된 흐름 제어를 제공하기 위한 방법 및 네트워크 노드
CN110178341A (zh) 具有数据中心部署的电信网络
JPWO2014068616A1 (ja) 通信制御方法、ネットワークシステム、および通信装置
CN109428740A (zh) 设备故障恢复的方法和装置
CN111970092B (zh) 一种支持可靠性调节的多协议冗余网络异步通信方法
CN110225133B (zh) 消息发送方法、节点、装置、系统及相关设备
CN106789279B (zh) 一种网关的控制方法、远程控制端的控制方法及装置
CN107222883B (zh) 无线控制器备份方法、备份切换方法、装置及系统
US7440458B2 (en) System for determining network route quality using sequence numbers
CN104243473B (zh) 一种数据传输的方法以及装置
JP2014053832A (ja) サーバ、クライアント、配信システム及び配信方法
CN110266446B (zh) 一种基于sack模式调整乱序时长的方法和装置
US9942823B2 (en) Communication terminal, communication method, and communication program
CN112187408B (zh) 数据处理方法、系统、装置、存储介质和处理器
JP2003092593A (ja) 輻輳制御を考慮した経路選択制御機能付きノード及びこれを適用したネットワークにおける経路選択制御方式
JP4723993B2 (ja) データ伝送方法及びデータ伝送システム
JP6982235B2 (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