用于对数据包传输进行定时以控制带宽的方法和系统的制作方法

文档序号:7892036阅读:250来源:国知局
专利名称:用于对数据包传输进行定时以控制带宽的方法和系统的制作方法
技术领域
本发明涉及一种用于对从发送方设备到一个或多个接收方设备的数据包传输进行定时以获得带宽控制目的的方法和系统。
背景技术
在使用诸如电缆、电话线、卫星通信等等之类的各种媒介执行进行数据传输的过程中,数据总是被从一个设备发送到其它设备。首先,该数据被分块或分段成包,然后这些包被传输或广播。术语“包”用于表示一个字节序列,并代表传输和接收的最小单元。以下,“设备”被定义为具有能够接收和/或传输数据包的软件组件的硬件单元。这种设备的例子包括计算机、GPRS移动电话和网络设备。
在这里使用的术语“内容”表示被分段成包序列的数据。包含在该内容中的数据可以是文件、或文件的一部分、或数据流的一部分、或数据的任何集合。该内容可以是纯数据、或音频和视频数据流、或它们的任何组合。该内容被以顺序地传输的包从发送方设备发送到一个或多个接收方设备。
典型地,这些发送和接收设备运行软件程序,这些软件程序在发送方设备的目的是把要被发送的内容分段成包,并且在接收方设备中的目的是把所接收到的包重组装成原始内容。
带宽被定义为能够在给定时间帧(time frame)内在媒介上加以传输的数据量,例如10Mbps(10兆比特/每秒)。实际上,这就是传输的速度,即,数据被从发送设备向接收设备发送所采用的速度。每个传输-接收系统拥有一定的由各种因素限定的带宽能力,所述因素诸如用于传输的媒介类型和用于传输和接收数据的设备。例如,一个广播电缆媒介拥有比电话线更大的带宽能力。
各种类型的协议被用于传输形成该内容的数据包。一些协议可以被认为是“不可靠的”,在这里的意思是指提供包的尽力而为传输的任何传输协议,并且具体而言,所述传输协议不自动执行重传丢失或损坏的包。当前普遍使用的“不可靠”协议的例子包括单播(unicast)和多播(multicast)用户数据报协议(UDP)、采用非确保传输模式的ATM适配层(AAL)类型3/4和5、AppleTalk DDP数据报,和单播和广播MPEG-2传送流。
经常地,来自不同文件的数据要同时地在相同的媒介上加以传输。例如,如果一特定系统拥有10Mbps的带宽传输能力,两个不同内容的包可以在不同流中同时被传输,例如,每个流拥有5Mbps的带宽。在各种商业应用中,给定媒介可用带宽的各部分被卖于或许可给不同用户以供同时使用。
一些应用要求有规律地和及时地接收包,例如,对于音频和视频传输来说,保持尽可能低的抖动(即,端到端包传输时间的变化量)是很重要的。在接收设备增加可靠性意味着在发送设备使用高精度的带宽控制,对于宽带应用更是如此。
总体上,一个广播应用的带宽使用是根据网络负载和速度、租用的带宽能力和接收设备的处理速度来选择的。以下,向给定传输分配的带宽被称为“目标带宽”。在传输期间中,实际被使用的带宽能够相对于选择的目标带宽而变化。
当广播发生时,带宽发生变化并且能够在任何时间被测量。“瞬时”带宽是指在最短可测量时间内测量的带宽。例如,如果带宽使用率能够以至多每秒一次的频率被有规律的检测,瞬时带宽通过在该时间帧(这种情况下是1秒)转移的数据量除以该时间间隔来计算。
该内容的广播有一“平均(或平均的)带宽”。这是在传输期间所传输的总数据量除以传输持续时间。这里,术语“平均带宽”(MeanBandwidth)和“平均的带宽”(Average Bandwidth)可以互换。
既然内容以包的形式传输,在传输连续包的开始之间有暂停或等待时间。包之间的等待时间与内容传输过程中使用的带宽有关。例如,增加包之间的等待时间而保持固定的包大小导致在给定时间期间传输较少的数据,反之亦然。
如果数据是在没有精确带宽控制的情况下被发送,各种问题就会发生。基本上有三种能引起问题的不同的情况。
(1)相对于目标带宽值,平均带宽太高了;(2)相对于目标带宽值,平均带宽太低了;(3)平均带宽等于或非常接近目标带宽,但是在传输过程中测量的瞬时带宽不同于目标带宽。以下,这种类型的传输被称为非均匀的(heterogeneous),即,包含峰值。
由以上所描述的不同情况引起的问题不利地影响接收数据的系统的不同部件和结构,诸如路由和交换设备和目的地接收方设备。描述如下。
(1)发送数据包太快。以高于目标带宽的速度广播数据通常导致实际上的包丢失。包丢失降低了数据传输的完整性。同样,如果路由设备不能缓冲到达的数据流,过高的传输速度就可能引起拥塞。如果数据发向卫星上行链路,同样的问题能影响封装器(encapsulator)。在这里,整个包序列就会被丢失。在接收设备一方,如果处理接收到数据的硬件和应用程序不是针对到达数据流速度高于带宽平均(平均的)值所设计的,包重组就可能是困难的。而且,如果在数据发送器和接收设备之间没有提供通信量缓冲机制,接受设备所连接到的局域网(LAN)就有可能经历拥塞。
(2)发送数据报太慢。如果以低于指定的目标带宽的速度传输包,将不会经历数据包的丢失。然而,将引起资源浪费,在介于数据发送器和接收设备间的连接是基于带宽使用而不是基于所传输的数据量而购买的情况下尤其如此。而且,如果接收数据速率太低,音频和视频流送质量就可能受到影响。也就是说,接受到的声音和视频将是断断续续的、混乱的,或相反失真的。
(3)在带宽使用中的峰值。即使当平均数据传输带宽接近于目标带宽并不总是保证该数据流将免于问题。例如,在传输过程中的任何时刻能够有带宽使用峰值。而且,如果包在传输过程中不是均匀分布的,即,在连续包之间的相当稳定的时间,发生包聚集(clustering),这引起在给定时刻使用的带宽的增加或减小。结果是将引起上面所描述的相同的关于以高于或低于目标带宽的平均带宽传输的问题,不过以更小的程度经历不利的影响。
因此,往往希望能够更好地控制用于包含任何类型内容的包传输的带宽使用。典型地,先前的解决上面所讨论各种问题的尝试要求最大带宽。也就是,该传输协议是这样的,以至于在超过带宽最大值时进行干预,但当带宽使用低于最大值时不进行干预。其他现有的技术方案纠正现有的通信量流。也就是,一种协议用于解决由没有内在流量控制的发送方引起的拥塞问题。还有其他的现有的技术方案在超过缓冲空间时丢弃包。一些这种类型的技术方案使用算法丢弃包,诸如“漏桶”算法(Tanenbaum,计算机网络,第三版,p.380,PrenticeHall)。其他的技术方案允许使用诸如“令牌桶”算法(Tanenbaum,p.381)在输出流中有一定数量的突发。

