容错的内容下载系统的制作方法

文档序号:11637294阅读:141来源:国知局
容错的内容下载系统的制造方法与工艺

本发明一般涉及内容下载系统,尤其涉及一种容错的内容下载系统。



背景技术:

如今,从互联网下载的大量内容包括视频和/或音频内容。这种类型的下载内容通常的特征在于其是流内容,要求连续地下载内容而不中断,以便提供愉快的用户体验。在一些情况下,视频和/或音频在被下载的同时在用户的设备上被“实况”播放,而在其他情况下,下载内容可以先存储在用户设备的存储器中稍后再行播放。无论哪种情况,内容的下载不应遭受任何实质性中断,以免影响用户体验。

如今,大多数因特网流量包括使用tcp(transmissioncontrolprotocol,传输控制协议)通过通信网络将流内容从服务器传输到客户端(用户设备)。下载流内容的时间越长(例如长电影),tcp流量可能被服务器故障或迁移(即,服务器物理或网络地址的更改)中断的概率越大。

存在各种用于防止或恢复被中断的tcp流量的迁移/恢复解决方案。一种解决方案,例如ietftcp服务迁移协议(tcpservicemigrationprotocol,tsmp)草案,利用代理-比流服务器更靠近用户客户端的附加服务器-来提供流内容。无论流服务器正常工作与否,所有流内容都会通过代理。另一种解决方案,诸如sockmi,其需要对用户的浏览器或其他客户端模块(例如内核模块)或服务器内核模块进行更改。第三种解决方案,例如迁移因特网移动工程,需要用户级的新会话层库,该新会话层库管理基于会话的网络活动和应用程序的资源分配。



技术实现要素:

本发明实施例提供了一种网络设备,用于缓解在客户端-服务器网络中从内容服务器到客户端设备的内容下载中断,所述设备包括恢复模块(recoverymodule,rm),用于将数据传输连接从第一服务器迁移到第二服务器,以响应检测到的来自所述第一服务器的数据传输中断。所述被迁移的数据传输连接可以包括与在数据传输的所述中断之前传输的数据量相关联的指令。

根据本发明的实施例,所述rm包括数据库,用于存储与数据传输连接的至少一部分相关联的信息。

根据本发明的实施例,所述信息包括以下任意一种:http请求报头、http响应报头、客户端ip地址、客户端端口、服务器ip地址、服务器端口和tcp序列号。

根据本发明的实施例,所述rm包括流量分析器以分析与所述数据传输连接的至少一部分相关联的信息。

根据本发明的实施例,所述rm包括连接监视器以代理一部分所述数据传输连接到rm。

根据本发明的实施例,所述rm包括连接监视器,以指示所述客户端-服务器网络上的网络控制器更改数据传输连接中的分组目的地信息。

根据本发明的实施例,所述rm包括分载器接口,以与所述客户端-服务器网络上的网络控制器进行接口连接。

根据本发明的实施例,所述rm包括服务器监视器,以评估对来自所述第一服务器的数据传输中断的检测。

根据本发明的实施例,所述评估基于在检测到中断之后对超时时段的测量。

根据本发明的实施例,所述评估基于在第一服务器的轮询之后对超时时段的测量。

根据本发明的实施例,所述rm包括偏移评估器,以确定在数据传输的所述中断之前传输的数据量。

根据本发明的实施例,所述设备另外包括网络控制器。

根据本发明的实施例,所述网络控制器是快速路径分载(fastpathoffloading,fpo)控制器。

根据本发明的实施例,所述网络控制器将所述被迁移的数据传输连接中的客户端ip地址和端口更改到所述第二服务器。

根据本发明的实施例,所述网络控制器将所述被迁移的数据传输连接中的服务器ip地址和端口更改到所述第二服务器。

根据本发明的实施例,提供一种缓解在客户端-服务器网络中从内容服务器到客户端设备的内容下载中断的方法,所述方法包括检测从所述内容服务器到所述客户端的数据传输连接中的中断;将所述数据传输连接迁移到第二服务器;以及在所述数据传输连接中包括进与在所述中断之前下载的内容量相关联的信息。

根据本发明的实施例,所述方法另外包括更改从所述第二服务器传输到所述客户端的数据中的客户端ip地址和客户端端口。

根据本发明的实施例,所述方法还包括更改从所述客户端传输到所述第二服务器的数据中的服务器ip地址和服务器端口。

