P2P工作原理和技术演进

java实现P2P通信(含安卓实现的基于IPV6的p2p通信代码) java实现P2P通信(含安卓实现的基于IPV6的p2p通信代码)什么是P2P网络用udp打洞的三种方式IPV6实现P2P通信 什么是P2P网络 p2p网络又叫对等网络,顾名思义就是在该网络中所有节点都是平等的,都可以共享自己的硬件资源和数据资源。每个节点都能被其它对等节点直接访问而无需经过中间实体。换句话来说,目前绝大多数应用都是基于C/S或者B/S架构的,就拿微信来说,当A要通过微信给B发一条消息时,消息首先会从A发送到服务器,然后服务器在转发给B。这样服务器就会知道AB之间的聊天记录。而P2P网络来说 阅读详情
计算机网络发展演化过程是在集中和分布之间摆动。早期的计算机使用模式是众多用户共享大型计算机,以后发展了个人计算机,从集中走向分布。在互联网上存在类似情况,开始采用客户机(浏览器)-服务器方式,使用网站上集中的服务器。进一步发展将走向分布式,集中的服务器将变成分布的,每一个用户终端既是客户机又是服务器,这就是对等连接peer to peer(简称P2P)模式。

    近年来,互联网上P2P业务发展迅速,已经成为宽带互联网业务的主流。P2P技术将各个用户互相结合成一个网络,共享其中的带宽,共同处理其中的信息。与传统的客户机——服务器模式不同,P2P工作方式中,每一个客户终端既是客户机又是服务器。以共享下载文件为例,下载同一个文件的众多用户中的每一个用户终端只需要下载文件的一个片段,然后互相交换,最终每个用户都能得到完整的文件。

    第一代P2P网络采用中央控制网络体系结构(如图1所示)。早期的Napster就采用这种结构。它采用快速搜索算法,排队响应时间短,使用简单的协议能够提供高性能和弹性,缺点是容易中断服务。


图1 第一代P2P网络采用中央控制网络体系结构

    第二代P2P 采用分散分布网络体系结构(如图2所示)。不再使用中央服务器,消除了中央服务器带来的问题。没有中央控制点,不会因为一点故障导致全部瘫痪,是真正的分布式网络。由于每次搜索都要在全网进行,造成大量网络流量,使得其搜索速度慢,排队响应时间长。用户PC性能及其与网络连接方式决定网络弹性和性能。这种模式具有自组织( ad-hoc) 行为, 降低了拥有者的成本,提供可扩展性。特别适合在自组织( ad-hoc)网上的应用,如即时通信等。


图2  第二代P2P 采用分散分布网络体系结构

    第三代P2P 采用混合网络体系结构(如图3所示)。这种模式综合第一代和第二代的优点,用分布的超级结点取代中央检索服务器。采用分层次的快速搜索改进了搜索性能,缩短了排队响应时间,每次排队产生的流量低于第二代分布网络。超级智能结点的布设提供高性能和弹性。没有中央控制点,不会因为一点故障导致全部瘫痪。


图3  第三代P2P 采用混合网络体系结构 

    内容被分布存储在分布的存储器和客户终端中。通过快速检索系统可以快速发现内容分布存储的位置。目前常用的P2P 软件有BT, edonky和Gnutella等,这些软件采用“快速追踪”技术构成P2P网络,有着许多传统客户机-服务器网络所没有的优点。技术上不但可以大大的减少文件搜寻的时间,更重要的是可以不用昂贵的中央控制硬件设备(服务器等)。这种P2P网络使用终端本身电脑的处理能力,网络处理能力随着终端使用者人数增长而增加。

    第四代P2P目前正在发展中。主要发展技术有动态口选择和双向下载。动态口选择:目前P2P使用固定的口,但是一些公司已经开始引入协议可以动态选择传输口,一般来说,口的数目在1024-4000之间。甚至P2P流可以用原来用于HTTP(SMTP)的口80(25)来传输以便隐藏。这将使得识别跨运营商网络的P2P流,掌握其流量变得更困难。双向下载:eD和BT等公司进一步发展引入双向流下载。可以多路并行下载和上载一个文件或多路并行下载一个文件的一部分。而目前传统的体系结构要求目标在完全下载后才能开始上载。这将大大加快文件分发速度。

    以上演化的四代P2P系统都属于“无组织的P2P重叠网”,在互联网得到快速发展,目前宽带用户流量中一半以上是这种P2P流。

    而学术界目前在研究的是“有组织的P2P重叠网”。包括Tapestry 、Chord 、Pastry和CAN 等。正在研究的新一代的P2P应用包括多播、网络存储等都运行在这种有组织P2P重叠网上。

