CN101133599A - 批量数据传输 - Google Patents
批量数据传输 Download PDFInfo
- Publication number
- CN101133599A CN101133599A CNA2005800447423A CN200580044742A CN101133599A CN 101133599 A CN101133599 A CN 101133599A CN A2005800447423 A CNA2005800447423 A CN A2005800447423A CN 200580044742 A CN200580044742 A CN 200580044742A CN 101133599 A CN101133599 A CN 101133599A
- Authority
- CN
- China
- Prior art keywords
- data
- transmission
- network
- emissivity
- receiver
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/11—Identifying congestion
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/18—End to end
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/25—Flow control; Congestion control with rate being modified by the source upon detecting a change of network conditions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/26—Flow control; Congestion control using explicit feedback to the source, e.g. choke packets
- H04L47/263—Rate modification at the source after receiving feedback
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/28—Flow control; Congestion control in relation to timing considerations
- H04L47/283—Flow control; Congestion control in relation to timing considerations in response to processing delays, e.g. caused by jitter or round trip time [RTT]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/32—Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/34—Flow control; Congestion control ensuring sequence integrity, e.g. using sequence numbers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/163—In-band adaptation of TCP data exchange; In-band control procedures
Abstract
本公开涉及网络数据通信。一些实施方案包括:初始化原始源和最终目的之间的网络连接,在网络上从原始源向最终目的传输数据块,从最终目的向源请求重新传输丢失块并且从源向最终目的重新传输丢失块。这些实施方案还包括测量重新传输请求的往返时间,所述往返时间是根据从最终目的传输重新传输请求的时间到在从原始源重新传输后在最终目的接收时间测量的,并且将所述往返时间作为网络连接的最小重新传输请求时间,其中所述往返时间包括在原始源和最终目的的网络连接和数据处理中的延迟。
Description
相关申请
依据35U.S.C.第119(e)章的规定,本申请要求于2004年12月24日提交的第60/638,806号美国临时申请、于2005年2月1日提交的第60/649,198号美国临时申请、于2005年2月1日提交的第60/649,197号美国临时申请的优先权。这些申请通过引用的方式而将其整个内容纳入本说明书。
本申请涉及于2004年12月24日提交的第60/638,806号美国临时申请、于2005年2月1日提交的第60/649,198号美国临时申请、于2005年2月1日提交的第60/649,197号美国临时申请。这些申请的整个说明书通过引用的方式纳入本说明书。
技术领域
本发明的主题涉及网络数据通信,并且更具体而言,涉及批量数据传输协议。
背景技术
随着近来网络带宽的增加,通过全球因特网遍及的用户互连、由商业和消费者用户处理的数字数据的增长量以及批量数据(文件和目录)基于网络传输的需求正在不断地增加。特别的,用户希望通过不断变宽带宽的网络在不断加长的距离上传输更大的文件。
这样的数据传输路径不仅经受高瓶颈带宽和由于地理距离造成的往返延迟,而且还经受由于介质本身(例如无线)、可变的以及有时过量的通信量拥挤造成的包丢失周期和可变延迟。
由于在具有高带宽延迟产品的网络上传输控制协议(TCP)的性能较差,基于TCP的传统批量数据传输协议遭受了在通常全球因特网路径上的严重性能限制。很多注意力集中于改进在高带宽、高延迟网络上传输批量数据的性能(传输速度和带宽利用)的实现和替代传输协议上。然而,当前方案提供了主要在因特网核心中的链路上的改进的吞吐量和带宽利用,所述链路具有相对低的误码率(BER)并具有充足的带宽,避免了通信量拥挤。然而,多数用户数据传输从边缘到边缘地跨越网络,并且不仅经受由于地理距离造成的高往返延迟,还经受通常“边缘”网络的包丢失周期和可变延迟特性。在通常边缘网络上,当前方案无法实现完全的带宽利用,遭受随着拥塞增加的可变吞吐量,并且不能就严格要求时间的商业处理和苛求的消费者用户所需的传输时间提供充分保证。此外,在当前方案确实改进吞吐量的有限情况下,它们是在损害与其他网络应用公平共享带宽的情况下实现的,并且不向终端用户提供对带宽共享的控制。终端用户被迫在性能较差但却“公平”的标准TCP实现、或替代的新协议之间进行选择,所述新协议在有限情况下提供改进的吞吐量但损害带宽公平性。尽管在因特网核心中这是可以接受的,但是在经常过量订购的边缘网络上却是不可接受的,在所述边缘网络中,允许数据传输到具有有限可用带宽的网络。考虑到TCP协议的当前和将来的实现,在现有技术中需要一种数据传输系统,该系统用于解决上述问题并且提供改进的吞吐量、与网络距离或拥塞(以及相关的延迟和包丢失)无关的可预测传输速度、对带宽的自动完全利用,以及当没有带宽未被使用时与其它传输按比例共享带宽的性能。
发明内容
本发明的主题会解决上述问题以及这里未特别讨论的其他问题,通过阅读和研究本说明书将会理解这些问题。
本发明主题提供了一种可靠的网络数据传输系统。对于通过网络传输数据以及使用软件数据传输应用程序提高在网络上的数据传输率而言,该系统是有用的。
该系统的一些实施方案提供应用级别的(与核心空间相对的用户空间)批量数据传输协议,其通过具有足够传输效率的商业网络(具有任何带宽、延迟、以及丢失率)产生高的批量数据传输速度,以允许独立的传输率控制。结果,该系统向应用提供了对于在通用商业网络上传输速率的彻底的、可配置的实时控制,同时保持稳定和可预测。
该系统一些实施方案的目标在于,用于巨大并且不断增长的商业边缘网络领域的数据传输。一些实施方案还提供对于利用商业网络的单个流数据传输的高度控制和透明性。更具体而言,作为与网络延迟和包丢失无关的其传输效率和稳定性的直接结果,该系统的这些实施方案能够从其速率控制分离出其可靠性算法,并且与网络条件无关,向应用提供对于传输速率准确的、彻底的、实时的控制。这包括对可预测传输次数的绝对传输率的预置和实时控制,以及对与诸如具有TCP流(包括标准TCP和出现的新TCP实现)的一对一公平性的共享链路上其它传输相关的系统带宽利用的控制。相反地,一些实施方案将实时可见性提供到传输性能和动态网络参数中。
进一步的实施方案还提供了具有编程接口的通用批量数据传输服务,所述编程接口适合于需要操作系统和文件系统独立传输的应用。这些实施方案的服务层提供了在各种计算设备上的嵌入使用,作为与其它应用程序结合运行的后台服务,并且不需要专用的计算机系统。除了数据传输外,所述服务层提供了现代商业应用所需的通用应用性能,包括安全性(认证和加密)、从同一或替代的服务器自动继续传输、在网络中断或网络漫游(例如固定无线的蜂窝电话)情况下的自动重新开始以及从诸如URL连接等文件参考的激活。
该系统的一些实施方案提供了高效可靠性机制,其确保有效吞吐量等于发送率减去在传输路径上的包丢失率。包括该机制的实施方案防止(出现可变的网络延迟和不可忽略的包丢失率时)以前可靠UDP传输中典型的复制数据传输。一些实施方案也包括与可靠性机制无关的发射率控制。该可靠性机制确保与网络条件无关的高效率,并且因而不需要单独的流控制来防止协议性能退化,协议性能退化会导致低有效吞吐量,有时称为“拥塞崩溃”。进一步的实施方案包括基于方程的速率控制,使能快速收敛于目标传输率以及稳定的吞吐量平衡。在这些实施方案中,该系统使用应用级别协议中的网络排队延迟来检测拥塞,以从由于随机误差(BER)导致的包丢失中精确地分辨网络拥塞。而其它实施方案对该系统提供了在传输之前和传输期间设置目标传输率的性能。该速率可以是固定的,或与标准TCP、或新出现的TCP或其它传输实现相关的可配置竞争动态自适应,或根据优先级策略动态自适应。
该系统的这些元件和其它元件可具体化在应用的编程管理接口中,其提供对系统传输的彻底控制和监控。其它实施方案包括独立应用、操作系统插件程序、实用程序应用、硬件组件以及实际上能够提供这里描述的系统服务的任何其它类型的软件或硬件装置。
该发明内容是本申请一些教导的概述,并不意在本发明主题的排他或穷尽。可以在详细描述和所附权利要求中找到关于本发明主题的进一步的细节。一旦阅读和理解下面的详细描述并查看构成其一部分的附图,其它方面对于本领域的普通技术人员将变得显而易见,它们中的每个方面都不意在具有限制含义。本发明的范围由所附权利要求及其合法等价物限定。
附图说明
提供附图以举例说明涉及该系统的一些方面和实施例,但是不意在指本发明主题的排它或穷尽表示。
图1是根据示例实施方案的系统的示意性框图;
图2是根据示例实施方案的发送器/接收器系统的框图;
图3是根据示例实施方案的数据发送处理的框图;
图4是根据示例实施方案的数据接收处理的框图;
图5是根据示例实施方案的系统的数据流图;
图6是根据示例实施方案的系统的数据流图;
图7是根据示例实施方案的系统700的数据流图。
具体实施方式
在下面的详细描述中,参考构成本说明书一部分的附图,并且其是通过说明可以实施本发明主题的具体实施方案的方式示出的。这些实施方案被描述得足够详细,以使本领域的普通技术人员能够实施它们,并且应当理解,可以采用其它实施方案并且在不背离本发明主题的范围的情况下可以进行结构、逻辑以及电气的改变。因此,下面的描述不应认为具有限制意义,并且本发明主题的范围由所附权利要求及其合法等价物限定。
应当理解,这里提供的系统在不同实施方案中可以使用硬件、软件、固件以及硬件和/或软件和/或固件的组合来实现。应当理解,在各种实施方案中,系统的功能可以对应于模块,所述功能是以软件、硬件、固件或其任何组合实现的。这里提供的实施例可以使每个模块中的一种或多种功能结合,然而应当预期,在不背离本发明主题的范围的情况下,可以实现功能的其他结合。
在各种实施方案中,可以使用包括但不限于数字信号处理器、ASIC、微处理器、微控制器或其它类型处理器的设备来运行软件部分。可以在其中实施本发明主题的环境包括但不限于具有网络设备的计算环境,网络设备例如是计算机、服务器、路由器、网关,LAN、WAN、企业内部网和/或因特网的通路或其它网络互连设备。
一些实施方案在两个或多个专用互连硬件模块或设备中,或作为专用集成电路的部分来实现功能,所述模块或设备具有相关的控制和在模块之间以及通过模块通信的数据信号。因而,示例性处理流程可应用于软件、固件、以及硬件实现。
本申请涉及于2004年12月24日提交的第60/638,806号美国临时专利申请,其整个说明书通过引用的方式纳入本说明书。
这里提供了本发明主题的各种实施方案。图1是根据本发明主题的示例实施方案的系统100的示意性框图。系统100包括通过网络122连接的第一节点102和第二节点132。
第一节点102包括连接到总线114的处理器104、存储器106和网络接口112。第一节点102可选地包括诸如磁盘110的存储设备、输出设备116和输入设备118。第二节点132包括连接到总线144的处理器134、存储器136以及网络接口142。第二节点132可选地包括诸如磁盘140的存储设备、输出设备146和输入设备148。在改变的实施例中,第一节点102和第二节点132的存储器106和136都被说明为包括软件108、138。这样的软件包含至少向网络接口传送数据的功能。在改变的实施方案和应用中,这样的软件可从一个或多个来源加载到存储器108、138,所述来源包括但不限于存储器110、140。
在各种实施方案中,网络122包括因特网、局域网(“LAN”)、企业内部网、广域网(“WAN”)或其他网络类型中的一种或多种。
软件108、138可在其各自节点102、132的处理器104、134上操作,以使节点102、132能够通过网络122交换数据。软件108、138使节点102、132执行与数据交换相关的各种动作。这些动作包括根据如下说明的各种定时确认方法来交换数据。
在本讨论中,将术语端对端“传输路径”称为数据传输。传输路径通过诸如网络122的IP网络从诸如第一节点102的源主机延伸到诸如第二节点132的目的主机。传输路径具有“瓶颈带宽”、“网络往返时间”以及“路径往返时间”特性。
路径瓶颈带宽是沿传输路径整个长度上的最小数据传输容量(每单位时间的数据单位)。它包括诸如第一节点102和第二节点132的发送和接收主机的瓶颈容量,以及网络122的瓶颈容量,网络122包括一个或多个网络阶跃(network hop)。节点102、132的瓶颈容量是在数据传输中使用资源的最小数据吞吐量(每单位时间的数据),包括存储器110、140或存储器106、136的读/写速度、主机总线114、144的速度、处理器104、134的速度以及网络接口112、142的速度。网络122的瓶颈容量是包括网络路径的各个网络链路的最小带宽。
路径往返时间(“路径RTT”)是数据单元从数据接收器到达源并且返回所需的时间。例如,路径RTT包括从第二节点132的存储器140或存储器136读取数据单元、通过网络122将数据单元传送回第一节点102、以及将数据单元读入存储器106中、以及通过网络122将数据单元传送回第二节点132并且将数据单元读入到存储器136中的时间。在一个实施例中,在包上使用表示传输开始和最终接收时间的时间“标记(tick)”来测量该时间。
网络往返时间(“网络RTT”)是数据单元穿过网络122所需的时间,该时间从接收主机通过网络发送数据单元时开始到数据单元到达发送主机,然后返回到接收主机,有时将其称为“网络延迟”。
在各种实施方案中,网络RTT包括:请求在目的主机中进行“下行通信堆栈”(网络协议层到操作系统中的网络堆栈再到物理接口)的时间;请求通过网络到达发送主机的时间;发送主机接收重新传输请求和发送下一预定数据单元的时间(包括接收输入的重新传输请求的途径“上堆栈”(物理接口到操作系统中的网络堆栈再到系统协议层)以及发送下一预定数据单元的途径“下堆栈”(系统协议层到操作系统的网络堆栈再到物理接口)),加上通过网络到达目的主机的时间。
给定传输路径的带宽延迟乘积(“BDP”)是路径的总数据容量的表示,并且等于瓶颈带宽乘以往返时间。为了本公开的目的,将BDP称为术语网络往返时间,但是注意,对于带宽非常高的网络,实际上可以通过主机带宽确定瓶颈带宽和BDP。
根据确定“效率”的“数据发射率”、“接收率”和“有效接收率”定义数据传输。数据发射率(“Ri(t)”)是发送器代表发送应用将数据发射到网络中的速率(例如,以每秒的位数或字节数测量的)。数据接收率(“Rr(t)”)是接收器代表接收应用从网络122读取数据的速率。有效接收率(“Ru(t)”)是接收器接收包括之前未接收的数据(例如,复制数据)的“有效”数据的速率。
贯穿本说明书使用的术语还有“复制接收率”和“传输效率”。复制接收率(“Rd(t)”)是接收器接收已接收的数据的速率。
传输效率是有效接收率与总接收率的比值(Ru/Rr)。当Ru接近Rr并且没有接收复制数据时,获得最大传输效率(100%)(意味着协议的冗余数据开销可忽略):
Ru/Rr~1并且Rd~0
“完美效率”协议传输所有所需的数据,其由于传输路径上的包丢失可能需要没有冗余传输地重新传输丢失的数据。注意效率与带宽利用不同。
根据各种实施方案,稳定的系统100收敛于稳态吞吐量,在面对包丢失、网络延迟和包丢失与网络延迟变化时,该稳态吞吐量在带宽使用中不会震荡。这允许系统102上的应用108选择任意的数据发射率Ri,而不破坏系统100的稳定性。如果系统100采用固定的目标速率,则数据被稳定地发射到网络122上,并且不产生“突发脉冲(burst)”。在一些实施方案中,系统100采用动态自适应速率,对于在高速率下的稳定性,该速率发展成与均衡的距离成比例的均衡速率,而不是当前的传输速率。采用动态自适应速率的稳定协议也不过度干预传输路径中的路由缓冲器以及削弱小“鼠(mice)”通信量。
一些实施方案包括用于测量系统100性能的参数,所述性能包括“可预测性”、“带宽公平”以及“独立速率控制”。如果传输吞吐量和时间是通过诸如可变往返延迟和包丢失等可变和不可预测路径条件确定的,则有效数据接收率(Ru)是“可预测的”。
如果与TCP竞争的单个流是同等地竞争并且以相等比例共享瓶颈带宽BW,则将协议认为是对标准TCP(“友好TCP”)的“带宽公平”,从而对于N个竞争流,每个流的速率是BW/N。为了商业网络上的高性能和公平性,可靠的传输协议都与TCP适当地共享,并且具有“最大-最小”公平性:当TCP流不使用其完全比例带宽共享时,在一些实施方案中,系统100消耗剩余的带宽。
如果数据发射率不与可靠性机制结合,则系统100向应用提供“独立速率控制”,并且系统100向应用暴露接口,以在操纵速率控制中使用。各种实施方案可以操纵的一些参数包括诸如目标速率或最大/最小范围等离散速率设置、相对竞争性以及优先级策略。在一些实施方案中,系统100也向应用提供智能反馈,诸如性能统计,诸如有效速率、传输的不间断字节以及以传输路径上的往返时间、包丢失的形式测量的网络影响,以及协议开销。
为了获得上述系统100的特性(面对包丢失、网络延迟和包丢失与网络延迟的变化时的稳定性和可预测性,效率Ru/Rr~1以及独立的速率控制),用于可靠的批量数据传输系统的所建议实施方案提供以下处理:
a.当块丢失时,将重新传输请求存储到接收器上
b.重新传输请求存储具有以下数据结构属性:
1.在存储中的插入时间必须是在固定时间0(1)
2.将要请求的检索或重新传输必须是在固定时间0(1)
3.当接收到重新传输的块时查找和取消待处理的重新传输请
求必须是在固定时间0(1)
c.将发送器接收的重新传输请求存储在发送器存储中。当包丢失增长时,发送器存储必须不增长。
1.接收器仅以发送器可以发送重新传输的块的速率发送重新
传输请求
2.重新发送请求的发送器存储必须允许固定的插入时间(所
建议的实施方案提供对数插入时间0(log(n)),但是由于发送器存储的大小不随包丢失的增加而增长,所以插入时间实际是固定的)
3.发送器必须顺序(最小的索引开始)发送重新传输的块以最优化盘读取性能,所以在存储中查找最小重新传输索引必须是在固定时间0(1)。
d.重新传输请求必须无延迟地到达发送器。接收器以需要发送的可能给定重新传输请求总量的最小大小的包并且以必须发送它们的速率发送重新传输请求。
e.接收系统必须以接收数据的速率处理到达的数据。如果数据必须写入到接收系统的磁盘中,则必须最佳地完成它。
f.如果接收系统由于系统限制不能以接收数据的速率处理输入的数据,为了重新传输机制的目的,则降低输入的数据,且所降低的块被认为是丢失。
图2是根据示例实施方案的系统200的框图。系统200包括发送器系统201和接收器系统226。发送器系统201和接收器系统226经由网络224彼此连接。
系统200实施方案的发送器系统201包括一组模块。这些模块包括传输初始化模块222、数据文件系统源模块218、数据应用源模块203、块处理器模块206以及可选的加密模块208。发送器系统201还包括块排出(egest)模块210、反馈读取器模块216、速率控制模块214、重新传输模块212、管理接口模块204以及传输初始化模块222。
传输初始化模块222处理与接收器系统226的控制信道的建立。该控制信道可以使用可靠或不可靠的基本传输(例如,TCP或UDP)。该控制信道也可以使用公钥-私钥方法被加密,所述方法诸如加密套接字层(“SSL”)或加密壳(Secure She11)(“SSH”)。使用该控制信道,传输初始化模块222代表发送器应用202通过向接收器系统226发送证书来处理认证,并且可选地交换每个会话对称密钥,以在数据加密中使用。传输初始化模块222也处理诸如块大小、目标速率等传输参数的协商,并且交换文件或目录元数据,用于构造目的文件和继续局部传输。元数据包括诸如文件名、大小、访问控制参数以及校验和等属性。
数据文件系统源模块218通过发送器系统201的文件系统218提供从发送器系统201可访问的磁盘220或存储器传输的数据序列。所述序列可以是文件、目录、原始字节序列或实际上任何其它类型或形式的数据。
数据应用源模块203提供在发送器应用202的存储空间中传输的数据的序列。
当需要传输或重新传输时,块处理器模块206通过从文件系统或从用户应用202的存储空间203读取数据块来吸收数据。
加密模块208是发送器系统201中可选的模块。加密模块208可选地加密数据块以及增加用于完整性验证的认证摘要。
块排出模块210向网络224写入数据块。
反馈读取器模块216从接收器系统226读取控制反馈信息,包括重新传输丢失块的请求、传输统计以及动态目标速率。反馈读取器模块216解析消息类型并将有效载荷传递到适当模块供处理,所述模块诸如重新传输模块212、速率控制模块214或管理接口204。
速率控制模块214调度传输块的各个目标速率(例如,每秒的位数)。
重新传输模块212将输入的重新传输请求存储到允许通过序列号排序的数据结构中。重新传输模块212还发出重新传输的块号。
管理接口模块204提供监控和控制接口,从该接口发出控制命令并且从该接口读取传输统计。
系统200实施方案的接收器系统226包括一组模块。这些模块包括传输初始化模块225、数据文件系统目的模块250、数据应用目的模块227、块处理器模块230以及可选的加密模块232。接收器系统226还包括块排出模块236、反馈写入器模块248、速率控制模块242、重新传输模块246、管理接口模块228以及传输初始化模块225。
传输初始化模块225处理与发送器系统201的控制信道的建立。该控制信道可以使用可靠或不可靠的基本传输(例如,TCP或UDP)。控制信道也可以使用公钥-私钥方法被加密,所述方法诸如加密套接字层(“SSL”)或加密壳(“SSH”)。使用该控制信道,传输初始化模块225代表接收器应用227通过向发送器系统201发送证书来处理认证,并且可选地交换每个会话对称密钥,以在数据加密中使用。传输初始化模块225也处理诸如块大小、目标速率等传输参数的协商,并且交换文件或目录元数据,用于构造目的文件和继续局部的传输。元数据包括诸如文件名、大小、访问控制参数以及校验和等属性。
块排出模块236从网络224读取数据块。
加密模块232是可选的。包括加密模块232的实施方案解密所加密的数据块,并验证用于完整性的认证摘要。
块处理器模块230处理输入的数据块。该处理包括:提取网络往返时间戳,将它传递到速率计算模块,并且提取路径往返时间戳,将它传递到超时预测器模块。该处理还包括将有效载荷复制到磁盘写入器模块234供排出。
磁盘写入器模块234实现逻辑,以通过将网络读取和磁盘写入操作之间的内锁最小化来最大化接收器的输入/输出(“I/O”)速度。磁盘写入器模块234使用许多缓冲器,并且在任何时间为网络224读取分配一个缓冲器以及为磁盘252写入分配一个缓冲器。一旦缓冲器被网络读取器充满,则将其传递到磁盘写入器模块234,并且向网络读取器分配新缓冲器。
文件缓冲模块238实现逻辑,以通过将溢出序列写入和特定文件系统的最佳大小的写入块最小化来最大化向磁盘252或系统存储器写入块的速度。
数据文件系统目的模块250是通过写入所接收数据的文件系统可访问本地计算机的磁盘252或系统存储器上的文件或目录。
数据应用目的模块229是写入所接收数据的接收器226的应用227的存储空间229中的存储器序列。
重新传输模块246存储通过索引检索的丢失数据块的信息。所存储的信息包括序列号和最初发送丢失数据块的时间戳。
反馈写入器模块248向发送器系统201发送反馈信息。该反馈信息可以包括重新传输请求、统计、所计算目标速率以及涉及在发送器系统201和接收器系统226之间数据交换的任何其它信息。
超时预测器模块240使用递归估计算法计算直到请求重新传输丢失块(RTO)的等待时间,所述递归算法基于往返测量预测路径往返时间。
速率控制模块242根据所配置的速率控制机制计算目标传输速率,所述速率控制机制将固定速率或动态自适应速率指定为所测量的网络往返时间的函数。
定时器模块244根据重新传输请求到期的绝对时间存储用于重新传输的块的序列号。所述绝对时间是由超时预测器模块计算的RTO给定的。定时器模块向重新传输模块发送在当前时间重新传输已到期的块序列号的列表。
管理接口模块228提供监控和控制接口,从该接口发出控制命令并且从该接口读取传输统计。
文件差别模块254估计在接收器系统226已出现的数据,并将该数据与发送器系统201的数据进行比较,以确定是否已出现任何相同数据并且不需要传输。在一个实施方案中,基于诸如大小、修改时间和内容校验和等属性,在与发送器文件具有相同名称的接收器文件之间进行比较。如果文件相同,则不传输数据。如果文件被部分传输,则文件差别模块确定传输应开始或继续的偏移量。
应当理解,在不背离本发明主题的范围的情况下,上述确切的功能及它们如何被集合和互连,以及每一种功能所执行的处理可以变化。
图3是根据示例实施方案的过程300的框图。过程300是计算机可执行的方法,以从源系统向目的系统发送文件或其它数据结构。过程300包括:接收向目的系统传输文件或其它数据结构的命令302;创建连接并与目的系统交换控制数据304;以及将文件或其它数据结构分成编号的数据块306。过程300还包括:确定是否已接收到重新传输请求并且该请求待处理308,以及在传输任何其它块之前重新传输任何所请求的块310。过程300也包括确定是否存在要传输的任何剩余块312,传输编号的序列中的下一个块314。如果不存在要传输的剩余块,则过程300确定是否已从目的系统接收到已接收到最后一个块的指示316。如果已接收到该指示,则过程结束320,否则过程重新传输最后的块318。
图4是根据示例实施方案从源系统将文件或其它数据结构接收到目的系统的过程400的框图。过程400包括:接收接收文件或其它数据结构的命令402;建立连接并与源系统交换控制数据404;以及分配存储空间并根据要接收的块数将存储空间分成块406。过程400还包括:接收编号的块408;确定之前是否已接收该块410;如果之前已接收到该块则放弃该块412;或将该块写入到与所接收块的编号相应的各存储块414。过程400然后确定在所接收的块中是否存在间隙422。如果存在间隙,则过程调度重新传输丢失的块416,确定丢失的块是否应已接收到418,以及请求重新传输丢失的块420。过程400然后确定是否请求重新传输已接收的块424。如果重新传输了该块,则从重新传输调度中删去该块。过程400然后确定该块是否为最后的块428。如果其是最后的块,则过程400终止430。否则该过程重复,直到接收到所有的块。
应当理解,在不背离本发明主题的范围的情况下,上述过程流程的变型和各个过程的执行可以改变。
在图3和图4中分别示出的过程300和400的一些实施方案向计算机应用提供了在彼此之间可靠传输数据块序列的性能。在一些实施方案中,过程300和过程400被包含在单个计算机应用中,以向系统提供作为发送器和接收器的性能。
在工作中,发送器系统根据图3的过程300进行操作,以所请求的目标速率或以路径瓶颈带宽从源向接收系统目的传输序列中的数据结构,所述目标速率和路径瓶颈带宽中任何一个都是较小的。接收器系统根据图4中所说明的过程400进行操作。不管传输前的路径往返时间或传输期间往返延迟和包丢失的变化,该传输都以高效率执行。
当要求固定目标速率时,即使拥塞,传输速率也保持固定,减去包丢失速率。当使用带宽公平模式时,传输速率应在网络轻载荷时自动地适应于利用可用的带宽,但是在网络拥塞时(没有带宽可用)适应用户配置的TCP公平速率比例。
图5、图6和图7说明了包括在本发明主题的分类实施方案中的各个方面。这些附图除其它内容以外根据一些实施例提供了关于往返时间测量、数据重新传输以及计算和更新数据发射率的细节,且并不意在进行穷尽或排他说明。
图5是根据示例实施方案的系统500的数据流图。系统500包括具有最终数据源502的发送器、网络504以及具有最终数据目的506的接收器。通过接收器发送携带时间戳的传输请求,所述时间戳用于计算可靠性方法的即时往返时间(即,路径RTT)和拥塞测量(即,网络RTT)。每个时间戳附带有类型标记符(n=网络RTT,p=路径RTT)。在定期的时间间隔从接收器向发送器发送“n”重新传输请求(Trex)。如果当“n”测量到期时没有重新传输,则发送空重新传输请求。
图5包括具有以下含义的下列“T”参考信号:
T1:接收器发送重新传输请求的时间
T2:重新传输请求到达发送器的时间
T3(p):发送器发送满足重新传输请求的块的时间
T3(n):在接收到标记为“网络RTT”的重新传输请求的接收后,发送第一个块的时间
T4:该块到达接收器的时间
在各种实施方案中,下面的计算是有用的,并且可以使用所测量的时间T1、T2、T3(p)、T3(n)以及T4执行以下计算:
Treverse_network=T2-T1
Trex_sendqueue=T3(p)-T2
Tforward_network=T4-T3(n或p)
RTT路径,用于重新传输请求调度(可靠性算法):
RTT_path=Treverse_network+Trex_sendqueue+Tforward_network=T2-T1+T3(p)-T2+T4-T3(p)=T4-T1
RTT网络,用于网络拥塞(自适应速率控制算法):
RTT_network=Treverse_network+Tforward_network
=T2-T1+T4-T3(n)=T4-T1+(T2-T3(n))
图6是根据示例实施方案的系统500的数据流图。根据一些实施方案,图6的说明提供了对于重新传输请求产生和处理以及时间测量的更详细描述。
在时间T1,接收器向重新传输请求PDU添加重新传输到期的丢失块。在一些实施方案中,当时间等于当前估计的RTT、“RTO”已流逝时重新传输“到期”。当前时间被记录在重新传输请求PDU头部的时间戳记号(TK)中,并且记号类型标记符(路径“P”,或网络“N”)被设置。在周期间隔发送网络“N”记号。如果没有时间发送“N”记号,该记号默认是“P”。
在时间T2,重新传输请求到达发送器。发送器将该请求插入到按块号顺序排序的队列中。具有其记号时间戳TK的各个块被存储。
当接收到包含记号类型“N”的重新传输请求时,下一个发送的数据PDU(重新传输或原始的)包含记号TK,其被调整为发送器处理时间,以只测量网络时间:TK=TK+(T3(p)-T2)。
发送器继续以发射率Ri发送块。在发送新数据之前,按次序发送所有排队的重新传输。如果有排队的重新传输,则发送器选择最小的块号,并从磁盘重新读取该块。将重新传输的数据块、其时间戳TK以及类型(P/N)封装在该PDU中。
当接收器在时间T4接收到数据块时,如果该块包含记号,则接收器更新网络或路径往返时间(RTO)的预测估计。接收器根据所嵌记号计算采样往返时间(RTT_i),并且将所采样的往返时间输入到预测估计器函数中,以计算路径或网络的RTO。
图7是根据示例实施方案的系统500的数据流图。该说明示出了接收器506根据输入参数的函数计算新发射率以及向发送器传播新速率,所述输入参数是诸如最大/最小速率、诸如固定速率或自动自适应速率等带宽共享策略和相对于TCP的竞争,可以通过管理接口实时提供所有这些参数。
将要传输的数据序列分成大小相等的块。计算数据块的大小,使得携带数据(有效载荷+应用头部+封装包头部)的协议数据单元(PDU)将不超过该PDU可能穿过的网络的最大传输单位(MTU)。
该系统保证所有块的传输以及目的端的源文件的重构。块在序列中被编号。系统接收器记下丢失的块,并且请求系统发送器重新传输丢失的块,直到将所有的块接收并写入到该目的文件。在接收块时将所接收的块写入磁盘或存储器,创建逐渐被填充直到完成的稀疏文件。
系统发送器通过以用户指定的目标速率(绝对值或自动发现的带宽容量的百分比)或自适应速率机制计算的目标速率按次序发送块而开始。在自适应速率模式中,发送器可选地使用初始发送速率是发送速率的一小部分的慢开始机制,自适应速率算法经过几秒自动地爬升到目标速率。每个块包括块号,用于在接收器重构该文件。发送器可以从接收器接收重新传输块的请求。在此情况下,发送器存储该重新传输的请求,并以用户指定的速率或自适应速率机制计算的速率重新发送所请求的块。服务器在发送任何新块之前发出重新传输到期的所有块。当不再有要重新传输的块或要传输的新块时,服务器进入终止状态,在该状态其重复地发送文件的最后的块,直到接收器发出整个文件接收完毕的信号,或发送更多的重新传输请求。
系统接收器等待数据块的接收。一旦接收到块,如果之前没有接收到该块,则接收器就将该块传递到存储器,诸如磁盘子系统或系统存储器。如果块序列号表示在块的接收中存在间隙,则接收器调度重新传输具有之前最后接收块与该块之间的序列号的所有丢失块。
重新传输调度程序进行操作,以根据确定何时发送重新传输请求的定时器的功能请求重新传输丢失块。重新传输调度的定时器是基于对路径往返时间的预测测量。当一批重新传输到期,则接收器向发送器发送重新传输这些块的请求。当接收到重新传输的块时,从待处理重新传输调度程序中删除它们的条目。将这些块传递到存储器、磁盘或具有适当文件偏移位置的其它位置,并将它们写入文件。当已经接收到最后的数据块时,则根据快速终止算法请求任何剩余的重新传输。当已接收到所有的块时,接收器向发送器发送终止消息。
各种其它实施方案提供对任意高固定发射率获得高数据传输效率和与往返延迟和包丢失无关的可预测传输速率的方法。
一些这样的实施方案提供了基于块的传输,并且提供了从数据的可靠接收分离出的高准确度发射率。所述基于块的传输向数据传输应用提供非序列数据访问。
向数据传输应用提供非序列数据访问的实施方案包括基于块的传输,用于请求诸如磁盘系统、存储器或应用的数据源,以离散块并且不必以序列次序提供数据。
这些实施方案定义了数据“块”的大小,并且向应用请求个别地或根据范围提供块。例如,在规则的文件传输情况下,这样的实施方案将块定义为许多字节。(该大小可以由应用配置,在实现中预编码的固定值,或通过探测传输路径的MTU大小而发现。对于最大的吞吐量效率,该块大小应是不超过路径MTU并且导致包破裂的尽可能大的大小,以避免在较低的IP层重组破裂包的不必要开销。)。将文件分成块,并且第一个块的块号是1。对将被请求的给定块的次序和次数没有保证。在任何给定的时间,应用具有其将请求的最小块号。基于该信息,应用可以丢弃较早的块,避免将大数据缓冲器存储在存储器中以及潜在地对序列数据并行操作的开销。
一些实施方案包含与其可靠性机制无关的数据发射率。在这样的实施方案中,发射率不依赖是否成功接收数据以及速率控制算法是否受应用的明确、独立的控制。这提供了获得与网络延迟和包丢失无关的传输性能的性能,和给予应用的独立传输速率控制。
根据这些实施方案的应用操作采用由应用配置的(例如,绝对值或配置的百分比或自动发现的带宽容量)或采用基于方程算法计算的目标发射率,并且使用定时而不是应答来控制发射率。该速率控制与系统负载无关地使目标速率保持相对的准确度,并且是对其它应用友好的CPU。因为这些实施方案不需要传输数据的序列应答来对进入网络的新数据计时,所以可以以任何次序从应用重新请求数据,而不需要将传输块的冗余存储保持到接收到应答。
在“固定速率”模式中,根据这些实施方案的应用保持固定的发射率,或当使用“自适应速率”控制算法时,根据正在进行的可用网络带宽的测量以及可以明确暴露给应用的相对于TCP的可配置竞争调整目标速率。应用可以实时(in flight)设置速率控制模式(例如,固定的或自适应的),以及边界参数,该边界参数包括目标速率、最大和最小传输速率以及带宽公平的缩放因子。(尽管当前的实现可能发现相对于标准(Reno)TCP表示所计算的目标速率的缩放因子是最有用的,但是该缩放可以是相对于任何具有稳态吞吐量的兼容TCP实现,所述稳态吞吐量是诸如往返时间和包丢失等可测量的端对端网络参数的函数。)
在一些网络利用最大化的实施方案中,重要的是,发送器系统以所需要的发射率(计算的或预定的)准确输出数据。实现该目的需要解决的问题首先涉及操作系统提供的定时机制,其次涉及系统负载。
首先,在多处理操作系统上,进程切换的粒度比高速率网络传输需要的“包时间间隔”大的多。通常,该粒度是10至20毫秒的数量级,这意味着一旦进程让出CPU,则其将至少10-20毫秒不再运行。每隔10毫秒发送一个1500字节的数据包仅产生1.2Mbps的传输率。自旋(spinning)(与让出CPU相对)提供高精度定时但不实用,除非机器能够专用于网络传输器。本发明主题的一些实施方案提供了商业、多任务系统上的数据传输,并且不独占CPU。
其次,在CPU和磁盘利用方面,更高的系统负载可不利地影响发射率的准确度,导致其落后。
本发明主题的一些实施方案使用的方法提供高准确度的发射率。这些发射率是对CPU友好的,并且只要有足够的可用处理能力,所述发射率就不受系统负载变化的影响。
因为包是被成批分组,所以发射率是对CPU友好的。计算批大小,使得包间延迟(“IPD”)足够大,以允许发送器让出CPU并且不损及发射率地从所产生的进程切换延迟恢复。
因为这样的实施方案测量处理一个包或一批传输的时间,并且补偿该处理时间加上在让出CPU的进程切换中花费的时间y导致的滞后,所以发射率不受系统负载变化的影响。实际的包间延迟补偿了所测量的滞后,因而在系统负载可变时使发射率保持固定。
下面的伪代码是用于将包发射到网络中来获得高准确度网络传输速率的示例算法。在计算批大小和IPD中,选择5000微秒(5毫秒)的最小包间延迟(“IPD”)限制,使得可以从接下来的3-4批中补偿进程切换导致的延迟(10-20毫秒)。
计算给定发射率(Ri)的包间延迟(IPD)和批大小:
IPD=block_size*8/rate [微秒]
if IPD<5000微秒
batch_size=5000/IPD
IPD=block_size*8*batch_size/rate [微秒]
else
batch_size=1
发送器循环:
lagbehind=0
sleeptime=0
重复直到传输完成
/*睡眠程序*/
sleep_spin=sleep_time%1000微秒
sleep_yield=sleep_time-sleep_spin
sleep(sleep_yield微秒)
if time left
spin remainder of time/*对于准确度,小*/
/*实际网络传输*/
Send batch of batch_size blocks
delay=current time in microseconds-last_sent
last_sent=current time in microseconds
/*计算睡眠时间和滞后*/
if IPD>delay
sleeptime=IPD-delay
if lagbehind>sleeptime
lagbehind=lagbehind-sleeptime
sleeptime=0
else
sleeptime=sleeptime-lagbehind
lagbehind=0
else
sleeptime=0
lagbehind=lagbehind+(delay-IPD)
if lagbehind>100*IPD
lagbehind=100*IPD
一些实施方案也对高发射率提供与路径延迟和包丢失无关的保持高数据传输效率的方法。
为了避免肯定应答可靠性算法的传输速度瓶颈,一些根据本发明主题的方法使用诸如用户数据包协议(“UDP”)等不可靠传输信道,其不提供发射率抑制或丢失数据恢复。这些方法通过实现它们自己的重新传输丢失数据的算法来获得可靠性。与延迟或重新排序相反,该重新传输算法准确地确定数据块在原始源和最终目的之间真正“丢失”的时间,并因而为高发射速度获得与端对端路径延迟和包丢失无关的稳定且高的效率。重新传输算法允许将高发射速度和有效吞吐量、不变量与高往返时间结合,诸如长距离洲际网络、高随机包丢失,诸如在一些无线媒介上、以及可变的延迟和包丢失率,诸如被重负载拥塞的公共因特网链路。
重新传输算法的一些实施方案使用“否定应答”。否定应答是接收器只通知发送器丢失块,并且发送器相应地重新传输。
本发明主题的一些实施方案连续采样路径往返时间,并且使用预测估计器函数来准确地预测往返时间,以及确定丢失块真正丢失的时间和应重新传输的时间。重新传输请求既不能过早也不能太迟,过早就保持稳定性,过迟就降低了效率。对于高发射率,有效接收的数据速率是固定的并且等于发射率减去路径的包丢失率。因而,即使以具有高丢失和可变延迟的链路上的高速度,也实现了高传输效率和高带宽利用。
可以对最佳重新传输请求算法的问题进行建模。例如,给定路径发射率Ri(t),对于接近100%的有效传输,有效数据率Ru(t)应等于Ri(t)减去包丢失率P(t)乘以Ri(t):
高效率→Ru(t)≈Ri(t)-P(t)*Ri(t)
就近乎100%利用任意快速网络而言,这必须将Ri范围保持在从每秒几千比特到任意高速(每秒1吉比特+)。
为了获得这一基本最佳模型,丢失块的重新传输请求应等待块流失、潜在的延迟或重新排序、接收恰好足够长的时间,并且不长于给定发送器目标发射率Ri的向发送器发送重新传输请求和接收响应的时间。
尽管不能“先验”(a priori)确定确切的等待时间,但是可以通过连续测量路径往返时间以及使用一类预测估计方程来将其估计到高准确度,所述一类预测估计方程被公知为预测将来路径往返时间的递归预测误差或随机坡度函数。本发明主题的一些实施方案包括在基于块的数据传输系统中的这一应用,以准确地估计路径往返时间并且计算等待请求重新传输的时间。这些实施方案也实现了高传输效率。
在一些实施方案中,重新传输调度包括准确预测路径往返时间、准确采样当前的往返时间以及基于预测的路径往返时间的高性能重新传输调度程序。
对于准确的重新传输超时(RTO),通过用于发送重新传输请求和接收重新传输数据块的时间标度准确预测路径往返时间的进展是必要的。本发明主题的各种实施方案通过采样完全传输路径的往返时间来计算RTT预测,除了数据块在网络上传播的时间之外,其还包括发送器处理时间,例如,搜索重新传输数据结构和从磁盘重新读取块的时间。在这样的实施方案中,发送器端的处理算法不随重新传输请求的数目而变化,并且因而可以安全地将其计算在往返时间预测中。
此外,一些这样的实施方案根据所采样的往返时间计算平均路径往返时间(“光滑RTT”或“SRTT”)的估计,并且根据RTT采样和光滑RTT之间的差别导出延迟变化(“RTT变化”)。然后,基于光滑RTT和RTT变化计算所预测的网络延迟。
一旦接收到和计算出新RTT采样(RTTi),按照下面的公式计算光滑RTT(“SRTT”)的值:
SRTTi+1=SRTTi+γ*(RTTi-SRTTi)
γ是确定新光滑RTT估计中当前RTT采样所占权重多少的增益因子。RTTi与SRTTi之间的差别表示以前预测中的误差,由预测中的一些随机误差以及由于以前差的估计导致的一些误差组成。随着时间的推移,随机误差分量取消,并且由于差的估计导致的误差将该估计推进到“实际”平均。因而,小增益因子确保特定的SRTT受随机误差影响不太大。一个实施方案使用了值为1/8的增益因子γ。
考虑到SRTT估计在真实平均值附近的振荡,按照下面的公式计算RTT变化(VRTT):
VRTTi+1=VRTTi+η*|RTTi-SRTTi|
其中,η是衰减因子。一个实施方案使用了值为1/4的衰减因子η。
按照下面的公式计算预测的RTT(=RTO):
RTOi+1=SRTTi+1+1/η*VRTTi+1
在一种实现中,RTO值的范围也受典型网络的实际往返限制所约束。
网络延迟预测中的另一个因子是RTT采样频率。对于一些实施方案中使用的传输频率范围(20Kbps-1Gbps),可以将采样周期设置为10毫秒。
预测的RTT(=RTO)的准确度取决于采样的RTT的准确度。接收器使用由操作系统提供的最佳时钟机制产生准确的“时钟记号”。在发送重新传输请求之前立即产生记号,并将其嵌在重新传输请求PDU中,该请求经网络传送到发送器。当发送器准备重新传输相应块时,其将时钟记号嵌入数据PDU,并向接收器发送它。一旦接收到包含时钟记号的数据PDU,接收器就通过从当前的时钟减去接收的时钟记号来确定路径RTT。因为该方法使用从操作系统可获得的最高精度的时钟机制,并且包括发送器上的处理时间,所以该方法是准确的。
否定应答(“NACK”)重新传输请求的接收器必须处理块重新传输的请求。下面描述处理块重新传输请求、检测丢失的块、请求重新传输丢失的块以及当接收到所请求的块时取消待处理的重新传输请求的实施方案。
根据本发明主题的一些实施方案将数据源中的每个块顺序地编号为从1到N,其中N=文件大小/块大小[如果文件大小除以模块大小的余数>0,则+1]。其它的实施方案使用不同的其它方法来以序列方式识别各个块。
发送器将块序列号添加到每个协议数据单元(“PDU”)中的有效载荷。当接收器接收到具有序列号大于期望的下一序列号的块时,接收器就检测丢失的块。因为可以不按次序接收块,所以接收器不立即请求重新传输丢失的块,而是在一个RTO后调度重新传输的第一请求。这允许实时重新排序要接收的块,而不通过过早地请求重新传输来创建复制传输。
接收器存储具有它们到期的准确绝对时间的所有待处理的重新传输请求。通过用RTT测量的准确度上舍入到期时间值来计算该时间,以确保所计算的到期时间不小于由于测量误差导致的理论正确值。
Time due[millisec]=Time loss detected[millisec]+
RTO at detection time[millisec]+
RTT measurement precision[millisec]
一旦接收器向发送器发送重新传输请求,则在利用相同方法计算的到期时间调度重新传输的后续请求。因此,一旦检测到丢失块,则总是存在其重新传输的待处理请求,直到接收到块并且取消当前待处理的重新传输。
准确的路径往返时间预测要求发送和处理重新传输请求的开销不随重新传输数目而变化,并且不加重数据丢失。对于通过不利的网络条件进行高速传输来说,重新传输数目可以很大。各种实施方案包括许多元件,即使对于很大数目的重新传输,这些元件也能确保发送器和接收器上接近固定的处理时间以及最大化成功传递重新传输请求的概率。
在这样的实施方案中,当接收到重新传输的块时,从调度程序检索并取消该待处理的重新传输请求。当丢失很高时(重新传输数目大),如果检索方法与重新传输数成正比则这可能是代价大的操作。这些实施方案使用的检索方法确保在面对高丢失时接近最佳的有效吞吐量的固定访问时间。在接收器上,当最初检测到丢失块时,将其重新传输请求存储在线性阵列中。在重新传输请求中发送其存储位置的索引。在发送器端,将该索引与重新传输请求一起存储。当发送器重新传输块时,将该索引添加到承载的块上,允许接收器在固定时间查找待处理的重新传输,与块的总数无关。
为了避免未完成的重新传输的累积,本实施方案的发送器总是在发送新块之前重新传输任何丢失的块。否则,接收器将累积更多的丢失并且调度更多的重新传输请求,因而导致其本身拥塞崩溃,并且降低文件传输性能。为了重新传输块,发送器必须从源文件重新读取块数据。该寻找-返回-读取操作对于高速率传输来说可能代价较大,并且当包丢失率高以及文件大小大时特别繁重。接收器抑制重新传输请求,以将速率匹配到发送器可以重新发送丢失块的速率,从而发送器端的待处理的重新传输的存储接近固定大小(不随着网络丢失而增长)。
通过半双向介质以及由于尺寸过小的队列资源而导致的半双向性能的网络设备,在接收器到发送器的反向路径上的巨大IP包可能不能到达发送器。这导致发送器继续发送新块,这加速了接收器上的丢失累积的速率,并且立即降低文件的传输性能。
本实施方案的接收器采用下面的防范措施:
(a)给定接收器每单位时间不得不发送的重新传输请求数目,并且发送器不能比该发送速率更快地进行重新传输,接收器在重新传输请求PDU中发送根据发送器的目标速率和重新传输请求率确定的要重新传输的最小块数。
rexs per request/request interval(s)
=MIN (target_rate(bps)/block_size(bits),
rex_request rate(rex/s))*req_interval
除了下面的特殊情况外,请求间隔是固定的,它等于重新传输计时器的分辨率(在当前的实现中是10ms):
如果发送器的目标速率很小,使得最小请求速率会产生每请求小于1个rex(重新传输),时间间隔延长到每请求1个rex所需的最小间隔。
minimum request interval=block size(bits)/target rate(bits/s)
(b)重新传输请求的最大大小是由应用配置的,并且默认将其设置为小于最小典型网络MTU(1492字节)。
在文件传输速率接近磁盘读/写吞吐量的实施方案中,磁盘I/O性能可能变成瓶颈。在这样的实施方案中的发送器通过总是重新发送最接近最初开始的文件的块来缓解磁盘查找。这允许发送器顺序地读取块来重新传输,并且允许接收器顺序地写出所接收的块。在发送器端,待处理的重新传输存储在分类数据结构中:改进的Red Black Tree,以存储通过编号排序的待处理的重新传输的序列号。Red Black Tree是经典的二进制树数据结构,并且在计算机科学文献中很好地被描述,所以在本说明书中将不再进行描述。块序列号是树中的节点主键。
基于仅需要检索最小块号(最小值)的事实,已经改进了Red BlackTree以提供接近固定时间的检索。插入时间是定时Red Black Tree的时间。
改进的Red Black Tree提供下列单元:
Insert_block(block_seq_number)
Retrieve_minimum_block()
Red Black Tree跟踪具有最小序列号的节点,其被称为当前最小节点。一旦插入,跟踪最小节点就很普通的:知道当前的最小号,如果要插入的块比当前最小节点的序列号小,则将其变为最小节点。如果不是,则当前的最小节点不变。
一旦检索,就从数中删除最小节点并将其返回到应用,发现并存储新的最小节点。在支持用于发现新的最小节点的算法中,下面的命题是正确的:
-当前最小节点不具有左派生(或左派生具有比最小节点小的主键)
-当前最小节点是其父节点的左派生(或其父节点具有比最小节点小的主键)
-以当前最小节点的右派生为根的子树具有比当前最小节点的父节点的主键小的所有主键,以及其它的树主键
为了发现“下一个”最小节点,在从树删去当前的最小节点前,改进的Red Black Tree使用下列算法:
如果当前最小节点没有右派生,那么下一个最小节点是其父节点。
否则,下一个最小节点属于以当前最小节点的右派生为根的子树。
通过上述子树的中序遍历检索下一个最小节点。
下面描述在各种实施方案中使用的对常规Red Black Tree算法的改进。
minimum_seq_number=-1;
Insert_block(block_seq_number)
Regular RBT insert block_seq_number
if minimum_seq_number==-1
minimum_seq_number=block_seq_number
else if block_seq_number<minimum_seq_number
minimum_seq_number=block_seq_number
retrieve_minimum_block()
store minimum node to be returned to caller application
/*发现新的最小节点*/
if current minimum has nor ight descendent
new minimum=current minimum node’s parent
else
find the new minimum by inorder traversal of the
subtree
starting at the current minimum node’s right
remove minimum node from t ree
如果需要进行重新传输,本发明主题的一些实施方案需要随机磁盘访问以及在文件中频繁地往返搜索。尽管一些操作系统提供了高性能的文件系统随机访问,但是其它的操作系统不能很好地处理随机访问,并且由于实质因素降低了磁盘读/写速度。本实施方案中的接收器端是被影响最大的,因为磁盘写入操作代价更大。
在一些实施方案中,接收器实现了磁盘写缓存机制,以最小化随机磁盘访问。存储器缓存的大小与文件传输速率成正比,采用以下计算:
file_cache_size=((transfer_rate[bps]/1800*block_size)/write_size)*write_size
文件缓存的大小与磁盘写大小缓冲“write_size”成正比。磁盘写大小缓冲是盘集群的数倍,其取决于文件系统,可以是512字节、1024字节、4096字节、8192字节或甚至更多的字节。一些实施方案使用64K字节的磁盘写大小。
文件缓存从接收器接收数据块,缓冲该块,并且决定写入盘的时间和数据。在文件传输结束时,缓存将其内容清洗(flush)到磁盘上。文件缓存解决了下面的问题:当数据丢失高时,缓存应尽可能地延迟实际磁盘写入,以向接收器提供接收重新传输的块以及完成包丢失造成的间隙的最大机会。理想地,当已经接收到写入缓冲器中的所有组成块时进行磁盘写入。当数据丢失低时,文件缓存尽可能快地向磁盘写入,而不缓存许多数据,以改进文件传输端的清洗时间。
获得高磁盘缓存性能的方法的一些实施方案包括:在向磁盘写入中使用高水位标记指示器。当写入缓存的数据超过高水位标记时,缓存从该缓存的开始写入磁盘。通过计算接收器的重新传输表大小的运行平均值来实现上述的高丢失与低丢失缓存策略。
计算运行平均值,使得当接收器的表中重新传输数增大时,其值跟踪重新传输数目,当重新传输数减小时,其慢慢向下调整。因而,接收器紧密地跟随向上趋势,滞后跟随向下趋势。
Uptrend:
retransmission_avgi+1=retransmission_avgi+1+1*deltai+1
Downtrend:
retransmission_avgi+1=retransmission_avgi+1+1/16*deltai+1
其中deltai+1=retransmission_samplei+1-retransmission_avgi
根据重新传输运行平均值的对数阶梯函数计算高水位标记。
high_watermark=
catch_size*0.1,if retransmission_avg in[0,100)
catch_size*0.2,if retransmission_avg in[100,200)
catch_size*0.3,if retransmission_avg in[200,400)
catch_size*0.4,if retransmission_avg in[400,900)
catch_size*0.4,if retransmission_avg in[900,1800)
catch_size*0.6,if retransmission_avg in[1800,4000)
catch_size*0.7,if retransmission_avg in[4000,8000)
catch_size*0.8,if retransmission_avg in[8000,18000)
catch_size*0.9,if retransmission_avg in[18000,infinity)
在每次磁盘写入后,重新调整高水位标记。
定义。在任何时间点,网络路径可以具有“可用带宽”或“无可用带宽”。当由当前穿过路径的所有流使用的带宽和小于路径的瓶颈带宽时,路径具有可用带宽,并且一些带宽留下未用。相反地,当所有流需要的网络带宽和大于路径的瓶颈带宽时,路径无可用带宽。这种情况下,带宽需求超过供应,并且带宽必须在链路上的各种流之间共享。“带宽公平”指的是各个流消耗的相对带宽。
本发明主题的各种实施方案提供稳定、有效的数据吞吐量,并且当有可用带宽时出现其它IP数据流就完全利用共享链路上未使用的带宽。在没有可用带宽的网络上,这些实施方案自动地适应与TCP共享的公平带宽的传输速度。
这些实施方案包括自适应速率控制模式,其将网络排队延迟用作网络拥塞(或相反地,可用带宽)的信号。在具有可用带宽的网络上,如低排队延迟发出信号,这些实施方案根据所测排队延迟的函数确定数据发射率。现有技术表明排队延迟提供了准确的拥塞信号,以使TCP的传输吞吐量适应动态变化的可用带宽,并且根据排队延迟的函数施加基于方程的速率控制,以将稳定高TCP吞吐量维持在某些高速网络上的带宽容量。只有当包丢失可忽略(发生包丢失事件吞吐量仍然降低)、以及只有在高带宽网络(不利用低速网络上的带宽)时,现有技术的稳定高吞吐量才适用,并且损害其它TCP流的带宽公平。在有可用带宽的网络上,所提出的实施方案在发生随机丢失事件时不降低吞吐量(向容忍包丢失的可靠UDP传输施加基于延迟的自适应),因而即使在诸如无线网络等具有高包丢失率的介质上也保持高吞吐量。所提出的实施方案也适用改进的缩放参数,以使系统在所有实际网络上(每秒几千比特到每秒几吉比特,不仅仅是高速和包丢失可忽略的网络)能达到完全的带宽利用。此外,所提出的实施方案在没有可用带宽的网络上自动使用对TCP友好的速率。
在没有当前可用带宽的网络上,所提出的实施方案能够通过将所计算的发射率与在相同网络条件下操作的TCP流的比例数匹配而提供相对于其它TCP流的带宽公平吞吐量。现有技术表明可以使用基于方程的速率控制来将UDP传输的发射率与在类似操作条件下的TCP均衡速率匹配,并获得TCP带宽公平,但是会损害稳定性、吞吐量和带宽利用。所提出的系统准确地确定没有可用带宽的时间并获得TCP公平,同时当有可用带宽时维持稳定的、高吞吐量以及完全带宽利用。
现有技术表明,所有TCP实现的拥塞窗口/发送速率x(t)都按下列公式变化:
x(t+1)-x(t)=ki(t)(1-pi(t)/ui(t)) (公式1)
其中
ki(t):=ki(xi(t),Ti(t))and ui(t):=ui(xi(t),Ti(t))
ki(xi,Ti)是增益函数,其确定诸如稳定性和响应速率等动态属性,但是不影响均衡属性。
ui(xi,Ti)是设置诸如均衡速率分配和公平等均衡属性的边际效用函数。
pi(t)是拥塞测量,要么是丢失概率要么是排队延迟。
Ti(t)是往返时间。
为了适应具有可用带宽的网络的发射速率,一些实施方案向可靠UDP传输施加了如现有技术所示的用于TCP的基于延迟的方法。该基于延迟的方法具有边际效用函数:
ui=αi(t)/xi(t)
其中αi(t)是协议参数,xi(t)是当前的速率。
以及所提出的增益函数:
ki=γ*αi(t)和拥塞测量pi,该pi是基本往返时间brtti和当前往返时间srtti之间的差:
pi=brtti-srtti
在一些实施方案中,brtti是传输期间测量的最小往返时间。对于srtti,这些实施方案如下面所解释的测量网络往返时间延迟,而不是路径往返时间,并且使用与计算重新传输的RTO所使用的相同递归预测估计器函数计算光滑往返时间。
为了获得可靠UDP传输的稳定均衡速率,如现有技术中对于TCP所示,该方法力求将发送速率的变化随着时间的推移收敛于(0)。这是通过调整速率的大小和方向获得的,以便拥塞测量与边际函数的比值(pi/ui)收敛于1,使公式1中的x(t+1)-x(t)收敛于0。
根据具有γ=的ui和ki并简化术语表达公式1,速率更新的一般公式是:
Ratei+1=*(Ratei*BaseAvgi+1+Ratei+α) (公式2)
其中:
α=2*10-5*TargetRate*block_size[bit]
BaseAvgi+1=1,如果brtti+1<5并且srtti+1<20
否则,=brtti+1/srtti+1
当brtt和srtt很小时,强制BaseAvg为1,以处理brtt太小而与RTT测量的准确度同数量级的情况。
在一些实施方案中,“是经过宽范围的带宽和可调竞争而收敛的目标速率的线性函数的自适应因子。如现有技术所示,“因子是数据源以速率xi发送的传输路径的队列中必须缓冲以达到均衡的包的数目的表达,并且表示速率控制算法的“竞争”。具有相同“值的流将公平共享带宽,而具有更高α值的流将按比例地占有更多带宽。
在这些实施方案中,不同于现有技术,根据目标速率的线性函数调整“,以允许所有实际网络带宽收敛于稳定目标速率(从100Kbps到1Gbps的范围)。
正如准确估计路径往返时间在确定有效重新传输超时(RTO)中是有用的一样,往返时间的准确测量对于准确计算排队延迟也是有用的。排队延迟只施加到传输路径的网络部分,因此各种实施方案测量第二往返时间值-网络RTT,其不包括在终端主机的处理时间。使用与计算重新传输的RTO所使用的相同递归估计函数,这些实施方案计算网络RTT的光滑加权平均值,并且使用该值计算在速率更新函数中使用的当前网络RTT与基本RTT的比值(公式2)。
为了测量网络延迟,一些实施方案使用类似于测量RTO的路径往返时间的方法。在这些实施方案中,接收器使用由每个操作系统提供的最佳时钟机制产生准确的“时钟标记”。接收器在发送重新传输请求前立即产生该标记,并将它嵌入在重新传输请求中。如果不需要发送重新传输请求(例如,当前向信道中没有丢失时),接收器产生“空”重新传输,以诸如每10ms一次的最小频率发送该“空”重新传输。该时钟标记嵌入在重新传输请求PDU中,并且从接收器到发送器穿过网络。发送器完成用于处理重新传输请求的时间的时间计算,并且将该时间加到在重新传输请求PDU中接收的时钟标记,从而有效地减去处理时间。然后,将时钟标记嵌入在数据PDU中并且将其发送到接收器。一旦接收到包含时钟标记的数据PDU,接收器就通过从当前的时钟减去所接收的时钟标记来确定网络延迟。因为该方法使用从操作系统可获得的最高精度的时钟机制并且考虑了发送器处理请求的时间,所以该方法是准确的。
一些实施方案也含有在没有可用带宽的网络上与任何出现网络拥塞的TCP实现公平或按比例竞争共享带宽的性能。这些实施方案通过计算所测网络条件下(例如,作为网络延迟和/或包丢失的函数)的一个TCP流的稳态速率来同等地或以可配置的比例与任何兼容TCP的实现(即,根据之前介绍的公式1变化的任何协议)共享带宽。这些实施方案使用排队延迟作为没有带宽可用的信号并且在有可用带宽的链路上不牺牲完全带宽利用,同时保证在当前没有可用带宽的链路上的可配置公平。
如现有技术所示,利用所有TCP实现的发送速率根据公式(1)(如上所述)进展的事实:
x(t+1)-x(t)=ki(t)(1-pi(t)/ui(t))(公式1)
可以通过设置pi(t)/ui(t)=1发现用于基于TCP实现的任何丢失或延迟的均衡速率的表示。
所提出的实施方案使用如公式3所示的基于延迟的拥塞算法。
Xi=αri/srtti-brtti (公式3)
如现有技术所示,在公式4中表示了最普遍配置的TCP实现的均衡速率:
Xi=αri/rtti*p^0.5(公式4)
其中αri是TCP Reno协议参数,其取决于常量和MTU大小。
在一些所提出的实施方案中,均衡两个均衡速率,以根据公式5中用于具体TCP的排队延迟和均衡速率函数导出自适应参数α。
αi=(srtti-brtti)*αi/(rtti*pi^0.5) (公式5)
然后,使用所导出的α计算带宽公平速率(使用公式3),意味着等于当前所测网络参数(例如,往返时间和/或包丢失)的TCP速率。已描述了准确测量往返时间的方法。可以以许多方式测量包丢失率,诸如使用估计加权运动平均值。
注意,可以应用如配置这些TCP相同的方法,以将TCP的均衡速率与不同的响应函数匹配,例如高速TCP或可升级的TCP:
High-speed TCP:Xi=αhi/Ti*pi^0.84
Scalable TCP:Xi=αsi/Ti*pi
根据本发明主题的一些实施方案的速率控制功能包括两个主要部分:发现当有“拥塞”(没有可用带宽)时使速率等于根据用于带宽公平的排队延迟、包丢失和往返时间的TCP速率的α因子;以及使用排队延迟准确确定没有拥塞的时间,以发送进入TCP友好状态的信号。这些实施方案通过使用两个状态机确定使用TCP友好速率的拥塞条件,所述两个状态机运行在根据本发明主题的自适应“x模式”(当带宽可用时,利用未使用的带宽)以及TCP模式(当没有带宽可用时的公平)。
这些实施方案只有当存在拥塞时才进入TCP友好模式,并且只有当拥塞结束时才离开TCP友好模式。这些实施方案使用滞后模型来确定切换模式的时间。如果往返时间增加并且排队延迟比有意义的基本rtt大许多,则进入TCP模式。一旦处于TCP模式,这样的系统就停留在TCP模式,直到rtt降低并且排队延迟足够接近基本rtt,以表示排队已真正下降。
用实验方法确定一些实施方案中使用的具体参数:
假设drtt=srtt-brtt-10.
-初始状态是x模式
-在x模式:如果srtt从最后采样增加,并且drtt>0.2*brtt,则切换到TCP模式,否则停留在x模式
-在TCP模式:如果srtt从最后采样降低并且drtt<0.5*brtt,则切换到x模式,否则停留在TCP模式
该方法提供了通过不同网络条件的并发流情况的非常好的结果。
速率控制模型的参数向应用提供了可调的“控制调节”。将α暴露为可配置参数允许在进行传输时改变目标速率或竞争。
该应用可以相对于多个(和多种)TCP流设置其竞争,诸如与一个标准TCP流、或两个其它标准TCP流等价的速率。而且,该应用可以选择具体的模式,诸如“细流(trickle)”模式,其中当与TCP共享时流全部返回到最小阈值,而当单独运行时,上升到占用整个带宽。
一些实施方案通过只要没有其它网络活动就允许数据传输利用整个带宽来引入高效率细流传输,并且当检测到网络活动则自动返回到非常低的速率。通过以自适应速率模式运行传输并将竞争因子设置得非常低,当以无拥塞模式运行时,流将利用整个可用带宽,并且当进入拥塞模式时,流将完全返回。在联合中,传输应用可以为该传输设置最小的速率阈值,以保证传输时间。细流应用的用户可以实时(on-the-fly)改变最小阈值,交换传输时的网络带宽。
一些实施方案包括可选的加密元件,以实时加密和解密数据块。
在开始传输时,使用诸如SSH或SSL/TLS等已创建的方法利用远程终端建立保密TCP信道。在这样的实施方案中的接收器产生用户给定的可配置密码(加密算法)的随机对称加密密钥,并且使用加密信道与发送器交换它。在一些实施方案中,终端可以决定周期地改变加密密钥,并且通过加密信道交换新密钥。发送器加密每个数据块,以保证数据的机密性,并且增加消息认证码,以保证数据的认证。在各种实施方案中将该方法提供为可选项,诸如应用级别的数据传输应用。该方法向应用提供了通过诸如因特网等公共、不安全的网络安全传输数据的方法。
一些实施方案也提供了控制和监控文件传输的能力。这些实施方案提供了用于管理的TCP套接字接口,使得管理器可以在与被管理的传输终端相同或不同的计算机上运行。该接口允许控制和监控操作,诸如开始和停止传输、实时改变传输参数、暂停和继续传输、并且实时改变诸如使能或无效自适应速率模式等传输参数、改变竞争的能力。控制和监控操作也包括诸如读取基本传输统计、读取进行的下载所必要的传输统计以及读取诸如重新传输数据结构参数、磁盘写入统计和自适应速率参数等FASP特定统计的性能的操作。该接口是将各种传输实施方案元件集成到应用中的机制。该接口也允许应用实现诸如优先级和带宽利用管理等传输策略。
一些实施方案提供了应用级别可靠的UDP协议,以允许应用改变正在进行的传输的传输速率。使用管理接口的传输管理器控制包括在数据传输中的两个终端中的一个。当发送器和接收器被相同的传输管理器控制时,它们具有专用的传输线程,允许与传输管理器交换监控和控制消息,而与数据处理线程无关。当接收控制命令时,诸如实时速率变化,发送器和接收器的专用管理线程就存储新值,并且主数据处理线程定期地查询和获得该新值。
如果管理器控制接收器,则管理器向它传递期望的最小或最大速率阈值。接收器使用该新值计算自适应速率模式需要的目标速率,或如果以固定速率模式运行则将目标速率设置为最大阈值。接收器在周期统计消息中向发送器发送计算的或设置的目标速率,并且发送器服从该目标速率。
如果管理器控制发送器,则管理器向它传递期望的最小或最大速率阈值。如果以固定速率模式运行,则发送器将使用新速率作为其固定目标速率,而不管接收器在统计消息中请求的目标速率。如果以自适应模式运行,则发送器存储管理器设置的最小和最大速率,并且将它们与接收器请求的目标速率进行比较。如果接收器请求的目标速率大于最大速率阈值,则发送器将其目标速率设置为最大速率阈值。如果接收器请求的目标速率小于最小速率阈值,则发送器将其目标速率阈值设置为最小阈值。否则,发送器将其目标速率设置为接收器请求的目标速率。
根据本发明主题的各种实施方案假设数据传输的可预测本性,用户可以选择设置传输时间,而不是传输速率。应用实施方案可以允许用户设置传输时间或到达的估计时间,并且计算满足其所需的目标速率。然后,传输管理器可以如上述实时设置目标速率。
暂停正在进行的传输是实时设置目标速率的特定情况(将速率设置为0),但是其需要发送器和接收器都完全停止发送或尝试接收数据。该特征对于未计划的带宽优先级是有用的。为了暂停,传输管理器将目标速率或自适应速率模式中的最大速率阈值设置为0。发送器从传输管理器或通过统计消息从接收器了解到新速率值。一旦发送器检测到该特殊情况,发送器就停止发送数据,并且等待传输管理器将目标速率设置为比0大的值。如果传输管理器控制接收器,则接收器直接了解到设置为0的新速率。如果传输管理器控制发送器,则发送器向接收器发送控制消息,以通知它进入“暂停”状态。在一些实施方案中,重要的是,接收器意识到“暂停”状态,以避免触发数据接收超时。
传输管理器通过管理接口向发送器或接收器传递速率控制模式设置(固定速率、自适应速率和带宽竞争)。如果传输管理器控制接收器,接收器就存储和实现新速率控制模式。接收器通过统计或控制消息向发送器发送固定或计算的目标速率。如果传输管理器控制发送器,则发送器存储该新设置,并通过控制消息将它发送到接收器。在一个实施方案中,可以根据多个标准TCP竞争表示带宽竞争。一些实施方案包括支持相对于标准TCP和其它TCP的竞争连续按比例增减的能力。当流类型与相对于流类型“拨号”竞争值的连续索引兼容时,这可以通过管理接口暴露给终端用户。
根据OSI协议组,本发明主题的一些实施方案提供了集成的数据传输层、会话层以及服务层协议。
各种实施方案包括诸如SSH和SCP等在操作系统文件传输框架内的集成。SSH提供了用户认证和密钥交换框架。如果运行在可选的保密模式,一些实施方案使用该框架来创建加密密钥。SCP为远程文件复制提供了实际的用户接口。一些实施方案包括与SCP的集成,作为到TCP的替代的、高性能数据路径。
一些实施方案存储传输元数据,允许继续传输已经传输的没有数据浪费或具有最小数据浪费的文件。可以从存储相同文件的任何发送器而不必是从相同的发送器继续该传输。这允许配置冗余系统,其中当备份发送器或连接路由可用时,应用可以在发送器系统或其连接出现故障后继续进行。该继续服务为几个层提供了完整性校验、平衡完整保证和验证时间(验证时间再次计算总的端对端传输速度)。
基于块的传输系统、方法和这里描述的软件的基于目标速率的特性,与基于方程的速率控制一起,提供了包括传输策略的实施方案。一些这样的传输策略涉及带宽分配、优先级和文件传输的手工控制。
a)带宽分配策略
假设组织具有多个位置,并且在这些位置之间具有网络连接容量,则管理者或带宽管理应用可以确定不同文件传输应用之间的网络容量的分配。可以将每个流的最大传输速率传递给文件传输应用并且实施该最大传输速率。可以在文件传输开始前或进行中传递传输速率容量(cap)。
对于时间驱动的带宽分配,当文件传输不得不满足某个传输时间时,一个实施方案允许设置最小传输速率。该流将完全表现为出现拥塞,但是不慢于最小传输速率。这以不公平地强制剩余带宽完成所有其它传输为代价保证了最小传递时间。
b)优先级策略
一些实施方案可以将优先级级别与速率控制竞争因子相关联。因而,将动态地为高优先级传输分配更多的带宽。在优先级的极端情况下,当与高优先级传输竞争时,可将低优先级传输配置为完全停止。这也可以通过将细流传输优先级设置为最低级别允许细流传输对其它传输没有影响,从而在出现任何其它通信时停止。
c)文件传输的手动控制策略
一些实施方案提供的管理接口允许用户或管理者实时改变传输参数。这包括暂停传输,以允许其它传输运行的更快,以及减慢或加速正在进行的传输。
一些实施方案将下面的参数暴露给应用:目标速率(或自适应速率控制的最大速率)、最小速率(用于自适应速率控制)以及自适应因子。可以在开始传输或修改正在进行的传输前设置这些参数。基于这些参数,应用可以智能地控制文件传输,以获得:
●通过指定固定速率控制和提供目标速率而以固定速率进行文件传输。
●以链路容量进行文件传输,但是通过指定自适应速率控制和提供大于或等于链路容量的最大速率在出现竞争通信时很好地适应。
●以给定速率进行文件传输,但是通过指定自适应速率控制和提供最小速率在出现拥塞时适应下降到最小速率。该流将适应与竞争通信共享链路,但是其速率将不低于所指定的最小值,因而保证传递时间。
●以链路容量进行文件传输,但是通过自适应速率控制和为自适应因子提供最小值而不影响任何竞争通信。该流将以链路容量运行,但是在出现竞争通信时将停止,因而根本不影响正常的网络活动。这可以用于有效的细流传输。
通过允许应用改变正在进行的传输的传输速率,应用可以通过将目标速率设置为零而暂停和继续传输,并且然后返回到非零值。
一些实施方案也提供了智能的、基于块的缓存服务。这允许这些实施方案确定是否已向接收器系统传输文件段,并且重新使用该缓存数据而不是通过网络重新传输它。该缓存服务向几个层提供了完整性校验。完整性校验的类型可以是应用指定的,或由FASP使用最优化功能自动确定的。最优化功能对比网络容量和传输排队考虑完整性验证时间。如果传输比本地完整性验证快,则缓存服务选择再次传输该数据。否则,重新使用本地缓存的数据。
一些进一步的实施方案提供了所有必要的监控和控制服务,以允许应用实现双侧流水线数据传输,也称为渐进下载。双侧数据传输包括一个传输终端,其接收数据同时向第三传输终端发送相同数据或毁灭数据。双侧流水线传输的实施例包括下载媒体文件同时将其输入到媒体播放器的应用,或代表用户下载文件并将文件存储在缓存同时向用户传递它的缓存应用。
一个这样的实施方案包括下面的一种方法:通过以期望的速率开始从A向B传输数据,在B上暴露有效接收速率、丢失率以及接收的临近数据的数量,从文件的开头开始,而获得流水线数据传输。该方法还包括基于B上所暴露的数据和从B向C的期望传输速率确定从B向C开始传输的时间。该方法也包括在B上暴露从B向C传输的有效速率和发送的数据量。基于该信息,该方法可以决定流水线功能是否适当。在从B到C的传输先于从在A到B的传输的情况下,该方法可以减慢或甚至暂停从B到C的传输。此外,该方法包括暴露允许请求从B到C的传输的最小块数。这允许B上的方法丢弃到那个点的数据,这在存储有限时是有用的。
一些实施方案包括使用参考来识别和传输文件。传输端点可以基于具体的参考下载或上传文件或目录。在各种实施方案中,所述参考包括远程文件或目录的识别,诸如传输速率、自适应速率控制以及加密等传输参数。
参考的一个示例格式是:
fast://<server-name>/<path>[?<option>&<option>...]
<server-name>是远程机器名(FQDN)或IP地址。
<path>可以指向目录或文件。
一个或多个下列选项对于各种实施方案中的参考是可用的:
xfer=up|down Up表示在路径表示目标目录情况下的上传。
auth=yes|no 如果设置为yes,则传输要求用户认证。
enc=yes|no|any 如果设置为yes,则强制下载被加密,如果设置为
no,则强制下载不加密。如果设置为any或未出现,
则用户可以选择加密或不加密。
maxrate=<val> 将最大允许速率设置为<val>Kbps。用户可以选择高
达该值的传输速率。
defrate=<val> 将默认速率设置为<val>Kbps。用户可以选择高达最
大允许值的另一速率。
adapt=yes|no 如果设置为yes,使用自适应速率控制
port=<val> 将UDP端口设置为<va l>。
sign=<val> 参考字符串的签名,作为确保完整性的安全方法。
通过参考服务提供传输,可以容易地将FASP集成到诸如web下载或上传、具有FASP下载参考的邮件附件替换、资产管理系统的登记和结账等应用中。本发明主题的一些示例实施方案利用UDP运送块数据有效载荷。然而,实际上可以利用任何传输或网络层机制实现相同的目的。例如,替代的传输和网络层可以包括用户定义的经过IP的传输协议或终端上的改进TCP组。可以改进终端上的TCP组,以作为类似UDP,例如,没有流控制或重新传输。可以通过能够提供创建防火墙设置的能力的网络将块发送为TCP包,因而避免了用于UPD的特定防火墙和入侵检测。其它替代的传输包括非IP网络,提供类似于IP的服务:“最佳效果”无连接路由和在两个或多个包括在数据传输操作中的终端之间传递包。这样的网络包括卫星、分组无线、点对点或广播无线网络以及ATM。
一些实施方案的结构是两层。这样的实施方案中的第一层提供协议,该协议向应用提供基于块的文件传输服务。第二层是构建在协议上的最小文件传输应用。
然而,该结构的变化可以包括将系统和方法实现为操作系统的一部分,驱动器、内核模块或单片操作系统的简化部分。其它的变化包括将该主题实现在单片数据传输应用中(即,单层方法)。
其它实施方案包括使用透明的或不透明的拦截代理,以拦截现有的TCP传输并根据这里描述的各种元件通过网络向远端的代理传输它,所述远端的代理使用TCP向TCP应用的远端传输数据。该拦截代理可以是在终端机器上可运行的软件块、在文件或应用服务器机器上运行的软件块或连接到网络上的硬件设备。进一步的实施方案包括网络文件系统中的主题。另一个实施方案包括拥有有效批量传输的无线或卫星网络的应用专用网关。
一些实施方案包括通过调整一些协议参数来获得可靠性、性能、安全和可管理性的方法和算法。依据网络和操作系统环境设置这些参数的值。通过操纵这些参数或计算它们的方式来实现可靠性、性能、安全和可管理性。这些参数包括:
●块大小
●重新传输超时参数γ和η
●文件缓存大小
●文件缓存低和高水位标记
●文件缓存重新传输平均值
●速率控制FASP和TCP兼容模式参数α
●速率控制基本平均值步骤功能参数
●速率控制参数C
●用于在FASP和TCP模式之间状态切换的速率控制参数因子
重点强调的是,提供了摘要,以符合要求摘要的37C.F.R§1.72(b),所述摘要允许读者快速确定技术公开的特征和要点。应当理解到,提交的该摘要不用于解释或限制权利要求的范围或含意。
对于本领域技术人员,容易理解的是,在不背离如所附权利要求和其合法等价物中表示的本发明主题的范围的情况下,可以对细节、材料以及为解释本发明主题的特性而描述和说明的各部分调度和方法阶段进行各种其它改变。
Claims (54)
1.一种包括发送器和接收器的数据传输系统,用于通过所述发送器和接收器之间的网络提供稳定、可预测以及有效的数据传输,所述数据传输系统包括:
发射率输入装置,用于接收发射率;以及
可靠性装置,用于以所述发射率有效地传输数据,该可靠性装置将数据分成块,每个数据块具有顺序排序的号,该可靠性装置允许无序地传递块,该可靠性装置包括用于识别并重新传输丢失块的重新传输装置,
其中该可靠性装置获得有效吞吐量,该有效吞吐量对于任何发射率基本等于接收率,并且与可能产生传递延迟或数据丢失的网络条件和终端条件无关。
2.如权利要求1所述的数据传输系统,其中所述发射率输入装置接收固定发射率。
3.如权利要求1所述的数据传输系统,其中所述发射率输入装置接收可变发射率。
4.如权利要求1所述的数据传输系统,其中所述发射率输入装置接收由速率控制处理基于测量发送器和接收器之间的网络拥塞确定的发射率。
5.如权利要求4所述的数据传输系统,其中所述速率控制处理包括排队延迟测量装置,所述排队延迟测量装置确定网络往返时间,以确定速率控制处理的竞争。
6.如权利要求5所述的数据传输系统,其中所述速率控制处理适于当排队延迟表示网络拥塞时稳定在实际等于兼容TCP流的速率。
7.如权利要求1所述的数据传输系统,包括路径往返时间预测器,用于准确预测往返时间,以识别丢失块。
8.如权利要求7所述的数据传输系统,其中所述路径往返预测器适于执行预测往返时间的Van Jacobson预测。
9.如权利要求1所述的数据传输系统,其中重新传输装置使用具有基本固定时间检索的改进Red Black树,以存储通过编号排序的重新传输的序列号。
10.如权利要求1所述的数据传输系统,还包括磁盘写缓存机制,以最小化对磁盘的随机访问,该机制使用如进行重新传输表的平均值大小运算计算的高水位标记。
11.一种在与数据源通信的发送器和接收器之间进行数据传输的方法,该方法包括:
将来自数据源的数据分成一个或多个块;
将所述一个或多个块的每一个块与序列标识号相关联;
接收传输数据块的发射率;
从识别一个或多个丢失块的接收器接收重新传输请求,该重新传输请求基于用于识别丢失块的预测路径往返超时,并且从接收器发送,以避免冗余重新传输请求,并且是以与发射率相当的速率;以及
以发射率传输数据,该数据包括紧随所述一个或多个块的剩余块的重新传输请求中识别的丢失块,该传输允许数据块的非序列传输,
其中该方法获得无论发射率如何都基本等于接收率并且与可能产生传递延迟或数据丢失的网络条件和终端条件无关的有效吞吐量。
12.如权利要求11所述的方法,其中所述接收发射率包括接收固定发射率。
13.如权利要求11所述的方法,其中所述接收发射率包括接收可变发射率。
14.如权利要求11所述的方法,其中所述接收发射率包括接收由速率控制处理基于测量发送器和接收器之间的网络路径拥塞确定的发射率。
15.如权利要求14所述的方法,其中接收由速率控制处理确定的发射率包括使用测量网络往返时间,以确定速率控制处理的竞争。
16.如权利要求15所述的方法,其中所述速率控制处理适于当网络拥塞时稳定在实际等于兼容TCP流的速率。
17.如权利要求11所述的方法,还包括将多个识别号存储在改进的Red Black树中,该树具有对由编号排序的重新传输的基本固定时间检索。
18.一种由接收器从与数据源通信的发送器接收数据的方法,该方法包括:
确定发送器和接收器之间的网络上传输的预测路径往返时间;
从发送器获得接收数据块的发射率;
接收一个或多个数据块,所述一个或多个数据块的每一个块包括识别号;
基于所接收的识别号和根据路径往返时间的函数的接收期望时间来检测丢失的数据块;以及
由接收器识别一个或多个丢失块产生重新传输请求,该重新传输请求基于识别丢失块的预测路径往返超时,该重新传输请求以与发射率相当的速率发送。
19.如权利要求18所述的方法,还包括执行预测路径往返时间的Van Jacobson方法。
20.如权利要求18所述的方法,还包括将要重新传输的块的识别号存储在线性阵列中,其中每个块的线性索引与重新传输请求一起到达发送器,并且与数据块本身一起返回。
21.如权利要求18所述的方法,其中重新传输请求在以对于发射率可能的最小尺寸的包中传播。
22.如权利要求18所述的方法,还包括使用如进行磁盘写缓存处理中的重新传输请求的重新传输表的平均值大小运算计算的高水位标记,以最小化对磁盘的随机访问。
23.一种通过网络从发送器向接收器传输数据的方法,包括:
检测发送器和接收器之间的网络当前可用的未使用带宽,该检测与包丢失无关;
如果未使用的带宽当前可用,则进入带宽利用模式,该带宽利用模式产生基本等于当前未使用带宽的目标发射率,与包丢失无关,并且用于所有可用网络带宽;
如果未使用的带宽当前不可用,则进入带宽共享模式,该带宽共享模式产生由其它正在进行的流消耗的带宽的可配置比例的目标发射率;
实际以目标发射率传输数据;以及
重复所述检测,以更新所述目标发射率。
24.如权利要求23所述的方法,其中所述目标发射率等于目标流类型的稳态速率,所述稳态速率是发送器和接收器之间的网络路径的可测量端对端参数的函数。
25.如权利要求24所述的方法,其中所述可测量端对端参数包括排队延迟。
26.如权利要求24所述的方法,其中所述可测量端对端参数包括往返时间。
27.如权利要求24所述的方法,其中所述可测量端对端参数包括包丢失。
28.如权利要求23所述的方法,其中所述其它正在进行的流包括TCP。
29.如权利要求23所述的方法,其中所述其它正在进行的流包括兼容TCP的实现。
30.如权利要求23所述的方法,其中检测未使用的带宽包括使用默认为带宽利用模式的递归模型,并且测量网络排队延迟中改变的绝对值和方向,以确定是否进入带宽共享模式。
31.如权利要求30的方法,还包括:
测量发送器和接收器之间的传输路径上的往返时间;
测量传输路径上的基本往返时间;以及
根据基本往返时间和所测量往返时间之间的差异计算排队延迟。
32.如权利要求23所述的方法,还包括使用自动带宽容量检测至少初始地创建目标速率。
33.如权利要求23所述的方法,还包括,当没有可用带宽时,提供目标发射率,该目标发射率下降到配置的最小速率,并且当带宽变成可用时上升到完全利用未使用的带宽。
34.如权利要求23所述的方法,还包括提供接口,所述接口允许用户或应用选择为与正在进行的流共享的可缩放内协议带宽确定目标发射率的策略,可选地包括选择目标协议类型、用于与目标协议流的数目相乘的固定或相对因子、以及在目标发射率之上(cap)的最大或最小速率。
35.一种计算通信协议的发射率的方法,包括:
计算是当前目标速率的函数(F)的更新发射率,与包丢失无关,以及相对于目标协议来控制协议的竞争的自适应因子(α),所述更新发射率特征为
Ratei+1=F(Rate_i)+αi(Xi)
其中,自适应因子是目标协议的均衡速率(Xi)的函数,并且Xi是一个或多个所测网络参数的函数,所述参数包括一个或多个往返延迟、包丢失概率或排队延迟。
36.如权利要求35所述的方法,其中Xi是TCP Reno的均衡速率,并且被定义为
Xi=C/(rtti*pi^0.5)
其中rtti是当前网络往返时间,pi是包丢失概率,C是取决于网络MTU的常量。
37.如权利要求35所述的方法,其中Xi是任何TCP兼容流的均衡速率。
38.一种通过网络在发送器和接收器之间通信的装置,包括:
用于在接收器识别丢失块的装置;以及
用于有效地请求重新传输丢失块的装置,以由接收器接收丢失块。
39.一种通过网络在发送器和接收器之间通信的装置,包括:
用于输入发射率的装置;以及
用于以发射率有效并可靠地传输数据的装置,包括重新传输丢失块的装置。
40.一种通过网络在发送器和接收器之间通信的方法,包括:
在接收器识别丢失块;以及
有效地请求重新传输丢失块,以由接收器接收丢失块。
41.一种通过网络在发送器和接收器之间通信的方法,包括:
以发射率有效并可靠地传输数据,包括重新传输丢失块。
42.一种通过网络在发送器和接收器之间通信的装置,包括:
用于检测网络活动性的装置;以及
用于基于来自检测网络活动性的装置的信息调整传输块的发射率的速率控制装置。
43.如权利要求42所述的装置,还包括用于确定控制收敛和可调竞争的自适应因子的装置。
44.如权利要求42所述的装置,还包括用于控制与TCP或TCP兼容流的带宽公平的装置。
45.一种通过网络在发送器和接收器之间通信的装置,包括:
用于确定网络活动性的装置;以及
用于带宽有效的细流数据传输的装置。
46.一种方法,包括:
检测网络活动性;以及
控制有效数据传输系统的速率。
47.一种方法,包括:
检测网络活动性;以及
确定用于控制收敛和可调竞争的自适应因子。
48.一种方法,包括:
检测网络活动性;以及
使用有效数据传输系统来控制TCP或TCP兼容流的带宽公平。
49.一种方法,包括:
检测网络活动性;以及
控制有效细流数据传输。
50.一种通过网络在发送器和接收器之间通信的系统,包括:
用于产生并加密密钥的装置;以及
用于有效数据传输系统的加密和认证装置。
51.一种通过网络在发送器和接收器之间通信的接口,包括:
用于可靠和有效数据传输的管理接口。
52.一种这里基本参考附图描述的数据传输的装置。
53.一种这里基本参考附图描述的数据传输的方法。
54.一种计算机可读介质,包括这里基本参考附图描述的计算机可执行指令。
Applications Claiming Priority (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US63880604P | 2004-12-24 | 2004-12-24 | |
US60/638,806 | 2004-12-24 | ||
US64919705P | 2005-02-01 | 2005-02-01 | |
US64919805P | 2005-02-01 | 2005-02-01 | |
US60/649,198 | 2005-02-01 | ||
US60/649,197 | 2005-02-01 | ||
PCT/US2005/047076 WO2006071866A2 (en) | 2004-12-24 | 2005-12-23 | Bulk data transfer |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110041096.2A Division CN102201977B (zh) | 2004-12-24 | 2005-12-23 | 批量数据传输 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101133599A true CN101133599A (zh) | 2008-02-27 |
CN101133599B CN101133599B (zh) | 2011-04-20 |
Family
ID=36216937
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110041096.2A Active CN102201977B (zh) | 2004-12-24 | 2005-12-23 | 批量数据传输 |
CN2005800447423A Active CN101133599B (zh) | 2004-12-24 | 2005-12-23 | 批量数据传输的方法和系统 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110041096.2A Active CN102201977B (zh) | 2004-12-24 | 2005-12-23 | 批量数据传输 |
Country Status (14)
Country | Link |
---|---|
US (1) | US8085781B2 (zh) |
EP (2) | EP1867110B1 (zh) |
JP (1) | JP4589406B2 (zh) |
CN (2) | CN102201977B (zh) |
AT (1) | ATE457577T1 (zh) |
AU (1) | AU2005322044A1 (zh) |
CA (1) | CA2590965C (zh) |
DE (1) | DE602005019332D1 (zh) |
DK (1) | DK1867110T3 (zh) |
ES (1) | ES2399491T3 (zh) |
HK (2) | HK1111015A1 (zh) |
PL (1) | PL2148479T3 (zh) |
PT (1) | PT2148479E (zh) |
WO (1) | WO2006071866A2 (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103502930A (zh) * | 2011-05-06 | 2014-01-08 | 甲骨文国际公司 | 对复杂事件处理(cep)中的新插入流(istream)操作的支持 |
CN103986744A (zh) * | 2013-11-18 | 2014-08-13 | 四川大学 | 基于吞吐量的文件并行传输方法 |
CN107948010A (zh) * | 2017-11-09 | 2018-04-20 | 郑州云海信息技术有限公司 | 一种网络抓包实现方法、系统及网络设备 |
CN113169896A (zh) * | 2018-12-13 | 2021-07-23 | 亚马逊技术有限公司 | 网络度量的连续校准 |
CN113411228A (zh) * | 2021-06-04 | 2021-09-17 | 网宿科技股份有限公司 | 一种网络状况的确定方法及服务器 |
CN117555829A (zh) * | 2024-01-12 | 2024-02-13 | 中诚华隆计算机技术有限公司 | 一种实现usb设备网络共享的usb重定向系统及方法 |
Families Citing this family (86)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8510468B2 (en) | 2000-04-17 | 2013-08-13 | Ciradence Corporation | Route aware network link acceleration |
US8195823B2 (en) | 2000-04-17 | 2012-06-05 | Circadence Corporation | Dynamic network link acceleration |
US20110128972A1 (en) | 2000-04-17 | 2011-06-02 | Randy Thornton | Peer to peer dynamic network link acceleration |
US8024481B2 (en) * | 2000-04-17 | 2011-09-20 | Circadence Corporation | System and method for reducing traffic and congestion on distributed interactive simulation networks |
US8065399B2 (en) | 2000-04-17 | 2011-11-22 | Circadence Corporation | Automated network infrastructure test and diagnostic system and method therefor |
US8996705B2 (en) | 2000-04-17 | 2015-03-31 | Circadence Corporation | Optimization of enhanced network links |
US7127518B2 (en) | 2000-04-17 | 2006-10-24 | Circadence Corporation | System and method for implementing application functionality within a network infrastructure |
US8898340B2 (en) | 2000-04-17 | 2014-11-25 | Circadence Corporation | Dynamic network link acceleration for network including wireless communication devices |
DE602005019332D1 (de) | 2004-12-24 | 2010-03-25 | Aspera Inc | Massen-Datentransfer |
US8214707B2 (en) | 2007-06-26 | 2012-07-03 | Aspera, Inc. | Method and system for reliable data transfer |
US7500010B2 (en) * | 2005-04-07 | 2009-03-03 | Jeffrey Paul Harrang | Adaptive file delivery system and method |
US8589508B2 (en) * | 2005-04-07 | 2013-11-19 | Opanga Networks, Inc. | System and method for flow control in an adaptive file delivery system |
US20070002736A1 (en) * | 2005-06-16 | 2007-01-04 | Cisco Technology, Inc. | System and method for improving network resource utilization |
US7729240B1 (en) * | 2005-06-30 | 2010-06-01 | Opnet Technologies, Inc. | Method and system for identifying duplicate packets in flow-based network monitoring system |
US7630307B1 (en) * | 2005-08-18 | 2009-12-08 | At&T Intellectual Property Ii, Lp | Arrangement for minimizing data overflow by managing data buffer occupancy, especially suitable for fibre channel environments |
US7653778B2 (en) | 2006-05-08 | 2010-01-26 | Siliconsystems, Inc. | Systems and methods for measuring the useful life of solid-state storage devices |
US9432433B2 (en) | 2006-06-09 | 2016-08-30 | Qualcomm Incorporated | Enhanced block-request streaming system using signaling or block creation |
CN100454903C (zh) * | 2006-08-17 | 2009-01-21 | 华为技术有限公司 | 一种对iub接口进行流量控制的方法 |
JP5016279B2 (ja) | 2006-09-06 | 2012-09-05 | ソニー株式会社 | データ通信システム、データ送信装置およびデータ送信方法 |
US8549236B2 (en) | 2006-12-15 | 2013-10-01 | Siliconsystems, Inc. | Storage subsystem with multiple non-volatile memory arrays to protect against data losses |
US7596643B2 (en) * | 2007-02-07 | 2009-09-29 | Siliconsystems, Inc. | Storage subsystem with configurable buffer |
US8310920B2 (en) * | 2007-03-02 | 2012-11-13 | Saratoga Data Systems, Inc. | Method and system for accelerating transmission of data between network devices |
EP3474592A1 (en) | 2007-06-19 | 2019-04-24 | Optis Cellular Technology, LLC | Methods and systems for scheduling resources in a telecommunication system |
US9667545B2 (en) | 2007-09-04 | 2017-05-30 | International Business Machines Corporation | Method and system for aggregate bandwidth control |
US20090164657A1 (en) * | 2007-12-20 | 2009-06-25 | Microsoft Corporation | Application aware rate control |
US8386667B2 (en) * | 2008-08-26 | 2013-02-26 | Sun Management, Llc | Techniques for managing the transmission and reception of data fragments |
US8631149B2 (en) * | 2008-11-25 | 2014-01-14 | Citrix Systems, Inc. | Systems and methods for object rate limiting |
US8009560B2 (en) * | 2008-12-31 | 2011-08-30 | Microsoft Corporation | Detecting and managing congestion on a shared network link |
US8228800B2 (en) * | 2009-02-03 | 2012-07-24 | Microsoft Corporation | Optimized transport protocol for delay-sensitive data |
JP5342658B2 (ja) | 2009-03-06 | 2013-11-13 | アスペラ,インク. | I/o駆動の速度適応のための方法およびシステム |
CN101520805B (zh) * | 2009-03-25 | 2011-05-11 | 中兴通讯股份有限公司 | 一种分布式文件系统及其文件处理方法 |
US20110128921A1 (en) * | 2009-05-22 | 2011-06-02 | Qualcomm Incorporated | Utility maximization scheduler for broadband wireless communication systems |
CN101924603B (zh) * | 2009-06-09 | 2014-08-20 | 华为技术有限公司 | 数据传输速率的自适应调整方法、装置及系统 |
US9917874B2 (en) | 2009-09-22 | 2018-03-13 | Qualcomm Incorporated | Enhanced block-request streaming using block partitioning or request controls for improved client-side handling |
GB2477515B (en) * | 2010-02-03 | 2012-09-26 | Orbital Multi Media Holdings Corp | Data flow control method and apparatus |
WO2011136705A1 (en) * | 2010-04-26 | 2011-11-03 | Telefonaktiebolaget L M Ericsson (Publ) | Method for setting and adjusting a parameter dependent on a round trip time |
US20120036366A1 (en) * | 2010-08-09 | 2012-02-09 | Microsoft Corporation | Secure and verifiable data handling |
US9516357B2 (en) * | 2010-09-10 | 2016-12-06 | Verizon Patent And Licensing Inc. | Recording variable-quality content stream |
JP5580706B2 (ja) | 2010-09-29 | 2014-08-27 | Kddi株式会社 | 再送制御プロトコルを用いるデータ転送装置、プログラム及び方法 |
EP2439905B1 (en) * | 2010-10-05 | 2013-06-05 | Research In Motion Limited | Data channel set up latency reduction |
US8824288B2 (en) * | 2010-12-06 | 2014-09-02 | Intel Corporation | Communications techniques for bursty noise environments |
US8566336B2 (en) | 2011-03-30 | 2013-10-22 | Splunk Inc. | File identification management and tracking |
US8548961B2 (en) * | 2011-03-30 | 2013-10-01 | Splunk Inc. | System and method for fast file tracking and change monitoring |
US9185043B2 (en) * | 2011-04-08 | 2015-11-10 | Saratoga Data Systems, Inc. | Telecommunications protocol with PID control of data transmission rate |
JP2012257010A (ja) * | 2011-06-08 | 2012-12-27 | Hitachi Ltd | 通信装置、通信方法及び遠隔監視システム |
US8478890B2 (en) * | 2011-07-15 | 2013-07-02 | Damaka, Inc. | System and method for reliable virtual bi-directional data stream communications with single socket point-to-multipoint capability |
EP2761853A4 (en) * | 2011-09-30 | 2015-05-27 | Intel Corp | SOURCE-RATE CONTROL TECHNOLOGY FOR CONNECTED APPLICATION |
US9571406B2 (en) * | 2011-10-25 | 2017-02-14 | Vmware, Inc. | Network congestion management based on communication delay |
KR101243502B1 (ko) * | 2011-10-31 | 2013-03-20 | 삼성에스디에스 주식회사 | 데이터 수신 방법 및 장치 |
US9723063B2 (en) * | 2011-11-28 | 2017-08-01 | Vuclip (Singapore) Pte. Ltd. | Method of determining transport parameters for efficient data transport across a network |
EP2661138A1 (en) * | 2012-05-04 | 2013-11-06 | Panasonic Corporation | Threshold-based and power-efficient scheduling request procedure |
CN103581045A (zh) * | 2012-07-20 | 2014-02-12 | 华为技术有限公司 | 网络文件系统的数据处理方法、装置及系统 |
TWI505699B (zh) * | 2012-11-23 | 2015-10-21 | Inst Information Industry | 資料串流傳輸方法 |
US9977596B2 (en) | 2012-12-27 | 2018-05-22 | Dropbox, Inc. | Predictive models of file access patterns by application and file type |
US10033644B2 (en) | 2013-02-12 | 2018-07-24 | Adara Networks, Inc. | Controlling congestion controlled flows |
US20150026130A1 (en) * | 2013-07-17 | 2015-01-22 | LiveQoS Inc. | Method for efficient management of email attachments |
KR20150071621A (ko) * | 2013-12-18 | 2015-06-26 | 삼성전자주식회사 | 컨텐츠 중심 네트워크에서 라운드 트립 시간을 예측하는 방법 |
CN104348680B (zh) * | 2013-08-08 | 2019-11-12 | 腾讯科技(深圳)有限公司 | 网速检测的方法及装置 |
US9948565B2 (en) | 2013-08-19 | 2018-04-17 | Instart Logic, Inc. | Method and implementation of zero overhead rate controlled (ZORC) information transmission via digital communication link |
WO2015062624A1 (en) * | 2013-10-28 | 2015-05-07 | Longsand Limited | Instant streaming of the latest version of a file |
WO2015160953A2 (en) | 2014-04-16 | 2015-10-22 | Pixia Corp. | Method and system of transmitting data over a network using a communication protocol |
US10089307B2 (en) | 2014-12-31 | 2018-10-02 | International Business Machines Corporation | Scalable distributed data store |
CN104967497B (zh) * | 2015-06-09 | 2019-04-12 | 武汉数字派特科技有限公司 | 一种基于网络通信协议的数据可靠传输方法及升级方法 |
CN105930731B (zh) * | 2015-12-21 | 2018-12-28 | 中国银联股份有限公司 | 一种安全应用ta交互的方法及装置 |
US10154317B2 (en) | 2016-07-05 | 2018-12-11 | BoxCast, LLC | System, method, and protocol for transmission of video and audio data |
US20180025170A1 (en) * | 2016-07-21 | 2018-01-25 | Zyptonite, Inc. | File transfer using an in-browser staging database |
KR102568436B1 (ko) * | 2016-07-28 | 2023-08-21 | 삼성전자 주식회사 | 무선 통신 시스템에서 데이터의 전송 방법 및 장치 |
US10511864B2 (en) | 2016-08-31 | 2019-12-17 | Living As One, Llc | System and method for transcoding media stream |
US11412272B2 (en) | 2016-08-31 | 2022-08-09 | Resi Media Llc | System and method for converting adaptive stream to downloadable media |
CN109218847B (zh) * | 2017-06-30 | 2022-03-04 | 中兴通讯股份有限公司 | 一种下载控制方法、装置以及多媒体终端 |
AU2018319228B2 (en) * | 2017-08-22 | 2023-08-10 | Dejero Labs Inc. | System and method for assessing communication resources |
CN109510690B (zh) | 2017-09-14 | 2020-07-28 | 华为技术有限公司 | 传输报文的方法、网络组件和计算机可读存储介质 |
CN107783847A (zh) * | 2017-09-22 | 2018-03-09 | 平安科技(深圳)有限公司 | 数据发送方法及终端设备 |
US20190104169A1 (en) * | 2017-10-03 | 2019-04-04 | Synology Inc. | Methods and computer program products for transceiving files through networks and apparatuses using the same |
US10439940B2 (en) | 2017-10-19 | 2019-10-08 | Cisco Technology, Inc. | Latency correction between transport layer host and deterministic interface circuit |
CN108809514B (zh) * | 2018-04-23 | 2021-01-12 | 华为技术有限公司 | 一种数据传输方法及相关设备 |
US10637788B2 (en) | 2018-06-26 | 2020-04-28 | International Business Machines Corporation | Stability of delay-based congestion control in a computer network using an alpha-beta filter and round-trip-time predictor |
US11050675B2 (en) | 2019-05-31 | 2021-06-29 | Bae Systems Information And Electronic Systems Integration Inc. | Scheduler for coordination and synchronization of data across low-bandwidth links and method thereof |
CN110471771A (zh) * | 2019-08-16 | 2019-11-19 | 佳源科技有限公司 | 一种配电实时操作系统 |
US11122019B2 (en) * | 2019-09-13 | 2021-09-14 | Oracle International Corporation | Systems and methods for client collaborated migration of live TLS connection |
US11140060B2 (en) * | 2019-11-12 | 2021-10-05 | Hulu, LLC | Dynamic variation of media segment durations for optimization of network round trip times |
WO2021235965A1 (en) * | 2020-05-19 | 2021-11-25 | Huawei Technologies Co., Ltd. | Apparatuses and methods for measuring a transmission channel |
KR102298719B1 (ko) * | 2020-11-10 | 2021-09-07 | 더본테크 주식회사 | 현장 수집 입력 데이터에 기초한 데이터 재가공 시스템 |
CN112653635A (zh) * | 2020-12-23 | 2021-04-13 | 百果园技术(新加坡)有限公司 | 一种拥塞控制算法的改进方法、装置、设备及存储介质 |
CN115022084B (zh) * | 2022-07-18 | 2022-11-25 | 深圳市城市交通规划设计研究中心股份有限公司 | 一种网络隔离网闸数据交换方法及其应用 |
CN117459188B (zh) * | 2023-12-25 | 2024-04-05 | 吉林省吉能电力通信有限公司 | 基于北斗通信技术的电力北斗通信系统及通信方法 |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4422171A (en) | 1980-12-29 | 1983-12-20 | Allied Corporation, Law Department | Method and system for data communication |
US5001628A (en) * | 1987-02-13 | 1991-03-19 | International Business Machines Corporation | Single system image uniquely defining an environment for each user in a data processing system |
US5805920A (en) | 1995-11-13 | 1998-09-08 | Tandem Computers Incorporated | Direct bulk data transfers |
US6078564A (en) * | 1996-08-30 | 2000-06-20 | Lucent Technologies, Inc. | System for improving data throughput of a TCP/IP network connection with slow return channel |
EP0876023A1 (en) * | 1997-04-30 | 1998-11-04 | Sony Corporation | Transmitter and transmitting method, receiver and receiving method, and transceiver and transmitting/receiving method |
US6110382A (en) * | 1997-07-25 | 2000-08-29 | Ultra Fine, Inc. | Automated effluence conditioning and treatment |
EP1163764A1 (en) * | 1999-03-15 | 2001-12-19 | Vocaltec Communications Ltd. | Flow control method and apparatus |
KR100424654B1 (ko) * | 1999-08-02 | 2004-03-24 | 삼성전자주식회사 | 이동 통신시스템에서 라디오링크프로토콜에 따른 데이터 재전송 장치 및 방법 |
US6629285B1 (en) * | 2000-01-04 | 2003-09-30 | Nokia Corporation | Data transmission |
CN1200368C (zh) * | 2000-08-18 | 2005-05-04 | 清华大学 | 一种将tcp用于不可靠传输网络的局域重传方法 |
US7058085B2 (en) * | 2001-03-14 | 2006-06-06 | Nortel Networks Limited | Method and apparatus for transmitting data over a network within a specified time limit |
US6961539B2 (en) * | 2001-08-09 | 2005-11-01 | Hughes Electronics Corporation | Low latency handling of transmission control protocol messages in a broadband satellite communications system |
US7352761B2 (en) * | 2002-06-04 | 2008-04-01 | Lucent Technologies Inc. | Distributing unused allocated bandwidth using a borrow vector |
US20030231661A1 (en) * | 2002-06-18 | 2003-12-18 | General Instrument Corporation | Optimized broadband download for large content |
US7706378B2 (en) * | 2003-03-13 | 2010-04-27 | Sri International | Method and apparatus for processing network packets |
WO2005002120A2 (en) * | 2003-06-12 | 2005-01-06 | California Institute Of Technology | Method and apparatus for network congestion control |
JP4651364B2 (ja) | 2004-11-17 | 2011-03-16 | 富士通株式会社 | 位相調整方法及び装置 |
US8214707B2 (en) * | 2007-06-26 | 2012-07-03 | Aspera, Inc. | Method and system for reliable data transfer |
DE602005019332D1 (de) | 2004-12-24 | 2010-03-25 | Aspera Inc | Massen-Datentransfer |
-
2005
- 2005-12-23 DE DE602005019332T patent/DE602005019332D1/de active Active
- 2005-12-23 CA CA2590965A patent/CA2590965C/en active Active
- 2005-12-23 CN CN201110041096.2A patent/CN102201977B/zh active Active
- 2005-12-23 WO PCT/US2005/047076 patent/WO2006071866A2/en active Application Filing
- 2005-12-23 EP EP05855603A patent/EP1867110B1/en active Active
- 2005-12-23 JP JP2007548581A patent/JP4589406B2/ja active Active
- 2005-12-23 ES ES09175853T patent/ES2399491T3/es active Active
- 2005-12-23 EP EP09175853A patent/EP2148479B1/en active Active
- 2005-12-23 CN CN2005800447423A patent/CN101133599B/zh active Active
- 2005-12-23 DK DK05855603.6T patent/DK1867110T3/da active
- 2005-12-23 PT PT91758532T patent/PT2148479E/pt unknown
- 2005-12-23 AT AT05855603T patent/ATE457577T1/de not_active IP Right Cessation
- 2005-12-23 AU AU2005322044A patent/AU2005322044A1/en not_active Abandoned
- 2005-12-23 US US11/317,663 patent/US8085781B2/en not_active Expired - Fee Related
- 2005-12-23 PL PL09175853T patent/PL2148479T3/pl unknown
-
2008
- 2008-05-13 HK HK08105262.2A patent/HK1111015A1/xx not_active IP Right Cessation
-
2010
- 2010-07-21 HK HK10107057.3A patent/HK1140875A1/xx not_active IP Right Cessation
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103502930A (zh) * | 2011-05-06 | 2014-01-08 | 甲骨文国际公司 | 对复杂事件处理(cep)中的新插入流(istream)操作的支持 |
CN103502930B (zh) * | 2011-05-06 | 2016-11-16 | 甲骨文国际公司 | 对复杂事件处理(cep)中的新插入流(istream)操作的支持 |
CN103986744A (zh) * | 2013-11-18 | 2014-08-13 | 四川大学 | 基于吞吐量的文件并行传输方法 |
CN103986744B (zh) * | 2013-11-18 | 2017-02-08 | 四川大学 | 基于吞吐量的文件并行传输方法 |
CN107948010A (zh) * | 2017-11-09 | 2018-04-20 | 郑州云海信息技术有限公司 | 一种网络抓包实现方法、系统及网络设备 |
CN113169896A (zh) * | 2018-12-13 | 2021-07-23 | 亚马逊技术有限公司 | 网络度量的连续校准 |
CN113169896B (zh) * | 2018-12-13 | 2024-02-27 | 亚马逊技术有限公司 | 网络度量的连续校准 |
CN113411228A (zh) * | 2021-06-04 | 2021-09-17 | 网宿科技股份有限公司 | 一种网络状况的确定方法及服务器 |
CN117555829A (zh) * | 2024-01-12 | 2024-02-13 | 中诚华隆计算机技术有限公司 | 一种实现usb设备网络共享的usb重定向系统及方法 |
CN117555829B (zh) * | 2024-01-12 | 2024-03-22 | 中诚华隆计算机技术有限公司 | 一种实现usb设备网络共享的usb重定向系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CA2590965A1 (en) | 2006-07-06 |
US20060159098A1 (en) | 2006-07-20 |
WO2006071866A3 (en) | 2006-09-08 |
EP2148479B1 (en) | 2012-11-21 |
AU2005322044A1 (en) | 2006-07-06 |
EP2148479A1 (en) | 2010-01-27 |
JP2008526132A (ja) | 2008-07-17 |
HK1140875A1 (en) | 2010-10-22 |
CN102201977A (zh) | 2011-09-28 |
JP4589406B2 (ja) | 2010-12-01 |
CN101133599B (zh) | 2011-04-20 |
ATE457577T1 (de) | 2010-02-15 |
CA2590965C (en) | 2016-05-03 |
ES2399491T3 (es) | 2013-04-01 |
EP1867110A2 (en) | 2007-12-19 |
PL2148479T3 (pl) | 2013-04-30 |
EP1867110B1 (en) | 2010-02-10 |
US8085781B2 (en) | 2011-12-27 |
WO2006071866A2 (en) | 2006-07-06 |
DK1867110T3 (da) | 2010-05-31 |
DE602005019332D1 (de) | 2010-03-25 |
CN102201977B (zh) | 2015-01-21 |
PT2148479E (pt) | 2013-02-20 |
HK1111015A1 (en) | 2008-07-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101133599B (zh) | 批量数据传输的方法和系统 | |
US8996945B2 (en) | Bulk data transfer | |
Kfoury et al. | An exhaustive survey on p4 programmable data plane switches: Taxonomy, applications, challenges, and future trends | |
Cao et al. | Explicit multipath congestion control for data center networks | |
US8601155B2 (en) | Telemetry stream performance analysis and optimization | |
CN101292475B (zh) | 自适应带宽控制的方法和装置 | |
CN100552626C (zh) | 用网络栈同步和上载已卸载网络栈连接的方法 | |
WO2019148563A1 (zh) | 一种数据发送方法、接收方法及装置 | |
Ren et al. | A survey on TCP Incast in data center networks | |
Zhang et al. | Tuning the aggressive TCP behavior for highly concurrent HTTP connections in intra-datacenter | |
US7991905B1 (en) | Adaptively selecting timeouts for streaming media | |
US20130262625A1 (en) | Pipelining for parallel network connections to transmit a digital content stream | |
CN113783942B (zh) | 基于优先分级队列的mpquic数据包快速传输方法和系统 | |
JP2007041899A (ja) | コンテンツの配信装置,コンテンツ配信ネットワークおよびコンテンツ配信方法 | |
AU2014200413B2 (en) | Bulk data transfer | |
Houmkozlis et al. | End-to-end Adaptive Congestion Control in TCP/IP Networks | |
Ghobadi et al. | TCP adaptation framework in data centers | |
Zhang et al. | An optimized BBR for multipath real time video streaming | |
Zhou et al. | A Congestion Control Mechanism for Data Center Networks Based on Named Data Networking | |
Médard et al. | Quality of experience for multimedia communications: Network coding strategies | |
Tseng et al. | An urgency and congestion control scheme for larger-scale TCP incast problem in data center | |
CN116366563A (zh) | 一种数据传输法、系统、电子设备及存储介质 | |
Raghavan et al. | Embracing Packet Loss in Congestion Control | |
Kassa | Efficient cross-layer routing and congestion control architectures for distributed systems |
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 | ||
ASS | Succession or assignment of patent right |
Owner name: INTERNATIONAL BUSINESS MACHINES CORPORATION Free format text: FORMER OWNER: ASPERA INC. Effective date: 20150817 |
|
C41 | Transfer of patent application or patent right or utility model | ||
TR01 | Transfer of patent right |
Effective date of registration: 20150817 Address after: American New York Patentee after: International Business Machines Corp. Address before: American California Patentee before: Aspera Inc. |