网络工作组 O. Kassionen
互联网草案 T. Koskela
期望身份:报告 E. Harjula
到期:2010-01-11 M. Ylianttila
University of Oulu
2009-07-10
使用多重覆盖的点到点组管理机制
备忘录状态
这份草案完全符合BCP78和BCP79的规定而提交给IETF的。
互联网草案是IETF和它所涉及的领域和相关工作组的工作文档。注意其他团体也可以发布工作文档作为互联网草案。
互联网草案只是一个草案文档,它有六个月的最大有效时间,期间也可能被其他文档更新、替代或废弃。如果我们将它作为参考材料或者引用它,这是不合适的,它本身只能作为一个“工作进程”。
当前互联网草案清单可以通过以下链接获取:http://www.ietf.org/ietf/lid-abstracts.txt
互联网草案镜像目录列表可以在以下链接获取:
http://www.ietf.org/shadow.html
这个互联网草案将在2010年1月11日过期。
版权提示
Copyright (C)IETF Trust以及文档作者授权的人们。版权所有。
这篇文档符合BCP78以及IETF Trust文档合法条款,在文档正式出版发行有效(http://trustee.ietf.org/license-info)。请仔细浏览这些文档,因为它们描述了你在使用这篇文档的权利和限制。
摘要
这篇文档介绍了一种管理结构化P2P层次网络群组的机制。组管理加强了组成员之间高效而安全的交互行为,这得益于控制组级别的P2P消息传播和其它通信的范围。这篇文档介绍的组管理机制基于一种层次化方案。每个组有自己的地址空间、资源、消息路由信息而成为单独的层次化网络。一个很常见的覆盖网络用于分享组覆盖网(子覆盖网)的信息。
目录
1. 引言…………………………………………………………………………………
2. 专业术语……………………………………………………………………………
3. 框架概述……………………………………………………………………………
4. 操作概述……………………………………………………………………………
4.1.群组创建………………………………………………………………………..
4.2.群组维护………………………………………………………………………..
4.3.加入和离开群组………………………………………………………………..
4.4.群组移除………………………………………………………………………..
4.5.群组到ID别名的绑定…………………………………………………………
5. 数据格式……………………………………………………………………………
6. 性能考虑………………………………………………………………………….
7. 致谢……………………………………………………………………………….
8. IANA考虑………………………………………………………………………..
9. 安全考虑………………………………………………………………………….
10. 参考文献………………………………………………………………………….
10.1.规范参考…………………………………………………………………….
10.2. 报告参考…………………………………………………………………….
作者地址………………………………………………………………………………
1. 引言
社区网络服务的迅速流行,比如Facebook[FACEBOOK],Google Groups[GOOGLEGRP],Yahoo Groups[YAHOOGRP],更加凸显了组管理的重要性。特别是对于本身就是强调个人之间通信的P2P网络平台,就更加明显。群组间或群组中内容、信息分享可以看作是P2P网络背后主要的驱动力。用户加入一个网络通常是他有某种兴趣。所以他们也会很倾向去自己创建一些群组,我们管它叫社区。传统的P2P应用的使用者,这些应用比如资源分享,IP电话,视频/语音会议,正迅速以小组群的方式组织起来。
用户和服务形成群体性最主要原因是为了保护隐私而限制通信范围。群组内的成员在某种程度上都对各自持信任态度。群组也可以为了安全原因而使用,比如对群组的访问。这样组定义的资源和通信就只能在小组成员之间进行。尽管组管理被认为是P2P服务的基本功能,但是标准化倡议,例如IETF的P2PSIP工作组,并没有过多地关注它。
长期以来不同的P2P系统使用不同形式的组管理。最常见的方式是在应用层管理群组,例如,在P2P协议上使用一个单独的组管理协议。不过,如果用户想要在同一个组中使用多种应用,应用导向的组管理就不是最佳的方式。可能最出名的P2P层组管理机制就是在JXTA中使用的那种。在JXTA中,每个对等体是全球对等群组,叫做“NetPeerGroup”的一员,同时可以是一个或多个其它群组成员。但是JXTA并没有详细定义怎么创建和管理群组。在结构化P2P系统中,群组管理(例如应用层解决方案)最常见的一种方式就是每个群组使用单独的覆盖层。分层结构,比如[HIERAS]和[HierarchP2P],已经被建议作为提高结构化P2P网络路由效率的手段。不过,分层基础模型对于组管理目的也是有用的。
这篇文档描述了管理结构化P2P层次网络上的实体构成的群组机制。在被提议的组管理机制中,每个组形成一个针对这个组特定的P2P层次网络。组中成员参与路由事宜以及其他层次网上的事宜,这些是P2P协议和DHT算法定义了的。一个对等体可以是一个或多个组中的成员。
一个群组网络隔离了其他基于对等体活动的P2P网络之间特定组活动。这个层次性的访问手段有以下一些优势,相对于之前只使用一个大的覆盖网,网中包含了所有群组活动,可以使用独立的组管理机制。
--路由效率:小层次网提供一个更高效的路由,相对于单个层次网而言。在小层次网数更少。
--公平的负载分配:只有成员节点才有义务维持特定组。
--操作简单化:所有组关联的活动已经被包含中特定组的层次性网络中
--安全:安全的基础就是隔离了不同群组之间之间的通信。就没有必要再去单独监视群组资源的访问权限(当然所选择P2P协议安全手段如果适用除外)
--透明性:组管理系统支持DHT算法和基于DHT的P2P层次网协议的任意组合。还有,由于层次网间本身就是独立的,我们就可以再不同组层次网中采用不同的DHT算法。
所有对等体都是主层次网的成员。所介绍的机制使用主层次网来分发敢于现有群组和群组成员信息。每个对等体都可以访问关于群组公开的信息,因为对等体可以在主网中充当搜索功能。
在接下来几节,某些P2P协议相关的术语和操作实例将被使用。术语或细节还有动作可能会有些微差异,这取决于我们在实现群组管理机制时所采用的实际P2P协议。这篇文档试图使用对于绝大多数基于DHT的P2P协议很常见的术语和P2P操作。
解决方案尽最大可能利用现有P2P协议的数据存储(发布)和查找机制。
2. 专业术语
在这篇文档中使用的关键词“必须”,“不必”,“需要”,“应当”,“不该”,“推荐”,“可能”,“非强制的”的详细解释可参照RFC2119。
层次网络:在更低层网络上(实际中通常是IP网)的一种结构化P2P网络。
对等体:正如在P2PSIP术语中所说,它就是维持一个层次网络的节点。
客户:在P2PSIP术语中,它是指不参与维持层次网络,但使用对等体提供的服务的那些节点。
群组:在一个结构化P2P网络中的节点组成的任何组;它们之间的通信在一个群组中实现。
群组ID:人可读的或二进制标识,用以区分不同群组。在DHT系统中这个ID作为搜索相应群组信息的一个关键搜索字段。
群组描述:人可读的对一个群组的描述,特定一个群组ID的。
群组层次网:包含组中对等体的层次网。群组活动发生在群组层次网中。
主层次网:某个网络中所有对等体都是其成员的一个很大的层次网。用于发布群组层次网和组成员信息。
社区:群组的子类型;由人类用户组成的群组。人员的终端设备在群组层次网中充当对等体角色。
3. 框架概述
本文的组管理架构的核心理念就是在每个社区中使用一种DHT层次网,这样就产生了很多小的子层次网构成了主层次网的子集。这就形成了一个层次网的分级,每个DHT层次网都是自包含的,独立的网络,如图1所示。群组信息至少包含相关群组成员信息、组描述,这些都应当在主层次网中公布。如果用户希望私有群组,可以不用在主层次网中发布出来。在一个网络中可同时存在公开化的群组也可以有私有群组。
层次网之间管理正如图1呈现的那样,对等体1,2,3,4都是主层次网成员。对等体1,2是组A成员(因此在组层次网A里)。对等体2,4是组B成员。对等体不是任何群组成员。
4.操作概述
4.1.群组创建
一个新的群组被创建,以确立一个新的层次网(组层次网),在这个网里面发生各种群组活动。这种创建操作意味着一个新的P2P协议栈实例的创建,以便路由表,资源表登对于这个创建的组是特定的。在创建一个新组之前,创建者通过向主层次网发送一个资源查询请求,以便确定有没有同样ID的群组已经存在了。
在这个基本情形中,创建对等体将扮演组中的纽带节点。这意味着这个节点将响应其他想要加入群组节点的初始化请求。创建对等体不必是纽带节点;这个角色可以使用群组中任何其它节点来担当。
创建节点发布一个DHT键值对<组ID, 组信息>给主层次网。组信息包括纽带节点ID和它的联系信息,比如IP地址和端口号。还有,群组这时会发布一个成员列表,但此刻里面只有它自身。这个表有一个DHT键,它包含和一个与组ID对应“成员”短语;这样就可能其他对等体搜索组中的某个成员。最后,创建对等体发布一个键值对,其中键是个通配符以便匹配所有组,而值是群组ID。这里的“通配符”意味着任何对等体创建的群组使用同一个键;因此,搜寻键消耗很多资源,每个都与特定组关联。创建一个公开群组的动作序列如图2所示。
----------------------------------------------------------------------
| Main Overlay |
-----------------------------------------------------------------------
----|---- -----|--- ----|---- ----|----
|Peer 1| |Peer 2| |Peer 3| |Peer 4|
--------- --------- --------- --------
| | \ |
---------------------------- \-----------------------------------
| Group Overlay A | | Group Overlay B |
案例情形:在不同层次网中的对等体
图1
如果一个节点不能承担层次网管理任务(如一个低能力的P2PSIP客户端),它却想建立一个群组,就需要询问其他节点(有更高能力和公开的IP地址)使之成为组创建者。这个有更高能力的节点将会暂时在主层次网中充当维护组信息的角色。一个节点可以是主层次网中的一个客户端,组层次网中的一个对等体,反之亦然。
群组可以是公开的也可以是私有的。私有群组不会向主层次网发布。同样的逻辑适用于全体成员。即使一个群组是公开的,成员关系可能是私有的,因此成员列表不会在这种情况下公开。
4.2.群组维护
群组维护涉及到主层次网中群组存在和群组关系信息的发布。还有,群组维护也包含层次维护信息(例如邻居节点之间的存活信号),在P2P协议中是这样要求的。发布重复地进行,如果一个层次网的P2P协议需要周期性更新资源对象的话。
在每个群组中,至少应该有一个对等体应当能维护群组层次网的路由和资源管理功能。如果所有的对等体都离开了组层次网以至于只有客户端存在,至少有个客户端应当成为对等体,或者有外部的一个对等体发出对等体服务请求(这个功能在这个版本的草案中尚未定义)。如果上述条件也不满足则这个群组将不复存在。
如果广播对等体离开了这个群组,而这个群组是公开的,另外某个对等体就应当充当这个角色;否则,主层次网中的公共群组信息的更新将会终止。
4.3.加入和离开群组
很典型的加入群组方法是通过纽带节点加入。这个节点最初是创建节点。加入可以通过组中任何一个对等体实现(如果协议支持的话),但通常加入节点知道相应的纽带节点,因为在主层次网中有广播这些信息。在公共群组的情形下,主层次网中是存在这些存活节点的信息的。而私有群组情形下,信息可以以某种方式转换,例如,通过e-mail或者一个纸质文档指引节点怎么联系上特定存在的层次网节点。怎样加入一个公共组的操作序列如图3所示。
Creator Peer Main Overlay
| |
| Lookup(group ID) |
|------------------------------------------------------>|
| Not found |
|<------------------------------------------------------|
| |
| New stack instance |
|------+ |
|<-----+ |
| |
| Publish(group ID, group info) |
|------------------------------------------------------>|
| OK |
|<------------------------------------------------------|
| |
| Publish("members of <group ID>", creator peer’s ID) |
|------------------------------------------------------>|
| OK |
|<------------------------------------------------------|
| |
| Publish("group list wildcard", group ID) |
|------------------------------------------------------>|
| OK |
|<------------------------------------------------------|
| |
公共群组创建
图2
离开一个群组使用的是基本P2P协议的离开功能离开相应的组层次网。将要离开的节点必须也要停止更新它在主层次网的群组成员发布信息,如果可能的话删除在主层次网中的存在形式。如果离开的节点还担当了组层次网中的一个对等体位置,离开的时候还应当很自然的撤销其维护功能性。
Joining Peer Main Ov. Boots. Peer Group Ov.
| | | |
| Lookup(group ID) | | |
|------------------------------->| | |
| Group info | | |
|<-------------------------------| | |
| | | |
| New stack instance | | |
|------+ | | |
|<-----+ | | |
| | | |
| Bootstrap request | | |
|------------------------------------------->| |
| OK | | |
|<-------------------------------------------| |
| | | |
| Join overlay | | |
|------------------------------------------------------->|
| OK | | |
|<-------------------------------------------------------|
| | | |
| Publish("members...", peer ID) | | |
|------------------------------->| | |
| OK | | |
|<-------------------------------| | |
| | | |
加入一个公开群
图3
在P2P网络中提出使用指针在网外来引用一个特定的层次网或资源。在组管理中,指针可以用来指到特定的群组。例如,一个基于指针指向一个组的“链接”可以在邀请一个新成员使用。开启“链接”就会促发DHT协议栈的实例化和P2P协议的加入操作。
4.4.群组移除
移除一个群组是通过关闭群组网实现以达到没有节点再存在。群组和成员信息应当从主层次网中移除。即要移除:1)资源(键值对),键是群组ID;2)列表里的群组,列表包含在键是通配符的资源里面;3)成员资源,它的键是“群ID的成员”。
组层次网也可以停止存在甚至不需要显式群组移除。如果没有对等体存在层次网中,例如只有客户端存在以及没有节点愿意扮演新对等体,群组就会消失。
4.5群组绑定到一个“别名”font-fa
分享到:
相关推荐
"RFC文档中文翻译完整版(RFC1 ~~ RFC3093)" 这个标题表明我们拥有一套完整的中文翻译版RFC文档,涵盖了从RFC1到RFC3093的所有文档。RFC(Request for Comments)是互联网工程任务组(IETF)发布的一种技术规范和标准...
目前最全的rfc中文翻译(但仍没有英文版全,我另外上传了英文版的rfc0001-rfc5503),送给需要的朋友。
RFC8649 中文翻译 中文RFC RFC文档 RFC翻译 RFC中文版中英文对照翻译,非常方便。
标题“RFC大全--中文翻译”表明这是一个关于互联网请求评论(Request for Comments,简称RFC)文档的集合,并且这些文档已经被翻译成了中文。RFC是互联网标准过程中的一个重要部分,用来记录和发布互联网相关的技术...
标题“rfc中文翻译版本”表明这是一个包含RFC(Request for Comments)文档的中文译本集合,对于从事网络开发和通信协议研究的人来说尤其有用。描述中提到,这些译文是网络开发和理解通信协议的重要参考资料,建议...
《snmp_v3_rfc3410》是一份重要的文档,它详细介绍了简单网络管理协议(Simple Network Management Protocol, SNMP)的第三个版本——SNMPv3。这份文档不仅提供了SNMPv3的全面概述,还阐述了为何在当前环境下推荐...
标题"RFC中文完整版-china-pub-RFC文档中文翻译计划.zip"揭示了这个压缩包的内容,它包含的是RFC文档的中文完整版本,由中国的一个团队或社区(china-pub)翻译完成。RFC(Request for Comments)是互联网标准过程中...
RFC中文翻译, CHM格式,到RFC3093
RFC1605_SONET to Sonnet翻译 RFC1606_用IP版本9的历史观 RFC1611_DNS服务器MIB扩展 RFC1612_DNS解析器MIB扩展 RFC1618_ISDN上的PPP(点对点)协议 RFC1628 UPS 管理信息基础 RFC1633_Internet 体系结构中的综合服务...
包含了1-3093的rfc中文翻译。 组织:中国互动出版网(http://www.china-pub.com/) RFC文档中文翻译计划(http://www.china-pub.com/compters/emook/aboutemook.htm) E-mail:ouyang@china-pub.com 译者: 李超...
rfc6071翻译版中文版
标题提及的是"RFC917.rar_rfc 917 翻译",这表明这是一个关于互联网请求评论(RFC)917的中文翻译文档。RFC文档是互联网工程任务组(IETF)发布的技术标准或建议,用于定义网络协议和过程。RFC 917很可能是其中的一份,...
"RFC2597中文翻译" RFC2597中文翻译是一份关于区分服务(DS)中的确保转发(Assured Forwarding,AF)PHB组的RFC文档。该文档定义了一个通用的AF PHB组,提供四个独立的AF类以供IP分组转发。在每个AF类中,IP分组...
**标题**: RFC5280_中文版_个人翻译v1.0 **描述**: 这是一个关于RFC5280标准的个人中文翻译初稿,可能存在一些翻译上的不准确,作者计划在未来进行修订和优化。 **标签**: 1. **CA**(Certification Authority): ...
总之,《rfc2616中文翻译完全版本》不仅是一份技术文档,更是理解现代Web工作原理和设计思想的重要资料。通过对HTTP/1.1协议的深入探讨,我们不仅能够掌握其基本操作,还能洞悉其背后的网络哲学,为构建更加高效、...
WebSocket协议手册(rfc6455中文翻译)详细介绍了WebSocket通信协议的相关知识点,以下是手册中涵盖的知识点详解: 1. WebSocket协议概述: WebSocket是一种在单个TCP连接上进行全双工通信的协议,可以实现实时的双向...
rfc中文翻译完整版打包 请使用UltraEdit或notepad++等打开,否则会出现换行错误(\n\r) 组织:中国互动出版网(http://www.china-pub.com/) RFC文档中文翻译计划完整打包 E-mail:ouyang@china-pub.com 完整网页版...
RFC1157-简单网络管理协议(SNMP)翻译 RFC1157 是一个重要的网络管理协议标准,它定义了一个简单的协议,允许逻辑上的远程用户通过该协议来检查或改变网元管理信息。该协议是对 RFC 1098 的重发布版,包括经修改的...
### RFC2205中文翻译解析:资源预留协议(Resource Reservation Protocol, RSVP) #### 引言 《RFC2205中文翻译》是一份详细阐述资源预留协议(RSVP)的文档,该协议专为互联网综合服务设计,旨在实现特定应用数据流...
RFC-1305 网络时间协议(版本 3) 本文档介绍了网络时间协议(NTP)的版本 3。它取代了 1989 年 9 月 RFC-1119 中描述的 协议的版本 2。但是,它既没有以任何重大方式更改协议,也没有废弃旧版本或现有实现。 新...