通信网络选路方法和装置与流程

文档序号:11158194阅读:567来源:国知局
通信网络选路方法和装置与制造工艺

本申请涉及通信技术领域,尤其涉及通信网络选路方法和装置。



背景技术:

蜂窝网络被广泛用于移动通信,通过蜂窝网络可以在终端和网络设备之间建立无线通道,实现用户在业务中的数据通信。蜂窝网络中可以有多条通道,相关技术中,通过预设算法选择某条通道进行数据传输,但是由于蜂窝网络存在往返时延(Round Trip Time,RTT)和丢包,并且在往返时延和丢包上具有瞬间变化快、波动大、随机性强等特点,当前用于传输业务数据的通道传输质量变差时,现有的选路技术不能及时准确地选出传输质量最优的通道即时切换,因此,难以保证数据传输质量。



技术实现要素:

为克服相关技术中存在的问题,本申请提供了通信网络选路方法和装置。

根据本申请实施例的第一方面,提供一种通信网络选路方法,包括以下步骤:

获取通信网络内每条通道当前时刻的往返时延和上一周期的往返时延;

根据预设的转换规则,将获取的往返时延转换为每条通道当前周期的往返时延;

获取各条通道当前周期的往返时延的平均往返时延;

通过比较所述平均往返时延、预设的时间粒度最大值和预设的时间粒度最小值,获得所述通信网络的时间粒度;

获取所述时间粒度内每条通道的丢包率;

通过比较各条通道的丢包率,确定用于传输业务数据的目标通道。

根据本生情实施例的第二方面,提供一种通信网络选路装置,包括:

第一获取模块,被配置为获取通信网络内每条通道当前时刻的往返时延和上一周期的往返时延;

转换模块,被配置为根据预设的转换规则,将获取的往返时延转换为每条通道当前周期的往返时延;

第二获取模块,被配置为获取各条通道当前周期的往返时延的平均往返时延;

比较模块,被配置为通过比较所述平均往返时延、预设的时间粒度最大值和预设的时间粒度最小值,获得所述通信网络的时间粒度;

第三获取模块,被配置为获取所述时间粒度内每条通道的丢包率;

确定模块,被配置为通过比较各条通道的丢包率,确定用于传输业务数据的目标通道。

本申请的实施例提供的技术方案可以包括以下有益效果:

本申请中通过获取每条通道当前时刻的往返时延,经过一系列转化获得每条通道的平均往返时延,进而获取时间粒度以及时间粒度内每条通道的丢包率,选取丢包率最小的通道为用于传输业务数据的目标通道。解决了现有选路技术选择切换通道不及时的问题。

附图说明

图1是本申请根据一示例性实施例示出的一种通信网络的场景示意图。

图2是本申请根据一示例性实施例示出的一种通信网络选路方法的流程示意图。

图3是本申请根据一示例性实施例示出的另一种通信网络选路方法的部分流程示意图。

图4是本申请根据一示例性实施例示出的另一种通信网络选路方法的部分流程示意图。

图5是本申请根据一示例性实施例示出的另一种通信网络选路方法的部分流程示意图。

图6是本申请根据一示例性实施例示出的一种统计丢包率的示意图。

图7是本申请根据一示例性实施例示出的一种通信网络选路装置的框图。

图8是本申请根据一示例性实施例示出的另一种通信网路选路装置的框图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。

在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

图1是本申请根据一示例性实施例示出的一种通信网络的场景示意图:

图1所示的通信网络包括终端10、网络20等,终端10可以是手机、电脑、平板电脑、笔记本等可接入网络的设备。终端10可以通过某条通道(比如Channel1、Channel2或Channel3等)接入网络20,每条通道在传输数据时会产生往返时延,甚至丢包,通过统计某段时间(将这段时间称为时间粒度)内的丢包数量可以获得丢包率。往返时延和丢包率作为通道传输质量的重要参数,可以作为选择数据传输通道的依据。

本申请通过获取每条通道当前时刻的往返时延,经过一系列转化获得每条通道的平均往返时延,进而获取时间粒度以及时间粒度内每条通道的丢包率,选择丢包率最小的通道为用于传输业务数据的目标通道。解决了现有选路技术选择切换通道不及时的问题。接下来对本申请进行详细说明。

