一种链式数据传输方法、节点及系统的制作方法

文档序号:7922093阅读:168来源:国知局
专利名称:一种链式数据传输方法、节点及系统的制作方法
技术领域
本发明涉及数据传输技术领域,特别是涉及一种链式数据传输方法、节 点及系统。
背景技术
随着互联网技术的发展,网络中的任意两台设备之间都可以通过数据传 输实现资源共享。在实际应用中,我们经常会遇到需要将一台设备上的数据 向多台设备进行复制的情况,现有技术中,常用的方法是由数据源所在设备 向目标设备逐台复制数据。这种方法不但操作麻烦,而且每次复制过程都需 要占用源设备与当前目标设备之间的带宽。特别是当目标设备与源设备处于 不同网段、并且目标设备均处于相同网段时,这种复制方法显然不利于节约 宝贵的网间带宽资源。
P2P (peer-to-peer,点对点)技术是一种目前比较流行的数据传输方式, 在P2P中,每个目标设备在接收数据的同时,还会将所接收到的数据提供给 其他目标设备,这就将原本闲置的目标设备之间的带宽利用起来。如果将P2P 技术应用到上述场景,可以有效利用目标设备之间的网内带宽,从而减少网 间带宽上的数据传量,达到节约网间带宽资源的目的。
在实现本发明的过程中,发明人发现现有技术中至少存在如下问题在 目前的P2P应用中,每个设备都可以对自身的发送和接收(包括速率、目标 设备数量等)进行控制,但是P2P的传输机制使得我们无法在某个设备上实 现对整个网络数据传输的统一控制。当数据传输量较大时,很可能导致网络 风暴,造成网络瘫痪。
而我们前面所描述的应用场景,其数据传输是由源设备发起,根据传输 数据量以及目标设备数量的变化,需要在源设备(或某一个目标设备)上对 整个网络数据传输进行统一控制,而其他目标设备可以仅用于被动接收数据, 这种需求是P2P技术所无法实现的。有鉴于此,本发明提供了一种链式数据传输方法、节点及系统,以实现
在单一设备上对整个网络的数据传输进行统一控制,技术方案如下
本发明提供一种链式数据传输方法,包括在节点建立树形连接关系之
后,
节点进行待传输数据的接收;
如果接收到所述传输数据的当前节点有子节点,则所述当前节点将所述 待传输数据发送至所有所述子节点中的一个子节点;和,
如果接收到所述传输数据的当前节点有还未获得过所述待传输数据的兄 弟节点,则所述当前节点将所述待传输数据发送至所有所述兄弟节点中的一 个兄弟节点。
本发明还提供一种链式数据传输节点,包括 接收单元,用于接收待传输数据;
发送单元,用于当所述链式数据传输节点有子节点时,将所述接收单元 所接收的待传输数据发送至所述链式数据传输节点的所有所述子节点中的一 个子节点;和,当所述链式数据传输节点有还未获得过所述待传输数据的兄
弟节点时,将所述接收单元所接收的待传输数据发送至所有所述兄弟节点中 的一个兄弟节点。
本发明还提供一种链式数据传输系统,该系统包括一个数据源节点和至 少一个数据目标节点,数据源节点与数据目标节点建立树形连接关系,数据 目标节点为lt据源节点的后辈节点;
所述数据源节点,用于将待传输数据发送至自身所有子节点中的一个子 节点;
所述数据目标节点,用于接收待传输数据;当所述数据目标节点有子节 点时,将所接收的待传输数据发送至自身所有子节点中的一个子节点;和, 当所述数据目标节点有还未获得过所述待传输数据的兄弟节点时,将所接收 的待传输数据发送至所有所述兄弟节点中的 一个兄弟节点。
以上技术方案中,所有设备之间的数据均为单向传输,如果将源设备作为树形结构的根节点,则源设备与目标设备之间仅有一条数据通道,通过对 这条数据通道传输的控制,就可以实现对整个网络的数据传输进行统一控制。 此外,在一个父节点的多个子节点中,只有一个是从父节点获得数据,其他 子节点依次从自己的上一个兄弟节点获得数据,这样,只要将同一网段的设 备相互设为兄弟节点,就可以有效利用网内带宽,节省网间带宽。


