耐故障地在计算机网络上转发数据的方法和设备的制作方法

文档序号:7634832阅读:230来源:国知局
专利名称:耐故障地在计算机网络上转发数据的方法和设备的制作方法
技术领域
本发明一般涉及计算机系统和计算机网络,具体地说,涉及在计 算机网络上的内容传送。特别,本发明涉及在计算机网络上自适应地 转发数据的方法和设备。
背景技术
图1为通过网络转发数据的系统100的一个实施例的示意图。许
多端对端计算应用(包括重叠网络、端-系统组播、代理服务器、网
络地址变换和协议隧穿等)使用中间或者说转发节点106广106n(例如, 计算设备或路由器)来将数据流112从一个发送端102 (例如,服务 器)传送给一个或多个接收端104。接收端104可以再将数据传送给 一个或多个计算应用108。
例如系统100之类的系统的典型问题是在任何转发节点处的故障 或失常都会中断端到端的链,从而导致传送给接收端的数据残缺。对 于大的网络来说这尤其麻烦,因为节点故障概率随着所用的转发节点 的增多而增大。应对转发网络内节点故障的传统解决方案包括基于 源的修复,诸如在数据源与接收端之间的传输控制协议/网际协议 (TCP/IP)会话;基于分组号的重传请求;以及各种应用和内容专用 的复原方案(例如,在一个偏离文件开始处的特定字节继续执行文件 传送协议,或者在一个特定帧序号继续执行视频传输)。然而,这些 传统的解决方案常遭受许多限制,包括可扩缩性限制和不能适合在使 用多种传送或传送普通(非内容专用)数据流的网络上使用。因此, 它们不适合在使用多个点对点协议的自适应改变的网络上以与内容无 关的方式传送数据。
因此,需要有一种能耐故障(failure resilient)地在计算机网络
上转发数据的方法和设备。

发明内容
在一个实施例中,本发明实现了一种耐故障地在计算机网络上转 发数据的方法和设备。在一个实施例中,将标记例如在发送节点引入 数据流,它使转发节点和/或接收端可以有效地跟踪数据流接收情况。 这标记起着数据传送过程的校验点的作用,在每个转发节点和接收端 都可识别和索引。每个接收端在将数椐传送给应用前保存标记,由此 在数据流内指定了确认所有在此之前的数据都已传送给应用的点。这 样,如果一个转发节点有故障,接收端可以向替代转发节点请求数据 流,请求替代转发节点提供从标记开始的数据。



下将参考附图所示的本发明的实施例对以上概述的本发明进行更为具 体的说明。然而,要指出的是,附图只是例示本发明的典型实施例, 因此不应认为是对本发明的范围的限制,因为本发明可以用其他等效 的方式实现。
图1为端对端计算网络的一个实施例的示意图。
图2为例示根据本发明的耐故障地将数据从一个发送端转发给一
个或多个接收端的方法的一个实施例的流程图3为例示用图2所示的系统分发内容的方法的表;
图4为例示恢复数据流内丢失的数据的方法的一个实施例的流程
图;以及
图5为用通用计算设备实现的耐故障的转发系统的高层方框图。 为了便于理解,已尽可能用相同的标号标注各附图内共同的部


具体实施例方式
本发明提供了耐故障地在计算机网络上转发数据的方法和设备。 在一个实施例中,诸如转发节点故障、性能下降、查询、资源使用不 平衡之类的触发状态启动网络自适应,以正确恢复数据流的传输接收。
图2为例示数据流过根据本发明的耐故障地将数据从一个发送端 转发给一个或多个接收端的方法200的 一个实施例的流程图。方法200 在步骤202初始化后进至步骤204,发送节点或转发节点(例如,图1 的发送端102或任何一个转发节点106)得到(在发送端的情况下) 或接收到(在转发节点的情况下)至少一部分数据流。在一个实施例 中,数据流可以就是一个很大的数据流的一部分或任意大小的数据段。 也就是说,较大的数据流的"块"或"部分"的序列从发送节点发送 给接收节点。在步骤206,发送端或转发节点将标记注入数据流的部 分,通过点对点的可靠传送协议(例如,耐分组丟失的协议,诸如 TCP/IP之类)将经"标记"的数据流(受到或者没有受到进一步修改 的)转发给网络内一个或多个下一接收方节点(例如, 一个或多个后 继转发节点或接收节点)。标记标示了普通数据流内的参考点,在一 个实施例中是带唯一标识符的可识别比特字段。标记可以用保留的比 特序列、固定的标记间偏移量或由前一个标记指定的偏移量识别。因 此,标记可以周期性地注入数据流,以便使多个经标记的数据流可以 通过网络传送。
在步骤206注入标记后,方法200转至两个可能的后续过程中的 至少一个过程。在步骤208-210,方法执行转发节点功能的步骤;在 步骤209-214,方法200执行接收节点功能的步骤。
在步骤208,方法200查询经标记的数据流的接收方是否为转发 节点。如果方法200确定接收方为转发节点,方法200就进至步骤210, 在步骤210方法200检查所接收的数据流,将数据存储在转发节点的 本地緩存器内,在转发节点创建或更新标记索引。在一个实施例中, 方法200更新的标记索引包括两个关键部分(1)最近所接收的标记 的记录;以及(2)转发节点先前所接收和存储的每个标记的记录。方 法200更新了标记索引后,方法200将经标记的数据流转发给网络内
下一接收方(例如, 一个或多个其他转发节点或接收端)。经标记的
数据流由下一接收方节点从方法200内紧接步骤206的点开始处理, 如从步骤210的循环所示。因此,所有的转发节点接收到经标记的数 据流,将经标记的数据流转发给下一转发节点或接收端,并且编标记 索引。
图3为根据本发明的标记索引300的 一个实施例(诸如由方法200 在图2的步骤210更新的标记索引)的示意图。在一个实施例中,标 记索引300为一个表。如图所示,标记索引300为每个标记(例如, 标记MrM3)存储标记的唯一标识符和它在本地緩存器内的位置。如 下面要结合图4进一步说明的那样,所存储的这个信息可以用来恢复 例如由于转发节点故障而丟失的数据。
再来看图2,如果方法200在步骤208得出经标记的数据流的接 收方不是转发节点,方法200就终止。
此外,在步骤206注入标记后,方法200在步骤209查询接收方 是否为接收节点。如果方法200得出接收方为接收节点,方法200就 进至步骤212,将接收端所接收的数据流数据排队,直到遇到标记。 在步骤214,方法200保存标记,将排队数据(即,所有未传送的、 数据流内该标记前的未标记的数据)传送给希望得到原来的数据流的 过程(例如,应用或存储过程)。或者,如果方法200在步骤208得 出接收方不是接收节点,方法200就终止。
在一个实施例中, 一个或多个节点可以既是转发节点又是接收节 点。也就是说, 一个节点既可以将所接收的数据传送给应用也可以将 所接收的数据转发给其他节点。因此,节点能执行方法200内所含的 转发和接收方法。这样,虽然转发和接收过程(例如,分别为步骤 208-210和209-214 )用顺序的标号标示,但这些标号并不意味着过程 出现的次序。因此,本领域技术人员可以理解,转发和接收方法是独 立执行的,而且这两个方法实际上可以同时发生,也可以以任何次序 先后发生。所以,标号的顺序如应用于步骤208-216绝非意在限制。
因此,注入数据流的标记表示数据传送过程的检查点。通过在接
收端保存标记,方法200在数据流内指定点,所有前面的数据都已按 次序可靠地传送给等待的应用。方法200还有在数据流内指定后续的 数据尚需被传送的点的功能。所保存的标记信息可以用来恢复例如由 于转发节点故障而丢失的数据。
图4为例示恢复数据流内丟失的数据的方法400的一个实施例的 流程图。例如,在转发节点(例如图1的转发节点106)有故障(例 如,由于从网络断开或电源故障)从而停止向后继的接收方转发数据 的情况下,可以执行方法400。方法400在步骤402初始化后进至步 骤404,方法400识别转发节点有故障,从而将接收端(或后继的转 发节点)连接到一个替代的转发节点或"备份节点"(例如,在路由 选择路径内有故障的节点之前的节点)上。或者,方法400也可以将
接收端连接到有故障的转发节点的任何仍在接收数据流的"姊妹"节 点上。在一个实施例中,基于效率选择备份节点。例如,如果有故障 的节点为图1中的节点Xn,备份节点可以选为节点&或节点Xn+1。 可以根据距离、延迟、计算费用之类来选择适当的节点。
于是,方法400进至步骤406,在步骤406方法400向备份节点 请求从接收端所保存的最后标记M开始的数据流数据。在另 一个实施 例中,方法400可以请求从最后标记M后的所指定的位置(例如,标 记M后三个比特)开始的数据流数据。请求包括标记M的唯一标识 符。在步骤407,方法400查询备份节点是否接受在步骤406提出的 请求。如果备份节点拒绝这个请求,方法400返回到步骤404,并连 接到另一个备份节点上。或者,如果在步骤407备份节点接受这个请 求,方法400使备份节点从备份节点的标记索引中查找标记M。如果 标记M存在,备份节点用标记M在它的本地緩存器内的位置作为起 点开始发送经标记的数据流。在一个实施例中,任何驻留在本地緩存 器内的标记M的点之前的数据都被废弃。
在步骤408,方法400将接收端的队列"写指针"重置到紧接标 记M后的位置。方法400还擦除本地緩存器内写指针后的数据,并且 接收端现在就开始对通过新的连接来自新的转发节点的数据排队。随
着经标记的数据流通过新的连接从备份节点到达接收端,到达的数据
流重写接收端本地緩存器内在标记M之后的任何数据。在另 一 个实施 例中,方法400可以向多个备份节点请求经标记的数据流中的一些离 散的部分。
在步骤410,方法400查询下一个标记M+l是否已到达接收端。 如果下一个标记M+l已经到达,方法400就在步骤412将由接收端排 队的数据(减去标记M)传送给请求数据的应用。如果下一个标记 M+l还没有到达,方法400继续对通过新的连接来自备份节点的数据 进行排队。本领域技术人员可以认识到,方法400的步骤408-412是 通常由接收端节点执行的步骤;这些步骤这里在方法400的上下文中 作了说明,以结合恢复所丢失的数据例示接收端节点用以实现这样一 些步骤的方法。
因此,方法400能通过从中断点恢复数据传输正确有效地修复故 障。而且,由于修复只需要与附近的转发/备份节点通信,因此修复路 径短,而且网络负荷^皮合理分配。方法400还在应用层用任何可靠的 点对点传送协议工作,可以平衡现有的点对点协议,而且可以允许重 组帧和多协+义转发。因此,方法400可以与传送协议无关以及与数据 流内容无关地工作。
图5为用通用的计算设备500实现的耐故障转发系统的高层方框 图。在一个实施例中,通用计算设备500包括处理器502、存储器504、 耐故障转发机构或模块505和诸如显示器、键盘、鼠标、调制调解器 之类的输入/输出(1/0)装置506。在一个实施例中,至少一个I/0装 置为存储装置(例如,硬盘驱动器、光盘驱动器、软盘驱动器)。应 理解,耐故障转发机构505可以实现为通过通信信道与处理器连接的 物理设备或子系统。
或者,也可以是耐故障转发机构505表现为一个或多个软件应用 (甚至软件和硬件的组合,例如使用专用集成电路(ASIC)),软件 从存储介质(例如,I/O装置506 )装入通用计算设备500的存储器 504由处理器502运行。因此,在一个实施例中,耐故障转发机构505和所关联的在这里结合前面的附图所说明的方法可以存储在计算机可读介质或载体(例如,RAM、磁盘或光盘驱动器或者软盘之类)上。 虽然以上结合系统从节点故障恢复对本发明的方法作了说明,但 本领域技术人员可以理解,本发明可以在内容传送领域内具有其他一 些应用。例如,本发明可以被2被实现为保证在由于任何原因对网络 进行重新配置时的可靠数据传送。其他重新配置技术可以包括用集中 或分布的节点注册表(已知的服务器或域名服务器(DNS))查找、 分布散列表查找或广播搜索等寻找备份节点。网络重新配置的其他原 因可以包括响应性能下降、优化网络资源利用率和平衡负荷等。因此,本发明体现了在内容传送领域内的显著进步。所提供的方 法和设备可以有效而耐故障地通过网络转发数据。网络能正确和有效 地在中断点恢复数据传输,而不会向接收端发送冗余或无序的数据。 对于向发送端请求数据的应用来说,系统的故障和恢复基本上是透明 的。而且,本发明的方法不是应用专用的,而是可以适用于任何类型 的数据流,无论内容是什么,也适用于任何类型的可靠的传送协议。虽然以上针对本发明的优选实施例进行说明,但在不背离以下权 利要求书所确定的本发明的范围的情况下可以得到本发明的其他和进 一步的实现方式。
权利要求
1.一种通过网络将数据流从发送端节点转发给一个或多个接收端节点的方法,所述方法包括下列步骤接收具有部分数据流和一个或多个标记的经标记的数据流;将所述一个或多个标记和所述经标记的数据流的至少一个后续部分存储在缓存器内;将所述经标记的数据流转发给一个或多个下一接收方节点;以及响应对存储在缓存器内的数据流数据的请求,在指定的标记处开始数据传送,其中所述请求为请求传送在所指定的标记后的数据流数据。
2. 权利要求1的方法,其中所述标记为具有唯一标识符的可识 别比特字段。
3. 权利要求1的方法,其中所述标记由发送端节点注入所述部 分数据流。
4. 权利要求1的方法,其中所述标记由在发送端节点与一个或 多个接收端节点之间的中间节点注入数据流。
5. 权利要求1的方法,其中所述经标记的数据流用点对点的可 靠传送协议发送。
6. 权利要求5的方法,其中所述点对点的可靠传送协议为 TCP/IP协议。
7. 权利要求1的方法,其中所述一个或多个下一接收方节点为 在发送端节点与 一个或多个接收端节点之间的中间节点,其中所述中 间节点适合将经标记的数据流转发给一 个或多个接收端节点。
8. 权利要求1的方法,其中所述存储所述一个或多个标记的步 骤包括将经标记的数据流内的所述标记记录为最近接收到的标记;以及 更新标记索引,其中所述标记索引记录先前接收到的标记。
9. 权利要求8的方法,其中所述标记索引为每个接收到的标记 记录唯一标识符和在緩存器内的位置。
10. 权利要求l的方法,其中所述一个或多个下一接收方节点为一个或多个接收端节点。
11. 权利要求l的方法,所述方法还包括下列步骤 传送部分数据流给应用。
12. 权利要求11的方法,其中所述传送部分数据流的步骤包括 传送数据流的从所述标记之一开始的部分。
13. 权利要求11的方法,其中所述传送部分数据流的步骤包括 传送数据流的从数据流内所述标记之一后的 一 点开始的部分。
14. 权利要求l的方法,其中所述一个或多个下一接收方节点适 合转发经标记的数据流和接收经标记的数据流以传送给一个或多个应 用。
15. 权利要求14的方法,其中所述一个或多个下一接收方节点 适合同时执行转发和接收步骤。
16. 权利要求14的方法,其中所述一个或多个下一接收方节点 适合以任何次序执行转发和接收步骤。
17. —种恢复中断了的通过网络从发送端节点到接收端节点的 数据传送的方法,所述方法包括下列步骤连接到网络内的一个中间节点;以及向中间节点请求从接收端节点所保存的最后一个标记开始的数据。
18. 权利要求书17的方法,所述方法还包括下列步骤: 将接收端排队写指针复位到紧接上次所保存的标记后的位置;以及将从中间节点发给接收端节点的数据排队。
19. 权利要求书17的方法,所述方法还包括下列步骤 在从中间节点接收到下一个标记时传送接收端所排队的数据,其中所排队的数据被传送给应用。
20. 权利要求17的方法,其中所迷向中间节点请求数据的步骤 包括下列步骤指定标记的唯一标识符;以及查找中间节点的本地緩存器内的标记。
21. 权利要求书20的方法,所述方法还包括下列步骤 废弃本地緩存器内在标记后接收到的任何数据。
22. 权利要求书17的方法,所述方法还包括下列步骤 重写接收端节点的本地緩存器内标记后的数据,其中用正从中间节点接收到的数据重写数据。
23. —种通过网络转发数据的系统,所述系统包括 发送数据流的装置; 接收数据流数据的装置;指定和跟踪数据流数据内的参考点的装置;以及 通过指定替代发送装置应该从其开始发送数据流数据的点从替 代发送装置接收数据流数据的装置。
24. —种装有通过网络将数据流从发送端节点转发给一个或多 个接收端节点的可执行程序的计算机可读介质,其中所述程序执行下 列步骤接收具有部分数据流和一个或多个标记的经标记的数据流; 将所述一个或多个标记和所述经标记的数据流存储在緩存器内;以及将所述经标记的数据流转发给一个或多个下一接收方节点;以及 响应对存储在緩存器内的数据流数据的请求,在指定的标记处开始数据传送,其中所述请求为请求传送在所指定的标记后的数据流数据。
25. 权利要求24的计算机可读介质,其中所述标记为具有唯一 标识符的可识别比特字段。
26. 权利要求24的计算机可读介质,其中所述一个或多个下一 接收方节点为在发送端节点与 一个或多个接收端节点之间的中间节 点,其中所述中间节点适合将经标记的数据流转发给一个或多个接收端节点 。
27. 权利要求24的计算机可读介质,其中所述存储所述一个或 多个标记的步骤包括将经标记的数据流内的所述标记记录为最近接收到的标记;以及 更新标记索引,其中所述标记索引记录先前接收到的标记。
28. 权利要求27的计算机可读介质,其中所述标记索引为每个 接收到的标记记录唯一标识符和在緩存器内的位置。
29. 权利要求24的计算机可读介质,其中所述一个或多个下一 接收方节点为一个或多个接收端节点。
30. 权利要求24的计算机可读介质,其中所述一个或多个下一 接收方节点适合转发经标记的数据流和接收经标记的数据流以传送给 一个或多个应用。
31. 权利要求30的计算机可读介质,其中所述一个或多个下一 接收方节点适合同时执行转发和接收步骤。
32. 权利要求30的计算机可读介质,其中所述一个或多个下一 接收方节点适合以任何次序执行转发和接收步骤。
33. —种装有恢复中断了的通过网络从发送端节点到接收端节 点的数据传送的可执行程序的计算机可读介质,其中所述程序执行下 列步骤连接到网络内的一个中间节点上;以及向中间节点请求从接收端节点所保存的最后 一个标记开始的数据。
34. 权利要求33的计算机可读介质,其中所述程序还执行下列步骤将接收端排队写指针复位到紧接上次所保存的标记后的位置;以及将从中间节点发给接收端节点的数据排队。
35. 权利要求33的计算机可读介质,其中所述程序还执行下列步骤 在从中间节点接收到下一个标记时传送接收端所排队的数据,其 中所排队的数据被传送给应用。
36. 权利要求33的计算机可读介质,其中所述向中间节点请求 数据的步骤包括下列步骤指定标记的唯一标识符;以及 查找中间节点的本地緩存器内的标记。
37. —种为将数据流从发送端节点传送给一个或多个接收端节 点的网络提供内容传送优化的方法,所述方法包括下列步骤将一个或多个标记注入数据流,以产生包括部分数据流和所述一 个或多个标记的经标记的数据流;存储所述经标记的数据流和所述标记;接收来自所述一个或多个接收端节点中至少一个的、请求数据流 的由标记的位置标识的部分的数据请求;以及转发数据流的从数据请求所指定的位置开始的部分。
全文摘要
在一个实施例中,本发明实现了一种耐故障地在计算机网络上转发数据的方法和设备。在一个实施例中,将标记例如在发送节点引入数据流,它使转发节点和/或接收端可以有效地跟踪数据流接收情况。该标记起着数据传送过程的检查点的作用,在每个转发节点和接收端都可识别和索引。每个接收端在将数据传送给应用前保存标记,由此在数据流内指定确认所有在此之前的数据都已传送给应用的点。这样,如果一个转发节点有故障,接收端就可以向替代转发节点请求数据流,请求替代转发节点提供从标记开始的数据。
文档编号H04L12/24GK101164056SQ200580012443
公开日2008年4月16日 申请日期2005年4月22日 优先权日2004年4月23日
发明者震 刘, 杰雷米·I.·西尔伯, 萨姆比特·萨胡 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1