数据传输的方法、装置和系统与流程

文档序号:16629493发布日期:2019-01-16 06:26阅读:123来源:国知局
数据传输的方法、装置和系统与流程

本申请涉及通信技术领域,特别涉及一种数据传输的方法、装置和系统。



背景技术:

随着计算机技术和网络技术的发展,越来越多的智能终端使用无线技术接入网络,智能终端使用无线技术接入网络的方式是:智能终端与访问控制点设备(如路由器等)之间建立无线连接,由于访问控制点设备已接入网络,所以智能设备与访问控制点设备建立无线连接后,智能设备便接入网络,进而可以与网络侧的服务器进行数据传输。

在智能终端使用无线技术接入网络后,服务器(后续可以称为发送端)与智能终端(后续可以称为接收端)传输数据报文时,为了保证接收端可以可靠的接收发送端发送的数据报文,发送端与接收端之间一般使用传输控制协议(transmissioncontrolprotocol,tcp)传输数据,tcp是一种面向连接的、可靠的、基于字节流的传输层通信协议,使用tcp传输数据之前发送端和接收端需要通过三次握手建立tcp连接,而且使用tcp传输数据时接收端接收到数据报文后会向发送端反馈确认字符(acknowledgement,ack)报文,如果发送端确定接收端未反馈某个数据报文对应的ack报文,发送端会重传该数据报文,这样,就可以保证接收端可以可靠的接收到数据报文。

发送端仅是向接收端传输数据报文,并接收来自接收端反馈的ack报文,并不清楚接收端与访问控制点设备之间的链路状态,这样,发送端向接收端传输数据报文时,并不能基于接收端与访问控制点设备之间的链路状态传输数据报文,从而导致数据报文的传输效率比较低。



技术实现要素:

为了解决现有技术的问题,本发明实施例提供了一种数据传输的方法、装置和系统。所述技术方案如下:

第一方面,提供了一种数据传输的方法,该方法应用于终端中,终端与访问控制点设备之间建立有无线链路,终端与服务器之间建立有传输控制协议tcp连接,无线链路用于承载tcp连接,该方法包括:终端通过链路层确定无线链路的链路状态信息,将链路状态信息由链路层发送至传输层;终端通过传输层向服务器发送对应链路状态信息的链路通知。

本发明实施例所示的方案,终端与访问控制点设备之间建立有无线链路,终端与服务器之间建立有tcp连接,无线链路用于承载tcp连接,终端可以通过链路层确定无线链路的链路状态信息,然后发送至传输层。终端可以基于无线链路的链路状态信息,确定对应的链路通知,然后将链路通知发送至服务器。

在一种可能的实现方式中,当终端通过链路层检测到无线链路在断开后恢复连接时,将用于表示无线链路已恢复连接的链路状态信息发送至传输层。

本发明实施例所示的方案,访问控制点设备与终端建立无线链路后,访问控制点设备周期性向终端发送检测报文,检测报文用于终端确定无线链路的通断,如果终端持续一段时长未接收到访问控制点设备发送的检测报文,则确定无线链路断开,当再次接收到访问控制点设备发送的检测报文时,确定无线链路在断开后恢复连接。此时终端可以将用于表示无线链路已恢复连接的链路状态信息发送至传输层。

在一种可能的实现方式中,如果终端通过传输层最后一次接收服务器发送的数据报文的时间点距当前时间点的时长超过预设时长阈值,则通过传输层向服务器发送对应链路状态信息的链路通知。

其中,预设时长阈值可以由技术人员提前设置,并且存储至终端中,如200ms等,预设时长阈值一般可以与服务器确定一个数据报文传输失败的时长相等,例如,服务器在向终端传输一个数据报文之后的200ms内未接收到终端反馈的ack报文,确定该数据传输失败,预设时长阈值可以200ms,此处提到的传输一个数据报文指第一次传输该数据报文,而不是指重传该数据报文。

本发明实施例所示的方案,终端的传输层接收到链路层发送的链路状态信息后,可以确定终端通过传输层最后一次接收服务器发送的数据报文的时间点,如果该时间点距当前时间点的时长超过预设时长阈值,则终端可以确定对应链路状态信息的链路通知,然后通过传输层向服务器发送该链路通知,该链路通知用于通知服务器无线链路已恢复连接。

在一种可能的实现方式中,链路通知为ack报文,其中,ack报文的确认号(acknowledgementnumber)为终端希望接收到服务器发送的数据报文的序列号(sequencenumber)。