发明内容
依据该发明,已经发现,如果适当地选择连续包之间的停顿(pause)(等待时间)并在内容传输过程中使用选定的等待时间传输包,能够以更接近于希望目标带宽值保持带宽。提供了一种新颖的方法和系统,该方法和系统响应所希望的目标带宽和包大小的选择输入参数确定并维持在包之间的等待时间。
本发明的方法和系统操作,以通过控制数据流的包之间的停顿或等待时间来为内容传输控制带宽的方式传输数据。作为该方法和系统的一部分,一个新的算法被开发和实现,该算法通过选择和控制包的传输之间的等待或停顿,时间停顿(tw)把要加以传输的内容的包的希望大小(P)与希望目标带宽(BT)联系起来。本发明可以用软件和/或硬件实现。
在本发明的一个优选实施方案中,带宽控制的精度通过使用在发送设备可用的最高分辨率时钟或其他定时设备来最大化。这为等待时间舍入误差提供了最好的补偿。
在本发明的一个优选实施方案中,包之间的等待时间根据固定的包大小和目标带宽计算。
本发明不要求或使用来自接收方设备的反馈。因此,它可被用于具有单工、半双工和全双工媒介的单播、多播和广播传输。
与以上讨论的现有传输问题技术方案相比,本发明使得数据流趋向于目标带宽,在必要时减小或增加传输速率。同时,本发明在源端提供通信量控制,以便于流出的通信量平滑地分布,并趋向于目标带宽。此外,本发明通过引入包间的停顿、阻塞发送方直到将要传输下一个包阻止过多的包和从不丢弃包。而且,本发明以最小突发维持稳定的带宽使用。


