一种传输协议切换方法、装置、设备及存储介质与流程

文档序号:20947129发布日期:2020-06-02 19:56阅读:132来源:国知局
一种传输协议切换方法、装置、设备及存储介质与流程

本申请涉及互联网通信协议技术领域,具体涉及一种传输协议切换方法、装置、设备及存储介质。



背景技术:

通信系统互连参考模型有七层结构,从上到下分别是应用层、表示层、会话层、传输层、网络层、数据链路层和物理层。其中,传输层定义了主机应用程序之间端到端的连通,该层最为常见的两个协议分别是传输控制协议(transmissioncontrolprotocol,tcp)和用户数据报协议udp(userdatagramprotocol,udp)。

具体地,tcp是一种面向连接的传输层协议,提供可靠的传输服;udp是一种面向无连接的传输层协议,传输可靠性没有保证。在实际应用时,客户端利用一种传输层协议进行数据传输,然而,当网络状态发生变化时,需要用户手动配置数据传输协议,造成数据传输中断。



技术实现要素:

有鉴于此,本申请实施例提供一种传输协议切换方法、装置、设备及存储介质,以实现自动根据网络状态切换传输协议,保证数据正常传输。

为解决上述问题,本申请实施例提供的技术方案如下:

在本申请实施例第一方面,提供了一种传输协议切换方法,所述方法应用于客户端,所述方法包括:

通过第一传输协议向服务器发送心跳请求信息,其中,所述心跳请求信息包括所述客户端的标识;

确定是否在预设时间内接收到所述服务器在接收到所述心跳请求后发送的响应信息;

如果未在所述预设时间内接收到所述服务器发送的响应信息,则切换为第二传输协议,使用所述第二传输协议进行数据传输;所述第一传输协议和所述第二传输协议为不同的传输协议;

如果在所述预设时间内接收到所述服务器发送的响应信息,则使用所述第一传输协议进行数据传输。

在一种可能的实现方式中,其特征在于,所述第一传输协议和所述第二传输协议在tcp协议和udp协议之间进行切换。

在一种可能的实现方式中,当使用所述upd协议进行数据传输时,进行数据传输,包括:

使用所述udp协议和kcp协议进行数据传输。

在一种可能的实现方式中,所述使用所述udp协议和kcp协议进行数据传输,包括:

在待传输数据中添加序号字段,所述序号字段用于表示各个所述待传输数据的顺序;

将包括所述序号字段的待传输数据发送给所述服务器;

接收所述服务器发送的确认信息,所述确认信息包括所述序号字段;

根据待传输数据中的序号字段和所述确认信息中的序号字段,确定是否进行数据重传。

在一种可能的实现方式中,当使用所述tcp协议进行数据传输时,所述方法还包括:

向所述服务器发送建立连接请求,其中,所述建立连接请求包括第一发送序号;

接收所述服务器在接收到所述建立连接请求后发送的第一回复信息,其中所述第一回复信息包括第二发送序号和第一确认序号,所述第一确认序号等于所述第一发送序号增1;

向所述服务器发送第二回复信息,以实现与所述服务器建立连接,其中,所述第二回复信息包括第三发送序号和第二确认序号,所述第二确认序号等于所述第二发送序号增1。

在本申请实施例第二方面,提供了一种传输协议切换装置,所述装置应用于客户端,所述装置包括:

第一发送单元,用于通过第一传输协议向服务器发送心跳请求信息,其中,所述心跳请求信息包括所述客户端的标识;

确定单元,用于确定在预设时间内是否接收到所述服务器在接收到所述心跳请求后发送的响应信息;

切换单元,用于当所述确定单元的确定结果为未在所述预设时间内接收到所述服务器发送的响应信息,则切换为第二传输协议;

传输单元,用于使用所述第二传输协议进行数据传输,其中,所述第一传输协议和所述第二传输协议为不同的传输协议;

所述传输单元,还用于当所述确定单元的确定结果为在所述预设时间内接收到所述服务器发送的响应信息,则使用所述第一传输协议进行数据传输。

在一种可能的实现方式中,所述第一传输协议和所述第二传输协议在tcp协议和udp协议之间进行切换。

在一种可能的实现方式中,当使用所述upd协议进行数据传输时,所述传输单元,具体用于使用所述udp协议和kcp协议进行数据传输。

在一种可能的实现方式中,所述传输单元,包括:

添加子单元,用于在待传输数据中添加序号字段,所述序号字段用于表示各个所述待传输数据的顺序;

发送子单元,用于将包括所述序号字段的待传输数据发送给所述服务器;