图1为本发明所提供的链式数据传输系统的一种结构示意图2为本发明所提供的链式数据传输系统的另一种结构示意图3为实现本发明方法的流程图4为本发明实施例链式数据传输节点的结构示意图5为本发明实施例链式数据传输节点的另一种结构示意图6为本发明实施例链式数据传输节点的第三种结构示意图。
具体实施例方式
本发明所提供的技术方案,称为LCP (Link Copy链式复制)技术,下面 首先对本发明所提供的链式数据传输系统进行说明,本发明所提供的链式数 据传输系统,包括一个数据源节点和至少一个数据目标节点,数据源节点与 数据目标节点建立树形连接关系,数据目标节点为数据源节点的后辈节点;
实施例一
图1所示为本发明所提供的链式数据传输系统的一种结构示意图,其中, 101为教:据源节点,111-114为数据目标节点,图中的节点间的细线代表节点 之间所建立的连接关系,可以看出该系统为两层树形结构,源节点101在 树形结构中处于父节点的位置,而目标节点111~114都是101的子节点,由 于111 114具有相同的父节点101,因此111-114之间彼此互为兄弟节点。 图1中节点间的粗箭头线示出了在该系统中的数据传输情况,可以看出 数据源节点101是将数据发送至自己的一个子节点(在图1中所示为 111);
而数据目标节点111-114,在接收数据之后,会将所接收的数据发送至自 己的一个兄弟节点,为了避免数据重复传输,该兄弟节点应该是还没有获得过待传输数据的。图中所示的数据传输路径为111—112—113—114,对于114 来说,接收到数据之后,此时自己所有的兄弟节点都已经获得过待传输数据, 因此114不再执行发送动作,数据传输中止。
实施例二
图2所示为本发明所提供的链式数据传输系统的另一种结构示意图,与 图1不同之处在于,该系统为三层树形结构,源节点201在树形结构中处于 父节点的位置,211 115为201的子节点,215 115之间彼此互为兄弟节点; 212a、 212b为212的子节点,212a和212b彼此互为兄弟节点;214a为214 的子节点。
由图2中的粗箭头线可以看出,拥有子节点的目标节点,在接收数据之 后,除了会将所接收的数据发送至自己的一个兄弟节点之外,还会将数据发 送至自己的一个子节点。例如,212会将数据发送至自己的一个兄弟节点213 和自己的一个子节点212a;而214会将数据发送至自己的一个兄弟节点215 和自己的一个子节点214a。
综合实施例一和实施例二可以看出,在链式数据传输系统中,每个节点 所执行的数据传输机制可以总结为图3所示的流程,具体包括 S301,当前节点获得待传输凄t据;
其中,如果当前节点是数据源节点,那么所获得的是初始的待传输数据; 如果当前节点是目标节点,那么所述获得待传输数据,具体表现为接收其他 节点所发送的待传输数据。
S302,当前节点将所述待传输数据发送至一个子节点;和,将所述待传 输数据发送至一个兄弟节点,该兄弟节点未获得过所述待传输数据。
可见,当前节点获得数据以后,会将数据继续向两个节点发送,如果没 有符合上述条件的节点,则不会执行相应的发送动作。在这样的传输机制下, 数据从源节点发出之后,就会自动遍历到所有的目标节点上,并且目标节点 之间不会出现数据的重复传输。
需要说明的是,实施例一和实施例二分别介绍了两层和三层的树形结构,本领域技术人员易于想到的是,对于采用本发明所提供数据传输机制的其他 形式的树形结构系统,也均应包含在本发明的保护范围之内
对于树形连接关系的建立, 一般我们会令处于同一网段的目标节点,与
一个父节点建立连接关系,例如在图2中,节点211~115处于同一网段A、 节点212a、 212b处于同一网段B、节点214a处于网段C,这样,数据在网间 传输时,仅会占用一条数据通道,而大部分的数据是在兄弟节点之间单向传 输,有效地利用了网内的数据传输带宽。
由于父节点和子节点之间只有一条数据通道,因此,只要对这条数据通 道进行控制,就可以实现对整个网络的数据传输的统一控制。例如,对于源 节点201和目标节点211之间的数据通道,我们可以在201或211上控制数 据传输速率。
由于父节点需要管理子节点的相关信息,工作量相对较大,因此我们一 般选择在子节点上控制传输速率。具体来说,可以在211上控制从201接收 数据的速率,由于211是第一个、并且唯一的由源节点获得数据的目标节点, 因此,之后的兄弟节点之间、或父子节点之间的数据传输速率,明显不会超 过这个所限制的速率,从而实现了对整个网络的数据传输的统一控制。
本领域技术人员易于想到的是,也可以在211上控制向212发送数据的 速率,(如果211有子节点,还可以在211上控制向子节点发送数据的速率)。 进一步的,在每一个目标节点上都可以对数据接收速率、向后继兄弟节点的 数据发送速率、向子节点的数据发送速率进行控制,从而实现对网络的更细 致的管理。
实施例三
在本发明的优选方案中,为了保证某一 目标节点是将数据发送至自己的 某个还没有获得过数据的兄弟节点,可以将上述数据传输机制优化如下 在源节点侧,将待传输数据发送至第一个与自己建立连接关系的子节点; 在目标节点侧,接收待传输数据;将所接收的待传输数据发送至第一个 与自己建立连接关系的子节点;和,将所接收的待传输数据发送至在自己之后,第一个与自己的父节点建立连接关系的节点,为了方便后面描述,我们 将这种节点称为后继兄弟节点。
具体来说,在建立树形连接关系的过程中,节点x可以通过向节点y注 册,与节点y建立连接关系,成为节点y的子节点。之后,节点x每隔一定 时间(例如1秒)会向节点y发送注册信息,以保持与节点y的连接关系。 父节点通过周期性检查子节点的注册信息,可以随时了解子节点的连接情况。 一方面,当父节点有数据要发送或转发时,知道哪些子节点将会接收它们; 另一方面, 一旦检查到子节点未连续注册的次数达到一定的数量时,父节点 就会从子节点列表中将其移除,并进一 步调整传输策略。
以图2所提供的系统为例,假设节点211 215是按其数字编号的顺序向 节点201注册的,节点212a 212b是按其字母编号的顺序向节点212注册的, 则根据上述优化过的传输机制,可以确定
源节点201,将待传输数据发送至第一个向自己注册的子节点211;
目标节点211,接收201所发送的待传输数据;将所接收的待传输数据发 送至自己的后继兄弟节点212 (211没有子节点,因此不执行向子节点的发 送动作);
目标节点212,接收211所发送的待传输数据;将所接收的待传输数据发 送至自己的后继兄弟节点213。并且,将待传输数据发送至第一个向自己注册 的子节点212a;
同理可以确定其他目标节点的发送规则,这里不再赘述。
如果某个节点失效,那么它的父节点通过周期性4企查子节点的注册信息, 可以得知这一情况,并进行相应的调整
如果节点211失效,节点201会在自己的子节点列表中删除211的信息, 此时,第一个向201注册的子节点就变成了 212;
如果节点212失效,节点201会在自己的子节点列表中删除212的信息, 并且将这一情况通知在212之前注册的节点211,此时对于211来"i兌,后继兄 弟节点就变成了 213;
同理可以得知其他节点失效时的情况,总之,从网络整体角度看,节点 失效,实质上相当于建立了新的树形连接关系(如果有新的节点加入网络,也是类似的情况),各节点依然按照原有的传输机制进行数据接收和发送,发 生变化的只是"第一个与自己建立连接关系的子节点,,和"后继兄弟节点" 所指代的对象。
在优化的传输机制中,同一层的数据都是由前一个注册的兄弟节点传递 过来,这就具体实现了 "某一目标节点将数据发送至自己的某个还没有获得 过数据的兄弟节点"的原则。并且,根据节点的注册顺序来确定数据的传输 方向,也更加有利于对凄t据传输的管理。
实施例四
在两个节点之间的一次数据的传输过程中,为了避免短暂的网络问题引 起本次数据传输失败,我们可以在发送端节点将待传输的数据划分为若干个 数据块进行传输。接收端节点在接收数据以后,检查是否接收到了所有的数 据分块,如果否,则只需向发送端节点请求重新发送所缺失的数据块即可。
例如,在计算机之间,数据都是以文件的形式传输,我们将每个文件的 传输由一个单独的线程处理,我们称其为FileTask, —个FileTask分为4个阶 ,殳OpenFile (文件开始传输)、Blocks (传送文件内容)、EndFile (文件传输 结束)、RecovFile (错误块恢复)。文件传输时采取文件分块的形式,接收端 节点在接收到文件分块时会进行校验,如果数据错误,在RecovFile阶段可以 单独要求恢复错误的数据块,不用重新传输整个文件。
FileTask首先在发送端节点创建,其中还包括该发送端节点任务子节点列 表(FileClients )和任务后继兄弟节点列表(FileNexts )。 一旦建立,FileClients 和FileNexts在这个任务内都不会变化,这样做的目的是保证在网络结构有更 新时不会影响到当前文件发送。
接收端节点在接收到OpenFile消息后,也会创建一个新的FileTask任务, 其中同样包括该接收端节点的FileClients和FileNexts。
FileTask中,所有的控制消息,包括OpenFile和EndFile消息会被发往 FileClients中记录的所有节点,而数据消息Block则会分别发往记录在 FileClients和FileNexts的第一个节点上。
最理想的情况是,控制消息和数据消息按照OpenFile—Block—EndFile的顺序到达,但是各节点也可以处理顺序错误或某些数据包错误、丢失的情 况
如果在OpenFile之前4妄收到文件数据包Block,我们仍然建立FileTask, 但打开临时文件写入文件数据。如果OpenFile丟失,还可以从EndFile中获得 必要的文件信息。从OpenFile或EndFile中得到文件信息后(比如文件路径), 再更改临时文件的名称。
接收到EndFile后将更新文件路径(如果已经到OpenFile,接收将校验文 件路径)、更新FileTask中的Block个数信息,检查Block的接收情况,发出 恢复Block的消息RecovBlock。随后,FileTask仍可能接收到任意的数据包 对于OpenFile,校验文件路径;对于Block,正常发送的Block和RevocBlock 没有区别,如果Block已经接收成功则直接忽略,否则写文件。EndFile消息 中包含Block的个数,如果成功接收到全部的Block,则退出处理数据包的循 环。
FileTask结束前,如果校验失败或文件信息不全(OpenFile和EndFile都 丢失、某些Block缺失),则直接删除文件。
FileTask启动之后,如果超过一定的时间没有接收到任何数据包,即可认 为该FileTask可以结束。这种机制可以保证文件信息资源的释放。
在本实施例中,进一步介绍了本发明数据传输方案的错误处理机制,数 据在节点间以数据分块的方式进行传输,当传输出现错误时,只需重新传输 错误的数据块即可,从而也有效地节约了传输时间和网络带宽。
本领域普通技术人员可以理解实现上述方法实施例的全部或部分步骤 可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读 取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述 的存储介质包括ROM、 RAM、磁;茱或者光盘等各种可以存储程序代码的介 质。
实施例五
相应于上面的方法实施例,本发明实施例还提供一种链式数据传输节点, 参见图4所示,包括接收单元410,用于获得待传输数据;
对于数据源节点来说,接收单元410是用于获得初始的待传输数据,而 对于目标节点来说,接收单元410是用于接收其他节点所发送的待传输数据。
发送单元420,用于当所述链式数据传输节点有子节点时,将所述接收单 元410所接收的待传输数据发送至所述链式数据传输节点的所有所述子节点 中的一个子节点;和,当所述链式数据传输节点有还未获得过所述待传输数 据的兄弟节点时,将所述接收单元410所接收的待传输数据发送至所有所述 兄弟节点中的一个兄弟节点。
其中,参见图5所示,所述发送单元420,可以包括
第一发送子单元421,用于将所述接收单元所接收的待传输数据发送至第
一个与所述链式数据传输节点建立连接关系的子节点;
第二发送子单元422,用于将所述接收单元所接收的待传输数据发送至在
所述链式数据传输节点之后,第一个与所述链式数据传输节点的父节点建立
连接关系的节点。
上述两个发送子单元,实质上是对发送单元420所执行的传输机制做了 进一步优化,在优化的传输机制中,同一层的数据都是由前一个注册的兄弟 节点传递过来,这就具体实现了 "某一目标节点将数据发送至自己的某个还 没有获得过数据的兄弟节点"的原则。并且,根据节点的注册顺序来确定数 据的传输方向,也更加有利于对数据传输的管理。
参见图6所示,所述的链式数据传输节点,还可以进一步包括
速率控制单元430,用于对所述接收单元410的数据接收速率,和/或对 所述发送单元420的数据发送速率进行控制。
如果所述接收单元,是接收其他节点所发送的待传输数据,则所述链式 凄t据传输节点可以进一 步包括
数据校验单元440,用于检查所述接收单元410所接收的待传输数据是否 完整,如果否,则请求数据发送节点重新发送所缺失的数据部分。
对于装置实施例而言,由于其基本相应于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例 仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是
以位于一个地方,或者也可以分布到多个网络单元上。可以#4居实际的需要 选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术
人员在不付出创造性的劳动的情况下,即可以理解并实施。
以上所述仅是本发明的具体实施方式
,应当指出,对于本技术领域的普 通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润 饰,这些改进和润饰也应视为本发明的保护范围。
权利要求
1、一种链式数据传输方法,其特征在于,在节点建立树形连接关系之后,该方法包括节点进行待传输数据的接收;如果接收到所述传输数据的当前节点有子节点,则所述当前节点将所述待传输数据发送至所有所述子节点中的一个子节点;和,如果接收到所述传输数据的当前节点有还未获得过所述待传输数据的兄弟节点,则所述当前节点将所述待传输数据发送至所有所述兄弟节点中的一个兄弟节点。
2、 根据权利要求1所述的方法,其特征在于,该方法进一步包括以所 述当前节点发送待传输数据的目标节点作为当前节点,执行所述进行待传输 数据接收与发送的步骤。
3、 根据权利要求1所述的方法,其特征在于,所述将待传输数据发送至所有所述子节点中的一个子节点,具体实现为 将待传输数据发送至第 一个与所述当前节点建立连接关系的子节点;所述将待传输数据发送至所有所述兄弟节点中的 一个兄弟节点,具体实 现为将待传输数据发送至在所述当前节点之后,第一个与所述当前节点的 父节点建立连接关系的节点。
4、 根据权利要求l所述的方法,其特征在于,所述节点建立树形连接关 系,具体实现为处于同一网4殳的节点,与同一个父节点建立连接关系。
5、 根据权利要求l所述的方法,其特征在于,子节点通过周期性向父节 点发送注册信息,保持与父节点的连接关系。
6、 根据权利要求l所述的方法,其特征在于,所述节点进行待传输数据 的接收为当前节点接收数据发送节点所发送的待传输数据;则该方法进一步包括当前节点检查所接收的待传输数据是否完整,如果否,.则请求所述数据 发送节点重新发送所缺失的数据部分。
7、 根据权利要求1至6任一项所述的方法,其特征在于,该方法进一步 包括所述当前节点对数据接收速率、向子节点的数据发送速率,和/或向兄弟 节点的数据发送速率进行控制。
8、 一种链式lt据传输节点,其特征在于,包括 接收单元,用于接收待传输数据;发送单元,用于当所述链式数据传输节点有子节点时,将所述接收单元 所接收的待传输数据发送至所述链式数据传输节点的所有所述子节点中的一 个子节点;和,当所述链式数据传输节点有还未获得过所述待传输数据的兄弟节点时,将所述接收单元所接收的待传输数据发送至所有所述兄弟节点中 的一个兄弟节点。
9、 根据权利要求8所述的链式数据传输节点,其特征在于,所述发送单 元,包括第一发送子单元,用于将所述接收单元所接收的待传输数据发送至第一 个与所述链式数据传输节点建立连接关系的子节点;第二发送子单元,用于将所述接收单元所接收的待传输数据发送至在所 述链式数据传输节点之后,第一个与所述链式数据传输节点的父节点建立连 接关系的节点。
10、 根据权利要求8所述的链式数据传输节点,其特征在于,所述接收 单元接收数据发送节点所发送的待传输数据,则所述链式数据传输节点进一 步包括数据校验单元,用于检查所述接收单元所接收的待传输数据是否完整, 如果否,则请求所述数据发送节点重新发送所缺失的数据部分。
11、 根据权利要求8、 9或10所述的链式数据传输节点,其特征在于, 该节点进一步包括速率控制单元,用于对所述接收单元的数据接收速率,和/或对所述发送 单元的ft据发送速率进行控制。
12、 一种链式数据传输系统,其特征在于,该系统包括一个数据源节点 和至少一个数据目标节点,数据源节点与数据目标节点建立树形连接关系, 数据目标节点为数据源节点的后辈节点;所述数据源节点,用于将待传输数据发送至自身所有子节点中的 一个子节点;所述数据目标节点,用于接收待传输数据;当所述数据目标节点有子节 点时,将所接收的待传输数据发送至自身所有子节点中的一个子节点;和, 当所述数据目标节点有还未获得过所述待传输数据的兄弟节点时,将所接收 的待传输数据发送至所有所述兄弟节点中的 一个兄弟节点。
13、 根据权利要求12所述的系统,其特征在于, 所述数据源节点,用于将待传输数据发送至第一个与自己建立连接关系的子节点;所述数据目标节点,用于接收待传输数据;将所接收的待传输数据发送 至第一个与自己建立连接关系的子节点;和,将所接收的待传输数据发送至在自己之后,第一个与自己的父节点建立连^f妄关系的节点。
14、 根据权利要求12或13所述的系统,其特征在于,处于同一网段的 数据目标节点,与同一个父节点建立连接关系。
全文摘要
本发明公开了一种链式数据传输方法、节点及系统。一种链式数据传输系统包括一个数据源节点和至少一个数据目标节点,数据源节点与数据目标节点建立树形连接关系,数据目标节点为数据源节点的后辈节点;所述数据源节点,用于将待传输数据发送至自身所有子节点中的一个子节点;所述数据目标节点,用于接收待传输数据;当所述数据目标节点有子节点时,将待传输数据发送至自身所有子节点中的一个子节点;当所述数据目标节点有还未获得过所述待传输数据的兄弟节点时,将待传输数据发送至所有所述兄弟节点中的一个兄弟节点。应用本发明技术方案,可以实现在单一设备上对整个网络的数据传输进行统一控制,并且有效利用了网内带宽,节省网间带宽。
文档编号H04L29/06GK101414949SQ20081018016
公开日2009年4月22日 申请日期2008年11月28日 优先权日2008年11月28日
发明者能 戴, 震 李 申请人:阿里巴巴集团控股有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1