根据本发明的实施例,所述更改包括代理,用于将第一服务器的服务器ip地址和端口替换为第二服务器的ip地址和服务器。

根据本发明的实施例,所述方法另外包括探测所述客户端以确定在所述中断之前下载的所述内容量。

附图说明

在说明书的最后部分中特别指出并清楚地要求保护本发明的主题。然而,当与附图一起阅读时,通过参考以下详细描述,可最好地理解本发明的操作组织和方法以及其目的、特征和优点,其中:

图1示意性地示出了本发明实施例提供的用于下载内容的容错系统;

图2示意性地示出了本发明实施例提供的正常操作模式下的容错系统中的流量;

图3示意性地示出了本发明实施例提供的服务器故障(或迁移)操作模式下容错系统中的流量;

图4为本发明实施例提供的容错内容下载系统的操作方法的示例性端到端流程图;和

图5示意性地示出本发明实施例提供的与容错系统一起使用的示例性恢复管理器的框图。

应当理解,为了说明的简洁和清楚,图中所示的元件不一定按比例绘制。例如,为了清楚起见,一些元件的尺寸相对于其他元件可能会被放大。此外,在认为适当的情况下,图中重复的附图标记用以指示对应或类似的元件。

具体实施方式

在下面的详细描述中,阐述了许多具体细节以便更透彻地理解本发明。然而,本领域技术人员应当理解的是,可以在没有这些具体细节的情况下实施本发明。在其他情况下,没有详细描述公知的方法,过程和组件,以免增加本发明的理解难度。

申请人已经认识到,现有的tcp迁移/恢复解决方案存在缺点,因为它们要求存在所有流量必须经过的高负载代理,或者要求改变服务器和/或客户端操作系统和/或实现。此外,因为这些解决方案可能有助于增加网络带宽要求,所以可能还存在其他缺点。

申请人已经认识到,与现有tcp迁移/恢复解决方案相关联的缺点可以通过容错机制来克服,该容错机制可以在通信网络中的网络设备中实现,而无须对客户端和/或服务器进行任何改变,并且对客户端和服务器是完全透明的。该容错机制可以包括能够监视网络上的客户端-服务器连接的恢复模块或“恢复管理器”,并且在检测到服务器故障或服务器迁移时,在将连接迁移到不同的服务器的同时,继续在相同的tcp连接上为客户端提供服务。rm还应该能够服务于大量不同的数据传输服务,包括音频和视频流服务。这些可以包括http(hypertexttransferprotocol,超文本传输协议),ftp(filetransferprotocol,文件传输协议),telnet和smtp(simplemailtransferprotocol,简单邮件传输协议)等等。容错机制作为rm的一部分,可以包括网络控制机制,其可以允许rm将流量处理透明地委派给网络。网络控制机制可以包括使用快速路径分载(fastpathoffloading,fpo),其在公开号为83824856的中国专利申请中进行了说明(该申请被转让给本申请包括的共同受让人)。

对包括rm的容错内容下载系统的描述

现在参考图1,其示意性地示出了本发明实施例提供的包括rm(102)的容错系统100。容错系统100可以包括rm102;一个或多个客户端103,例如如客户端103a-103f所示;多个服务器104,例如如服务器104a-104e所示,以及将客户端和服务器互连的网络106。容错系统100可以另外包括与rm102通信的fpo控制器108,通信链路由虚线110(rm-fpo链路)示出。

容错系统100被配置为允许通过网络106在服务器104和客户端103之间传递容错下载服务。无论服务器之一中是否存在故障,或者是否将服务从一个服务器迁移到另一个服务器,通过允许在相同的tcp连接上为客户端103从服务器104请求的数据提供服务,就可以提供容错。通过维持相同的tcp连接,可以为客户端103提供连续性,其允许数据由客户端接收而没有任何可能潜在地影响接收数据质量的实质中断,而所述数据可包括其他类型数据中的流数据(例如音频和/或视频)。

rm102负责维持服务器104和客户端103之间的相同tcp连接。rm102可以是一个单独的模块,可以将该模块合并到现有的或新的客户端-服务器系统中,并且可以通过软件、硬件或两者结合的方式实现。rm102可以对客户端103和服务器104两者进行透明地操作,并且可以为服务器提供故障(服务器崩溃或迁移)的检测,并且作为响应,恢复tcp连接。

rm102可以包括用于存储与客户端103和服务器104之间的流量相关联的信息的数据库。该信息可以包括客户端ip地址和端口、服务器ip地址和端口、初始tcp序列号、使用的tcp选项、http请求和http响应报头以及可以用于检测服务器故障和恢复tcp连接的其他信息。

由rm102执行的功能可以包括以下:

a、在客户端103和服务器104之间进行代理以分析网络106中的流量信息并在分析之后将流量转发到客户端;

b、监视新tcp连接的建立,新的tcp连接包括http请求和http响应报头;

c、通过rm-fpo链路110指示fpo控制器108把新的tcp连接分载到网络106;

d、监视服务器状况并且指示fpo控制器108在检测到服务器故障(或迁移)时停止分载;和

e、基于先前服务器在出故障(或迁移)之前传输了多少数据,确定要由新服务器104使用的正确偏移。

fpo控制器108可以通过软件、硬件或两者结合的方式实现,并且可以向与网络转发和tcp字段更改相关联的应用提供北向接口。如前所述,fpo控制器108可用于将新的tcp连接分载到网络106以及停止分载到网络。分载(和分载的停止)可以由fpo控制器108通过更改tcp和ip分组报头来执行。可以由fpo控制器108执行的功能的示例可以包括以下:

a、通过将分组中的目的地ip从rm替换为客户端ip,以及将目的地端口从rm替换为原始客户端103的目的地端口,将新的tcp连接从rm102分载到网络106;

b、通过将目的地ip更改为新服务器104的目的地ip,以及将目的地端口更改为新服务器的目的地端口,将来自客户端103的流量分载回网络106;和

c、对在服务器故障(或迁移)发生之前发送的数据量进行rm102评估后,根据故障(或迁移)服务器和新服务器之间的差异来适配tcp.seq和tcp.ack。

fpo控制器18可以在可包括协议无感知转发(protocolobliviousforwarding,pof)设备的软件定义网络(softwaredefinednetwork,sdn)设备上实现。

网络106可以包括能够支持tcp连接的任何有线或无线网络,或两者的组合。网络106可以包括局域网(localareanetwork,lan),可包括因特网的广域网(wideareanetwork,wan),个人局域网络(personalareanetwork,pan)以及其他类型的网络。

现在参考图2,其示意性地示出了本发明实施例提供的正常操作模式下的容错系统100中的流量。容错系统100被配置为使得客户端103和服务器104之间的每个新的tcp连接均通过rm102重定向,正如流量箭头112所指示的那样,该流量箭头112表示建立新的tcp连接时客户端和服务器之间的初始流量。一旦分析了信息,rm102可以通过rm-fpo链路110指示fpo控制器108把连接分载到网络106。在分载到网络106之后,客户端103和服务器104之间的流量直接通过网络,正如示例性客户端103c和示例性服务器104c之间的网络流量箭头114所示。

在建立tcp连接时,rm102可以分析初始流量112中的信息(分组信息),并且在分析之后,可以将分组转发到其目的地。可以由rm102对在两个方向上(从客户端到服务器并且反之亦然)行进的分组执行流量112分析。rm102可以监视tcp连接并在数据库中存储http请求和http响应报头。rm102还可以在数据库中存储与客户端103和服务器104之间初始发送的分组相关联的信息,并且该信息可以包括客户端ip地址和端口、服务器ip地址和端口以及所使用的初始tcp序列号和tcp选项,以及其他相关的tcp连接信息。

现在参考图3,其示意性地示出了本发明实施例提供的服务器故障(或迁移)操作模式下容错系统100中的流量。容错系统100可以使用本领域公知的许多技术中的一种或多种来检测服务器104的故障或迁移。这些可以包括监视服务器连接超时和/或ping服务器(通过连续地或周期性地向服务器发送请求(轮询)并监视响应时间来探测服务器)。

申请人已经认识到,通过监视超时状况来检测服务器故障可能优于其他已知技术,因为它通过sdn由fpo更好地支持,并且可以提供更高的检测灵敏度,这将潜在地有助于更早地检测出故障。在容错系统100中,rm102可以在到fpo控制器108的分载指令中设置超时持续时间t,使得无论何时,若服务器104没有在超时持续时间t内发送分组,则fpo控制器可以停止把tcp连接分载到网络106。rm102可以将持续时间t设置为相对低的持续时间,例如1或2秒。