接收子单元,用于接收所述服务器发送的确认信息,所述确认信息包括所述序号字段;

确定子单元,用于根据待传输数据中的序号字段和所述确认信息中的序号字段,确定是否进行数据重传。

在一种可能的实现方式中,当使用所述tcp协议进行数据传输时,,所述装置还包括:

第二发送单元,用于向所述服务器发送建立连接请求,其中,所述建立连接请求包括第一发送序号;

接收单元,用于接收所述服务器在接收到所述建立连接请求后发送的第一回复信息,其中所述第一回复信息包括第二发送序号和第一确认序号,所述第一确认序号等于所述第一发送序号增1;

第三发送单元,用于向所述服务器发送第二回复信息,以实现与所述服务器建立连接,其中,所述第二回复信息包括第三发送序号和第二确认序号,所述第二确认序号等于所述第二发送序号增1。

在本申请实施第三方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在终端设备上运行时,使得所述终端设备执行第一方面所述的传输协议切换方法。

在本申请实施例第四方面,提供了一种实现传输协议切换的设备,包括:存储器,处理器,及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现第一方面所述的传输协议切换方法。

由此可见,本申请实施例具有如下有益效果:

本申请实施例中客户端基于当前所使用的第一传输协议,向服务器发送心跳请求信息,以查看当前的网络状态是否处于活跃状态。如果当前网络状态处于活跃状态,则服务器可以在预设时间内向客户端发送响应信息。当客户端确定出在预设时间内接收到相应信息,则表明当前网络状态良好,则继续使用第一传输协议进行数据传输。当客户端确定出未在预设时间内接收到相应信息,则表明当前网络状态未处于活跃状态,则进行传输协议切换,利用切换后的传输协议进行数据传输。即,客户端可以根据网络状态变化实时切换传输协议,保证数据的正常传输。

附图说明

图1为本申请实施例提供的一种应用场景示意图;

图2为本申请实施例提供的一种传输协议切换方法流程图;

图3为本申请实施例提供的一种传输协议切换装置结构图;

图4为本申请实施例提供的一种实现传输协议切换的设备结构图。

具体实施方式

为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请实施例作进一步详细的说明。

为便于理解本申请实施例提供技术方案,参见图1所示应用场景实施例,其中,本实施例提供的传输协议切换方法可以应用于客户端10。

在实际应用时,客户端10可以按照预设周期向服务器20发送心跳请求信息,以便服务器在接收到心跳请求信息后可以及时发送响应信息。如果网络状态处于活跃状态,则服务器20可以及时向客户端10发送响应信息,则客户端10确定在预设时间内接收到响应信息,则无需进行传输协议的切换,继续利用当前的第一传输协议进行数据传输。如果网络状态处于不活跃状态,则服务器20可能无法及时向客户端10发送响应信息,则客户端10确定未在预设时间内接收到响应信息,则进行传输协议切换,利用第二传输协议进行数据传输。

本领域技术人员可以理解,图1所示的框架示意图仅是本申请的实施方式可以在其中得以实现的一个示例。本申请实施方式的适用范围不受到该框架任何方面的限制。

需要注意的是,客户端10可以承载于终端,该终端可以是现有的、正在研发的或将来研发的、能够通过任何形式的有线和/或无线连接(例如,wi-fi、lan、蜂窝、同轴电缆等)相互交互的任何用户设备,包括但不限于:现有的、正在研发的或将来研发的智能可穿戴设备、智能手机、非智能手机、平板电脑、膝上型个人计算机、桌面型个人计算机、小型计算机、中型计算机、大型计算机等。本申请的实施方式在此方面不受任何限制。还需要注意的是,本申请实施例中服务器20可以是现有的、正在研发的或将来研发的、能够进行数据发送和接收的设备的一个示例。本申请的实施方式在此方面不受任何限制。

基于上述说明,下面将结合附图对本申请实施例提供的传输协议切换方法进行说明,如图2所示的方法流程图,该方法可以应用于客户端,该方法可以包括:

s201:通过第一传输协议向服务器发送心跳请求信息。

本实施例中,客户端默认使用第一传输协议进行数据传输,在数据传输过程中,可以实时或按照预设周期向服务器发送心跳请求信息,以监控当前网络状态的变化。其中,心跳请求信息中包括客户端的标识,以使得服务器可以获知自身所接收的心跳请求信息所属的客户端。

