CN1939005A - 基于分组的网络中的加速数据传输 - Google Patents

基于分组的网络中的加速数据传输 Download PDF

Info

Publication number
CN1939005A
CN1939005A CNA200580010129XA CN200580010129A CN1939005A CN 1939005 A CN1939005 A CN 1939005A CN A200580010129X A CNA200580010129X A CN A200580010129XA CN 200580010129 A CN200580010129 A CN 200580010129A CN 1939005 A CN1939005 A CN 1939005A
Authority
CN
China
Prior art keywords
connection
connections
grouping
equipment
buffer occupancy
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CNA200580010129XA
Other languages
English (en)
Other versions
CN1939005B (zh
Inventor
约格施·普雷姆·斯瓦米
克希姆·勒
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nokia Technologies Oy
Original Assignee
Nokia Oyj
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nokia Oyj filed Critical Nokia Oyj
Publication of CN1939005A publication Critical patent/CN1939005A/zh
Application granted granted Critical
Publication of CN1939005B publication Critical patent/CN1939005B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/625Queue scheduling characterised by scheduling criteria for service slots or service orders
    • H04L47/6255Queue scheduling characterised by scheduling criteria for service slots or service orders queue load conditions, e.g. longest queue first
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/52Queue scheduling by attributing bandwidth to queues
    • H04L47/522Dynamic queue service slot or variable bandwidth allocation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/621Individual queue per connection or flow, e.g. per VC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

提供一种用于在基于分组的网络中数据传输的改良的调度机制。检测多个连接,并为每个连接确定一个缓冲器占用等级。然后,为与其它连接相比具有较小缓冲器占用等级的连接设定优先级,并基于设定优先级的结果调度多个连接的分组。该调度机制实现于基于分组的网络的网元或发送器和接收器中。

Description

基于分组的网络中的加速数据传输
技术领域
本发明涉及一种在基于分组的网络中传输数据的方法,和/或一种用于控制基于分组的网络中数据传输的设备,和/或一种使用相应设备的通信网络系统,和/或一种相应的计算机程序产品。下面的说明书特别地针对在通信网络中用于数据分组传输中以优化传输性能的排队/调度机制。
背景技术
近年来,日益扩展的诸如互联网的数据传输网络、和诸如象综合服务数字网(ISDN)的有线通信网络这样的通信网络、或者象cdma2000(码分多址)系统、通用移动通信系统(UMTS)、通用分组无线系统(GPRS)这样的无线通信网络、或者诸如无线局域网(WLAN)的其它无线通信系统出现在全世界。不同的组织,例如第三代合作伙伴计划(3GPP)、国际电信联盟(ITU)、第三代合作伙伴计划2(3GPP2)、互联网工程任务组(IETF)等等,正在制定电信网络和多重接入环境的标准。
总的来说,这种网络的系统架构是以客户端/服务器为基础的。在通信网络的情况下,一个用户的诸如移动台、移动电话、固定电话、个人计算机(PC)、笔记本电脑、个人数字助理(PDA)等的用户设备,通过各自的收发器和诸如空中接口、有线接口等的接口连接到接入网络子系统。该接入网络子系统控制着用户设备的通信连接,并且通过接口与相应的核心或骨干网络子系统连接。该核心(或骨干)网络子系统经过通信连接将所传输的数据交换给目的地,比如另一个用户设备、服务提供者(服务器/代理)或另一个通信网络。要注意到,该核心网络子系统可以与多个接入网络子系统连接。取决于所使用的通信网络,实际的网络架构可以如本领域的技术人员所熟知并在各自的说明书中定义的那样变化为,例如,UMTS、GSM、WLAN等等。
一般地,为了正确地建立并处理诸如用户设备和另一个用户终端、数据库、服务器等的网元之间的连接,包含了一个或多个诸如支持节点或服务节点的中间网元。
TCP/IP(传输控制协议/互联网协议)是例如LAN、WAN和互联网中使用的网络协议。随着无线系统中日益增长的分组服务量,无线系统中TCP的使用增加了,并且相信在不远的将来,无线系统中相当数量的通信量是基于TCP的。现在,全部互联网通信量的主要部分是基于TCP/IP的。在TCP中,数据被分割为该协议认为最优化大小的数据块来传输。该数据块命名为区段,并且它们的大小必须不超过最大恒定值(最大区段大小或MSS)。
TCP是一个端到端协议。一般地,TCP不预先了解网络特性。因而,适合于根据现有的网络条件调整传输行为。一个重要的特征是所谓拥塞控制。拥塞可以出现在,例如,数据从一个大管道(快速链接)到达一个网络节点并从一个较小的管道(较慢链接)发送的时候。拥塞也可以出现在若干输入数据流到达输出能力小于输入总量的路由器等等的时候。在这种情况中,将输入的数据,例如,缓冲在路由器或其它网元的缓冲器装置中。
一个区段无论何时由服务器发送,它都必须到达确认该发送的区段的客户端。服务器发送该区段到它接收到相应确认时的经过时间通常称为往返时间(RTT)。图6中示出了从服务器发送到客户端的区段或分组1,和从客户端发送到服务器的确认ACK 1。该TCP服务器有一个用于计算最大允许RTT估计的变量。这个变量叫做重传超时(RTO)。此外,服务器有一个计算从发送了该区段以来的经过时间的计时器。如果在计时器到达RTO估计器的值之前,相应的确认没有到达服务器,则服务器认为网络中发生拥塞,并启动拥塞避免动作。
TCP试图使传输率适应网络链接的负载和能力。这是由几种机制完成的,象慢启动、重传超时、快速重传等等(见,例如,IETF RFC2001中由W.Stevens于1997年1月发表的“TCP Slow Start,Congestion Avoidance,Fast Retransmit and Fast recovery Algorithms”)。快速重传和重传超时在TCP/IP分组丢失或者延时超过动态计时器RTO时,使其重传。慢启动使数据传输缓慢启动,并且逐渐地增加窗口大小以便调整发送窗口的大小以与当前网络传递区段(或分组)的能力匹配。慢启动通常用于连接的开始、重传计时器的期满和/或长期被动TCP阶段之后。
在下面,考虑蜂窝网络中的TCP性能。如上所述,TCP是使用ACK到达率以逐渐利用网络能力的传输层协议。另外,TCP在其慢启动期间以非常低的吞吐量启动,这发生在连接开始时以及有时是在连接期间。在蜂窝网络中,由于无线接口上的低带宽和高误码率,ACK接收的比率非常低。这意味着TCP发送器在慢启动周期期间,将需要长时间以达到合理的吞吐量。
一种典型的利用TCP的网络的实现方式是使用在网络中传输TCP数据和ACK分组的所谓先入先出(FIFO)算法。在蜂窝网络中,由于低链接数据率,网络队列可能变得很大。在这种情况下,由FIFO处理导致的网络行为可以过度地延迟ACK的传输,以便阻止TCP发送器在合理的时间内达到足够的吞吐量。
如上所述,TCP慢启动可以发生在连接开始和计时器超时的如何时候。慢启动的目的是以小数据率启动,以保证网络至少能够供应非常少量的数据。这么做是为了避免网络拥塞。TCP随后依靠ACK的到达率逐渐地增加其数据率,直到达到合理的吞吐量。
然而,在蜂窝网络中,由于低带宽和高误码率,通常连接的往返时间(RTT)是很大的。这意味着,因为在发送数据窗口之后,发送侧在接收到任何确认之前需要等待一个RTT,所以接收ACK的速率非常低。为此,TCP发送器在慢启动模式中,在其可以达到合理的吞吐量之前,可能浪费很长时间。这可能使用户感受到降低了的服务的经历。要注意到,在网络中通过必须经由连接转发到达的数据的网络节点所接收到的所有分组,都与从到达这个网络节点的其它连接接收到的所有分组/数据一起排队(或列队)。这意味着在慢启动期间,RTT包含很大的来自其它连接的排队延时成分。
为解决加速连接的数据传输率的问题,已经做出了几种尝试。一般,意图或者是增加连接开始时的数据率,或者是降低连接的RTT。
对于连接的慢启动条件,为了降低慢启动在长延时路径上所用的时间,试图例如,改变TCP的窗口增加算法。对此的一个示例是使用比慢启动开始时的一个分组更大的窗口,其中提议了用最大4个分组的初始窗口。另一个示例定义为分组间隔,例如基于比率的间隔,其中数据源直接在大窗口发送,而不会使网络超负荷。网络侧的另一种方案是为同一个传输建立许多并行的TCP连接,然而这在只有有限的传输能力可用时是有问题的,而且这也增加了网络的总体负载。
已经提出了一种叫做基于队列长度的加权公平排队(QLWFQ)算法的调度/排队算法。通常,依靠加权公平排队算法,为了保证以公平的方式对待每个连接,将来自不同数据源并且要通过一个网络节点发送的数据排序,即在合理的时间周期中传输每个连接的数据。在QLWFQ的情况下,调度分组(分配优先级)以便最长时间的队列得到最高的优先级。然而,加权公平排队通常独立于连接等级信息,使得未考虑TCP连接中的改变。
发明内容
本发明的总体目的是提供一种新机制,依靠它可实现通信网络中改良的具有分组的数据转发/传输。
具体来说,本发明的目标是提供一种用于经由分组通信网络排队/调度加速传输的数据的改善的机制。
为了解决这个问题,根据本说明书中提供的一个方面,提出了例如,一种在基于分组的网络中转发数据的方法,该方法包括:检测多个连接的步骤、确定多个连接的每一个的缓冲器占用等级的步骤、为与其它连接相比具有较小缓冲器占用等级的连接设定优先级的步骤,以及基于设定优先级设定步骤的结果调度多个连接的分组的步骤。
此外,根据本说明书中提供的一个方面,提出了例如,一种用于在基于分组的网络中控制数据转发的设备,该设备包括:用于检测多个连接的检测装置、用于确定多个连接的每一个的缓冲器占用等级的确定装置、用于为与其它连接相比具有较小缓冲器占用等级的连接设定优先级的优先级设定装置,以及用于基于由优先级设定装置获得的结果调度多个连接的分组的调度装置。
此外,根据本说明书中提供的一个方面,提出了例如,一种在其中可以执行基于分组的数据传输的通信网络系统,该系统至少包括一个可用于控制数据传输的网络节点,其中该网络节点包括上面指定的设备。
最后,根据本说明书中提供的一个方面提出了例如,一种包括处理器可执行指令的计算机程序产品,用于控制处理器以执行上面指定方法。
根据进一步的提练,如在各个从属权利要求中定义的,提出的解决方案可以另外但不唯一地包括下列特征中的一个或多个:
-识别在指定类型的连接上发送的分组;
-在缓冲器占用等级的确定中,确定网元缓冲器中的缓冲器占用等级;
-优先级设定可以包括基于所确定的缓冲器占用等级,为多个连接中的每一个分配优先级指示,并处理多个连接的每一个的优先级指示以调度分组;
-在优先级指示的分配中,可以将较高的优先级等级分配给缓冲器占用等级比其它连接低的连接;
-当经由多个连接中至少一个接收到新的分组时,可以更新分配给多个连接的每一个的优先级指示;
-在缓冲器占用等级的确定中,可以通过将多个连接中的一个的字节数与全部多个连接的字节数进行比较,来计算各个连接的缓冲器占用;
-可以基于下面的方程式计算缓冲器占用
occupancy(i)=(bytes_enqueued_for_(i))/(
Figure A20058001012900181
bytes_enqueued_for_(j));
其中i表示各个连接,occupancy(i)表示各个连接的缓冲器占用等级,bytes enqueued for表示在缓冲器中排队的各个连接的字节数,以及N表示多个连接的总数;
-所确定的多个连接的每一个的缓冲器占用等级可以与预定的参数进行比较以决定优先级指示分配种类;
-所确定的多个连接的每一个的缓冲器占用等级与预定参数之间的比较可以基于关系式
occupancy(i)</N-δ;
其中i表示各个连接,occupancy(i)表示各个连接的缓冲器占用等级,N表示多个连接的总数,以及δ表示可配置参数,其δ满足关系式
0<δ<1/N;
-优先级指示的分配可以包括基于缓冲器占用等级将定义各个连接的分组的传输概率的概率值指定给多个连接的每一个;
-基于缓冲器占用等级将概率值指定给多个连接的每一个的概率值赋值可以基于方程式
sched priorty(i)=(1-occupancy(i))/(N-1);
其中i表示各个连接,sched_priorty(i)表示定义各个连接的分组的传输概率的概率值,occupancy(i)表示各个连接的缓冲器占用等级,以及N表示多个连接的总数。
-多个连接的每一个的优先级指示的处理可以包括以根据多个连接的每一个的概率值的级别排序连接;
-多个连接的每一个的数据分组的调度可以包括生成随机数、基于多个连接的每一个的级别和该随机数之间的比较选择多个连接中的连接,以及调度所选连接的分组以发送它;
-在连接的选择中,可以选择其级别大于该随机数并且最接近于该随机数的连接;
-调度数据分组可以重复;
-缓冲器占用等级的确定可以包括通过为各个连接所呈现的所有分组的总数据量的相加来计算各个连接的缓冲器占用,比较各个连接的总数据量与为缓冲器的多个队列定义的唯一的预定阈值,以及基于比较步骤将各个连接指定给队列之一,其中每一个队列可以与唯一的优先级等级相关联;
-各个连接的总数据量与为缓冲器的多个队列定义的唯一的预定数据量阈值之间的比较可以基于关系式
bth(q)≤B<bth(q+1);
其中B表示各个连接的总数据量,q表示多个队列中的各个队列,以及bth表示一个队列的唯一预定数据量阈值;
-在将各个连接指定给队列之一中,将各个连接指定给其唯一预定数据量阈值小于或等于各个连接的总数据量的队列;
-在多个连接的每一个的优先级指示的分配中,为其指定了各个连接的队列的优先级值可以分配为各个连接的优先级指示;
-多个连接的每一个的优先级指示的处理可以包括以根据队列的优先级值的级别排序连接;
-分组的调度可以包括选择具有最高的优先级指示的连接,以及调度所选连接的分组以发送它;
-在多个连接中的两个或多个被分配了相同的优先级指示的情况下,分组的调度可以基于多个连接中的至少两个或多个的启发式算法;
-在多个连接中至少一个的慢启动条件的情况下,则可以执行该机制;
-连接可以包括至少一个TCP类型的连接。
此外,根据进一步的提练,如在各自从属权利要求中定义的,提出的解决方案可以另外,但不排他地包括下列特性中的一个或多个:
-连接的优先级设定可以包括多个连接的每一个的链接速度的仿真,其中分组的调度是基于链接速度仿真的;
-可以基于各个连接的最大链接速度确定链接速度仿真参数;
-可以基于各个连接的往返时间确定链接速度仿真参数;
-可以基于当前分组是否是各个连接的队列中的第一个分组来执行确定;
-在当前分组不是队列中第一个分组的情况下,可以确定传输先前分组的调度时间,可以基于先前分组的调度时间、先前分组的分组大小和链接速度仿真参数计算当前分组的调度时间,其中调度分组的步骤是基于当前分组的调度时间,以及在当前分组是队列中第一个分组的情况下,第一个分组的传输时间可以延迟固定的时间量;
-可选择地,其中在当前分组不是队列中第一个分组的情况下,可以确定传输先前分组的调度时间,可以基于先前分组的调度时间、当前分组的分组大小和链接速度仿真参数计算当前分组的调度时间,其中调度分组的步骤是基于当前分组的调度时间,其中在当前分组是队列中第一个分组的情况下,可以将传输虚拟先前分组的调度时间设定为0,然后可以基于所设定的虚拟先前分组的调度时间、当前分组的分组大小和链接速度仿真参数计算当前分组的调度时间,其中调度分组的步骤是基于当前分组的调度时间;
-可以检查发送器节点是否在拥塞避免状态中,并且如果发送器节点在拥塞避免状态中,可以禁止多个连接的每一个的链接速度仿真,其中分组的调度基于默认调度机制。
-可以检查多个连接中的任何一个是否包含不能执行多个连接的每一个的链接速度仿真的发送器节点和/或接收器节点,并且如果有一个不能执行多个连接的每一个的链接速度仿真的发送器节点和/或接收器节点,则可以禁止多个连接的每一个的链接速度仿真,其中分组的调度基于默认调度机制。
依靠所提出的解决方案,可以实现下列优点:
-所提出的机制中的一个无需改变TCP发送器或接收器。另一方面,所提出的机制中的另一个无需改变现有网络的基础设施。
-由于缩短了慢启动周期,而改善了用户体验。在连接开始时,慢启动连接的缓冲器占用通常比其它连接的小很多。通过给缓冲器占用较低的那些连接提供较高的优先级(即,通过在其它连接之前调度慢启动中的分组),能够缩短RTT周期。另一方面,一旦该连接达到和其它连接一样的缓冲器占用,每个连接都得到相同份额的资源。这对RTT非常大而慢启动连接在得到带宽的公平分配之前消耗很长一段时间的蜂窝网络是非常有利的。
-所提出的机制可以伴随连接等级的变化。这意味着,例如,TCP连接的优先级随着连接进行而变化,即在由于这个连接的较大的数据量而需要较大部分的缓冲器时。
-所提出的机制可以应用于多种应用。例如,该机制有效地支持“多功能呼叫(rich call)”(“多功能呼叫”描述了在一个呼叫中象语音、视频和多媒体信息发送等的不同媒体类型的组合)和多重并发应用的终端。该机制也可以结合不同网络接入技术应用,比如HSDPA(高速下行链路分组接入)和GPRS(通用分组无线业务)。另外,它可以在不同类型的网络节点中实现,象例如SGSN(服务GPRS支持节点)之类的核心网络节点、IP路由器、无线接入网元等等。
-借助于所提出的机制,改善了网络侧和/或服务器(发送器)侧的拥塞避免中的数据吞吐量。
通过参考说明书及附图,本发明上面的和更进一步的目标、特征和优势将变得更明显。
附图说明
图1示出了根据本发明第一种实施方式用于控制数据传输的设备;
图2和3示出了根据本发明第一种实施方式的一个示例,说明调度机制的流程图;
图4和5示出了根据本发明第一种实施方式的另一个示例,说明调度机制的流程图;
图6示出了说明往返时间(RTT)的示图;
图7示出了信令示图;
图8示出了根据第二种实施方式的一个示例,说明调度机制的模型的示图;
图9示出了根据第二种实施方式的一个示例,说明调度机制的流程图;以及
图10示出了根据第二种实施方式的另一个示例,说明调度机制的流程图。
具体实施方式
下面,参考附图详细说明本发明优选的实施方式。要注意到本发明并不限制于在这里呈现在下面的示例,但还可以附上稍后提到的其它示例。
第一种实施方式
根据第一种实施方式,总的来说,在所提出的传输控制机制中,给出与其它流程/连接相比发送数据量较小的流程/连接提供优先处理。这特别对接近接入链接的蜂窝网络的网络节点有效,比如GPRS等情况下的SGSN,由于大多数传输缓冲发生于此的事实,因此在端到端传输路径中这里可以形成“瓶颈”。特别地,使用一种有效的排队/调度算法能够,例如但不排他性地,加速连接的慢启动。这是基于对在连接开始处慢启动连接的缓冲器占用比其它连接的小很多的观察。因此,通过给较低缓冲器占用的那些连接提供更高的优先级(即,在其它连接之前调度慢启动中的分组),缩短了往返时间(RTT),并且缩短了到实现各个连接的合理吞吐量为止的时间周期。一旦该连接达到与其它连接一样的缓冲器占用等级,每个连接就得到了相同份额的资源。
在图1中,示出了实现这种调度机制的设备1的一个示例。
该设备1可以是象无线网络节点(例如SGSN)或路由器的网络节点的一部分,例如,接入网络子系统或核心网络子系统的一部分,。即使在图1中示出了用于说明该机制不同功能的独立装置,要注意到这些功能能够以软件实现并由网络节点的一个或多个部分执行,比如由中央处理单元(CPU)及其存储器装置执行。可以在其中实现所提出机制的网络节点可以包括用于执行它们各自功能的、控制和/或通信功能性所需要的几个装置。这些装置是,例如,用于执行指令并处理数据(例如,传输内容和与数据相关的信令)的处理器单元、用于存储指令和数据、用于作为处理器的工作区域等的存储器装置(例如,ROM、RAM、EEPROM等)、用于由软件输入数据和指令的输入装置(例如,软盘、CD-ROM、EEPROM等)、用于给用户和/或操作者提供监视和操作可能性的用户接口装置(例如,屏幕、键盘等)、和用于在处理器单元控制下建立通信连接的接口装置(例如,有线和无线接口装置、天线等)。
要注意到,在下面,术语“节点”、“路由器”或者“网络节点”涉及到所有实现所提出的调度机制的一个和相同的网元。
根据图1,设备1包括用于检测来自多个输入连接的具体类型的连接的检测器(检测装置)2。该检测器适合检测例如,TCP连接。此外,设备1包括用于识别经指定TCP连接输入的流程的数据分组的识别装置3。这种流程识别可以在,例如端口号码、数据源和目的地IP地址或IPv6流程标签的基础上实现。将数据分组转发到为随后的传输缓冲每个连接的分组的缓冲器8(稍后描述)。在确定装置4中,确定每个TCP连接的缓冲器占用,即缓冲器8中为每个TCP连接容纳的流程专用缓冲器的长度,并且以此为基础定义相应的缓冲器占用等级。分配装置5将TCP连接的缓冲器占用等级用于给该TCP连接分配一个优先级指示。对各个连接来说,这是以较低的缓冲器占用等级导致较高的优先级指示,而较高的缓冲器占用等级导致较低的优先级指示的方式完成的。在处理器(处理装置)6中,将为每个连接所分配的优先级指示用于处理。在这个处理中,生成用于决定哪个连接优选地用于队列中缓冲的数据分组的传输的连接级别。在调度器(调度装置)7中,执行调度处理以基于分配给TCP连接的优先级指示调度(或排队)缓冲器8中存储的数据分组。换句话说,调度器7基于优先级指示选择各个TCP连接,并将所选TCP连接的预定数据量从缓冲器发送到目的地,比如另一个网络节点或终端单元。
优选地,TCP连接的优先级指示(即级别)仅在该网络节点(即设备1)经由所检测的TCP连接之一接收到新的数据分组时改变(或者重新计算)。此外,当经由该网络节点或到该网络节点建立了一个新的TCP连接时,设备1还起到将这个新的连接排列到已经存在的队列中的作用。
下面,根据图2和3参考流程图,描述了由设备1执行的调度机制的第一个示例。
当调度机制在步骤S10启动时,在步骤S20中检测出到网络节点/路由器的TCP连接。在步骤S30中,经各个TCP连接输入的数据分组被识别为属于这个连接并存储到网络节点的流程专用缓冲器8中。
然后,在步骤S40中,确定该各个TCP连接的缓冲器占用等级。换句话说,计算在缓冲器中存储并等待被排队的每个连接的数据量。根据本示例,当节点经各个TCP连接,例如连接i,接收到数据分组时,例如,通过如下找出这个连接正在使用的缓冲器空间部分来计算该连接的缓冲器占用。
occupancy(i)=(bytes_enqueued_for_(i))/( bytes_enqueued_for_(j));
其中,i表示各个的TCP连接,占用(i)表示连接i的缓冲器占用等级,“bytes_enqueued_for”表示在缓冲器8中排队的各个连接的字节数,而N表示到达该网络节点的非0缓冲器占用的多个TCP连接的总数。
在随后的步骤S50中,确定到达该节点的连接的缓冲器占用是否与要执行的特殊调度算法不同。这是基于各个连接i的占用等级与预定参数δ以下面关系式形式的比较
occupancy(i)<1/N-δ;
其中δ满足关系式
0<δ<1/N
对于任何连接(即,对任何i)。
这里,δ是一个可配置的参数,依赖于它可以认为,如果所有连接的占用等级大约相同,则无需优先处理。可以在,例如,网元操作期间或在其初始化周期定义参数δ。δ的具体值的选择可以考虑网络能力、各个网络节点的传输链接能力(传输管道的容量)等等。例如,当网络或网络节点的能力相当高时,可以允许各个连接的缓冲器占用之间较大的差额。
当步骤S50中的判断为否时,即,连接的占用等级大约相同,接下来是步骤S60,其中用于调度连接的数据分组的是可选择的或固有的调度算法。优选地,这个可选择的调度算法可以使用,例如,FIFO(先入先出)调度。要注意到,优选地在连接建立时执行算法。一旦连接进入相等优先级状态,上述机制可能被停止。
另一方面,当步骤S50中的判断为是时,接下来是步骤S70。
基于每个连接的缓冲器占用等级,确定每个连接i的优先级指示。在这个示例中,在步骤S70中,利用下面的方程式为每个连接i计算表示从N个连接中的任何一个发送分组的概率的概率值。
sched_priorty(i)=(1-occupancy(i))/(N-1)
sched_priorty参数是发送连接i的分组的概率。在步骤S80中,利用各个连接的概率值sched_priorty处理每个连接的优先级指示。具体来说,考虑概率值预先排列各个连接,开始于有最高概率值的连接(即,缓冲器占用等级最低的连接)并终止于有最低概率值的连接(即,缓冲器占用等级最高的连接)。然后,在下面的步骤S90中,以开始于有最高概率值的连接的概率级别排列连接。级别中的下一个连接是置于步骤S80中预先排列的第二个位置的连接,其中通过将这个连接(第二个连接)的概率值与先前连接(这里只有第一个连接)的概率值相加,计算它的优先级指示。从而,在步骤S90中的级别中排列在最后的连接的优先级指示为1.0。
为了更好地理解步骤S70到S90的功能,这里给出了一个具体的示例。假设有3个TCP连接1、2、3到达该节点。根据这些连接的每个的缓冲器占用,确定各个概率值sched_priorty,连接1为0.33,连接2为0.2,而连接3为0.47。然后,以连接3(0.47),连接1(0.8)然后连接2(1.0)的级别排列连接。要注意到括号中的数字表示来自较高优先级的连接的概率范围,即它们定义给出的优先级等级的累积概率是什么。这意味着,例如,如果级别-1(在上述情况下为连接1)的最高概率是0.47而级别-2(在上述情况下为连接3)的占用调度优先权是0.33,则连接1括号中的数字是0.47+0.33=0.80。类似的,对级别-3来说,括号中的数字是0.8+0.2。换句话说,括号中的数字给出了范围从0到1的能够用于调度的随机数。例如,如果随机数是0.9,则可以认识到它在0.8到1.0之间,于是确定要调度的是级别-3。另一种情况,如果随机数是0.4,则要调度的是级别-1的连接。
在步骤S100中,当缓冲器8中的数据分组要调度以传输时,由随机数生成器(未示出)生成0和1之间的第一个随机数。这是在,例如,根据图1的调度器7中完成的。然后,在步骤S110中,将所生成的随机数与连接的概率级别,即它们的优先级指示进行比较,并基于这个比较选择一个连接。例如,该选择基于大于该随机数并最接近于该随机数的连接的级别的结果。然而,还有另一种可能的标准,比如只是小于该随机数等等。
参考上面的具体示例,假设所生成的随机数是0.7,在0.47(连接3)和0.8(连接1)之间,则节点从连接1调度数据分组。
当选择了连接(即数据分组)时,将该分组从缓冲器发送到由TCP连接指出的各个目的地(步骤S120)。
调度机制基于步骤S70到S90中的计算在网络节点中继续。具体来说,在步骤S130中,检查缓冲器中是否存在数据分组。如果不再存在任何分组,则重新启动调度机制,即等候新分组的到来(步骤S140)。
另一方面,当缓冲器8中存在分组时,执行步骤S150,在其中对TCP连接之一检查是否有新分组到达。如果在该网络节点没有接收到新分组,则从步骤S100重复该处理。另一方面,如果至少接收到一个属于一个TCP连接的新分组,则从前面的步骤S30重复该处理(步骤S160)。
根据步骤S130和S150,该节点基于表示在发送出分组之后未改变的每个连接的级别的当前优先级指示(级别)的计算结果继续调度。连接的级别仅在新分组到达该节点时改变。此外,由于步骤S100和S110中每个连接的随机化,不会漏掉任何一个连接。另外,连接的级别不会在发送了分组之后改变。这意味着由于分组已被发送,该连接不再保持有较高的优先级。要注意到由于仅在分组到达时确定级别,在节点上计算并重新排列分组的负担相对较小。
优选地,在已经发送出为一个连接缓冲的所有分组时,为了不限制还有分组要发送的其它连接的分组的传输,从步骤S90中建立的级别中删除这个TCP连接。可以,例如结合步骤S130,或者在一个单独的步骤中(未示出),执行这种连接的0缓冲器占用的相应确定。这也可以基于表示一个连接在预定的时间周期内缓冲器占用为0,并且从而可以禁止它的计时器期满。
根据图2和3的调度机制有利于加速快速慢启动的连接。
下面根据图4和5,参考流程图,说明根据第一种实施方式的调度机制的另一个示例。
在根据这个示例在步骤S210中启动了调度机制后,执行对应于根据图2的步骤S20和S30的检测步骤S220和识别步骤S230,因此不在下面详细说明。
在步骤S240中,确定TCP连接的缓冲器占用等级。换句话说,计算在缓冲器8中存储并等待排队的每个连接的总数据量。根据本示例,当节点接收到属于各个TCP连接的数据分组时,计算各个连接的总字节数。
根据本示例,通过保持(虚拟的)队列j(j=1、2、3、…、M-1、M)以将缓冲器8的缓冲器空间分组来准备该网络节点。为定义为唯一预定优先级值P(j)的每个队列指定,其中队列j的优先级值高于队列j+1。此外,唯一的预定字节阈值bth(j)与每个队列相关联,这里bth(j)小于bth(j+1)。阈值bth用于与到达该网络节点的各个连接的总数据量进行比较,并且用于对队列1到M之一的连接指定。
据此,在步骤S250中,将在步骤S240中计算的总数据量与该网络节点的唯一预定字节阈值bth进行比较。然后,在步骤S260中,基于下面的比较关系将队列之一指定给该连接。
bth(j)≤B<bth(j+1);
这里,B是所计算的该网络节点中各个连接的总字节数。将各个连接指定给阈值小于或等于总数据量B的队列,即队列j。
当实现了将各个连接指定给队列之一时,在步骤S270中,将这个队列的唯一优先级值分配给该连接作为它的优先级指示。这意味着,根据对B的指定bth(j),这个连接的优先级指示的值为P(j)。
在步骤S280中,以所分配的优先级指示为基础按级别排列TCP连接。
然后,在步骤S290中,检查是否有两个或多个连接分配了相同的优先级指示,即指定了相同的队列。如果是这样(步骤S290为是),执行步骤S300,其中至少为优先级指示相同的那些连接的数据分组调度选择选择性的调度算法。这个选择性的调度机制是基于,例如,启发式调度算法,比如FIFO排队。
另一方面,当步骤S290中的判断为否(连接的优先级指示不同)时,执行步骤S310,其中首先选择优先级指示最高的TCP连接以传输其数据分组。基于这个选择,从缓冲器8中选择并调度所选TCP连接的数据分组以传输到各个TCP连接指出的目的地(步骤S320)。
然后,在步骤S330中,检查缓冲器8中是否还有数据分组等待调度。如果现在不再有分组,则重新启动调度机制,即等候新分组的到来(步骤S350)。
另一方面,当缓冲器8中有分组时,执行步骤S340,其中重复从步骤S240向前的处理。
优选地,当已经发出为一个连接缓冲的所有分组时,为了不限制仍然有分组要发送的其它连接的分组的传输,从步骤S280建立的级别中删除这个TCP连接。可以结合,例如步骤S330,或者在一个单独的步骤中(未示出)执行这种连接的0缓冲器占用的相应确定。这也可以基于表示一个连接在一个预定的时间周期内缓冲器占用为0,并且从而可以禁止它的计时器期满。
根据图4和5示例的调度机制的优势在于,它不涉及高计算负载,这对高速路由器是非常理想的。
如上所述,根据图2和3示例的调度机制计算代价更高,但是它加速了慢启动的连接,使其比根据图4和5示例的优势在于低计算代价但与第一种调度机制相比低效率的调度机制更快。
因此,作为实现所提出的网络节点中的调度机制的另一个选择,例如,可以将结合图2和3中定义的调度机制与结合图4和5中定义的调度机制以执行两种调度机制之间的选择这样的方式组合在一起。这样的选择可以基于,例如,网络节点处TCP连接的数量。当这个TCP连接数量小于预定的阈值时,例如,执行结合图4和5中定义的调度机制,而当这个TCP连接数量大于预定的阈值时,例如,执行结合图2和3中定义的调度机制,反之亦然。可以,例如,在数据分组的识别(分别在步骤S30和S230)之后引入相应的选择步骤。
要注意到,作为上述第一种实施方式的进一步的优势,当TCPACK分组属于慢启动连接时,至少暗中为它们设定优先级。为了加速慢启动,ACK分组的传输可能是重要的。
优选地在SGSN或任何IP路由器中实现上面定义的调度机制。该方案可以与加权公平排队(WFQ)技术一起工作,但是它们也可以结合其它排队规程进行工作。
第二种实施方式
下面,将参考图7到10说明本发明的另一种实施方式。
与利用作为网络基础设施一部分的网络节点中的加权公平排队(WFQ)机制实现增加吞吐量的第一种实施方式(尤其用于加速慢启动)相比,根据第二种实施方式,说明了一种机制,支持在TCP发送器,比如移动台、服务器等处的设定优先级调度。以此方式,避免了网络实现的依赖性。
通常,在TCP发送器侧,发送器(或服务器)认可相对高速的链接,至少比象发生最多传输缓冲的网络节点(例如SGSN)一样的蜂窝链接瓶颈高。因此,在发送器侧,通常不执行传输缓冲(然而,要注意到,为了可能的重新传输,可能保存所发送的数据/分组的拷贝)。按照惯例,因为没有分组预先占有传输缓冲器中的位置,所以不执行设定优先级调度。
根据这种实施方式,通常,服务器在发送它之前通过基于(分组大小/链接速度)的量延迟每个分组,来仿真链接速度。利用这样的链接速度仿真(LSE),在服务器侧建立一个传输缓冲器,使得设定优先级调度是可能的。
要注意到,对于根据第二种实施方式的调度机制的实现,必须的是,给有关传输网络基础设施的至少一个网络节点,比如要通过网络发送数据的传输缓冲的网络节点,象GPRS网络基础设施情况下的SGSN,提供每移动台(MS)的缓冲器。
参考图7到9,说明第二种实施方式的第一个示例。
图7中,示出了用于说明一个TCP连接开始的TCP发送器和TCP接收器之间的信令图。图8中,图示了说明在根据第二种实施方式的第一个示例的TCP发送器中应用的调度机制的模型。图9中,示出了用于说明根据第二种实施方式的第一个示例的调度机制的流程图。
参考图7,连接开始可以定义为TCP发送器或接收器发送各自的SYN分组的时间(图9,步骤S510)。在该连接的启动阶段,根据第二种实施方式的调度机制,TCP发送器(或接收器)检查系统中是否有其它连接(比如TCP连接),如果有,系统中该其它TCP连接的设置是否包括与不能执行下述(图9中,步骤S520、S530)根据第二种实施方式的调度机制的TCP发送器/接收器类型进行通信的任何连接(即,其它TCP连接)。这种检查可以通过,例如,利用信令机制来实现,比如在该连接的两个端点(发送器、接收器)运行的UDP(用户数据报协议)应用。依靠这种信令机制,可以交换关于执行根据第二种实施方式的调度机制的能力的信息,例如通过从一个发送器/接收器节点向另一个节点发送包括所有TCP连接使用同一个服务器的相应信息的UDP分组,或者通过发送请求并通过用相应确认(ACK)消息回答该请求。在没有接收到该信息或该ACK的情况下,则假设相应确认节点不能执行所提出的调度机制。
如果该发送器和/或接收器确定其它连接不使用根据第二种实施方式的调度机制,则该TCP发送器必须不激活下述调度。具体来说,LSE缓冲对该发送器和该接收器都是禁止的(图9中的步骤S540),而依靠默认的调度机制调度分组以传输,比如基于FIFO算法的调度机制(图9中的步骤S550)。
要注意到,如果在该连接期间的任何时候(即,在启动根据步骤S530确定可能的LSE缓冲的连接之后),该发送器或接收器意识到有不使用这个调度机制的其它TCP连接,同样要例如通过给服务器发送相应UDP分组最好尽可能快地禁止该调度机制。这还将结合下述图9的步骤S630详细说明。
一种实现检查连接能力和禁止LSE缓冲的特征的有利方式是,例如,要求所有能够使用LSE缓冲的TCP发送器加入多点传送组。在这种情况下,例如手机(作为该连接的端点)仅向这个多播组发送第一个UDP分组。依靠这种方法,象手机一样的端点节点不必知道该服务器的确切IP地址或有关性能增强代理(PEP)。然而,在这种情况下,要注意到PEP将只该手机发送单播响应。
此外,在步骤S540中禁止了基于LSE缓冲的调度机制的情况下,步骤S550中基于FIFO的调度机制的使用,有利于防止可能导致TCP发送器引起虚假重发(可能依次降低性能)的任何分组重新排序问题。另一方面,已经在队列之前的分组可能延迟某些新的分组。
另一方面,当在步骤S530中确定所有连接使用根据第二种实施方式的基于LSE缓冲的调度机制时,执行图9中的步骤S560。在步骤S560中,检查发送器节点(TCP发送器)是否在拥塞避免状态。这可以通过,例如检测该连接的拥塞窗口是否小于SS_THRESH值来辨别。
如果步骤S560中确定为是,则执行步骤S570,其中以正常的方式执行调度(即,数据和ACK分组的调度),例如使用基于FIFO的调度或者基于第一种实施方式的调度。
在步骤S550和S570之后,该过程返回到步骤S520。
如果步骤S560中确定为否,即该TCP连接不在拥塞避免状态,则接下来是步骤S580。
在步骤S580中,为了调度连接的分组,确定当前分组,即当前要在该TCP发送器的传输队列中排队的分组,是否为第一个分组。换句话说,在步骤S580中检查队列中是否有其它分组。
如果步骤S580中的判断为否,即队列中没有其它分组,则执行步骤S620,其中在该TCP发送器中将第一个分组的传输延迟一个固定的时间量。通常,该时间量在100ms的量级。然后执行下面将说明的步骤S630。
另一方面,如果步骤S580中的判断为是,即在队列中当前分组之前至少有一个分组,则执行步骤S590到S610。通常,按照S590到S610这些步骤,每次调度当前分组,使得以仿真该连接的链接速度(LSE)的数据率使在它之前的整个队列变空。这也在图8中得以说明。根据图8,示出了TCP发送器处基于LSE调度的模型和如何维持队列。
在接收到来自接收器的ACK之后(图8),发送器确定队列中先前分组(X-1)的调度时间(或出发时间),该时间也称为T。这是在步骤S590中执行的。要注意到先前分组(X-1)也可能属于不同的TCP连接。
然后,在步骤S600中,在发送器中计算以该连接的链接速度发送先前分组(X-1)需要的时间。
在下面的步骤S610中,基于先前分组(X-1)的调度时间、先前分组的分组大小(要由发送器检测或者可以从先前分组(未示出)中包含的信息中得出)和要设定的LSE参数计算当前分组X的调度时间。换句话说,分组X的调度时间是以这种形式计算的:
t(X)=T+pkt_size(X-1)/LSE,
其中pkt_size(X-1)是表示先前分组(X-1)大小的值,而LSE是链接速度仿真的值。
LSE值是,例如,该连接的最大链接速度。此外,该LSE值是从该连接的估计的往返时间(RTT)导出的,靠下面方程式计算
LSE=congestion_Window/RTT
其中congestion_window是其分组要调度的连接的TCP窗口大小。
当计算了调度时间t(X)时,发送器在分组(X-1)到达接收器时调度分组X,使得下一个发送分组X。这也在图8中较低的方框中示出了。
优选地,使用上述调度机制的TCP节点适合于识别ACK分组并尽快发送所识别的分组。然而,在TCP中要遵循所谓延迟ACK规则的情况下,ACK的处理可能是具体协议规则的问题。从而,这种发送规则仅针对调度,同时不改变协议逻辑。
当在步骤S610或者S620中确定了当前分组的调度时间时,接下来是步骤S630,其中检查发送器和/或接收器是否建立了任何新连接。如果步骤S630中的判断为否,即没有检测到新连接,则为了处理剩余的分组,过程返回到步骤S580。另一方面,如果步骤S630中的判断为是,即至少有一个新连接,则为了检查该一个或多个新连接是否使用LSE缓冲,过程返回到步骤S530。这是为了保证在所建立连接的设置的任何末端节点(发送器/接收器)不能执行上述调度机制时禁止LSE缓冲而执行的。
接下来,结合图10说明根据第二种实施方式的第二个示例。第二种实施方式的第二个示例是第一个示例的修改。结合根据图10的流程图说明了第二个示例与第一个示例的差别。
如图10所示,在第二种实施方式的调度机制中要执行的步骤S510至S580等效于第一种实施方式中描述的步骤。因而,为了简便的缘故,省略其详细说明。
在步骤S580之后,即在确定队列中是否有任何其它分组之后,在步骤S580中的判断为否的情况下,即队列中没有其它分组,执行步骤S611。在步骤S611中,假定一个调度时间设为0的“虚拟”先前分组(X-1)。然后,执行下面描述的步骤S621。
另一方面,如果步骤S580中的判断为是,即在队列中的当前分组之前至少有一个分组,执行步骤S591和S601。与第一个示例类似,在步骤S591中,发送器确定队列中先前分组(X-1)的调度时间(或出发时间),该时间也称为T。要注意到先前分组(X-1)也可能属于不同的TCP连接。
然后,在步骤S601中,在发送器中计算以该连接的链接速度发送当前分组X需要的时间。
在步骤S601之后,该过程继续到执行步骤S621,如上所述,在步骤S611之后。在步骤S621中,基于先前分组(X-1)的调度时间、当前分组X的分组大小(要由发送器检测或者可以从先前分组(未示出)中包含的信息中得出)和要设置的LSE参数,计算当前分组X的调度时间。换句话说,,分组X的调度时间是以这种形式计算的:
t(X)=T+pkt_size(X)/LSE
其中pkt_size(X)是表示当前分组(X)大小的值,而LSE是链接速度仿真的值。
当步骤S580中的判断为否时,(虚拟)分组(X-1)的调度时间设为0,以便步骤S621中的计算也对队列中的第一个分组有效。
该LSE值是,例如,该连接的最大链接速度。此外,该LSE值是从该连接的估计的往返时间(RTT)导出的,靠下面方程式计算
LSE=congestion_window/RTT
其中congestion_window是其分组要调度的连接的TCP窗口大小。
当计算了调度时间t(X)时,发送器从而在队列中调度分组X。
在步骤S621中调度了分组之后,执行步骤S631。与图9中的步骤S630类似,检查发送器和/或接收器处是否建立了任何新连接。如果步骤S631中的判断为否,即没有检测到新连接,则为了处理剩余的分组,过程返回到步骤S580。另一方面,如果步骤S631中的判断为是,即至少有一个新连接,则为了检查该一个或多个新连接是否使用LSE缓冲,过程返回到步骤S530。这是为了保证在所建立连接的设置的任何末端节点(发送器/接收器)不能执行上述调度机制时禁止LSE缓冲而执行的。
在这第二个示例中,TCP发送器比第二种实施方式的第一个示例中的方案更接近地模仿瓶颈路由器。
在第二种实施方式的第一个和第二个示例中,通过将用于LSE参数的链接速度值设为一个适当的值,可能防止比不使用LSE缓冲的情况恶化的端到端延迟。换句话说,(由LSE缓冲+瓶颈(例如SGSN)处的缓冲延迟导致的服务器处的延迟)的量不比没有LSE缓冲的传统情况中(瓶颈处的缓冲延迟)更严重是可实现的。例如,如果链接速度所用的值设为实际链接速度的上限,即可实现。
此外,通过使用从TCP接收器到发送器的清楚信令能够防止与来自没有实现LSE缓冲的其它服务器的通信量相比实现了LSE缓冲的服务器的惩罚性通信量,以便如果有来自非LSE缓冲数据源的通信量则禁止LSE缓冲。
第二种实施方式的优势特别在于,不需要改变网络基础设施。从而,根据第二种实施方式的调度机制通常可应用于所有存在的基于分组的网络,只要发送器和接收器节点能够使用LSE缓冲实现这种调度方案。此外,这种调度机制允许TCP服务器加速拥塞避免中的吞吐量。而且,这种调度机制与其它连接相比也加速了慢启动。后者可以通过用第二种实施方式中描述的LSE机制延迟所有分组然后为“较小的缓冲器”设定优先级(例如,利用第一种实施方式中说明的方案),或者通过延迟除了没被延迟(意味着它们通过其它连接设定了优先级)的慢启动连接之外的所有分组(拥塞)来实现。
即使结合TCP说明了根据第一种和第二种实施方式的调度机制的示例,将每个调度机制与其它类型的传输协议相结合也是可能的。而且,可以改变在调度机制中使用的参数的限制,以便使机制适合于具体的网络应用。
如上所述,提供了一种可用于基于分组的网络中的数据传输的改良的调度机制。检测多个连接,并且为每个连接确定缓冲器占用等级。然后,为与其它连接相比缓冲器占用较小的连接设定优先级,并基于设定优先级的结果调度多个连接的分组。该调度机制在基于分组的网络的网元中或发送器和接收器中实现。
应该理解到,上面的说明书和附图只是试图仅通过示例的方式说明本发明。因此,本发明所描述的实施方式可以在所附的权利要求书的范围内变化。

Claims (75)

1.一种在基于分组的网络中转发数据的方法,该方法包括下列步骤:
检测多个连接;
为该多个连接中的每一个确定缓冲器占用等级,
为与其它连接相比具有较小缓冲器占用等级的连接设定优先级,以及
基于设定优先级步骤的结果调度该多个连接的分组。
2.根据权利要求1的方法,还包括识别在具体类型的连接上发送的分组的步骤。
3.根据权利要求1或2的方法,其中该确定缓冲器占用等级的步骤,确定在网元的缓冲器中的该缓冲器占用等级。
4.根据权利要求1到3中任意一个的方法,其中该设定优先级的步骤,包括下列子步骤:
基于该所确定的缓冲器占用等级,为该多个连接中的每一个分配优先级指示,
处理该多个连接中的每一个的该优先级指示以调度该分组。
5.根据权利要求4的方法,其中在该分配优先级指示的步骤中,将较高的优先级等级分配给与该其它连接相比具有较小缓冲器占用等级的连接。
6.根据权利要求4或5的方法,还包括在经由该多个连接中的至少一个接收到新的分组时,更新分配给该多个连接的每一个的该优先级指示的步骤。
7.根据权利要求4到6之一的方法,其中该确定缓冲器占用等级的步骤包括通过将该多个连接之一的字节数与全部该多个连接的字节数进行比较,计算各个连接的缓冲器占用的步骤。
8.根据权利要求7的方法,其中该计算缓冲器占用的步骤是基于方程式:
occupancy ( i ) = ( bytes _ enqueued _ for _ ( i ) ) / ( Σ j = 1 N bytes _ enqueued _ for _ ( j ) ) ;
其中i表示该各个连接,occupancy(i)表示该各个连接的缓冲器占用等级,bytes_enqueued_for表示在该缓冲器中排队的各个连接的字节数,以及N表示该多个连接的总数。
9.根据权利要求4到8之一的方法,还包括将该所确定的多个连接的每一个的缓冲器占用等级与预定的参数进行比较,以决定该优先级指示分配种类的步骤。
10.根据步骤9的方法,其中将该所确定的多个连接的每一个的缓冲器占用等级与预定的参数进行比较的步骤是基于关系式:
occupancy(i)<1/N-δ;
其中i表示该各个连接,occupancy(i)表示该各个连接的缓冲器占用等级,N表示该多个连接的总数,以及δ表示可配置参数,其满足关系式:
0<δ<1/N。
11.根据权利要求4到10之一的方法,其中该分配优先级指示的步骤包括基于该缓冲器占用等级,将定义该各个连接的分组的传输概率的概率值指定给该多个连接的每一个的步骤。
12.根据权利要求11的方法,其中基于该缓冲器占用等级将概率值指定给该多个连接的每一个的步骤,其基于方程式:
sched_priorty(i)=(1-occupancy(i))/(N-1);
其中i表示该各个连接,sched priorty(i)表示定义该各个连接的分组的传输概率的概率值,occupancy(i)表示该各个连接的缓冲器占用等级,以及N表示该多个连接的总数。
13.根据权利要求11或12的方法,其中该处理多个连接的每一个的该优先级指示的步骤包括以根据该多个连接的每一个的概率值的级别排序该连接的步骤。
14.根据权利要求13的方法,其中该调度多个连接的每一个的该数据分组的步骤,包括子步骤:
生成随机数,
基于该多个连接的每一个的级别和该随机数之间的比较选择该多个连接中的连接,以及
调度该所选连接的分组以发送它。
15.根据权利要求14的方法,其中在该选择连接的步骤中,选择其级别高于该随机数并且最接近于该随机数的连接。
16.根据权利要求14到15中任意一个的方法,其中重复该调度数据分组的步骤。
17.根据权利要求4到6中任意一个的方法,其中该确定缓冲器占用等级的步骤,包括下列子步骤:
通过为各个连接所呈现的所有分组的总数据量的相加来计算各个连接的该缓冲器占用,
比较该各个连接的总数据量与为该缓冲器的多个队列定义的唯一的预定阈值,以及
基于该比较步骤将该各个连接指定给该队列之一,
其中该每一个队列与唯一的优先级等级相关联。
18.根据权利要求17的方法,其中该比较该各个连接的总数据量与为该缓冲器的多个队列定义的唯一的预定数据量阈值的步骤,是基于关系式:
bth(q)≤B<bth(q+1);
其中B表示该各个连接的总数据量,q表示该多个队列中的各个队列,以及bth表示一个队列的该唯一预定数据量阈值。
19.根据权利要求17或18的方法,其中在该将该各个连接指定给该队列之一的步骤中,将该各个连接指定给其唯一预定数据量阈值小于或等于该各个连接的总数据量的队列。
20.根据权利要求17到19中任意一个的方法,其中在该给多个连接的每一个分配优先级指示的步骤中,为其指定了该各个连接的该队列的优先级值被分配为该各个连接的优先级指示。
21.根据权利要求20的方法,其中该处理该多个连接的每一个的该优先级指示的步骤,包括以根据该队列的优先级值的级别排序该连接的步骤。
22.根据权利要求21的方法,其中该调度分组的步骤包括下列子步骤:
选择该具有最高的优先级指示的连接,以及
调度该所选连接的分组以发送它。
23.根据权利要求20的方法,其中在该多个连接中的两个或多个被分配了该相同的优先级指示的情况下,该调度分组的步骤是基于该多个连接中的至少两个或多个的启发式算法。
24.根据前面的权利要求中任意一个的方法,其中在该多个连接中至少一个的慢启动条件的情况下,则执行该方法。
25.根据前面的权利要求中任意一个的方法,其中该连接包括至少一个TCP类型的连接。
26.一种用于在基于分组的网络中控制数据转发的设备,该设备包括:
用于检测多个连接的检测装置,
用于为该多个连接中的每一个确定缓冲器占用等级的确定装置,
用于为与其它连接相比具有较小缓冲器占用等级的连接设定优先级的优先级设定装置,以及
用于基于由优先级设定装置获得的结果调度该多个连接的分组的调度装置。
27.根据权利要求26的设备,还包括用于识别在具体类型的连接上发送的分组的识别装置。
28.根据权利要求26或27的设备,其中该确定装置确定在网元的缓冲器中的该缓冲器占用等级。
29.根据权利要求26到28中任意一个的设备,还包括:
用于基于该所确定的缓冲器占用等级,为该多个连接中的每一个分配优先级指示的分配装置,
用于处理该多个连接中的每一个的该优先级指示以调度分组的装置。
30.根据权利要求29的设备,其中该分配装置适合于将较高的优先级等级分配给与该其它连接相比具有较小缓冲器占用等级的连接。
31.根据权利要求29或30的设备,该设备适合于在经由该多个连接中的至少一个接收到新的分组时,更新分配给该多个连接的每一个的优先级指示。
32.根据权利要求29到31之一的设备,其中该确定装置适合于通过将该多个连接之一的字节数与全部该多个连接的字节数进行比较,计算各个连接的缓冲器占用,确定该缓冲器占用等级。
33.根据权利要求32的设备,其中该确定装置适合于基于下面的方程式计算缓冲器占用:
occupancy ( i ) = ( bytes _ enqueued _ for _ ( i ) ) / ( Σ j = 1 N bytes _ enqueued _ for _ ( j ) ) ;
其中i表示该各个连接,occupancy(i)表示该各个连接的缓冲器占用等级,bytes_enqueued_for表示在该缓冲器中排队的各个连接的字节数,以及N表示该多个连接的总数。
34.根据权利要求29到33之一的设备,还包括用于将该所确定的多个连接的每一个的缓冲器占用等级与预定的参数进行比较的装置,以及用于基于该比较决定该优先级指示分配种类的装置。
35.根据步骤34的设备,其中用于将该所确定的多个连接的每一个的缓冲器占用等级与预定的参数进行比较的装置适合于检查关系式:
occupancy(i)<1/N-δ;
其中i表示该各个连接,occupancy(i)表示该各个连接的缓冲器占用等级,N表示该多个连接的总数,以及δ表示可配置参数,其满足关系式:
0<δ<1/N。
36.根据权利要求29到35中任意一个的设备,其中该分配装置适合于,基于该缓冲器占用等级,将定义该各个连接的分组的传输概率的概率值指定给该多个连接中的每一个。
37.根据权利要求36的设备,其中该分配装置适合于基于该缓冲器占用等级将概率值指定给该多个连接的每一个,其基于方程式sched_priorty(i)=(1-occupancy(i))/(N-1);
其中i表示该各个连接,sched_priorty(i)表示定义该各个连接的分组的传输概率的概率值,occupancy(i)表示该各个连接的缓冲器占用等级,以及N表示该多个连接的总数。
38.根据权利要求36或37的设备,其中该用于处理多个连接的每一个的该优先级指示的装置适合于以根据该多个连接的每一个的概率值的级别排序该连接。
39.根据权利要求38的设备,其中调度装置适合于:
生成随机数,
基于该多个连接的每一个的级别和该随机数之间的比较选择该多个连接中的连接,以及
调度该所选连接的分组以发送。
40.根据权利要求39的设备,其中在该连接的选择中,调度装置适合于选择其级别高于该随机数并且最接近于该随机数的连接。
41.根据权利要求39到40中任意一个的设备,其中该调度装置适合于重复该调度数据分组。
42.根据权利要求29到31中任意一个的设备,其中该确定装置适合于:
通过为各个连接所呈现的所有分组的总数据量的相加来计算各个连接的缓冲器占用,
比较该各个连接的总数据量与为该缓冲器的多个队列定义的唯一的预定阈值,以及
基于该比较步骤将该各个连接指定给该队列之一,
其中该每一个队列与唯一的优先级等级相关联。
43.根据权利要求42的设备,其中该确定装置适合于将该各个连接的总数据量与为该缓冲器的多个队列定义的唯一的预定数据量阈值进行比较,其基于关系式:
bth(q)≤B<bth(q+1);
其中B表示该各个连接的总数据量,q表示该多个队列中的各个队列,以及bth表示一个队列的该唯一预定数据量阈值。
44.根据权利要求42或43的设备,其中该确定装置适合于将该各个连接指定给该队列之一,将该各个连接指定给其唯一预定数据量阈值小于或等于该各个连接的总数据量的队列。
45.根据权利要求42到44中任意一个的设备,其中该分配装置适合于将为其指定了该各个连接的该队列的优先级值分配为该各个连接的优先级指示。
46.根据权利要求45的设备,其中用于处理的装置适合于以根据该队列的优先级值的级别排序该连接。
47.根据权利要求46的设备,其中调度装置适合于:
选择该具有最高的优先级指示的连接,以及
调度该所选连接的分组以发送。
48.根据权利要求45的设备,其中在该多个连接中的两个或多个被分配了该相同的优先级指示的情况下,该调度装置适合于基于该多个连接中的至少两个或多个的启发式算法调度该分组。
49.根据权利要求26到48中任意一个的设备,其中该设备被使用在发生多个连接中至少一个的慢启动条件的情况下。
50.根据权利要求26到49中任意一个的设备,其中该连接包括至少一个TCP类型的连接。
51.一种在其中可以执行基于分组的数据传输的通信网络系统,该系统包括至少一个可用于控制该数据传输的网络节点,其中该网络节点包括根据权利要求26到50之一的该设备。
52.根据权利要求51中的通信网络系统,其中该网络节点是路由器。
53.根据权利要求51中的通信网络系统,其中该网络节点是基于分组的无线业务的服务支持节点。
54.根据权利要求1中的方法,其中该连接优先级设定的步骤包括下列子步骤:
仿真该多个连接的每一个的链接速度,
其中该调度分组的步骤是基于该链接速度仿真的。
55.根据权利要求54中的方法,还包括基于各个连接的最大链接速度确定链接速度仿真参数的步骤。
56.根据权利要求54中的方法,还包括基于各个连接的往返时间确定链接速度仿真参数的步骤。
57.根据权利要求54到56中任意一个的方法,该方法还包括下列步骤:
确定当前分组是否是在该各个连接的队列中的第一个分组。
58.根据权利要求57中的方法,其中在该确定步骤为否的情况下,该方法还包括下列步骤:
确定传输先前分组的调度时间,
基于该先前分组的调度时间、该先前分组的分组大小和该链接速度仿真参数计算该当前分组的调度时间,其中该调度分组的步骤是基于该当前分组的调度时间。
59.根据权利要求57中的方法,其中在该确定步骤为是的情况下,该方法还包括下列步骤:
以固定的时间量延迟该第一个分组的传输时间。
60.根据权利要求57中的方法,其中在该确定步骤为否的情况下,该方法还包括下列步骤:
确定传输先前分组的调度时间,
基于该先前分组的调度时间、该当前分组的分组大小和该链接速度仿真参数计算该当前分组的调度时间,其中该调度分组的步骤是基于该当前分组的调度时间。
61.根据权利要求57中的方法,其中在该确定步骤为是的情况下,该方法还包括下列步骤:
将传输虚拟先前分组的调度时间设定为0,以及
基于该虚拟先前分组的设定调度时间、该当前分组的分组大小和该链接速度仿真参数计算该当前分组的调度时间,其中该调度分组的步骤是基于该当前分组的调度时间。
62.根据权利要求54到61中任意一个的方法,还包括下列步骤:
检查发送器节点是否在拥塞避免状态中,并且如果发送器节点在该拥塞避免状态中,
禁止该多个连接的每一个的链接速度仿真的步骤,
其中该调度分组的步骤基于默认调度机制。
63.根据权利要求54到62中任意一个的方法,其中该检测步骤还包括下列子步骤:
检查该多个连接中的任何一个是否包含不能执行该多个连接的每一个的该链接速度仿真步骤的发送器节点和/或接收器节点,并且如果有一个不能执行该多个连接的每一个的该链接速度仿真步骤的发送器节点和/或接收器节点,
则禁止所有发送器节点和接收器节点的该多个连接的每一个的该链接速度仿真的步骤,
其中该调度分组的步骤基于默认调度机制。
64.根据权利要求26中的设备,其中该优先级设定装置适合于:
仿真该多个连接的每一个的链接速度,
并且其中该调度装置适合于基于该链接速度仿真调度该分组。
65.根据权利要求64中的设备,还包括用于基于各个连接的最大链接速度确定链接速度仿真传输的确定装置。
66.根据权利要求64中的设备,还包括用于基于各个连接的往返时间确定链接速度仿真传输的确定装置。
67.根据权利要求64到66中任意一个的设备,还包括第二个确定装置,用于
确定当前分组是否是各个连接的队列中的该第一个分组。
68.根据权利要求67中的设备,还包括
用于确定该先前分组传输的调度时间的第三个确定装置以及
计算装置,
其中,在该第二个确定装置确定该当前分组不是各个连接的队列中的该第一个分组的情况下,该第三个确定装置确定该先前分组传输的调度时间,以及该计算装置基于该先前分组的调度时间、该先前分组的分组大小和该链接速度参数计算该当前分组的调度时间,其中该调度装置基于来自该计算装置的该当前分组的调度时间调度该分组。
69.根据权利要求67或68中的设备,还包括延迟装置
其中在该第二个确定装置确定该当前分组是各个连接的队列中的该第一个分组的情况下,该延迟装置将该第一个分组的传输时间延迟固定的时间量。
70.根据权利要求67中的设备,还包括
用于确定该先前分组传输的调度时间的第三个确定装置以及
计算装置,
其中,在该第二个确定装置确定该当前分组不是各个连接的队列中的该第一个分组的情况下,该第三个确定装置确定该先前分组传输的调度时间,并且该该计算装置基于先前分组的调度时间、该当前分组的分组大小和该链接速度参数计算该当前分组的调度时间,其中该调度装置基于来自该计算装置的该当前分组的调度时间调度该分组。
71.根据权利要求67或70中的设备,还包括
用于将虚拟先前分组传输的调度时间设定为0的设定装置,以及
计算装置,
其中,在该第二个确定装置确定该当前分组是各个连接的队列中的该第一个分组的情况下,该设定装置将该虚拟先前分组传输的调度时间设定为0,并且该计算装置基于该虚拟先前分组传输的设定调度时间、该当前分组的分组大小和该链接速度参数计算该当前分组的调度时间,其中该调度装置基于来自该计算装置的该当前分组的调度时间调度该分组。
72.根据权利要求64到71中任意一个的设备,还包括
用于检查发送器节点是否在拥塞避免状态中的检查装置,
用于禁止该多个连接的每一个的该链接速度仿真的禁止装置,
其中在该发送器节点在该拥塞避免状态中的情况下,该禁止装置禁止该仿真,并且该调度装置基于默认的调度机制调度该分组。
73.根据权利要求64到72中任意一个的设备,还包括
用于检查该多个连接中的任何一个是否包含不能执行该多个连接的每一个的链接速度仿真步骤的发送器节点和/或接收器节点的检查装置,以及
用于禁止所有发送器节点和接收器节点的该多个连接的每一个的链接速度仿真的第二个禁止装置,
其中在该检查装置确定有一个不能执行该多个连接的每一个的该链接速度仿真的发送器节点和/或接收器节点的情况下,该禁止装置禁止所有发送器节点和接收器节点的该多个连接的每一个的该链接速度仿真,其中该调度装置基于默认的调度机制调度该分组。
74.一种包括处理器可执行指令的计算机程序产品,用于控制处理器以执行根据权利要求1的方法。
75.根据权利要求74的计算机程序产品,其中用于控制该处理器的该处理器可执行指令还包括指令,以执行根据权利要求2到25中任意一个和/或根据权利要求54到63中任意一个的方法。
CN200580010129XA 2004-04-01 2005-03-01 基于分组的网络中的加速数据传输 Expired - Fee Related CN1939005B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US55814904P 2004-04-01 2004-04-01
US60/558,149 2004-04-01
US88699804A 2004-06-15 2004-06-15
US10/886,998 2004-06-15
PCT/IB2005/000514 WO2005096546A2 (en) 2004-04-01 2005-03-01 Expedited data transmission in packet based network

Publications (2)

Publication Number Publication Date
CN1939005A true CN1939005A (zh) 2007-03-28
CN1939005B CN1939005B (zh) 2010-09-22

Family

ID=34961094

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200580010129XA Expired - Fee Related CN1939005B (zh) 2004-04-01 2005-03-01 基于分组的网络中的加速数据传输

Country Status (4)

Country Link
EP (1) EP1730903B1 (zh)
CN (1) CN1939005B (zh)
AT (1) ATE531167T1 (zh)
WO (1) WO2005096546A2 (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102326369A (zh) * 2011-08-04 2012-01-18 华为技术有限公司 队列调度方法和装置
CN102594665A (zh) * 2012-02-02 2012-07-18 中兴通讯股份有限公司 业务数据传输方法和装置
CN104641361A (zh) * 2012-09-18 2015-05-20 思科技术公司 实时且高分辨率缓冲占用监控和记录
CN106656851A (zh) * 2016-12-28 2017-05-10 国网辽宁省电力有限公司 一种电力系统终端通信接入网汇聚节点的队列调度方法
CN109428619A (zh) * 2017-08-16 2019-03-05 联发科技股份有限公司 无线通信方法及其系统

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7821933B2 (en) 2007-08-31 2010-10-26 France Telecom Apparatus and associated methodology of processing a network communication flow
US9426086B2 (en) 2012-02-23 2016-08-23 Telefonaktiebolaget Lm Ericsson (Publ) Sub flow based queueing management

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6304578B1 (en) * 1998-05-01 2001-10-16 Lucent Technologies Inc. Packet routing and queuing at the headend of shared data channel
DE19907085C1 (de) * 1999-02-19 2000-04-13 Siemens Ag Verfahren zum Übertragen paketvermittelter Daten in einem Funk-Kommunikationssystem
US7062592B2 (en) * 2002-03-25 2006-06-13 Intel Corporation Selecting a queue for service in a queuing system

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102326369A (zh) * 2011-08-04 2012-01-18 华为技术有限公司 队列调度方法和装置
US9521086B2 (en) 2011-08-04 2016-12-13 Huawei Technologies Co., Ltd. Queue scheduling method and apparatus
CN102594665A (zh) * 2012-02-02 2012-07-18 中兴通讯股份有限公司 业务数据传输方法和装置
CN102594665B (zh) * 2012-02-02 2018-01-09 中兴通讯股份有限公司 业务数据传输方法和装置
CN104641361A (zh) * 2012-09-18 2015-05-20 思科技术公司 实时且高分辨率缓冲占用监控和记录
CN104641361B (zh) * 2012-09-18 2018-02-16 思科技术公司 实时且高分辨率缓冲占用监控和记录
CN106656851A (zh) * 2016-12-28 2017-05-10 国网辽宁省电力有限公司 一种电力系统终端通信接入网汇聚节点的队列调度方法
CN109428619A (zh) * 2017-08-16 2019-03-05 联发科技股份有限公司 无线通信方法及其系统

Also Published As

Publication number Publication date
WO2005096546A2 (en) 2005-10-13
WO2005096546A3 (en) 2006-02-16
CN1939005B (zh) 2010-09-22
ATE531167T1 (de) 2011-11-15
EP1730903A2 (en) 2006-12-13
EP1730903B1 (en) 2011-10-26

Similar Documents

Publication Publication Date Title
US7724750B2 (en) Expedited data transmission in packet based network
US6879561B1 (en) Method and system for wireless packet scheduling with per packet QoS support and link adaptation
EP1985092B1 (en) Method and apparatus for solving data packet traffic congestion.
CN102791037B (zh) 缓冲状态报告
CN101647307B (zh) 在通信网络中执行切换的装置和方法
JP4397928B2 (ja) ワイヤレス通信ネットワークの資源を、ネットワークのチャネルを介してユーザ機器に送信すべきトラヒックに割り当てる方法
CN1939005B (zh) 基于分组的网络中的加速数据传输
US20060291395A1 (en) Packet transmission control method and apparatus
US7032153B1 (en) Dynamic automatic retransmission request in wireless access networks
KR20050095307A (ko) 무선 통신 시스템에서 패킷 데이터 스케줄링 장치 및 방법
US20090290579A1 (en) Method and Apparatus for Controlling the Quality of Service of Voice and Data Services Over Variable Bandwidth Access Networks
JP2009505587A (ja) Ev−doネットワークを介したサービス品質パケット送信のための優先度付け技術
US7843825B2 (en) Method and system for packet rate shaping
US20050052997A1 (en) Packet scheduling of real time packet data
EP3055958B1 (en) Downlink flow management
CN103299675A (zh) 用于tcp依赖的流控制的自适应相对比特率管理器
EP1193921B1 (en) A system and method of increasing the message throughput in a radio network
US20060140146A1 (en) Method for controlling data circuits
US7336607B2 (en) Methods and apparatus for flow control based packet aggregation in a communication network
IL145125A (en) System and method of reducing retransmission of messages on a tcp/ip environment
CN102333026A (zh) 报文转发方法及装置
Lin et al. Performance evaluation for scheduling algorithms in WiMAX network
US20030159099A1 (en) Negative acknowledgment (NAK) suppression
JP4973452B2 (ja) WiMAXスケジューラーの待ち時間カウントを使用した無効データ除去
Rahimi et al. An improvement mechanism for low priority traffic TCP performance in Strict Priority Queueing

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20160118

Address after: Espoo, Finland

Patentee after: NOKIA TECHNOLOGIES OY

Address before: Espoo, Finland

Patentee before: NOKIA Corp.

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20100922

CF01 Termination of patent right due to non-payment of annual fee