可靠性组播数据传送系统以及方法与流程

文档序号:11892526阅读:338来源:国知局
可靠性组播数据传送系统以及方法与流程

本申请案主美国暂时申请案案号NO.61/935,784,名称为“用于分布式块存储的组播复制传送”,发明人为迪潘卡·散尔卡,申请日为2014年,2月4日,该申请案所有的内容将在此合并以为参考。

发明范畴

本发明主要是有关于连结于网络数据传输系统。尤其地,本发明是在于提供一种可靠的组播数据传输机制。

发明背景

电子数据系统是在例如是计算机、硬盘、固态内存以及网络交换器等的硬件上使用软件来操作。大多数的数据系统是以块状方式来储存,其中,位的序列是分解成为固定大小尺寸的块状,而后则储存于其下方的储存媒介块之内。当位在下方物理的储存区分隔成为块状时,通常是以这种方式来进行。每一笔数据块均是以大数量的方式来进行读和写。这些区块的数据可能无法在储存媒介内以序列的方式列出,但可以逻辑的方式联结以形成连续的每一笔文件或是每一笔数据。最后一个区块可能只会部份的填满。这些区块会因为某些区块组织的形式而储存于媒介内。数据管理层的重迭则能够使得在后的文件或是每笔数据以及机制的信息在需要时能够展开以及再次获得。在一个连接着互联网的分布式储存中,区块是散布在由数据网络所连结的计算机节点集群上。对于可靠度以及灾害救援而言,数据集群可以分布在计多地理上的不同位置。这些区块则根据适用于这种结构的不同策略而加以分布以及复制于这些数据集群上。通常,这包括了储存在许多不同位置,且相互分离之数据集群计算机节点内的相同区块。

此处的复制是在于产生数据冗余以及负载均衡。此处的复制通常的设计是用来完成两个目的。首先,会使得数据更加接近于处理中的单元。其次,此处的复制是即使在一位置发生了大灾难,该数据仍能保存在另一个位置。数据管理系统其后则可对遗失的数据块再加以处理。其主要是在其它的工作集群(working clusters)上复制那些区块。

复制的程序必须是可靠的,因为数据的完整性以及数据的保存是至关重要的。于各节点之间透过网络的通讯机制必须是有相当的可靠性。目前,区块储存使用的是单点传播串流在被选定作复制的计多不同计算机节点上来复制数据。这种机制称为流水线法(pipelining)。在这种机制内,当各户想要写入数据时,便会向数据管理系统提出需求,以获得数据准备要复制的计算机节点列表。其后,则会得到数据应该要写入之计算机节信息的列表。这种方法即称之为流水线法。客户其后则在列表内对第一个计算机节点打开一个点对点的连接,其则越过列表,并来到流水线中的下一个计算机节点,来将区块数据串流到其中。第一个计算机节点其后则会对第二个计算机节点开启点对点的连接,并将区块数据串流其中,依此而推演下去。收到数据的区块则会送出收到的信息。确认收到的信息则透过在流水线中计算机节点的反向序列而串联回到客户处。另一种选择则是传送者可以打开多个点对点的连接,并在这些连接中使用单点传播数据。

现今仍存在有许多不同的复制方式,例如像主-从配置(master slave configuration)以及相同的数据需要传送到复数个数据服务器上的多主控站点复制(multi-Master replication)。这些情况均可由一个完全可靠的组播数据传递(multicast data transfer)而获得好处。

组播(multicast)是一种群体传播(class of communication),其中,一个体将相同的据由其本身藉由单一的传输而传到许多不同的个体处。该数据可以在形成多个独立通道处以多笔的传送方式传输出去。这种传输会依据其所依赖的网络来以不同的形式产生,例如是互联网组播协议、ISO CLNP组播、片上网络(network on chip)组播、以太网络(Ethernet)组播以及无限宽带(Infiniband)组播。组播数据报(multicast datagram)一般而言是一种不可靠的协定。在所要求的内容是绝对可靠的情形下,则会使用例如是TCP、TP4等可靠的单点传播机制。在需要衡量接收者数量时,则会使用组播来散布实时影像。有限度的数据损失则会以故障或干扰(glitches)来加以显示,其后,通讯则会持续进行。

