采用自适应的传输队列长度来降低数据分组损失的系统和方法

文档序号:7990165阅读:210来源:国知局
采用自适应的传输队列长度来降低数据分组损失的系统和方法
【专利摘要】本发明提供用于降低多个网络接口的数据分组损失的系统和方法。具体地,本发明提供用于基于网络状况的动态分析来降低数据分组损失的跨层系统。此外,本发明还提供根据相关联的网络的信道状况/可用带宽来估计网络状况和改编多个接口的传输队列的系统和方法。
【专利说明】采用自适应的传输队列长度来降低数据分组损失的系统和方法
【技术领域】
[0001]本发明涉及电信领域。具体地,本发明涉及通过基于使用多个活动物理接口的跨层带宽聚集系统的网络估计来改编传输队列长度而降低数据分组损失。
【背景技术】
[0002]通信网络可以包括广域网(WAN)、个人区域网(PAN)、局域网(LAN)和校园网(CAN)组的组合。
[0003]广域网——地理上分布的电信网络——使环球的用户能有效地共享和传输数据。它允许企业执行信息交易和交易操作。健壮的WAN基础结构是公司无干扰进行交易的先决条件。通过WAN网络的数据转移被广泛研究,以改善分组损失的降低。网络中的分组损失使服务质量(QoS)及应用程序下载和上载的速率下降。分组损失可以导致通过网络的信息交易的损失。已经进行了关于降低分组损失的各种研究。
[0004]本领域内的技术人员知晓根据基于代理的网络架构、客户端-服务器架构即在另一边使用相反组件实现的带宽聚集、分组损失的估计和降低。现有技术的各系统是不知道跨层的。现有各系统不执行用来基于网络估计和/或依赖于反馈机制来增强吞吐量的任何传输队列适配。他们还要求发送方和接收方双方的参与或传输层窗口大小。用于传输队列管理的现有各机制修改了 TCP窗口大小,并由此修改了传输缓冲区大小。使用IP头的ECN位(指示网络中的拥塞)作为队列管理的触发。传输队列管理发生在路由器中。
[0005]现在将讨论我们已知的一些以前的技术以理解可用的技术解决方案和现有技术中的缺点。
[0006]Vitalio等人在“关于活动队列管理在VoIP服务质量上的影响”中公开了基于路由器的拥塞控制方案。使用显式拥塞通知的活动队列管理应用于VoIP情况中的QoS改良。然而,该方案只对于VoIP测试了且还需要用户干预以便在语音质量衰减时处理拥塞。
[0007]Jian等人在“对第三代无线网络上的实时流量应用活动队列管理到链路层缓冲区”中公开了应用于3G无线系统中的无线电链路控制层的活动队列管理。来自Harq反馈机制的输入用于活动队列管理。对用户装备和基站之间的信道状况的评估用于拥塞控制。然而,该方案应用于物理数据单元(PDU)的队列管理但不是分组的队列。
[0008]迄今为止以上所讨论的以前的技术中存在的一些空白是,在目的地必须存在对应者的研究导致了不同时使用多个接口以基于网络估计执行传输队列管理。这些方法也不使用任何跨层技术。
[0009]因此存在不需要使用最终目的地或任何节点处的任何相对应组件、或特定网络架构、或使用任何网络代理或管理节点且还不需要执行物理和数据链路中的任何修改而解决基于动态网络状况降低分组损失的长期存在的问题的需求。
[0010]发明目的
[0011]本发明的主要目的是提供在多个接口上通信的跨层系统,其可以通过基于该接口的网络状况来改编每个活动接口的传输队列长度从而执行分组损失的降低。
[0012]本发明的另一显著目的是改编该系统以便在使用活动的多个物理接口进行带宽聚集的同时实现分组损失降低。
[0013]本发明的一目的是提供用于降低主要在无线WAN接口中的数据分组损失的方法和系统。
[0014]本发明的另一目的是提供可以根据网络估计/相关联的接口的可用带宽同时地改编多个接口的传输队列的方法和系统。
[0015]本发明的又一目的是提供用于根据网络估计的使用修改多个接口的传输队列的方法和系统。

【发明内容】

