本发明涉及通信技术领域,尤其涉及一种传输策略调整方法、装置、设备及可读存储介质。
背景技术:
目前,客户端与服务器之间采用tcp连接时,当tcp连接使用的链路出现拥塞,现有的tcp的拥塞解决方案只能通过减少数据传输数量的方式缓解链路拥塞,以期待链路的自行恢复,如果链路始终处于拥塞状态,tcp连接将会断开,导致客户端无法正常访问服务器。为了避免这一情况发生,常用的方法为:通过备用链路对主链路进行备份,当主链路拥塞时,切换至备用链路进行tcp传输。但这种方法需要启用额外的链路状态检测协议,而额外的链路状态检测协议的交互数据无疑加重了主用链路的负担,加大了拥塞出现的可能。
技术实现要素:
本发明的主要目的在于提供一种传输策略调整方法、装置、设备及可读存储介质,旨在解决现有技术中控制链路切换需要启用额外的链路状态检测协议的技术问题。
第一方面,本发明提供一种传输策略调整方法,所述传输策略调整方法包括:
检测当前使用的传输链路是否拥塞;
当当前使用的传输链路拥塞时,将重传数据包先通过另一传输链路发送,再通过当前使用的传输链路发送;
根据所述重传数据包对应的应答报文的接收情况,进行传输策略调整。
可选的,所述根据所述重传数据包对应的应答报文的接收情况,进行传输策略调整的步骤包括:
当接收到基于当前使用的传输链路返回的所述重传数据包对应的应答报文,且接收到基于另一传输链路返回的所述重传数据包对应的应答报文,则分别计算两条传输链路的往返时延;
检测当前使用的传输链路的往返时延与另一传输链路的往返时延的差值是否大于或等于预设阈值;
若当前使用的传输链路的往返时延与另一传输链路的往返时延的差值大于或等于预设阈值,则进行传输链路切换。
可选的,在所述检测当前使用的传输链路的往返时延与另一传输链路的往返时延的差值是否大于或等于预设阈值的步骤之后,还包括:
若当前使用的传输链路的往返时延与另一传输链路的往返时延的差值小于预设阈值,则减小发送窗口的大小。
可选的,所述根据所述重传数据包对应的应答报文的接收情况,进行传输策略调整的步骤包括:
当接收到基于另一传输链路返回的所述重传数据包对应的应答报文,且未接收到基于当前使用的传输链路返回的所述重传数据包对应的应答报文,则进行传输链路切换。
可选的,所述根据所述重传数据包对应的应答报文的接收情况,进行传输策略调整的步骤包括:
当接收到基于当前使用的传输链路返回的所述重传数据包对应的应答报文,且未接收到基于另一传输链路返回的所述重传数据包对应的应答报文,保持当前的传输链路不变。
可选的,所述根据所述重传数据包对应的应答报文的接收情况,进行链路调整的步骤包括:
当未接收到基于当前使用的传输链路返回的所述重传数据包对应的应答报文,且未接收到基于另一传输链路返回的所述重传数据包对应的应答报文,则将发送窗口的大小减小为零。
可选的,所述检测当前使用的传输链路是否拥塞的步骤包括:
检测是否接收到相同的应答报文或接收应答报文超时;
若接收到相同的应答报文或接收应答报文超时,则确定当前使用的传输链路拥塞。
第二方面,本发明还提供一种传输策略调整装置,所述传输策略调整装置包括:
检测模块,用于检测当前使用的传输链路是否拥塞;
发送模块,用于当当前使用的传输链路拥塞时,将重传数据包先通过另一传输链路发送,再通过当前使用的传输链路发送;
调整模块,用于根据所述重传数据包对应的应答报文的接收情况,进行传输策略调整。
第三方面,本发明还提供一种传输策略调整设备,所述传输策略调整设备包括处理器、存储器、以及存储在所述存储器上并可被所述处理器执行的传输策略调整程序,其中所述传输策略调整程序被所述处理器执行时,实现如上所述的传输策略调整方法的步骤。
第四方面,本发明还提供一种可读存储介质,所述可读存储介质上存储有传输策略调整程序,其中所述传输策略调整程序被处理器执行时,实现如上所述的传输策略调整方法的步骤。
本发明中,检测当前使用的传输链路是否拥塞;当当前使用的传输链路拥塞时,将重传数据包先通过另一传输链路发送,再通过当前使用的传输链路发送;根据所述重传数据包对应的应答报文的接收情况,进行传输策略调整。通过本发明,无需增加额外的链路检测协议,即可根据重传数据包对应的应答报文的接收情况,自动调整传输策略,整个过程自动、且高效,保障了通信连接的正常。
附图说明
图1为本发明实施例方案中涉及的传输策略调整设备的硬件结构示意图;
图2为本发明传输策略调整方法一实施例的流程示意图;
图3为一实施例中的网络拓扑图;
图4为步骤s10的细化流程示意图;
图5为步骤s30的细化流程示意图;
图6为本发明传输策略调整装置一实施例的功能模块示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
第一方面,本发明实施例提供一种传输策略调整设备。
参照图1,图1为本发明实施例方案中涉及的传输策略调整设备的硬件结构示意图。本发明实施例中,传输策略调整设备可以包括处理器1001(例如中央处理器centralprocessingunit,cpu),通信总线1002,用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信;用户接口1003可以包括显示屏(display)、输入单元比如键盘(keyboard);网络接口1004可选的可以包括标准的有线接口、无线接口(如无线保真wireless-fidelity,wi-fi接口);存储器1005可以是高速随机存取存储器(randomaccessmemory,ram),也可以是稳定的存储器(non-volatilememory),例如磁盘存储器,存储器1005可选的还可以是独立于前述处理器1001的存储装置。本领域技术人员可以理解,图1中示出的硬件结构并不构成对本发明的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
继续参照图1,图1中作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及传输策略调整程序。其中,处理器1001可以调用存储器1005中存储的传输策略调整程序,并执行本发明实施例提供的传输策略调整方法。
第二方面,本发明实施例提供了一种传输策略调整方法。
一实施例中,参照图2,图2为本发明传输策略调整方法一实施例的流程示意图,如图2所示,传输策略调整方法包括:
步骤s10,检测当前使用的传输链路是否拥塞;
本实施例中,参照图3,图3为一实施例中的网络拓扑图。如图3所示,服务器与客户端之间建立有主链路以及备用链路。其中,服务器与客户端使用的通信协议可以是tcp协议或其他通信协议,例如udp协议等等。若服务器与客户端当前使用主链路进行通信,则检测主链路是否拥塞;同样的,若服务器与客户端当前使用备用链路进行通信,则检测备用链路是否拥塞。以服务器与客户端使用的通信协议以tcp协议为例,服务器向客户端发送tcp数据包后,若客户端收到服务器发送的tcp数据包,则会向客户端返回应答报文,当服务器收到应答报文后,再向客户端发送下一个tcp数据包。因此,可以以服务器是否及时收到应答报文来判断当前使用的传输链路是否拥塞。例如,预先设置服务器在发送tcp数据包后,需在指定时长内收到对应的应答报文,若在指定时长内未收到对应的应答报文,则认为接收应答报文超时,则认为当前使用的传输链路拥塞。
进一步地,一实施例中,参照图4,图4为步骤s10的细化流程示意图。如图4所示,步骤s10包括:
步骤s101,检测是否接收到相同的应答报文或接收应答报文超时;
本实施例中,当传输链路拥塞时,可能会导致数据包丢失,例如服务器向客户端发送数据包1、数据包2以及包3,若由于当前的传输链路拥塞,导致数据包2丢失,导致客户端只收到数据包1和数据包3,此时客户端会返回两个数据包1的应答报文给服务器,使得服务器收到两个相同的应答报文,因此,可以通过检测服务器是否收到相同的应答报文,来确定当前使用的传输链路是否拥塞。另一方面,当传输链路拥塞时,除了可能会导致数据包丢失,还会出现接收应答报文超时的情况,因此,可以通过检测服务器接收应答报文是否超时,来确定当前使用的传输链路是否拥塞。
当然,还可以是针对客户端向服务器发送数据包的场景,从而通过检测客户端是否收到相同的应答报文,来确定当前使用的传输链路是否拥塞;通过检测客户端接收应答报文是否超时,来确定当前使用的传输链路是否拥塞。
步骤s102,若接收到相同的应答报文或接收应答报文超时,则确定当前使用的传输链路拥塞。
本实施例中,当接收到相同的应答报文时,确定当前使用的传输链路拥塞;同样的,当接收应答报文超时时,确定当前使用的传输链路拥塞。
步骤s20,当当前使用的传输链路拥塞时,将重传数据包先通过另一传输链路发送,再通过当前使用的传输链路发送;
本实施例中,当检测到当前使用的传输链路拥塞时,在发送重传数据包时,将重传数据包先通过另一传输链路发送,再通过当前使用的传输链路发送。例如,当检测到当前使用的传输链路拥塞时,且当前使用的传输链路为主链路,则在t1时刻先通过另一传输链路(即备用链路)发送重传数据包,再在t2时刻通过当前使用的传输链路(即主链路)发送重传数据包。同理,当检测到当前使用的传输链路拥塞时,且当前使用的传输链路为备用链路,则t1时刻先通过另一传输链路(即主链路)发送重传数据包,再在t2时刻通过当前使用的传输链路(即备用链路)发送重传数据包。其中,t1时刻与t2时刻的时间差根据实际情况进行设置,例如设置为1ms。
容易理解的是,若是检测到服务器接收到相同的应答报文/接收应答报文超时,则是服务器先后通过另一传输链路以及当前使用的传输链路,将重传数据包发送至客户端。同理,若是检测到客户端接收到相同的应答报文/接收应答报文超时,则是客户端先后通过另一传输链路以及当前使用的传输链路,将重传数据包发送至服务器。
步骤s30,根据所述重传数据包对应的应答报文的接收情况,进行传输策略调整。
本实施例中,以服务器先后通过另一传输链路以及当前使用的传输链路,将重传数据包发送至客户端为例,服务器先后通过另一传输链路以及当前使用的传输链路,将重传数据包发送至客户端,正常情况下,客户端分别通过另一传输链路以及当前使用的传输链路收到两个重传数据包,然后返回两个重传数据包对应的两个应答报文给服务器。但是,在另一传输链路和/或当前使用的传输链路存在异常的情况下,会导致服务器端针对重传数据包的应答报文的接收情况与正常情况不同,因此,需要根据重传数据包对应的应答报文的接收情况,进行传输策略调整。
进一步地,一实施例中,参照图5,图5为步骤s30的细化流程示意图。如图5所示,步骤s30包括:
步骤s301,当接收到基于当前使用的传输链路返回的所述重传数据包对应的应答报文,且接收到基于另一传输链路返回的所述重传数据包对应的应答报文,则分别计算两条传输链路的往返时延;
本实施例中,若服务器先后通过另一传输链路以及当前使用的传输链路,将重传数据包发送至客户端后,接收到基于当前使用的传输链路返回的重传数据包对应的应答报文,且接收到基于另一传输链路返回的重传数据包对应的应答报文,则分别计算两条传输链路的往返时延。
具体的,计算当前使用的传输链路的往返时延t1:
t1=a2-a1,其中,a2为服务器基于当前使用的传输链路接收到重传数据包对应的应答报文的时刻,a1为服务器基于当前使用的传输链路发送重传数据包的时刻。
同样的,计算另一传输链路的往返时延t2:
t2=b2-b1,其中,b2为服务器基于另一传输链路接收到重传数据包对应的应答报文的时刻,b1为服务器基于另一传输链路发送重传数据包的时刻。
步骤s302,检测当前使用的传输链路的往返时延与另一传输链路的往返时延的差值是否大于或等于预设阈值;
本实施例中,当前使用的传输链路的往返时延与另一传输链路的往返时延的差值t3=t1-t2,然后比较t3与预设阈值的大小。其中,预设阈值根据实际需要进行设置,在此不作限制。
步骤s303,若当前使用的传输链路的往返时延与另一传输链路的往返时延的差值大于或等于预设阈值,则进行传输链路切换。
本实施例中,若t3大于或等于预设阈值,则说明当前使用的传输链路的往返时延相较于另一传输链路的往返时延较大,而往返时延越大,说明传输链路越拥塞,因此,需要进行传输链路切换。例如,当前使用的传输链路为主链路,则在检测到t3大于或等于预设阈值时,将备用链路切换为当前使用的传输链路。
进一步地,一实施例中,在步骤s302之后,还包括:
步骤s304,若当前使用的传输链路的往返时延与另一传输链路的往返时延的差值小于预设阈值,则减小发送窗口的大小。
本实施例中,继续参照图5,当t3小于预设阈值时,说明当前使用的传输链路的往返时延与另一传输链路的往返时延相比差别不大,即两条链路的拥塞程度差别不大,没有进行链路切换的必要。但由于根据步骤s10检测到当前使用的传输链路存在拥塞,因此需要对这种拥塞情况进行缓解,具体方式为减小发送窗口的大小。例如,将发送窗口的大小在原有基础上减少一定值,或将发送窗口的大小降低至预设值。
进一步地,一实施例中,步骤s30包括:
当接收到基于另一传输链路返回的所述重传数据包对应的应答报文,且未接收到基于当前使用的传输链路返回的所述重传数据包对应的应答报文,则进行传输链路切换。
本实施例中,若接收到基于另一传输链路返回的重传数据包对应的应答报文,但未接收到基于当前使用的传输链路返回的重传数据包对应的应答报文,说明当前使用的传输链路出现了异常,已无法用于数据传输,因此,需要进行传输链路切换。例如,当前使用的传输链路为主链路,则在接收到基于另一传输链路返回的重传数据包对应的应答报文,但未接收到基于当前使用的传输链路返回的重传数据包对应的应答报文时,将备用链路切换为当前使用的传输链路。
进一步地,一实施例中,步骤s30包括:
当接收到基于当前使用的传输链路返回的所述重传数据包对应的应答报文,且未接收到基于另一传输链路返回的所述重传数据包对应的应答报文,保持当前的传输链路不变。
本实施例中,若接收到基于当前使用的传输链路返回的重传数据包对应的应答报文,但未接收到基于另一传输链路返回的重传数据包对应的应答报文,说明另一传输链路出现了异常,无法用于数据传输,因此保持当前的传输链路不变,即继续以当前使用的传输链路进行数据传输。
进一步地,一实施例中,步骤s30包括:
当未接收到基于当前使用的传输链路返回的所述重传数据包对应的应答报文,且未接收到基于另一传输链路返回的所述重传数据包对应的应答报文,则将发送窗口的大小减小为零。
本实施例中,当未接收到基于当前使用的传输链路返回的重传数据包对应的应答报文,且未接收到基于另一传输链路返回的重传数据包对应的应答报文,这种情况表明当前使用的传输链路拥塞与当前使用的传输链路的状态无关,很大可能是由于重传数据包的接收端出现了异常或其他传输过程中其他环节出了问题,此时即使进行链路切换也无法解决拥塞问题,因此不进行链路切换,但需将发送窗口的大小减小为零。之后,当检测到重传数据包的接收端恢复时(即收到重传数据包的接收端的心跳包时),再将发送窗口的大小恢复为原大小。
本实施例中,检测当前使用的传输链路是否拥塞;当当前使用的传输链路拥塞时,将重传数据包先通过另一传输链路发送,再通过当前使用的传输链路发送;根据所述重传数据包对应的应答报文的接收情况,进行传输策略调整。通过本实施例,无需增加额外的链路检测协议,即可根据重传数据包对应的应答报文的接收情况,自动调整传输策略,整个过程自动、且高效,保障了通信连接的正常。
第三方面,本发明实施例还提供一种传输策略调整装置。
一实施例中,参照图6,图6为本发明传输策略调整装置一实施例的功能模块示意图。如图6所示,传输策略调整装置包括:
检测模块10,用于检测当前使用的传输链路是否拥塞;
发送模块20,用于当当前使用的传输链路拥塞时,将重传数据包先通过另一传输链路发送,再通过当前使用的传输链路发送;
调整模块30,用于根据所述重传数据包对应的应答报文的接收情况,进行传输策略调整。
进一步地,一实施例中,调整模块30,用于:
当接收到基于当前使用的传输链路返回的所述重传数据包对应的应答报文,且接收到基于另一传输链路返回的所述重传数据包对应的应答报文,则分别计算两条传输链路的往返时延;
检测当前使用的传输链路的往返时延与另一传输链路的往返时延的差值是否大于或等于预设阈值;
若当前使用的传输链路的往返时延与另一传输链路的往返时延的差值大于或等于预设阈值,则进行传输链路切换。
进一步地,一实施例中,调整模块30,用于:
若当前使用的传输链路的往返时延与另一传输链路的往返时延的差值小于预设阈值,则减小发送窗口的大小。
进一步地,一实施例中,调整模块30,用于:
当接收到基于另一传输链路返回的所述重传数据包对应的应答报文,且未接收到基于当前使用的传输链路返回的所述重传数据包对应的应答报文,则进行传输链路切换。
进一步地,一实施例中,调整模块30,用于:
当接收到基于当前使用的传输链路返回的所述重传数据包对应的应答报文,且未接收到基于另一传输链路返回的所述重传数据包对应的应答报文,保持当前的传输链路不变。
进一步地,一实施例中,调整模块30,用于:
当未接收到基于当前使用的传输链路返回的所述重传数据包对应的应答报文,且未接收到基于另一传输链路返回的所述重传数据包对应的应答报文,则将发送窗口的大小减小为零。
进一步地,一实施例中,检测模块10,用于:
检测是否接收到相同的应答报文或接收应答报文超时;
若接收到相同的应答报文或接收应答报文超时,则确定当前使用的传输链路拥塞。
其中,上述传输策略调整装置中各个模块的功能实现与上述传输策略调整方法实施例中各步骤相对应,其功能和实现过程在此处不再一一赘述。
第四方面,本发明实施例还提供一种可读存储介质。
本发明可读存储介质上存储有传输策略调整程序,其中所述传输策略调整程序被处理器执行时,实现如上述的传输策略调整方法的步骤。
其中,传输策略调整程序被执行时所实现的方法可参照本发明传输策略调整方法的各个实施例,此处不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
1.一种传输策略调整方法,其特征在于,所述传输策略调整方法包括:
检测当前使用的传输链路是否拥塞;
当当前使用的传输链路拥塞时,将重传数据包先通过另一传输链路发送,再通过当前使用的传输链路发送;
根据所述重传数据包对应的应答报文的接收情况,进行传输策略调整。
2.如权利要求1所述的传输策略调整方法,其特征在于,所述根据所述重传数据包对应的应答报文的接收情况,进行传输策略调整的步骤包括:
当接收到基于当前使用的传输链路返回的所述重传数据包对应的应答报文,且接收到基于另一传输链路返回的所述重传数据包对应的应答报文,则分别计算两条传输链路的往返时延;
检测当前使用的传输链路的往返时延与另一传输链路的往返时延的差值是否大于或等于预设阈值;
若当前使用的传输链路的往返时延与另一传输链路的往返时延的差值大于或等于预设阈值,则进行传输链路切换。
3.如权利要求2所述的传输策略调整方法,其特征在于,在所述检测当前使用的传输链路的往返时延与另一传输链路的往返时延的差值是否大于或等于预设阈值的步骤之后,还包括:
若当前使用的传输链路的往返时延与另一传输链路的往返时延的差值小于预设阈值,则减小发送窗口的大小。
4.如权利要求1所述的传输策略调整方法,其特征在于,所述根据所述重传数据包对应的应答报文的接收情况,进行传输策略调整的步骤包括:
当接收到基于另一传输链路返回的所述重传数据包对应的应答报文,且未接收到基于当前使用的传输链路返回的所述重传数据包对应的应答报文,则进行传输链路切换。
5.如权利要求1所述的传输策略调整方法,其特征在于,所述根据所述重传数据包对应的应答报文的接收情况,进行传输策略调整的步骤包括:
当接收到基于当前使用的传输链路返回的所述重传数据包对应的应答报文,且未接收到基于另一传输链路返回的所述重传数据包对应的应答报文,保持当前的传输链路不变。
6.如权利要求1所述的传输策略调整方法,其特征在于,所述根据所述重传数据包对应的应答报文的接收情况,进行链路调整的步骤包括:
当未接收到基于当前使用的传输链路返回的所述重传数据包对应的应答报文,且未接收到基于另一传输链路返回的所述重传数据包对应的应答报文,则将发送窗口的大小减小为零。
7.如权利要求1至6中任一项所述的传输策略调整方法,其特征在于,所述检测当前使用的传输链路是否拥塞的步骤包括:
检测是否接收到相同的应答报文或接收应答报文超时;
若接收到相同的应答报文或接收应答报文超时,则确定当前使用的传输链路拥塞。
8.一种传输策略调整装置,其特征在于,所述传输策略调整装置包括:
检测模块,用于检测当前使用的传输链路是否拥塞;
发送模块,用于当当前使用的传输链路拥塞时,将重传数据包先通过另一传输链路发送,再通过当前使用的传输链路发送;
调整模块,用于根据所述重传数据包对应的应答报文的接收情况,进行传输策略调整。
9.一种传输策略调整设备,其特征在于,所述传输策略调整设备包括处理器、存储器、以及存储在所述存储器上并可被所述处理器执行的传输策略调整程序,其中所述传输策略调整程序被所述处理器执行时,实现如权利要求1至7中任一项所述的传输策略调整方法的步骤。
10.一种可读存储介质,其特征在于,所述可读存储介质上存储有传输策略调整程序,其中所述传输策略调整程序被处理器执行时,实现如权利要求1至7中任一项所述的传输策略调整方法的步骤。
技术总结