只要在持续时间t内接收到分组,则fpo控制器108可以维持客户端103和服务器104之间的连接,如图2中连接服务器103c和服务器104c的网络流量箭头114所示。如果在持续时间超时时段t期间服务器104没有发送一个或多个分组,则fpo控制器108可以通知rm102存在服务器故障(或迁移)状况。

响应于fpo控制器108的故障通知,rm102可以采取以下动作中的任何一个或任何组合:

a、指示fpo控制器停止将tcp连接分载到网络106,并且初始地将所有客户端流量(通过更改tcp和ip分组报头)重新路由到rm102。到rm102的客户端流量的初始重新路由在图3中由连接客户端103c与rm的客户端-rm箭头118示例性地示出;

b、尝试确定在服务器故障(或迁移)之前有多少数据已从故障服务器,例如服务器104c传送到客户端103c。rm102可以从网络106获得统计数据,或者可以例如通过向客户端发送窗口外分组来探测客户端103c以便接收tcp.ack(由客户端rm箭头118示出)。rm102然后可以将所接收的tcp.ack与rm数据库中存储的服务器104c的初始序列号进行比较,以确定先前由客户端103c传输和接收的数据量;

c、打开到新服务器104e的新连接,并且基于对从服务器104c传输到客户端103c和/或由客户端103c接收的来自服务器104c的信息量的确定,为新服务器提供正确的偏移。图3中通过示例性服务器-rm箭头120示出的连接可以包括新的http连接,并且可以包括原始http请求,其具有包括正确偏移的范围http报头。rm102可以从来自新服务器104e的响应中提取http响应报头。http响应报头可以包括与部分内容相关联的状态代码,例如http状态代码206,而不是ok状态代码,例如http状态代码200。

d、指示fpo控制器108把新连接分载到网络106,包括分别将目的地ip地址和目的地端口从rm102更改为客户端103cip地址和客户端端口,以及在反向的传输中将目的地ip地址和目的地端口更改为服务器104eip地址和服务器端口。另外,可以由rm102指示fpo控制器108根据原始连接和新连接之间的偏移,对tcp.seq和tcp.ack进行适配。然后,如网络流量箭头120所示,流量可以通过网络106在客户端103c和新服务器104e之间直接穿过。

包括rm的容错内容下载系统的操作方法

现在参考图4,其为本发明实施例提供的容错内容下载系统的操作方法的示例性端到端流程图。容错系统可以用于下载音频、视频或其他流数据中的任意一种。为了清楚起见,本文中可以参考容错系统100来解释本发明的操作方法,容错系统100用于下载流视频,并且包括客户端103c、rm102、fpo控制器108以及服务器104c和104e。本领域技术人员可以认识到,本发明的操作方法可以在本发明的附加实施例上实施,具有更多或更少步骤,或者步骤或步骤顺序的变化,或其任意组合的任何方法都可以被实施。

在步骤41,客户端103c打开与服务器104c的新http连接。rm102代理新连接并通过rm与服务器104c进行连接。来自服务器104c的初始流数据由rm102代理到客户端103c。rm102监视包括http请求和http响应的连接信息。包括http报头的连接信息存储在rm102中的数据库中。

在步骤42,rm102通过fpo控制器108将http连接分载到网络。

在步骤43,客户端103c和服务器104c之间的连接是直接的(不通过rm102)。流视频通过网络从服务器104c直接下载到客户端103c。

在步骤44,fpo控制器108检测与服务器104c的网络连接中的超时状况,并通知rm102。rm102提取存储在其数据库中的初始连接信息,以便确定范围偏移。

在步骤45,针对范围偏移,rm102探测客户端103c。

在步骤46,rm102确定范围偏移并建立与新服务器104e的http连接。当连接由rm102代理时,新的服务器104e从所述偏移开始进行流式传输。rm102将最初流式传输的视频传输到客户端103c。

在步骤47,rm102通过fp控制器108将连接分载到网络。

在步骤48,客户端103c和服务器104e之间的连接是直接的(不通过rm102)。流视频通过网络从服务器104e直接下载到客户端103c。