参照一下说明和附图,本发明的其他的目的和优点将变得更显而易见,其中
图1是本发明的一个系统实现的示意图。
图2是该过程的流程图。
图3是各种定时函数产生的流程图。
图4是一幅显示了针对最大达10Mbps的示例性传输相对于于指定目标带宽的百分数误差的图。
图5是一幅显示了针对大于100Mbps的示例性传输相对于指定的目标带宽的百分数误差的图。
图6是一幅显示了针对最大达1Gbps的示例性传输相对于指定的目标带宽的百分数误差。
图7是一幅显示了包之间的各种时间关系的图。
图8是一幅显示用于产生在开始发送连续包之间的固定值等待时间的替换函数的流程图,并且图9是图8函数的修改,引入了误差补偿机制。
具体实施例方式
在数据包传输过程中,带宽通常被定义为在给定时间帧内传输的数据量。带宽控制指的是控制带宽的能力,即,用于给定数据量的传输速率。一个评价带宽控制质量的有效值是平均(或平均的)带宽BM,即,在整个传输过程中实际传输速率以此为中心的数学平均值。目标带宽BT被定义为给定内容传输所需要的(选择的)带宽。在一些情况下,BT是通过广播设施卖给或租借给内容提供商的带宽量。
如果BT是已知的,平均带宽BM能被定义为(BT-ε)<BM<(BT+ε)(公式1-1)其中BT=目标带宽BM=平均带宽ε=BM距BT的误差或偏差带宽控制的主要目标是将BM和BT间的误差ε最小化。从另外一个角度考虑,E是实际传输的平均带宽相对于希望的目标带宽BT的百分数误差,以百分比形式表示为E=ϵBT·100%]]>(公式1-2)考虑在小于传输全部内容所需要的时间的固定时间窗口内传输的数据量也是很重要的,也就是,瞬时带宽,并且在整个内容传输过程中将这个值与目标带宽相比较。这是必须的,因为如果瞬时带宽值在很大程度上不同于目标带宽,数据传输率会振荡,也就是说,传输是不均匀的。即使平均带宽BM等于或非常接近于目标带宽BT也会发生这种情况。
这种带宽使用上的不均匀性在接收端、对于路由器和其他路由设备是非常难于管理的,特别是在所允许的目标带宽BT是固定的并且不能被超过的地方,例如,在通过卫星传输传输数据的情况下。
如果在传输的过程中时间t内瞬时带宽(在期限Δt内测量的)和目标带宽BT的差趋向于零,那么能够在理论上获得一个“稳定的”带宽。也就是(BT-ε)<B[t,t+Δt]<(BT+ε)(公式1-3)ε和Δt都趋向于0,并且tstart<t<tend,并且其中tstart传输开始时间tend传输结束时间Δt测量时间帧,其必须小于传输持续时间;B[t,t+Δt]在包含在t和t+Δt之间的间隔内测量的瞬时带宽B。
以上仅仅是理论情况,在真实世界中是不可重现的。然而,这里描述的带宽控制被设计成是使用发送设备所能支持的最大精度尽可能地接近这一理想的解。
另外一个能够被考虑的参数是传输突发,定义为Burstiness=BpeakBM]]>(公式1-4)其中BM是传输内容的平均带宽,Bpeak是在传输过程中测量的最大绝对瞬时带宽值。也就是Bpeak=max(B[t,t+Δt])(公式1-5)理想地,该突发应该趋向于1。也就是,被使用的带宽以BT为中心。同样注意到在相同的突发条件下,传输的不均匀性可能不同,因为没有提供关于Bpeak重现的值的信息。实际上,突发值指示该峰值在多大程度上与平均传输带宽BM相关,但是没有指示在传输过程中该峰值重复了多少次。也就是,一次传输能够经历1或1000次峰值,但是值Bpeak在大部分或所有的情况下是相同的。而且,没有提供关于传输的不均匀性的信息,也就是,关于峰值的频率。
典型地,利用不可靠的网络协议,诸如用户数据报协议(UDP)来传输的应用程序不能为给定的传输指定目标带宽。由于缺乏直接控制,数据以网络接口允许的最大带宽发送。当程序传送向网卡发送内容的指令时,所述内容以该网卡允许的最大速度(带宽)发送。例如,如果网卡能够处理10Mbps的带宽,该内容被分块成包,并且这些包在网络上以10Mbps的速度发送;没有任何应用层控制。
依照本发明,为了控制带宽使用并且获得选定的目标带宽BT,等待或留存(paresidual)时间被强加在传输的连续包之间。本发明的方法和系统通过引入这个停顿获得带宽控制,以获得平均传输带宽BM尽可能地接近目标带宽BT的目的。而且,使得在传输内容过程中测量的所有的“瞬时”带宽值尽可能地接近目标带宽。由于这个原因,在对包之间的时间进行定时的过程需要高精度,并且优选地,该定时应尽可能地精确。该等待时间所需要的精度依赖于目标传输带宽BT。如下所述,目标带宽值BT越高,控制包之间停顿的精度越应该有序,以便维持从目标带宽到可接受的值的偏差E,以供实际使用。
考虑下面把要加以传输内容的数据划分为包的例子,包大小为例如8192字节,并且需要以BT=10Mbps的目标带宽传输固定数量的数据。在每个传输包之间的等待时间、或停顿是6.5536毫秒来计算(8192字节=8192×8=65536比特。10Mbps=10000000(1千万)比特每秒。65536除以10000000=>(包之间的)等待时间=0.0065536秒=6.5536毫秒)。如果用于确定包之间等待时间的测量系统的精度是1毫秒,例如,1毫秒的时钟,那么这个时间值不得不被从计算的6.5536毫秒向上舍入(round up)或向下舍入(round down),以至于该等待时间将是6或7毫秒。舍入到6或7毫秒将从指定的BT=10Mbps产生在平均带宽使用上各自的误差-6.38%或9.23%。这个例子说明在广播过程中对精确计算包之间的等待时间间隔的要求。为了保证平均带宽BM等于目标带宽BT,理论上,等待时间必须不被舍入。实际上,在一些情况下,由于软件和硬件的限制这个值必须被舍入。正如下面所描述的,优选地,使用发送方设备所支持的最高精度,并且因此所获得的带宽控制被针对所使用的软件和硬件配置加以优化。
正如上面所描述的,为了提供高精度控制,需要被考虑的重要方面是用于测量连续被传输的包之间等待时间的时间粒度(精度)。作为一个例子,图4显示了对于以最大达10Mbps的带宽、以8K字节的包大小的给定传输而言,关于指定的(目标)带宽BT的绝对百分数误差E(对数尺度)。上面的曲线显示了等待时间舍入到毫秒的误差,并且下面的曲线显示了等待时间舍入到微秒的误差。可以看出,当舍入到微秒(更高精度)时,误差更小。
作为一个例子,图5显示对于以最大达100Mbps的带宽、以8K字节的包大小的给定传输而言,关于指定的目标带宽BT的绝对百分数误差E(对数尺度)。上面的曲线显示了等待时间舍入到毫秒的误差,并且下面的曲线显示了等待时间舍入到微妙时的误差。可以看出,实际带宽使用的百分数误差从未超过0.1%。通过将等待时间舍入到毫秒,结果是误差是非常大的;实际的带宽使用往往比目标带宽BT是50Mbps时高45-50%,比BT=100Mbps时低35%。
图6显示了当舍入传输包之间的等待时间到微秒,其中包大小=8KB时,对于给定示例性传输(最大达1Gbps)而言,关于指定带宽BT的百分数误差E,。当舍入到毫秒时所获得的百分数误差没有显示在这个图上。通过把等待时间舍入到微秒,在最坏情况下,关于最大达1Gbps目标带宽的该百分数误差保持在0.8%以下。这意味着平均带宽BM和目标带宽BT间的差会低于8Mbps。这对于最大达1Gbps的传输速率来说可以被认为是可以接受的。但是使用1微妙的粒度对于相当显著地低于1Gbps的目标带宽而言,会产生更高的和不可接受的误差。
包大小(P)在传输过程中扮演着重要的角色。一般而言,当舍入到至少1微妙的精度时,包大小越大,目标带宽BT相对于平均带宽BM的百分数误差越小。这是由于如果包大小增大,用于给定传输内容的包数量减少,因此,在给定传输的包之间的等待时间出现次数减少,引起舍入误差和会减小。
在本发明中,通过选择和安置包之间预定的等待时间间隔tw来控制传输中的带宽。优选地,等待时间间隔tw通过使用可买到的发送方设备的最高分辨率定时设备来以在发送方设备上可能的最高精度来计算。正如上面所说明的,为了保证对在Mbps范围内的传输速度的可接受的带宽控制,至少微秒级粒度是优选的。
用来获得带宽控制的算法如下给定目标带宽BT和包P大小,每个包之间的等待时间间隔tw是tw=PBT]]>(公式2-1)在操作中,BT和P都作为输入参数提供给控制传输的计算机。目标带宽BT可以由想要发送传输的人通过用户接口设置。例如,如果某人想要希望向第三者发送内容,可以使用这样一个程序,其中要传输文件所采用的速度由用户输入。也就是,目标带宽BT是作为输入参数给出的。
至于包大小参数P,典型地,包大小是在当安装用于广播传输的程序时设置的,并且对所有的传输保持相同的包大小。例如,包大小可以包含在一个配置文件中。它也可以作为单独的参数被输入。在典型的应用中,选择要发送的内容和目标传输带宽BT。然后,该广播应用从配置设置中读取需要的包大小参数P,该参数先前由广播应用设置或被输入。此时,该广播应用把要传输的文件“分段”成更小的包。典型地,这些包的首部将指定接收方的地址和关于包内容的信息。该广播应用已经知道包大小,因为该信息已经从该配置中或者在把要传输的内容分段成包之前从输入中读入。
在使用时,所选择的供广播应用程序使用的目标带宽BT主很大程度上基于要使用的传输媒介和其他因素,例如租用或购买供使用的带宽数量。
在传输包的过程中,对于每个包传输,一个循环操作被重复,如下(1)获得实际时间值t1(作为包传输的开始);(2)发送该包;(3)(在包传输之后)获得实际时间值t2(4)计算用于发送该包的时间tused,其中,tused=t2-t1(公式2-2)(5)计算值t(剩余时间)t=tw-tused(公式2-3)
(6)等待t;(7)转到步骤1。
参照图7,这显示了各种时间。正如所看到的,tw是两个连续包的开始时间(t1)之间的时间,而t是一个包结束(t2)和下一个包开始之间(t1)的时间。剩余时间值t必须分别地基于选择的包大小P和目标带宽BT。
发送数据包的操作是耗费时间的。也就是,时间tused将被用于在物理上获得包,并且将它发送到网络上。为了保证获得充分的时间以用于等待时间tw,发送方设备需要在发送包操作完成后等待剩余时间t。所计算的、包之间的等待时间tw保证信息将以需要的目标带宽发送。也就是,该剩余时间t是tw(连续包之间的等待)和tused(用于发送包)之间的差。
图1是一个解释数据包传输的图。在发送站,有一安装有广播应用程序的计算机10。该广播应用程序对一个内容12进行操作,该内容将以数据包的形式传输。传输目标带宽BT和包大小P的参数被输入到计算机10。正如上面所解释的,包大小值P可能在该计算机已经知道。如果需要,它可以被设置。该计算机根据公式2-1的算法计算等待时间tw,并操作来控制包18的传输16(黑条),如同在连续包之间具有受控的等待时间tw一样显示。
包18在安装有接收应用程序的计算机20被接收。这个程序将接收到的包重组装成对应于被发送的内容文件12的文件。这是常规的。
图2是总的处理过程流程图。这里,在S1和S2中,目标带宽BT和包大小P被输入到计算机。在S3中,该计算机根据公式2-1的算法计算tw。在S4中,所计算的值tw被用作控制参数,该值被输入到广播应用过程55。值tw应用于在s6作为输入被发送给广播应用过程S5的文件。从S2知道包大小和从S3知道等待时间tw的广播过程S5传输包S7。
图3显示了在执行定时循环步骤以获得上面所提到得剩余时间t的计算机操作。在S101,在包传输的开始时间t1被确定并在S102被存储。在S103,将要发送的包变为可用的并在S104将其发送。在S105,包传输的结束时间t1被确定并在S106存储。在S108,在传输包的过程中的时间量tused被计算(S106值减去S102值),并在S110中变为可用。
在S111,所计算的值tw(参见S4)和tused(从s110)一起被用于S112以计算剩余时间t(参见公式2-3)。在S101和S102将下一个包开始传输之前,在S114,所计算的剩余时间t的值就可得到,并作为在S116要加以满足的时间。对每个发送的包,重复图3的循环。
使用公式2-1的算法,优选的是用于获得公式2-2的当前时间值t1和t2和用于等待公式2-3的剩余时间t的设施至少拥有微秒粒度(精度或分辨率)。使得粒度更加精确减少实际平均带宽BM相对于目标带宽BT的误差E。获得T1和T2值得最直接的方法往往是从操作系统中-诸如从它的定时时钟中获得实际时间。然而,这往往意味着操作系统拥有微秒精度的定时器。在缺乏这种设施时,可以使用高精度硬件计数器。计数器是在编程过程中用于指渐增变量的通用概念。一些系统包括高分辨率的性能计数器,该计数器提供高分辨率的逝去次数。该计数器值由计算机中央处理单元(CPU)管理并由操作系统读取。通常,如果除了时间计算之外的其他任务被执行,该计数器必须在CPU共享的操作系统中由硬件控制。如果知道计数器的增加频率,也就是,在一秒钟内计数次数增加多少次,那么可以通过在两个不同次数处获得计数器值和把这个差除以计数器频率,来计算诸如tused的时间间隔。正如所看到的,希望使用一个高精度计数器。可以使用任何可靠的计数器,然而,应该使用该设备上可用的高精度计数器以最大化控制带宽所采用的精度。
另一个关键问题是如何挂起发送包的程序持续给定剩余时间间隔t。正如上面所显示的,在包被传输之后,该程序在发送另一包之前必须等待剩余时间t=tw-tused逝去。如果该广播设备没有必要的硬件和/或软件设施来以希望的粒度完成对剩余时间进行确定的任务,但是提供至少一种用于以希望的粒度知道当前时间的方法,那么其他的方法可以被使用。
图8中显示了一种方法。这里剩余时间t在步骤201被提供,并且tstart(tstart函数的开始)和tnow(当前时间)的确定值在S203和S205被提供。时间telapsed在S207中计算如下telapsed=tnow-tstart(公式3-1)在一个循环中周期性地在S209中比较telapsed和在发送下一包之前要等待的剩余时间t之间的差值的函数(也就是,软件过程)被实现。当telapsed的值等于或大于希望的剩余时间t,该循环过程结束并使得程序继续,发送新的包。如果时间度量具有高精度和下面描述的合适的值以频繁的间隔被比较,这种方法就提供高精度。
图8中的方法能够用下面的算法描述S201获得希望的剩余时间t(也就是,包的发送必须被挂起多长时间);S203获得开始时间tstart(当该等待过程被调用);继续尽可能经常地执行下面的循环S205获得当前时间tnow;S207计算tnow-tstart=telapsed;当telapsed大于或等于t(S209)时,那么退出循环并使得该程序继续运行。
当该过程退出该循环时,它意味着(tnow-tstart)大于或等于该剩余时间t。否则,该循环继续运行。在一些情况下,能够发生telapsed(tnow-tstart)大于该剩余时间t的情况,也就是,该过程已等待的时间长于该剩余时间t。
图9显示了图8过程的改进,在图9中,图8中过程所使用的相同步骤用相同的附图标记显示。在图9的过程中,在该过程的每个调用中考虑发生在telapsed和剩余时间t之间的小的差额δ。首先,在S200中,δ的值设置为0。步骤211被加到图8的过程中并计算δ。也就是δ=telapsed-t (公式3-2)在S213存储值δ,以用于下一个过程调用并在S210中将其从下一个剩余时间t中减掉(在开始下一个tw周期的下一个调用处作为输入传到该过程)。
图9的过程通过用误差δ修改剩余时间t来动态补偿舍入误差。这样,花费在发送一个包和下一个之间的时间平均趋向于tw,尽管误差由舍入引起。在一个周期内引入的误差在随后的周期中被补偿。用这种纠正,如果包之间的等待时间tw(根据P和Bt计算的),在图8的过程中的整个传输过程中时保持恒定的,被动态地改变,以便补偿前面的误差。在误差补偿的阶段,瞬时带宽使用有可能超过目标带宽Bt。
这个误差纠正过程减少了所使用的瞬时带宽的精度为的是增加所使用的平均带宽BM的精度。所使用的瞬时带宽超过目标带宽BT的时期依赖于上面所描述的舍入误差。使用高分辨率时钟或计数器将限制这种时期。因为这个原因,只有在简短的时间内超过目标带宽是可能的和可接受的,这种纠正才应该被实现。这样完成了带宽控制过程。
考虑突发情况,应该理解如果定时舍入误差没有被补偿,那么使用发送设备提供的定时设施来限制突发的最低可能限度,但是平均带宽可能低于目标带宽BT。如果该定时舍入误差被补偿,那么使用发送设备提供的定时设备,该平均带宽就尽可能的接近目标带宽,但是该突发情况要比在误差纠正没有被使用的情况下更大。
诸如传输控制协议(TCP)之类的可靠协议为确认收到发送额外的包,并且重传丢失的或损坏的数据包。典型地,该发送方设备不能确定所发送的额外包的数量和大小,因此,这样就不能控制所使用的带宽。由于这个原因,当主要与基于不可靠包的协议一起使用是本发明的显著好处。
本发明的带宽控制方法和系统能被应用与任何大小的内容。发送方事先不必知道内容的大小。预先要求知道的仅仅是包的大小(此后,用P表示)和目标带宽。如果用于等待包之间剩余时间的过程或/和设备是足够精确的,该内容大小仅仅影响传输持续时间,并不影响平均带宽。
本发明的方法和系统能够与现有的通信量整形器(shaper)方案一起被使用。考虑一个拥有多个发送方设备、多个接收方设备和发送方和接收方间的通信量整形器的网络。如果一个或多个发送方设备产生突发流量,该通信量整形器将通过丢弃包来干涉以容忍作为结果的拥塞。在一个或多个发送方设备上引入本发明将减少输出流的突发,因此减少拥塞和包丢失的可能性。
为方便起见,本发明的特定的特征被显示在一个或多个附图中,因为每一特征可以根据本发明与其他的特征相结合。可选择的实施方案可以被那些本领域技术人员认识,并将包括在该权利要求的范围内。
权利要求
1.一种用于在传输期间使用将被发送的内容的已知包大小(P)的连续包传输之间的等待时间(tw)来获得目标带宽(BT)的方法,包括步骤选择一个在传输期间试图要获得的目标带宽(BT),使用如下算法计算所述传输的连续包之间的等待时间(tw),tw=PBT;]]>并且使用所述等待时间控制包的传输。
2.如权利要求1所述的方法,其中所计算的、使用的等待时间tw被舍入到一个时间单位。
3.如权利要求2所述的方法,其中该舍入到时间单位由计数器完成。
4.如权利要求1所述的方法,还包括步骤确定一个包传输的开始时间t1;确定该包传输的结束时间t2,并且确定在传输该包的过程中所使用的时间tused为t2-t1;
5.如权利要求4所述的方法,还包括步骤确定在传输包的过程中所使用的时间(tused);确定剩余时间t为tused-tw;在一个包传输的结束到下一个包传输的开始之间的等待时间t。
6.如权利要求5所述的方法,还包括为每个被传输的包重复步骤(a),(b)和(c)的步骤。
7.如权利要求5所述的方法,其中该剩余时间t通过如下方式来加以控制确定发送包的开始时间tstart的值、当前时间tnow;执行循环操作(a)计算一个时间telapsed=tnow-tstart;(b)将telapsed和剩余时间t相比较,并且当值telapsed≥t时,传输下一个包。
8.如权利要求7所述的方法,还包括如下步骤计算误差值δ=telapsed-t和从一个后来提供的值t减去值δ。
9.如权利要求5所述的一个方法,其中所计算的、使用的等待时间被舍入到一个时间单位。
10.如权利要求9所述的一个方法,其中舍入到该时间单位由一个计数器完成。
11.如权利要求1所述的方法,包括额外的选择要被传输的包的已知包大小(P)的步骤。
12.如权利要求1所述的方法,其中该已知包大小(P)由应用提供。
13.一种用于在传输期间使用将被发送的内容的连续包传输之间的等待时间(tw)来获得目标带宽(BT)的设备,包括计算机,包括用于控制在数据包中内容传输的程序;用于输入和接收参数的装置,该参数包括要被传输的包大小(P)和希望的目标带宽(BT)。用于使用如下算法计算该传输的连续包之间的等待时间(tw)的处理装置tw=PBT;]]>和用于以包之间的等待时间tw连续地传输包的控制装置。
14.如权利要求13所述的设备,其中所说的计算机还包括用于确定包传输的开始时间t1的装置;用于确定所述包传输的结束时间t2的装置,和用于确定在传输该包的过程中所使用的时间tused为t2-t1的装置。
15.如权利要求14所述的设备,其中所述的计算机还包括用于确定在传输包的过程中所使用的时间(tused)的第一装置;用于确定剩余时间为tused-tw的第二装置;并且其中所述的控制装置操作以等待在一个包传输的开始到下一个包传输的开始之间的剩余时间t。
16.如权利要求15所述的设备,其中所述的第一和第二确定装置操作以便为每个被传输的包确定剩余时间t,和所述的控制装置操作以等待在一个包传输的开始到下一个包传输的开始之间的剩余时间t。
17.如权利要求16所述的设备,还包括用于通过如下方式控制剩余时间t的装置确定开始时间tstart的值和当前时间tnow;执行循环操作(a)计算时间telapsed=tnow-tstart,和(b)将telapsed和剩余时间t相比较,并且当值telapsed≥t时,传输下一个包。
18.如权利要求17所述的设备,进一步包括用于计算误差值δ=telapsed-t和从后来提供的值t中减去值δ的装置。
19.如权利要求13所述的设备,其中所述的控制装置还包括周期性地操作来测量等待时间tw的计数器。
20.如权利要求13所述的设备,其中所述的计算机操作所述的控制装置来根据其它测量的时间计算等待时间tw。
全文摘要
一种用于确定用在内容的包的连续传输之间的等待时间(t
文档编号H04L12/56GK1647463SQ03807617
公开日2005年7月27日 申请日期2003年1月31日 优先权日2002年1月31日
发明者J·马尔凯托, 科纳塔 E·拉 申请人:奇幻公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1