本发明实施例所示的方案,链路通知为ack报文,ack报文的确认号为终端希望接收到服务器发送的数据报文的序列号,此处可以分两种情况来理解,如果终端接收到的服务器发送的数据报文的序列号未发生间断,则终端希望接收到服务器发送的数据报文的序列号为终端最后接收自服务器的数据报文的后一个数据报文的序列号,如果终端接收到的服务器发送的数据报文的序列号发生间断,则终端希望接收到服务器发送的数据报文的序列号为发生间断处的序列号。例如,上述提到的两种情况中,第一种情况是终端接收到数据报文的序列号是1、2、3,终端希望接收到序列号为4的数据报文,ack报文的确认号为4,第二种情况是终端接收到数据报文的序列号是1、2、3、5、6,终端未接收到序列号为4的数据报文,终端希望接收到序列号为4的数据报文,ack报文的确认号为4。这样,服务器接收到ack报文后,可以向终端发送与ack报文的确认号相等的序列号的数据报文。

在一种可能的实现方式中,终端按照预设的周期,通过传输层向服务器发送对应链路状态信息的链路通知。

其中,预设的周期可以由技术人员预设,并且存储至终端中。

在一种可能的实现方式中,链路状态信息包括信号等级、链路质量和链路比特率中的一种或多种。

在一种可能的实现方式中,终端接收访问控制点设备周期性发送的检测报文;

终端通过链路层基于接收检测报文的信号强度,确定链路状态信息。

本发明实施例所示的方案,访问控制点设备可以每隔预设周期向终端发送检测报文,终端可以通过链路层基于接收检测报文的信号强度,来确定链路状态信息,例如,终端可以预先存储接收检测报文的信号强度范围与信号等级、链路质量和链路比特率的对应关系,终端可以确定出接收检测报文的信号强度,然后确定该信号强度所属的信号强度范围,进而从上述对应关系中,确定出信号等级、链路质量和链路比特率。或者,终端也可以基于接收检测报文的信号强度,使用相应的关系式来确定信号等级、链路质量和链路比特率。

在一种可能的实现方式中,终端通过传输层在ack报文的扩展字段携带对应链路状态信息的链路通知发送至服务器。

本发明实施例所示的方案,ack报文中设置有扩展字段,在扩展字段中携带对应链路状态信息的链路通知,

在一种可能的实现方式中,终端通过传输层在带外消息携带对应链路状态信息的链路通知发送至服务器。

其中,带外消息可以是短信、除tcp连接之外的其它连接中的消息、其它网络中的消息等。

第二方面,提供了一种数据传输的方法,该方法应用于服务器中,服务器与终端之间建立有传输控制协议tcp连接,终端与访问控制点设备之间建立有无线链路,无线链路用于承载tcp连接,该方法包括:

服务器通过传输层接收终端发送的对应链路状态信息的链路通知;

服务器基于链路通知,对tcp连接进行数据传输管理。

本发明实施例所示的方案,服务器通过传输层接收到终端发送的对应链路状态信息的链路通知后,可以基于该链路通知,对与终端建立的tcp进行数据传输管理,如调整数据传输的速度、重传待重传数据报文等。

在一种可能的实现方式中,链路通知用于通知服务器无线链路已恢复连接;

服务器获取对应终端的待重传的数据报文,向终端发送待重传的数据报文。

本发明实施例所示的方案,如果链路通知用于通知服务器无线链路已恢复连接,服务器获取对应该终端的待重传的数据报文,然后立即向终端发送待重传的数据报文,这样,服务器可以及时的将数据报文传输至终端,提高数据传输效率。

在一种可能的实现方式中,链路状态信息包括信号等级、链路质量和链路比特率中的一种或多种;

服务器基于链路通知,调整向终端传输数据的传输速率。

本发明实施例所示的方案,服务器接收到链路通知后,还可以解析得到链路通知中携带的信号等级、链路质量和链路比特率,服务器中可以预先存储有信号等级对应的第一加权值、链路质量的第二加权值、链路比特率对应的第三加权值,服务器可以将解析得到的信号等级与第一加权值相乘,得到第一乘积,并可以将解析得到的链路质量与第二加权值相乘,得到第二乘积,并可以将解析得到的链路比特率与第三加权值相乘,得到第三乘积,然后计算第一乘积、第二乘积和第三乘积之和,确定计算出的加权值所属的加权值范围,然后从预先存储的加权值范围与传输速率的对应关系中,查找到传输速率,从而可以提高数据传输效率。

第三方面,提供了一种终端,该终端包括处理器、发射器和接收器,所述处理器通过执行指令来实现上述第一方面所提供的数据传输的方法。