2.P2P应用

    目前应用主要有三大类,如图4所示。


图4 P2P应用和智能结点重叠网

(1).P2P内容共享

    包括共享文件下载BT,edonkey Gnutella、搜索和检索Bearshare、内容分发、网络存储和对等广播Peercasting等。网络存储充分发挥互联网无所不在的优势,移动电话、PDA、笔记本电脑、台式机、电视机、各种家电和传感器等可以通过各种有线或无线接入连接网络取得服务。

(2).P2P通信协作包括协同工作、互联网电话、即时通信S和移动通信

    P2P即时通信系统 IM采用对等连接模式P2P,消息格式使用 XML具有效的报到管理,可以提供异步、并行、可靠和近似实时通信。支持移动报到管理和移动即时通信。使用IETF 标准保证互通互用。

(3).P2P协同计算包括协作计算、网格和数据内容网格

    网格GRID和 P2P协作的基本概念非常相似都是资源共享,但是使用技术不同。网格的目的是利用网络资源进行大规模高性能计算,其利用的网络资源包括超级计算机、集群、专门设备、大规模数据库等。网格需要制定组织级的协议用于资源共享,安全和性能是关键问题。采用基于PKI + X.509证书的鉴权和可编程中间件用于高性能计算。而P2P协作利用的网络资源是个人计算机和存储的数字内容等,对资源进行分散控制,允许匿名接入。主要优点是可测量性。

    采用P2P 和Grid融合产生数据内容网格,用P2P技术建立数据网格是最有吸引力和实际的方法。综合P2P技术建立内容网格,在网格中数据、内容是自动分布的,用户可以接入最近的数据。

    视频内容网格,以分布式存储提供视频点播业务。

(4).P2P将开创网络媒体新时代

    电视视频节目除现场直播以外,都是事先录制好存储在服务器中的。点播是一种工作模式,但是它占用网络资源太多。P2P为网络电视媒体提供了一个新的工作模式,用户可以先用P2P方式下载内容存储在自己的计算机中,再回放观看。

3. P2P需要IPv6

    目前的IPv4互联网由于IP地址不够,大量采用专用地址和网络地址变换器NAT ,其结果是隐藏了谁是信息的发送者的信息。而P2P 要求能够识别发送者,使用“实名制”才能建立诚信安全的网络社会。只有IPv6 能够做到这点。建立IPv6网将为发展P2P应用提供安全、可靠和廉价的网络运行环境。

    在IPv6 网上运行p2p不再需要使用NAT能够控制功能和逻辑,可以简化网络设计。对于运营商而言不再需要考虑NAT及其软件之间的兼容性,在远端不需要服务器将使设计、可以降低运营负担。

    总之,运行和成本与使用IPv4和NAT时相比要低。

    在IPv6网实现 P2P VPN (如图5所示)


图5 IPv6网上的P2P VPN

    适用于各种通信模式: 客户机-服务器、对等连接P2P、移动安全即时通信、即时连接、保证端到端的安全。IPsec策略服务器按需要为对接每一方提供策略文件,设置非常简便:只需要在 web上注册 。

4.应对Peer to Peer业务挑战

    P2P已经成为宽带的杀手级应用。P2P应用围绕IP音频和视频文件共享快速发展。目前P2P应用占宽带流量50-60%(白天)到90%(晚上),企业用户的40%。

    如何识别和控制P2P流,如何版权保护和制止色情内容流通成为企业网络管理员和接入运营商的烦恼。目前正开展各种方法的研究,例如在运营商网络服务器中缓冲P2P流以减少外出流量等。

 
 