在数据需要由一个数据源传输到多个接收者时,使用组播传输是一个明显的想法。基于组播传输的有效性以及可行性依赖着速度、可靠度、故障的尺度以及数据遗失的回复性。组播的可靠度是一个特定的问题,且并没有可以解决所有问题的单一答案,因为不同的状况具有着不同形式的可靠度需求。实时的音频以及影像传送需要着序列的传送,但少量的数据遗失则不是那么的严重。一小片段的数据遗失仅会造成音频或是影像上的一个小小的振动(jitter)。在快速缓冲贮存区的更新中,时间上的同步会较之于在快速的数据变化中,快速缓冲贮存区的有效性之重要性来的更为重要。在数据重制中,数据的不可侵犯会比速度来的更为重要。

于广域网络的可靠度状况和区域网络的状况不同。若是组播信道内的任一信道横越过广域网络,这议题就变得相当重要了。在通过一广域网络上,封包分割(packet fragmentation)的可能性随之也增加许多。愈高的数据频率,数据在重组时发生不吻合的机率也随之增加。可以在任何时刻呈现于网络内封包分割的数量会受到封包标识符(packet identifier)的尺寸以及数据速率的限制。这情形在RFC4963内有说明。对于IPv4而言,其封包标识符栏为16位。这仅可让在二个IP地址中,具任何协定的64K封包在每一笔最长的封包生命周期内配对。在1Gbps的速率下,不需要一秒即可填满此栏。第四层校验可用于侦测以及忽略错误组合的封包。在16位的校验栏以及完整分布的数据中,过滤出错误的数据报(datagram)中,于第四层的失败率仅为64K之1。这情形会随着较大尺度,例如是32位,的校验而改进。某些防火墙仅会让已知的通讯协议通过。因此,许多组播的应用都会倾向于使用具有着16位的大小的用户数据报协议(user datagram protocol;UDP)。这一分析显示着对于大量数据的使用,直接以具有较高尺寸的校验来干扰网络层会是一个较好的选项。

组播已用于在分布的文件系统内将数据数据传送到客户端的高速缓存,例如JetFile和Mcache均是此例。JetFile是一种在功能上类似于网络文件系统(Network File System;NFS)的分布式文件系统,它在需求文件的计算机节点上维持着文件的高速缓存。文件的分布是使用可扩展可靠组播(Scalable Reliable Multicast;SRM)协议。在JetFile系统内,发送者并不知道接收者为谁。发送者发送数据到群(group)组播地址。接收者是将文件视为点对点网络的客户。组播是一种不安全可靠的传送机制。在上述的两个例子内,若任一接收者未接收到数据,也不会造成任何的损伤。其后则会重行抓取据,并产生一些些的延迟。若是数据高速缓存并未收到数据,它仅会延迟数据的抓取,而不会造成收据的遗失。数据遗失所造成的问题或许可以利用现有的算法,例如是SRM以及PGM来减少,但却无法完全解决。在所有的算法中,获取所有数据的责任完全在于接收者。若任一或所有的接收者无法获得所有的数据块,发送者将无从知晓。在块复制的情形下,这将是一次失败的操作。在数据复制的情形下,发送者必须要知道任何数据的遗失,并采取补正动作。

基于具有组播之文件传输协议(File Transfer Protocol;FTP)的加密用户数据报协议(user datagram protocol;UDP)利用组播来将文件传送到一群的接收者。在此协议内,发送者将数据分割成一系列可传送的区块,而每一区块具有一序列号。这些区块群组成为段落。发送者将段落内所有的区块一并传送,其后,则等待着由接收者所传来负面的讯息(Negative acknowledgement;NAK)。对于每一区块,只要收到一个NAK,它就会重行传送该区块。若是没有收到任何NAK,就会结束该程序。然而,若是NAK遗失了,或是接收者并未接获该数据,发送者将无法得知。同样地,若是在一大段落的传送尾端传送了NAK,这将会对传送者造成一大负担。因为传送者必须以内存来保留所有传送的封包,或者藉由串流所有的数据来重制所遗失的封包。这对于例如是在远程之每日更新类的偶发性传送行为是可以接受的。但对于高负载、同步发生的传送行为而言,这将会耗尽系统的资源。