第四方面,提供了一种服务器,该服务器包括处理器、发射器和接收器,所述处理器通过执行指令来实现上述第二方面所提供的数据传输的方法。

第五方面,提供了一种终端,该终端包括至少一个模块,该至少一个模块用于实现上述第一方面所提供的数据传输的方法。

第六方面,提供了一种服务器,该服务器包括至少一个模块,该至少一个模块用于实现上述第二方面所提供的数据传输的方法。

第七方面,提供了一种计算机可读存储介质,计算机可读存储介质存储有指令,当计算机可读存储介质在终端上运行时,使得终端执行上述第一方面所提供的数据传输的方法。

第八方面,提供了一种计算机可读存储介质,计算机可读存储介质存储有指令,当所述计算机可读存储介质在服务器上运行时,使得服务器执行上述第二方面所提供的数据传输的方法。

第九方面,提供了一种包含指令的计算机程序产品,当其在终端上运行时,使得终端执行上述第一方面所提供的数据传输的方法。

第十方面,提供了一种包含指令的计算机程序产品,当其在服务器上运行时,使得服务器执行上述第二方面所提供的数据传输的方法。

第十一方面,提供了一种数据传输的系统,该系统包括:终端,如第三方面所述的终端,服务器,如第四方面所述的服务器。

本发明实施例提供的技术方案带来的有益效果是:

本发明实施例中,终端通过链路层确定无线链路的链路状态信息,将链路状态信息由链路层发送至传输层,终端通过传输层向服务器发送对应链路状态信息的链路通知,服务器可以基于链路通知,对tcp连接进行数据传输管理。这样,由于终端向服务器发送对应链路状态信息的链路通知,服务器可以得到终端与访问控制点设备之间的无线链路的链路状态信息,从而可以及时的对tcp连接进行数据传输管理,进而可以提高数据传输效率。

附图说明

图1是本发明实施例提供的一种数据传输的系统框架示意图;

图2是本发明实施例提供的一种终端的结构示意图;

图3是本发明实施例提供的一种服务器的结构示意图;

图4是本发明实施例提供的一种数据传输的流程示意图;

图5(a)是本发明实施例提供的一种通过链路层向传输层传输链路状态信息的示意图;

图5(b)是本发明实施例提供的一种检测报文的发送示意图;

图6是本发明实施例提供的一种数据传输的流程示意图;

图7是本发明实施例提供的一种数据传输的流程示意图;

图8是本发明实施例提供的一种数据传输的流程示意图;

图9是本发明实施例提供的一种终端的结构示意图;

图10是本发明实施例提供的一种终端的结构示意图;

图11是本发明实施例提供的一种服务器的结构示意图;

图12是本发明实施例提供的一种服务器的结构示意图。

具体实施方式

为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。

为了便于对本发明实施例的理解,下面首先介绍本发明实施例涉及的系统架构、以及所涉及到名词的概念。

本发明实施例可以适用于数据传输系统,如图1所示,数据传输系统中包括终端、访问控制点设备和服务器,终端可以是手机、电脑等能接入无线网络的设备,访问控制点设备可以是无线路由器等,服务器可以是与终端传输数据报文的任意服务器。终端与访问控制点设备之间建立有无线链路,访问控制点设备与服务器之间建立有有线链路,终端与服务器之间有数据报文要传输时,可以通过tcp三次握手,建立tcp连接。终端可以同时与一个或多个服务器建立tcp连接。

本发明实施例提供了一种数据传输的方法,该方法的执行主体可以是终端和服务器。

如图2所示,终端可以包括接收器210、处理器220和发射器230,其中,接收器210可以用于接收服务器发送的数据报文,发射器230可用于实现数据和消息的发送,处理器220通过运行软件程序以及模块,从而执行各种功能应用以及数据处理。

处理器220是终端的控制中心,利用各种接口和线路连接整个终端的各个部分,通过运行软件程序以及模块,执行各种功能应用以及数据处理,从而对终端进行整体监控。可选的,处理器220可以包括一个或者一个以上处理单元,该处理单元可以是中央处理单元(centralprocessingunit,cpu)或者网络处理器(networkprocessor,np)等。

如图3所示,服务器可以包括接收器310、处理器320和发射器330,其中,接收器310可以用于实现数据和消息的接收,发射器330可以用于实现数据和消息的发送,处理器320通过运行软件程序以及模块,从而执行各种功能应用以及数据处理。

处理器320是服务器的控制中心,利用各种接口和线路连接整个服务器的各个部分,通过运行软件程序以及模块,执行各种功能应用以及数据处理,从而对服务器进行整体监控。可选的,处理器320可以包括一个或者一个以上处理单元,该处理单元可以是中央处理单元或者网络处理器等。

如图4所示,本发明实施例提供了一种数据传输的方法,该方法的处理流程可以包括如下的步骤:

步骤401,终端通过链路层确定无线链路的链路状态信息,将链路状态信息由链路层发送至传输层。

在实施中,用户可以打开终端中的无线保真(wirelessfidelity,wifi)功能,终端则会检测到环境中的访问控制点设备,然后用户通过输入接入访问控制点设备的密码,与访问控制点设备建立无线链路。终端与服务器进行传输数据报文之前,可以通过tcp三次握手与服务器建立tcp连接,在传输数据报文的过程中,终端可以通过链路层确定无线链路的链路状态信息,然后将链路状态信息发送至传输层。链路状态信息在终端的传输示意图为图5(a),终端包括物理层、链路层、网络层和传输层,终端通过链路层将链路状态信息经过网络层传输至传输层。

需要说明的是,本发明实施例中提到的数据报文可以是任意数据报文,如视频数据、音频数据、文本数据等,本发明实施例不做限定。

步骤402,终端通过传输层向服务器发送对应链路状态信息的链路通知。

在实施中,终端的传输层接收到链路层发送的链路状态信息后,可以确定对应链路状态信息的链路通知,然后通过传输层向服务器发送该链路通知。

步骤403,服务器通过传输层接收终端发送的对应链路状态信息的链路通知。

步骤404,服务器基于链路通知,对tcp连接进行数据传输管理。

在实施中,服务器通过传输层接收到终端发送的对应链路状态信息的链路通知后,可以基于该链路通知,对与终端建立的tcp连接进行数据传输管理,如调整数据传输的速度、重传待重传数据报文等。

如图6所示,本发明另一实施例还提供了终端向服务器发送用于通知无线链路已恢复的链路通知,相应的步骤可以如下:

步骤601,当终端通过链路层检测到无线链路在断开后恢复连接时,将用于表示无线链路已恢复连接的链路状态信息发送至传输层。

在实施中,终端与访问控制点设备建立无线链路(建立无线链路的详细过程见步骤401中),如图5(b)所示,访问控制点设备可以每隔预设周期通过自己的链路层向终端发送检测报文,终端可以通过链路层接收到检测报文,然后基于接收检测报文的情况,确定无线链路的通断,如果终端最后一次接收到访问控制点设备发送的检测报文的时间点距当前时间点的时长超过一定数值,或者终端持续n(n为预设正整数)个预设周期未接收到访问控制点设备发送的检测报文,则可以确定无线链路已断开。当终端通过链路层确定再次接收到检测报文时,可以确定无线链路在断开后又恢复连接,终端可以将用于表示无线链路已恢复连接的链路状态信息发送至传输层。

可选的,检测报文可以是信标(beacon)帧,也可以是其它报文,本发明实施例不做限定。

需要说明的是,预设周期可以由技术人员预设,并且存储至终端中,如10ms等。

可选的,链路状态信息中还可以包括信号等级、链路质量和链路比特率中的一种或多种。

在实施中,访问控制点设备可以每隔预设周期向终端发送检测报文,终端可以通过链路层基于接收检测报文的信号强度,来确定链路状态信息,例如,终端可以预先存储接收检测报文的信号强度范围与信号等级、链路质量和链路比特率的对应关系,终端可以确定出接收检测报文的信号强度,然后确定该信号强度所属的信号强度范围,进而从上述对应关系中,确定出信号等级、链路质量和链路比特率。或者,终端也可以基于接收检测报文的信号强度,使用相应的关系式来确定信号等级、链路质量和链路比特率。

步骤602,终端通过传输层向服务器发送对应链路状态信息的链路通知。

在实施中,终端的传输层接收到链路层发送的链路状态信息后,由于该链路状态信息用于表示无线链路已恢复连接,终端可以确定对应链路状态信息的链路通知,为用于通知服务器无线链路已恢复连接的通知,然后通过传输层向服务器发送该链路通知。

需要说明的是,在步骤601中,链路状态信息中还包括信号等级、链路质量和链路比特率中的一种或多种。相应的步骤602中发送的链路通知中也携带有相应的链路状态信息。

可选的,终端通过传输层向服务器发送链路通知之前,还需要判断最后一次接收服务器发送的数据报文的时间点距当前时间点的时长是否超过预设时长阈值,相应的步骤602的处理可以如下:

如果终端通过传输层最后一次接收服务器发送的数据报文的时间点距当前时间点的时长超过预设时长阈值,则通过传输层向服务器发送对应链路状态信息的链路通知。

其中,预设时长阈值可以由技术人员提前设置,并且存储至终端中,如200ms等,预设时长阈值一般可以与服务器确定一个数据报文传输失败的时长相等,例如,服务器在向终端传输一个数据报文之后的200ms内未接收到终端反馈的ack报文,确定该数据传输失败,预设时长阈值可以200ms,此处提到的传输一个数据报文指第一次传输该数据报文,而不是指重传该数据报文。

在实施中,终端的传输层接收到链路层发送的链路状态信息后,可以确定终端通过传输层最后一次接收服务器发送的数据报文的时间点,然后计算该时间点距当前时间点的时长。如果该时间点距当前时间点的时长超过预设时长阈值,则终端可以确定对应链路状态信息的链路通知,然后通过传输层向服务器发送该链路通知,该链路通知用于通知服务器无线链路已恢复连接。例如,预设时长阈值为200ms,终端最后一次接收服务器发送的数据报文的时间点为10:20:30,当前时间点为10:20:31,最后一次接收服务器发送的数据报文的时间点距当前时间点的时长为1s,大于预设时长阈值,终端可以通过传输层向服务器发送对应链路状态信息的链路通知。

可选的,终端通过链路层向服务器发送对应链路状态信息的链路通知的方法有多种,以下给出三种可行的方式:

方式一:链路通知为ack报文。

其中,ack报文的确认号为终端希望接收到服务器发送的数据报文的序列号,此处可以分两种情况来理解,如果终端接收到的服务器发送的数据报文的序列号未发生间断,则终端希望接收到服务器发送的数据报文的序列号为终端最后接收自服务器的数据报文的后一个数据报文的序列号,如果终端接收到的服务器发送的数据报文的序列号发生间断,则终端希望接收到服务器发送的数据报文的序列号为发生间断处的序列号。例如,上述的两种情况中,第一种情况是终端接收到数据报文的序列号是1、2、3,终端已接收到序列号为3的数据报文,希望接收到序列号为4的数据报文,ack报文的确认号为4,第二种情况是终端接收到数据报文的序列号是1、2、3、5、6,终端未接收到序列号为4的数据报文,希望接收到序列号为4的数据报文,ack报文的确认号为4。

在实施中,现有技术中,终端在接收到服务器发送的数据报文后,会向服务器反馈ack报文,并且该ack报文的确认号为终端希望的数据报文的序列号,服务器接收到终端发送的ack报文后,向终端发送与ack报文的确认号相等的序列号的数据报文,例如,终端接收到服务器发送的序列号为100的数据报文,向服务器发送的ack报文的确认号为101,服务器向终端发送序列号为101的数据报文。

此处链路通知为ack报文,ack报文的确认号为终端希望接收到服务器发送的数据报文的序列号,这样,服务器在传输数据报文失败后,接收到ack报文,服务器确定终端与访问控制点设备之间的链路恢复,可以向终端发送与ack报文的确认号相等的序列号的数据报文。

需要说明的是,一般终端向服务器发送ack报文都是在接收到数据报文后进行发送,而本发明实施例中是在无线链路断开又恢复后,终端向服务器发送ack报文,以使服务器重传待重传的数据报文。

方式二:终端通过传输层在ack报文的扩展字段携带对应链路状态信息的链路通知发送至服务器。

在实施中,ack报文中设置有扩展字段,在扩展字段中携带对应链路状态信息的链路通知,即终端可以通过传输层在ack报文的扩展字段携带对应链路状态信息的链路通知发送至服务器。

例如,ack报文的扩展字段为“otheroptions”,链路通知为resumed,携带方式可以如下:

tcpoptions:

…//otheroptions

linkstate:resumed.

方式三:终端通过传输层在带外消息携带对应链路状态信息的链路通知发送至服务器。

其中,带外消息可以是短信、除tcp连接之外的其它连接中传输的消息、其它网络中传输的消息等。

在实施中,终端确定链路通知后,还可以通过传输层在带外消息携带对应链路状态信息的链路通知发送至服务器。

步骤603,服务器通过传输层接收终端发送的对应链路状态信息的链路通知。

步骤604,服务器获取对应终端的待重传的数据报文,向终端发送待重传的数据报文。

