一种计算机网络的内容发布方法及系统的制作方法

文档序号:7648111阅读:229来源:国知局
专利名称:一种计算机网络的内容发布方法及系统的制作方法
一种计算机网络的内容发布方法及系统方法
技术领域
本发明涉及计算机网络的内容发布方法及系统。背景技术
计算机网络中的具有计算功能的处理单元(如计算机,通信设备等等)称为节点。Internet通信技术基础是分组交换网络技术,通常称为"包交换"(Packet Smtching)。它的一个基本思想是,发送信息时,先把该信息拆分成若干 个分组(俗称数据包),编上序号,把它们分开发送出去,然后在目的地再按序号拼起来。原先的包交换是源端的信息分割成一个个数据包,发送到目的端,所 经的路径由网络设备完成,对用户是隐蔽的。这种通信可以看成是"一对 一"的通信。现在很多通信应用的内容在很多情况下是需要发布到多个计算机上, 通常是覆盖网络的一个应用层多播。传输过程同样是采用包交换技术和"存 储和转发"(Store and Forward)的工作原理,但在传输结束时,需要保证 多个节点都有传输内容的拷贝。这种通信可以看成是"一对多"的通信。虽然传统C/S模式的通信看起来是"一对多",即一台服务器对多台客 户端。但这种看法通常被认为是宏观的,在传输细节上,服务器与其中一 台客户端的传输是独立的,所以,C/S模式在本文里被认为是"一对一" 的通信。还有一些人认为,信息在网络世界大量存在的,何不充分利用现有的 数据呢?于是有了从多源请求数据的方法,例如多源的BitTorrent。这种通 信可以看成是"多对一"的通信。"多对一"的意义也是特定为传输环节,即所需传输的内容存在于多 个节点上,传输时同样采用包交换技术,不同之处是负责传送的多个节点 中的每一个节点只传送内容的其中一部分。因为可以有多个节点同时传送, "多对一"能提高传输速度。其实,还存在一种"多对多"通信,"多对多"的意义也是特定为传输 环节,即所需传输的内容存在于多个节点上,而将内容同时协作地传送到 另外的多个节点。"多对多"通信是有积极意义的,它可以提高效率,简化问题。能够简化问题的理由是,其它通信形态"一对一"、"一对多"和"多 对一"都可以归纳为"多对多"。很多场合都需要"多对多"通信。例如,"多对一"通信可以很好解决 了文件共享,但仍然有需要改善的地方。"多对一"会产生2个问题(i ) 节点需要请求链接,还有可能需要向多个节点查询;(ii)负责传递的节点 容易形成不均匀,有的节点可能没有传输,而另一些节点则繁忙而造成拥 塞。造成上述问题的原因是源端的多个节点和接收端的节点没能较好地协 、作处理,如果有一个全局的传输调度,则可以免去(i )的査询和解决(ii ) 的均衡负载。但如果有了全局的传输调度,则不再是"多对一"通信,而 可以称为"多对多"通信。"多对多"通信是复杂的,必须在"多对多"通信中解决以下三个关 键问题A. 如何管理节点?使得适应于有不同能力和不同行为的节点的动态 网络,这些节点是随时加入或退出。B. 如何传输?或者说如何将内容从多个节点同时传送到另外的多个—"P点。C. 如何保障传输的QoS 例如,在动态网络环境下如何传输调度,拥 塞控制和出错控制?在内容传输时,将内容分成多个内容块传输,此时,需被告知传送往 何方,告知的方法根据不同的环境可以有所不同,常用的方法之一是被告 知--张发送表或者是一张路由表。当节点接收到某一内容块时,可能需要再次传送,成员需要被告知再 次传送的目标用户,告知的方法根据不同的环境可以有所不同,采用的方 法之-一是在内容块打包发送时,附加上需再次传送的用户表,用户表应包 括通信用的必要数据,此方法适用于再次传送少量用户;采用的方法之二 是接收群的成员维护相关的发送表或者路由表,这些相关的发送表或者路 由表可以是一个,也可以是多个一由不同地方传递来的内容块用不同的发 送表或者路由表,可以是公用,也可以是私有的,此方法需要动态维护发 送表或路由表。上述的告知方法都可以为内容发布所使用,但现有的方法还不能很好 地解决上述技术问题,仍然需要采用一种更为先进的改进方法。
发明内容本发明的主要目的是解决现有技术中的传输和节点控制的问题,提供 、一种计算机网络的内容发布方法及系统,通过对节点的实时管理,实现将内容从对多个节点同时传送到另外的多个节点,提高了传送速度。本发明的另一目的是提供一种计算机网络的内容发布方法及系统,通 过对每个节点上传速率的控制,更合理、充分地利用各节点的资源,减少了网络拥塞。为了实现上述目的,本发明采用的技术方案是 一种计算机网络的内 容发布方法,包括以下步骤Al、将参与内容传输的节点分为负责传送内容的传递群和接收内容接 收群,将已有的或要加入的负责传送内容的节点归入传递群管理,将已有 的或要加入的需要接收内容的节点归入接收群管理;Bl 、为每一个传递群或接收群建立一个反映所属群的信息的控制数据 集,为每个控制数据集设置一个序列号,对于一段时间内或每一次控制数 据集变化后更新序列号,使控制数据集和序列号一一对应,所述控制数据 集至少包括群内每一个节点的基本信息,所述节点的基本信息至少包括该 节点的通信地址;Cl、将控制数据集发布到该群的每一个节点,且使每一个节点保持本 群最新的控制数据集;Dl、将需要传送的内容分成多个部分,设置传递群的节点负责传送的 内容部分;El、传递群的节点将需要传送的内容部分分成多个内容块,并将内容 块装配成内容包,内容包包括控制数据集的序列号标记;Fl、将接收该内容包的接收群的控制数据集发布到传递群的节点,并 在传输前将控制数据集的序列号标记设置为接收该内容包的接收群的控制 数据集的当前序列号;Gl、传递群的节点根据接收群的控制数据集将数据包分别传输给接收 群的至少一个节点;Hl、接收群中的节点接收到由传递群发送来的内容包后,根据内容包 的序列号标记所指的控制数据集,将所述内容块再次传送到群内的其它需 要该内容块的节点;II、接收群中的节点将由各节点传送来的内容块还原成所传送的内容。所述接收群接收到部分或者全部内容后,成为新的传递群,将已收到 的内容继续传递到另 一个接收群。其中,步骤B1中所述的控制数据集的变化包括节点的加入、退出、 任务的变化和节点状态变化,所述节点保存有多个序列号不同的控制数据集。其中,所述步骤B1中使每一个节点保持本群最新的控制数据集的一种优选方案是包括以下步骤Bl 1 、服务器设定时间间隔或者在传送内容包前提取需维护的群的控 制数据集;B12、服务器将该群的最新控制数据集的整集与其之前的某个已有控 制数据集的整集按符号比较,得出变化串;B13、将变化串进行变形压縮后得到变化集,所述变化集带有最新控 制数据集的序列号标记和作为比较基础的己有控制数据集的序列号标记;B14、将变化集传输到该群的至少一个节点,以供节点根据其已有的 控制数据集更新为最新控制数据集。其中,步骤B12中所述的符号的长度优选为一个字节或两个字节。其中,所述步骤B13中变化串进行变形压縮后得到变化集包括[开 始标记][新控制数据集的序列号][旧控制数据集的序列号][偏移1][变串 头部1][变串1][偏移2][变串头部2][变串2]...[偏移i][变串头部i][变 串i][校验和][结束标记],其中,偏移至少包括可变长编码的偏移长度, 变串头部至少包括可变长编码的变串长度,变串为新控制数据集与旧控制 数据集比较有变化的部分;i为变化集中变化串的数量,i为大于或等于0 的整数。本发明的进一步改进是群内各节点还依赖本群的控制数据集对内容 、进行处理,包括对接收到的内容包进行合法有效性检査、转发内容和补发内容。所述内容可以为音/视频数据、流数据、计算机文件、网络上的UDP 数据包、控制数据集或控制数据集的变化集。本发明的更进一步改进是按一个预先设定的方法将接收群的节点划 分为多个支持小组,等待内容包的节点在超过约定的接收时间内未能收到 内容包时,优先向支持小组的其它节点发出补包请求,要求该节点补发其 所缺内容包。在内容发布过程中,还包括以下步骤A2、根据接收群中节点j能用于内容上传的带宽Wj,系统选择一个合 理的上传速率Uj;B2、控制接收群的节点j按照系统所指定的上传速率Uj参与上传内容 服务,其中j二l,2,….N, N为接收群节点的数量;并且所述上传速率系数—Uj满足下面关系式(U, +…+Un)+L承D乖,D)其中,D为内容发布的速率;f(N,D)是与^^D有关的函数,为接收群 所有节点下载内容所需要的带宽;L*D为传递群所有节点提供的上传速率之和。— 其中,所述步骤A2中系统可以通过以下步骤选择合理上传速率Uj:当节点j能用于内容上传的带宽Wj小于或等于节点为内容提供的平均 上传速率为LUg时,选择U产W^当节点j能用于内容上传的带宽Wj大于节点为内容提供的平均上传速率为Uavg时,选择的Uj应满足Uj^U,。当参数Wj、L和N发生变化而不能满足条件(111+...+11>0+1(*0^^,0) 时适当修改参数Uj、 L和D;或者当参数Wj、 L和N发生变化,需要且可 以改变参数L或者D时,适当修改参数Uj、 L和D。为达到上述目的,本发明还提供一种计算机网络的内容发布方法,包括以下步骤A3、将参与内容传输的节点分为负责传送内容的传递群和接收内容接 收群,将己有的或要加入的负责传送内容的节点归入传递群管理,将已有 的或要加入的需要接收内容的节点归入接收群管理;B3、为每一个传递群或接收群建立一个反映所属群的信息的控制数据 集,为每个控制数据集设置一个序列号,对于一段时间内或每一次控制数 据集变化后更新序列号,使控制数据集和序列号一一对应,所述控制数据 集至少包括群内每一个节点的基本信息,所述节点的基本信息至少包括该 节点的通信地址;C3、将控制数据集发布到该群的每一个节点,且使每一个节点保持本 群最新的控制数据集;D3、将需要传送的内容分成多个部分,设置传递群的节点负责传送的 内容部分;E3、传递群的节点将需要传送的内容部分分成多个内容块,并将内容 块装配成内容包,内容包包括控制数据集的序列号标记和交换类型标记;F3、将接收该内容包的接收群的控制数据集发布到传递群的节点,并 在传输前将控制数据集的序列号标记设置为接收该内容包的接收群的控制 、数据集的当前序列号;G3、传递群的节点根据接收群的控制数据集将数据包分别传输给接收 群的至少一个节点;H3、接收群中的节点接收到由传递群发送来的内容包后,根据内容包的交换类型标记决定该内容包是否需要在群内交换,当需要交换时根据内 容包的序列号标记所指的控制数据集,将所述内容块再次传送到群内的其它需要该内容块的节点;B、接收群中的节点将由各节点传送来的内容块还原成所传送的内容。在歩骤H3中,接收到内容包的节点还根据内容包的交换类型标记决 定该内容包是否需要向其它的接收群发布。为达到上述目的,本发明还提供一种计算机网络的内容发布系统,包括用于将参与内容传输的节点分为负责传送内容的传递群和接收内容接收群的分群装置,所述分群装置将已有的或要加入的负责传送内容的节点 归入传递群管理,将已有的或要加入的需要接收内容的节点归入接收群管理;用于为每一个传递群或接收群建立一个反映所属群的信息的控制数据 集的控制数据集生成装置,所述控制数据集生成装置还用于为每个控制数 据集设置一个序列号,对于一段时间内或每一次控制数据集变化后更新序 列号,使控制数据集和序列号一一对应,所述控制数据集至少包括群内每 个节点的基本信息,所述节点的基本信息至少包括该节点的通信地址;用于将控制数据集发布到该群的每一个节点、且使每一个节点保持本群最新的控制数据集的发送装置;用于将需要传送的内容分成多个部分,并设 置传递群的节点负责传送的内容部分的第一处理装置;用于控制传递群的 节点将需要传送的内容部分分成多个内容块、并将内容块装配成内容包的 第二处理装置,所述内容包包括控制数据集的序列号标记;所述发送装置 还用于将接收该内容包的接收群的控制数据集发布到传递群的节点;用于 控制传递群的节点在传输前将控制数据集的序列号标记设置为接收该内容 包的接收群的控制数据集的当前序列号的第三处理装置;用于控制传递群 的节点根据接收群的控制数据集将数据包分别传输给接收群的至少一个节 点的第四处理装置;用于控制接收群中的节点在接收到由传递群发送来的 内容包后,根据内容包的序列号标记所指的控制数据集,将所述内容块再 次传送到群内的其它需要该内容块的节点的第五处理装置;用于控制接收 群中的节点将由各节点传送来的内容块还原成所传送的内容的内容还原装 置。所述控制数据集的变化包括节点的加入、退出、任务的变化和节点状 态变化,所述节点保存有多个序列号不同的控制数据集。其中,所述控制数据集生成装置包括用于使服务器按照设定时间间 隔或者在传送内容包前提取需维护的群的控制数据集的控制数据集提取单元;用于将该群的最新控制数据集的整集与其之前的某个已有控制数据集 的整集按符号比较、得出变化串的比较单元;用于将变化串进行变形压縮 后得到变化集的变形单元,所述变化集带有最新控制数据集的序列号标记 和作为比较基础的已有控制数据集的序列号标记;用于将变化集传输到该 群的至少一个节点、以供节点根据其已有的控制数据集更新为最新控制数 据集的传送单元。所述的符号的长度为一个字节或两个字节。所述变化串进行变形压縮后得到变化集包括[开始标记][新控制数 据集的序列号][旧控制数据集的序列号][偏移1][变串头部1][变串1][偏 移2][变串头部2][变串2]…[偏移i][变串头部i][变串i][校验和][结束 标记],其中,偏移至少包括可变长编码的偏移长度,变串头部至少包括可 变长编码的变串长度,变串为新控制数据集与I日控制数据集比较有变化的 部分;i为变化集中变化串的数量,i为大于或等于0的整数。还包括用于使群内各节点依赖本群的控制数据集对内容进行处理的 第六处理单元,所述第六处理单元用于对接收到的内容包进行合法有效性 检查、转发内容和补发内容。所述内容为音/视频数据、流数据、计算机文件、网络上的UDP数据 包、控制数据集或控制数据集的变化集。本发明的进一步改进是还包括拥塞控制装置,所述拥塞控制装置包 括用于根据接收群中节点j能用于内容上传的带宽Wj选择一个合理的 上传速率Uj的速率选择单元;用于控制接收群的节点j按照系统所指定的 匕传速率Uj参与上传内容服务的第七处理单元,其中j^,2,….N, N为接 收群节点的数量;并且所述上传速率系数Uj满足下面关系式 (U!+.. .+UN)+L*D率,D)其中,D为内容发布的速率;f(N,D)是与I^D有关的函数,为接收群 所有节点下载内容所需要的带宽;L*D为传递群所有节点提供的上传速率之和。为达到上述目的,本发明还提供一种计算机网络的内容发布系统,其特征在于包括用于将参与内容传输的节点分为负责传送内容的传递群和 接收内容接收群的分群装置,所述分群装置将已有的或要加入的负责传送 内容的节点归入传递群管理,将已有的或要加入的需要接收内容的节点归 入接收群管理;用于为每一个传递群或接收群建立一个反映所属群的信息的控制数据集的控制数据集生成装置,所述控制数据集生成装置还用于为 每个控制数据集设置一个序列号,对于一段时间内或每一次控制数据集变化后更新序列号,使控制数据集和序列号一一对应,所述控制数据集至少 包括群内每一个节点的基本信息,所述节点的基本信息至少包括该节点的 通信地址;用于将控制数据集发布到该群的每一个节点、且使每一个节点 保持本群最新的控制数据集的发送装置;用于将需要传送的内容分成多个 部分,并设置传递群的节点负责传送的内容部分的第一处理装置;用于控 制传递群的节点将需要传送的内容部分分成多个内容块、并将内容块装配 成内容包的第二处理装置,所述内容包包括控制数据集的序列号标记和交 换类型标记;所述发送装置还用于将接收该内容包的接收群的控制数据集 发布到传递群的节点;用于控制传递群的节点在传输前将控制数据集的序 列号标记设置为接收该内容包的接收群的控制数据集的当前序列号的第三 处理装置;用于控制传递群的节点根据接收群的控制数据集将数据包分别 传输给接收群的至少一个节点的第四处理装置;用于控制接收群中的节点 在接收到由传递群发送来的内容包后,根据内容包的交换类型标记决定该 内容包是否需要在群内交换,当需要交换时根据内容包的序列号标记所指 的控制数据集,将所述内容块再次传送到群内的其它需要该内容块的节点; 用于控制接收群中的节点将由各节点传送来的内容块还原成所传送的内容 的内容还原装置。本发明提出具体而有效的实现"多对多"传输方法,该方法的优点是 群(以管理CDS方式)可以很好地管理动态进出网络的节点,而群对群的 拓扑结构则能满足不同场合的"多对多"传输需求。与现有技术相比,一 个明显不同之处是,传递的成员存在一个协作性的任务分配。具体的效果有1)本发明将参与内容传输的节点分为传递群和接收群,并为每个群建立控制数据集,通过控制数据集实现对节点的实时管理,使传递群的节点 根据控制数据集记录的节点的通信信息,将内容分块打包传送给接收群的 节点,接收群中接收到内容包的节点再根据控制数据集将内容包在群内交 换,从而完成了内容从对多个节点同时传送到另外的多个节点,并且相对丁-己有技术提高了内容传送速度。2)更新控制数据集时,只传输控制数据 集变化部分,还可以对所述变化部分进行适用于实时环境的处理简单和耗 时少的压縮处理,实现了控制数据集的低开销更新。3)通过为每个节点选 择合理的上传速率,方便构造出能充分利用各节点能力的传输调度,有效 地减少了网络拥塞。本发明的特征及优点将通过实施例结合附图进行详细说明。
图1是本发明一种实施例的流程2是本发明一种实施例的内容包的结构图;图3是本发明一种CDS示意图;图4是本发明一种G2G内容传输示意图;图5是本发明一种CDS的变化串进行变形压縮的示意图;图6是本发明一种G2G流动方法流程图;图7是本发明一种G2G/CDS和G2G流动方法应用的体系结构图; 图8是本发明一种G2G拓扑结构示意图。
具体实施方式本发明的核心内容是将参与传输的节点分群,将需要传输的内容分 块,并采用控制数据集(简称CDS)进行监控及更新,即每一个群都有 CDS,各成员实时维持相关的CDS,众多操作依赖于CDS。本发明可应用于计算机网络环境,在本发明中,节点是网络内具有计 算功能的处理单元,例如,个人计算机(PCs),掌上设备,多处理器系统, 基于微处理器可编程的消费电子设备,网络PC机,微型计算机,桌上电脑, 便携式计算机,具有微处理器或者微控制器的消费应用设备,路由器,网 关,集线器或者类似的设备。网络是由多个节点组成,但并非所有的通信都是"多对多"通信,为 了区别现有技术,我们给定"多对多"定义定义1:"多对多"传输是在一定时间内将内容从多个节点传输到另一些节点,并存在多节点协作传输过程。"多对多"传输具有时效性和协作性,所传输的内容存在分散性。G2G传输就是一种"多对多"传输。群是一些具有相同属性节点的聚合。 内容,网络速率,地域,距离,延时,节点标识,稳定性(在线时间、丢 包率),内容开始接收位置都可以作为群的属性。但不限于此,任何跟任务, 行为,个体的差异,标识有关的属性也可以作为群的属性。属性是可以多 选的,把预先设定不再细分的属性称为基本属性,而由两个基本属性以上 '组合的属性称为组合属性。同一任务可以有多个属性相同的群。(非空的)群具有一个或多个节点成员。将参与内容传输的节点划分 成至少两个群,负责内容传送的群叫传递群,接收由其他群传送内容的群 叫接收群。这样的内容传输可以看作为群对群传输,即将传递群的内容传 送到接收群,简称为G2G。由群所组成且涉及群与群关系的网络称为群对群网络。下面是G2G网 络的2个主要特性特性l:群具有组织性和具有多节点特征。为此,用G2G通信来替代多对多网络通信。我们知道,多对多网络通信能大大提高效率,但实现起 来却非常困难。用"群对群"替代"多对多",正是尝试解决问题的开始, 原来的"多"是任意或者是无组织的,而群则可以围绕着属性来建立,是 一个有组织的"多",从任意的"多"转变为有规则的"群"是有效的方法。 群还具有动态性,即允许节点动态进出。群具有组织性使得群具有可管理性,是下面所论述的节点管理的基础,并使得G2G网络的通信是容易管理的,或者说,是受控制的。特性2:基本的G2G传输的传递群与接收群之间是多对多的连接。这 是G2G网络协作传输的依据。我们可以建立传递群节点和接收群节点之间 的全连接拓扑结构,以此来安排传输路由的编程。 一些实际上并不连通的 边,可以看作是该连接边的某项权值为0。进一步地,每一条连接边赋上 一些所需的权值(例如,上传带宽),以这些权值进行优化路由。 定义2. G2G传输将源端(群)的内容传送到目的群。 假定内容己经分布在传递群的多个节点上, 一次从传递群传送到接收群的过程有定义3.基本的G2G传输是指将传递群中一个或多个节点上的内容 协作地传送到接收群的部分或全部节点。但在很多场合也省略地称为G2G传输。图8是一个G2G传输拓扑结构示意图G2G传输从源端(群)传送 到目标群,有可能经过多个中间的群。G2G传输是由一个或者多个基本的 G2G传输组成。我们可以用多个群来完成大型的内容发布。图8中,群&同时负责对群G2和群G3的传送,是两个基本的G2G 传输。G2和G3可以具有相同的属性,即都是^的接收群,也可以有不同 的属性,例如,G2负责管理A地区节点的接收群,G3则为负责B地区节 点的接收群。G2G传输有群间传输和群内传输两种,为了区别不同的传输,弓l用以、下概念传递(Transfer):传递群将内容传输到接收群。交换(Exchange):在一个群内,成员与其它成员相互之间传输内容。 对于G2G,普遍适用的方法有G2G传输原理将所需传输的内容分成多个块;为参与传输内容的多 个节点分成多个群;由拥有内容的传递群的部分或全部的成员参与所述的 内容块分配,所述的成员将分配的内容块分别传输给需要得到内容的接收 群的部分或全部成员;如有需要,接收群的成员将从所述的节点发送来的内容块再次交换到群内的其它成员。如果想向一个节点传送内容包,就必须有这个节点信息。群会有一些 关于节点的信息,如果有多个群,为了区别,也可以有与群相关的标记信 息,这些信息,称之为群的信息。为了区别所传输的信息(内容),群的信息数据表,特别是控制通信 和任务的控制数据,称为控制数据集,简称为CDS。有信息的群更具有操作性。CDS包括任务的描述和路由策略,可以使得根据内容包和CDS的 信息,即可以知道构造该内容包发布的路由。事实上,群的很多操作都是围绕着控制数据集来进行的,例如分群或 者状态的变化,都反映到CDS,更新CDS。图3是一个CDS应用的例子, 用户加入所带来的通讯必要数据,分群的信息和任务信息等等都加到 CDS,其它的用户退出,通讯状态变化,任务状态变化,也应该及时反映 在CDS,及时更新CDS。标记会被我们经常地使用,例如,表明本CDS是属于那个群的,用于 传送什么内容,等等。而现在所说CDS的是本发明的-一个特别标记,即变 化标记,是按照其变化的次序来识别不同时期或状态的数据集。通常为每 个CDS设置一个序列号(SN),对于一段时间内或每一次CDS的变化,用 不同的SN加以区别。采用传CDS变化部分时, 一般会需要一个旧的CDS作为参照。为了 区别新旧不同的CDS,当CDS有变化时,依赖于CDS的SN来识别。为了更新时只传送变化部分,需要将现在新的CDS跟以前的相比较, 形成变化集,然后将变化集传送给节点,节点可以根据变化集和已存储在 节点的某一个旧的CDS —起还原成新的CDS,这些过程,都需要按顺序 识别的SN标记。采用以G2G方式来传送变化集时,因为是连续产生的,有可能有多个 变化集,为了区别,变化集也需要SN标记,通常是产生变化集所采用新 和旧CDS的SN的组合。最后,当G2G依赖于CDS进行传输时,利用SN标记,可以设定每 -个传送包依赖于一个具体SN标记的CDS,这种做法带来的好处有(1) 节点可以同时存在多个不同SN的CDS,内容包交换时,每一个 内容包可以有不同的传送路由;(2) 当节点接收到传送包而发现没有SN所指定的CDS时,可以及 时请求更新,从而有利于CDS的维持;(3) 利用内容包的CDS的SN标记,鉴别出内容包的合法性和时效性,维持了数据安全。综上所述,CDS按顺序识别的标记(SN)很重要。在本发明里,基本的G2G传输和CDS相互依赖,又能一起很好地分发 内容,以致可以看成两位是一体的。为了强调这种关系,或者可以表示为 G2G/CDS协议。定义G2G内容传输时内容包的结构,其中至少包括CDS的序列号,一 种实施例的具体结构如图2:ContentID:内容标志。用于区别不同的内容发布。Packet No:内容包的编号。通常用连续的编号来表明该内容包在内容的位置。CDSSN:内容传输时所使用CDS的SN。Exchange Type (ET):交换类型。值为0时,接收该内容包不需交换; 值为1时,内容包需要交换,并将转发的内容包的ET置O;值为2时,节 点将该内容包以发布树方式在接收群发布。Block Length (BL):需传送内容块的长度。Content Block:需传送的内容块。G2G/CDS协议为需要发布的内容建立一个CDS来管理参与发布的 节点,并实时维护及更新各节点的CDS。为每个CDS设置一个与其对应 的序列号(SN),对于每一次或一段时间内CDS的变化,用不同的SN加以 区别,对于某一个群的CDS,节点可以保存多个SN不同的CDS。传递群将需要发布的内容分成多个内容块,打包编号,并在内容包加 上传递时使用CDSSN,然后传递到接收群;接收群的节点接收到一个内容 包时,首先判断该内容包是否正确,判断的方法之一是内容包的"CDSSN" 的值是否合法有效;如果是有效的,则根据内容包的"CDS SN"所指向的 CDS在群内交换,即将内容包传递给群内需要该内容包的节点。或者根据 ET的值判断内容包是否需要交换,需要交换时使用"CDSSN"所指的CDS 进行传输。现在来看看基本的G2G传输和CDS两者如何紧密地一起工作的,就以 在内容传输过程中用户加入和离开为例。用CDS (f)表示SN为f的CDS,共有n位成员,内容包k用P(k) 表示。传递群正在传送P (k), P (k)里面"CDS SN"指示使用CDS的SN 为f,接收群的一个节点收到P (k)后,根据ET的值判断是否需要交换, 交换时,修改P (k)的ET值,并根据CDS (f)的信息向其它(n-l)位节 点转发P (k)。当没有成员及状态变化时,该节点继续接收新的由传递群发送的内容包,然后使用同样的CDS (f)转发P (k+l)。当增加了一位成员,CDS (f)变成了 CDS (f+l),共有(n+l)位成员, 传递群正在传送P (k+l), P (k+l)里面指示使用CDS的标记为f+l,接收 群的一个节点收到由传递群发送的P (k+l)后,根据CDS (f+l)的信息向 其它n位节点转发P (k+l)。在增加了一位成员的传输过程中,即使节点接收P (k)和P (k+l) 出现乱序,也没有关系,节点同时存在CDS (f)和CDS (f+l),可以完成 P (k)和P (k+l)的正确转发。同理,当某位成员离开时,CDS (f)变成了CDS (f+l),共有(n-l) 位成员,传递群正在传送P (k+l), P (k+l)里面指示使用CDS的标记为 f+l,接收群的一个节点收到由传递群发送的P (k+l)后,根据CDS (f+l) 的信息向其它(n-2)位节点转发P (k+l)。传送的任何P (k)里面都有一个指示使用了哪一个序号的CDS,例如 f或者为CDS (f )。如果节点不存在CDS (f ),有可能是两种情况之一(i ) 如果f是本内容传输合理的序号,说明节点缺CDS (f),此时,可以及时 更新CDS (f)或向其它节点要求补发CDS (f); ( ii )如果f是非法的序号, 则说明P (k)不是本次传输内容的内容包,可能是过期的内容包,还有可 能是恶意的内容包,此时,丢弃P(k)。所以,CDS对于G2G传输的强壮性 和安全性有莫大的好处。在一个时间为t的传输生命周期里,如果有n位成员(或n成员次数) 参与过传输,则会在CDS出现有关节点加入和退出的信息。设节点加入的 信息长度为p,退出的信息长度为q,传输生命周期中成员变更所形成的信 息总量S将有S = n(p+q) ------------------------------ (1)前面所述,节点加入和退出反应在CDS上,维护CDS必须是实时,一 旦CDS有变化,应及时更新各成员的CDS。显然,每次更新时传输整个CDS 是不可取的,应该采用数据压縮处理。传统的数据压縮(比如字典压縮) 耗时较多,难以满足实时传输要求。实用上,维护CDS实时更新必须是低开销。我们的方法是,更新CDS 时,只传输CDS变化部分。所述变化部分之一是指增加节点的信息,如果 增加i个节点,则需将长度为i*p的信息发送给各个成员节点。在传输生 命周期中增加节点的信息累计长度为n*p。节点的退出如同样在处理,得出WCDS=S/t --------------------------------- (2)等式(2)表明,在不计算包头(例如,UDP包头)且只考虑加入与 退出的情况下,在传输生命周期中,向各成员更新所传送的信息总量将不 超过S。由此得出,每位成员维护CDS所需的平均网络带宽为WCDS。例如,当n-10000, p=200bits (包含节点ID, IP,端口,状态,及少 量附加信息, 一般情况下,200bits已经足够),q-20bits (节点退出的信息 只需识别节点信息就足够),1=1小时=3600秒(小于已有P2P系统的实测 值),则WCDS=611(bps)。相对于lM(bps)的内容流速率,维护的开销不到 节点用于内容传输带宽的0. 1%。针对传输变化部分可以采用更好的数据压縮处理,可以使得维护CDS 所需网络带宽比Wcds更低。但是,所述的数据压縮处理必须适用于实时 环境,应该是处理简单,耗时少。所以,本发明提出解决其技术问题所采 用的具体技术处理步骤如下1、 服务器设定时间间隔或者在传送内容包前提取需维护的CDS;2、 服务器将最新CDS的整集与以前的某个CDS的整集,特别是最近的 CDS的整集,按符号比较,得出变化串,比较用的前CDS可以为空集;3、 将变化串进行变形压縮后得到变化集,变化集带有现在CDS的SN 标记和为比较所用的CDS的SN标记;4、 将变化集传输到一个或多个节点,以供节点根据其己有的CDS更新 为最新CDS。步骤l中比较所用的前CDS可以为空,变化串可以为最新的CDS。 步骤2所述符号的长度为一个字节或两个字节。 上述步骤2带来的好处主要有1) 整集比较代替了按记录比较,容易提高效率,更为简单方便。因 为按记录比较时,需要逐项比较,比如,第i记录变化时,标记为[i+ 第i记录内容],"i"代表第i个记录,然后将[i+第i记录内容]传输到 客户机,客户机根据接收到的内容只更新第i个记录。所以,按记录比较 会很啰嗦,更为麻烦的,很多场合并不知道数据集的记录划分。2) 按符号比较代替了按记录比较,可以传送更短的数据。 更新传输时, 一般会把变化部分变形为一个变化集,以方便传输。 虽然对于每一位成员维持CDS所需的网络带宽很小(例如,1K),但假如服务器需要对每一位成员都传送的话,那就会变得很大(例如,10000 成员时服务器需带宽IOM)。所以当群的成员数量大于一个预先设定的值 时,就应该采用以P2P方式来传送变化集,特别是采用G2G的传送方式。 此时,服务器对于更新CDS所需的带宽,可以控制到与单个成员所需一样,例如,10000成员时服务器需维持带宽为1K(bps)。为了实施方便,服务器 用于更新CDS的带宽也可以略为宽松些。采用G2G方式传送CDS更新部分的另一个好处,减少服务器因太多次 数的传送所造成的传输延时,例如,假如10000成员的群,原本需要分别 传送至10000个节点,现在只传送一次就行了 。用一个或者多个群管理参与一个内容发布的节点;用多个基本的群对 群传输来实现大型的内容发布任务。下面以一个具体实施例进一步说明本发明。当内容由传递群传送到接收群时,要进行内容块分配,即指定传递群 部分或全部成员分担各自的内容块传送。分配时,需要知道参与传递成员 的相关信息,这些相关信息由传递群的CDS来提供,为了方便,分配的工 作主要由用户管理服务器来完成。用户管理服务器可以是专职的,也可以 是某一个负责传送内容的节点兼职。假如传递群有m位成员拥有内容C。一般来说内容经过某个单元的多个节点传输到接收端,是需要对内容 进行分割,例如内容C分割为Q和C2,经传输后,使得 f(C,, c2) = cf是还原函数,d和C2可以有相同部分(更多的是为了抗网络传输的 变异而采用的冗余),为了简化实施,这里采用是不相交的分割,艮口c,uc尸c Cinc2 = o (空集) 实际上,可以将内容分成多块,例如C = { Bi , B2,…,Bm,…} 这样,分割起来比较方便,例如 Ci = { B! , Bi+m, Bi+2m, ...} C2 = { B2 , B2+in, B2+2m ,…} 所以,在本实施例中,传递群将内容传递到接收群是根据传递群CDS 所记载的信息,传递群将内容C分割为m个部分,使得节点k的内容部分 为Ck,传递时,节点k将Ck传递到接收群的多个节点。在图4 G2G内容传输示意图的具体实施例中,402、 404、 406分别表 示三个群,402所示的群只有一个节点,该群作为传递群将内容C分成两 部分d和C2,分别传送给404所示的群。404所示的群既可以作为接收群, 当接收内容C之后,又可以作为传递群,传递内容C到406所示的接收群。 图4说明传递群可以存在一个或多个节点,传递群的多个节点可以共同传送一个内容,例如,节点2传送d部分,节点3传送C2部分。当节点2收到C,部分内容和节点3收到C2部分内容而在交换之前,节点2和 节点3内容之间可以是不尽相同的,但依然可以继续安排G2G传输。图4所示的实施例中,接收群的节点接收到传递群所传送的内容包, 通常是需要再次向群内其它节点传送,例如节点4接收到d后,需要再次 向节点5和节点6传送。节点向群内其它节点交换内容包时,可以逐一向 其它节点传送内容包,当群节点数较多时,也可以根据CDS构成此内容包 的发布树进行交换,即此内容包传送给部分节点,由这些部分节点再次向 其它节点传送。图4所示的的进一步的实施例中,是一个大型内容的G2G发布方法, 步骤包括将需传输内容分成多个部分;用户按大致有序接收数据,用户具有一定的内容存储能力,记下最后 接收到内容块的块号;用户登录时,带上最后接收的块号,根据块号判断所属的内容部分, 将属于同一部分内容的用户组成会话群;由已接收过内容部分的群负责传递已存在的内容到有需要的群,若未 发现有已接收过内容部分的群,则由服务器负责传递内容。可以选择的方 法是设已接收过前n-l部分内容且正在从第n部分开始接收内容的群为 Gn,当Gk (k<n)请求传递,会从Gk+,开始,査找第一个合适负责传递的 群;如上述所设的群G。,群的编号n是动态变化的,当Gn接收完第n部 分内容,正准备接收第n+l部分内容时,G。转变为G^。传输中,形成群Gk从群Gw接收并交换内容,同时Gk向G^传递该 群已存在内容的过程。群之间的传递关系可以为服务器々Gn-〉G。—产>..尸〉G,这是一个有效、高容量和高性能的G2G文件下载方法,也可以支持实 现VOD (按需点播)系统。例如,假设有一个传送速率为lMbps,时间为 100分钟的视频内容。将视频内容分成100个接收部分(每一分钟内容为 -个部分),则最可以组成100个群,由已接收过内容的群负责传递给未接 收的群。假设群的最大用户数为10000,则服务器的一个1Mbps的数据流 最多可以支撑起100万用户的内容传输。大型内容的G2G发布方法实施关键在于"多对多"传输。例如,Gk+1 传递到Gk时,Gkw可能有多个节点,此时,G2G传输表现为将存在于传递群(Gk+1)多个节点的内容同时协作地传递到接收群(Gk)的多个节点。 大型内容的G2G发布方法也表明本发明与现有技术的不同与"一对多"传输相比,是多源的,即由多个节点负责发布内容;与"多对一"传输相比,是协作传输,即对于基本的G2G传输,存在全局的传输调度。还有一个不同的是除了存在节点的内容再次传送外,还存在群的内容再次传送,这是多节点协作的再次传送。内容可以是音/视频数据、流数据、计算机文件、网络上的UDP数据包、控制数据集或控制数据集的变化集,当将CDS的变化集作为传输内容时,通常加特别标记用来区别正常的内容传送,作为内容的CDS有其现时的SN,在传送的内容包附上变化前所使用的SN。G2G/CDS处理的流程图如图1所示,包括以下步骤在步骤102中,将新节点加入到具体的传递群或接收群,接收群可以设置节点数量范围,当超出范围时,可以组成多个接收群。在步骤104中,用户管理服务器更新有变化的群的CDS,并修改CDS的SN。在步骤106中,当CDS发生变化时,执行步骤IIO,更新相关节点的CDS。在步骤108中,将要求传送的内容分成若干部分,根据传递群的CDS, 制定传递群的节点负责传送内容块规则,设置负责传送内容的节点所传送 的内容部分,例如,节点j应该传送的内容集为Ck,然后执行步骤114。在步骤112中,传递内容先经过读入处理,将每个内容部分分成若干 内容块,以内容块为处理单位,这样,可以将文件和流数据进行统一处理, 然后执行步骤114。在步骤114中,负责传递的节点,例如节点k,将读入内容块判断, 判断该内容块是否属于Ck,节点k只传送该节点负责的内容部分,如果是 则执行步骤116,如果不是则不传送。在步骤116中,负责传递的节点,例如节点k,将需要传递的内容块 根据内容包结构进行打包,然后执行步骤118,将内容包分别传送给接收 群的不同节点,然后执行步骤120。在步骤120中,当接收群的节点收到内容包时,模块120进行相应处 理,包括内容包合法有效性检査、转发内容、补发内容和还原内容。通常 根据内容包的ET标记进行判断是否需要转发内容包。列举一个传递群节点k读到内容块,判断是否属于本节点发送,并将 内容块发送的算法算法l:while (send—content—true) for i=l to nwhile (get—new_packet(read_packet)) if (read_packet e Ck)send read_packet to node i; break; end ifend for为了方便,用内容读入函数将文件和流数据进行统一处理,例如,算 法1的函数get—new_packet,得出连续多个内容块或者打包后的内容包。 读入函数表明可以将内容表现为内容流的形式,而不管它是实时或者是已经存在的。如果节点需要补数据包,可以按一个预先设定的方法让接收群的节点 划分为多个支持小组,等待内容包的节点在超过约定的接收时间内未能收 到内容包时,首先向支持小组的其它节点发出补包请求,要求该节点补发 其所缺内容包。划分支持小组的方法可以有多种,其中一种方法可以是假如支持小 组最多有2位成员,可以设成员编号相邻的2个为l个支持小组。最后一组可能只有1位成员。只有1位成员时向其它小组或者服务器请求补数据。 采用正常传输时,尽量让支持小组的节点在较短的时间内接收到相同的内容包的策略。假如支持小组设为2个节点,则设置节点i和节点(i+l) 为同一支持小组。此时,算法l可以修改为 算法2: while (send—content—true) for i=l to n step 2while (get—new_packet(read_packet)) if (read_packet e Ck)send read_packet to node i; send read_packet to node (i+1); break; end ifend for因为接收群有两个节点同时收到同一内容块,所以,在交换时,两个节点各自负责群的一半节点的内容块交换。CDS更新处理实施例在服务器方,在将最新CDS (n)按照整集方式 与其前的某一个CDS (k) (k可以等于n-l, k也可以小于n-l)比较时, 是采用按符号比较,符号的划分比较灵活,不必局限于一个项目,可以定 义一个字节或两个字节就是一个符号,而一个项目往往有几个字节甚至十 多个字节,所以一个项目可以划分为若干个符号,这种比较方式,縮小了 对比的单元,对于只传输变化部分的方法,对比的单元越小,对比后所得 出的变化串的字节数越少。然而只有变化串还无法使客户机更新数据集, 还需要告诉客户机该变化串的位置,所以本实施例每个变化集包括开始标 记、新的数据集标记、旧的数据集标记、不为空时至少一个变化串元素及 该变化串元素相对位置的偏移值,变化串元素包括变化串元素头部和变化 串,变化串元素头部包括变化串头标记和变化串长度。本实施例的变化集 的变形方法及效果如下首先,改进比较对象,将按元素(记录)的比较改为按"符号"的形 式,"符号"统指字节、半字、字、双字、或任何其它预先选定改善的二进 制数,为便于理解,这里假定数据是字节形成的,可以为一个字节或两个 子—口 。设w为相对应于数据集开始到此的位置,新的数据集按从头到尾顺序 跟旧的数据集比较,提取变化部分,新的数据集组成的变化集可以分解为 〈变化串1单元〉〈变化串2单元〉…〈变化串i单元〉… <变化串i单元〉可以表示为[变化串i起始位置][变化串i长度][变化串i]但是起始位置通常是由4字节数字表示,需要改善,将相对应于数据 集头的起始位置改为相对应于上一个变化串结束位置的起始位置,此相对 位置可以用可变长编码,连同头标记用可变字节数(1-4字节)的数字表 示,从而达到压縮目的。串的长度也用可变长编码,连同串头标记用可变 字节数(1-4字节)的数字表示,能进一步压縮。〈变化串i单元〉改进表示为[偏移i][变化串头部i][变化串i]这里[*][*]表示两小串相连接成大串,并且有偏移至少包括可变长编码的偏移长度。还可以在偏移的头部设置 卜3bitS宽的偏移头标记,用来识别不同的串或者标记。采用偏移头标记 时,当偏移长度可以省略此项偏移。变化串头部至少包括可变长编码的变化串长度。还可以在变化串头 部的开始位置设置1-3bitS宽的变化串头标记,用来识别不同的串或者标记。称上述简化后的标记为按相对位置标记法。按相对位置标记法,具有 以下效果1. 在很多动态变化的数据集,通常在一定时间内变化的量很少,特 别是采用较小长度的符号比较,在只传输变化部分的传输中,可以大大减少传输量。2. 按相对位置标记法和可变长编码,有效减少作标记用的附加信息。3. 比较的计算非常简单,与数据集的具体内容无关,只是符号比较, 适用于动态变化网络的实时环境。一种加上传输附加信息后的变化集为[开始标记][新的数据集标记][旧的数据集标记][偏移1][变串头部1][变串1][偏移2][变串头部2][变串2]…[偏移i][变串头部i][变串 i][校验和][结束标记]如图5所示,I是CDS(n-l) , II是CDS(n) 。 IV是本实施例中变化集 的组成。例如,第i个项目中中两个字节由"CD"变化为"丽",该项目的 总长度为6个字节,III是现有技术中变化集的组成,是将最新数据集Pn 与其前一个数据集Pn-l采用按项目比较得出,位置标记(即标记第i个项 目)需要4个字节,变化串长度需要2-4个字节,变化串为6个字节,共 需要12-14个字节。IV是本实施例中变化集的组成,经变长变码压縮后, 偏移需要l-4个字节,通常需要一个字节;变化串长度需要1-4个字节, 通常需要一个字节;变化串需要2个字节,所以共需要4-IO个字节。可见 本实施例由于采用按符号比较,变化串的字节数比较少,压縮成的变化集 的字节数也少,从而使传输量减少。通常情况下, 一个项目会包含几十个 的字节,甚至上百个字节,而发生变化的通常是其中的几个字节,这种情 况下,本发明的效果更加显著。节点接收到变化集后,根据变化集中的己有的控制数据集的SN,査找 出该已有的控制数据集,变化集和已有的CDS—起,可以还原成新的CDS。应该理解,变化集应用本发明的发明构思所作出的不同变形也应属于 本发明所保护的范围。G2G/CDS通信协议解决了网络通信中的节点管理问题和内容如何传输 问题。但G2G/CDS通信协议缺少保障通信QoS方法,为此,在本发明的另 --个实施例中,提出在G2G/CDS通信协议基础上实现传输调度和拥塞控制 的方法,来保障通信的QoS,称为流动方法,包括如下步骤在内容发布过程中,在接收群的节点j能用于内容上传带宽Wj范围中,系统选择一个合理的上传速率Uj,让接收群的节点j按系统所指定的U,参与上传内容服务,其中j=l,2,***.N, N为接收群节点的数量;并且所述上传速率系数Uj满足下面关系式(U)+.. .+UN)+L*D ,,D) (3)其中,D为内容发布的速率;f(N,D)是与N*D有关的函数,为接收群所有节点下载内容所需要的带宽;假定接收群的节点j能用于内容上传带 宽为Wj; !^D为传递群所有节点提供的上传速率之和。流动方法的基本思想是让参与内容发布的节点按一个系统指定的速度提供上传内容传输。内容发布的各节点上传速率之和等于各节点下载速率之和。在内容发 布时分为源端和目的端,在这里,我们分别用传递群和接收群来表示和管 理。提供内容上传的节点包括传递群的节点和接收群的节点,而下载内容的节点只能是接收群的节点。设DR为(接收群)各节点下载速率之和, Us为传递群(源端)各节点上传速率之和,UR为接收群(目的端)各节点上传速率之和。艮口DR= EDj, DjG接收群 ------------------------(4)Us= £U" U,e传递群 -----------------------(5)UR= £Uj, UjG接收群 ------------------------(6)则有满足G2G传输的基本条件US + UR》DR -----------------------(7)这里,用符号'》'代替是因为在传输过程中有可能丢包。 与通常使用的条件"发送节点的带宽《接收节点的带宽"所表达的意 思不同,条件(7)不是描述通讯能力关系,而是描述通讯时数据流的关系。Us和UR是可变的,但有一定范围,设最大值分别为Us.max和UR.MAX, 则有US-MAX=EWi, Wf传递群 -----------------------(8)UR-MAX = EWj, WjG接收群 -----------------------(9)对于内容发布,内容传输速率表示为D,假如接收群的成员数为N, 则Di^NfD。或者表示为与N和D相关的函数Dff(N,D), f(N,D)是接收 群下载内容所需的下载带宽。对于传递群,最节省带宽是内容以D速率不重复发送,但对很多情况 下是不够,为了方便实施,突出内容传输速率D,设传递群提供I^D上传 带宽(内容重复发送了L倍)。有另一种表达为US = L*D ------------------------ (10)不重复发送时L-1。从条件(7)的变化得出,满足G2G内容发布的基本条件(U,+…+Un)+I^D乖,D) ----------------------- (11)Uj《Wj, UjE接收群,(j=l,2,...N) L*D《Us墨 D《D丽通过改变条件(11)中的一个或者多个参数,可以实现各种条件的内 容发布,尤其适用于动态变化的网络环境。这种传输方法又可以描述为-G2G流动方法监控网络传输过程或经QoS反馈,通过改变L 、 D和各节点Uj中的一 个或者多个参数,并且保证满足G2G内容发布的基本条件(11),进行分配 传送,使网络传输得以继续,也能以希望的方式控制网络传输。设节点为内容提供的平均上传速率为Uavg,通常情况下,U^接近内容流下载速率D。节点j当Wj《Uavg时选Uj = Wj,当Wj〉Uavg时选U」应满 足Uj》Uavg。当某些成员能力不够时,由有富裕上传带宽能力的节点和内容源端共同承担。上述选择的好处是,用者自我承担,(暂时)有困难大 家帮忙。我们称此为用户自我承担原则。原则上,算法1也是适用于节点按系统指定的速度提供上传内容,因为在get—newjacket(newjacket)中的new_packet可以采用可变的长度,并 且长度相关于Uj。也可以作较为明显表示的修改算法3.节点按系统指定的速度提供上传内容的传递群端算法 while (send—context—true) for i=l to n {get—new_packet—by一length(Ck, new_packet, Uj); send new__packet to node i;} 函数get—new_packet—by—length(Ck, new_packet, Ui)表示从本节点待发 内容Ck取一个长度与U,成比例相关的数据包到newjacket。例如,设传 递群的节点数为m,假设内传递群的节点k读入需传递的内容流的速率为 Dk,则D:D,+D2+…+Dm。节点k上传到接收群的速率也为Dk,则设定t 时间内由传递群的节点k安排传递到节点j内容块的长度和为Uj/UR*Dk (字节)。节点j向群内其它节点也传送了同样字节数的内容。让节点j按一个指定的速度提供上传内容传输的另一个实施的例子 是传递群传递到接收群节点的内容块长度是固定的,接收群节点将该内 容块再次传送到其它节点时,是以发布树方式传送,发布树中某一节点j所传送下一级节点的数目是跟Uj成比例。上述的例子说明让节点j按一个指定的速度提供上传内容传输可以有 不同的方法,也可以在传输过程的不同环节,或者由多个环节一起让节点 j完成按一个指定的速度提供上传内容传输。--种G2G流动方法流程图的实施例如图6所示,包括以下步骤-在步骤602中,判断(111+...+1^)+1/|1)^^,0)是否成立,当参数Wj、 L和N发生变化而不能满足条件(U一.. .+UN)+L*D减N,D)时,执行步骤604 , 当满足条件(U,+…+UN)+I^D鴻N,D)时,执行步骤608;在步骤604,判断是否需要写可以同时提高L和降低D,如果是,则 执行步骤606,提高L和降低D;如果不是则执行步骤612,判断是否需要 且可以提高L,如果是则执行步骤614,提高L;如果不是,则执行步骤620 判断是否可以降低D,如果是则执行步骤622,降低D;如果不是则执行步 骤626,进行相应处理。在步骤608,判断是否需要且可以提高D,如果是则执行步骤610,提 高D;如果不是则执行步骤616,判断是否需要且可以降低L,如果是则执 行步骤618,降低L;如果不是则执行步骤624,合理安排上传速率Uj,例 如适当修改参数Uj、 L和D。当参数Wj、 L和N发生变化,需要且可以改变参数L或者D时(602、 608和616模块),适当修改参数Uj、 L和D (624、 610和618模块)。流动方法实施时,通常情况下,首先要确定L和D,然后再合理安排 Uj (步骤624),给出两种Uj优选计算方法1:1、 计算合适的DR,且満足Ur》f(N,D)-L*D。计算Uav广UR/N。2、 首先,根据用户自我承担原则。节点j当Wj《Uavg时选Uj、o-Wj,当WpU狄g时选Uj, )=Uavg。节点剩余上传带宽Wy = Wj - Uj,0。然后,为有剩余上传能力的节点进一步分配上传速率<formula>formula see original document page 31</formula>方法2:为了方便计算,做一些简化,速率是以传送标准内容块为单位,假定群内有N位成员,在一时间t内N位成员共需上传M块内容块。同样, 节点的上传带宽表示为基本速率D。的倍数,上传速率为Do的成员在t时 间内上传l块内容块。统计上传速率为1DQ的成员数量MP上传速率为2DQ的成员数量 M2,…,分配时,先给每一位有上传能力的成员(Wj》lDo)分配一内容 块,不够时,在有剩余上传能力的成员(Wj》2Do)增加分配一内容块, 再不够时,从有剩余上传能力的成员(Wj》3Do)再增加分配一内容块,…。可以从Mp M2,…,计算出需要到Mk,即找到最小的k,使得 (M,+ M2+…+Mk)^M计算出k后,Uj = min(Wj%D0, k) * D0。上述步骤626中的相应处理包括以下步骤中的一个或多个A、 允许丢掉数据时,丢掉未能及时传送的内容;B、 多比特率编码内容传输时,如有更低速率的内容接入,则选择进入;C、 按传输失败处理。实现上述方法的系统包括用于将参与内容传输的节点分为负责传送 内容的传递群和接收内容接收群的分群装置,所述分群装置将已有的或要 加入的负责传送内容的节点归入传递群管理,将已有的或要加入的需要接 收内容的节点归入接收群管理;用于为每一个传递群或接收群建立一个反 映所属群的信息的控制数据集的控制数据集生成装置,所述控制数据集生 成装置还用于为每个控制数据集设置一个序列号,对于一段时间内或每一 次控制数据集变化后更新序列号,使控制数据集和序列号一一对应,所述 控制数据集至少包括群内每一个节点的基本信息,所述节点的基本信息至 少包括该节点的通信地址;用于将控制数据集发布到该群的每一个节点、 且使每一个节点保持本群最新的控制数据集的发送装置;用于将需要传送的内容分成多个部分,并设置传递群的节点负责传送的内容部分的第一处 理装置;用于控制传递群的节点将需要传送的内容部分分成多个内容块、 并将内容块装配成内容包的第二处理装置,所述内容包包括控制数据集的 序列号标记;所述发送装置还用于将接收该内容包的接收群的控制数据集 发布到传递群的节点;用于控制传递群的节点在传输前将控制数据集的序 列号标记设置为接收该内容包的接收群的控制数据集的当前序列号的第三 处理装置;用于控制传递群的节点根据接收群的控制数据集将数据包分别 传输给接收群的至少一个节点的第四处理装置;用于控制接收群中的节点 在接收到由传递群发送来的内容包后,根据内容包的序列号标记所指的控 制数据集,将所述内容块再次传送到群内的其它需要该内容块的节点的第 五处理装置;用于控制接收群中的节点将由各节点传送来的内容块还原成 所传送的内容的内容还原装置。其中,所述控制数据集生成装置包括用于使服务器按照设定时间间 隔或者在传送内容包前提取需维护的群的控制数据集的控制数据集提取单 元;用于将该群的最新控制数据集的整集与其之前的某个已有控制数据集 的整集按符号比较、得出变化串的比较单元;用于将变化串进行变形压縮 后得到变化集的变形单元,所述变化集带有最新控制数据集的序列号标记 和作为比较基础的己有控制数据集的序列号标记;用于将变化集传输到该 群的至少一个节点、以供节点根据其己有的控制数据集更新为最新控制数 据集的传送单元。还包括用于使群内各节点依赖本群的控制数据集对内容进行处理的 第六处理单元,所述第六处理单元用于对接收到的内容包进行合法有效性 检査、转发内容和补发内容。还可以进一步包括拥塞控制装置,所述拥塞控制装置包括用于根据 接收群中节点j能用于内容上传的带宽Wj选择一个合理的上传速率U」的 速率选择单元;用于控制接收群的节点j按照系统所指定的上传速率U」 参与上传内容服务的第七处理单元,其中j二l,2,….N, N为接收群节点的 数量;并且所述上传速率系数Uj满足下面关系式 (U!十...+UN)+L*D率,D)其中,D为内容发布的速率;f(N,D)是与]^D有关的函数,为接收群 所有节点下载内容所需要的带宽;L*D为传递群所有节点提供的上传速率 之和。图7是一种如何使用G2G/CDS和G2G流动方法的通用方法的一种体 系结构,将体系分成了管理层702,支撑层712,调度层716和应用层720。管理层有一个分群模块706,负责对用户进行群的管理,具体地,当 用户登录时,便通过分群来进入到具体的群,例如传递群或者接收群。所 述状态变化是通过监控模块708来识别,监控可以周期性査询,又可以是 单 -事件的査询,以及QoS等各种反馈信息。分群和监控所形成的信息记载在群的信息一CDS 704上,CDS为支撑 层和调度层提供直接的支持。更新模块710则负责相关的群以及具体的成 员的CDS的更新。支撑层提供通信基础,即G2G传输模块714,包括Transfer和Exchange传输。调度层主要由G2G流动方法构成的模块718。应用层由各种工具722,例如建立和监控内容发布;各种具体应用724, 例如,分布式计算(用在科学研究、金融业等),流媒体,内容和文件共享,及通信与协作系统;各种服务726等组成。本发明还可以在分布式计算环境中实施,在这些环境中,任务由通过 基于有线或者无线网络链接的节点来执行。这些节点,如远程处理装置或 设备,可以是专门构造用于所需目的,也可以是与根据本文的理论所编写 的计算机程序配合使用的各种通用机器。在分布式网络环境中,程序既可 以存储在本地也可以存储在远端的存储器存储设备中。本发明还可体现为计算机可读介质中的计算机可读代码。计算机可读 介质将被理解为包括任何用于以计算机可读的形式来存储或发送信息的机 制。例如,计算机可读介质包括只读存储器(ROM);随机访问存储器(RAM);磁盘存储介质;光存储介质;闪烁存储设备;电、光、声或其它形式的传 播信号(例如,载波、红外信号、数字信号等)。己为描述和说明的目的介绍了本发明,但非意指其为详尽无遗的或将 其限制在该揭示之形式下的发明。在需要避免使一个或多个发明难以理解 的情况下,描述可能省略相关领域的技术人员已知的某些信息。对于本领 域^般技术人员来说许多修正和变化将是显然的,例如,这些步骤可以不 同的顺序执行,也可以增加、删除、更改某些步骤,所有这些变化都被认 为是所声明的本发明的一部分。
权利要求
1. 一种计算机网络的内容发布方法,其特征在于包括基本的群对群传输,所述群是一些具有相同属性的节点的聚合,所述基本的群对群传输包括以下步骤A1、将参与内容传输的节点分为负责传送内容的传递群和接收内容接收群,将已有的或要加入的负责传送内容的节点归入传递群管理,将已有的或要加入的需要接收内容的节点归入接收群管理;B1、为每一个传递群或接收群建立一个反映所属群的信息的控制数据集,为每个控制数据集设置一个序列号,对于一段时间内或每一次控制数据集变化后更新序列号,使控制数据集和序列号一一对应,所述控制数据集至少包括群内每一个节点的基本信息,所述节点的基本信息至少包括该节点的通信地址;C1、将控制数据集发布到该群的每一个节点,且使每一个节点保持本群最新的控制数据集;D1、将需要传送的内容分成多个部分,设置传递群的节点负责传送的内容部分;E1、传递群的节点将需要传送的内容部分分成多个内容块,并将内容块装配成内容包,内容包包括控制数据集的序列号标记;F1、将接收该内容包的接收群的控制数据集发布到传递群的节点,并在传输前将控制数据集的序列号标记设置为接收该内容包的接收群的控制数据集的当前序列号;G1、传递群的节点根据接收群的控制数据集将数据包分别传输给接收群的至少一个节点;H1、接收群中的节点接收到由传递群发送来的内容包后,根据内容包的序列号标记所指的控制数据集,将所述内容块再次传送到群内的其它需要该内容块的节点;I1、接收群中的节点将由各节点传送来的内容块还原成所传送的内容。
2. 如权利要求1所述的计算机网络的内容发布方法,其特征在于所述 接收群接收到部分或者全部内容后,成为新的传递群,将已收到的内容继续传递到另一个接收群。
3. 如权利要求1所述的计算机网络的内容发布方法,其特征在于所述 节点的属性选自于任务、内容、网络速率、地域、距离、延时、节点标识、 稳定性、在线时间、丢包率、内容开始接收位置、跟任务、行为、个体的 差异和标识有关的属性。
4. 如权利要求1、 2或3所述的计算机网络的内容发布方法,其特征在于-用一个或者多个群管理参与一个内容发布的节点;用多个基本的群对群传 输来实现大型的内容发布任务。
5. 如权利要求1或2所述的计算机网络的内容发布方法,其特征在于 步骤Bl中所述的控制数据集的变化包括节点的加入、退出、任务的变化、和节点状态变化,所述节点保存有多个序列号不同的控制数据集。
6. 如权利要求5所述的计算机网络的内容发布方法,其特征在于所述 歩骤Bl中使每一个节点保持本群最新的控制数据集包括以下步骤Bll、服务器设定时间间隔或者在传送内容包前提取需维护的群的控 制数据集;B12、服务器将该群的最新控制数据集的整集与其之前的某个已有控 制数据集的整集按符号比较,得出变化串;B13、将变化串进行变形压縮后得到变化集,所述变化集带有最新控 制数据集的序列号标记和作为比较基础的已有控制数据集的序列号标记;B14、将变化集传输到该群的至少一个节点,以供节点根据其已有的 控制数据集更新为最新控制数据集。
7. 如权利要求6所述的计算机网络的内容发布方法,其特征在于步骤 -B12中所述的符号的长度为一个字节或两个字节。
8. 如权利要求7所述的计算机网络的内容发布方法,其特征在于所述 步骤B13中变化串进行变形压縮后得到变化集包括[开始标记][新控制 数据集的序列号][旧控制数据集的序列号][偏移l][变串头部l][变串 l][偏移2][变串头部2][变串2]…[偏移i][变串头部i][变串i][校验 和][结束标记],其中,偏移至少包括可变长编码的偏移长度,变串头部 至少包括可变长编码的变串长度,变串为新控制数据集与旧控制数据集比 较有变化的部分;i为变化集中变化串的数量,i为大于或等于0的整数。
9. 如权利要求5所述的计算机网络的内容发布方法,其特征在于群内 各节点还依赖本群的控制数据集对内容进行处理,包括对接收到的内容包 进行合法有效性检査、转发内容和补发内容。
10. 如权利要求6所述的计算机网络的内容发布方法,其特征在于所述.内容为音/视频数据、流数据、计算机文件、网络上的UDP数据包、控制 数据集或控制数据集的变化集。
11. 如权利要求5所述的计算机网络的内容发布方法,其特征在于按一 个预先设定的方法将接收群的节点划分为多个支持小组,等待内容包的节 点在超过约定的接收时间内未能收到内容包时,优先向支持小组的其它节 点发出补包请求,要求该节点补发其所缺内容包。
12. 如权利要求1至11中任一项所述的计算机网络的内容发布方法,其特 征在于在内容发布过程中,还包括以下步骤A2、根据接收群中节点j能用于内容上传的带宽Wj,系统选择一个合 理的上传速率Uj;B2、控制接收群的节点j按照系统所指定的上传速率Uj参与上传内容 服务,其中j二l,2,….N, N为接收群节点的数量;并且所述上传速率系数U」满足下面关系式(U,+,. .+UN)+L*D ,,D) 其中,D为内容发布的速率;f(N,D)是与N*D有关的函数,为接收群所有节点下载内容所需要的带宽;L*D为传递群所有节点提供的上传速率之和。
13. 如权利要求12所述的计算机网络的内容发布方法,其特征在于所述 步骤A2中系统通过以下步骤选择合理上传速率Uj:当节点j能用于内容上传的带宽Wj小于或等于节点为内容提供的平均上传速率为UUg时,选择Uj-Wj;当节点j能用于内容上传的带宽Wj大于节点为内容提供的平均上传 速率为Uavg时,选择的Uj应满足Uj》Uavg。
14. 如权利要求13所述的计算机网络的内容发布方法,其特征在于当参 数W」、L禾Q N发生变化而不能满足条件(U一…+UN)+I^D^(N,D)时适当修 改参数Uj、 L和D;或者当参数W」、L和N发生变化,需要且可以改变参 数L或者D时,适当修改参数Uj、 L和D。
15. —种计算机网络的内容发布方法,其特征在于包括以下步骤A3、将参与内容传输的节点分为负责传送内容的传递群和接收内容接 收群,将已有的或要加入的负责传送内容的节点归入传递群管理,将已有 的或要加入的需要接收内容的节点归入接收群管理;B3、为每一个传递群或接收群建立一个反映所属群的信息的控制数据.集,为每个控制数据集设置一个序列号,对于一段时间内或每一次控制数 据集变化后更新序列号,使控制数据集和序列号一一对应,所述控制数据 集至少包括群内每一个节点的基本信息,所述节点的基本信息至少包括该 节点的通信地址;C3、将控制数据集发布到该群的每一个节点,且使每一个节点保持本 群最新的控制数据集;D3、将需要传送的内容分成多个部分,设置传递群的节点负责传送的 内容部分;E3、传递群的节点将需要传送的内容部分分成多个内容块,并将内容 块装配成内容包,内容包包括控制数据集的序列号标记和交换类型标记;F3、将接收该内容包的接收群的控制数据集发布到传递群的节点,并 在传输前将控制数据集的序列号标记设置为接收该内容包的接收群的控制 数据集的当前序列号;G3、传递群的节点根据接收群的控制数据集将数据包分别传输给接收 群的至少一个节点;H3、接收群中的节点接收到由传递群发送来的内容包后,根据内容包 的交换类型标记决定该内容包是否需要在群内交换,当需要交换时根据内 容包的序列号标记所指的控制数据集,将所述内容块再次传送到群内的其 它需要该内容块的节点;13、接收群中的节点将由各节点传送来的内容块还原成所传送的内容。
16. 如权利要求15所述的计算机网络的内容发布方法,其特征在于在步骤H3中,接收到内容包的节点还根据内容包的交换类型标记决定该内容 包是否需要向其它的接收群发布。
17. —种计算机网络的内容发布系统,其特征在于包括用于将参与内容传输的节点分为负责传送内容的传递群和接收内容 接收群的分群装置,所述分群装置将已有的或要加入的负责传送内容的节 点归入传递群管理,将已有的或要加入的需要接收内容的节点归入接收群管理;用于为每一个传递群或接收群建立一个反映所属群的信息的控制数 据集的控制数据集生成装置,所述控制数据集生成装置还用于为每个控制 数据集设置一个序列号,对于一段时间内或每一次控制数据集变化后更新 序列号,使控制数据集和序列号一一对应,所述控制数据集至少包括群ft每-个节点的基本信息,所述节点的基本信息至少包括该节点的通信地址; 用于将控制数据集发布到该群的每一个节点、且使每一个节点保持本群最新的控制数据集的发送装置;用于将需要传送的内容分成多个部分,并设置传递群的节点负责传送的内容部分的第一处理装置;用于控制传递群的节点将需要传送的内容部分分成多个内容块、并将内容块装配成内容包的第二处理装置,所述内容包包括控制数据集的序列号标记;所述发送装置还用于将接收该内容包的接收群的控制数据集发布到 传递群的节点;用于控制传递群的节点在传输前将控制数据集的序列号标记设置为 接收该内容包的接收群的控制数据集的当前序列号的第三处理装置;用于控制传递群的节点根据接收群的控制数据集将数据包分别传输 给接收群的至少一个节点的第四处理装置;用于控制接收群中的节点在接收到由传递群发送来的内容包后,根据 内容包的序列号标记所指的控制数据集,将所述内容块再次传送到群内的 其它需要该内容块的节点的第五处理装置;用于控制接收群中的节点将由各节点传送来的内容块还原成所传送 的内容的内容还原装置。
18. 如权利要求17所述的计算机网络的内容发布系统,其特征在于所述 接收群接收到部分或者全部内容后,成为新的传递群,将已收到的内容继 续传递到另一个接收群。
19. 如权利要求17或18所述的计算机网络的内容发布系统,其特征在于: 所述控制数据集的变化包括节点的加入、退出、任务的变化和节点状态变 化,所述节点保存有多个序列号不同的控制数据集。
20. 如权利要求19所述的计算机网络的内容发布系统,其特征在于所述 控制数据集生成装置包括用于使服务器按照设定时间间隔或者在传送内容包前提取需维护的 群的控制数据集的控制数据集提取单元;用于将该群的最新控制数据集的整集与其之前的某个已有控制数据 集的整集按符号比较、得出变化串的比较单元;用于将变化串进行变形压縮后得到变化集的变形单元,所述变化集带 有最新控制数据集的序列号标记和作为比较基础的已有控制数据集的序列号标记;用于将变化集传输到该群的至少一个节点、以供节点根据其已有的控 制数据集更新为最新控制数据集的传送单元。
21. 如权利要求20所述的计算机网络的内容发布系统,其特征在于所述 的符号的长度为一个字节或两个字节。
22. 如权利要求21所述的计算机网络的内容发布系统,其特征在于所述 变化串进行变形压縮后得到变化集包括[开始标记][新控制数据集的序 列号][旧控制数据集的序列号][偏移1][变串头部1][变串1][偏移2][变串头部2][变串2]…[偏移i][变串头部i][变串i][校验和][结束标记],其中,偏移至少包括可变长编码的偏移长度,变串头部至少包括可变长编码的变串长度,变串为新控制数据集与旧控制数据集比较有变化的部分; i为变化集中变化串的数量,i为大于或等于0的整数。
23. 如权利要求19所述的计算机网络的内容发布系统,其特征在于还包 括用于使群内各节点依赖本群的控制数据集对内容进行处理的第六处理 单元,所述第六处理单元用于对接收到的内容包进行合法有效性检査、转 发内容和补发内容。
24. 如权利要求20所述的计算机网络的内容发布系统,其特征在于所 述内容为音/视频数据、流数据、计算机文件、网络上的UDP数据包、控 制数据集或控制数据集的变化集。
25. 如权利要求17至24中任一项所述的计算机网络的内容发布系统,其 特征在于还包括拥塞控制装置,所述拥塞控制装置包括用于根据接收群中节点j能用于内容上传的带宽Wj选择一个合理的 上传速率Uj的速率选择单元;用于控制接收群的节点j按照系统所指定的上传速率Uj参与上传内容 服务的第七处理单元,其中j二l,2,….N, N为接收群节点的数量;并且所述上传速率系数Uj满足下面关系式(U,+…+Un)+L承D率,D)其中,D为内容发布的速率;f(N,D)是与N*D有关的函数,为接收群所有节点下载内容所需要的带宽;L*D为传递群所有节点提供的上传速率之和。
26. —种计算机网络的内容发布系统,其特征在于包括用于将参与内容传输的节点分为负责传送内容的传递群和接收内容接收群的分群装置,所述分群装置将已有的或要加入的负责传送内容的节 点归入传递群管理,将已有的或要加入的需要接收内容的节点归入接收群 管理;用于为每一个传递群或接收群建立一个反映所属群的信息的控制数 据集的控制数据集生成装置,所述控制数据集生成装置还用于为每个控制 数据集设置一个序列号,对于一段时间内或每一次控制数据集变化后更新 序列号,使控制数据集和序列号一一对应,所述控制数据集至少包括群内 每一个节点的基本信息,所述节点的基本信息至少包括该节点的通信地址;用于将控制数据集发布到该群的每一个节点、且使每一个节点保持本 群最新的控制数据集的发送装置;用于将需要传送的内容分成多个部分,并设置传递群的节点负责传送 的内容部分的第一处理装置;用于控制传递群的节点将需要传送的内容部分分成多个内容块、并将 内容块装配成内容包的第二处理装置,所述内容包包括控制数据集的序列 号标记和交换类型标记;所述发送装置还用于将接收该内容包的接收群的控制数据集发布到 传递群的节点;用于控制传递群的节点在传输前将控制数据集的序列号标记设置为 接收该内容包的接收群的控制数据集的当前序列号的第三处理装置;用于控制传递群的节点根据接收群的控制数据集将数据包分别传输 给接收群的至少一个节点的第四处理装置;用于控制接收群中的节点在接收到由传递群发送来的内容包后,根据 内容包的交换类型标记决定该内容包是否需要在群内交换,当需要交换时 根据内容包的序列号标记所指的控制数据集,将所述内容块再次传送到群 内的其它需要该内容块的节点;用于控制接收群中的节点将由各节点传送来的内容块还原成所传送 的内容的内容还原装置。
全文摘要
本发明公开了一种计算机网络的内容发布方法及系统,本发明将参与内容传输的节点分为传递群和接收群,用群来管理动态进出的节点,包括分群、监控和反映群控制信息的CDS的更新;通过CDS实现对节点的实时管理,使传递群的节点根据CDS记录的节点的通信信息,传递群的多个节点是一个协作的内容传送,首先是传递群节点的传送任务的分配,然后递群节点将所分配的内容分块打包传送给接收群的节点,接收群中接收到内容包的节点再根据控制数据集将内容包在群内交换,从而完成了内容从对多个节点同时传送到另外的多个节点,并且相对于已有技术提高了内容传送速度。
文档编号H04L12/54GK101242337SQ20071007329
公开日2008年8月13日 申请日期2007年2月8日 优先权日2007年2月8日
发明者张永敏 申请人:张永敏
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1