在时变网络环境中用于最佳文件传输的方法和装置的制作方法

文档序号:7947829阅读:137来源:国知局
专利名称:在时变网络环境中用于最佳文件传输的方法和装置的制作方法
技术领域
本发明主要涉及网络环境中的内容传送,尤其涉及在时变网络环境中用于最佳文件传输的方法和装置。
背景技术
在无线网络中向大量终端(用户)分发内容(数据)是一个复杂的问题。例如,无线网络覆盖很大的地理区域,而对于每个区域来说,网络覆盖率和/或可用服务的类型可能是不同的。因此,向在区域之间来回移动的移动终端传送内容需要一种高效的传送系统来节约网络资源,同时向终端用户提供他们所期望的内容。
多用户分集是无线数据网络中的重要因素。通常,这种分集用来提高频谱效率。但是,从应用层的角度来看,这种分集的结果可能是分配给该网络中用户的数据速率的内在易变性。传输控制协议(TCP)中通常使用的拥塞控制机制是专为无线网络而设计的。但是,无线信道的损耗和易变性会导致TCP协议频繁地重发内容,从而浪费带宽。
一般情况下,现有的系统试图采用以下方式解决该问题对TCP协议稍加修改,以便应付损耗和易变性。但是,基于Windows的现行流量控制机制在这种时变环境中存在缺陷,而无法明显改善性能。
因此,需要一种在时变网络环境中提供高效文件传输的系统。该系统应当能提供基于速率的自适应协议,以控制内容的重发,从而节约网络资源和带宽。

发明内容
在一个或多个实施例中,提供了一种包括有方法和装置的文件传输系统,其能够在时变网络环境中高效地传送内容。在一个实施例中,该系统包括位于发送方服务器的逻辑,其基于从先前传输导出的速率估计,控制内容发送速率。该系统尤其适用于传输信道可能随时间变化进而导致传送延时和分组丢失的无线网络。
在一个实施例中,提供了一种用于在数据网络中传输内容的方法。所述方法包括以选定的传输速率发送内容;接收一个或多个确认信号。所述方法还包括根据所述一个或多个确认信号,估计网络传送速率;基于所述网络传送速率,调整所述内容的所述选定传输速率。
在一个实施例中,提供了用于在数据网络中传输内容的装置。所述装置包括收发逻辑,以选定的传输速率发送内容和接收一个或多个确认信号;估计逻辑,根据所述一个或多个确认信号,估计网络传送速率。所述装置还包括速率控制逻辑,基于所述网络传送速率,调整所述内容的所述选定传输速率。
在一个实施例中,提供了用于在数据网络中传输内容的装置。所述装置包括发送模块,以选定的传输速率发送内容;接收模块,接收一个或多个确认信号。所述装置还包括估计模块,根据所述一个或多个确认信号,估计网络传送速率;调整模块,基于所述网络传送速率,调整所述内容的所述选定传输速率。
在一个实施例中,提供了一种包括有指令的计算机可读介质,当由处理器执行时,所述指令用于在无线数据网络中传输内容。所述计算机可读介质包括发送指令,以选定的传输速率发送内容;接收指令,接收一个或多个确认信号。所述计算机可读介质还包括估计指令,根据所述一个或多个确认信号,估计网络传送速率;调整指令,基于所述网络传送速率,调整所述内容的所述选定传输速率。
通过阅读下面给出的


具体实施方式
和权利要求书,本发明的其它方面、优点和特色将变得显而易见。