在实施中,服务器接收到终端发送的对应链路状态信息的链路通知后,如果该链路通知是用于服务器无线链路已恢复连接的通知,服务器可以获取传输失败的数据报文,即待重传的数据报文,然后向终端发送待重传的数据报文。

可选的,如果链路通知中携带有信号等级、链路质量和链路比特率中的一种或多种,服务器接收到链路通知后,还可以解析得到链路通知中携带的信号等级、链路质量和链路比特率,服务器中可以预先存储有信号等级对应的第一加权值、链路质量的第二加权值、链路比特率对应的第三加权值,服务器可以将解析得到的信号等级与第一加权值相乘,得到第一乘积,并可以将解析得到的链路质量与第二加权值相乘,得到第二乘积,并可以将解析得到的链路比特率与第三加权值相乘,得到第三乘积,然后计算第一乘积、第二乘积和第三乘积之和,确定计算出的加权值所属的加权值范围,然后从预先存储的加权值范围与传输速率的对应关系中,查找到传输速率。如果确定出的传输速率变小,可以将每次传输的数据报文对应的数据量变小,如果确定出的传输速率变大,可以将每次传输的数据报文对应的数据量变大。

需要说明的是,第一加权值、第二加权值和第三加权值可以由技术人员预设,并且存储至服务器中,第一加权值、第二加权值和第三加权值之和为1,例如,第一加权值为0.3,第二加权值为0.4,第三加权值0.4。

现有技术中,服务器向终端发送数据报文之后2nt时长内未接收到该数据报文对应的ack报文(n为重传次数n大于等于0,2nt为重传等待时长),服务器则会向终端重新传输该数据报文,直到服务器接收到终端发送的该数据报文对应的ack报文,或者达到最大重传次数,服务器不再向终端发送该数据报文。由于终端与访问控制点设备之间是无线链路,二者之间的链路容易受到干扰源(如微波炉等)的信号干扰,而出现短暂的链路断开现象,采用上述重传方式,当终端与访问控制点设备之间的无线链路在断开之后又快速的恢复时,如果还未达到重传等待时长,服务器还需等待一段时长才能进行重传,从而导致数据传输效率比较低。而本发明实施例中,在终端检测到无线链路在断开又恢复时,会及时向服务器发送链路通知,以通知服务器可以重传数据报文,而不需要等到重传等待时长,可以及时的进行数据报文的传输,从而可以提高数据传输效率。

例如,如图7所示,t为200ms,终端在接收到服务器发送的序列号为100的数据报文后,终端向服务器发送确认号为101的ack报文,此后,终端与访问控制点设备之间的无线链路断开,服务器向终端发送的序列号为101的数据报文丢失,服务器在时间点10.000向终端发送序列号为101的数据报文,当服务器在时间点10.200未接收到终端发送的序列号为101的ack报文时,服务器可以向终端重传序列号为101的数据报文,当服务器在时间点10.600未接收到终端发送的确认号为101的ack报文时,服务器可以向终端重传序列号为101的数据报文,终端在时间点10.800之前确定无线链路已恢复正常,即终端与访问控制点设备之间的链路已恢复,服务器也只能在时间点11.400未接收到终端发送的确认号为101的ack报文时,才可以向终端重传序列号为101的数据报文,可见采用现有技术的方式,在时间点11.400才能向终端重传序列号为101的数据报文。而采用本发明实施例中的方式,终端在时间点10.800之前确定无线链路已恢复正常时,可以向服务器发送链路通知,服务器接收到链路通知后,确定终端与访问控制点设备之间的无线链路已恢复,可以向终端重传序列号为101的数据报文,这样,在时间点10.800时,服务器就可以向终端重传序列号为101的数据报文,终端接收到序列号为101的数据报文后,向服务器发送确认号为102的ack报文,相对于现有技术,可以尽早的将待重传的数据报文传输至终端,可以提高数据传输效率。

如图8所示,本发明另一实施例还提供了链路通知中携带有链路状态信息的方法,相应的步骤可以如下:

步骤801,终端接收访问控制点设备周期性发送的检测报文;终端通过链路层基于接收检测报文的信号强度,确定链路状态信息,将链路状态信息由链路层发送至传输层。

其中,链路状态信息包括信号等级、链路质量和链路比特率中的一种或多种,检测报文可以是beacon帧,也可以是其它报文,本发明实施例不做限定。访问控制点设备发送检测报文的周期可以是预设周期,可以由技术人员预设,并且存储至终端中,如10ms等。

