一种提升数据通路可靠性的方法及装置与流程

文档序号:15927219发布日期:2018-11-14 01:16阅读:142来源:国知局

本发明涉及通信领域,具体涉及一种提升数据通路可靠性的方法及装置。

背景技术

随着车联网的发展,需要联网设备的性能和稳定性不断提升。在联网进行数据业务时,通常设备连网之后,如果遇到终端异常或者网络异常导致断网,数据业务就会断开,但此时网络连接状态为已连接,使得终端状态与数据业务的状态不一致,也就无法及时恢复网络。

相关技术中,通过检测传输控制协议(tcp,transmissioncontrolprotocol)数据包的传输情况来判断网络连接状态。当三次握手完成,tcp客户端和服务器端成功地建立连接,建立连接之后即可开始传输数据,当数据通路故障时通过快速重传和快速恢复等方式修复网络。上述方法能够检测到数据通路异常但不能判断数据通路哪块不通。例如,是pc没有发tcp数据包,还是pc发了网络侧没有回复确认字符(ack,acknowledgment),还是网络侧发了tcp数据包而pc没有回复ack,针对这些情况上述方法是无法确定的。也就是说,上述方式只能尝试做一些重传动作恢复数据通路,不能解决因终端问题导致的数据通路障碍。

相关技术中,还可利用长期演进(lte,longtermevolution)协议来判断数据传输情况。lte中一个用户设备(ue,userequipment)处在无线资源控制(rrc,radioresourcecontrol)连接态,信号稳定,并且没有切换,这时可以进行数据业务。其过程是,开机随机接入过程建立rrc,开始附着(attach)流程:通过安全方面的信令(比如鉴权加密性保护等)建立默认承载。没有数据业务时会释放rrc,断开数据连接,当出现数据通路异常时网络会尝试进行恢复或者切换到其他制式或小区以恢复数据连接。上述方式无法对“用户没有数据需要传输”和“用户有数据需要传输,但是在lte协议栈中无法进行数据传输”两种情况进行区分,而这两种情况下如果采用上述方式将会尝试通过重启终端来恢复,这时对用户来说则可能是没有进行数据传输时终端突然重启,将会影响用户体验。

针对相关技术中无法准确判断数据通路障碍的原因以及因终端导致数据通道障碍时无法及时进行恢复以至于影响数据业务正常进行的技术问题,目前尚未提出有效的解决方案。



技术实现要素:

为了解决上述技术问题,本发明实施例提供了一种提升数据通路可靠性的方法及装置。

本申请提供了:

一种提升数据通路可靠性的方法,包括:

根据tcp数据包的传输情况以及lte协议层的传输情况,确定数据通路异常的原因;

在所述数据通路异常的原因为终端原因导致数据通路异常时,执行恢复网络的动作。

其中,所述根据tcp数据包的传输情况以及lte协议层的传输情况,确定数据通路异常的原因之前,还包括:检测传输控制协议tcp数据包的传输情况以及长期演进lte协议层的传输情况。

其中,所述检测tcp数据包的传输情况以及lte协议层的传输情况,包括如下之一或其任意组合:

检测是否向网络侧发送了tcp数据包;

检测是否接收到来自网络侧的确认字符ack数据包;

检测是否向基站enb发送了空口数据;

检测是否接收到来自enb的空口数据;

检测是否将来自网络侧的ack数据包发送给pc;

检测是否接收到服务器重传的tcp数据包;

检测是否将服务器重传的tcp数据包发送给pc;

检测是否接收到来自pc的ack数据包。

其中,所述根据tcp数据包的传输情况以及lte协议层的传输情况,确定数据通路异常的原因,至少包括如下之一:

在发生tcp数据重传时,向网络侧发送了tcp数据包但未接收到来自网络侧的ack数据包,并且未能成功向enb发送空口数据,确定为终端原因导致数据通路异常;

在发生tcp数据重传时,向网络侧发送了tcp数据包但未接收到来自网络侧的ack数据包,成功向enb发送了空口数据但未接收到来自enb的空口数据,确定为终端原因导致数据通路异常;

在发生tcp数据重传时,向网络侧发送了tcp数据包且接收到了来自网络侧的ack数据包,成功接收到了来自enb的空口数据但未能成功将来自网络侧的ack数据包发送给pc,确定为终端原因导致数据通路异常;

在发生tcp数据重传时,未能成功向网络侧发送tcp数据包,确定为终端原因导致数据通路异常。

其中,所述根据tcp数据包的传输情况以及lte协议层的传输情况,确定数据通路异常的原因,还包括:在发生tcp数据重传时,向网络侧发送了tcp数据包但未接收到来自网络侧的ack数据包,成功向enb发送了空口数据且接收到了来自enb的空口数据,确定为网络原因导致数据通路异常。