在分布式文件系统内,例如是海度普分布式文件系统(Hadoop Distributed File System,HDFS),就需要序列并可靠地传送组成文件区块的字节。目前并没有任何可靠的组播传送可以完成这一需求。因此,这一文件系统到今日仍持续地使用者复数个可靠且利用传输控制协议(Transmission Control Protocol,TCP)的点对点连结。

因此,在此技艺中,于网络数据分布系统中,对于具有较佳的错误回复以及更快速的遗失回复机制之可靠地组播数据传送仍有其必要。

发明概述

以下则呈现出一简化的概述,以便能对本发明的一些部份作出了解。本概述并不是一个整体性的综观,也不在于指出关键性或是主要的部份,也不是在于描绘出本发明的范围。其目的仅在于以一简单的形式呈现一些概念,以作为一种后续准备要呈现之更为详细的内容的排除。

本发明提供了一种藉由产生可靠组播协议的传送。

本发明的一个目的在于对现存分布式区块储存数据系统的复制机制提供了一种在网络层使用组播协议的高速传送。该网络层可以是互联网协议组播、国际标准化组织(International Organization for Standardization,ISO)之无连接网络协议(connectionless network protocol,CLNP)组播或是片上网络(Network-on-Chip)组播或任何此类组播网络。

在由本发明所提供的情况中,有着一个或是多个的发送者以及多个接收者。一般而言,接收者也是同一行政范围内的一部份。接收者之间可以相互的协同合作。因此,其间独特的情况就是数据的传送必须可靠地不传给任一个接收者,或是所有的接收者,而是传给集体地传送到视为一体的接收者。这即是本发明的另一目的。

本发明的其它目的在看了包括附图以及附件的详细说明后即变得相当的明显。

图式简要说明

为了能更清楚地说明本揭露所能获得的特点以及目的,某些特定标的的说明将会藉由所附图式内的具体实施例来完成。需要明白的是这些图式仅在于显示典型的实施例,而不应考虑其会限制所有实施例的范围。不同的实施例将使用附图作出额外特定的说明以及解释,其中:

图1是现有技艺中网络连结分布式数据系统的图例。

图2是根据本发明实施例来设定一典型分布式数据系统的逻辑图例。

图3是在一分布式数据系统内,于许多不同计算机节点中作出数据区块分布的一范例方法图例。

图4是根据本发明一实施例于一分布式数据系统内,当数据横越网络以复制区块时的组播数据流通道的图例。

图5是使用本发明一范例内数据复制使用状况的初始情形图例。

图6是使用本发明实施例于一在线会议使用的初始假设情形图例。

图7是根据本发明实施例在一发送者以及一使用了单点播放以及组播协议之合并式数据系统之间数据传送的设立图例。

图8是根据本发明实施例之数据写入程序以及使用组播协议到计算机节点的数据传送程序图例。

图9是根据本发明实施例内由数据遗失所产生的错误回复程序图例。

图10是根据本发明实施例内将数据传送分割之程序的图例。

图11是根据本发明实施例内域名中必要的组件图例。

图12是根据本发明实施例内一典型状态机部份的设计图例。

详细说明

图1显示的是业界所熟知的网络连结分布式数据系统(100)。该系统100包括了一个或是多个网络主机,例如是客户(1)以及复数个集群(6),每一个集群均包括了复个个位在相同或是不同地理位置的计算机节点(5)。该系统100包括了一个或是多个在计算机上运作的数据系统管理器(Data System Manager)(2)、一个通讯网络(3),以及其它必要的网络装置,例如是复数个网络交换器(4)等等。客户(1)可以是为读者/接收者或是写入者/传送者。客户(1)透过应用程序接口(Application Programming Interface,API)进入到在网络上,由数据系统管理器(2)所准备的数据系统(100)。在不同的地理位置处,有着许多不同的计算机节点集群(6)。某些集群(6)可以位在相同的数据中心,而另一些则位在偏远的位置。上述的模块是透过最近的网络交换器(4)来连结到通讯网络(3)。

图1显示的仅是一种适当的计算系统环境范例,其中,本发明应可在其中加以实施。计算系统环境只是一个适当的计算环境范例,其对于本发明的使用范畴以及功能均没有任何限制。在此范例中,计算环境也不应该解释成对于在范例内所使用的操作环境中所使用的任一或任何组件的组合所产生的依赖。

