search
HomeDatabaseMysql TutorialP2P技术体系结构与分类

P2P技术体系结构与分类

Jun 07, 2016 pm 03:39 PM
p2pArchitectureClassificationexisttechnologystructure

P2P 技术存在三种结构模式的体系结构,即以 Napster 为代表的集中目录式结构、以 Gnutella 为代表的纯 P2P 网络结构和混合式 P2P 网络结构。从 P2P 技术的分代来说,到目前为止的 P2P 技术可分为四代:第一代 P2P( 中央控制网络体系结构 ) ,第二代 P2P( 分

 

P2P 技术存在三种结构模式的体系结构,即以Napster 为代表的集中目录式结构、以Gnutella 为代表的纯P2P 网络结构和混合式P2P 网络结构。从 P2P 技术的分代来说,到目前为止的P2P 技术可分为四代:第一代P2P( 中央控制网络体系结构) ,第二代P2P( 分散分布网络体系结构) ,第三代 P2P( 混合网络体系结构) ,第四代P2P( 目前发展中P2P 技术)

  1 、第一代P2P( 中央控制网络体系结构—— 集中目录式结构)

  集中目录式结构采用中央服务器管理P2P 各节点,P2P 节点向中央目录服务器 注册关于自身的信息( 名称、地址、资源和元数据) ,但所有内容存贮在各个节点中而非并服务器上,查询节点根据目录服务器中信息的查询以及网络流量和延迟等 信息来选择与定位其它对等点并直接建立连接,而不必经过中央目录服务器进行。集中目录式结构的优点是提高了网络的可管理性,使得对共享资源的查找和更新非 常方便; 缺点是网络的稳定性( 服务器失效则该服务器下的对等节点全部失效)

  2 、第二代P2P( 分散分布网络体系结构——P2P 网络结构)

  纯P2P 网络结构也被称作广播式的P2P 模型,它没有集中的中央目录服务器, 每个用户随机接入网络,并与自己相邻的一组邻居节点通过端到端连接构成一个逻辑覆盖的网络。对等节点之间的内容查询和内容共享都是直接通过相邻节点广播接 力传递,同时每个节点还会记录搜索轨迹,以防止搜索环路的产生。纯P2P 网络结构解决了网络结构中心化的问题,扩展性和容错性较好。由于没有一个对等节点 知道整个网络的结构,网络中的搜索算法以泛洪的方式进行,控制信息的泛滥消耗了大量带宽并很快造成网络拥塞甚至网络的不稳定,从而导致整个网络的可用性较 差,另外这类系统更容易受到垃圾信息,甚至是病毒的恶意攻击。

  3 、第三代P2P( 混合网络体系结构—— 混合式网络结构)

  混合式网络结构综合了纯P2P 去中心化和集中式P2P 快速查找的优势。按节点 能力不同( 计算能力、内存大小、连接带宽、网络滞留时间等) 区分为普通节点和搜索节点两类。搜索节点与其临近的若干普通节点之间构成一个自治的簇,簇内采 用基于集中目录式的P2P 模式,而整个P2P 网络中各个不同的簇之间再通过纯 P2P 的模式将搜索节点相连起来。可以在各个搜索节点之间再次选取性能最优的节点,或者另外引入一新的性能最优的节点作为索引节点来保存整个网络中可以利 用的搜索节点信息,并且负责维护整个网络的结构。由于普通节点的文件搜索先在本地所属的簇内进行,只有查询结果不充分的时候,再通过搜索节点之间进行有限 的泛洪。这样就极为有效地消除纯P2P 结构中使用泛洪算法带来的网络拥塞、搜索迟缓等不利影响。同时,由于每个簇中的搜索节点监控着所有普通节点的行为, 能确保一些恶意的攻击行为能在网络局部得到控制,在一定程度上提高整个网络的负载平衡。

  4 、第四代P2P( 发展中的P2P 技术)

  应该说第四代P2P 并没有形成真正的代,而是在原有技术的基础上作了改进,提出和应用了一些新技术措施。典型的有:

  (1) 动态口选择之一。目前的P2P 应用一般使用固定的端口,但是一些公司已 经开始引入协议可以动态选择传输口,一般说口的数目在1024~4000 之间。甚至P2P 流可以用原来用于HTTP(SMTP) 的口80(25) 来传输以 便隐藏。这将使得识别跨运营商网络的P2P 流,掌握其流量变得更困难。

  (2) 双向下载。eDBT 等公司进一步发展引入双向流下载。该项技术可以多路并行下载和上载一个文件和/ 或多路并行下载一个文件的一部分。而目前传统的体系结构要求目标在完全下载后才能开始上载。这将大大加快文件分发速度。

  (3) 智能结点弹性重叠网络。智能结点弹性重叠网络是系统应用P2P 技术来调度已有的IP 承载网资源的新技术,在路由器网络层上设置智能结点用各种链路对等连接,构成网络应用层的弹性重叠网。可以在保持互联网分布自治体系结构前提下、改善网络的安全性、QoS 和管理性。智能结点可以在路由器之间交换数 据,能够对数据分类( 分辩病毒、垃圾邮件) 保证安全。通过多个几何上分布的结点观察互联网,共享信息可以了解互联网蠕虫感染范围和性质。提供高性能、可扩 张、位置无关消息选路,以确定最近的本地资源位置。改进内容分发。使用智能结点探测互联网路径踪迹并且送回关于踪迹的数据; 解决目前互联网跨自治区路径选 择方面存在的问题。实现QoS 选路, 减少丢包和时延,快速自动恢复等。

 

Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
MySQL: BLOB and other no-sql storage, what are the differences?MySQL: BLOB and other no-sql storage, what are the differences?May 13, 2025 am 12:14 AM

MySQL'sBLOBissuitableforstoringbinarydatawithinarelationaldatabase,whileNoSQLoptionslikeMongoDB,Redis,andCassandraofferflexible,scalablesolutionsforunstructureddata.BLOBissimplerbutcanslowdownperformancewithlargedata;NoSQLprovidesbetterscalabilityand

MySQL Add User: Syntax, Options, and Security Best PracticesMySQL Add User: Syntax, Options, and Security Best PracticesMay 13, 2025 am 12:12 AM

ToaddauserinMySQL,use:CREATEUSER'username'@'host'IDENTIFIEDBY'password';Here'showtodoitsecurely:1)Choosethehostcarefullytocontrolaccess.2)SetresourcelimitswithoptionslikeMAX_QUERIES_PER_HOUR.3)Usestrong,uniquepasswords.4)EnforceSSL/TLSconnectionswith

MySQL: How to avoid String Data Types common mistakes?MySQL: How to avoid String Data Types common mistakes?May 13, 2025 am 12:09 AM

ToavoidcommonmistakeswithstringdatatypesinMySQL,understandstringtypenuances,choosetherighttype,andmanageencodingandcollationsettingseffectively.1)UseCHARforfixed-lengthstrings,VARCHARforvariable-length,andTEXT/BLOBforlargerdata.2)Setcorrectcharacters