各内网客户端实现P2P方案 P2P 即 Peer To Peer,因为现有公网资源的稀少,内网内的PeerToPeer还是比较困难,以下思考了几种方案能够解决PeerToPeer问题 阅读详情

相关推荐

洛谷新手入门指南:从零开始掌握算法竞赛与OJ平台高效使用

在线评测系统(Online Judge, OJ)是算法学习和编程能力训练的核心平台,其原理在于通过自动化测试用例验证用户提交代码的正确性、时间与空间效率。这项技术的价值在于为学习者提供了一个即时反馈、海量题库的标准化训练环境,极大地提升了算法掌握和问题解决能力的效率。在应用场景上,无论是备战信息学竞赛(如CSP、NOIP),还是巩固计算机基础、准备技术面试,OJ平台都扮演着关键角色。本文以国内知名的洛谷平台为例,深入解析其核心功能,如题库筛选、题单体系、评测状态解读(涵盖AC、WA、TLE等),并规划了从基

weixin_30675247的博客 380

P2P网络原理

P2P网络: 下面是我在网上找到的一副图: P2P(Peer to Peer)是点对点的连接,在P2P网络中,用户同时利用并提供网络的基础,尽管提供资源完全是自愿的。每个对等体(“对等体”是网络上的计算机系统)被认为是相等的并且通常被称为节点。对等体可以将一部分计算资源(如磁盘存储,处理能力或网络带宽)直接提供给其他参与者,而无需服务器或稳定主机进行任何集中协调。有点我为人人,人人为我的意思。 NAT技术: NAT技术(Network Address Translation,网络地址转换)是一种把内部网.

ALakers的博客 6877

P2P通信基本原理

P2P即点对点协议。当A和B通信的时候,最简单的方式如下,A和B之间通过一个服务器转发数据。而P2P是这样的,双方直接进行通信这种方式能大大减轻服务端的负载,所以特别适合大数据的传输,比如实时音视频聊天、在线视频直播、大文件传输等应用场景。

wushakun的博客 6283

计算机网络演化——p2p于网络

p2p: 随着人们拥有的pc性能越来越高,硬盘越来越大,为了减轻服务器的负担, 有人开发出了,不用通过服务器,而是直接从网上其他用户计算机里面获取资源的程序(P2P程序),比如迅雷下载电视剧,使用的就是p2p,qq聊天,在线视频。 目前50%-90%的总流量都是来自p2p程序 网格(Grid): 用软件技术和网络技术将地理上分散的计算机CPU资源整合起来,形成强大的计算能力。 云计算: 在网格技术发展比较成熟后,人们提出云计算概念,将计算机上的所有资源软件,数据库,存储资源,一切,都整合起来,目的将整个in

这里是菠萝味菠萝啤的博客 205

在昇腾910B服务上部署搭建适配PDF解析工具Mineru2.5开源项目

本文介绍了在昇腾910B服务器上部署开源PDF解析工具Mineru2.5的过程。首先从昇腾社区下载mindie镜像并运行容器,安装系统依赖。针对部署过程中遇到的多个报错问题(如torchvision与torch版本不匹配、昇腾软件栈与NumPy 2.0不兼容等),提供了具体解决方案和兼容版本。通过设置环境变量、安装指定版本的Python依赖包,成功部署Mineru项目并下载模型。最后运行测试,验证了在NPU设备上运行pipeline的可行性。整个过程详细记录了版本适配和错误处理方法,为类似部署场景提供了参考

一起加油吧 2164

Ubuntu安装ToDesk远程控制软件

前几天有同学问我怎么在 Ubuntu 系统上安装 ToDesk 远程控制软件, 帮他安装完成后就 顺手整理了一下安装过程,所以就顺手有了这篇在 Ubuntu 系统上安装 todesk 的文章。