本发明在许多其它具有一般目的或是具有特殊计算系统环境,或是除了如图1所示的结构内均可以运作。可用以实施本发明之熟知的计算系统、环境以及/或结构的范例包括了,但并不限于个人计算机、服务器计算机、手提电脑装置、多功处理器系统、以微处理器为基本的系统、网络PC、微电脑、主机计算机、包括了上述任一系统或是此类的分布式计算环境。

图2显示的是透过软件以及硬件合并下,于一个典型使用本发原理的结构中,网络分布式数据系统(100)的逻辑模块。硬件组件都已程序化,借着由本发明所提供的软件来执行数据传输机构的一个或是多个的指令。数据系统管理器(2)具有称之为数据管理器(Data Manager)(7)的模块,其在于管理文件或是一笔数据的属性以及元数据。区块系统管理器(8)负责对区块内数据的分布以及复制。每一个计算机节点(5),除开标准的计算机模块,具有不同的模块来处理区块管理。一般而言,它具有一个控制模块(9),来负责听取来自中央的区块系统管理器(8)的指令,并在计算机节上行动。若是对于区块数据需要听取一新的地址,该控制模块(9)指示着I/O模块(10)去听取,并接收该数据。区块管理模块(11)负责在计算机节点(5)内管理数据区块(12)。I/O模块接收传来的区块数据,并将其移到适当的区块处。在客户(1)、计算机节点(5)、以及数据系统管理器(2)之间所有的通讯,以及在节点间的相互通讯都是使用了一组的传送协议(13)。这组的传送协议(13)依赖着其所属的网络。图2显示了一根据本发明一实施例的地址分配模块(14)介绍。该地址分配器(14)负责维护一系列的地址,并在需要时,也负责了对应的传送层服务接入点(Transport Layer Service Access Point,TSAP)。

图3显示了一份文件/一笔数据(15)的数据区块是如何的在计算机节点(5)间分布。数据管理器(7)在其元数据之间,有一指针来针对其不同的数据区块(40)。这些区块(16)在区块储存的地方有着指针来对着不同的位置。在如图3所示的例子中,复制数是三,因此,每一个区块(16)在三个不同的位置,于不同的计算机节点(5)内复制。若是其中有一计算机节点(5)发生了故障,则储存在那儿的区块(12)则会在其它计算机节点(5)处复制。

本发明主张对于位在区块系统管器(8)或是在其它实施例中处于类似的环境,例如是在图6中所示的会议成员管理器(Conference Member Manager)(68)内的组播地址分配器模块,作出修正,以维持计算机节点群组的快速缓冲贮存区以及相应的组播地址。对于地址分配到相同的计算机节点群组,最近使用的组播地址应重行加以分配。因为网络交换器以及路由器已在其快速缓冲贮存区内有着路径,重大的效率将会在网络层级来完成。

本发明并不同于可扩展可靠组播(Scalable Reliable Multicast;SRM)、实际通用组播(Pragmatic General Multicast;PGM)以及可靠组播传输协议(Reliable Multicast Transport Protocol;RMTP),因为它们的设计是用来将数据以高流率和最可靠的方式传输到所有的接收群组成员。本发明的设计是将所有的数据可靠地、以最佳的流率传输到所有接收群组成员的聚集。本发明和架构在具有组播的文件传输协议(File Transport Protocol;UFTP)的用户数据报协议(User Datagram Protocol)以及快捷传输协议(Xpress Transport Protocol;XTP)不同,因为UFTP和XTP接收者之间并不会相互合作,因此无法视为是聚集成为一体。

SRM和UFPT仅仅使用着负面确认机制。负面确认证实了数据确实仍未收到。而这儿有两种方式来证明数据。其一是使用数据具有名称的部份来辨认。另一方式就是使用一系列的数字。本发明使用了通知响应(ACK)以及负面通知响应(NACK)的合并以达到可靠性。通知响应可协助发送者回收含有确认已成功发送之数据的缓冲。负面通知响应则在于协助填补于收到数据间的空隙以及避免不必要的再次传送。

在较佳的实施例中,由本发明所推崇的协议是直接的在例如是具有包括,但不限于协议数字以及校验和尺寸之互联网协议网络层的结构值上来操作。可能会有些限制来引导在另一数据报服务上来运行本发明,例如是IP网络层之组播层上的UDP。