在实施中,终端与访问控制点设备建立无线链路(建立无线链路的详细过程见步骤401中),如图5(b)所示,访问控制点设备可以每隔预设周期通过链路层向终端发送检测报文,终端可以通过链路层接收检测报文,并通过链路层基于接收检测报文的信号强度,确定出无线链路的链路状态信息,例如,终端可以预先存储接收检测报文的信号强度范围与信号等级、链路质量和链路比特率的对应关系,终端可以确定出接收检测报文的信号强度,然后确定该信号强度所属的信号强度范围,进而从上述对应关系中,确定出信号等级、链路质量和链路比特率。或者,终端也可以基于接收检测报文的信号强度,使用相应的关系式来确定信号等级、链路质量和链路比特率。

需要说明的是,上述仅涉及了两种确定链路状态信息的方式,凡是基于接收到的报文的信号强度,确定链路状态信息的方法,都可以用于本发明实施例,本发明实施例不做限定。

步骤802,终端按照预设的周期,通过传输层向服务器发送对应链路状态信息的链路通知。

其中,该预设的周期可以与步骤801中提到的周期相同,也可以与步骤801中提到的周期不相同,本发明实施例不做限定。

在实施中,终端通过传输层接收到链路层发送的链路状态信息后,可以按照预设的周期,通过传输层向服务器发送对应链路状态信息的链路通知。

可选的,可选的,终端通过链路层向服务器发送对应链路状态信息的链路通知的方法有多种,以下给出两种可行的方式:

方式一:终端按照预设的周期,通过传输层在ack报文的扩展字段携带对应链路状态信息的链路通知发送至服务器。

在实施中,ack报文中设置有扩展字段,在扩展字段中携带对应链路状态信息的链路通知,即终端可以通过传输层在ack报文的扩展字段携带对应链路状态信息的链路通知发送至服务器。

例如,ack报文的扩展字段为“otheroptions”,链路通知中的信号等级为-45,链路质量为90%,链路比特率为56mbps,在ack报文的扩展字段中的携带方式为:

tcpoptions:

…//otheroptions

linkstate:

signallevel:-45

linkquality:90%

bitrate:56mbps.

方式二:终端按照预设的周期,通过传输层在带外消息携带对应链路状态信息的链路通知发送至服务器。

其中,带外消息可以是短信、除tcp连接之外的其它连接中传输的消息、其它网络中传输的消息等。

在实施中,终端确定链路通知后,还可以按照预设的周期,通过传输层在带外消息携带对应链路状态信息的链路通知发送至服务器。

另外,终端还可以每隔m个ack报文,通过传输层在带外消息携带对应链路状态信息的链路通知发送至服务器。

其中,m可以由技术人员预设,并且存储至终端中,如5等。

在实施中,终端每接收到服务器发送的一个数据报文,都会向服务器发送ack报文,以告知服务器这个数据报文发送成功,终端可以每隔5个ack报文,按照上述方式一和方式二将链路通知发送至服务器。

步骤803,服务器通过传输层接收终端发送的对应链路状态信息的链路通知。

步骤804,服务器基于链路通知,调整向终端传输数据的传输速率。

在实施中,服务器接收到链路通知后,还可以解析得到链路通知中携带的信号等级、链路质量和链路比特率,服务器中可以预先存储有信号等级对应的第一加权值、链路质量的第二加权值、链路比特率对应的第三加权值,服务器可以将解析得到的信号等级与第一加权值相乘,得到第一乘积,并可以将解析得到的链路质量与第二加权值相乘,得到第二乘积,并可以将解析得到的链路比特率与第三加权值相乘,得到第三乘积,然后计算第一乘积、第二乘积和第三乘积之和,确定计算出的加权值所属的加权值范围,然后从预先存储的加权值范围与传输速率的对应关系中,查找到传输速率。

如果确定出的传输速率变小,可以将每次传输的数据报文对应的数据量变小,如果确定出的传输速率变大,可以将每次传输的数据报文对应的数据量变大。

需要说明的是,第一加权值、第二加权值和第三加权值可以由技术人员预设,并且存储至服务器中,第一加权值、第二加权值和第三加权值之和为1,例如,第一加权值为0.3,第二加权值为0.4,第三加权值0.4。

本发明实施例中,终端通过链路层确定无线链路的链路状态信息,将链路状态信息由链路层发送至传输层,终端通过传输层向服务器发送对应链路状态信息的链路通知,服务器可以基于链路通知,对tcp连接进行数据传输管理。这样,由于终端向服务器发送对应链路状态信息的链路通知,服务器可以得到终端与访问控制点设备之间的无线链路的链路状态信息,从而可以及时的对tcp连接进行数据传输管理,进而可以提高数据传输效率。