小白的博客 8660

实现一个冒泡提示的浮点数编辑框

实现一个冒泡提示的浮点数编辑框

gdruhv的博客 280

generate for与always内for:Verilog循环的静态生成与动态执行之辨

本文深入解析Verilog中generate for与always内部for循环的核心差异。generate for使用genvar变量在编译时静态生成硬件结构,适用于模块实例化;always内部for使用整型变量在运行时动态执行,综合为并行逻辑。理解这两种循环的适用场景和综合结果对提升数字电路设计质量至关重要。

yog99的博客 1087

边缘AI芯片选型避坑指南:10张速查表拆解算力、NPU与工具链

边缘AI的落地离不开对芯片的深度理解,从CPU、GPU到NPU、ASIC,不同类型的AI加速器在算力密度、能效比和适用场景上差异显著。理解TOPS、TFLOPS等算力单位的换算口径,是评估芯片性能的第一步。但真实性能并非只看标称峰值,内存带宽、模型量化策略、持续散热能力以及软件工具链的成熟度,往往成为项目成败的隐形瓶颈。掌握这些核心维度,能帮助开发者在工业检测、智能安防、车载视觉等场景中做出更合适的芯片选型决策。本文以一套完整的速查表体系,系统梳理了边缘AI芯片从类型图谱、算力评估到部署链路的关键知识,为工

weixin_33805743的博客 306

STM32 HAL库定时器中断里读编码器速度准吗?聊聊MG310电机的测速与防溢出处理

本文探讨了STM32 HAL库在定时器中断中读取编码器速度的精度问题,特别针对MG310电机的测速与防溢出处理提供了解决方案。通过对比定时中断法和编码器模式的性能,揭示了硬件编码器接口在降低误差和CPU占用率方面的优势,并详细介绍了CubeMX配置技巧和防溢出处理的工程实践。

weixin_28720767的博客 401

手把手教你如何在应用宝的Android模拟器安装第三方应用方法

通过上述步骤,你就能在腾讯应用宝模拟器中安装并运行本地的第三方APK应用了。虽然稍显繁琐,但操作起来并不复杂,只要按照步骤一步步做,就能顺利完成。希望这篇文章能帮助到遇到类似问题的你!

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 7216

【AI应用--白话大模型(篇十)】《一文全系列搞懂RAG技术:RAG从原理到应用,文本分块,向量嵌入,数据入库以及RAG未来的趋势发展》

可以想象是开卷考试,模型并不知道你的业务知识,但是查资料,然后组织答案。

2501_93351213的博客 243

高效批量转换Java接口为MCP服务:降低重复劳动的实战指南

高效批量转换Java接口为MCP服务:降低重复劳动的实战指南

专注于编程、AI、人工智能等多个领域内容研究和分析 725

OpenVpn p2p linux安装及路由转发配置

OpenVpn p2p linux安装及路由转发配置 目的

2201_75362610的博客 3212

挂载(Mount)是什么意思

挂载 = 把一个存储设备或文件系统“接入”到现有的目录树,使其内容能够被访问。

天赐好车的博客 289

D16: OpenClaw + Notion API:知识管理新玩法

本文介绍了如何利用OpenClaw连接Notion API构建自动化知识管理系统。文章首先分析了传统知识管理的痛点,包括信息分散、更新不及时等问题,并对比了Notion与其他工具在API完整性、结构化程度等方面的优势。接着详细说明了Notion API的获取和授权流程,并设计了包含项目知识库、技术决策库和会议纪要库的三层架构系统。最后通过会议纪要自动归档的实战案例,展示了如何通过YAML配置实现从飞书会议到Notion的自动化知识沉淀流程。该方案能有效解决团队知识管理中的信息碎片化问题,提升协作效率。

刘一说的IT专栏 274

异地组网原理

但是没有说异地组网原理。

u011011827的博客 2647

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

上一篇: P2P原理介绍
下一篇: IME输入法编程
CryButNoTear
博客等级 码龄21年 6粉丝 16原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值