通过计算机网络传输数据的方法和系统的制作方法

文档序号:7977636阅读:292来源:国知局
通过计算机网络传输数据的方法和系统的制作方法
【专利摘要】提供了一种计算机实现的方法,其用于对计算机网络中的第一与第二端点之间的数据传输进行透明优化。端点之间具有直接建立的数据会话。在整个会话期间,每个端点以相同的方式对至少对其自身的数据会话进行识别。该方法包括步骤:利用网络优化服务在会话中透明中继端点之间的数据;以及利用网络优化服务对至少某些从第二端点向第一端点传送的数据进行透明修改或存储,从而对端点之间的数据通信进行优化,其中,对至少某些数据的透明修改包括更改数据、替代数据、或插入额外的数据,使得第一端点收到与第二端点发送的数据不同的数据。
【专利说明】通过计算机网络传输数据的方法和系统
[0001]相关申请的交叉引用
[0002]本申请要求于2010年12月30日提交的名称为“METHODS AND SYSTEMS FORTRANSMISSION OF DATA OVER COMPUTER NETWORKS”的美国临时专利申请N0.61/428,527 的优先权,在此通过引用将其并入本文。
【背景技术】
[0003]本申请总体涉及通过计算机网络(如因特网、局域网、广域网、无线网络等)的数据传输。
[0004]过去3至5年,企业和客户的宽带网络都经历了显著的和持续的流量增长。这些流量增长是通过引入更快的终端用户连通性选择、采用各种带宽加强应用程序、引入各种可连接网络的消费电子产品驱动的。
[0005]为了应对由宽带增长导致的网络堵塞、应用程序性能下降、持续性地对网络进行升级的需求,宽带网络操作员引入了各种网络优化方案和服务,其目的是控制网络成本、容纳网络规模的增长、提高因特网应用程序的性能和安全性、为操作员创造新的收入来源。
[0006]这些方案包括内容缓存、视频转码和翻译、内容自适应、内容过滤、入侵监测和保护等等。
[0007]所有这些方案类别都共享一些公共部署需求。它们应当以透明的方式部署,从而因特网应用程序可以在不进行改变的情况下运行。
[0008]同样,对于某些网络优化方案,经常需要修改因特网内容流量和/或其内容载荷自身。
[0009]此外,网络优化方案需要解决经常运行于10Gbps、40Gbps、IOOGbps规模的现代宽带网络的规模需求。
[0010]通常的基于网络的优化的方案结构包括结合网络元件(例如,路由、交换或专用DPI设备)部署的网络优化平台,该网络元件位于数据路径中并将业务流传输方向改变至网络优化平台。
[0011]网络元件通常利用有选择性地重定向网络业务流,以将业务流量与所使用的网络优化服务进行匹配。
[0012]网络优化服务通常使用应用程序代理结构。通过其他方式可以在两个端点‘A’和‘B’(例如,Internet浏览器与Web服务器)之间创建的一个连接由代理‘P’终止,并且一方面在A与P之间以及另一方面在P与B之间创建不同的两个传输会话(TCP或UDP)。建立连接后,代理‘P’在两个会话之间在应用程序级别中继数据。
[0013]代理结构带来了显著的性能损失,这是由于需要为流经网络的各会话保持传输(TCP或UDP)栈、复制数据以在应用程序级别中继数据并且执行从数据帧到应用程序缓冲器及反向的转换。
[0014]由于这些限制,代理结构将网络优化应用程序的吞吐量限制为每标准的基于Intel的服务器的I至2Gbps,以及将同时支持流量限制为为数万。该性能限制实际上妨碍了这些优化方案将网络规模以经济方式增大到10/40/100Gbps网络规模。
[0015]因此,需要能够消除应用程序代理结构的上述瓶颈的网络优化平台的替代结构。

【发明内容】