图9是本发明实施例提供的终端的结构图。该终端可以通过软件、硬件或者两者的结合实现成为终端中的部分或者全部。本发明实施例提供的终端可以实现本发明实施例图4、图6、图8所述的流程,该终端包括:确定模块910、发送模块920和接收模块930,其中:

确定模块910,用于通过链路层确定所述无线链路的链路状态信息;

发送模块920,用于将所述链路状态信息由所述链路层发送至传输层;

所述发送模块920,还用于通过所述传输层向所述服务器发送对应所述链路状态信息的链路通知。

可选的,所述发送模块920,用于

当通过链路层检测到所述无线链路在断开后恢复连接时,将用于表示所述无线链路已恢复连接的链路状态信息发送至传输层。

可选的,所述发送模块920,用于:

如果通过传输层最后一次接收所述服务器发送的数据报文的时间点距当前时间点的时长超过预设时长阈值,则通过所述传输层向所述服务器发送对应所述链路状态信息的链路通知。

可选的,所述链路通知为ack报文,其中,所述ack报文的确认号为所述终端希望接收到所述服务器发送的数据报文的序列号。

可选的,所述发送模块920,还用于:

按照预设的周期,通过所述传输层向所述服务器发送对应所述链路状态信息的链路通知。

可选的,所述链路状态信息包括信号等级、链路质量和链路比特率中的一种或多种。

可选的,如图10所示,所述终端还包括:

接收模块930,用于接收所述访问控制点设备周期性发送的检测报文;

所述确定模块910,用于通过所述链路层基于接收所述检测报文的信号强度,确定所述链路状态信息。

可选的,所述发送模块920,还用于:

通过所述传输层在ack报文的扩展字段携带对应所述链路状态信息的链路通知发送至所述服务器。

可选的,所述发送模块920,还用于:

通过所述传输层在带外消息携带对应所述链路状态信息的链路通知发送至所述服务器。

需要说明的是,上述确定模块910、发送模块920和接收模块930可以由处理器220实现,或者处理器220配合发射器230和接收器210来实现。

本发明实施例中,终端通过链路层确定无线链路的链路状态信息,将链路状态信息由链路层发送至传输层,终端通过传输层向服务器发送对应链路状态信息的链路通知,服务器可以基于链路通知,对tcp连接进行数据传输管理。这样,由于终端向服务器发送对应链路状态信息的链路通知,服务器可以得到终端与访问控制点设备之间的无线链路的链路状态信息,从而可以及时的对tcp连接进行数据传输管理,进而可以提高数据传输效率。

图11是本发明实施例提供的服务器的结构图。该服务器可以通过软件、硬件或者两者的结合实现成为服务器中的部分或者全部。本发明实施例提供的服务器可以实现本发明实施例图4、图6、图8所述的流程,该服务器包括:接收模块1110和管理模块1120,其中:

接收模块1110,用于通过传输层接收所述终端发送的对应所述链路状态信息的链路通知;

管理模块1120,用于基于所述链路通知,对所述tcp连接进行数据传输管理。

可选的,所述链路通知用于通知所述服务器所述无线链路已恢复连接;

如图12所示,所述管理模块1120包括获取子模块1121和发送子模块1122,其中:

所述获取子模块1121,用于获取对应所述终端的待重传的数据报文;

所述发送子模块1122,用于向所述终端发送所述待重传的数据报文。

可选的,所述链路状态信息包括信号等级、链路质量和链路比特率中的一种或多种;

所述管理模块1120,用于:

基于所述链路通知,调整向所述终端传输数据的传输速率。

需要说明的是,上述接收模块1110和管理模块1120可以由处理器320实现,或者处理器320配合发射器330和接收器310来实现。

本发明实施例中,终端通过链路层确定无线链路的链路状态信息,将链路状态信息由链路层发送至传输层,终端通过传输层向服务器发送对应链路状态信息的链路通知,服务器可以基于链路通知,对tcp连接进行数据传输管理。这样,由于终端向服务器发送对应链路状态信息的链路通知,服务器可以得到终端与访问控制点设备之间的无线链路的链路状态信息,从而可以及时的对tcp连接进行数据传输管理,进而可以提高数据传输效率。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现,当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令,在服务器或终端上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴光缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是服务器或终端能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(如软盘、硬盘和磁带等),也可以是光介质(如数字视盘(digitalvideodisk,dvd)等),或者半导体介质(如固态硬盘等)。

以上所述仅为本申请的一个实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

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