其中,所述确定数据通路异常的原因之后,还包括:在所述数据通路异常的原因为网络原因导致数据通路异常时,不执行恢复网络的动作。

其中,所述根据tcp数据包的传输情况以及lte协议层的传输情况,确定数据通路异常的原因,至少包括如下之一:

接收到了服务器重传的tcp数据包,但未能将所述tcp数据包成功发送给pc,确定为终端原因导致数据通路异常;

接收到了服务器重传的tcp数据包,将所述tcp数据包成功发送给pc且接收到了来自pc的ack数据包,但未能成功向enb发送空口数据,则确定为终端原因导致数据通路异常;

接收到了服务器重传的tcp数据包,将所述tcp数据包成功发送给pc但未接收到来自pc的ack数据包,确定为终端原因导致数据通路异常。

一种提升数据通路可靠性的装置,包括:

确定模块,用于根据tcp数据包的传输情况以及lte协议层的传输情况,确定数据通路异常的原因;

执行模块,用于在所述数据通路异常的原因为终端原因导致数据通路异常时,执行恢复网络的动作。

其中,还包括:检测模块,用于检测传输控制协议tcp数据包的传输情况以及长期演进lte协议层的传输情况。

其中,所述检测模块用于检测tcp数据包的传输情况以及lte协议层的传输情况,包括如下之一或其任意组合:

检测是否向网络侧发送了tcp数据包;

检测是否接收到来自网络侧的ack数据包;

检测是否向enb发送了空口数据;

检测是否接收到来自enb的空口数据;

检测是否将来自网络侧的ack数据包发送给pc;

检测是否接收到服务器重传的tcp数据包;

检测是否将服务器重传的tcp数据包发送给pc;

检测是否接收到来自pc的ack数据包。

其中,所述确定模块,用于根据tcp数据包的传输情况以及lte协议层的传输情况,确定数据通路异常的原因,至少包括如下之一:

在发生tcp数据重传时,向网络侧发送了tcp数据包但未接收到来自网络侧的ack数据包,并且未能成功向enb发送空口数据,确定为终端原因导致数据通路异常;

在发生tcp数据重传时,向网络侧发送了tcp数据包但未接收到来自网络侧的ack数据包,成功向enb发送了空口数据但未接收到来自enb的空口数据,确定为终端原因导致数据通路异常;

在发生tcp数据重传时,向网络侧发送了tcp数据包且接收到了来自网络侧的ack数据包,成功接收到了来自enb的空口数据但未能成功将来自网络侧的ack数据包发送给pc,确定为终端原因导致数据通路异常;

在发生tcp数据重传时,未能成功向网络侧发送tcp数据包,确定为终端原因导致数据通路异常。

其中,所述确定模块,用于用于根据tcp数据包的传输情况以及lte协议层的传输情况,确定数据通路异常的原因,还包括:

在发生tcp数据重传时,向网络侧发送了tcp数据包但未接收到来自网络侧的ack数据包,成功向enb发送了空口数据且接收到了来自enb的空口数据,确定为网络原因导致数据通路异常。

其中,所述确定模块,用于根据tcp数据包的传输情况以及lte协议层的传输情况,确定数据通路异常的原因,至少包括如下之一:

接收到了服务器重传的tcp数据包,但未能将所述tcp数据包成功发送给pc,确定为终端原因导致数据通路异常;

接收到了服务器重传的tcp数据包,将所述tcp数据包成功发送给pc且接收到了来自pc的ack数据包,但未能成功向enb发送空口数据,则确定为终端原因导致数据通路异常;

接收到了服务器重传的tcp数据包,将所述tcp数据包成功发送给pc但未接收到来自pc的ack数据包,确定为终端原因导致数据通路异常。

一种提升数据通路可靠性的装置,至少包括:

存储有提升数据通路可靠性程序的存储器;

处理器,配置为执行所述提升数据通路可靠性程序以执行下述操作:根据tcp数据包的传输情况以及lte协议层的传输情况,确定数据通路异常的原因;在所述数据通路异常的原因为终端原因导致数据通路异常时,执行恢复网络的动作。

一种计算机可读存储介质,所述计算机可读存储介质上存储有提升数据通路可靠性程序,所述提升数据通路可靠性程序被处理器执行时实现上述提升数据通路可靠性方法的步骤。

本发明实施例中,结合ue侧的tcp层数据包传输情况及lte协议栈中网络侧数据包的传输情况进行综合判断,从而准确判断ue当前的数据通路状况,在判断为终端原因导致的数据通路异常时,在ue侧执行恢复操作,从而解决了无法准确判断数据通路障碍的原因以及因终端导致数据通道障碍时无法及时进行恢复以至于影响数据业务正常进行的技术问题,有效提升了数据通路的可靠性,能够确保车联网中ue的数据通路正常通畅。