其中,第一传输协议可以为tcp协议,该tcp协议是面向连接的、可靠的进程到进程通信的协议。tcp协议可以提供双全工服务,即数据可在同一时间双向传输,每一个tcp协议都有发送缓存和接收缓存,用来临时储存数据。第一传输协议也可以为udp协议,该udp协议是一个无连接、不保证可靠性的传输协议,其与tcp协议都处于传输层,虽不能保证可靠性,但在数据传输过程中延迟小、数据传输效率高。

s202:确定是否在预设时间内接收到服务器在接收到心跳请求后发送的响应信息,如果否,则执行s203;如果是,则执行s204。

可以理解的是,如果网络状态较为活跃,则服务器可以及时向客户端发送响应信息,则表明客户端可以在预设时间内接收到服务器发送的响应信息,则执行s204。如果网络状态为非活跃状态,则服务器无法及时或无法向客户端发送响应信息,则客户端无法在预设时间内接收到服务器发送的响应信息,则执行s203。

其中,预设时间可以根据实际应用情况进行设定,例如1秒、2秒等,本实施例在此不做限定。

s203:切换为第二传输协议,使用第二传输协议进行数据传输。

即,如果客户端未在预设时间内接收到服务器发送的响应信息,则切换为第二传输协议,以便利用第二传输协议进行数据传输。其中,第一传输协议和第二传输协议为不同的传输协议。可以理解的是,当第一传输协议为tcp协议时,第二传输协议可以为udp协议,当第一传输协议为udp协议时,第二传输协议为tcp协议。即,第一传输协议和第二传输协议在tcp协议和udp协议之间进行切换。

需要说明的是,当利用tcp协议进行数据传输时,由于tcp协议为面向连接的协议,因此在利用tcp协议进行数据传输之前,客户端需要服务器建立连接,具体为:

1)向服务器发送建立连接请求。

本实施例中,当客户端利用tcp协议进行数据传输时,先向服务器发送建立连接请求,该建立连接请求中包括第一发送序号。具体地,客户端向服务器发送同步序列编号(synchronizesequencenumbers,syn)报文,该syn报文中携带第一发送序号seq=x。

2)接收服务器在接收到建立连接请求后发送的第一回复信息。

当服务器接收到客户端发送的建立请求后,向客户端发送第一回复信息,该第一回复信息中包括第二发送序号和第一确认信号,其中,第一确认序号等于第一发送序号加1。具体地,服务器向客户端回复syn+ack报文,其中syn报文中的第二发送序号seq=y,ack报文中的第一确认序号ack=x+1。

3)向服务器发送第二回复信息,以实现与服务器建立连接。

客户端在接收到服务器发送的第一回复信息,再向服务器发送第二回复信息,该第二回复信息包括第二确认信号,该第二确认信号等于第二发送序号增1。具体地,客户端向服务器发送ack报文,该ack报文中包括第二确认信号ack=y+1。

经过上述信令交互,客户端与服务器成功建立连接,则可以利用tcp协议进行数据传输。

s204:则使用第一传输协议进行数据传输。

如果在预设时间内接收到服务器发送的响应信息,则继续使用第一传输协议进行数据传输。

可以理解的是,udp协议为无连接的协议,其传输过程不可靠,会出现丢包等情况,为保证在利用udp协议传输时可以获知丢包请求,可以将udp协议和kcp协议结合使用,利用该udp协议和kcp协议进行数据传输。其中,kcp协议是传输层的一个具有可靠性的传输层协议。具体地,可以通过以下方式实现:

1)在待传输数据中添加序号字段,其中,序号字段用于表示各个所述待传输数据的顺序。

2)将包括序号字段的待传输数据发送给所述服务器。

本实施例中,客户端在进行数据传输之前,在待传输数据中添加序号字段,该序号字段用于表示各个待传输数据的顺序。具体地,该序号字段按照每个待传输数据的发送顺序依次增加。同时,将添加序号字段的待传输数据发送的服务器。

3)接收服务器发送的确认信息,确认信息包括序号字段。

服务器在接收到客户端发送的待传输数据后,从该待传输数据中提取序号字段,并生成确认信息,向客户端发送该确认信息,以告知客户端已正确接收待传输数据。由于确认信息中包括序号字段,客户端可以根据该序号字段确认服务器已经接收该序号字段对应的待传输数据。

4)根据待传输数据中的序号字段和确认信息中的序号字段,确定是否进行数据重传。

可以理解的是,由于待传输数据中的序号字段与确认信息中的序号字段相同,因此当客户端接收到确认信息后,可以根据自身发送的待传输数据中的序号字段与确认信息中的序号字段确定哪些待传输数据丢失,进而确定数据重传。例如,客户端向服务器发送序号字段为1、2、3、4、5的待传输数据,但接收的确认信息的序号字段为1、2、4、5,则表明序号字段3的待传输数据未被服务器正确接收,则可以重传序号字段为3的待传输数据。