[0016]根据一个或多个实施例,提供了一种计算机实现的方法,该方法用于对计算机网络中的第一与第二端点之间的数据传输进行透明优化。端点之间具有直接建立的数据会话。在整个会话期间,每个端点以相同的方式对至少对其自身的数据会话进行识别。该方法包括步骤:利用网络优化服务在会话中透明中继端点之间的数据;利用网络优化服务对至少某些从第二端点向第一端点传送的数据进行透明修改或存储,从而对端点之间的数据通信进行优化,其中,对至少某些数据的透明修改包括更改数据、替代数据、或插入额外的数据,使得第一端点收到与第二端点发送的数据不同的数据。
[0017]根据一个或多个实施例,提供了一种优化服务,其用于对计算机网络中的第一与第二端点之间的数据传输进行透明优化。端点之间具有直接建立的数据会话。在整个会话期间,每个端点以相同的方式对至少对其自身的数据会话进行识别。该优化服务配置为:利用网络优化服务在会话中透明中继端点之间的数据;以及利用网络优化服务对至少某些从第二端点向第一端点传送的数据进行透明修改或存储,从而对端点之间的数据通信进行优化,其中,对至少某些数据的透明修改包括更改数据、替代数据、或插入额外的数据,使得第一端点收到与第二端点发送的数据不同的数据。
[0018]在下面的详细描述中,提供了本发明的若干实施例。需要认识到的是,本发明能够适用于其它或不同的实施例,并且能够对它的一些细节进行若干方面的修改,这些修改不脱离本发明的范围。相应地,附图和说明用于说明性的目的,而不是约束或限制性的目的,本申请的范围是由权利要求限定的。
【专利附图】