本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。

附图说明

附图用来提供对本发明技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本发明的技术方案,并不构成对本发明技术方案的限制。

图1为本发明实施例一提升数据通路可靠性方法的流程示意图;

图2为车联网系统的结构示例图;

图3为pc向服务器发送tcp数据后接收服务器返回的ack数据包的场景下数据通路正常时的交互示意图;

图4为pc向服务器发送tcp数据后接收服务器返回的ack数据包的场景下提升数据通路可靠性的流程示意图;

图5为服务器向pc发送tcp数据后接收pc返回的ack数据包的场景下数据通路正常时的交互示意图;

图6为服务器向pc发送tcp数据后接收pc返回的ack数据包的场景下提升数据通路可靠性的流程示意图;

图7为本发明实施例二提升数据可靠性装置的组成结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。

在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

相关技术中的技术方案,主要包括如下三种:

1)当网络断开后,终端尝试自动重连,每隔30秒或者1分钟连接一次,当超过一定次数后重连时间间隔加大以降低功耗。

2)在确定断网后,对断网后接收到的由客户端发往服务器的数据包进行第一次处理,并缓存断网后接收到的由客户端发往服务器的数据包;当网络恢复后,将缓存的所述数据包发送给服务器,根据服务器返回的响应包确定是否需要对数据包进行第二次处理,其中,所述第二次处理是对所述第一次处理的更正处理。

3)通过分析媒体接入控制(mac,mediumaccesscontrol)、ip层、tcp层获取的网络信息,将网络分类,若无线路径状态不是不可用,则以高优先级对第一个重复的确认通知所对应的传输层数据(tcpdata)分组进行本地重传。

相关技术存在如下缺陷:

方案1)仅解决了数据设备网络状态确定是断开情况下的重新连接、数据处理。不能解决网络侧是连接状态的数据问题,不能解决设备网络状态是已连接,但因为终端原因导致的数据业务已经不通以及什么时候设备的数据业务已经异常的问题。

方案2)是一种断网后通过缓存的方法处理数据的方法,未公开网络断开的细节。

方案3)是对无线网络不是不可用的情况下进行的tcp协议的数据包重传,解决的是网络侧阻塞问题。仅在tcp层判断数据不同从而进行数据重传,不能解决因终端原因导致的数据通路问题。

本申请提供一种提升数据通路可靠性的方法及装置,能够解决因终端原因导致的数据通路问题,以保证车载终端的数据通路正常通畅。

实施例一

一种提升数据通路可靠性的方法,如图1所示,可以包括:

步骤101,根据tcp数据包的传输情况以及lte协议层的传输情况,确定数据通路异常的原因;

步骤102,在所述数据通路异常的原因为终端原因导致数据通路异常时,执行恢复网络的动作。

本实施例中,tcp数据包的传输情况是指在ue侧的tcp数据包传输情况,可以包括tcp层数据包重传的场景下ue是否发送了tcp数据包、是否接收到tcp数据包、是否在接收到tcp数据包之后发送了ack数据包、以及是否在发送tcp数据包之后接收到了相应ack数据包等。

本实施例中,lte协议层的传输情况是指ue侧的lte协议栈数据包传输情况,主要可以包括:ue侧的lte协议栈中网络侧数据包的接收情况、以及ue侧的lte协议栈中向网络侧发送数据包的情况。

本实施例中,结合ue侧的tcp层数据包传输情况及lte协议栈中网络侧数据包的传输情况进行综合判断,从而准确判断ue当前的数据通路状况,在判断为终端原因导致的数据通路异常时,在ue侧执行恢复操作,从而解决了无法准确判断数据通路障碍的原因以及因终端导致数据通道障碍时无法及时进行恢复以至于影响数据业务正常进行的技术问题,有效提升了数据通路的可靠性,能够确保车联网中ue的数据通路正常通畅。

本实施例的方法可以适用于车联网系统中。本实施例的方法可由车联网系统中的ue执行,从而提升车联网系统中数据通路的可靠性。

例如,本实施例的方法可适用于如图2所示的车联网系统,如图2所示,该系统主要包括四个部分:pc、ue、基站(enb)、服务器。其中,pc是指使用数据业务的固定终端(如电脑)或车载终端(如车载电脑);ue是无线数据终端,负责与基站、服务器连接,给pc提供无线数据业务;enb为运营商基站,用于提供无线网络,该无线网络可分为pdcp、rlc、mac层;服务器可以为数据服务器,用于为ue提供无线数据业务。本实施例的方法可由图2所示系统结构中的ue来执行,通过将本实施例的方法应用于图2所示的系统架构,可以提升该系统结构中数据通路的可靠性。