通过参阅下面结合附图给出的详细说明,本申请中描述的实施例的前述方面及其伴随的优点将变得更加显而易见,其中图1示出的数据网络包括文件传输系统的一个实施例;图2的详细示意图给出了在文件传输系统的一个实施例中所适用的服务器的一个实施例;图3示出了在文件传输系统的一个实施例中运行服务器的方法的一个实施例;图4的详细示意图给出了在文件传输系统的一个实施例中所适用的移动终端的一个实施例;图5示出了在文件传输系统的一个实施例中运行移动终端的方法的一个实施例;图6示出了在文件传输系统的一个实施例中服务器向终端发送内容分组所用的数据结构的一个实施例;以及图7示出了在文件传输系统的一个实施例中终端向服务器发送确认信号所用的数据结构的一个实施例。
具体实施例方式
下面将详细描述一种文件传输系统的一个或多个实施例,其能够使服务器在数据网络中高效地传送内容。该系统尤其适用于无线网络环境,但也可以用于任何类型的网络环境,包括、但不限于通信网络、公共网络(如互联网)、专用网络(如虚拟专用网VPN)、局域网、广域网、长途网络或者其它任何类型的数据网络。
图1示出的数据网络100包括文件传输系统的一个实施例。网络100包括内容服务器102、数据网络104和移动终端106。数据网络104可以是有线和/或无线网络的任何类型和/或其组合,只要能在内容服务器102和移动终端106之间传输数据即可。服务器102经由通信链路108与网络104通信。通信链路108可以是任何类型的有线或无线通信链路,只要能使服务器102与网络数据104通信即可。
服务器102包括内容112、速率控制逻辑114和速率估计逻辑116。内容112包括任何类型的程序、数据、多媒体文件、脚本或者要通过网络104传输或传送到终端106的其它任何类型的内容文件。
在一个实施例中,数据网络104包括高速数据网络,其能够通过无线通信链路110向移动终端高效地发送内容。在一个实施例中,无线通信链路110包括前向通信信道、反向通信信道、控制信道和/或可用于在网络104和终端106之间传送信息的其它任何类型的通信信道。
终端108包括任何类型的移动设备或终端,如移动电话、便携式计算机、个人数字助理(PDA),或能够通过无线通信链路110接收内容的任何其它类型的便携式设备。
在运行过程中,该文件传输服务器能使服务器102通过网络104向终端106高效地发送内容112。在一个实施例中,内容112包括一系列的数据分组,其中的每个分组具有相应的唯一分组标识符(ID)。分配给这些内容分组的分组标识符具有预定的顺序。服务器102以一个分组接一个分组的方式,将内容112发送到终端106,如路径118所示。服务器102以数据网络104支持的初始传输速率发送内容112。例如,在一个实施例中,初始传输速率大约是600比特/秒。
一旦终端106开始接收内容分组,终端106就通过向服务器102回送确认信号来做出响应,如路径120所示。在一个实施例中,确认信号包括肯定性确认(Ack)信号和否定性确认(Nack)信号。肯定性确认表示终端106正确接收到分组,而否定性确认表示未正确接收到分组。例如,如果终端106收到一个或多个分组,则它向服务器102回送一个或多个Ack,以对收到这些分组进行确认。但是,在一个实施例中,终端106使用收到的分组ID来确定没有收到一个或多个分组。例如,这些分组包含有序的ID,故终端106使用收到的分组ID确定没有收到一个或多个分组。因此,终端106向服务器102发送一个或多个Nack,以表明哪些分组未被接收到。一旦收到一个或多个Nack信号,终端106就重发未收到的分组。在一个实施例中,Ack和Nack可以是任何格式或类型,只要适于向服务器102传输以表明已经收到或者没有收到一个或多个分组以及标识这些分组即可。
当服务器102收到Ack和Nack时,速率估计逻辑116确定网络传送分组的速率。例如,在给定时间段内收到的Ack的数量是一个因数,速率估计逻辑116可以用它来确定网络成功传送分组的速率。网络传送分组的速率可能会受到某些网络状况或特征的影响,如有损连接、网络拥塞、信号衰减、干扰和/或可影响网络性能的任何类型的网络状况或特征。
一旦速率估计逻辑116确定了由于当前网络状况或特征所造成的网络性能估计,速率控制逻辑114就使用该速率估计来控制未来分组传输的速率。例如,如果速率估计表明网络正在丢失很多分组(即,由于信号衰落造成的),则速率控制逻辑降低这些分组的传输速率。对于相反的情形,道理亦如此,所以,如果速率估计表明网络正在成功传送分组,则速率控制逻辑提高这些分组的传输速率。因此,在给定当前网络状况和传输环境的情况下,该系统通过数据网络能够高效地进行文件传输。
因此,在一个或多个实施例中,该文件传输系统通过无线网络向终端发送内容,估计网络的传送性能,然后根据估计结果调整内容传输速率,从而提供最高效的内容传输。
图2的详细示意图给出了在文件传输系统的一个实施例中所适用的服务器200的一个实施例。例如,服务器200可用作图1的内容服务器102。服务器200包括处理逻辑202、设备资源和接口204、内容206、收发逻辑208,它们均连接至内部数据总线214。服务器200还包括速率估计逻辑210和速率控制逻辑212,它们也连接至数据总线214。
在一个或多个实施例中,处理逻辑202包括CPU、处理器、门阵列、硬件逻辑、存储元件、虚拟机、软件和/或软硬件的任何组合。因此,处理逻辑202包括的逻辑通常用于执行机器可读指令和/或通过内部数据总线212控制服务器200的一个或多个功能部件。
设备资源和接口204包括的硬件和/或软件使得服务器200能够与内部和外部系统进行通信。例如,内部系统可以包括海量存储系统、存储器、显示器驱动器、调制解调器或其它内置设备资源。外部系统可以包括用户接口设备、打印机、磁盘驱动器或者其它本地设备或系统。
内容206包括任何类型的程序、数据、文件、脚本、多媒体文件或可下载到移动终端上的其它类型的内容。在一个实施例中,内容206包括多个分组(1-n),其中的每个分组有一个相应的唯一分组标识符(ID)。例如,在一个实施例中,为这些分组分配的唯一分组标识符包括预定的数字序列。在一个或多个实施例中,分组标识符可包括任何类型和/或格式的标识符,只要能唯一地标识内容206的分组即可。
收发逻辑208包括的硬件和/或软件能使服务器200通过通信信道218同远程设备、系统或网络之间进行数据和/或其它信息的收发。例如,在一个实施例中,通信信道218包括任何类型的有线或无线通信信道,其可用于同数据网络(如网络104)进行通信。
速率估计逻辑210包括CPU、处理器、门阵列、硬件逻辑、存储元件、虚拟机、软件和/或软硬件的任何组合。速率估计逻辑210用于估计网络向远程设备传送内容是如何的成功。例如,当服务器200向远程设备发送内容分组206时,该设备根据需要,用Ack和/或Nack做出响应,以表明分组接收成功与否。速率估计逻辑210处理收到的Ack和Nack,从而确定一个速率估计值,该速率估计值指示通过网络连接向远程设备提供的传送速率。例如,在给定传输持续时间内收到的Ack的数量可以用来估计通过网络连接向远程设备提供的传送速率。本文档的另一章节将对速率估计逻辑210的操作做出更详细的说明。
速率控制逻辑212包括CPU、处理器、门阵列、硬件逻辑、存储元件、虚拟机、软件和/或软硬件的任何组合。速率控制逻辑212处理速率估计信息,以对从服务器200向远程设备发送分组的速率进行调整。
在服务器200工作期间,收发逻辑208向远程设备发送内容206和响应于分组传输而接收从远程设备发送的Ack和Nack。速率估计逻辑210处理收到的Ack和Nack,以确定速率估计,该速率估计指示网络信道向远程设备传送分组的情况。速率控制逻辑212根据速率估计逻辑210确定的速率估计,调整分组的传输速率。因此,根据通往远程设备的数据网络及其相关通信信道的执行情况,可以维持、提高或降低分组的传输速率。所以,根据当前网络状况,调整内容的传输速率,从而非常高效地向远程设备传递内容。
在一个实施例中,处理逻辑202处理收到的Ack/Nack,以便将未被远程终端接收到的选定内容分组206重发出去。在另一个实施例中,处理逻辑202包括计时逻辑,后者用于测量发送某一分组之后的响应间隔。如果在该响应间隔内未从远程终端接收到任何响应,则处理逻辑202重发该分组。
在一个实施例中,该文件传输系统包括计算机可读介质上存储的程序指令,当被处理逻辑202执行时,这些指令提供本申请所述的服务器200的功能。例如,可以将指令从计算机可读介质(如软盘、CDROM、存储卡、闪存器件、RAM、ROM或者通过设备资源204与服务器200交互的任何其它类型的存储器件或计算机可读介质)装载到服务器200中。在另一实施例中,可以将这些指令从与服务器200交互的网络资源通过收发逻辑208下载到服务器200中。当由处理逻辑202执行时,这些指令提供本申请所述的文件传输系统的一个或多个实施例。
速率估计下文更详细地描述速率估计逻辑210的一个实施例的操作。应当理解的是,在这些实施例的范围内,也可以使用其它速率估计技术。
假设N(n)表示在估计时刻n时未经确认的分组的数量,R(n)是时刻n时的估计速率。那么,对于N(n),定义下列表达式N(n)=N(n-1)+(R(n-1)-R’)*T/S其中,R’是网络传送速率,T是估计持续时间,S是分组的大小。
在时刻n时未经确认的分组的数量将等于在时刻n-1时未经确认的分组的数量加上其间发送的分组的数量减去经过接收终端确认的分组的数量。因此,使用上式得到R(n)=R(n-1)+[N(n)-N(n-1)]*S/T速率估计逻辑210用它来估计网络提供的传送速率。如果服务器的速率估计结果比网络速率小,则未经确认的分组的数量将是小的。在这种情况下,速率估计等式变成R(n)=2*R(n-1)在一个实施例中,估计持续时间T可优选为实现估计逻辑的预期性能等级。例如,如果T选的太大,则服务器可能无法足够准确地跟踪网络速率变化。如果T选的太小,则R(n)会变成负的。为了避免上述状况,在一个实施例中,选择足以在网络上提供高效性能的T。
图3示出了在文件传输系统的一个实施例中运行服务器的方法300的一个实施例。为简洁起见,将参照图2所示的服务器200来描述方法300。在一个或多个实施例中,处理逻辑202执行程序指令,以实现下面描述的功能。
在模块302中,服务器从远程设备或终端接收内容请求。例如,在一个实施例中,服务器连接到与一个或多个终端相通的数据网络。网络上的至少一个终端向服务器发送内容请求。例如,在一个实施例中,收发逻辑208接收该请求,然后将其转发给处理逻辑202,以便做进一步的处理。
在模块304中,服务器开始向请求方设备发送内容。例如,该内容包括的内容分组含有唯一标识符,于是,服务器通过收发逻辑208向请求方设备发送一个或多个内容分组。收发逻辑208以初始传输速率发送分组,其中所述的初始传输速率为速率控制逻辑212所知。
在模块306中,启动计时器,以测量响应时间段。例如,在一个实施例中,计时器是处理逻辑202的一部分。在响应时间段所定义的时间间隔内,服务器应当从终端接收到表示分组已被接收的Ack响应。该时间间隔可设为任何合适的值。
在模块308中,服务器从远程设备接收一个或多个Ack和/或Nack。例如,当远程设备开始接收内容分组的时候,远程设备根据需要发送Ack和Nack。例如,远程设备使用收到的内容分组的唯一标识符,判断内容分组是否被成功接收。在一个实施例中,服务器中的收发逻辑208接收到Ack和Nack。或者,计时器(在模块306中启动)指示在收到任何Ack或Nack之前已经出现了“超时”。
在模块310中,服务器向设备重发内容分组,这取决于收到的Nack或者由于超时所致。例如,服务器从远程设备收到一个或多个Nack,后者表示该设备没有收到一个或多个内容分组。基于收到的Nack,服务器必要时通过收发逻辑208重发选中的分组。或者,服务器由于超时状况而重发一个或多个分组。本文档的其它部分会更详细地描述重发过程。
在模块312中,估计数据网络的当前传送速率。在一个实施例中,估计逻辑210处理收到的Ack和/或Nack,以确定当前传送速率的估计结果。例如,网络传送速率表示网络向终端传送分组的速率。在一个实施例中,如上执行传输速率的估计。
在模块314中,执行测试,以判断是否需要根据所确定的网络传送速率来调整服务器的内容分组传输速率。例如,速率控制逻辑212使用估计逻辑210确定的当前网络传送速率估计结果,判断是否应当调整内容分组的传输速率。例如,速率控制逻辑212将网络传送速率的估计结果同当前分组传输速率进行比较。如果要维持当前的传输速率,则方法进行到模块316。如果要调整当前传输速率,则方法进行到模块318。
在模块316中,维持内容分组的传输速率。例如,速率控制逻辑212基于数据网络的当前传送速率,已经确定当前的传输速率提供了选定的性能等级,所以,不需要对传输速率做出任何调整。例如,控制逻辑212基于确定的网络传送速率,确定当前传输速率正在提供最好的传输性能。
在模块318中,基于所确定的网络传送速率,调整内容分组的传输速率。例如,速率控制逻辑212确定基于所确定的网络传送速率,可以调整内容分组的传输速率,以改善性能。在一个实施例中,速率控制逻辑212根据需要控制收发逻辑208增加或降低内容分组的传输速率,从而调整传输速率。例如,在一个实施例中,如果所确定的传送速率低于当前的传输速率,则控制逻辑212降低传输速率。或者,如果所确定的传送速率非常高和/或基本等于传输速率,则控制逻辑212提高传输速率,以判断网络能够支持更高的传输速率。因此,控制逻辑212寻求尽可能高的传输速率来实现预期网络传送速率。
在模块320中,执行测试,以判断内容传输是否结束。例如,处理逻辑202判断所有内容分组是否已经成功传输到远程设备。如果传输结束,则方法结束于模块322。如果传输未结束,则方法进行到模块304,处理逻辑202控制收发逻辑208,使用反映模块318中做出的任何调整的传输速率,向远程设备发送内容分组。
应当注意的是,方法300仅仅示出了一个实施例,在不偏离所述实施例保护范围的情况下,可以改变、添加或重新排列所述功能部件。例如,模块312中确定的当前网络传送速率的估计可以按照选定的随机或周期性间隔或者响应于选定的触发事件来进行。
分组重发下文描述在文件传输系统的一个实施例中服务器如何向远程设备重发内容分组。正如参照图3的方法300所述的那样,内容分组的重发可能是由于一个或多个下列状况而发生的。
1、收到标识相同内容分组的一个或多个Nack。
2、如果在发送分组后没有收到任何响应,则超时发生。
关于根据收到的Nack而进行分组重发,在一个实施例中,服务器在重发内容分组之前等着接收标识相同内容分组的一个或多个Nack。例如,服务器根据仅从远程终端接收到一个Nack,就可以重发分组。在另一实施例中,服务器在重发内容分组之前等着接收多个Nack。例如,当收到分组时,接收方终端向服务器发送Ack/Nack响应。如果没有接收到分组,则接收方终端在每个后续Ack/Nack传输中将重复该分组的Nack响应。因此,对于丢失的分组,服务器将继续接收Nack响应。在服务器对于某一分组收到选定数量的Nack响应(即,三个Nack响应),则服务器重发内容分组。因此,服务器在重发分组之前,能够提供一个让丢失的分组到达接收机的机会。
关于根据超时状况而进行分组重发,如果在选定的时间间隔内未收到Ack/Nack信号,则服务器重发内容分组。例如,处理逻辑202包括一个计时逻辑,其测量发送内容分组之后的选定时间间隔。如果在该选定时间间隔结束前未收到该分组的Ack/Nack,则处理逻辑202使用收发逻辑208重发分组。因此,在没有来自远程设备的输入的情况下,系统就能重发内容分组。
图4的详细示意图给出了在文件传输系统的一个实施例中所适用的终端400的一个实施例。终端400包括处理逻辑402、存储器404、设备资源和接口406、收发逻辑408,它们均连接到数据总线410。
在一个或多个实施例中,处理逻辑402包括CPU、处理器、门阵列、硬件逻辑、存储元件、虚拟机、软件和/或软硬件的任何组合。因此,处理逻辑402包括的逻辑通常用于执行机器可读指令和/或通过内部数据总线410控制终端400的一个或多个其它功能部件。
设备资源和接口406包括的硬件和/或软件使得终端400能够与内部和外部系统进行通信。例如,内部系统可以包括海量存储系统、存储器、显示器驱动器、调制解调器或其它内置设备资源。外部系统可以包括用户接口设备、打印机、磁盘驱动器或者其它本地设备或系统。
收发逻辑408包括的硬件和/或软件能使终端400通过通信信道414同外部设备或系统之间进行数据和/或其它信息的收发。例如,在一个实施例中,通信信道414包括前向信道、反向信道和控制信道,其能够使终端400通过通信信道414与数据网络进行通信。
存储器404包括终端400中适于存储信息的任何类型的存储器。例如,终端400可以下载内容,然后将其存储在存储器404中,以做进一步的处理。
在终端400工作期间,根据文件传输系统的一个或多个实施例,可以从服务器下载内容。内容可以内容分组的形式进行下载,其中每个分组有唯一的分组标识符,而所有分组标识符具有预定的顺序。因此,收到具有选定分组标识符的一个或多个内容分组可用来判断是否已经收到具有其它选定标识符的其它内容分组。
在一个实施例中,处理逻辑402使收发逻辑408向内容服务器发送Ack和Nack,以对收到的内容分组做出响应。例如,处理逻辑402使得针对收到的每个内容分组发送Ack信号。Ack信号包括可从终端400发送到发射方服务器的任何合适类型的确认信号。处理逻辑402还使得针对未收到的内容分组向发射方服务器发送Nack信号。在一个实施例中,处理逻辑402处理收到的内容分组的唯一分组标识符,以判断未收到哪些内容分组。例如,分组标识符具有预定的顺序,所以,如果已经收到选定的分组标识符,则该序列中更早的分组标识符应当已经收到。所以,处理逻辑402生成一个Nack信号,并将其发送到服务器,以标识未收到的任何分组。
在文件传输系统的一个或多个实施例中,终端400通过执行一个或多个下列功能来下载内容。
1、终端请求来自数据网络上内容服务器的内容。
2、内容服务器向终端发送内容分组从而开始向终端发送内容,其中的每个内容分组具有唯一的标识符。
3、终端通过处理收到的分组标识符,判断收到了哪些内容分组和未收到哪些分组。
4、终端向服务器发送Ack和/或Nack,从而对收到的和未收到的内容分组做出响应。
5、终端继续接收新的内容分组和重发的内容分组,直到收到整个内容文件为止。在该过程中,终端根据需要继续发送Ack和/或Nack。
在一个实施例中,该文件传输系统包括计算机可读介质上存储的程序指令,当被处理逻辑402执行时,这些指令提供本申请所述的终端400的功能。例如,可以将指令从计算机可读介质(如软盘、CDROM、存储卡、闪存器件、RAM、ROM或者通过设备资源406与终端400交互的任何其它类型的存储器件或计算机可读介质)装载到终端400中。在另一实施例中,可以将这些指令从与终端400交互的网络资源通过收发逻辑408下载到终端400中。当由处理逻辑402执行时,这些指令提供本申请所述的文件传输系统的一个或多个实施例。
图5示出了在文件传输系统的一个实施例中运行终端的方法500的一个实施例。为简洁起见,将参照图4所示的终端400来描述方法500。在一个或多个实施例中,处理逻辑402执行程序指令,以实现下面描述的功能。
在模块502中,终端请求来自数据网络上内容服务器的内容。例如,处理逻辑402通过收发逻辑408向服务器发送内容请求。
在模块504中,终端开始从服务器以内容分组的形式接收所请求的内容。例如,这些内容分组由服务器通过数据网络发送,然后,由收发逻辑408接收。处理逻辑402将收到的内容分组存储到存储器404中。
在模块506中,响应于收到的内容分组,生成Ack信号。例如,在一个实施例中,处理逻辑402生成Ack信号,然后,经由收发逻辑408将该Ack信号发送到服务器。
在模块508中,执行测试,以判断终端是否收到所有内容分组。例如,在一个实施例中,处理逻辑402处理收到的一个或多个内容分组的唯一分组标识符,以判断是否未接收到某些内容分组。例如,从服务器以预定的顺序发送唯一分组标识符,从而使处理逻辑402根据收到分组的标识符可确定哪些分组(如果有的话)未被接收到。如果有些分组未被接收到,则方法进行到模块512。如果没有分组丢失,则方法进行到模块510。
在模块510中,执行测试,以判断终端是否收到该内容的所有内容分组。例如,处理逻辑402判断是否已经收到所有内容分组。如果还有其它内容分组需要接收,则方法进行到模块504,接收其它分组。如果终端已经收到所有内容分组,则方法结束于模块514。
在模块512中,生成Nack信号,并将其发送给服务器,以表明未收到一个或多个内容分组。例如,在一个实施例中,处理逻辑402生成Nack信号,并经由收发逻辑408将其发送到服务器。然后,方法进行到模块504,接收其它内容分组。例如,服务器可以重发丢失的内容分组,以对Nack信号做出响应。
应当注意的是,方法500仅仅示出了一个实施例,在不偏离所述实施例保护范围的情况下,可以改变、添加、组合或者重新排列所述功能部件。例如,在模块506和512中,终端可以存储多个Ack和/或Nack,然后在单次传输中将它们发送到服务器,从而节约网络带宽。
图6示出了在文件传输系统的一个实施例中服务器向终端发送内容分组所用的数据结构600的一个实施例。结构600包括首部信息602、分组标识符604、标志606和内容分组数据608。分组标识符604是唯一的标识符,它是预定的标识符系列的一部分。因此,分组数据608在传输过程中与标识符604相关联,从而接收方终端可以对分组数据的接收情况给予确认,或者表明未接收到分组。
图7示出了在文件传输系统的一个实施例中终端向内容服务器发送Ack和/或Nack所用的数据结构700的一个实施例。数据结构700包括首部信息702、Ack/Nack指示符704和相应的分组标识符706。在一个实施例中,终端组装一个或多个Ack/Nack指示符704,以表示收到或者未收到对应的分组标识符706。因此,使用结构700,终端能够向服务器发送一个或多个Ack/Nack,以对内容分组的传输做出响应。
相应地,虽然上面描述和说明了文件传输系统的一个或多个实施例,但应当理解的是,可以对这些实施例做出各种修改,而不偏离其精神和实质性特点。因此,本申请公开的内容仅仅是说明性的,而非限制本发明的保护范围。本发明的保护范围由后面的权利要求界定。
利用通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其它可编程的逻辑器件、分立门或者晶体管逻辑、分立硬件组件或者它们之中的任意组合,可以实现或执行结合本文公开的实施例描述的各种示例性的逻辑框图、模块和电路。通用处理器可能是微处理器,但是在另一种情况中,该处理器可能是任何常规的处理器、控制器、微控制器或者状态机。处理器也可能被实现为计算设备的组合,例如,DSP和微处理器的组合、多个微处理器、一个或者更多结合DSP核心的微处理器或者任何其它此种结构。
结合本文公开的实施例所描述的方法或者算法的步骤可直接体现为硬件、由处理器执行的软件模块或者这二者的组合。软件模块可能存在于RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、移动磁盘、CD-ROM或者本领域熟知的任何其它形式的存储介质中。一种典型存储介质与处理器耦合,从而使得处理器能够从该存储介质中读信息,且可向该存储介质写信息。在替换实例中,存储介质是处理器的组成部分。处理器和存储介质可能存在于一个ASIC中。该ASIC可能存在于一个用户终端中。在一个替换实例中,处理器和存储介质可以作为用户终端中的分立组件存在。
提供所述公开的实施例的上述描述可使得本领域的技术人员能够实现或者使用本发明。对于本领域技术人员来说,这些实施例的各种修改是显而易见的,并且本文定义的总体原理也可以在不脱离本发明的范围和主旨的基础上应用于其它实施例。因此,本发明并不限于本文示出的实施例,而是与符合本文公开的原理和新颖特征的最广范围相一致。本申请中专用的“示例性”一词意味着“用作例子、例证或说明”。本申请中描述为“示例性的”任何实施例不应解释为较其它实施例优选或有优势。
权利要求
1.一种用于在数据网络中传输内容的方法,所述方法包括以选定的传输速率发送内容;接收一个或多个确认信号;根据所述一个或多个确认信号,估计网络传送速率;以及基于所述网络传送速率,调整所述内容的所述选定传输速率。
2.根据权利要求1所述的方法,其中,所述内容包括一个或多个内容分组,并且,所述发送动作包括给所述一个或多个内容分组分配唯一的分组标识符;以及以所述选定的传输速率发送所述内容分组。
3.根据权利要求2所述的方法,其中,所述接收动作包括对于已经收到的内容分组,接收其相应的Ack信号;以及对于未收到的内容分组,接收其相应的Nack信号。
4.根据权利要求3所述的方法,其中,所述估计动作包括根据所述接收到的Ack信号,估计所述网络传送速率。
5.根据权利要求3所述的方法,还包括如果对于选中的内容分组收到其相应的一个或多个Nack信号,则重发所述选中的内容分组。
6.根据权利要求1所述的方法,其中,所述调整动作包括如果所述选定的传输速率高于所述网络传送速率,则降低所述选定的传输速率
7.根据权利要求1所述的方法,其中,所述调整动作包括如果所述网络传送速率与所述选定的传输速率基本相同,则增加所述选定的传输速率。
8.根据权利要求1所述的方法,还包括在选定的内容已经发送出去之后测量选定的时间间隔;以及如果在所述选定的时间间隔内没有收到确认信号,则重发所述选定的内容。
9.用于在数据网络中传输内容的装置,所述装置包括收发逻辑,以选定的传输速率发送内容和接收一个或多个确认信号;估计逻辑,根据所述一个或多个确认信号,估计网络传送速率;以及速率控制逻辑,基于所述网络传送速率,调整所述内容的所述选定传输速率。
10.根据权利要求9所述的装置,其中,所述内容包括一个或多个内容分组,并且,所述收发逻辑包括标识符分配逻辑,给所述一个或多个内容分组分配唯一的分组标识符;以及发送逻辑,以所述选定的传输速率发送所述内容分组。
11.根据权利要求10所述的装置,其中,所述收发逻辑包括Ack信号接收逻辑,对于已经收到的内容分组,接收其相应的Ack信号;以及Nack信号接收逻辑,对于未收到的内容分组,接收其相应的Nack信号。
12.根据权利要求11所述的装置,其中,所述估计逻辑包括根据所述接收到的Ack信号估计所述网络传送速率的逻辑。
13.根据权利要求11所述的装置,还包括如果对于选中的内容分组收到其相应的一个或多个Nack信号则重发所述选中的内容分组的逻辑。
14.根据权利要求9所述的装置,其中,如果所述选定的传输速率高于所述网络传送速率,则所述速率控制逻辑降低所述选定的传输速率。
15.根据权利要求9所述的装置,其中,如果所述网络传送速率与所述选定的传输速率基本相同,则所述速率控制逻辑增加所述选定的传输速率。
16.根据权利要求9所述的装置,还包括处理逻辑,其用于在选定的内容已经发送出去之后测量选定的时间间隔;以及如果在所述选定的时间间隔内没有收到确认信号,则重发所述选定的内容。
17.用于在数据网络中传输内容的装置,所述装置包括发送模块,以选定的传输速率发送内容;接收模块,接收一个或多个确认信号;估计模块,根据所述一个或多个确认信号,估计网络传送速率;以及调整模块,基于所述网络传送速率,调整所述内容的所述选定传输速率。
18.根据权利要求17所述的装置,其中,所述内容包括一个或多个内容分组,并且,所述发送模块包括给所述一个或多个内容分组分配唯一分组标识符的模块;以及以所述选定的传输速率发送所述内容分组的模块。
19.根据权利要求17所述的装置,其中,所述接收模块包括Ack信号接收模块,对于已经收到的内容分组,接收其相应的Ack信号;以及Nack信号接收模块,对于未收到的内容分组,接收其相应的Nack信号。
20.根据权利要求19所述的装置,其中,所述估计模块包括根据所述接收到的Ack信号估计所述网络传送速率的模块。
21.根据权利要求19所述的装置,还包括如果对于选中的内容分组收到其相应的一个或多个Nack信号则重发所述选中的内容分组的模块。
22.根据权利要求17所述的装置,其中,所述调整模块包括如果所述选定的传输速率高于所述网络传送速率,则降低所述选定的传输速率的模块。
23.根据权利要求17所述的装置,其中,所述调整模块包括如果所述网络传送速率与所述选定的传输速率基本相同,则增加所述选定的传输速率的模块。
24.根据权利要求17所述的装置,还包括在选定的内容已经发送出去之后测量选定的时间间隔的模块;以及如果在所述选定的时间间隔内没有收到确认信号则重发所述选定的内容的模块。
25.一种包括有指令的计算机可读介质,当由处理器执行时,所述指令用于在无线数据网络中传输内容,所述计算机可读介质包括发送指令,以选定的传输速率发送内容;接收指令,接收一个或多个确认信号;估计指令,根据所述一个或多个确认信号,估计网络传送速率;以及调整指令,基于所述网络传送速率,调整所述内容的所述选定传输速率。
26.根据权利要求25所述的计算机可读介质,其中,所述内容包括一个或多个内容分组,并且,所述发送指令包括给所述一个或多个内容分组分配唯一分组标识符的指令;以及以所述选定的传输速率发送所述内容分组的指令。
27.根据权利要求26所述的计算机可读介质,其中,所述接收指令包括Ack信号接收指令,对于已经收到的内容分组,接收其相应的Ack信号;以及Nack信号接收指令,对于未收到的内容分组,接收其相应的Nack信号。
28.根据权利要求27所述的计算机可读介质,其中,所述估计指令包括根据所述接收到的Ack信号估计所述网络传送速率的指令。
29.根据权利要求27所述的计算机可读介质,还包括如果对于选中的内容分组收到其相应的一个或多个Nack信号则重发所述选中的内容分组的指令。
30.根据权利要求25所述的计算机可读介质,其中,所述调整指令包括如果所述选定的传输速率高于所述网络传送速率则降低所述选定的传输速率的指令。
31.根据权利要求25所述的计算机可读介质,其中,所述调整指令包括如果所述网络传送速率与所述选定的传输速率基本相同则增加所述选定的传输速率的指令。
32.根据权利要求25所述的计算机可读介质,还包括在选定的内容已经发送出去之后测量选定的时间间隔的指令;以及如果在所述选定的时间间隔内没有收到确认信号则重发所述选定的内容的指令。
33.一种包括估计逻辑和速率控制逻辑的处理器,用于在数据网络中传输内容,所述处理器执行包括下列步骤的方法以选定的传输速率发送内容;接收一个或多个确认信号;根据所述一个或多个确认信号,估计网络传送速率;以及基于所述网络传送速率,调整所述内容的所述选定传输速率。
34.根据权利要求33所述的方法,其中,所述内容包括一个或多个内容分组,并且,所述发送动作包括给所述一个或多个内容分组分配唯一的分组标识符;以及以所述选定的传输速率发送所述内容分组。
35.根据权利要求34所述的方法,其中,所述接收动作包括对于已经收到的内容分组,接收其相应的Ack信号;以及对于未收到的内容分组,接收其相应的Nack信号。
36.根据权利要求35所述的方法,其中,所述估计动作包括根据所述接收到的Ack信号,估计所述网络传送速率。
37.根据权利要求35所述的方法,还包括如果对于选中的内容分组收到其相应的一个或多个Nack信号,则重发所述选中的内容分组。
38.根据权利要求33所述的方法,其中,所述调整动作包括如果所述选定的传输速率高于所述网络传送速率,则降低所述选定的传输速率。
39.根据权利要求33所述的方法,其中,所述调整动作包括如果所述网络传送速率与所述选定的传输速率基本相同,则增加所述选定的传输速率。
40.根据权利要求33所述的方法,还包括在选定的内容已经发送出去之后测量选定的时间间隔;以及如果在所述选定的时间间隔内没有收到确认信号,则重发所述选定的内容。
全文摘要
在时变网络环境中用于最佳文件传输的方法和装置。本申请提供了一种用于在数据网络中传输内容的方法。所述方法包括以选定的传输速率发送内容;接收一个或多个确认信号。所述方法还包括根据所述一个或多个确认信号,估计网络传送速率;基于所述网络传送速率,调整所述内容的选定传输速率。
文档编号H04L1/16GK1981470SQ200580022404
公开日2007年6月13日 申请日期2005年5月5日 优先权日2004年5月5日
发明者萨蒂·M·纳佳拉杰 申请人:高通股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1