由本发明所提供的解决方法是开放式系统互联(Open System Interconnect;OSI)传送层的空间,就像在ITU-T,ISO8072所定义的一般。在此所使用的专有名词,例如是T-Data要求,T-Data响应等是根据在ITU-T X.214,ISO 8072中所解释的内容,并再加上下列两个专有名词项目:

T-ASSOCIATE:发送者和接收者间的互动并不是直接严格的连接导向,而是一种松散的联合结合方式。错误的回复以及流动控制功能依赖着关联以及合作的参数。这种关系称之为T-ASSOCIATE。

T-DISSOCIATE:为能离开由T-ASSOCIATE所建立的关系,使用了T-DISSOCIATE的原始数据。在发送者和一或多个接收者间的关系上扮演着一个相当从容的释放。

图5和图6说明了根据本发明两个不同实施例中可靠的组播数据传输的初始范例。图5显示了一个分布式数据系统的初始程序,而图6显示着在线会议系统的初始程序。参看图5,显示了一个区块系统管理模块(8),其在于负责透过地址分配模块(14)(如图2所示)来对每一笔数据传输联合作区块分布以及分配组播地址。对于图6所示的在线会议系统,区块系统管理器(8)可以藉由一包括在会议系统管理器(2)内一模块的会议成员管理器(68)来加以执行,会议系统管理器(2)是相类似于数据系统管理器(2)。依赖着其所扮演的角色,且依着在此所描述之程序中的不同阶段,任何计算机节点(5)或是客户(1)均可作为一发送者/传送者(17)或是一名接收者(17)。在此实施例中,自此之后:

客户(1)将被称为发送者(17),因为客户(1)发起了一写入的动作,或是发起了一在线会议。参看图5和图6,当发送者(17)作出了一个发起的要求,也就是说,数据写入要求(19),或是会开始要求(619),数据管理器(7)或会议管理器(67)传送节点要求(20),以获得区块系统管理器(8)或是会议成员管理器(68)的节点讯息。区块系统管理器(8)或是会议成员管理器(68)会解决由那些计算机节点(5)来接收数据,以及相应的组播网络地址。若是所实施的传输是网络层,协议的数字将会在开始的时间以及结构即决定。若是所实施的协议是像UDP或TP0之类的OSI传输层数据报协议,则需要选择端口的数字或是TSAP。对于每一程序加以分派的责任就落在地址分配模块(14)上。此地址分配模块(14)分配着服务参数,以确保他们不会对其它的联合产生侵权。区块系统管理器(8)或是会议成员管理器(68)单点传播此一节点讯息到发送者(17),同时,也将组播地址讯息,不论是直接或是透过代理机制,传送到如图13所示之主导复制区块(12)之计算机节点(5)内的控制模块(9)。若是数据传送需要加密,地址分配模块(14)也会产生一个或是多个加密金钥匙,并将些讯息连同着流水线的信息一同传送出去。所提供的这些信息,也就是信息(21)和(22),均是单点传播要求-响应,以防止泄露以及无授权的散布。单点传播的讯息可在一安全的客户伺服信道上运行,就像传输层安全协议(Transport Layer Security;TLS),安全套接层(Secure Socket Layer;SSL),和超文本传输协议(HyperText Transfer Protocol;HTTP)。

发送者(17)获得完整的计算机节点列表,其包括了如在图5和图6所示透过单点传播讯息(21)的复制流水线。在一较佳的实施例中,复制流水线的一个次小组可以同步的定义,并维持着不同步。同步的部份包括了具有保证更新的计算机节点。若是保证失败,则复制程序也将会被视为失败,并因此而放弃。

参看图5和图6,当属于不同集群(6)的复数计算机节点(5),且包括在组播网络地址信息(22)之接收者(18)接收到组播网络地址以及端口信息(22)时,它们即开始听该地址以及端口(23)。交换器厶及路由器由网络获得组播地址订阅信息,并建立组播路径。