基于上述描述可知,客户端基于当前所使用的第一传输协议,向服务器发送心跳请求信息,以查看当前的网络状态是否处于活跃状态。如果当前网络状态处于活跃状态,则服务器可以在预设时间内向客户端发送响应信息。当客户端确定出在预设时间内接收到相应信息,则表明当前网络状态良好,则继续使用第一传输协议进行数据传输。当客户端确定出未在预设时间内接收到相应信息,则表明当前网络状态未处于活跃状态,则进行传输协议切换,利用切换后的传输协议进行数据传输。即,客户端可以根据网络状态变化实时切换传输协议,保证数据的正常传输。

基于上述方法实施例,本申请实施例提供了一种传输协议切换装置,如图3所示,该装置应用于客户端,该装置可以包括:

第一发送单元301,用于通过第一传输协议向服务器发送心跳请求信息,其中,所述心跳请求信息包括所述客户端的标识;

确定单元302,用于确定在预设时间内是否接收到所述服务器在接收到所述心跳请求后发送的响应信息;

切换单元303,用于当所述确定单元的确定结果为未在所述预设时间内接收到所述服务器发送的响应信息,则切换为第二传输协议;

传输单元304,用于使用所述第二传输协议进行数据传输,其中,所述第一传输协议和所述第二传输协议为不同的传输协议;

所述传输单元,还用于当所述确定单元的确定结果为在所述预设时间内接收到所述服务器发送的响应信息,则使用所述第一传输协议进行数据传输。

在一些可能的实现方式中,所述第一传输协议和所述第二传输协议在tcp协议和udp协议之间进行切换。

在一些可能的实现方式中,当使用所述upd协议进行数据传输时,所述传输单元,具体用于使用所述udp协议和kcp协议进行数据传输。

在一些可能的实现方式中,所述传输单元,包括:

添加子单元,用于在待传输数据中添加序号字段,所述序号字段用于表示各个所述待传输数据的顺序;

发送子单元,用于将包括所述序号字段的待传输数据发送给所述服务器;

接收子单元,用于接收所述服务器发送的确认信息,所述确认信息包括所述序号字段;

确定子单元,用于根据待传输数据中的序号字段和所述确认信息中的序号字段,确定是否进行数据重传。

在一些可能的实现方式中,当所述第一传输协议为udp协议,所述第二传输协议为tcp协议时,所述切换为第二传输协议之后,所述装置还包括:

第二发送单元,用于向所述服务器发送建立连接请求,其中,所述建立连接请求包括第一发送序号;

接收单元,用于接收所述服务器在接收到所述建立连接请求后发送的第一回复信息,其中所述第一回复信息包括第二发送序号和第一确认序号,所述第一确认序号等于所述第一发送序号增1;

第三发送单元,用于向所述服务器发送第二回复信息,以实现与所述服务器建立连接,其中,所述第二回复信息包括第三发送序号和第二确认序号,所述第二确认序号等于所述第二发送序号增1。

需要说明的是,本实施例中各个单元的实现可以参见上述方法实施例,本实施例在此不再赘述。

另外,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在终端设备上运行时,使得所述终端设备执行所述的传输协议切换方法。

本申请实施例提供了一种实现传输协议切换的设备,包括:存储器,处理器,及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现所述的传输协议切换方法。

具体地,参见图4,该图为本申请实施例提供的实现传输协议切换设备的结构示意图。图4所示的切换设备400包括至少一个处理器401、以及与处理器401连接的至少一个存储器402、总线403;其中,处理器401、存储器402通过总线403完成相互间的通信;处理器401用于调用存储器402中的程序指令,以执行以上实施例任意一项所述的传输协议切换方法。

基于上述描述可知,客户端基于当前所使用的第一传输协议,向服务器发送心跳请求信息,以查看当前的网络状态是否处于活跃状态。如果当前网络状态处于活跃状态,则服务器可以在预设时间内向客户端发送响应信息。当客户端确定出在预设时间内接收到相应信息,则表明当前网络状态良好,则继续使用第一传输协议进行数据传输。当客户端确定出未在预设时间内接收到相应信息,则表明当前网络状态未处于活跃状态,则进行传输协议切换,利用切换后的传输协议进行数据传输。即,客户端可以根据网络状态变化实时切换传输协议,保证数据的正常传输。

需要说明的是,本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统或装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

应当理解,在本申请中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“a和/或b”可以表示:只存在a,只存在b以及同时存在a和b三种情况,其中a,b可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。

还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1