基于P2P文件传输

基于P2P文件传输基于P2P文件传输1.      P2P简介对等网络P2P(peer-to-peer)技术是一种用于不同计算机用户之间,不经过中继设备直接交换数据或服务的技术,其网络通信方式如下图所示:P2P技术打破了传统的Client/Server模式,在对等网络中,每个节点的地位都是相同的,具备客户端和服务器双重特性,可以同时作为服务使用者和服务提供者。P2P技术有着广阔的应用领域,目前主

大家好,又见面了,我是你们的朋友全栈君。

基于P2P文件传输

1.      P2P简介

对等网络P2P(peer-to-peer)技术是一种用于不同计算机用户之间,不经过中继设备直接交换数据或服务的技术,其网络通信方式如下图所示:

P2P技术打破了传统的Client/Server模式,在对等网络中,每个节点的地位都是相同的,具备客户端和服务器双重特性,可以同时作为服务使用者和服务提供者。

P2P技术有着广阔的应用领域,目前主要的应用有文件交换、分布式计算、协同工作、分布式搜索和电子商务等。

2.      主要的P2P模式

      P2P模式的变化经历了集中式、分布式、和混合式3个阶段。P2P技术起源于文件交换技术,在发展过程中,文件交换技术的演变最具代表性,下面介绍P2P模式的几种形式:

(1)      集中式对等网络。集中式P2P模式由一个中心服务器来负责记录共享信息以及反馈对这些信息的查询。每一个对等实体要对它所需共享的信息以及进行的通信负责,根据需要下载它所需要的其他对等实体上的信息。这种形式具有中心化的特点,但是它不同于传统意义于上的Cleint/Server模式。因为传统意义上的Client/Server模式采用的是一种垄断的手段,所有资料都存放在服务器上,客户机只能被动的从服务器上读取信息,并且客户机之间不具有交互能力;而集中式P2P模式则是所有网上提供的资料都存放在提供资料的客户机上,服务器上只保留索引信息,此外服务器与对等实体以及对等实体之间都具有交互能力。

(2)      分布式对等网络。在分布式P2P中,对等机通过与相邻对等机之间的连接,遍历整个网络体系。每个对等机在功能上都是相似的,并没有专门的服务器,而对等机必须依靠它们所在的分布网络来查找文件和定位其他对等机。这种无中心、纯分布式系统不再是简单的点到点通信,而是更高效、更复杂的网络通信。

(3)      混合P2P网络。集中式P2P有利于网络资源的快速检索,并且只要服务器能力足够强大就可以无限扩展,但是其中心化的模式容易遭到直接的攻击;分布式解决了抗攻击的问题,但是又缺乏快速搜索和可扩展性。混合式P2P结合了集中式和分布式P2P优点,在设计思想和处理能力上都进一步的优化。它在分布式模式的基础上,将用户节点能力进行分类,使某些节点担任特殊任务。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/160307.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • unit在matlab中啥意思,unit8(matlab中uint8函数)

    unit在matlab中啥意思,unit8(matlab中uint8函数)就是宏定义,代码中就用这些去定义变量如uint16a;就表示定义了一个无符号整形变量a(等价于unsignedinta;)其他的同理其作用是程序更加简洁最大的作用是增.将变量t类型强制转换为uint8*类型也就是转换成指向uint8类型变量的指针变量uint8应该是无符号8位二进制整型,其实就是unsignedchar类型。一定要是新教材!!!美国的复感恩节。在大多…

    2025年12月14日
    3
  • mysql错误代码1142_mysqldump命令

    mysql错误代码1142_mysqldump命令I’mhavingtroubleswithacertainqueryononeofmyservers.OnallotherplacesI’vetestedititworkscompletelyfinebutontheserveriwanttouseititisn’tworking.It’saboutthefollowing…

    2022年10月1日
    2
  • feign默认负载均衡策略_负载均衡策略的是

    feign默认负载均衡策略_负载均衡策略的是OpenFeign与Ribbon,负载均衡策略

    2022年10月13日
    3
  • 简述django请求生命周期_django更新数据库记录

    简述django请求生命周期_django更新数据库记录Django请求生命周期分析1.客户端发送请求在浏览器输入url地址,例如www.baidu.com,浏览器会自动补全协议(http),变为http://www.baidu.com,现在部分网站都

    2022年7月31日
    5
  • runnable 和 callable区别「建议收藏」

    runnable和callable有什么区别?相同点:1、两者都是接口;(废话)2、两者都可用来编写多线程程序;3、两者都需要调用Thread.start()启动线程;不同点:1、两者最大的不同点是:Runnable接口run方法无返回值;Callable接口call方法有返回值。2、Runnable接口run方法只能抛出运行时异常,且无法捕获处理;Callable接口call方法允许抛出异常,可以获取异常信息。注意:Callalbe接口支持返回执行结果,需要调

    2022年4月8日
    49
  • 安卓CTS测试(测试手机性能的软件)

    CTS和GTS测试基本操作步骤    CTS全称CompatibilityTestSuite(兼容性测试),CTS的目的就是让各种Android设备(如手机)开发商能够开发出兼容性更好的Android设备,Google制定了CDD(CompatibilityDefinationDocument)规范,为了达到验证CDD规范的目的,提供了一组CASE给不同平台厂商进行验证,Andr…

    2022年4月10日
    75

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号