如图2所示,图2是本申请根据一示例性实施例示出的一种通信网络选路方法的流程示意图,所述方法包括以下步骤S201至S206:

在步骤S201中,获取通信网络内每条通道当前时刻的往返时延和上一周期的往返时延。

往返时延是指发送端发送数据开始到接收到确认信号经历的时间。每条通道当前时刻的往返时延可以通过实时检测的方式获得。每条通道上一周期的往返时延可以通过一寄存器保存,在需要时从中读取。

在本申请实施例中,为了获取往返时延,所述方法还可以包括以下步骤:

通过每条通道发送数据包,其中,数据包可以包括业务数据包和/或探测数据包。在一个实施例中,所述探测数据包用于在数据通道中的业务数据包的数量小于预设的包数阈值时发送。

在某些例子中,并非每条通道都在传输业务数据,对于这些通道,由于其中没有数据包,不能获取其往返时延,无法进一步获取丢包率,确定其传输质量,因而无法实现通道的选择或切换。对于这些通道中没有业务数据的通道,需要通过其他方法来获取往返延时,探测其传输质量。探测的方法可以有多种,比如可以通过PING(Packet Internet Groper,因特网包探索器)命令实现。

PING可以用来检查网络是否通畅或者网络连接速度,其原理是:利用网络上机器IP地址的唯一性,给目标IP地址发送一个数据包,再要求对方返回一个同样大小的数据包来确定两台网络机器是否连接相通,时延是多少。作为一个例子,在通道中没有业务数据的情况下,可以通过PING命令向通道中发送数据包进行传输质量探测(这些用于探测通道传输质量的数据包即为探测数据包),以检测每条通道当前时刻的往返时延。PING命令的具体应用相关领域的技术人员可以参考有关技术得知。

在其他例子中,某些通道虽然在传输业务数据,但是由于其中业务数据包数量较少,低于预设的包数阈值,不能及时、准确的地获取其往返时延,不能准确判断其传输质量。这时也可向上述实施例一样,通过PING命令向通道中发送探测数据包,获取其往返时延,探测传输质量。在这种情况下,这些通道中同时存在两种数据包,一种是业务数据包,一种是探测数据包,为了不影响业务数据包的正常传输,可以设置探测数据包的优先级低于业务数据包的优先级,保证业务数据包优先发送。

在步骤S202中,根据预设的转换规则,将获取的往返时延转换为每条通道当前周期的往返时延。

在某些例子中,某条通道当前的往返时延时可能为零,称之为零概率问题,当出现零概率问题时就无法进一步获取丢包率,对此,可以通过预设的转换规则,避免零概率问题。比如,预设的转换规则中可以考虑平滑算法。作为一个例子,可以通过以下平滑算法获取每条通道当前周期的往返时延,如图3所示,图3是本申请根据一示例性实施例示出的另一种通信网络选路方法的部分流程示意图,该方法在图2所述实施例的基础上步骤S202可以被以下步骤S2021至S2022替换:

S2021,将每条通道当前时刻的往返时延与其上一周期的往返时延的七倍数值相加,生成相加时延。

S2022,获取所述相加时延与数值8的比值,生成每条通道当前周期的往返时延。

当然,还可以通过其他平滑算法来避免零概率问题,本申请对此不作限制。

在一个实施例中,把每条通道当前时刻的往返时延和上一个周期的往返时延代入以下公式,可以获得每条通道当前周期的往返时延:

Rtt=(rtt_new+7×rtt_old)/8

其中,Rtt为每条通道当前周期的往返时延,rtt_new是每条通道当前时刻的往返时延,rtt_old是每条通道上一周期的往返时延。

在步骤S203中,获取各条通道当前周期的往返时延的平均往返时延。

平均往返时延作为一种平均值,可以有多种形式,比如,可以是算术平均值、几何平均值、平方平均值(均方根平均值)、调和平均值或加权平均值等。其中,以算术平均值最为常见。本申请的实施例中,作为各条通道当前周期的往返时延的平均往返时延可以是以上任意一种平均值,本申请对此不作限制。作为一个例子,平均往返延时可以是算数平均值,即将各条通道当前周期的往返时延相加,生成各条通道的时延总和;获取所述时延总和与通道总数的比值为各条通道当前周期的往返时延的平均往返时延。