[0016]在描述本方法、系统和硬件实现之前,应理解本发明不限于所描述的特定系统和方法,因为可以存在没有在本公开中明确示出的本发明的多个可能实施例。还应理解描述中使用的术语仅是为了描述特定版本或实施例的目的,不旨在限制只由所附的权利要求书限制的本发明的范围。
[0017]本发明提供了跨层系统以降低在糟糕的网络状况中的分组损失,所述系统改编用于每个活动接口的合适的传输队列长度。
[0018]本发明的另一方面是提供用于确定与每个活动接口相关联的当前传输队列长度的方法和系统。默认传输队列长度和当前传输队列长度的比率是与先前的时间间隔(可配置的)的确定带宽和当前确定带宽的比率成比例的。
[0019]本发明的又一方面是提供估计信道/网络状况并基于此来修改与每个活动物理接口相关联的传输队列长度并由此降低分组损失的方法和系统。
【专利附图】

【附图说明】
[0020]当结合附图进行阅读时,可以更好地理解以上概述以及以下对较佳实施例的详细说明。出于说明本发明的目的,在附图中示出了本发明的多个示例性构造;然而,应理解本发明不限于附图中所公开的具体方法和系统。
[0021]图1示出了描绘降低有多个接口的通信网络中的数据分组损失的过程的流程图。
[0022]图2示出了通过改编传输队列长度来提供分组损失的降低的带宽聚集系统的功能框的流程图。
【具体实施方式】
[0023]现在将详细讨论示出其全部特征的本发明的一些实施例。词语“包括”、“具有”、“包含”和“包涵”及其其它形式旨在意思上等同并就这些词语中的任何一个之后的项目或众项目不意味着是这样的项目或众项目的穷举列表或意味着仅限于所列出的项目或众项目的意义上是开放式的。还必须注意,除非上下文清楚地指明,如此处及所附权利要求书中所使用的,单数形式“一”、“一个”和“该”包括复数引用。尽管与此处描述的那些类似或等同的任何系统和方法都可以用在本发明的实施例的实践或测试中,现在将描述优选的系统和方法。所公开的实施例只是可以用各种形式体现的本发明的示例。[0024]一种用于降低具有多个接口的通信网络中的数据分组损失的系统,所述系统包括:
[0025]a.至少一个网络驱动器模块,用于聚集多个活动的接口的带宽并且估计与通信中所涉及的每个活动的接口相关联的有效网络信道带宽比率;
[0026]b.所述网络驱动器模块的用户空间组件,用于接收用户定义的输入;
[0027]c.与每个活动的接口相关联的具有自适应的队列长度的传输队列,每个队列具有默认的队列长度;
[0028]d.一网络驱动器模块封装了实际的物理接口的网络驱动器,且该模块改编了多个物理接口的传输队列长度,及
[0029]e.至少两个物理接口适于根据与这些接口相关联的带宽的可用性来改变所述多个接口的传输队列长度。
[0030]本发明的系统的元件中的每一个被配置为实现用于降低具有多个接口的通信网络中的数据分组损失的方法,所述方法包括:
[0031]a.创建用于注册虚拟物理接口的网络驱动器模块;
[0032]b.捕捉与每个接口和相对应的用户输入相关联的多个表征性特征;
[0033]c.基于预定义的可配置的时间间隔来确定与每个活动的接口相关联的通信信道的先前的带宽和当前的带宽;
[0034]d.估计有效网络信道带宽比率,该比率被表征为在通信中所涉及的每个所述活动的接口相关联的先前的时间间隔的带宽和当前的带宽的比率;
[0035]e.为每个所述活动的接口分配至少一个自适应的传输队列;
[0036]f.确定每个活动的接口的当前传输队列长度,并导出有效传输队列长度比率,该比率被表征为该活动的接口的默认的和当前的传输队列长度的比率;
[0037]g.为每个活动的接口配置传输队列长度,使得所述有效传输队列长度比率变得与所述有效网络信道带宽比率成比例,其中比例常数与预定义的阈值相称;以及
[0038]a.以自适应地更改的数据速率,将数据分组传输到所述活动的接口而无需由网络路由组件截取且无需从与其目的地相关联的活动的接口中寻求被路由的数据状态。
[0039]在本发明的一个实施例中,网络驱动器模块创建“虚拟物理”接口,该接口封装了存在于计算系统中的所有现有的活动的物理接口。因此所述系统不执行现有物理接口的物理和数据链路层中的任何修改。
[0040]图1是描绘了根据本发明的一个示例性实施例用于降低具有多个接口的通信网络中的数据分组损失的方法的流程图。该过程在步骤10开始,创建用于注册虚拟物理接口的网络驱动器模块。在步骤20中,该系统捕捉该网络中的接口的多个表征性特征,包括设备类型、IP地址、接口的网关IP地址以及相关联的用户输入。在步骤30,基于预定义的时间间隔,由网络驱动器模块内部的网络估计组件来确定与每个活动的接口相关联的通信信道的先前的带宽和当前的带宽的估计。在步骤40,由驱动器模块确定与通过该网络进行通信所涉及的每个所述活动的接口相关联的有效网络信道带宽比率。在步骤50,将至少一个自适应的传输队列分配给每个所述活动的接口。在步骤60,该接口的当前的传输队列是由该网络驱动器内部的传输队列适配模块所确定的。
[0041]每个活动的接口的当前的传输队列和默认的传输队列的比率被保持与该接口的带宽的比率即有效网络信道带宽比率(如步骤40所确定的)成比例。比例常数与预定义的阈值相称,并有固定的最小值。在步骤70,每个活动的接口的传输队列长度是由传输队列适配模块来配置的。该过程在步骤80结束,其中数据分组是根据估计的带宽以自适应地更改的数据速率被分布到所述活动的接口的,而无需由网络路由组件截取且无需从与其目的地相关联的活动的接口中寻求被路由的数据状态和分组损失通知。
[0042]图2是示出用于降低来自网络的分组损失的功能框的系统架构图。所述系统包括网络驱动器模块204、物理接口 208、数据链路210、物理层212、因特网协议(IP) 214、传输协议头216和端口号218。网络驱动器模块204还包括带宽聚集器、带宽估计器和传输队列适配器(图中未示出)。
[0043]在本发明的一个实施例中,系统还包括用户空间206(图中未示出)和内核空间207(图中未示出)。
[0044]根据本发明的较优实施例之一,所述用户空间206使API (应用程序编程接口)露出来,以收集用户定义的输入和系统捕捉的输入。所述用户定义的输入包括:
[0045]a.具有公共IP地址的服务器的域名,探测分组将被发送到该公共IP地址以便估计这些网络接口的可用带宽;
[0046]b.用于执行网络状况估计和带宽确定的时间间隔;
[0047]c.应用程序的QoS要求(可选的);以及
[0048]d.其它可选参数(比如开启或禁止网络估计)。
[0049]用户输入是由用户通过命令行来提供的。所述系统定义的输入包括:
[0050]a.关于可用于带宽聚集和估计的网络接口的信息(接口标识符、IP地址、网关IP地址,如果有的话)。系统捕捉的输入是通过具有数据报路的ioctl O函数调用而获得的;以及
[0051]b.还获得了关于活动的物理接口 /设备的状态的信息(即接口是通(UP)还是断(DOWN),或接口 /设备状态中的任何变更)。
[0052]在本发明的一实施例中,内核空间207充当应用程序和实际的数据处理之间的桥梁。用户空间206和内核空间208有紧密的结合,且这些组件都通过使用具有原始报路的ioctl O函数调用来交换控制信息,诸如:
[0053]a.GETINF0:收集对内核空间模块可用的关于用于聚集的网络接口的信息;
[0054]b.SETINF0:将关于可用的网络接口的信息传递给内核空间模块;以及
[0055]c.NDMINF0 (网络诊断):将关于带宽估计的信息传递给内核空间模块,还从内核空间模块收集关于网络接口的可用带宽的信息。
[0056]在本发明的一实施例中,所述系统充当从因特网协议IP214 (因特网协议)到物理层212 (从应用程序/更上层开始或反之亦然)的所有数据路径的网关。当在现有的活动的物理接口 208之中传输时,基于如由应用程序或通过使用默认配置所规定的服务质量(QoS)要求,它分配所述数据分组。它从相应的接口 208接收数据并传递给相应的应用程序。
[0057]在本发明的一实施例中,网络驱动器模块204创建一虚拟接口,并为它分配一 IP地址和网络掩码,并将此接口加为路由表中的默认条目。所有来自上层的应用程序数据使用此IP地址作为源地址。[0058]在本发明的一实施例中,网络驱动器模块204在将数据分布到那些接口时用相对应的活动的物理接口 208的IP地址来替换它自己的IP地址,并如所要求的那样对因特网协议IP214和传输协议头216执行必要的校验和计算。在接收过程中它用它自己的IP地址替换那些接口的实际IP地址并对因特网协议IP214和传输协议头216执行必要的校验和计算。
[0059]在本发明的一实施例中,网络驱动器模块204使用活动的接口 /设备作为它的从属网络接口。基于一些预定义的标识符(例如,端口号218 (HTTP分组或FTP分组等))和由应用程序(可选的)通过它的用户空间模块206所规定的服务质量QoS要求,分配来自应用程序的数据分组。将分配的数据分组直接发送到它的从属接口即活动的物理接口 208的传输队列。使用分组过滤(网络过滤器(netfilter))机制并关联接收路径中用于此目的的一钩子函数。钩子函数用来在由活动的接口接收之后紧接着过滤这些分组。分组过滤的相关联的钩子函数在数据分组中执行必要的修改,并在发送到应用程序之前组装该数据分组。
[0060]在本发明的一实施例中,所提议的系统使用预定义的因特网控制消息协议(ICMP)回波分组222以便测量网络信道状况。同时通过现有的多个活动接口将因特网控制消息协议(ICMP)回波分组发送到由用户定义的任何公共IP地址(例如www.google, com)。有该公开IP地址的目的地将回波应答发送回给活动物理接口 208。所提出的系统确定在发送的ICMP回波和接收的ICMP回波应答分组之间的时间差(即用于活动接口的往返时间(RTT)),并估计网络状况。有更高值的时间差表示糟糕的网络状况。该系统维护一计时器,计时器按一固定时间间隔(可配置的)制造一将被发送的回波分组。
[0061]在本发明的一实施例中,所提议的系统还分析传输头216 (TCP)统计并取平均RTT,该平均RTT是从传输头216和ICMP探测分组这两者中获取的。
[0062]在如此处呈现的所提议的系统的另一实施例中,可以通过由网络驱动器模块204无需执行现有接口的物理层212和数据链路层210中的任何修改而将各现有活动通信接口(有线的和无线的)的可用带宽加起来而增强系统的带宽。同时估计与每个活动物理接口208相关联的信道/网络状况。系统不需要任何节点包括最终目的地或通信链路的终端系统中的任何对应物或相对应的模块。可以用于任何传输层协议216,如TCP(传输控制协议)和UDP (用户数据报协议)。重要的是不要求任何服务级协定和代理支持。可以执行自适应的带宽聚集。
[0063]在本发明的一具体实施例中,网络估计的结果修改多个接口的传输队列长度。所提议的系统降低糟糕网络状况中的分组损失,其中所述系统配置为适于用于每个活动接口208的合适的传输队列长度。如果基于上述网络估计方法与接口相关联的网络状况是糟糕的,则降低此接口的传输队列长度(tl)。用预定义的时间间隔(当前间隔之前的一个时间间隔)中确定的先前的带宽(bw)和当前确定的带宽,来维护默认的传输队列长度和当前的传输队列长度的成比例的比率。
[0064]根据由带宽估计模块按预定义的时间间隔所确定的先前的带宽和当前的带宽值的比率,来改变该接口的传输队列长度。特别是,先前的带宽和当前的带宽的比率(R)被认为是成比例的,并乘以常数因子“K”,该因子大于10且小于截止饱和值,这会随系统的不同而不同。给出活动物理接口的确定的数学表达如下:
[0065]新的tx队列长度=ceil [(默认tx队列长度)XRXK];其中[0066]R=ceil [当前的带宽/先前的带宽],10〈=K〈=阈值(截止饱和值),过了该阈值则不会对减低分组损失产生任何影响。
[0067]网络驱动器模块204通过使用探测分组机制来估计通信中涉及的每个活动接口相关联的有效网络信道带宽比率,其中有效网络信道带宽是基于预定义的时间间隔的先前的带宽和当前的带宽的比率。有效网络促进动态地改编传输队列长度,以适应相对应的接口的通信信道的可用带宽。
[0068]之前的描述是参考本发明的各种实施例而呈现的。此发明涉及的领域内的技术人员会理解,所描述的结构和操作方法中的更改和变更可以无需有意义地偏离此发明的原贝U、精神和范围而实施。
【权利要求】
1.一种用于降低具有多个接口的通信网络中的数据分组损失的方法,所述方法包括: 创建用于注册虚拟物理接口的网络驱动器模块; 捕捉与每个接口和相对应的用户输入相关联的多个表征性特征; 基于预定义的可配置的时间间隔,确定与每个活动接口相关联的通信信道的先前的带宽和当前的带宽; 估计有效网络信道带宽比率,该比率被表征为与通信中所涉及的每个所述活动接口相关联的先前的时间间隔的带宽和当前的带宽的比率; 为每个所述活动接口分配至少一个自适应的传输队列; 确定每个活动接口的当前的传输队列长度,并导出有效传输队列长度比率,该比率被表征为所述活动接口的默认的和当前的传输队列长度的比率; 为每个活动接口动态地配置传输队列长度,使得所述有效传输队列长度比率变得与所述有效网络信道带宽比率成比例,其中比例常数与预定义的阈值相称;以及 以自适应地更改的数据速率将所述数据分组传输到所述活动接口而无需由网络路由组件截取且无需从与其目的地相关联的活动接口中寻求被路由的数据状态和分组损失反馈状态。
2.如权利要求1所述的方法,其特征在于,所述有效网络信道带宽是先前的和当前的带宽的比率,且所述有效传输队列长度比率是默认的和当前的传输队列长度的比率,每个比率动态地变化并互相成比例。
3.如权利要求1所述的方法,其特征在于,所述网络驱动器模块通过使用预定义的ICMP回波请求分组来估计与通信中所涉及的每个活动接口相关联的有效网络信道带宽比率。
4.如权利要求1所述的方法,其特征在于,所述有效网络信道带宽比率和所述有效传输队列长度比率促进动态地改编传输队列长度以降低所述通信信道的分组损失并增强吞吐量。
5.如权利要求1所述的方法,其特征在于,所述比例常数随网络的不同而变化,并基于最大网络带宽而配置,从而具有固定的最小值。
6.如权利要求1所述的方法,其特征在于,通过多个接口的数据分组传输适于对抗将主存于目的地系统处的一个或多个相反组件和相对应模块的干预。
7.如权利要求1所述的方法,其特征在于,所述数据分组传输方法适于对抗从相对应的活动接口中接收一个或多个分组损失反馈状态的需求。
8.如权利要求1所述的方法,其中,所述方法的特征在于,不要求像传输控制协议(TCP)的窗口大小这样的具体的传输协议的任何具体特性,并可以应用于任何传输协议。
9.如权利要求1所述的方法,其特征在于,所述方法适于跨层通信从而提供在呈递一个或多个类型的传输协议中的灵活性。
10.一种用于降低具有多个接口的通信网络中的数据分组损失的系统,所述系统包括: 至少一个网络驱动器模块,用于聚集多个活动接口的带宽,还用于估计与通信中所涉及的每个活动接口相关联的有效网络信道带宽比率,所述至少一个网络模块包括:带宽聚集器、带宽估计器和传输队列适配器;所述网络驱动器模块的用户空间组件,用于接收多个用户定义的输入; 与每个活动接口相关联的有自适应的队列长度的传输队列,每个队列具有默认的队列长度; 适于封装实际的物理接口的相对应的网络驱动器的网络驱动器模块;以及 适于根据与所述接口相关联的带宽的可用性来改变所述多个活动接口的传输队列长度的至少两个物理接口。
11.如权利要求10所述的系统,其特征在于,所述有效网络信道带宽是先前的和当前的带宽的比率,且所述有效传输队列长度比率是默认的和当前的传输队列长度的比率,每个比率动态地变化并对于相对应的接收数据分组的活动接口是唯一的。
12.如权利要求10所述的系统,其特征在于,所述网络驱动器模块通过使用ICMP回波请求分组来估计与通信中所涉及的每个活动接口相关联的有效网络信道带宽比率。
13.如权利要求10所述的系统,其特征在于,所述有效网络信道带宽比率和所述有效传输队列长度比率促进改编传输队列长度,以适应相对应接口的通信信道的可用带宽。
14.如权利要求10所述的系统,其特征在于,同时通过多个接口的数据分组传输适于对抗将主存于目的地系统处的一个或多个相反组件和相对应模块的干预。
15.如权利要求10所述的系统,其特征在于,所述数据分组传输适于对抗从相对应的活动接口中接收一个或多个分组损失反馈状态的需求。
16.如权利要求10所述的系统,其中,所述系统的特征在于,不要求像传输控制协议(TCP)的窗口大小这样的具体的传输协议的任何具体特性,并可以应用于任何传输协议。
17.如权利要求10所述的系统,其特征在于,所述系统适于跨层通信从而提供在呈递一个或多个类型的传输协议中`的灵活性。
【文档编号】H04L12/24GK103718509SQ201280024362
【公开日】2014年4月9日 申请日期:2012年5月22日 优先权日:2011年5月24日
【发明者】S·班迪奥帕迪亚雅, S·M·纳达弗 申请人:塔塔咨询服务有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1