发送者(17)建立一个对应于传送程序的分级状态机器。发送者之一则作为是发起程序者。参看图7,发送者(17)发送一T-ASSOCIATE要求讯息(24)组播到每一个参与程序的计算机节点。发送者(17)同时也发送了它准备传送之数据的初始序列号码。如图12所示,在送出T-ASSOCIATE要求后,一定时器即开始计时。定时器会重试结盟或联合程序,直到结盟建立完成,或是重试次数用尽为止,并发出一异常信号。当结盟完成时,定时器则取消。接收的计算机节点或是接收器(18)以一T-ASSOCIATE回复(25)来作回应。这可以配置为单点传播或是组播。结盟要求的接收者也会对可能发送的数据发出一初始序列号码。始发送者(17)之后对接收者(18)发出一T-ASSOCIATE确认。如果T-ASSOCIATE回复(25)是单点传播,则是发送者(17)的责任来将接者的名单传送到其它接收者。它是以T-ASSOCIATE确认(26)讯息组播到所有参与该程序的计算机节点。这包括了所有参与计算机节点讯息以及其它相应的始序列号码。对于接收者(18)知道其它接收者的好处之一是在于若是有任何需要修复的工作,它可以在最近的接收者来进行。接收者以T-ASSOCIATE确认讯息(26)回复,来作为确认。若是任一接收节点(5)未能在预先定义的时间内回复,发送者(17)检视相应的聚集政策以及同步列表。依据这些,可能藉由发送另一组T-ASSOCIATE要求讯息(24)来重行再试一次。在所配置重试的次数使用完毕时,发送者(17)则会处理所有成功设立结盟的接收者。若这并不包括任何在同步集合内的接收者,又或者因为受到聚集政策的限制,发送者(17)发出异常信号,并放弃该传送。一旦结盟已如图7所示的程序建立完成,任何一个发送者(17)则可发起数据传送到结盟内一员的接收者。

结盟建立阶段也用以协调结盟内的操作参数。发送者在T-ASSOCIATE要求中建议参数值。接收者则以其希望于T-ASSOCIATE回复内推翻的数值来响应。经过修正的数值则会使用T-ASSOCIATE确认来传到接收者。服务参数的型态可以有两种数值,可靠序列串以及可靠序列封包。两者的设定都可以提供可靠以及序列式的传送。前者接受将数据以串流形态发送到其客户层,而后者接受将数据以有限度尺寸的封包发送出去。

参看图8,发送者(17)使用T-DATA要求(27)将数据的封包组播到接收者。这则将数据报数据分解成一系列具有识别讯息、弥补、长度以及数据段落的封包。包括了封包开始部份的数据包大小尺寸是在该接口上所允许最大传送层协议数据单元(Protocol Data Unit,PDU)的尺寸。这一般称之为最大传送单元(Maximum Transfer Unit,MTU)。如图12所示,在传送T-DATA要求开始后,一定时器即开始工作。发送者(17)之后则等待来自接收者(18)的T-DATA回复(T-DATA RSP)(28)。每一个收到正确以及完整数据的接收者,则会发送一具有数据(ACK)最新序列号码的T-DATA RSP(28)。此时则定义了一个滑动窗口,其基本上可以是为一封包数量,或是八位计量数,这些都是不用等待T-DATA回复(28)而可直接传送的。该窗口在对应于每一个收到T-DATA回复(28)讯息的接收者的状态机器处向前移。仅有在发送者(17)具有了所有必要的T-DATA回复数后,发送者(17)才能总结出一特定的封包已到达其预定的接收者(18)。系列号码永远的都在发送者的内文中处理着。在一假设状况中,当有多个发送者时,在任一接收者处就有那么多的序列号码发展。

T-DATA回复(28)可以送到发送者(17)的单点播放地址,或是送到发送者(17)以及接收者(18)结盟的组播地址以作为回复(29)。在另一种假设情况下,组播被用为作数据回复,而这则会造成了可计量的问题。在这情形下,T-DATA回复(28或29)的处理并不会是一个问题,因为涉及一程序内的计算机节点数是一小的固定数字而已。若是,T-DATA回复(28)送到组播地址作为回复(29),且有任一接收者未能接获该数据封包,在其它计算机节点看到此T-DATA回复(28)时,它马上的了解到有一封包的遗失。否则,若回复是以单点传播发送,接收者仅有在它接收到下一次传送后发现之间的间隙,或是发送者收到响应并要求回复的时间终了后,才会发现遗失的封包。