其中,在步骤102之前还可以包括:步骤100,检测tcp数据包的传输情况以及lte协议层的传输情况。

一种实现方式中,所述检测tcp数据包的传输情况以及lte协议层的传输情况,可以包括如下之一或其任意组合:

检测是否向网络侧发送了tcp数据包;

检测是否接收到来自网络侧的ack数据包;

检测是否向enb发送了空口数据;

检测是否接收到来自enb的空口数据;

检测是否将来自网络侧的ack数据包发送给pc;

检测是否接收到服务器重传的tcp数据包;

检测是否将服务器重传的tcp数据包发送给pc;

检测是否接收到来自pc的ack数据包。

实际应用中,本实施例主要体现在以下四个方面:

1)在pc向服务器发送tcp数据后接收服务器返回的ack数据包的场景中,通过发现tcp层数据包多次重传,如果ue没有收到服务器回复的tcpack消息,这是数据通路出现问题导致的。问题可能出现在pc和网络的数据通路的某个地方。结合判断lte协议层,ue如果没有给enb发送空口数据,可以判断为终端原因导致数据通路异常。

2)在pc向服务器发送tcp数据后接收服务器返回的ack数据包的场景中,通过发现tcp层数据包多次重传,如果ue没有收到服务器回复的tcpack消息,这是数据通路出现问题导致的。问题可能出现在pc和网络的数据通路的某个地方。再继续判断lte协议层,ue如果向enb发送了空口数据,但是ue没有接收到来自enb的空口数据,可以判断为终端原因导致数据通路异常。

3)在pc向服务器发送tcp数据后接收服务器返回的ack数据包的场景中,通过发现tcp层数据包多次重传,如果ue没有收到服务器回复的tcpack消息,这是数据通路出现问题导致的。问题可能出现在pc和网络的数据通路的某个地方。继续判断lte协议层,ue如果向enb发送了空口数据且接收到了来自enb的空口数据,此时判断为网络原因导致数据通路异常。

4)在服务器向pc发送tcp数据后接收pc返回的ack数据包的场景中,通过发现ue接收到了服务器重传的tcp数据包,ue发给了pc重传的tcp数据包,ue也从pc侧收到了ack数据包,此时继续判断lte协议层,ue没有发给enb空口数据,可以判断为终端原因导致数据通路异常。

本实施例中,对于终端原因导致的数据通路异常ue侧执行恢复操作,对由于网络原因导致的数据通路异常ue侧不做处理。

一种实现方式中,所述根据tcp数据包的传输情况以及lte协议层的传输情况,确定数据通路异常的原因,至少可以包括如下之一:

在发生tcp数据重传时,向网络侧发送了tcp数据包但未接收到来自网络侧的ack数据包,并且未能成功向enb发送空口数据,确定为终端原因导致数据通路异常;

在发生tcp数据重传时,向网络侧发送了tcp数据包但未接收到来自网络侧的ack数据包,成功向enb发送了空口数据但未接收到来自enb的空口数据,确定为终端原因导致数据通路异常;

在发生tcp数据重传时,向网络侧发送了tcp数据包且接收到了来自网络侧的ack数据包,成功接收到了来自enb的空口数据但未能成功将来自网络侧的ack数据包发送给pc,确定为终端原因导致数据通路异常;

在发生tcp数据重传时,未能成功向网络侧发送tcp数据包,确定为终端原因导致数据通路异常。

一种实现方式中,所述根据tcp数据包的传输情况以及lte协议层的传输情况,确定数据通路异常的原因,还可以包括:在发生tcp数据重传时,向网络侧发送了tcp数据包但未接收到来自网络侧的ack数据包,成功向enb发送了空口数据且接收到了来自enb的空口数据,确定为网络原因导致数据通路异常。

本实施例中,所述确定数据通路异常的原因之后,还可以包括:在所述数据通路异常的原因为网络原因导致数据通路异常时,不执行恢复网络的动作。

另一种实现方式中,所述根据tcp数据包的传输情况以及lte协议层的传输情况,确定数据通路异常的原因,至少可以包括如下之一:

接收到了服务器重传的tcp数据包,但未能将所述tcp数据包成功发送给pc,确定为终端原因导致数据通路异常;

接收到了服务器重传的tcp数据包,将所述tcp数据包成功发送给pc且接收到了来自pc的ack数据包,但未能成功向enb发送空口数据,则确定为终端原因导致数据通路异常;

接收到了服务器重传的tcp数据包,将所述tcp数据包成功发送给pc但未接收到来自pc的ack数据包,确定为终端原因导致数据通路异常。

实际应用中,ue执行恢复操作时的恢复手段可以包括:重新连接、重新attach、modem侧低电/高电、modem侧重启、整机重启等。例如,当ue没有向enb发送空口数据时,尝试重新detachattach,以恢复数据通路。再例如,当ue未能接收到来自enb的空口数据时,通过modem侧低电/高电进行恢复。再例如,当ue未能向pc发送服务器重传的ack数据包时,通过整机重启的方式恢复。再例如,ue从pc侧没有收到的ack数据包时,重新连接。实际应用中,上述各个场景中还可以交叉使用不同的恢复方式。

实际应用中,本实施例所述的lte协议层并不局限于lte制式,也可适用于其他网络制式。

下面以针对两个不同场景以两个实例来详细说明本实施例方法的实现过程。

实例1

本实例的场景为:pc向服务器发送tcp数据后接收服务器返回的ack数据包的场景。在该场景下,数据通路正常的状况下交互过程如图3所示,可以包括:

步骤301,ue从pc侧接收tcp数据包;

步骤302,ue向网络侧发送tcp数据包;

步骤303,ue接收来自网络侧的ack数据包;

步骤304:ue向pc发送ack数据包。

在该场景下,数据通路正常的状况下ue与enb之间的交互过程如图3所示,可以包括:

步骤305,ue发送给enb的空口数据(如schedulerequest);

步骤306,ue从enb接收的空口数据(如rlcpdu&cqi)。

如图4所示,本实例中,提升数据通路可靠性的流程可以包括:

步骤401,检测pc是否给ue重传了tcp数据包,如果是,则继续步骤步骤402,如果否则不作处理,结束当前流程。

步骤402,检测ue是否给网络侧发送了所述tcp数据包,如果是则继续步骤403,如果否则跳转至步骤406;

步骤403,检测ue是否从网络侧接收到了所述tcp数据包的ack数据包,如果是则继续步骤404,如果否则跳转至步骤405;

步骤404,检测ue是否将所述ack数据包发送给了pc,如果是则跳转至步骤408,如果否则跳转至步骤406;

步骤405,检测ue是否接收到了来自enb的空口数据,如果是则跳转至步骤407,如果否则跳转至步骤406;

步骤406,判断为终端原因导致的数据通路异常,执行恢复网络的动作,尝试进行恢复。

步骤407,判断为可能是终端原因、也可能是网络原因导致的数据通路异常。由于实际应用中只有断定是终端原因的前提下执行恢复性动作才可能有效。因此,这种情况下,终端可以不进行任何恢复性操作。

步骤408,判断为非终端原因导致的数据通路异常,不做处理。

如图4所示流程可知,本实例主要涉及以下几种情况:

检测发生了tcp数据包重传,ue向网络侧发送tcp数据包,ue从网络侧没有接收到该tcp数据包的ack数据包,此时结合ue没有给enb发送空口数据,判断为终端原因导致数据通路异常。这里,只要ue没有给enb发送空口数据,就足以判断为终端原因,可以不再判断接收。

检测发生了tcp数据包重传,ue向网络侧发送tcp数据包,ue从网络侧没有接收到该tcp数据包的ack数据包,此时ue给enb成功发送了空口数据,但ue没有接收到enb的空口数据,则判断为终端原因导致数据通路异常。

检测发生了tcp数据包重传,ue向网络侧发送了tcp数据包,ue从网络侧接收到了重传的ack数据包,此时可以判断ue已经接收到了来自enb的空口数据,而如果ue没有把来自网络侧的ack数据包发给pc,则判断为终端原因导致数据通路异常。

检测发生了tcp数据包重传,ue向网络侧发送了tcp数据包,ue没有接收到网络侧重传的ack数据包,ue向enb成功发送了空口数据,但ue也接收到了来自enb的空口数据,此时则判断为网络原因导致数据通路异常。

检测发生了tcp数据包重传,ue没有向网络侧发送tcp数据包,则判断为终端原因导致数据通路异常。

本实例中,结合上述ue对各tcp数据包的检测情况以及ue对lte空口数据传输的检测情况综合判断是否为终端原因导致的数据通路异常,在终端原因导致数据通路异常时在终端侧执行恢复网络的动作。

本实例中,检测是否发生tcp重传的方法可以是:ue保存最近5s之内ue从pc侧收到的tcp数据包的序列号及内容,ue将当前接收到的来自pc侧的tcp数据包的序列号及内容与所保存的最近5s之内ue从pc侧收到的tcp数据包的序列号及内容进行对比,如果ue检测到当前从pc侧收到的tcp数据包的序列号及内容与保存的最近5s之内ue从pc侧收到的tcp数据包中的某一个或多个tcp数据包的序列号及内容相同,则认定为发生了tcp数据包重传。如果ue检测到当前从pc侧收到的tcp数据包的序列号及内容与保存的最近5s之内ue从pc侧收到的tcp数据包中的任何一个tcp数据包的序列号及内容均不相同,则认定为没有发生tcp数据包重传。

本实例中,ue检测是否给网络侧发送了所述tcp数据包的方式可以是:ue保存最近5s之内ue发送给网络侧的tcp数据包的序列号及内容,ue将重传的tcp数据包的序列号及内容与所保存的最近5s之内ue发送给网络侧的tcp数据包的序列号及内容进行对比,如果ue检测到重传的tcp数据包的序列号及内容与保存的最近5s之内ue发送给网络的tcp数据包的某一个或多个tcp数据包的序列号及内容相同,则认定为ue将重传的tcp数据包发给了网络。如果ue检测到重传的tcp数据包的序列号及内容与保存的最近5s之内ue发送给网络的tcp数据包中的任何一个tcp数据包的序列号及内容均不相同,则认定为ue未发给网络侧重传的tcp数据包。

本实例中,ue检测是否从网络侧接收到了所述tcp数据包的ack数据包的方法可以是:ue保存最近5s之内ue从网络侧收到的ack数据包的序列号;ue将发生重传的tcp数据包的序列号与所保存的最近5s之内ue从网络侧收到的ack数据包的序列号进行对比,如果ue检测到发生重传的tcp数据包的序列号与所保存的最近5s之内ue从网络侧收到的ack数据包中的某一个或多个ack数据包的序列号相同,则认定ue收到了重传tcp数据包的ack数据包。如果ue检测到发生重传的tcp数据包的序列号与所保存的最近5s之内ue从网络侧收到的ack数据包中的任何一个ack数据包的序列号均不相同,则认定ue未收到该重传tcp数据包的ack数据包。

本实例中,检测ue是否将ack数据包发送给pc的方式可以是:ue保存最近5s之内ue发给pc的ack数据包的序列号;ue将发生重传的tcp数据包的序列号与保存的最近5s之内ue发给pc的ack数据包的序列号进行对比,如果ue检测到发生重传的tcp数据包的序列号与保存的最近5s之内ue发给pc的ack数据包的序列号中的某一个或多个ack数据包的序列号相同,则认定ue将重传tcp数据包的ack数据包发送给了pc。如果ue检测到发生重传的tcp数据包的序列号与保存的最近5s之内ue发给pc的任何一个ack数据包的序列号均不相同,则认定ue未将重传tcp数据包的ack数据包发送给pc。

上述检测方式中ue保存最近5s之内的数据包是优选方案,可以将所保存数据包的时长设定为其他值,比如ue保存最近10s之内的数据包、ue保存最近30s之内的数据包,一般所保存数据包的时长设定为不超过1分钟的值,以避免ue处理数据的负荷太大而导致拥塞。

本实例中,检测ue是否接收到了来自enb的空口数据的方法可以包括如下:

首先判断下行信道质量:enb发送小区特定参考信号(cellspecificreferencesignal)给ue,ue估计信道质量指示(cqi,channelqualityindicator)并上报给enb,cqi不仅告诉enb信道的质量,还包含推荐的编码调制方式。enb根据下行信道的质量好坏自适应地分配下行资源(针对ue选择不同的载波和时隙(slot))。下行链路中,演进的通用陆地无线接入网络(evolveduniversalterrestrialradioaccessnetwork,e-utran)在每个传输时间间隔(tti,transmissiontimeinterval)动态地给ue分配资源物理资源块(prbs,physicalresourceblock)&多点通信业务(mcs,multipointcommunicationservice)。enb在下行信道传输数据,根据资源分配的结果在物理下行共享信道(pdsch,physicaldownlinksharedchannel)上填充数据,并在pdcch上传输相应的小区无线网络临时标识(c-rnti,cellradionetworktemporaryidentifier)。

再判断rlc链路,rlc是lte中的无线链路控制层协议,确认模式(am):发送侧在高层数据上添加必要的控制协议开销后进行传送,并保证传递到对等实体。因为具有自动重传请求(arq,automaticrepeatrequest)能力,如果无线链路控制(rlc,radiolinkcontrol)接收到错误的rlcpdu,就通知发送方的rlc重传这个协议数据单元(protocoldataunit,pdu)。由于rlcpdu中包含有顺序号信息,支持数据向高层的顺序/乱序递交。am模式是分组数据传输的标准模式。

ue检测rlc层是否有pdu,如果有则判定ue从enb接收到了空口数据,如果没有pdu则判定为ue未从enb接收到空口数据。

实例2

本实例的场景为:服务器向pc发送tcp数据后接收pc返回的ack数据包的场景。在该场景下,数据通路正常的状况下交互过程如图5所示,可以包括:

s501,ue从网络侧接收tcp数据包;

s502,ue向pc发送tcp数据包;

s503,ue接收来自pc的ack数据包;

s504,ue向网络侧发送ack数据包。

在该场景下,数据通路正常的状况下ue与enb之间的交互过程如图5所示,其过程与实例1相同,不再赘述。

如图6所示,本实例中,提升数据通路可靠性的流程可以包括:

步骤601,检测ue是否接收到服务器重传的tcp数据包,如果是则继续步骤602,如果否则跳转至步骤606;

步骤602,检测ue是否将服务器重传的tcp数据包发给了pc,如果是则继续步骤603,如果否则跳转至步骤606;

步骤603,检测ue是否接收到来自pc的ack数据包,如果是则继续步骤604,如果否则跳转至步骤606;

步骤604,检测ue是否向enb发送了空口数据,如果是则继续步骤605,如果否则跳转至步骤606;

步骤605,判断为非终端原因导致的数据通路异常,不做处理。

步骤606,判断为终端原因导致的数据通路异常,执行恢复网络的动作,尝试进行恢复。

本实例中,结合ue对各种tcp数据包的检测情况以及ue对lte空口数据传输的检测情况综合判断是否为终端原因导致的数据通路异常,在终端原因导致数据通路异常时在终端侧执行恢复网络的动作。

通过图6所示流程可知,本实例主要涉及以下几种情况:

检测ue接收到了服务器重传的tcp数据包,ue未发给pc所述重传的tcp数据包,则判断为终端原因导致数据通路异常。

检测ue接收到了服务器重传的tcp数据包,ue向pc发送了所述服务器重传的tcp数据包,ue接收到了来自pc侧的ack数据包,ue没有发给enb空口数据,则判断为终端原因导致数据通路异常。

检测ue接收到了服务器重传的tcp数据包,ue向pc发送了所述服务器重传的tcp数据包,ue没有收到来自pc侧的ack数据包,则判断为终端原因导致数据通路异常。

本实例中,检测的方式与实例1相似,只是方向正好相反,这里不再赘述。

本实例中,检测ue是否向enb发送了空口数据的方法可以包括如下:

ue向enb请求上行资源:物理信道(physicalchannel),pucch(physicaluplinkcontrolchannel)message(物理上行链路控制信道信息),sr(schedulerequest)(时间表请求)。sr发送的周期以及在子帧中的位置由上层的配置决定。ue需要告诉enb自己要传输的数据量,同时sr中ue必须告诉enb自己的identity(c-rnti)。enb对sr的发送者的识别是通过ue和enb事先约定好的伪随机序列来实现的。当ue有发送数据的需求时,就把相应得sr置1,没有资源请求时sr为空。sr只负责告诉enb是否有资源需求,而具体需要多少资源则由上层的信令交互告诉enb。

enb给ue分配上行资源之前首先必须要知道上行信道的质量,如果ue的上行信道质量较好且有传输数据的需求,enb才会给ue分配资源。enb根据从ue接收到的声音参照信号(soundingreferencesignal)和自己已知的信号的对比就可以知道当前上行信道的质量了。

enb分配资源并通知ue:分配完资源后enb还必须把分配的结果告诉ue,即ue可以在哪个时间哪个载波上传输数据,以及采用的调制编码方案。e-utran在每个tti动态地给ue分配资源(prbs&mcs),并在pdcch上传输相应的c-rnti。

ue接收资源分配结果的通知并传输数据:ue首先接收enb下发的资源分配通知,监视pdcch以查找可能的上行传输资源分配,从通用搜索空间(commonsearchspace)中获取公共信息,从uespecificsearchspace中搜索关于自己的调度信息。根据搜索到的结果后就可以在pusch对应的prb上传输数据信息。

综上,ue通过与enb的交互,在调度信息中分配给自己的物理资源块(prb,physicalresourceblock)上进行了数据发送,将数据发送到enb以后则判定ue的空口数据已经发送给了enb。

实施例二

一种提升数据通路可靠性的装置,如图7所示,包括:

确定模块72,用于根据tcp数据包的传输情况以及lte协议层的传输情况,确定数据通路异常的原因;

执行模块73,用于在所述数据通路异常的原因为终端原因导致数据通路异常时,执行恢复网络的动作。

其中,所述提升数据通路可靠性的装置还可以包括:检测模块71,用于检测传输控制协议tcp数据包的传输情况以及长期演进lte协议层的传输情况。一种实现方式中,所述检测模块71用于检测tcp数据包的传输情况以及lte协议层的传输情况,可以包括如下之一或其任意组合:

检测是否向网络侧发送了tcp数据包;

检测是否接收到来自网络侧的ack数据包;

检测是否向enb发送了空口数据;

检测是否接收到来自enb的空口数据;

检测是否将来自网络侧的ack数据包发送给pc;

检测是否接收到服务器重传的tcp数据包;

检测是否将服务器重传的tcp数据包发送给pc;

检测是否接收到来自pc的ack数据包。

一种实现方式中,所述确定模块72用于根据tcp数据包的传输情况以及lte协议层的传输情况,确定数据通路异常的原因,至少包括如下之一:

在发生tcp数据重传时,向网络侧发送了tcp数据包但未接收到来自网络侧的ack数据包,并且未能成功向enb发送空口数据,确定为终端原因导致数据通路异常;

在发生tcp数据重传时,向网络侧发送了tcp数据包但未接收到来自网络侧的ack数据包,成功向enb发送了空口数据但未接收到来自enb的空口数据,确定为终端原因导致数据通路异常;

在发生tcp数据重传时,向网络侧发送了tcp数据包且接收到了来自网络侧的ack数据包,成功接收到了来自enb的空口数据但未能成功将来自网络侧的ack数据包发送给pc,确定为终端原因导致数据通路异常;

在发生tcp数据重传时,未能成功向网络侧发送tcp数据包,确定为终端原因导致数据通路异常。

一种实现方式中,所述确定模块72用于根据tcp数据包的传输情况以及lte协议层的传输情况,确定数据通路异常的原因,还可以包括:在发生tcp数据重传时,向网络侧发送了tcp数据包但未接收到来自网络侧的ack数据包,成功向enb发送了空口数据且接收到了来自enb的空口数据,确定为网络原因导致数据通路异常。

在另一种实现方式中,所述确定模块72用于根据tcp数据包的传输情况以及lte协议层的传输情况,确定数据通路异常的原因,至少包括如下之一:

接收到了服务器重传的tcp数据包,但未能将所述tcp数据包成功发送给pc,确定为终端原因导致数据通路异常;

接收到了服务器重传的tcp数据包,将所述tcp数据包成功发送给pc且接收到了来自pc的ack数据包,但未能成功向enb发送空口数据,则确定为终端原因导致数据通路异常;

接收到了服务器重传的tcp数据包,将所述tcp数据包成功发送给pc但未接收到来自pc的ack数据包,确定为终端原因导致数据通路异常。

本实施例中提升数据通路可靠性的装置可以实现实施例一所述方法的所有细节,可参照相应方法的相关说明。实际应用中,本实施例中的提升数据通路可靠性的装置可以通过设置于车联网设备(如ue)上来实现上述功能以及实施例一的方法,或者本实施例中的提升数据通路可靠性的装置可以直接通过车联网设备(如ue)实现。

实际应用中,检测模块71、确定模块72、执行模块73分别可以通过软件、硬件或两者结合的方式实现。例如,检测模块71、确定模块72、执行模块73可以通过车联网设备(如ue)的处理器通过执行相应程序来实现。对此本文不作限制。

实施例三

一种提升数据通路可靠性的装置,至少包括:

存储有提升数据通路可靠性程序的存储器;

处理器,配置为执行所述提升数据通路可靠性程序以执行下述操作:检测传输控制协议tcp数据包的传输情况以及长期演进lte协议层的传输情况;根据tcp数据包的传输情况以及lte协议层的传输情况,确定数据通路异常的原因;在所述数据通路异常的原因为终端原因导致数据通路异常时,执行恢复网络的动作。

本实施例中提升数据通路可靠性的装置可以实现实施例一所述方法的所有细节,可参照相应方法的相关说明。实际应用中,本实施例中的提升数据通路可靠性的装置可以通过设置于车联网设备(如ue)上来实现上述功能以及实施例一的方法,或者本实施例中的提升数据通路可靠性的装置可以直接通过车联网设备(如ue)实现。

此外,本申请实施例还提供一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令被执行时实现上述提升数据通路可靠性的方法。

可选地,在本实施例中,上述存储介质可以包括但不限于:u盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

可选地,在本实施例中,处理器根据存储介质中已存储的程序代码执行上述实施例的方法步骤。

可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。

本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件(例如处理器)完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,例如通过集成电路来实现其相应功能,也可以采用软件功能模块的形式实现,例如通过处理器执行存储于存储器中的程序/指令来实现其相应功能。本申请不限制于任何特定形式的硬件和软件的结合。

以上显示和描述了本申请的基本原理和主要特征和本申请的优点。本申请不受上述实施例的限制,上述实施例和说明书中描述的只是说明本申请的原理,在不脱离本申请精神和范围的前提下,本申请还会有各种变化和改进,这些变化和改进都落入要求保护的本申请范围内。

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