在一个实施例中,把每条通道当前周期的往返时延代入以下公式,可以获得各条通道当前周期的往返时延的平均往返时延:

其中,avg_rtt为各条通道当前周期的往返时延的平均往返时延,n为通道总数,i为变量,取值为1到n的正整数。

在步骤S204中,通过比较所述平均往返时延、预设的时间粒度最大值和预设的时间粒度最小值,获得所述通信网络的时间粒度。

时间粒度,是时态信息系统中描述时间数据的最小单位,表示时间点之间的离散化程度。时间粒度影响之后获取的丢包率的准确性和及时性,时间粒度小会使得算法反映更加准确及时,但同时也会增大算法的数据处理量和处理频率。时间粒度大会使得算法“反应速度”比较慢,不能及时反应丢包率的变化,偏差较大。因此,时间粒度选择要合理,本申请的实施例通过比较所述平均往返时延、预设的时间粒度最大值和预设的时间粒度最小值,获得所述通信网络的时间粒度,可以使选取的时间粒度较为合理,保证之后获取丢包率的准确性和及时性。具体可参见图4,图4是本申请根据一示例性实施例示出的中另一种通讯网络选路方法的部分流程示意图,该方法在图2所述实施例的基础上步骤S204可以被以下步骤S2041至S2042替换:

在步骤S2041中,通过比较所述平均往返时延、预设的时间粒度最小值,获得其中数值较大的作为第一数值;

在步骤S2042中,通过比较所述第一数值与预设的时间粒度最大值,获得其中数值较小的作为所述通信网络的时间粒度。

作为一个例子,根据网络特性,蜂窝网络的预设的时间粒度最大值可以是1000ms,预设的时间粒度最小值可以是200s。

在一个可选的实现方式中,可以把平均往返时延、时间粒度最大值和时间粒度最小值代入以下公式,获取时间粒度:

Time_interval=min{max_threshold,max(avg_rt,min_threshold)}

其中,Time_interval为时间粒度,max_threshold为时间粒度最大值,min_threshold为时间粒度最小值。

在步骤S205中,获取所述时间粒度内每条通道的丢包率;

丢包率是指丢失数据包数量占所发送数据包的比率,是表征通道传输质量的重要参数。丢包数量可以通过ACK(Acknowl edgement,确认字符)机制进行统计。在TCP/IP协议中,如果接收方成功接收到数据,会回复一个ACK数据。通常ACK数据有自己固定的格式,长度大小,由接收方回复给发送方。其格式取决于采取的网络协议。

参见图5,图5是本申请根据一示例性实施例示出的另一种通信网络选路方法的部分流程示意图,该方法在图2所述实施例的基础上步骤S205可以被以下步骤S2051至S2054替换:

在步骤S2051中,获取每条通道在所述时间粒度内发送的数据包的数目为第一包数。

在步骤S2052中,获取每条通道在所述时间粒度内发送的数据包中收到确认字符的数据包的数目为第二包数。

在步骤S2053中,获取所述第一包数与所述第二包数的差值;

在步骤S2054中,获取所述差值与所述第一包数的比值,生成所述丢包率。

在步骤S206中,通过比较各条通道的丢包率,确定为用于传输业务数据的目标通道。

丢包率是通道传输质量的重要参数,丢包率低则说明通道传输质量好,选取丢包率最低一条通道作为传输业务数据的目标通道,可以保证业务数据的传输。

在某些例子中,所述丢包率最低的通道不止一条,这时可以根据其他标准进一步选择一条传输质量更优的通道,比如可以根据通道的队列长度选择。作为一个例子,可以选择丢包率最低的通道中队列长度最小的通道为用于传输业务数据的目标通道。

如图6所示,图6是本申请实施例中一种统计丢包率的示意图。

首先,通过实时检测,获取每条通道当前的往返时延,并逐步计算每条通道当前周期的往返时延、所有通道的往返时延的平均往返时延、时间粒度。假设经计算得到时间粒度为500ms,则以当前时刻为基准,往前统计500ms(即t1到当前时刻)内的丢包率。如图6所示,有三条通道Channel1、Channel2、Channel3,假设每条通道在该时间粒度(500ms)内的第一包数(用tx.cnt表示)和第二包数(用tx.ack表示)分别为:

Channel1:tx.cnt=x1,tx.akc=y1;

Channel2:tx.cnt=x2,tx.akc=y2;

Channel3:tx.cnt=x3,tx.akc=y3。

则,三条通道对应的丢包率分别为:

Channel1:(x1-y1)/x1;

Channel2:(x2-y2)/x2;

Channel3:(x3-y3)/x3。

假设三个丢包率中(x1-y1)/x1数值最小,则通道Channel1为当前传输质量最好的通道,将Channel1作为用于传输业务数据目标通道。如果业务数据本来就在通道Channel1中传输,则继续在通道Channel1中传输,无需改变;如果业务数据之前在其他通道,比如Channel2中传输,则切换业务数据至通道Channel1中进行传输。

假设三个丢包率中数值最小的有两个:(x1-y1)/x1,(x2-y2)/x2,此时,则进一步比较Channel1和Channel2的队列长度,选取其中队列长度较小的作为用于传输业务数据的目标通道。Channel2的队列长度较小,则确定Channel2作为用于传输业务数据的目标通道。

与前述通信网络选路方法的实施例相对应,本申请还提供了通信网络选路装置的实施例。

请参考图7,图7是本申请实施例中一种通信网络选路装置700的框图,所述装置700包括:

第一获取模块702,被配置为获取通信网络内每条通道当前时刻的往返时延和上一周期的往返时延;

转换模块704,被配置为根据预设的转换规则,将获取的往返时延转换为每条通道当前周期的往返时延;

第二获取模块706,被配置为获取各条通道当前周期的往返时延的平均往返时延;

比较模块708,被配置为通过比较所述平均往返时延、预设的时间粒度最大值和预设的时间粒度最小值,获得所述通信网络的时间粒度;

第三获取模块710,被配置为获取所述时间粒度内每条通道的丢包率;

确定模块712,被配置为通过比较各条通道的丢包率,确定用于传输业务数据的目标通道。

在一个可选的实现方式中,转换模块704具体用于:

将每条通道当前时刻的往返时延与其上一周期的往返时延的七倍数值相加,生成相加时延;

获取所述相加时延与数值8的比值,生成每条通道当前周期的往返时延。

在一个可选的实现方式中,第二获取模块706具体用于:

将各条通道当前周期的往返时延相加,获得个条通道的时延总和;

获取所述时延总和与通道总数的比值为各通道当前周期的往返时延的平均往返时延。

在一个可选的实现方式中,比较模块708具体用于:

通过比较所述平均往返时延、预设的时间粒度最小值,获得其中数值较大的作为第一数值;

通过比较所述第一数值与预设的时间粒度最大值,获得其中数值较小的作为所述通信网络的时间粒度。

在一个可选的实现方式中,第三获取模块710具体用于:

获取每条通道在所述时间粒度内发送的数据包的数目为第一包数;

获取每条通道在所述时间粒度内发送的数据包中收到确认字符的数据包的数目为第二包数;

获取所述第一包数与所述第二包数的差值;

获取所述差值与所述第一包数的比值,生成所述丢包率。

在一个可选的实现方式中,确定模块712具体用于:

通过比较各条通道的丢包率,将丢包率最低的通道确定为用于传输业务数据的目标通道。

在一个可选的实现方式中,确定模块712还被用于:

如果所述丢包率最低的通道不止一条,则选择丢包率最低的通道中队列长度最小的通道为用于传输业务数据的目标通道。

如图8所示,图8是本申请实施例中另一种通信网路选路装置的框图,所述装置在图7所述实施例的基础上还包括:

发送模块701,被配置为通过每条通道发送数据包以获取往返时延,所述数据包包括业务数据包和/或探测数据包。

在一个可选的实现方式中,所述探测数据包用于在数据通道中的业务数据包的数量小于预设的包数阈值时发送。

在一个可选的实现方式中,所述探测数据包的优先级低于所述业务数据包的优先级。

上述装置中各个模块的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。

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

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