参看图9,若是一接收者(18)发现了一个或是多个的间隙(32)时,在接到例如是区块封包T-DATA要求或是区块终止(end-of-block)组播(31)讯息时,接收者会在T-DATA回复(33)加上一个负面通知响应(NACK)回给发送者,这是假设来自发送者(17)的传送窗口下边缘并未超过间隙的开始。若是下边缘已超出该数字,接收者(18)则会转向其它接收者来满足要求。接收者(18)将负面T-DATA回复(33)组播到次网络特定组播地址。由于在程序内所有的计算机节点都互相知道彼此,它们会启始一定时器来传送一修复响应。最近的计算机节点发出修复响应封包单点播放到需要它的接收者,并对在组播地址(34)上的其它计算机节点发出一修复报告。若在时间终了前并未见到修复报告,所有的参与者行开始时,并下一个最近的计算机节点发送出修复响应以及修复报告。在所有的重试次数均已用尽以及错误问题已解决时,才会停止。错误的处理全视发生错误的计算机节点是否属于上述的同步列表。上述的机制对于在计算机节点明白其网络技术,以思量出传送的距离以及成本时,是好的。另种方式则是要求着遗失数据封包的计算机节点能够以数量级的方式来发出要求。其首先将其发到一次网络限制组播地址。若仍未能请求一响应,它就会发送到一般的组播地址,但却是含着有一个设定小数值的封包在网络上可以存活的时间(Time-To-Live;TTL)网络栏,其后,则会增加该数值,以在一段行程后,提升对计算机节点的要求。提升的最高层级是在它要求发送者(17)发送修复封包时。提升层级可在封包开始部份的选项字段加以设定。

在所有的数据都已成功的传送后,发送者发送一个不具有可指示数据暂时终止之数据的T-DATA要求。其后的处理情形则和前述相同。

为了流程控制,T-DATA要求封包会经历一个传输窗口控制。其它的封包则不受到那种控制的影响。窗口控制形成了一种不需透过T-DATA响应封包来等待确认而直接可传送的八位的上层边界。T-DATA响应封包可包括遗失数据片断的信息。它同时也可包括了一接收窗口尺寸,它可以更进一步地限制在接收者负载上决定的整体窗口尺寸。

一般而言,处理遗失或是失误的封包时,只要发现了间隙,该笔封包就会重行传送。重新传送的状况会附有一定时器,而在一封包传送时,该定时器就会触发。接收者由其早已收到的序列号码来检视重行传送的数据。若它早已有了该笔数据,则会将其放弃掉。某些值得关注的状况已在之前的段落详细说明。

参看图10所示,若准备关闭一接收者,或是侦测到无法回复的错误,I/O模块(10)将上述情形通知(35)控制模块(9),尔后控制模块(9)就会依设计来发送一T-DISASSOCIATE要求(36)到发送者的单点播放地址,或是组播地址。发送者依设计以T-DISASSOCIATE确认(37)响应于接收者的单点播放地址或是组播地址。

不论何时一旦任一发送者或是接收者希望终止结盟,它就会发出一个T-DISASSOCIATE要求(38)到组播地址,并期待着由其它以单点播放方式传来T-DISASSOCIATE确认(37)。定时器同样的也含在其中。若确认信息未收到,它就会以设计的次数重试,而后,在最终时关闭整个程序。

拥塞控制是由三个机制的合并来加以实施。第一个是速率控制,这是明确的制度了可由发送者在每一结盟基础以及整个结盟之下送出数据的最大速率。第二个则是传送窗口,这是制定了发送者在等候确认之前所能传送数据的最大值。第三个是由每一接收者在将T-DATA响应封包作为数据确认的接收窗口。这是一个设计之传送窗口的次组合。其是在接收者处依赖着系统资源的。由发送者所使用的一个数据在网络上延迟的时间(Round-Trip-Time,RTT)是在流水线内对于处在远处的计算机节点的同步部份的计算机节点的RTT的函数。这类的函数可以,但并不限于,加以最大化,平均化等。

流量控制是由一并行的拥塞控制以及所设计的例如是传输窗口以及接收窗口之类的参数来实施。这些设计的参数特别的是在管理网域,通常,但并不限制于界面频宽、联结频宽、时刻、网络交通等。

由上述的说明可知,对于本发明复制机构而言,由发送者(17)所传送的数据对于聚集的接收者而言,必须是可靠的。换句话说,客户(1)并不需要负责将数据传送到所有的计算机节点(5),只需要传送到计算机节点的聚集即可。计算机节点的聚集可以由政策来制定。该政策可以,但不限于,下列的任何一种:

1)所有或全无:只有所有在复制流水线内的计算机节点都收到数据时,客户才会认为传送是成功的。

2)第一个N:在复制流水线内的计算机节点内只有第一个N计数收到数据时,客户才会认为传送是成功的。

3)任一N:在复制流水线内的计算机节点内,只有在所有计算机节点中的任何N计算机节点收到数据时,客户才会认为传送是成功的。

4)同步的N:在复制流水线内的计算机节点内,只有在所有计算机节点中的同步N计算机节点收到数据时,客户才会认为传送是成功的。

由那些政策所定义的计算机节聚集彼此相互协助,以确保由发送者(17)所发送的数据是可靠地传送到每一个参与此结盟的接收者(18)。在这一实施例中,所使用的协议是对接收者来作为一种状态机器,而对传送者或发送者而言则是作为等级机器。对于发送者而言,该等级是分为二种等级。下方的阶层对应到每一个接收者。上一层对应于所有接收者的聚集。

图11显示了数据包开始部份(900)的各种不同组件,其在本发明通讯协议的讯息中,并不需要在同一次序。某些组件可能,也可能不会使用不同的大小尺寸。使用以及尺寸大小的信息说明了一特定实施的结构。源传送层服务接入点(Transport Layer Service Access Point,TSAP)(901)以及目的TSAP(902)是在此协议下的不同使用者间组播。数据包开始部份长度(903)指的是数据包开始的部份(900)。在较佳实施例中,数据包开始部份(900)是具有固定的长度,且其结构也是如同上述所述一般。在那情形下,数据包开始部份长度(903)字段将不呈现出来。其它具有不同尺寸的数据包开始部份(900)则将会呈现出数据包开始部份长度(903)字段。检查码(904)理想地将会是至少32位长,但也可使用较短的长度。检查码的算法应在架中明确表达出来。版本(905)指的是协议的版本。PDU形式(906)字段说明了封包的形式,就像是结盟要求或是结盟响应或是数据要求等。会期ID(session ID)(907)是为了此会期所产生的ID。在任何时间,于网络内都必须是独特的。旗号(Flag)(908)字段携有不同的二位数值字段,代表着在协议内不同的设定。选项(909)携有不同的非二位数值字段。序列号码(910)字段含有有文意相关的意义。在结盟设立封包中,它指的是初始序列号码。在数据要求封包中,它指的是在那封包中,数据八位序列号码。在数据响应封包中,它代表的是聚集的序列号码。在数据响应要求封包中,它指的是已传送的数据八位最大序列号码。在分离封包中,它代表的是已传送的数据八位最大序列号码。在数据修复封包中,它指的是遗失数据的开始序列。序列号码栏包着零,并每次到达最大字段值时会向前。每一次包裹起来的序列号码的重复都会有一个在包裹起来前的序列号码为高的位置值。长度栏(911)说明了数据部份的整体长度。

图12显示着透过一片断设计的状态机器。它呈现了聚集政策的协同。在状态I的状态机器发送一要求(1002),并启动定时器来等待着响应(1004)。状态机器现在则处在等待(1003)状态。定时器也可以有一个重新设定的重试计数器。如果收到了响应(1004),机器进入到评估政策(1006)。基于评估的结果,它会进入到状态2(1007)或是回到等待(1003)状态来等待其它的响应(1004)。依着状态的不同,它可以启动另一个要求(1002),然后进入到等待状态(1003)。若是定时器过了时间,它会启动另一个要求。若重试计数已耗尽,可以有一特殊情形(1008),它在评估了政策后,进入到状态3(1009)。

使用了流程图以及方法图来说明本发明的步骤。在将本发明的各步骤利用图表序列的说明后,某些,或是所有的步骤或许可以不同的顺序来加以执行,或许可以加以合并或是忽略;同时某些或是所有的步骤也可以同步的执行。此外,在本发明的一个或是多个的实施例中,所述的步骤中,可能对其中的某一步骤或是多个步骤加以忽略、重复、以及/或以不同的顺序来加以执行。再者,在图表中所忽略的额外步骤亦可包括在本方法之内。因此,在图5到图8所示步骤不应解释为对本发明范畴的限制。

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