【附图说明】
[0019]图1为示出了根据本发明的一个或多个实施例的在端点之间创建会话的流程图。
[0020]图2A和图2B (共同地作为图2)为示出了根据本发明的一个或多个实施例的优化服务的部署的示意图。
[0021]图3为示出了根据本发明的一个或多个实施例的运行于随道中的优化服务的部署的示意图。
[0022]图4为示出了根据本发明的一个或多个实施例的响应缓存的流程图。
[0023]图5为示出了根据本发明的一个或多个实施例的数据修改的流程图。
[0024]图6为示出了根据本发明的一个或多个实施例的新请求引入的流程图。
[0025]图7为示出了根据本发明的一个或多个实施例的示例性网络结构的流程图。
[0026]使用相同或类似的引用符号来标示共同的或类似的元件。
【具体实施方式】
[0027]本文所披露的若干实施例都针对用于优化计算机网络中直接建立了会话的端点之间的数据传输的服务。该优化服务对至少一些在端点之间传输的数据进行透明修改或存储、或者对端点引入新的请求,从而对端点间的数据通信进行优化。在整个会话期间,每个端点以相同的方式识别对于它的会话。
[0028]本文所使用的术语“网络节点”是指任何连接到基于IP的网络的设备,其包括(但不限于)计算机服务器、个人计算机(包括台式电脑、笔记本、平板电脑)、智能手机及其它连接网络的设备。
[0029][28]本文所使用的术语“端点”是指通过基于IP的网络的双向进程间通信流的末端,其存在于连接到这种网络的网络节点上。端点的例子包括(但不限于)TCP sockets,SCTP sockets、UDP sockets、原始 IP sockets。
[0030][29]优化服务作为基于IP的网络上的网络节点间的数据中继中所包含的设备的一部分运行。这种设备的例子包括(但不限于)家用网关、WiFi热点、防火墙、路由器、地铁以太网交换机、光学交换机、DPI设备、计算机服务器、应用程序网关、电缆调制解调器终端系统(CMTS )、光线路终端(OLT )、宽带网络网关(BNG)、宽带访问服务器(BRAS )、DSL访问多路复用器(DSLAM)、网关GPRS支持节点(GGSN)、PDN网关(PGW)。
[0031][30]如图1和图2中所示,在基于IP的计算机网络上有两个端点‘A’和‘B’(例如,ISP用户和基于因特网的Web服务器),它们之间建立了数据会话‘S’。如果是TCP协议,则会话创建阶段包含TCP会话握手,其中包括网络及传送参数协商。
[0032][31]端点A和B之间的会话S包含由A向B发送的数据请求,以及在某些情况下,为由A向B发送的数据响应。该会话可选择地包括两个端点所发出的请求和响应。
[0033][32]每个端点通常用至少5元组对数据会话S进行识别:本地端点的IP地址和端口、远程端点的IP地址和端口及所使用的协议(例如,TCP、UDP等)。如果网络地址转换(NAT)发生在A和B之间的网络中,由端点A和B定义的会话S可能会不同。
[0034][33]通过计算发出和收到的字节和/或帧,端点A和B可选择地记录发出和收到的数据。为了检测封包流失和重发、避免堵塞、控制堵塞等,端点A和B还可记录远程端点发出和收到的数据。
[0035][34]在整个会话期间,由各个端点识别的会话不会变化。
[0036][35]根据一个或多个实施例,端点A与B之间建立会话S后,优化服务‘C’面向端点A创建透明的端点CA,如根据RFC1122的TCP/IP模型所定义的,在网络和传输级别,该端点将会作为端点B呈现给端点A。
[0037][36]如图1所示,服务C可选择性地创建两个透明的端点CjPCB,其中端点(;将会作为端点B呈现给端点A,端点Cb将会作为端点A呈现给端点B。
[0038][37]根据一个或多个实施例,服务C仅在其处理的某些会话中按照[0035-0036]创建透明的端点,这一决定是服务C根据至少一个变量作出的,所述变量包括,例如,时间信息、序数信息、频率信息、端点识别信息、会话识别信息、网络状态信息、外部策略信息。
[0039]根据一个或多个实施例,通过置于会话端点之间的数据路径中,或者通过使用一个或多个位于数据路径中并将特定数据会话重定向至服务C的专用重定向设备(例如,负载平衡器、路由器、DPI设备等),服务C可对A与B之间的会话中的所有数据帧进行中继,如图2A和2B中所描绘。
[0040]根据一个或多个实施例,服务C可仅对A与B之间的会话中的部分数据帧进行中继。例如,从会话中的某帧开始,重定向设备可将会话S重定向至服务C,其利用会话的7层分析来决定是否应当将会话重定向至服务C。[0041]当服务器C在端点A和端点B之间对数据帧进行中继而不创建透明的端点时,可以在物理级别(例如,通过切换端口至端口的数据帧)、或者链路级别(例如,通过改变MAC地址和/或VLAN标签)、或者通过二者的组合来进行这一操作。
[0042]根据一个或多个实施例,服务器C可选择性地对其处理的会话进行网络地址转换(NAT)。
[0043][42]作为中继的一部分,C对连接状态进行连续不断地跟踪和存储,包括下面组中的所有或部分变量:
[0044]-静态会话标示符(端点地址和端口编号、所使用的传输协议)
[0045]-每个端点的动态传输状态,包括(但不限于)每个端点发出和确认的数据的顺序标示符
[0046]-会话和各单独端点的协商传输属性,包括(但不限于)TCP选项,如选择性的ACK、时间戳、缩放窗口等
[0047]-每个方向上发送的数据帧的动态网络级属性,包括(但不限于)IPDSCP、IP T0S、IPv6流标签
[0048]-每个方向上发送的数据帧的动态链路级属性,包括(但不限于)来源和目的地MAC地址、802.1Q VLAN标签、802.1P优先级位、QinQ堆栈式VLAN标签
[0049]-每个方向上发送的数据帧的动态电路级属性,包括(但不限于)进端口和出端口的识别、物理端口属性
[0050][43]根据一个或多个实施例,服务C为A与B之间的一个或多个会话S’提供数据修改和缓存服务,所述一个或多个会话s’在两个端点Tl和T2之间建立的隧道中穿过服务C,如图3中所示。
[0051][44]服务C支持的隧道协议可包括(但不限于),L2TP、PPPoE, PPPoA, L2TP、GRE、GTP-U、IP in IP、MPLS、Teredo、6RD、6to4、和 ΡΜΙΡ。
[0052]根据一个或多个实施例,如图3中所示,服务C通过端点A与B之间的穿过隧道的多个连接对端点Tl和T2之间的隧道会话的状态进行跟踪。
[0053]如下面将要详细讨论的,根据若干实施例的服务C提供了许多会话修改和其它能力,包括(a)数据响应缓存(b)修改数据请求和数据响应(C)引入新请求。
[0054](a)响应缓存
[0055]按照如上述[0030-0034]中详细描述的创建端点A与B之间的数据会话S后,从端点A到端点B的数据查询到达服务器C。
[0056]根据一个或多个实施例,服务C对数据查询进行分析以将其与之前存储的数据响应进行匹配。为此,C根据至少一个变量对从端点A收到的查询进行分析,所述变量是从以下组中选择的,该组包括:时间信息、序数信息、频率信息、客户信息、识别信息。
[0057]如果在存储器中找到了匹配的响应,C自行将存储的响应发送给端点A。
[0058]根据一个或多个实施例,如果服务C先前存储了匹配响应,则服务C不将该查询中继给端点B,而是自行对查询进行响应。
[0059]根据一个或多个选择性实施例,服务C将收到的来自端点A的查询中继至端点B、接收来自端点B的响应或其一部分、对收到的来自端点A的数据查询和收到的来自端点B的数据响应(或其一部分)与服务C之前存储的数据响应进行匹配。[0060]这样,如果服务C识别出相匹配的存储响应,则将该存储响应(或其一部分)发送至端点A。这样,服务C阻断对收到的来自端点B的响应的中继。
[0061]如果C正在发送数据响应,则可导致B在它这一端上结束数据会话S,或者停止发送响应。
[0062][54]当会话S中向端点A和B发送新的数据帧,而该数据帧不是来自对面端点时,服务C使用对面端点的IP和端口地址及其不断地存储的会话状态,如上面的[0042]中所描述。
[0063][55]假定端点A和B分别以Xtl和Y0开始对它们在会话S中的数据流进行排序,如图4中所示。当服务C收到来自端点A的需要C响应的来自端点B的数据查询时,服务C可能已经将Na字节的数据从A中继到B并将Nb字节的数据从B中继到A,其中Na和Nb可大于或等于零。
[0064][56]服务C对端点A和B的序列及每个端点确认的数据进行追踪。当服务C开始将其响应发送给端点A时,它以Yc^Nb开始对其数据进行排序,其接续之前端点B所使用的数据序列,而预期来自端点A的新数据从Xc^Na开始,其接续之前端点A发送的数据序列。可以说,C以TCP序列号Yc^Nb和确认号Xc^Na对端点Ca进行初始化。
[0065][57]因此,C发送的数据对端点A显示为A与B之间的会话的无缝接续。
[0066][58]如果端点B向端点A发送的排序为Y0和Yc^Nb之间的数据包在C和A之间的网段丢失,则服务C开始发送它的排序为Yc^Nb及更高的数据后,端点A通过返还确认号小于Yo+Nb的帧来做出响应。根据 一个或多个实施例,C将这样的数据包中继给端点B,导致端点B重新发送所丢失的数据包。这样,C需仅将Y0与Yc^Nb之间的范围内的数据中继返还至端点A。
[0067][59]同样,当服务C将其自身数据(即,不是从其它端点接收到的数据)发送给端点B时,服务C使用如它所看到的会话S中的端点A的当前状态。
[0068][0054-0059]中所描述的服务C完成的对发送和接收数据的排序同样适用于根据各个数据字节TCP类语义及其它语义,包括,但不限于,两个端点之间交换的各个帧的排序。
[0069]服务C可利用使用如上面的[0043-0044]中所描述的多级会话追踪而存储的数据,将如[0054-0059]所描述的相同的数据排序方法应用到同一会话内的多个协议层,包括但不限于通过PPP和PPP类似协议的TCP/IP会话、通过UDP/IP隧道等的TCP/IP会话、通过IPv4隧道的IPv6中创建的会话。
[0070]根据一个或多个实施例,为了发送之前存储的数据响应或其它数据,服务C透明地创建传送端点Ca (例如,TCP/IP或UDP/IP插口),以允许其如端点A和B —样能够对数据包丢失和重发、堵塞检测和避免及传输数据进行传输的其它方面进行处理。
[0071]服务C可创建单独一个面向端点A的端点CA,或者一对分别面向A和B的端点Ca和CB。面向端点A的端点Ca将具有相对端点B的地址(根据[0054]的IP地址IPb和端口Pb)以及端点B的传送状态,端点B的传送状态是作为创建端点Ca前的会话跟踪的结果由服务C存储的。同样,端点Cb具有端点A的属性(IP地址IPa和端口 PA)。
[0072]根据一个或多个实施例,当数据请求和数据响应在端点A与B之间进行中继时,月艮务C对它们进行存储,端点A和B不变成传输级端点。[0073]根据其他实施例,服务C可对来自多个端点中的一个端点的数据响应进行检索,或者从另一个数据源接收它。
[0074]根据一个或多个实施例,服务C对来自端点A和B的数据查询进行响应。
[0075]根据一个或多个实施例,服务C根据下面组中的至少一个变量对来自端点A和/或B的数据查询进行响应,所述组包括:配置信息、时间信息、频率信息、序数信息、系统负载信息、网络状态信息、客户信息、和识别信息。
[0076]根据一个或多个实施例,端点A向端点B发送查询QA1,对于该查询,服务C通过发送之前存储的响应RC1进行响应。收到响应RC1后,端点A发送另一个数据查询QA2。如果服务C没有存储与查询QA2匹配的响应,则服务C将该查询中继给端点B、接收响应RB2并将其中继给端点A。
[0077][69]作为服务C发送至端点A响应RC1的结果,端点A和端点B的发送和接收数据的计数可能会不同。为了转换回中继模式(其中查询和响应重新在A与B之间中继),服务C对其在A与B之间中继的数据帧的排序实施不断的修改,例如图4中所示。例如,当收到来自端点A的请求QA2时,作为RC1响应的一部分,端点A报告收到了多达Y3’的数据,这反映了从端点Ca收到的数据。同时,端点B发送了多达序列Y2的数据,作为它与端点Cb通信的一部分。
[0078][70]同样,端点B收到的与端点A发送的数据的计数(分别为X/与X4)也不匹配。
[0079][71]为了消除Υ3’与Y2之间以及1:与X4之间的差异,当在A与B之间中继数据时,服务C在两个方向上对发送数据和接收数据的序列进行修改。
[0080]此外,端点A可通过使用之前存储的响应RC3来初始化另一个查询QA3,该查询可以由服务C答复。
[0081]换言之,服务C可交替进行:①响应来自一个或两个端点的查询②在两个端点之间进行查询和响应的中继。
[0082](b)杳询和响应修改
[0083]根据一个或多个实施例,按照如[0028-0031]描述的创建会话S后,服务C对A与B两个端点之间进行中继的数据查询和/或数据响应进行修改,如图5中所示出的例子。
[0084]根据一个或多个实施例,服务C不使用传送端点来发送修改的数据,而是继续跟踪端点A与B的传送状态,并且当数据包丢失时依靠发送端点来重新发送数据。
[0085]由于中继数据的部分修改,服务C可能需要更改协议的帧校验和来反映新的有效载荷。
[0086]如果C对从A发送给B的数据进行修改,则修改的数据的数据包丢失可能发生在C与B之间。如果这样,服务C将反映该丢失的数据帧从B中继至A,使端点A重新发送丢失的帧,并且使服务C重新实施修改。C利用存储的会话状态信息对重新发送的帧进行跟踪,并重新实施修改。
[0087]根据其它实施例,为了将修改的数据发送给端点B,服务C创建面向端点B的新传送端点CB。该端点Cb使用端点A的IP地址IPa和端口 PA,并与之前从端点A中继至端点B的帧接续地对修改数据进行中继。
[0088]当服务C创建端点Cb用于向端点B发送修改数据时,服务C可选择性地创建端点Ca以便于与端点A的通信,例如,为了接收来自端点A的数据响应。与端点Cb相同,端点Ca使用相对端点B的IP地址IPb和端口 PB,并与之前从端点B中继至端点A的帧接续地与端点B进行通信。
[0089]修改数据发送完成后,服务C退回到对A与B之间的帧进行中继,同时对收到和发出数据的序列进行必要的调整,如[0069-0071]中所述。
[0090]根据一个或多个实施例,服务C对从端点A中继到端点B的数据查询和/或响应进行修改,作为端点性能协商的一部分,从而影响会话S的格式、协议及其它属性。
[0091 ] 根据一个或多个实施例,服务C对端点A发出的数据查询的参数进行修改,从而取消端点A报告的某种性能。例如,服务C可修改端点A报告的以压缩格式接收响应的性能,以使得相对端点B以压缩格式发送它的响应。
[0092]随后,服务C收到压缩的响应RBltl,并通过解压缩有效载荷对其进行修改,并将其以修改格式发送给端点A,从而使B与C之间的网络优化并改进其性能。
[0093][84]根据一个或多个实施例,服务C对收到的来自端点B的响应RB11进行修改,包括(但不限于):以不同格式对文字数据进行渲染、根据端点设备性能进行图像修改、视频质量的改变、将音频和/或视频数据转码成不同的格式等。
[0094][0084]中描述的对响应的修改可用于许多目的,包括改善服务C与接收修改数据的端点之间的网络资源的利用率、根据端点应用程序性能调整数据响应、改善应用程序性倉泛.。
[0095]根据一个或多个实施例,服务C可对端点A与B之间中继的数据响应进行修改,该修改关于在一个或两个端点可用的数据项目或部分数据项目,如点对点协议(如Bittorrent、eDonkey 等)中所使用的。
[0096](C)引入新请求
[0097]根据一个或多个实施例,除了和/或取代各端点发出的查询,服务C可在会话S中向端点A和/或端点B引入新的请求,如图6中所示。
[0098]根据一个或多个实施例,服务C可使用端点方法对来自端点A和B的新查询进行发送并接收响应,如[0035-0037]和[0054-0059]中所述。
[0099]根据一个或多个实施例,服务C包括缓存响应和响应修改、引入具有响应缓存的新请求、在同一会话S中中继端点之间的数据。
[0100]根据一个或多个实施例,服务C结合一个或两个端点的报告对数据可用性响应进行修改,从而通过在其中包含服务C所存储的数据项目(或部分数据项目)和/或排除服务C未存储的数据项目(或部分数据项目),来改善服务C的缓存命中率。
[0101]根据其它的实施例,服务C根据一个或两个端点的报告对数据可用性信息进行修改,从而促使端点对当前未被服务C存储的数据项目(或部分数据项目)进行发送,作为填充服务C所管理的缓存的一种方式。
[0102]根据一个或多个实施例,服务C对端点A和端点B之间的数据查询进行修改以禁用端到端加密,从而允许后续的数据响应的缓存。
[0103]根据一个或多个实施例,服务C对其发送给端点的修改数据响应进行存储,并且可对存储的修改数据响应的副本进行检索,而不是急于实施修改。
[0104]根据一个或多个实施例,如果存储的数据响应的副本与修改需要相匹配,则服务C可发送通过上面所述的响应缓存机制存储的数据响应。[0105]根据一个或多个实施例,可利用通过上面所述的响应缓存机制存储的数据响应的副本作为数据修改的输入,而不是使端点B发送所有的数据响应。
[0106]根据一个或多个实施例,为了引发最佳响应缓存所需的端点响应,服务C可在会话S中引入新的请求。
[0107]这种数据响应可包括(但不限于),已经存储在服务C中的内容对象的丢失部分、已经被表示为常用但还未被服务C存储的内容对象、与服务C已知的其它对象相关联的内容对象(例如,HTML页面引用的对象或用于自适应比特率视频的额外的回放等级等)。
[0108]根据一个或多个实施例,提供了一种用于对两个端点A与B之间的至少一个通信会话进行透明修改的系统,该系统需要端点A和B之间首先建立数据会话,该会话包括至少一个IP网络节点,该节点设计并配置为提供服务(a)至(c)中的至少一种服务,如上面所述。
[0109]根据一个或多个实施例,该优化系统可驻留在单独一个或多个服务供应网络、专用托管区域、数据中心、企业或住宅楼宇中,如下面的图7中所描述。
[0110]根据一个或多个实施例,该系统包括多个位于不同物理位置的组件。
[0111]根据一个或多个实施例,在A与B之间的同一连接S的数据路径中可存在多个串联的系统。
[0112]根据一个或多个实施例,该优化服务可在与多个端点中的一个所驻存的同一网络节点上运行。
[0113]根据一个或多个实施例,多个优化服务可串联运行,如图7中所示。
[0114]根据一个或多个实施例,多个优化服务可并联运行,例如作为通过重定向设备完成的会话负载平衡的一部分。
[0115]根据一个或多个实施例,多个优化服务实例可串联和/或并联运行,其中每个优化服务实例执行不同的和/或相同的数据修改和存储操作。
[0116]根据一个或多个实施例,多个优化服务实例可串联和/或并联运行,其中每个优化实例配合另一个实例合作执行不同的数据修改和存储操作。
[0117]上面描述的优化服务进程可以软件、硬件、固件及其任意组合来实现。优选地,这些进程以一个或多个计算机程序实现,这些计算机程序运行于可编程设备上,该可编程设备包括处理器、处理器可读取的存储媒介(包括例如易失性和非易失性存储器和/或存储元件)、输入和输出设备。每个计算机程序可以是驻留在设备的随机存取存储器中的代码模块形式的一组指令(程序代码)。这组指令可存储在另一个计算机存储器(例如,硬盘驱动器,或者可移动存储器中,如光盘、外部硬盘、记忆卡、闪存驱动器)中或者存储在另一个计算机系统中并通过因特网或其它网络下载,直到设备需要时。
[0118]这样,已经描述了若干说明性实施例,应当理解的是,该领域内的技术人员可轻易地进行若干的更改、修改和改进。这些更改、修改和改进意在构成本公开的一部分,并且意在位于本公开的精神和范围内。尽管本文讨论的一些例子包含了详细的功能或结构元件的组合,但是应当了解的是,根据本发明,这些功能和元件可以以其它方式组合,从而实现相同或不同的目的。特别是,连同某个实施例讨论的步骤、元件和特征不是为了排除于其它实施例中的类似的或其它作用之外。
[0119]此外,本文描述的元件和组件可进一步划分为额外的组件或连接到一起,从而形成较少的用于执行相同功能的组件。例如,优化服务可包括一个或多个物理机器,或在一个或多个物理机器上运行的一个或多个虚拟机器。此外,优化服务可包括通过因特网或其它网络连接的一组计算机或许多分布式计算机。
[0120]相应地,前面的描述及附图仅作为实例,而不是意在限制本发明。
【权利要求】
1.一种计算机实现的方法,该方法用于对计算机网络中的第一与第二端点之间的数据传输进行透明优化,所述端点之间具有直接建立的数据会话,在整个会话期间,每个端点以相同的方式对至少对其自身的数据会话进行识别,该方法包括: 利用网络优化服务在会话中透明中继两个端点之间的数据;以及 利用网络优化服务对至少某些从第二端点向第一端点传送的数据进行透明修改或存储,从而对端点之间的数据通信进行优化,其中,对至少某些数据的透明修改包括更改数据、替代数据、插入额外的数据,使得第一端点收到与第二端点发送的数据不同的数据。
2.如权利要求1所述的方法,其中,会话包括TCP或UDP会话。
3.如权利要求1所述的方法,其中,会话是通过标识符识别的,这些标识符包括:第一端点的IP地址和传输端口、第二端点的IP地址和传输端口、所使用的传输协议,并且其中,标识符在整个会话期间不改变。
4.如权利要求1所述的方法,其中,优化服务或与优化服务通信的重定向服务位于第一和第二端点之间的数据路径中。
5.如权利要求1所述的方法,其中,中继数据的步骤包括创建面向第一端点的第一透明端点,其中第一透明端点对于第一端点显示为第二端点,从而第一端点与第一透明端点通信。
6.如权利要求5所述的方法,其中,中继数据的步骤还包括创建面向第二端点的第二透明端点,其中第二透明端点对于第二端点显示为第一端点,从而第二端点与第二透明端点通信。
7.如权利要求1所述的方法,其中,中继数据的步骤是在未创建单独的透明端点情况下执行的,取而代之的是,跟踪两个端点的传输状态,并且当数据包丢失时,依靠发送数据的端点来重新发送数据并对重新发 送的数据进行修改以被发送至第二端点。
8.如权利要求1所述的方法,其中,中继数据的步骤包括通过重定向设备接收两个端点之间通信的数据,并且其中,中继数据的步骤包括只对第一和第二端点之间的会话中的一部分数据帧进行中继。
9.如权利要求1所述的方法,其中,所述中继数据的步骤包括连续地对会话的状态进行跟踪和存储,包括跟踪:每个端点发送和接收了哪些数据以及会话的传送级属性、链路级属性、或者网络级属性。
10.如权利要求9所述的方法,其中,跟踪包含监控多层隧道。
11.如权利要求1所述的方法,其中,透明修改的步骤包括:对来自第一端点的针对第二端点的数据查询和/或从第二端点接收到的对所述数据查询的数据响应进行分析,将数据查询和数据响应与之前存储的数据响应进行匹配,以及将之前存储的数据响应发送给第一端点,同时将来自第二端点的数据响应的中继中断。
12.如权利要求11所述的方法,还包括使第二端点在其一端结束会话或者暂缓发送数据响应。
13.如权利要求11所述的方法,其中,发送之前存储的数据响应包括:利用第二端点的IP和端口地址及会话的会话状态作为第一和第二端点之间的会话的接续。
14.如权利要求11所述的方法,其中,匹配的步骤是基于选自下面组中的至少一个变量进行的:时间信息、序数信息、频率信息、客户信息、识别信息。
15.如权利要求1所述的方法,其中,透明修改的步骤包括: 对来自第一端点的针对第二端点的第一数据查询进行分析,将第一数据查询与之前存储的数据响应进行匹配,将之前存储的数据响应通过单独的透明端点发送给第一端点;以及 接收来自第一端点的针对第二端点的第二数据查询,确定响应于第二数据查询的数据响应未存储在优化服务中,将第二数据查询中继至第二端点,接收来自第二端点的符合第二查询的数据响应,以及在不使用单独的透明端点的情况下将来自第二端点的数据响应中继至第一端点,同时修改该响应的传送参数,从而使其呈现为第一与第二端点之间的会话的接续。
16.如权利要求1所述的方法,其中,透明修改数据的步骤包括:以不同格式渲染文本数据、根据端点设备性能对数据进行调整、改变视频质量、或将音频和/或视频数据转码成不同的格式。
17.如权利要求1所述的方法,其中,透明修改的步骤包括:对从一个端点到另一个端点的数据查询或响应的参数进行调整,从而影响会话的属性。
18.如权利要求17所述的方法,其中,中继数据的步骤包括:创建面向第一端点的第一透明端点,其中第一透明端点对于第一端点显示为第二端点,从而第一端点与第一透明端点通信。
19.如权利要求17所述的方法,其中,中继数据的步骤是在未创建单独的透明端点情况下执行的,取而代之的是,跟踪两个端点的传输状态,并且当数据包丢失时,依靠发送数据的端点来重新发送数据并对重新发送的数据进行修改以被发送到第二端点。
20.如权利要求1所述的方法,其中,透明修改数据的步骤包括:对从一个端点至另一个端点的数据查询或响应的参数进行修改以影响后续数据查询或响应的属性,从而提高会话中数据查询的缓存能力。
21.如权利要求1所述的方法,其中,透明修改数据的步骤包括:将之前存储的数据响应用于后续的数据响应的修改。
22.如权利要求1所述的方法,其中,透明修改数据的步骤包括:通过优化服务对端点报告的数据可用性响应进行修改从而改善缓存命中率,或者如果端点交换有关数据可用性的信息,则使一个端点发送当前未存储在优化服务中的数据项目。
23.如权利要求1所述的方法,其中,执行引入新的请求的步骤以使一个端点发送用于数据缓存的数据响应。
24.一种优化服务,用于对计算机网络中的第一端点与第二端点之间的数据传输进行透明优化,所述端点之间具有直接建立的数据会话,在整个会话期间,每个端点以相同的方式对至少对于其自身的数据会话进行识别,该优化服务用于: 利用网络优化服务,在会话中透明中继两个端点之间的数据;以及 利用网络优化服务对至少某些从第二端点向第一端点传送的数据进行透明修改或存储,从而对端点之间的数据通信进行优化,其中,对至少某些数据的透明修改包括更改数据、替代数据、或者插入额外的数据,使得第一端点收到与第二端点发送的数据不同的数据。
25.如权利要求24所述的优化服务,其中,所述优化服务以涉及在基于IP的网络上的网络节点之间进行数据中继的设备来实现。
26.如权利要求24所述的优化服务,其中,所述优化服务运行于网络节点上,其中,一个端点驻留在该网络节点上。
27.如权利要求24所述的优化服务,其中,所述优化服务包括串联运行的多个优化服务中的一个。
28.如权利要求24所述的优化服务,其中,所述优化服务包括并联运行的多个优化服务中的一个。
29.如权利要求24所述的优化服务,其中,所述优化服务包括串联和/或并联运行的多个实例,其中,每个优化服务实例执行不同的和/或相同的数据修改和存储操作。
30.如权利要求24所述的优化服务,其中,所述优化服务包括串联和/或并联运行的多个实例,其中,每个优化 服务实例配合另一个实例执行不同的数据修改和存储操作。
【文档编号】H04L29/08GK103548307SQ201180068664
【公开日】2014年1月29日 申请日期:2011年12月30日 优先权日:2010年12月30日
【发明者】艾伦·阿罗洛维奇, 什穆埃尔·巴卡尔, 德罗尔-摩西·加维什, 沙哈尔·居伊·格林, 谢伊·舍梅尔 申请人:皮尔爱普有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1