CN102656863A - Http 优化、多归属、移动性和优先级 - Google Patents
Http 优化、多归属、移动性和优先级 Download PDFInfo
- Publication number
- CN102656863A CN102656863A CN2010800574947A CN201080057494A CN102656863A CN 102656863 A CN102656863 A CN 102656863A CN 2010800574947 A CN2010800574947 A CN 2010800574947A CN 201080057494 A CN201080057494 A CN 201080057494A CN 102656863 A CN102656863 A CN 102656863A
- Authority
- CN
- China
- Prior art keywords
- parallel
- connection
- pipelined requests
- request
- requests
- 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
- 238000005457 optimization Methods 0.000 title claims description 19
- 238000000034 method Methods 0.000 claims description 62
- 230000004044 response Effects 0.000 claims description 56
- 238000004891 communication Methods 0.000 claims description 34
- 230000008859 change Effects 0.000 claims description 23
- 238000012913 prioritisation Methods 0.000 claims description 12
- 230000006835 compression Effects 0.000 claims description 9
- 238000007906 compression Methods 0.000 claims description 9
- 238000003860 storage Methods 0.000 claims description 9
- 230000000750 progressive effect Effects 0.000 claims description 7
- 238000004590 computer program Methods 0.000 claims description 6
- 238000001514 detection method Methods 0.000 claims 2
- 230000004043 responsiveness Effects 0.000 abstract description 3
- 238000010276 construction Methods 0.000 abstract description 2
- 238000012546 transfer Methods 0.000 abstract description 2
- 238000004422 calculation algorithm Methods 0.000 description 35
- 230000008569 process Effects 0.000 description 22
- 230000005540 biological transmission Effects 0.000 description 16
- 230000008901 benefit Effects 0.000 description 15
- 230000006870 function Effects 0.000 description 14
- 238000005516 engineering process Methods 0.000 description 11
- 239000000463 material Substances 0.000 description 9
- 230000002045 lasting effect Effects 0.000 description 8
- 238000005259 measurement Methods 0.000 description 8
- 239000003795 chemical substances by application Substances 0.000 description 7
- 238000010586 diagram Methods 0.000 description 7
- 230000002708 enhancing effect Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000002474 experimental method Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- VYZAMTAEIAYCRO-UHFFFAOYSA-N Chromium Chemical compound [Cr] VYZAMTAEIAYCRO-UHFFFAOYSA-N 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 238000013383 initial experiment Methods 0.000 description 2
- 238000006116 polymerization reaction Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000005096 rolling process Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 241000271317 Gonystylus bancanus Species 0.000 description 1
- 206010051602 Laziness Diseases 0.000 description 1
- 230000004931 aggregating effect Effects 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 229910052804 chromium Inorganic materials 0.000 description 1
- 239000011651 chromium Substances 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000002950 deficient Effects 0.000 description 1
- 230000006866 deterioration Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W28/00—Network traffic management; Network resource management
- H04W28/02—Traffic management, e.g. flow control or congestion control
- H04W28/06—Optimizing the usage of the radio link, e.g. header compression, information sizing, discarding information
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W76/00—Connection management
- H04W76/10—Connection setup
- H04W76/15—Setup of multiple wireless link connections
- H04W76/16—Involving different core network technologies, e.g. a packet-switched [PS] bearer in combination with a circuit-switched [CS] bearer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
- H04L67/62—Establishing a time schedule for servicing the requests
-
- 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/14—Multichannel or multilink protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W28/00—Network traffic management; Network resource management
- H04W28/02—Traffic management, e.g. flow control or congestion control
- H04W28/08—Load balancing or load distribution
- H04W28/09—Management thereof
- H04W28/0958—Management thereof based on metrics or performance parameters
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W28/00—Network traffic management; Network resource management
- H04W28/02—Traffic management, e.g. flow control or congestion control
- H04W28/10—Flow control between communication endpoints
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W8/00—Network data management
- H04W8/02—Processing of mobility data, e.g. registration information at HLR [Home Location Register] or VLR [Visitor Location Register]; Transfer of mobility data, e.g. between HLR, VLR or external networks
- H04W8/04—Registration at HLR or HSS [Home Subscriber Server]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W80/00—Wireless network protocols or protocol adaptations to wireless operation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W88/00—Devices specially adapted for wireless communication networks, e.g. terminals, base stations or access point devices
- H04W88/02—Terminal devices
- H04W88/06—Terminal devices adapted for operation in multiple networks or having at least two operational modes, e.g. multi-mode terminals
Abstract
将并行超文本传输协议(HTTP)连接和流水线处理相结合,通过实时地改变并行连接和流水线请求的数目使得未完成请求的数目最小并且链路保持被完全利用,克服了增加往返时间(RTT)的影响。HTTP栈中的最优构造和对请求和连接的调度改善了页面加载时间,并且还提供了针对对象优先级变化的更大响应度。解决了在HTTP的应用层上的多归属和移动性。多归属提供了对多个接口(例如,WWAN和WLAN接口)的同时使用,这改善了下载时间,尤其是在接口的可用带宽处于相同的数量级的情况下。移动性提供了随着设备移动而切换连接。多归属和移动性结合起来提供了更平滑的移动性。这样可以在没有服务器或网络支持的情况下提供移动性。
Description
基于35U.S.C.§119要求优先权
本专利申请要求2009年12月18日提交的名为“HTTP Optimization,Multi-Homing,Mobility and Priority”的临时申请No.61/288,119的优先权,该临时申请被转让给本申请的受让人并且在此通过引用明确地并入本文。
对共有未决专利申请的引用
本专利申请与如下共有未决美国专利申请有关:Ramin Rezaiifar等人的“BINDING/AGGREGATING MULTIPLE INTERFACES ATAPPLICATION LAYER”,该申请的代理案号为No.100528U2,该申请与本申请同时递交,已转让给本申请的受让人并且通过引用明确地并入本文。
技术领域
本公开一般涉及通信,并且更具体地涉及用于在无线通信网络中获取超文本分组数据内容的技术。
背景技术
超文本传输协议(HTTP)是web浏览器和web应用程序所使用的主要的通信协议。大型基础设施已经在互联网内建立起来,以便以内容分发网络的形式支持HTTP协议的高效操作。因此,数量不断增加的应用程序正在被移植到HTTP协议。尽管这种移植有其它的原因(例如,网络地址转换(NAT)和防火墙穿越),但是利用web基础设施大规模的可扩展性的能力是主要的驱动力。
当今,web站点通常是非常复杂的,其包括了数十或数百个对象,其中,每个对象必须使用HTTP来单独请求。已经在HTTP内定义了各种优化,以提高能够将对象从服务器传输到客户端的速度。在有线网络内,已经对这些优化应用程序进行了大量的工作;然而,对于理解这些特征如何在具有高往返时间(RTT)和高可变带宽的更具挑战性的移动环境中起作用并进行组合而言,还遗留有未解决的问题。具体地,应当注意到,很多HTTP工作是在一些年前完成的,在当时,移动网络的特性是与现在显著不同的。
发明内容
下面给出了简要概述,以便提供对所公开方面中的一些方面的基本理解。该概述不是全面的概括,而是旨在既不指出关键或重要元素,也不限定这些方面的范围。其目的是以简化形式给出所述特征的一些概念,来作为后面给出的更具体描述的前序。
在一个方面中,提供了一种用于通过以下操作进行分组数据通信的方法:建立多个并行连接用于分组数据通信;经由所述多个并行连接发送多个流水线请求,以用于获取由分别存储在多个服务器上的分组数据部分构成的超文本对象;以及动态地改变并行连接和经由所述并行连接的流水线请求的数目,以减少未完成请求,同时维持完全的链路利用。
在另一方面中,提供了用于分组数据通信的至少一个处理器。第一模块建立多个并行连接用于分组数据通信。第二模块经由所述多个并行连接发送多个流水线请求,以用于获取由分别存储在多个服务器上的分组数据部分构成的超文本对象。第三模块动态地改变并行连接和经由所述并行连接的流水线请求的数目,以减少未完成请求,同时维持完全的链路利用。
在另一方面中,提供了一种用于分组数据通信的计算机程序产品。非暂时性计算机可读介质存储了代码集。第一代码集使计算机建立多个并行连接用于分组数据通信。第二代码集使所述计算机经由所述多个并行连接发送多个流水线请求,以用于获取由分别存储在多个服务器上的分组数据部分构成的超文本对象。第三代码集使所述计算机动态地改变并行连接和经由所述并行连接的流水线请求的数目,以减少未完成请求,同时维持完全的链路利用。
在另一方面中,提供了一种用于分组数据通信的装置。所述装置包括用于建立多个并行连接以用于分组数据通信的模块。所述装置包括用于经由所述多个并行连接发送多个流水线请求,以用于获取由分别存储在多个服务器上的分组数据部分构成的超文本对象的模块。所述装置包括用于动态地改变并行连接和经由所述并行连接的流水线请求的数目,以减少未完成请求,同时维持完全的链路利用的模块。
在另一方面中,提供了一种用于分组数据通信的装置。收发机建立多个并行连接以用于分组数据通信。所述收发机还经由所述多个并行连接发送多个流水线请求,以用于获取由分别存储在多个服务器上的分组数据部分构成的超文本对象。计算平台动态地改变并行连接和经由所述并行连接的流水线请求的数目,以减少未完成请求,同时维持完全的链路利用。
为了实现前述及相关目标,一个或多个方面包括下文中充分描述的并在权利要求中明确指出的特征。以下描述和附图具体阐述了某些示例性方面,并且指出了可以运用这些方面的原理的各种方式中的一小部分。根据下面结合附图的具体描述,其它优点和新颖性特征将变得显而易见,并且所公开的方面旨在包括所有这些方面及其等同物。
附图说明
结合附图并根据下面阐述的具体说明,本公开的特征、属性和优点将变得更加显而易见,在附图中,相同的附图标记在全文中标识一致,其中:
图1示出了用于HTTP优化的通信系统的示意图。
图2A-2B示出了用于HTTP优化的方法的流程图。
图3示出了根据往返时间(RTT)的页面加载时间的图表。
图4示出了单个持久连接的链路使用模式的图形。
图5示出了第一和第二上行链路请求和下行链路响应的链路使用模式的图形。
图6示出了在固定带宽情况下针对不同RTT达到的最佳页面下载时间的图表。
图7示出了用于HTTP优化的多个算法的示例关系的图形。
图8示出了执行HTTP优化的移动终端的方框图。
图9示出了支持HTTP优化的节点的方框图。
图10示出了至少部分地位于移动设备中的系统的方框图,该移动设备具有用于HTTP优化的电子部件的逻辑组。
图11示出了位于网络中的系统的方框图,该网络具有用于支持HTTP优化的电子部件的逻辑组。
具体实施方式
将并行HTTP连接和流水线处理进行组合具有益处,即,克服了增加往返时间(RTT)的影响。通常,已知的浏览器运用固定数目的并行连接和固定数目的未完成请求,尽管并行连接的数目是受必须联系的不同服务器组的影响的。
本发明的一个方面是实时地改变并行连接和流水线请求的数目,使得未完成请求的数目是最小的,并且链路保持被完全利用。
例如,可以基于请求的数据的总量来改变这些数目,以确保链路保持被完全利用;然而,尚未接收的数据的总量不能超过带宽和RTT的乘积。这些数量都是连续变化的。此外,因为在对象的报头到达之前,该对象的大小是未知的,所以未完成数据的总量不是精确已知的。
一种可能是构建所有这些变量的概率模型,并且试图将链路变为空闲的总的概率保持在某个阈值以下。例如,对象大小的概率模型可以使用关于对象类型(图像、HTML、Java脚本、CSS等)与对象大小分布的对应关系的历史数据。尤其是如果有该对象的之前缓存的版本,则因为该对象没有变化,所以将要返回的数据是零(或者仅仅是HTTP报头),或者将要返回的数据是新的版本,其中,该新的版本很可能与旧的版本具有类似的大小。
因此,基于最近测量的带宽和往返时间,可以继续对更多的对象进行流水线处理,直到存在如下可能,即,已请求但还未接收的数据超过带宽与RTT的乘积。只要更多的数据到达或者观测到带宽或往返时间的变化,就可以重复该计算。因此,如在下面更具体描述的,在连接的生命期期间,在HTTP连接上的流水线请求的目标数目可以改变。
现在将参照附图描述各个方面。在下面的描述中,为了说明的目的,阐述了大量的具体细节,以便提供对一个或多个方面的透彻理解。然而,显然,可以在没有这些具体细节的情况下实施各个方面。在其它实例中,以方框图形式示出了已知的结构和设备,以便有助于描述这些方面。
在图1中,在通信系统100中,移动设备、接入终端或用户设备(UE)102针对超文本内容104进行流水线请求103,其中,超文本内容104包含存储在多个服务器112-114上的对象106、108、110。在一个示例性方面中,移动设备102经由空中链路116获得接入,其中,该空中链路116使用于接收对象106-110然后呈现超文本内容104所需要的往返时间(RTT)恶化。在一个方面中,移动设备102具有用于与节点(例如,宏小区、毫微微小区、中继)119进行通信的无线收发机118,其中,节点119用作无线广域网(WWAN)120到因特网协议多媒体子系统(IMS)122到位于核心网络(CN)(例如,因特网)124中的服务器112-114的一部分。
可替换地或此外,移动设备102具有用于与节点128进行通信的收发机126,其中,节点128用作用于经由CN 124接入服务器112-114的无线本地接入网(WLAN)130。
可替换地或此外,移动设备102具有用于与节点134进行通信的收发机132,其中,节点134用作个域网(PAN)136,并且耦合到如在138处描绘的WWAN 120或者如在140处描绘的WLAN 130,以用于经由CN 124到达服务器112-114。
在一个方面,收发机118、126、132建立多个并行连接用于分组数据通信。收发机118、126、132进一步经由这多个并行连接发送多个流水线请求,以用于获取由分别存储在多个服务器上的分组数据部分构成的超文本对象。
移动设备102的计算系统124具有HTTP优化部件144,其动态地改变并行连接和经由该并行连接的流水线请求的数目,以减少未完成请求,同时维持完全的链路利用。
在图2(图2A和图2B)中,针对HTTP优化、多归属、移动性和优先级描述了示例性方法200或操作序列。方框204描述了建立多个并行连接以用于分组数据通信。在具体的方面中,建立多个并行连接是通过使到多个服务器中的每个服务器的连接的数目最小化来完成的(方框206)。使用该多个并行连接来减少对于迟到的或丢失的所请求分组数据的总的拥塞响应(方框208)。
经由该多个并行连接发送多个流水线请求,以用于获取由分别存储在多个服务器上的分组数据部分构成的超文本对象(方框210)。
动态地改变并行连接的数目,以用于经由并行连接发送额外的流水线请求,以减少未完成请求,同时维持完全的链路利用(方框212)。例如,完全的链路利用可能需要贪婪(greedy)资源利用或准时(JiT)资源利用。
在示例性方面中,该动态改变是通过估计带宽和往返时间来实现的(方框214)。继续发送流水线请求,直到存在已请求但还未接收的分组数据超过了估计的带宽和往返时间的乘积的可能情况(方框216)。
在示例性方面中,包括了一个或多个进一步的优化,尤其是如果网络支持的话,其中,所述优化有助于HTTP获取。
例如,确定渐进顺序以用于呈现分组数据部分,并且针对该渐进顺序来对多个流水线请求的顺序进行优先级排序(方框218)。如果在获取期间发生变化(方框220),则重新对该渐进顺序进行优先级排序,并且更新该过程(方框222)。
对于另一个例子,请求采用报头压缩的多个流水线请求(方框224)。
对于另一个例子,网络可以识别(预料)到移动设备可能需要额外的资源。在这种情况下,可以接收未被请求的、服务器识别的资源(方框226)。如果不需要,则以取消服务器识别的资源来进行响应能够避免不必要地消耗空中资源(方框228)。
对于另一个例子,可以使用报头范围特征将多个流水线请求作为多个部分流水线请求来进行发送(方框230)。
对于另一个例子,可以通过利用连接循环来聚合多归属主机的链路,来发送多个流水线请求(方框232)。通过检测到接口已经变成不可用或者已经变成可用(方框234),识别使用该接口的打开的连接(方框236),构建已经在该打开的连接上发出但未完成的流水线请求的列表(方框238),以及部分地基于所识别的打开的连接、接口和未完成的流水线请求列表来利用连接循环动态地改变并行连接和经由该并行连接的流水线请求的数目(方框240),则可以解决考虑到该多归属能力的移动性。
在示例性方面中,移动设备可以针对每个接口维护单独的域名服务(DNS)缓存,并且在缺少操作系统和web浏览器支持的情况下,可以使用网络代理、静态定义的路由和代理自动配置(PAC)脚本。
图3在图表300中示出了使用Firefox web浏览器在针对nytimes.com启用并行连接和流水线处理的情况下,更长的RTT对于页面加载时间的影响(以秒为单位)。检测的页面包括大约一百(100)个对象,总计约1.3MB的数据。在固定带宽1.5Mb/s链路上进行该测试,并且以不同的其它延迟量重复该测试,以模拟更高的RTT链路。在完全链路利用的情况下,可能需要占用大约七(7)秒来下载页面,并且事实上这是以非常低的往返时间来实现的,正如可能在有线网络上所观测到的。然而,显然,随着RTT增加,链路利用与RTT成反比地急剧下降。
该实验结果表明,如果RTT大于通常在有线网络上发现的值,即使当今的web浏览器也不能完全利用中等带宽的链路。此外,造成的增加的页面加载时间完全在影响用户体验的范围内(因为页面加载时间从7s到21s增加200%是非常显著的,但是从100ms到300ms增加200%可能就不显著)。
如本文所使用的,链路利用是指客户端利用网络准备分配的所有资源的能力。在EV-DO或HSPA情况中,当一个用户在这种意义上“未充分利用”链路时,将未使用的容量分配给其它用户,所以从整体上看,不存在未充分利用无线资源。但是,在我们看来,差的链路利用确实造成了差的用户体验,正如在较长的页面加载时间方面所感受到的。
作为具体的例子,如果十(10)个用户各自请求1MB的文件(不必所有都在同一时间)并且网络具有8Mb/s的共享容量,则将占用10s来将数据传递到所有的用户。在平均等待时间方面,“顺序地”处理数据比“并行地”向所有用户传递数据更好,其中,“顺序地”处理数据对每个用户占用1s,“并行地”向所有用户传递数据对每个用户占用差不多10s。
可以使用在HTTP协议中可用的各种技术来优化对象传递:
持久连接:HTTP 1.0规范要求针对每个HTTP请求建立新的传输控制协议(TCP)连接。因为每个TCP连接建立意味着SYN/ACK(同步/确认)交换和由于TCP拥塞控制的慢启动阶段而导致的慢传输时段,该需求在对象传递时间方面需要高昂的代价。
HTTP 1.1引入了持久连接,以更好地支持向相同的服务器发出多个请求的情况。在这个情况中,在完成对先前响应的接收之后,通过在相同连接上发送新的HTTP请求,来重用TCP连接。在这个方法中,在发送请求与接收响应的第一个分组之间的时间(一个往返时间)中,下行链路是空闲的。
从图4中可以看到单个持久连接的链路使用模式400,其中,上行链路请求402和下行链路响应404之间的间隙表明了未充分利用链路(以间隙的形式表示)和如果RTT越高则未充分利用越严重的事实。
应当认识到,本公开的益处是仅仅增加了链路带宽而没有处理RTT,该益处本身并没有提高链路利用方面的性能。进一步参照图4,增加带宽将会根据时间使每个上行链路和下行链路块更窄(即,在较少时间内传输相同的数据),但是不会减小间隙的大小。实际上,间隙将占据总下载时间的较大部分,因此在这种情况下,增加带宽减小了链路利用。
并行连接:现代浏览器以并行方式打开到相同或不同服务器(或这两种情况)的多个TCP连接。该技术的效果是两方面的:第一,对于多个活动发送TCP连接的聚合的拥塞控制行为可以认为是等同于单个TCP连接,但是在慢启动期间拥塞窗口更快速地打开,并且对每个丢弃分组的拥塞响应更少。第二,在一个连接上的传输断断续续的情况下(如上面针对持久连接所示),传输之间的空闲时段可以由其它连接使用,从而提高了链路利用。
流水线:实际上,HTTP 1.1允许发送多个请求,而不需等待对第一请求的响应的完成。这使得服务器能够紧连着地发送响应,而不需链路在响应之间变成空闲。因为HTTP没有提供其它的机制来匹配请求和响应,所以必须按照与接收请求相同的顺序来发送响应。
在图5中,针对持久连接的链路使用模式500示出了流水线处理的效果,其中,该持久连接具有第一和第二上行链路请求502、503和下行链路响应504。
现代的web浏览器基本上都是使用上面的前两种技术。然而,尽管在HTTP 1.1规范中进行了强制,但是对流水线的支持在服务器处以及有时在代理处不是普遍的,并且尤其是在透明代理的情况中存在一些罕见的失败状况的迹象。因此,在实现流水线处理时需要进行注意,例如,注意检测失败状况并且适当地返回到非流水线处理,以及通过保持该技术在其中已经成功的服务器的白列表。Opera浏览器默认启用流水线(并且显然实现了这种技术)。在Firefox中支持流水线,但是默认禁用了流水线。Safari和Chrome(当前)不支持流水线。
从图3中,在浏览器中没有广泛支持流水线的原因是清楚的,上文提及了这些问题:通过单独使用持久连接和并行连接,浏览器对链路的利用在低RTT连接上是非常高的。在近些年中,内容分发网络已经显著地降低了典型的web RTT,从而改善了浏览器的执行(这是主要的有价值的CDN建议),并且由于大多数是有线和无线本地接入网(WLAN)web浏览器,所以发现的问题很少。
可能希望在支持流水线时,在单个连接的情况下,链路利用应当是100%的,因为在响应之间不应该有间隙。然而,在一些情况中,尽管服务器可以按照流水线的形式接受请求,但是它们可能不对每个请求进行处理,直到前一个已经完成。这导致响应之间的间隙等于服务器处理所占用的时间。如果服务器是重负荷,并且必须执行复杂的功能(例如,执行用于生成响应的脚本)和/或必须访问外部服务器(例如,数据库),则这个时间可能是显著的。
如果存在中间代理,该中间代理在输入侧接受流水线请求而在输出侧发出串行请求,则可以观测到相同的效果。即使在处理器并行地处理流水线请求的情况下,在发送给定响应的时间到来时,这个处理的结果也可能是不可用的。
初始实验:上面的数据使我们相信在高RTT链路上,例如,在无线广域网(WWAN)上,存在web浏览性能提高的空间。进一步的证据来自在客户端和中间代理之间应用流水线,以及额外地引入不按顺序返回响应的可能性(即,通过由客户端和代理支持的新的HTTP扩展)。在该方法中,因为客户端和代理之间的低RTT允许单个TCP连接完全利用WWAN链路,并且代理被设计为在输出侧发出并行请求,所以提高了链路利用。还可以并入对所请求的资源的早期识别。
应当注意,如果目标HTTP服务器直接支持用于不按顺序的响应的HTTP扩展(并且假设这些服务器并行地处理请求),则这种HTTP扩展可以提供益处。应当相信,除了下面针对谷歌SPDY所描述的范围,实验尚未涉及这种方法。
在本发明中进一步进行的实验针对不需要部署代理的情况(即,仅客户端侧的技术)。为了清楚起见,最初聚焦在“理想浏览器”上,在该“理想浏览器”中,已经消除了除网络连接之外的所有瓶颈。具体而言,“理想浏览器”:
对于用来呈现页面所需要的完整的请求集合具有先验知识;并且
在接收到时,立即呈现内容。
因此,对于页面加载时间的仅有贡献是使用HTTP协议在网络上传输数据所需要的时间。该“理想浏览器”被实现为Python脚本,其中,该脚本是与对象列表一起预先提供的(这是从对实际web页面下载的跟踪得到的),并且该脚本实现了使用HTTP持久连接、并行连接和流水线来下载对象的算法。对下载所有对象所占用的时间进行测量。
为了更好地理解并行连接、流水线以及网络带宽和RTT之间的相互影响,对于在一(1)个和十(10)个并行连接之间以及在每个连接上有一(1)个和十(10)个未完成请求之间进行实验。(一(1)个未完成请求对应于标准的非流水线方法,“n”个未完成请求意味着最初发送了“n”个请求,随后每次完全接收到一个响应时发送一个新的请求)。
在表1-6中示出了针对不同网络带宽和RTT的结果。具体地,在实际web服务器跟踪上,多个连接和流水线的不同配置的性能被理想化了。该web请求跟踪是使用Wireshark从流行的web站点收集的。然后,对dump文件进行处理以生成请求跟踪文件。对于初始实验,假设所有请求是预先已知的并且是按顺序执行的。仅从主服务器,即,不按比例共享构成所涉及的web站点的对象的服务器,请求对象。主服务器现象也是针对流行web站点来表征的。
下面的表1示出了针对多个连接和流水线的每个配置观测到的平均下载时间:
表1在没有添加延迟情况下的测量
下面的表2-7示出了针对多个连接和流水线的每个配置观测到的平均下载时间:
表2在RTT为50ms情况下的测量
表3在RTT为100ms情况下的测量
表4在RTT为200ms情况下的测量
表5在RTT为500ms情况下的测量
表6在3G EVDO情况下的测量
在这些实验中,在进行实验的同时,在后台下载一些内容。
表7在具有后台流的情况下在3G上的测量
概括地说,图6给出了在固定的1.5Mb/s带宽情况下针对不同RTT以及在3G连接上和具有后台业务的3G连接上(其中,这两个3G连接都具有高于1.5Mb/s的带宽)实现的最佳页面下载时间。对每种情况的标记给出了实现最佳结果时的并行连接数目和流水线的总量。
应当注意,为了清楚起见,这些实验局限于页面对象的90%位于单个服务器上,但是本发明的方面可以扩展到多个服务器结果。
应当认识到,根据图6,在具有本公开的益处的情况下,原则上,下载时间不必像在图3中那样对RTT非常敏感。
HTTP优化、多归属、移动性和优先级:
本发明解决了在HTTP栈中对请求和连接的最优构造和调度的问题,从而改善了页面加载时间并且还提供了对于对象优先级变化的更大的敏感度,例如,在滚动web页面使得部分下载的图像不再可见时。
本发明还考虑了对于在HTTP的应用层上的多归属和移动性的解决方案。多归属提供了对多个接口(例如,WWAN和WLAN接口)的同时使用,这改善了下载时间,尤其是在接口的可用带宽处于相同的数量级的情况下(因为WLAN是回程受限的,所以通常是这种情况)。移动性提供了在设备移动时切换连接。在通信中,切换连接提供了更平滑的移动性。相比诸如分别需要服务器或网络支持的多径传输控制协议(MPTCP)或移动IP之类的传输层或网络层解决方案而言,这样可以在没有服务器或网络支持的情况下提供移动性。
相信本文描述的技术是具有新颖性的,该技术支持多归属和移动性,并且使用多部分请求,以提高对优先级改变的响应度,并且提高多归属和移动性支持。此外,相信用于针对每个接口维护单独的域名服务(DNS)缓存的技术是具有新颖性的。
最后,我们还描述了用于在虽然使用了网络代理、静态定义的路由和代理自配置(PAC)脚本,但缺少操作系统和web浏览器支持的情况下,实现本文描述的技术的一部分的新颖技术。
下面描述了一般性的问题:
HTTP栈是通过具有一组统一资源定位符(URL)形式的一组需要的资源的应用程序(例如,web浏览器)来提供的。这些可以在一个时间或者一个时间段中提供。HTTP栈关于何时以及如何对这些资源发出请求来做出若干决策。具体而言:
如果在同一个服务器上多个资源可用,则可以在单个TCP连接上对这些请求进行流水线处理。
如果这已经完成,则需要决定请求的顺序。
对流水线处理的支持不是普遍或者连续的,所以可能期望限制未完成请求的数目,或者以某种方式检测服务器对于流水线处理的支持。
服务器可以针对不按顺序的响应支持QC HTTP扩展,在这种情况下,对于对请求的排序和未完成请求的数目存在不同的准则。
对于在任意一个时间应当打开的并行TCP连接的数目存在限制,这导致需要选择用于建立到不同服务器的连接的顺序。
因此,基本问题是以使链路利用最大化的方式来调度TCP连接和在这些连接上的HTTP请求。这被称为问题1。
应当注意,本文围绕着在某些服务器处可用的资源描述了该问题。这些服务器是拥有内容的原始web服务器(原始服务器)或在客户端和原始服务器之间的路径上的(非透明)代理服务器。代理服务器可以专用特定的资源(在CDN代理的情况下),或者可以适用于任何资源(在配置式的或学习式的本地代理的情况下)。本文描述的问题和算法与客户端为了获取资源而访问的“服务器”的种类无关:我们假设任何可选的服务器能力可以存在于任何类型的服务器上。
下面可以实现对该问题的多个增强:
一般而言,对于所需的资源存在某种优先级顺序。例如,对于web服务器而言,通常希望在图像、广告和视频之前,以及在调用跟踪器(tracker)或其它附属功能之前,接收布局、样式、脚本和文本资源。这允许在下载了所有资源之前就开始呈现页面。所以,增强的问题是问题1加上关于资源的优先级排序的附加信息以及按照或接近该顺序来传递资源的附加目标。这被称为问题2。
另一种可能是,资源的优先级排序可能在完全接收到所有资源之前改变(此外,记住问题1包括了在下载过程期间可能向需求列表中添加新的资源的可能)。例如,如果在完全下载了web页面之前用户滚动该web页面,并且因此资源排序改变以使可以看到的那些资源的优先级优先,则会发生这种情况。在这个情况中,附加目标是考虑这个改变或优先级,并且确保在这个改变之后,可用资源保持对最高优先级资源而言是专用的。这被称为问题3。
另一种情况是,在该情况中,客户端具有到多个接口的访问,并且从而具有到拥有这些资源的服务器的多个路径。这里应当考虑,由于CDN的普通操作——相信在现有系统中不支持的操作,对于域名的DNS解析可能随着接口而变化。在这个情况中,由于利用所有的多个接口上的可用带宽的附加目标,而使问题增强。这被称为问题4。
最后,可能可用接口组会变化。在这个情况中,需要以最小的数据丢失,并且在维持可用带宽应当对最高优先级资源专用的原则的情况下,高效地处理这个变化。这被称为问题5。
综上所述,问题1关注对流水线的最优使用和对一组URL的请求调度。该目标是优化带宽使用,并且从而减小页面下载时间。
问题2加入了对URL的优先级排序和要考虑该优先级的目的。该目标是使得能够逐渐地呈现web页面,并且从而提高察觉的页面下载速度。
问题3允许优先级可以改变。该目标是确保快速地将带宽重新分配给高优先级对象,并且从而提高对于用户焦点变化(点击链接、改变标签、滚动等)的响应度。
问题4考虑了对多个接口的高效使用,因此目标是通过对多归属主机的链路聚合来改善页面下载时间。
问题5考虑了可用接口的变化,因此目标是支持移动性。
这里,将基于HTTP协议的这些问题的解决方案集中在HTTP应用层上,而不是传输层。
现有方案:现有web浏览器试图解决问题1以及在某种程度上解决问题2。然而,当前的实现方案具有一些缺陷。第一,在下载页面时逐渐地识别所需的资源(URL),这意味着在没有考虑关于客户端已经知道的未来所需资源的信息的情况下,对于打开和关闭连接做出决定。
第二,现有浏览器普遍对于并行连接的数目具有随意的限制。不预期大量的并行连接提供优势。一般的经验似乎是在六(6)个并行连接以上具有减少的返回。但是应当注意,WWAN网络通常配置有大的网络侧下行链路缓冲器。当链路被完全利用时,这可以对高RTT产生贡献。因此,如果另一个连接已经在利用该链路,则并行连接的TCP慢启动会非常慢。
第三,现有浏览器不总是良好地使用流水线。这是因为没有连续地在HTTP代理中支持流水线。此外,在由于要发送的下一个对象在代理处尚不可用而使TCP连接变为空闲的情况下,利用代理来使用流水线会造成“阻塞”的问题。如果在相同连接上请求的另一个对象在该代理处可用,则期望以与“不按顺序响应”相同的方式发送该对象。
最近在谷歌发布的SPDY项目(http://dev.chromium.org/spdy)目标在于通过在TCP和HTTP之间插入薄薄的复用层来解决问题1和问题2。这允许在分配了优先级的情况下在单个TCP连接上并行地发生多个HTTP事务。发起人将问题3确定为未来的工作。SPDY项目还将HTTP报头压缩确定为重要的部分。尽管没有特别提到WWAN,但是具体地,HTTP请求压缩对于WWAN网络而言可能是有价值的。
本公开分析了基于HTTP 1.1标准逐步解决问题1-5的示例性方法。此外,描述了能够进一步提高性能的一些微小的、可选的服务器增强。
问题1:基本连接和请求调度:这一部分的基本思想是单独地看待资源识别、TCP连接建立和调度实际请求。第一,假设识别到所需的资源并且因此需要联系的完整的服务器组是已知的。第二,建立到这些服务器的TCP连接,但是不必一次性全部建立也不必每个服务器一个连接。第三,将请求映射到所建立的连接。
确定打开连接有两个原则:
第一,使到每个服务器的连接的数目最小化,并且随后利用流水线。这是因为每次建立新的连接时付出了高昂的代价(SYN/ACK和慢启动)。如果其它活动连接表明存在大的排队延迟并从而存在大的RTT,则尤其是这样。
第二,当分组丢失或迟到时,利用多个并行连接来减少总的拥塞响应。如果有“n”个TCP连接,则对单个丢失的响应将组合的拥塞窗口减小1/2n。
这两个目标明显是冲突的,因此引入了参数来控制这种权衡:令Pmax为并行TCP连接的最大数目,并且令Pmin为并行TCP连接的最小数目的目标。目的是每个服务器建立一(1)个连接,并满足Pmin。
给定由n个URL构成的集合U,U={U0,...,Un-1},可以从该集合中识别由m个唯一的服务器构成的集合S,S={S0,...,Sm-1},其中,m≤n。应当注意,对于现有服务器立即有帮助的增强是尽可能快地针对页面识别尽可能多的所需URL。当前,该过程与下载和呈现过程混在一起,这是不需要的。
因为多个完全合格域名(FQDN)可以映射到相同的IP地址,所以通过IP地址而不是FQDN来识别服务器Sj。(下面进一步描述单个FQDN映射到多个地址的可能性。)令s(i)为URL Ui所需的服务器的索引(即,Ui可以从Ss(i)获得),并且令U(j)为能够从服务器Sj获得的URL的集合。
提供了用于建立连接并向连接分配请求的过程。在该过程中,请求时机是发出新请求的时机。如何对此进行定义是在如下两者之间的权衡:请求/连接匹配之前提交,以及允许因为在发出新的请求之前所有请求完成而使连接变为空闲。下面给出了一些实例。
算法1:
1)对于k=0到m-1,令uk:=U(k)
2)If(打开的连接的数目)<Pmax
i.打开到Si的新的连接
i.if(打开的连接的数目)<Pmin
1.打开到Si的新的连接
c.else停止
3)等待请求时机或者等待连接关闭
4)如果存在请求时机
a.令C为具有请求时机的连接并且令i为C连接到的服务器Si的索引
i.调度C以在当前发出的请求完成之后关闭
c.else
i.选择u∈ui.
ii.在C上针对u发出请求
iii.令ui:=ui-{u}
5)转到(2)
该过程的操作取决于如何定义请求时机。下面定义了两种极端:
贪婪请求时机:只要打开到服务器的连接,这就发生。
懒惰请求时机:只要在连接上完全接收到响应,这就发生。
在贪婪请求时机的情况中,在满足最大连接数目Pmax的情况下立即发出所有请求。也可以在多个连接上将请求分发到同一个服务器,以便遵守Pmin。然而,一旦发出了所有的请求,就没有机会进行改变。可能发生因为在一个连接上的请求相比在另一个连接上的请求占用更长的时间来完成,所以有少于Pmin个连接。
在懒惰请求时机的情况中,在整个过程中遵守Pmin。然而,对于在一个响应结束和下一个响应开始之间的时间,每个连接是空闲的,其中,这个时间相当于一个往返时间加上服务器响应时间。这是不支持流水线的HTTP 1.1客户端的标准行为。
在理想情况中,对请求时机的定义在某种程度上将在这两个极端之间。例如,当估计将要接收到响应的剩余时间为一个往返时间加上服务器处理时间时,请求时机就出现。然而,服务器处理时间是未知的,RTT仅仅是估计出的,并且无论如何这个时间可能是长于前一个响应的总接收时间的。在下面的描述中,“准时”(JiT)请求时机表示优化的版本,其中,在充足的时间中发出请求,以避免链路变为空闲,或者尽可能晚地变为空闲。
服务器对流水线的支持:传闻代理服务器不对流水线提供连续的支持。HTTP 1.1服务器(包括代理)需要处理或者忽略流水线请求(即,为了不失败)。因此,如果已经发出一个以上的请求,则可能在已经完全接收到第一响应之后(通过确定后面是否有第二响应)确定服务器是否支持流水线。在服务器不支持流水线的情况下,除了第一个之外,应当将已经从该服务器请求的URL返回到服务器集合ui,并且注意到不支持流水线。到该服务器的随后的连接应当最多接收一个请求。
不按顺序的响应:标准的服务器按照接收请求的顺序来返回对流水线请求的响应。定义了HTTP扩展,其允许服务器按照不同的顺序返回请求。因为尤其是在代理服务器的情况下,对象可能按照与其被请求的顺序不同的顺序在服务器处变为可用,所以该HTTP扩展是有价值的。因此,按顺序的对象传递可能造成流水线头部阻塞的问题。但是为了利用这一特征,需要在连接上对多个请求进行流水线处理:如果更多的请求被排队,则减小了流水线头部阻塞的可能性,但是已经做出了更大的投入:因此,当存在这个特征时,可以期望相比不存在这个特征而言在连接上发出更多的请求。
不按顺序扩展包括被添加到请求中的“事务ID”报头字段。不按顺序的响应返回相应的请求的事务ID的值。在响应中不存在事务ID字段表明服务器不支持不按顺序的响应。
HTTP报头压缩:HTTP支持对实体主体而不是对请求进行gzip压缩。谷歌SPDY项目确定HTTP报头压缩提供了显著的优势,并且对于WWAN网络而言,可以预期请求压缩将是尤其有帮助的。
按照下面的方式,可以容易地将报头压缩定义为后向兼容的HTTP扩展:
支持报头压缩的客户端利用第一消息中的、与现有内容-编码报头(例如,报头-编码:gzip)类似的新的可选报头来对此进行指示。
支持报头压缩的服务器识别出该新报头并且返回具有压缩报头的响应。
可以通过出现在流中的标准的gzip报头来指示报头压缩的开始,其中,在该流中预期有新的请求或响应。
应当将连接上的请求或响应序列压缩为一个连续的流。通过对请求或响应的串联来构成未压缩的流(包括每个请求或响应的终止换行符(terminating newline))。在每个请求或响应的结尾必须有刷新(flush)点,所以可以对此进行完全解码,而无需接收后续信息。
应当使用在开始压缩之前发送的未压缩的请求或响应,作为用于压缩的静态字典。
服务器识别的资源:谷歌SPDY确定在服务器知道将需要该资源的情况下,服务器向客户端返回客户端尚未请求的资源的可能性。服务器也可能提供关于客户端想要请求的资源的建议。
前一个选项需要客户端有取消请求的能力,而后者在不需要该能力的情况下实现了大部分相同的目标。
如果支持不按顺序的响应,则所建议的方法的简单的实现方案是由服务器针对服务器识别的资源发送响应报头,该响应报头具有特定的事务ID和请求URL。这允许包括与缓存相关的信息(数据、电子标签、缓存控制指示),使得客户端能够查询其缓存,并且确定是否请求该对象。
取消请求:如果支持上面描述的不按顺序扩展,则可以通过参考具有该事务ID的请求来一般性地添加用于取消请求的新的方法。这对于在流水线上排列更多请求(从而减小了流水线报头阻塞的可能性)可以是有帮助的,同时如果必要仍旧能够撤销该承诺。
问题2:请求优先级排序:问题2引入了添加的可能性,即,URL集合U具有优先级顺序。在没有损失一般性的情况下,假设列表U0,...,Un-1是按照优先级顺序的,其中第一个优先级最高。还添加了在较低优先级对象之前传递更高优先级对象的目标。
应当注意,这个新的目标是次于使可用带宽使用最大化的目标的:即,如果为了使带宽使用最大化必须不按优先级传递对象,则这是可以接受的(否则,将通过严格按照优先级顺序、在发出另一个请求之前等待在每个请求完成之后发出请求来满足要求)。
为了支持优先级排序,对算法1进行了如下修改:
算法2
1)通过按照在服务器上可用的最高优先级资源的顺序来放置该服务器,对U的排序导致了对S的排序。然后,同样以这种明显的方式对每个集合ui进行排序。
2)在算法1之后,除了在步骤2(a)、2(b)和4(c)(i)中之外,所选择的i值应当是最小的这种值。
问题3:优先级变化:谷歌SPDY协议目的在于通过在TCP和HTTP之间提供薄薄的复用层并且使用该复用层将多个请求/响应事务复用在同一个连接上,来解决这个需求。如下可以看出与现有技术的区别:
流水线处理允许多个请求/响应事务共享TCP连接,但是要求相继地并按照次序返回响应。
具有不按顺序的响应的流水线式处理(one-shot-web)允许按照不同的顺序返回响应,但是它们仍旧是相继的(每个响应必须在下一个开始之前完成)。
并行TCP连接允许并行地发送响应(复用在IP层上),但是事务独立地进行:没有办法来协调事务之间的优先级排序。
因此,SPDY协议目标在于获得流水线的益处,而不要求响应相继的完成。
首先,应当注意,在算法2中,如果使用了懒惰或准时请求时机,则总是能够在任意时间对每个集合ui中的未请求资源的优先级进行重新排序。这个简单的方法可以提供显著的益处(这被称为算法2a)。
现在来描述一种可替换的方案,用于基于对HTTP部分请求(即,具有范围报头的HTTP请求)的使用来以更精细的粒度处理优先级变化。
首先,令R为最大请求大小,以字节为单位。针对大小为R或更小的所需资源块发出请求。在算法2中,用一对(URL,字节范围)来替代每个URLui。利用由应用程序和字节范围[0,R-1]提供的URL来初始化这些对。
然后,加入下面的步骤,以构成算法3:
当接收到URL的第一响应报头时,获得对象大小F。然后,如果F>R,则利用相同的URL和字节范围[R,2R-1],[2R,3R-1],...,[rR,F-1]在ui中构造r:=ceil(F/R)–1个附加的项。应当注意,ui中的项的顺序应当基于之前的URL的优先级顺序。
在这个方案中,当发生优先级变化时,已经请求的并且在连接上没有接收到的未完成的数据总量最多是R,因此减小了资源专用于较低优先级资源的时间段。
为了高效地支持准时(JiT)请求时机,希望R应当大于在一个往返时间中能够发送的数据总量。可以是R根据所测量的往返时间和数据速率而改变。
问题4:支持多归属:多归属主机是具有多个已连接接口并且从而具有到因特网的多个路由的主机。在多归属主机的情况中的目标是同时利用多个接口,以提高下载速度。
首先,假设HTTP栈已知可用的接口并且能够指引TCP连接使用特定的接口。在现有的主机操作系统(OS)实现方案中不是这种情况,所以需要一些工作来实现该假设。在这种OS改进之前,可能的替代方案是提供通过独立的接口能够到达的HTTP代理服务器,并且在客户端路由表中定义针对这些服务器的明确的路由,其中,该路由在不同的接口上指引每个服务器的分组。这样,选择代理服务器的操作确定了将要使用的接口,并且可以通过将连接指引到与接口相关联的代理来将连接指引到该接口。
在很多现有web浏览器实现方案中,通过使用代理自配置脚本可以控制对代理服务器的选择,其中,代理自配置脚本允许用户规定Java脚本功能,该Java脚本功能确定了针对给定URL使用的代理。该方法允许请求静态地分布在接口上,例如,一定百分比的请求分布在一个接口上,剩余的请求分布在另一个接口上。
下面示出了一个适当的脚本,其将1/N个请求指引到代理_a并将剩余的请求指引到代理_b:
在该脚本中,使用URL的长度作为哈希函数。也可以使用替代的哈希函数。
假定了用于将TCP连接指引到特定接口的基于OS的能力,一种简单的多归属方法是遵循算法2并且以循环形式将TCP连接分布在可用接口上,其中,该方法在这里被称为算法4。
可以对算法3进行相同的增强,以得到算法5。与算法4相比,优势在于针对对象的部分请求分布在连接上,所以大的对象可以分开在多个接口上。
在这些情况中,期望将Pmin设置为至少是接口的数目。
多归属和DNS:由于CDN的正常操作,DNS解析的结果可能根据主机的到因特网的连接点以及请求首先被发送到的DNS服务器而不同。据我们了解,现有的主机OS没有考虑到这一点。
在HTTP和CDN的具体情况中,不同解析结果的原因在于CDN识别“紧邻”连接点的适当代理。非常期望针对每个接口使用正确的代理。
问题5:移动性:假定了对问题4(多归属)的解决方案,则对移动性的支持被简化为对在传输期间接口关闭的情况和新的接口变为可用的情况进行处理的问题。
如下,对算法4进行增强以得到支持移动性的算法6:
当接口关闭时,识别使用该接口的打开的连接并且构造在这些连接上已经发出的未完成的请求的列表。将这些资源添加回到适当的ui集合,并且继续处理。
当接口开启时,使该接口可用于在下一次必须建立连接时进行选择。
在这两种情况中,如果Pmin是基于接口的数目来设置的,则考虑修改Pmin。
如下,可以对算法5进行类似的增强以得到算法7:
当接口关闭时,识别使用该接口的打开的连接并且构造在这些连接上已经发出的未完成的请求的列表。将这些请求添加回到适当的集合ui,并且继续处理。对于正在进行中的对字节范围[a,b]的任意请求,识别所接收的最后的字节c,并且将对字节范围[c+1,b]的请求添加到适当的集合ui。
当接口开启时,使该接口可用于在下一次必须建立连接时进行选择。
在这两种情况中,如果Pmin是基于接口的数目来设置的,则考虑修改Pmin。
图7,示图700描绘了前述七(7)个算法的示例性关系。关于本公开的益处,应当认识到,在算法1708中从一开始应用了将资源识别702、连接建立704和请求调度706分离的基本概念,其中,算法1708可以运用贪婪或JIT请求操作710。算法1708可以最佳地利用任何可用的可选服务器能力(例如,流水线712、不按顺序响应714、报头压缩716、服务器识别资源718以及HTTP取消能力720),但是如果这些不都是可用的,仍旧提供了改善。
除了贪婪或JiT请求操作726之外,算法2722添加了简单的请求优先级排序724。在基于算法2722的算法2a 728中,提供了重新优先级排序730以与准时请求时机732一起使用。基于算法2A 728的算法4734通过以循环方式向接口分配连接而提供了多归属736。基于算法4734的算法6738通过以循环方式向接口分配连接而提供了即使利用这个简单模型也能够支持的移动性740。
算法3742通过与请求重新优先级排序746和JiT请求操作748一起使用部分请求744而提供了粒度更精细的重新优先级排序。当扩展在算法5750中时该方法还提供了针对多归属752的益处,当扩展在算法7754中时该方法还提供了针对移动性756的益处。
图8是能够用于实现本文描述的功能的各个方面的另一系统800的方框图。在一个例子中,系统800包括移动终端802。如所示出的,移动终端802可以经由一个或多个天线808从一个或多个基站804接收信号并且向一个或多个基站804进行发送。此外,移动终端802可以包括接收机810,其从天线808接收信息。在一个例子中,接收机810可以操作性关联于解调器812,该解调器812对接收的信息进行解调。然后,可以由处理器814对已解调的符号进行分析。处理器814可以耦合到存储器816,其中,存储器816可以存储与移动终端802相关的数据和/或程序代码。此外,移动终端802可以运用处理器814来执行本文描述的方法。移动终端802还可以包括调制器818,其可以对信号进行复用,以用于由发射机820通过天线808进行传输。
移动终端802还经由多个并行连接向基站804发送多个流水线请求,以用于获取由分别存储在多个服务器上的分组数据部分构成的超文本对象。在存储器816中的并且由处理器814执行的HTTP优化部件822动态地改变并行连接和经由该并行连接的流水线请求的数目,以减少未完成请求,同时保持完全的链路利用。
图9是能够用于实现本文描述的功能的各个方面的系统900的方框图。在一个例子中,系统900包括基站或节点B 902。如所示出的,节点B 902可以经由一个或多个接收(Rx)天线906从一个或多个UE 904接收信号,并且经由一个或多个发送(Tx)天线908向一个或多个UE 904进行发送。此外,节点B 902可以包括接收机910,其从接收天线906接收信息。在一个例子中,接收机910可以操作性关联于解调器912,该解调器912对接收的信息进行解调。已解调的符号可以由处理器914进行分析。处理器914可以耦合到存储器916,该存储器916可以存储与代码簇、接入终端分配、与其相关的查找表、唯一的加扰序列相关的信息和/或其它适当类型的信息。在一个例子中,节点B 902还可以包括调制器918,其可以对信号进行复用,以用于由发射机920通过发送天线908进行传输。
在存储器916中的并且由处理器914执行的HTTP优化支持部件922提供了能够由UE 904请求的能力(例如,流水线、不按顺序响应、报头压缩、服务器识别资源以及HTTP取消能力),以优化HTTP通信。
参照图10,示出了用于分组数据通信的系统1000。例如,系统1000可以至少部分地位于用户设备(UE)中。应当认识到,系统1000被表示为包括功能块,该功能块可以是代表由计算平台、处理器、软件或其组合(例如,固件)实现的功能的功能块。系统1000包括能够联合操作的电子部件的逻辑组1002。例如,逻辑组1002可以包括用于建立多个并行连接以用于分组数据通信的电子部件1004。此外,逻辑组1002可以包括用于经由该多个并行连接发送多个流水线请求以用于获取由分别存储在多个服务器上的分组数据部分构成的超文本对象的电子部件1006。此外,逻辑组1002可以包括用于动态地改变并行连接和经过该并行连接的流水线请求的数目以减少未完成请求同时保持完全的链路利用的电子部件1008。此外,系统1000可以包括存储器1020,其保存用于执行与电子部件1004-1008相关联的功能的指令。尽管被示为在存储器1020外部,但是应当理解电子部件1004-1008中的一个或多个可以位于存储器1020内部。
在图11中,描绘了用于分组数据传输的装置1102。装置1102包括用于建立多个并行连接以用于分组数据通信的模块1104。装置1102包括用于经由该多个并行连接发送多个流水线请求以用于获取由分别存储在多个服务器上的分组数据部分构成的超文本对象的模块1106。装置1102包括用于动态地改变并行连接和经过该并行连接的流水线请求的数目以减少未完成请求同时保持完全的链路利用的模块1108。
本领域技术人员还会明白,结合本文公开的方面所描述的各种例示性逻辑块、模块、电路和算法步骤可以实现为电子硬件、计算机软件、或者两者的组合。为了清楚地阐述硬件与软件的这种可互换性,已经在各种例示性部件、方块、模块、电路和步骤的功能方面,对其进行了一般性的描述。这种功能是实现为硬件还是实现为软件,取决于具体应用以及加到整个系统上的设计约束。本领域技术人员可以针对每种具体应用以各种方式来实现所述功能,但是这种实现判定不应被解释为导致脱离本公开内容的范围。
如本文所使用的,术语“部件”、“模块”、“系统”等旨在表示计算机相关实体,其可以是硬件、硬件和软件的组合、软件或者执行中的软件。例如,部件可以是,但不局限于,在处理器上运行的进程、处理器、对象、可执行码、执行线程、程序和/或计算机。举例而言,在服务器上运行的应用程序以及该服务器都可以是部件。一个或多个部件可以驻留在进行和/或执行线程内,并且部件可以位于一个计算机上和/或分布在两个或多个计算机之间。
本文使用词语“示例性”来表示作为例子、实例或示例。本文中描述为“示例性”的任何方面或设计不必被理解为比其它方面或设计更优或有利。
针对可以包括多个部件、模块等的系统给出了各个方面。应当理解并认识到,各种系统可以包括附加的部件、模块等,和/或可以不包括结合附图讨论的所有的部件、模块等。也可以使用这些方法的组合。本文公开的各个方面可以在电子设备上执行,该电子设备包括利用触摸屏显示技术和/或鼠标和键盘类型接口的设备。这种设备的例子包括:计算机(桌上型和移动型)、智能电话、个人数字助理(PDA)和其它的有线和无线电子设备。
此外,结合本文所公开的方面所描述的各种示例性逻辑块、模块和电路可以利用被设计成用于执行本文所述功能的下列部件来实现或执行:通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑器件、离散门或晶体管逻辑、分立的硬件部件或者这些部件的任何组合。通用处理器可以是微处理器,但是可选地,处理器可以是任何传统处理器、控制器、微控制器或状态机。处理器也可以实现为计算设备的组合,例如,DSP和微处理器的组合、多个微处理器、一个或多个微处理器结合DSP核、或任何其它这种配置。
此外,可以使用用于产生软件、固件、硬件或其任意组合的标准编程和/或工程技术,来将一个或多个变体实现为方法、装置或制品,以控制计算机实现所公开的方面。如本文所使用的,术语“制品”(或者可替换的“计算机程序产品”)旨在包括可以从任何计算机可读设备、载体或介质来访问的计算机程序。例如,计算机可读介质可以包括但不限于磁性存储设备(例如,硬盘、软盘、磁带等)、光学盘(例如,压缩盘(CD)、数字多功能盘(DVD)...)、智能卡和闪速存储器设备(例如,卡、棒)。此外,可以运用载波来携带计算机可读电子数据,例如,在发送和接收电子邮件时以及在访问诸如因特网或局域网(LAN)之类的网络时所使用的。当然,本领域技术人员将认识到,在不偏离所公开方面的范围的情况下可以对该配置进行许多修改。
结合本文公开的方面所描述的方法或算法的步骤可以直接体现为硬件、由处理器执行的软件模块、或者两者的组合。软件模块可以驻留在RAM存储器、闪速存储器、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移动盘、CD-ROM、或者本领域中公知的任何其他形式的存储介质中。一种示例存储介质耦合到处理器,使得处理器能够从该存储介质读取信息,以及向该存储介质写入信息。在替换例中,存储介质可以集成到处理器中。处理器和存储介质可以驻留在ASIC中。ASIC可以驻留在用户终端中。在替换例中,处理器和存储介质可以作为分立式部件驻留在用户终端中。
提供对所公开方面的以上描述,以使得本领域普通技术人员能够实现或使用本公开内容。针对这些方面的各种修改对于本领域普通技术人员而言将会是显而易见的,并且在此定义的一般性原理可以应用于其他实施例,而不会脱离本公开内容的精神或范围。因此,本公开内容并非意欲限制于本文中所示的实施例,而是要符合与本文中所公开的原理和新颖性特征相一致的最宽范围。
在考虑到前面描述的示例性系统的情况下,已经结合若干流程图描述了可以根据所公开主题内容实现的方法。尽管为了简化说明的目的,按照一系列方框来示出和描述了这些方法,但是应当理解并认识到,所要求保护的主题内容不受限于方框的顺序,因为一些方框可以按照不同的顺序和/或与不同于本文描绘和描述的其它方框同时发生。此外,可能不需要所有示出的方框来实现本文描述的方法。此外,还应当认识到,本文公开的方法能够被存储在制造产品上,以助于将这种方法传输或转移到计算机。如本文所使用的术语制造产品旨在涵盖能够从任意计算机可读设备、载体或介质中访问的计算机程序。
应当认识到,所述通过引用而全部或部分地并入本文的任何专利、出版物或其它公开材料,仅仅是在所并入的材料不与在本公开中提出的现有定义、陈述或其它公开材料相冲突的程度上来并入本文的。因此,并且在必要的程度上,本文明确阐述的公开内容取代了通过引用并入本文的任何相冲突的材料。仅仅在所并入的材料与现有公开材料不会产生冲突的程度上,来并入所述通过引用并入本文但与在本公开中提出的现有定义、陈述或其它公开材料相冲突的任何材料或该材料的一部分。
Claims (29)
1.一种用于分组数据通信的方法,所述方法包括:
建立多个并行连接用于分组数据通信;
经由所述多个并行连接发送多个流水线请求,以用于获取由分别存储在多个服务器上的分组数据部分构成的超文本对象;以及
动态地改变并行连接和经由所述并行连接的流水线请求的数目,以减少未完成请求,同时维持完全的链路利用。
2.根据权利要求1所述的方法,其中,发送所述多个流水线请求还包括:接入无线广域网的节点。
3.根据权利要求1所述的方法,其中,动态地改变并行连接和流水线请求的所述数目还包括:
估计带宽和往返时间;以及
继续发送流水线请求,直到存在已请求但未接收的分组数据超过所估计的带宽和往返时间的乘积的可能情况。
4.根据权利要求1所述的方法,其中,建立所述多个并行连接用于分组数据通信还包括:
使到所述多个服务器中的每个服务器的连接的数目最小化;
使用所述多个并行连接,以减少对迟到的或丢失的已请求分组数据的总的拥塞响应;以及
动态地改变并行连接和流水线请求的数目,以优化使所述连接的数目最小化和使用所述多个并行连接以减少所述总的拥塞这两个步骤的相冲突的目标。
5.根据权利要求1所述的方法,还包括:
确定渐进顺序以用于呈现所述分组数据部分;以及
相对所述渐进顺序,来对所述多个流水线请求的顺序进行优先级排序。
6.根据权利要求1所述的方法,其中,维持完全的链路利用还包括:利用贪婪请求时机。
7.根据权利要求1所述的方法,其中,维持完全的链路利用还包括:利用准时请求时机。
8.根据权利要求1所述的方法,其中,发送所述多个流水线请求还包括:请求报头压缩。
9.根据权利要求1所述的方法,还包括:接收服务器识别的资源,其中,所述服务器识别的资源是未被请求的。
10.根据权利要求9所述的方法,还包括:
确定不需要所述服务器识别的资源;以及
取消所述服务器识别的资源。
11.根据权利要求1所述的方法,发送所述多个流水线请求还包括:使用报头范围特征,来发送多个部分流水线请求。
12.根据权利要求1所述的方法,其中,发送所述多个流水线请求还包括:
检测接口已经变为不可用或者已经变为可用;
识别使用所述接口的打开的连接:
构造在所述打开的连接上已经发出的未完成的流水线请求的列表;以及
部分地基于所识别的打开的连接、所述接口和所述未完成的流水线请求的列表,来利用连接循环动态地改变并行连接和经由所述并行连接的流水线请求的数目。
13.根据权利要求1所述的方法,还包括:针对每个接口维护单独的域名服务(DNS)缓存。
14.用于分组数据通信的至少一个处理器,所述至少一个处理器包括:
第一模块,用于建立多个并行连接用于分组数据通信;
第二模块,用于经由所述多个并行连接发送多个流水线请求,以用于获取由分别存储在多个服务器上的分组数据部分构成的超文本对象;以及
第三模块,用于动态地改变并行连接和经由所述并行连接的流水线请求的数目,以减少未完成请求,同时维持完全的链路利用。
15.一种用于分组数据通信的计算机程序产品,所述计算机程序产品包括:
用于存储代码集的非暂时性计算机可读介质,所述代码集包括:
第一代码集,用于使计算机建立多个并行连接用于分组数据通信;
第二代码集,用于使所述计算机经由所述多个并行连接发送多个流水线请求,以用于获取由分别存储在多个服务器上的分组数据部分构成的超文本对象;以及
第三代码集,用于使所述计算机动态地改变并行连接和经由所述并行连接的流水线请求的数目,以减少未完成请求,同时维持完全的链路利用。
16.一种用于分组数据通信的装置,所述装置包括:
用于建立多个并行连接以用于分组数据通信的模块;
用于经由所述多个并行连接发送多个流水线请求,以用于获取由分别存储在多个服务器上的分组数据部分构成的超文本对象的模块;以及
用于动态地改变并行连接和经由所述并行连接的流水线请求的数目,以减少未完成请求,同时维持完全的链路利用的模块。
17.一种用于分组数据通信的装置,所述装置包括:
收发机,用于建立多个并行连接以用于分组数据通信;
所述收发机还用于经由所述多个并行连接发送多个流水线请求,以用于获取由分别存储在多个服务器上的分组数据部分构成的超文本对象;以及
计算平台,用于动态地改变并行连接和经由所述并行连接的流水线请求的数目,以减少未完成请求,同时维持完全的链路利用。
18.根据权利要求17所述的装置,其中,所述收发机还用于:通过接入无线广域网的节点,来发送所述多个流水线请求。
19.根据权利要求17所述的装置,其中,所述计算平台还用于通过以下操作来动态地改变并行连接和流水线请求的数目:
估计带宽和往返时间;以及
继续发送流水线请求,直到存在已请求但未接收的分组数据超过所估计的带宽和往返时间的乘积的可能情况。
20.根据权利要求17所述的装置,其中,经由所述收发机,所述计算平台还用于通过以下操作来建立所述多个并行连接用于分组数据通信:
使到所述多个服务器中的每个服务器的连接的数目最小化;
使用所述多个并行连接,以减少对迟到的或丢失的已请求分组数据的总的拥塞响应;以及
动态地改变并行连接和流水线请求的数目,以优化使所述连接的数目最小化和使用所述多个并行连接以减少所述总的拥塞这两个操作的相冲突的目标。
21.根据权利要求17所述的装置,其中,所述计算平台还用于:
确定渐进顺序以用于呈现所述分组数据部分;以及
相对所述渐进顺序,来对所述多个流水线请求的顺序进行优先级排序。
22.根据权利要求17所述的装置,其中,所述计算平台还用于:通过利用贪婪请求时机,来维持完全的链路利用。
23.根据权利要求17所述的装置,其中,所述计算平台还用于:通过利用准时请求时机,来维持完全的链路利用。
24.根据权利要求17所述的装置,其中,所述收发机还用于:通过请求报头压缩,来发送所述多个流水线请求。
25.根据权利要求17所述的装置,其中,所述收发机还用于:接收服务器识别的资源,其中,所述服务器识别的资源是未被请求的。
26.根据权利要求25所述的装置,其中,所述计算平台还用于:
确定不需要所述服务器识别的资源;以及
取消所述服务器识别的资源。
27.根据权利要求17所述的装置,其中,所述收发机还用于:通过使用报头范围特征发送多个部分流水线请求,来发送所述多个流水线请求。
28.根据权利要求17所述的装置,其中,所述计算平台还用于:
检测接口已经变为不可用或者已经变为可用;
识别使用所述接口的打开的连接:
构造在所述打开的连接上已经发出的未完成的流水线请求的列表;以及
部分地基于所识别的打开的连接、所述接口和所述未完成的流水线请求的列表,来利用连接循环动态地改变并行连接和经由所述并行连接的流水线请求的数目。
29.根据权利要求17所述的装置,其中,所述计算平台还用于:针对每个接口维护单独的域名服务(DNS)缓存。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US28811909P | 2009-12-18 | 2009-12-18 | |
US61/288,119 | 2009-12-18 | ||
US12/965,698 US8964757B2 (en) | 2009-12-18 | 2010-12-10 | HTTP optimization, multi-homing, mobility and priority |
US12/965,698 | 2010-12-10 | ||
PCT/US2010/061360 WO2011075738A1 (en) | 2009-12-18 | 2010-12-20 | Http optimization, multi-homing, mobility and priority |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102656863A true CN102656863A (zh) | 2012-09-05 |
CN102656863B CN102656863B (zh) | 2015-10-21 |
Family
ID=43648746
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201080057494.7A Expired - Fee Related CN102656863B (zh) | 2009-12-18 | 2010-12-20 | 用于http优化、多归属、移动性和优先级的方法和装置 |
Country Status (7)
Country | Link |
---|---|
US (1) | US8964757B2 (zh) |
EP (1) | EP2514164B1 (zh) |
JP (2) | JP5795327B2 (zh) |
KR (1) | KR101450293B1 (zh) |
CN (1) | CN102656863B (zh) |
TW (1) | TWI467968B (zh) |
WO (1) | WO2011075738A1 (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102970356A (zh) * | 2012-11-08 | 2013-03-13 | 百度在线网络技术(北京)有限公司 | 云端服务器和客户端的通信方法、系统和装置 |
CN104769895A (zh) * | 2012-09-29 | 2015-07-08 | 适应性频谱和信号校正股份有限公司 | 用于多个宽带连接通过无线电接口聚合的优化控制系统 |
CN105468613A (zh) * | 2014-09-01 | 2016-04-06 | 深圳富泰宏精密工业有限公司 | 智能调整运算资源的系统及方法 |
CN105915582A (zh) * | 2016-03-28 | 2016-08-31 | 深圳市双赢伟业科技股份有限公司 | 路由器访问网页的方法及路由器 |
CN106790480A (zh) * | 2016-12-12 | 2017-05-31 | 中国航空工业集团公司西安航空计算技术研究所 | 一种用于链路聚合链接条件下的文件传输方法 |
CN110351319A (zh) * | 2018-04-04 | 2019-10-18 | 中国移动通信有限公司研究院 | 一种请求消息传输方法、装置及传输设备 |
US11197196B2 (en) | 2014-12-04 | 2021-12-07 | Assia Spe, Llc | Optimized control system for aggregation of multiple broadband connections over radio interfaces |
Families Citing this family (77)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5591829B2 (ja) * | 2009-12-28 | 2014-09-17 | 富士通株式会社 | 通信方法及び通信装置 |
US8516147B2 (en) * | 2010-02-26 | 2013-08-20 | Simula Innovation Sa | Data segmentation, request and transfer method |
US20120198079A1 (en) * | 2011-02-01 | 2012-08-02 | Benjamin Spink | Parallel transmissions over http connections |
US8667183B1 (en) * | 2011-03-20 | 2014-03-04 | Israel L'Heureux | Server-side HTTP translator |
US8612967B1 (en) | 2011-05-31 | 2013-12-17 | Sprint Communications Company L.P. | Loading branded media outside system partition |
WO2013079999A1 (en) * | 2011-12-02 | 2013-06-06 | Canon Kabushiki Kaisha | Methods and devices for encoding and decoding messages |
US8666383B1 (en) | 2011-12-23 | 2014-03-04 | Sprint Communications Company L.P. | Automated branding of generic applications |
US10455071B2 (en) | 2012-05-09 | 2019-10-22 | Sprint Communications Company L.P. | Self-identification of brand and branded firmware installation in a generic electronic device |
JP5918642B2 (ja) * | 2012-06-29 | 2016-05-18 | Kddi株式会社 | Webコンテンツの配信装置 |
CN102907071B (zh) * | 2012-07-26 | 2015-04-29 | 华为技术有限公司 | 一种数据传输方法、移动终端和代理服务器 |
JP2014057149A (ja) * | 2012-09-11 | 2014-03-27 | Toshiba Corp | 通信装置、中継装置および通信方法 |
US9198027B2 (en) | 2012-09-18 | 2015-11-24 | Sprint Communications Company L.P. | Generic mobile devices customization framework |
US20140143316A1 (en) * | 2012-11-16 | 2014-05-22 | Huawei Technologies Co., Ltd. | Method, apparatus, and system for acquiring object |
CN102984138B (zh) * | 2012-11-16 | 2015-11-25 | 华为技术有限公司 | 一种获取对象的方法、装置和系统 |
US10250655B2 (en) * | 2012-12-31 | 2019-04-02 | DISH Technologies L.L.C. | Scheduling segment data delivery in an adaptive media stream to avoid stalling |
US8909291B1 (en) | 2013-01-18 | 2014-12-09 | Sprint Communications Company L.P. | Dynamic remotely managed SIM profile |
US9100769B2 (en) | 2013-02-08 | 2015-08-04 | Sprint Communications Company L.P. | System and method of storing service brand packages on a mobile device |
US9549009B1 (en) | 2013-02-08 | 2017-01-17 | Sprint Communications Company L.P. | Electronic fixed brand labeling |
US9100819B2 (en) | 2013-02-08 | 2015-08-04 | Sprint-Communications Company L.P. | System and method of provisioning and reprovisioning a mobile device based on self-locating |
US9204286B1 (en) | 2013-03-15 | 2015-12-01 | Sprint Communications Company L.P. | System and method of branding and labeling a mobile device |
KR102164457B1 (ko) | 2013-04-25 | 2020-10-14 | 삼성전자주식회사 | 다중 무선 억세스를 위한 전자 장치 및 그 방법 |
US9280483B1 (en) | 2013-05-22 | 2016-03-08 | Sprint Communications Company L.P. | Rebranding a portable electronic device while maintaining user data |
US20150043554A1 (en) * | 2013-08-07 | 2015-02-12 | Qualcomm Incorporated | Management of interfaces for wireless communications |
JP6211856B2 (ja) * | 2013-08-08 | 2017-10-11 | 株式会社Nttドコモ | ユーザ端末、無線通信システム及び通信制御方法 |
US9532211B1 (en) | 2013-08-15 | 2016-12-27 | Sprint Communications Company L.P. | Directing server connection based on location identifier |
US9161209B1 (en) | 2013-08-21 | 2015-10-13 | Sprint Communications Company L.P. | Multi-step mobile device initiation with intermediate partial reset |
US9204239B1 (en) * | 2013-08-27 | 2015-12-01 | Sprint Communications Company L.P. | Segmented customization package within distributed server architecture |
US9125037B2 (en) | 2013-08-27 | 2015-09-01 | Sprint Communications Company L.P. | System and methods for deferred and remote device branding |
US9143924B1 (en) | 2013-08-27 | 2015-09-22 | Sprint Communications Company L.P. | Segmented customization payload delivery |
US9743271B2 (en) | 2013-10-23 | 2017-08-22 | Sprint Communications Company L.P. | Delivery of branding content and customizations to a mobile communication device |
US10506398B2 (en) | 2013-10-23 | 2019-12-10 | Sprint Communications Company Lp. | Implementation of remotely hosted branding content and customizations |
US9301081B1 (en) | 2013-11-06 | 2016-03-29 | Sprint Communications Company L.P. | Delivery of oversized branding elements for customization |
US9363622B1 (en) | 2013-11-08 | 2016-06-07 | Sprint Communications Company L.P. | Separation of client identification composition from customization payload to original equipment manufacturer layer |
US9161325B1 (en) | 2013-11-20 | 2015-10-13 | Sprint Communications Company L.P. | Subscriber identity module virtualization |
US9912631B2 (en) * | 2013-12-26 | 2018-03-06 | Fastly, Inc. | Content node selection based on classless prefix |
KR20150084307A (ko) * | 2014-01-13 | 2015-07-22 | 삼성전자주식회사 | 네트워크에서 웹 로딩 시간 제어 방법 및 장치 |
US9392395B1 (en) | 2014-01-16 | 2016-07-12 | Sprint Communications Company L.P. | Background delivery of device configuration and branding |
US9603009B1 (en) | 2014-01-24 | 2017-03-21 | Sprint Communications Company L.P. | System and method of branding a device independent of device activation |
US9420496B1 (en) | 2014-01-24 | 2016-08-16 | Sprint Communications Company L.P. | Activation sequence using permission based connection to network |
KR102143620B1 (ko) | 2014-02-17 | 2020-08-11 | 삼성전자주식회사 | 전자 장치에서 다중 인터페이스를 이용한 응용 계층의 요청 처리 장치 및 방법 |
US20150281367A1 (en) * | 2014-03-26 | 2015-10-01 | Akamai Technologies, Inc. | Multipath tcp techniques for distributed computing systems |
US9681251B1 (en) | 2014-03-31 | 2017-06-13 | Sprint Communications Company L.P. | Customization for preloaded applications |
US9660926B2 (en) * | 2014-05-30 | 2017-05-23 | Apple Inc. | Multi-stream scheduling and requests |
US9426641B1 (en) | 2014-06-05 | 2016-08-23 | Sprint Communications Company L.P. | Multiple carrier partition dynamic access on a mobile device |
US20160037509A1 (en) * | 2014-07-30 | 2016-02-04 | Onavo Mobile Ltd. | Techniques to reduce bandwidth usage through multiplexing and compression |
US9787564B2 (en) * | 2014-08-04 | 2017-10-10 | Cisco Technology, Inc. | Algorithm for latency saving calculation in a piped message protocol on proxy caching engine |
EP3195683A1 (en) * | 2014-08-25 | 2017-07-26 | Nokia Technologies Oy | Methods and apparatus for wireless connection management |
US9307400B1 (en) | 2014-09-02 | 2016-04-05 | Sprint Communications Company L.P. | System and method of efficient mobile device network brand customization |
US9992326B1 (en) | 2014-10-31 | 2018-06-05 | Sprint Communications Company L.P. | Out of the box experience (OOBE) country choice using Wi-Fi layer transmission |
US10454726B2 (en) * | 2014-12-29 | 2019-10-22 | Watchy Technology Private Limited | System for increasing bandwidth available for data communication |
US9357378B1 (en) | 2015-03-04 | 2016-05-31 | Sprint Communications Company L.P. | Subscriber identity module (SIM) card initiation of custom application launcher installation on a mobile communication device |
US9398462B1 (en) | 2015-03-04 | 2016-07-19 | Sprint Communications Company L.P. | Network access tiered based on application launcher installation |
US10165037B2 (en) | 2015-05-20 | 2018-12-25 | Cbs Interactive Inc. | Method and apparatus for determining bandwidth required for a page feature |
US10185781B2 (en) * | 2015-05-20 | 2019-01-22 | Cbs Interactive Inc. | Method and apparatus for determining bandwidth required for a page feature |
US11172273B2 (en) | 2015-08-10 | 2021-11-09 | Delta Energy & Communications, Inc. | Transformer monitor, communications and data collection device |
WO2017027682A1 (en) | 2015-08-11 | 2017-02-16 | Delta Energy & Communications, Inc. | Enhanced reality system for visualizing, evaluating, diagnosing, optimizing and servicing smart grids and incorporated components |
WO2017041093A1 (en) | 2015-09-03 | 2017-03-09 | Delta Energy & Communications, Inc. | System and method for determination and remediation of energy diversion in a smart grid network |
WO2017058435A1 (en) | 2015-10-02 | 2017-04-06 | Delta Energy & Communications, Inc. | Supplemental and alternative digital data delivery and receipt mesh network realized through the placement of enhanced transformer mounted monitoring devices |
US10476597B2 (en) | 2015-10-22 | 2019-11-12 | Delta Energy & Communications, Inc. | Data transfer facilitation across a distributed mesh network using light and optical based technology |
CA3054546C (en) * | 2016-02-24 | 2022-10-11 | Delta Energy & Communications, Inc. | Distributed 802.11s mesh network using transformer module hardware for the capture and transmission of data |
US9992786B2 (en) | 2016-03-31 | 2018-06-05 | At&T Intellectual Property I, L.P. | Facilitation of multipath scheduling |
US10193781B2 (en) | 2016-04-14 | 2019-01-29 | At&T Intellectual Property I, L.P. | Facilitation of multipath transmission control protocols |
US10182020B2 (en) * | 2016-05-31 | 2019-01-15 | Anchorfree Inc. | System and method for improving an aggregated throughput of simultaneous connections |
US10652633B2 (en) | 2016-08-15 | 2020-05-12 | Delta Energy & Communications, Inc. | Integrated solutions of Internet of Things and smart grid network pertaining to communication, data and asset serialization, and data modeling algorithms |
CN106357736B (zh) * | 2016-08-26 | 2019-04-23 | 百度在线网络技术(北京)有限公司 | 用于传输文件的方法和装置 |
US9913132B1 (en) | 2016-09-14 | 2018-03-06 | Sprint Communications Company L.P. | System and method of mobile phone customization based on universal manifest |
US10021240B1 (en) | 2016-09-16 | 2018-07-10 | Sprint Communications Company L.P. | System and method of mobile phone customization based on universal manifest with feature override |
US11089138B2 (en) * | 2017-02-15 | 2021-08-10 | Nokia Solutiona and Networks Oy | Network multi-path proxy selection to route data packets |
WO2018165190A1 (en) | 2017-03-07 | 2018-09-13 | Akamai Technologies, Inc. | Cooperative multipath |
US10306433B1 (en) | 2017-05-01 | 2019-05-28 | Sprint Communications Company L.P. | Mobile phone differentiated user set-up |
CN109936510B (zh) * | 2017-12-15 | 2022-11-15 | 微软技术许可有限责任公司 | 多路径rdma传输 |
CN110166506B (zh) * | 2018-02-12 | 2021-11-19 | 中国移动通信有限公司研究院 | 超文本传输协议Http的连接方法及节点设备 |
EP3923146B1 (en) * | 2019-04-01 | 2023-11-22 | E-Jan Networks Co. | Communication system, information providing device, program, and information providing method |
US11540195B2 (en) | 2019-05-31 | 2022-12-27 | Apple Inc. | Cellular enhancements for application mobility |
US11115457B2 (en) | 2019-05-31 | 2021-09-07 | Apple Inc. | HTTP transaction retries |
CN111988235B (zh) * | 2020-08-13 | 2023-05-09 | 暨南大学 | 一种基于多http/3连接的并行传输方法 |
US11537678B1 (en) | 2021-08-31 | 2022-12-27 | International Business Machines Corporation | Fast-tracking of web requests using a request digest |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1379572A (zh) * | 2002-04-29 | 2002-11-13 | 清华大学 | 用于报文转发系统的队列管理方法 |
CN1842080A (zh) * | 2005-03-29 | 2006-10-04 | 华为技术有限公司 | 一种调整传输控制协议接收窗口的方法 |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6212565B1 (en) | 1998-08-26 | 2001-04-03 | Sun Microsystems, Inc. | Apparatus and method for improving performance of proxy server arrays that use persistent connections |
US6820133B1 (en) * | 2000-02-07 | 2004-11-16 | Netli, Inc. | System and method for high-performance delivery of web content using high-performance communications protocol between the first and second specialized intermediate nodes to optimize a measure of communications performance between the source and the destination |
JP4818812B2 (ja) | 2006-05-31 | 2011-11-16 | 株式会社日立製作所 | フラッシュメモリストレージシステム |
US7230921B2 (en) | 2001-04-02 | 2007-06-12 | Telefonaktiebolaget Lm Ericsson (Publ) | Concurrent use of communication paths in a multi-path access link to an IP network |
US6801940B1 (en) | 2002-01-10 | 2004-10-05 | Networks Associates Technology, Inc. | Application performance monitoring expert |
US7409454B2 (en) * | 2003-06-02 | 2008-08-05 | Microsoft Corporation | Automatic detection of intermediate network device capabilities |
WO2004114581A2 (en) * | 2003-06-17 | 2004-12-29 | Bytemobile, Inc. | Method and system for dynamic interleaving |
US20100211626A1 (en) * | 2004-01-12 | 2010-08-19 | Foundry Networks, Inc. | Method and apparatus for maintaining longer persistent connections |
US20060031520A1 (en) * | 2004-05-06 | 2006-02-09 | Motorola, Inc. | Allocation of common persistent connections through proxies |
JP2005341310A (ja) | 2004-05-27 | 2005-12-08 | Fujitsu Ten Ltd | 通信装置 |
US7657618B1 (en) * | 2004-10-15 | 2010-02-02 | F5 Networks, Inc. | Management of multiple client requests |
WO2006055784A2 (en) | 2004-11-19 | 2006-05-26 | The Trustees Of The Stevens Institute Of Technology | Multi-access terminal wiht capability for simultaneous connectivity to multiple communication channels |
JP2007043678A (ja) | 2005-06-29 | 2007-02-15 | Ntt Docomo Inc | 通信端末及び通信方法 |
US20070124310A1 (en) | 2005-07-26 | 2007-05-31 | Novo Innovations, Inc. | Distributed Computing System to Enable the Secure Exchange of Information Between Remotely Located Healthcare Applications |
US7835743B2 (en) | 2005-08-03 | 2010-11-16 | Toshiba America Research, Inc. | Seamless network interface selection, handoff and management in multi-IP network interface mobile devices |
US8259739B2 (en) | 2005-10-31 | 2012-09-04 | Cisco Technology, Inc. | Scatter and gather scheme for aggregating multiple high speed point-to-point interfaces |
WO2007063585A1 (ja) | 2005-11-30 | 2007-06-07 | Fujitsu Limited | 通信装置およびフレーム制御方法 |
JP2007281731A (ja) | 2006-04-05 | 2007-10-25 | Mitsubishi Electric Corp | 通信装置及び通信方法及びプログラム |
US7640358B2 (en) | 2006-11-09 | 2009-12-29 | Sharp Laboratories Of America, Inc. | Methods and systems for HTTP streaming using an intelligent HTTP client |
US8027293B2 (en) | 2007-07-16 | 2011-09-27 | Cellport Systems, Inc. | Communication channel selection and use |
JP5049069B2 (ja) | 2007-08-02 | 2012-10-17 | ソフトバンクテレコム株式会社 | 無線通信端末装置、及び通信ネットワークプログラム |
JP5097620B2 (ja) | 2008-06-03 | 2012-12-12 | 株式会社日立製作所 | マルチパス通信システム |
US20110314129A1 (en) | 2009-12-18 | 2011-12-22 | Ramin Rezaiifar | Binding/aggregating multiple interfaces at application layer |
-
2010
- 2010-12-10 US US12/965,698 patent/US8964757B2/en not_active Expired - Fee Related
- 2010-12-20 TW TW99144798A patent/TWI467968B/zh not_active IP Right Cessation
- 2010-12-20 JP JP2012544946A patent/JP5795327B2/ja not_active Expired - Fee Related
- 2010-12-20 KR KR1020127018934A patent/KR101450293B1/ko not_active IP Right Cessation
- 2010-12-20 CN CN201080057494.7A patent/CN102656863B/zh not_active Expired - Fee Related
- 2010-12-20 EP EP10801053.9A patent/EP2514164B1/en not_active Not-in-force
- 2010-12-20 WO PCT/US2010/061360 patent/WO2011075738A1/en active Application Filing
-
2015
- 2015-04-09 JP JP2015080176A patent/JP2015164330A/ja active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1379572A (zh) * | 2002-04-29 | 2002-11-13 | 清华大学 | 用于报文转发系统的队列管理方法 |
CN1842080A (zh) * | 2005-03-29 | 2006-10-04 | 华为技术有限公司 | 一种调整传输控制协议接收窗口的方法 |
Non-Patent Citations (2)
Title |
---|
MARISA CATALAN 等: "Web optimization in real UMTS networks with", 《VEHICULAR TECHNOLOGY CONFERENCE.2008.VTC SPRING 2008.IEEE》, 14 May 2008 (2008-05-14) * |
SPIRO PHILOPOULOS 等: "Experiment Study of Parallel Downloading Schemes for Internet Mirror Sites", 《THIRTEENTH IASTED INTERNATIONAL CONFERENCE ON PARALLEL AND DISTRIBUTED COMPUTING SYSTEMS(PDCS"01)》, 31 December 2001 (2001-12-31) * |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104769895A (zh) * | 2012-09-29 | 2015-07-08 | 适应性频谱和信号校正股份有限公司 | 用于多个宽带连接通过无线电接口聚合的优化控制系统 |
US10064095B2 (en) | 2012-09-29 | 2018-08-28 | Adaptive Spectrum And Signal Alignment, Inc. | Optimized control system for aggregation of multiple broadband connections over radio interfaces |
CN104769895B (zh) * | 2012-09-29 | 2018-12-18 | 适应性频谱和信号校正股份有限公司 | 用于多个宽带连接通过无线电接口聚合的优化控制系统 |
CN102970356A (zh) * | 2012-11-08 | 2013-03-13 | 百度在线网络技术(北京)有限公司 | 云端服务器和客户端的通信方法、系统和装置 |
CN105468613A (zh) * | 2014-09-01 | 2016-04-06 | 深圳富泰宏精密工业有限公司 | 智能调整运算资源的系统及方法 |
US11197196B2 (en) | 2014-12-04 | 2021-12-07 | Assia Spe, Llc | Optimized control system for aggregation of multiple broadband connections over radio interfaces |
CN105915582A (zh) * | 2016-03-28 | 2016-08-31 | 深圳市双赢伟业科技股份有限公司 | 路由器访问网页的方法及路由器 |
CN105915582B (zh) * | 2016-03-28 | 2019-04-02 | 深圳市双赢伟业科技股份有限公司 | 路由器访问网页的方法及路由器 |
CN106790480A (zh) * | 2016-12-12 | 2017-05-31 | 中国航空工业集团公司西安航空计算技术研究所 | 一种用于链路聚合链接条件下的文件传输方法 |
CN106790480B (zh) * | 2016-12-12 | 2020-08-11 | 中国航空工业集团公司西安航空计算技术研究所 | 一种用于链路聚合链接条件下的文件传输方法 |
CN110351319A (zh) * | 2018-04-04 | 2019-10-18 | 中国移动通信有限公司研究院 | 一种请求消息传输方法、装置及传输设备 |
CN110351319B (zh) * | 2018-04-04 | 2022-04-01 | 中国移动通信有限公司研究院 | 一种请求消息传输方法、装置及传输设备 |
Also Published As
Publication number | Publication date |
---|---|
JP2013515399A (ja) | 2013-05-02 |
TWI467968B (zh) | 2015-01-01 |
US20110222404A1 (en) | 2011-09-15 |
WO2011075738A1 (en) | 2011-06-23 |
EP2514164A1 (en) | 2012-10-24 |
CN102656863B (zh) | 2015-10-21 |
KR20120098894A (ko) | 2012-09-05 |
KR101450293B1 (ko) | 2014-10-13 |
JP5795327B2 (ja) | 2015-10-14 |
JP2015164330A (ja) | 2015-09-10 |
TW201141134A (en) | 2011-11-16 |
EP2514164B1 (en) | 2018-01-17 |
US8964757B2 (en) | 2015-02-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102656863A (zh) | Http 优化、多归属、移动性和优先级 | |
RU2264651C2 (ru) | Распределённый кэш (сверхоперативная память) для системы беспроводной связи | |
JP5086473B2 (ja) | エッジデータストレージを使用する移動体ネットワーク環境においてデータを先読みするための方法及び装置 | |
US9654970B2 (en) | Method and device for web redirect authentication in WiFi roaming based on AC and AP interworking | |
CN102656862A (zh) | 在应用层绑定/聚合多个接口 | |
CN103348637B (zh) | 用于混合通信网络中的帧递送路径选择的方法和装置 | |
CN105939313B (zh) | 状态码重定向方法及装置 | |
WO2012077303A1 (ja) | 通信サービス提供システム、通信サービス提供方法およびデータセンタ管理システム | |
JP2010045839A (ja) | 映像表示システム及び映像表示装置 | |
US20210392522A1 (en) | Communication method and apparatus, entity, and storage medium | |
CN101809950A (zh) | 为移动通信网络的控制平面实施负载均衡的方法和设备 | |
CN105144784A (zh) | 用于支持ieee 802.11快速会话转移的多协议驱动器 | |
US20170279738A1 (en) | Method, apparatus, and system for transmitting data | |
JP2015170125A (ja) | コンテンツ取得プログラム、装置、及び方法 | |
US9325621B1 (en) | Wireless device offload | |
US10979885B1 (en) | Neighbor discovery and channel coordination of dynamic frequency selection (DFS) mesh networks | |
KR101897539B1 (ko) | 데이터 전송 방법 및 장치 | |
CN100488156C (zh) | 一种协助传输数据的方法及系统 | |
US10425499B2 (en) | Server and method for providing content to users | |
US20230208905A1 (en) | User device, server, method, apparatus and computer readable medium for network communication | |
CN108353383A (zh) | 用于使用域名系统的多播/广播资源的地址解析的方法和设备 | |
US9813968B1 (en) | Management of channel status information for LTE redirects | |
KR20150042067A (ko) | 컨텐츠 전송 서비스 기반의 api 제공 방법 및 이를 위한 캐시 장치 | |
KR20150039986A (ko) | 컨텐츠 전송 제어 방법 및 이를 위한 장치 | |
KR20070111700A (ko) | 패킷 데이터 서비스 방법 |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20151021 Termination date: 20181220 |
|
CF01 | Termination of patent right due to non-payment of annual fee |