从以上描述可以理解,包括fpo控制器的恢复管理器可以通过将从新服务器到客户端的每个分组上的新服务器ip地址和端口替换为故障服务器ip地址和端口,并通过把来自客户端的每个分组上的旧服务器ip地址和端口替换为新服务器ip地址和端口,来有效地将客户端和故障服务器之间的流量重定向到新服务器以及从新服务器进行重新定向。其结果为容错系统,其包括对客户端和服务器完全透明的故障恢复机制。

现在参考图5,其示意性地示出了本发明实施例提供的rm102的框图。rm102可以包括数据存储模块102a(数据库),流量分析器模块102b,连接监视器模块102c,分载器接口模块102d,服务器监视器模块102e和偏移评估器模块102f。

数据库102a可以存储与客户端103和服务器104之间的流量相关联的信息。存储的信息可以由流量分析器102b生成,并且可以从客户端103和通过rm102代理的服务器104之间的初始流量导出。如前所述,该信息可以包括http请求和http响应报头、客户端ip地址和端口、服务器地址和端口、初始tcp序列号以及其他相关的tcp连接信息。

连接监视器102c可以监视客户端103和服务器104之间的连接,并且可以向分载器接口102d发布命令,该命令与rm102代理客户端103和服务器104之间的初始流量以及将流量分载到网络106相关联。另外,连接监视器102c可以提供与停止分载流量和将代理返回给rm102相关联的指令。此外,连接监视器102c可以指示网络控制器108关于向哪个服务器传送tcp连接(例如服务器104e)。

响应于来自连接监视器102c的命令,分载器接口102d可以向网络控制器108发送分载和停止分载指令。分载器接口102d另外可以从网络控制器108接收关于网络106状态的信息,以由连接监视器102c进行评估以及由rm102中的各模块进行进一步处理。

服务器监视器102e可以包括用以确定与服务器的通信是否已经中断的装置。可以包括服务器轮询器以周期性地或连续地轮询服务器104,从而确定是否存在服务器故障或迁移。可以包括超时接收器以评估自从接收到最后一个分组起的时间量,以便确定是否存在服务器故障或迁移。

偏移评估器102f可以评估和确定要由新服务器使用的正确偏移,而所述连接正在迁移到该新服务器。可以基于在服务器故障或迁移之前传输多少数据来确定正确的偏移,并且可以包括收集网络106的统计数据,和/或,例如通过向客户端发送窗口分组探测客户端。偏移评估器102f另外可以使用存储在数据库102a中的初始tcp序列号和其它信息来确定偏移。偏移评估器102f另外可以直接通过分载器接口102d或连接监视器102c将偏移信息传送到网络控制器108。

除非另有具体说明,否则从前面的详述中显而易见的是,应当理解,在整个说明书中,使用诸如“处理”、“计算”、“算出”、“确定”等术语进行的详述是指计算机、计算系统或相似的电子计算设备的动作和/或过程,所述设备将物理表示的数据,例如计算系统的寄存器和/或存储器内的电子量,操纵和/或转换成类似地在计算系统的存储器、寄存器或其他这样的信息存储、传输或显示设备中以物理表示的其他数据。

本发明的实施例可以包括用于执行本文的操作的装置。具体地,该装置可以被构造用于期望的目的,或者其可以包括通过存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。这样的计算机程序可以存储在计算机可读存储介质中,例如但不限于任何类型的磁盘,包括软盘、光盘、磁光盘、只读存储器(read-onlymemory,rom)、光盘只读存储器(compactdiscread-onlymemory,cd-rom)、随机存取存储器(randomaccessmemory,ram)、电可编程只读存储器(electricallyprogrammableread-onlymemory,eprom)、电可擦除可编程只读存储器(programmablereadonlymemory,eeprom)、磁卡或光卡、闪存或任何其它类型适合于存储电子指令并且能够耦合到计算机系统总线的介质。

本文呈现的过程和显示不是固有地与任何特定计算机或其他装置相关。各种通用系统可以与以本文所教导内容为依据的程序一起使用,或者可以证明可以很方便地构造更具体的装置以执行期望的方法。各种这些系统的期待结构将从下文描述中显现。另外,本发明的实施例不参考任何特定的编程语言来描述。应当理解,各种编程语言可以用于实现如本文所描述的本发明所教导的内容。

虽然本文已经图示和描述了本发明的某些特征,但是本领域普通技术人员将想到各种修改、替换、改变和等同物。因此,应当理解,所附权利要求旨在覆盖落入本发明的真实精神内的所有这样的修改和改变。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1