MySQL: String Data Types and ENUMs?MySQL: String Data Types and ENUMs?May 13, 2025 am 12:05 AM

MySQloffersechar, Varchar, text, Anddenumforstringdata.usecharforfixed-Lengthstrings, VarcharerForvariable-Length, text forlarger text, AndenumforenforcingdataAntegritywithaetofvalues.

MySQL BLOB: how to optimize BLOBs requestsMySQL BLOB: how to optimize BLOBs requestsMay 13, 2025 am 12:03 AM

Optimizing MySQLBLOB requests can be done through the following strategies: 1. Reduce the frequency of BLOB query, use independent requests or delay loading; 2. Select the appropriate BLOB type (such as TINYBLOB); 3. Separate the BLOB data into separate tables; 4. Compress the BLOB data at the application layer; 5. Index the BLOB metadata. These methods can effectively improve performance by combining monitoring, caching and data sharding in actual applications.

Adding Users to MySQL: The Complete TutorialAdding Users to MySQL: The Complete TutorialMay 12, 2025 am 12:14 AM

Mastering the method of adding MySQL users is crucial for database administrators and developers because it ensures the security and access control of the database. 1) Create a new user using the CREATEUSER command, 2) Assign permissions through the GRANT command, 3) Use FLUSHPRIVILEGES to ensure permissions take effect, 4) Regularly audit and clean user accounts to maintain performance and security.

Mastering MySQL String Data Types: VARCHAR vs. TEXT vs. CHARMastering MySQL String Data Types: VARCHAR vs. TEXT vs. CHARMay 12, 2025 am 12:12 AM

ChooseCHARforfixed-lengthdata,VARCHARforvariable-lengthdata,andTEXTforlargetextfields.1)CHARisefficientforconsistent-lengthdatalikecodes.2)VARCHARsuitsvariable-lengthdatalikenames,balancingflexibilityandperformance.3)TEXTisidealforlargetextslikeartic

MySQL: String Data Types and Indexing: Best PracticesMySQL: String Data Types and Indexing: Best PracticesMay 12, 2025 am 12:11 AM

Best practices for handling string data types and indexes in MySQL include: 1) Selecting the appropriate string type, such as CHAR for fixed length, VARCHAR for variable length, and TEXT for large text; 2) Be cautious in indexing, avoid over-indexing, and create indexes for common queries; 3) Use prefix indexes and full-text indexes to optimize long string searches; 4) Regularly monitor and optimize indexes to keep indexes small and efficient. Through these methods, we can balance read and write performance and improve database efficiency.

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

This project is in the process of being migrated to osdn.net/projects/mingw, you can continue to follow us there. MinGW: A native Windows port of the GNU Compiler Collection (GCC), freely distributable import libraries and header files for building native Windows applications; includes extensions to the MSVC runtime to support C99 functionality. All MinGW software can run on 64-bit Windows platforms.

Dreamweaver Mac version

Dreamweaver Mac version

Visual web development tools

MantisBT

MantisBT

Mantis is an easy-to-deploy web-based defect tracking tool designed to aid in product defect tracking. It requires PHP, MySQL and a web server. Check out our demo and hosting services.

WebStorm Mac version

WebStorm Mac version

Useful JavaScript development tools

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment