P2P通信基本原理

这篇具有很好参考价值的文章主要介绍了P2P通信基本原理。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在数字世界的脉络中,点对点(P2P)技术如同一条悄无声息的河流,流经信息的每个角落,连接着世界各地的计算机和设备。这种去中心化的网络模型,不仅打破了传统的客户端-服务器架构的界限,还赋予了数据传输一种前所未有的自由和效率。通过P2P,每个参与者既是消费者又是提供者,共同创造出一个强大、灵活且高度可扩展的网络生态系统。这种技术背后的原理和应用范围之广泛,不禁让人对其可能解锁的未来潜能充满期待。从文件共享和分布式计算到加密货币和去中心化金融,P2P技术正在逐步重塑我们的数字经济和社会结构。

本文阅读时间预计30分钟,可以对该技术有一个入门的了解

一、P2P简介

1.1 什么是P2P

P2P即点对点协议。

当A和B通信的时候,最简单的方式如下,A和B之间通过一个服务器转发数据。

P2P通信基本原理,计算机网络,p2p,网络协议,网络

而P2P是这样的,双方直接进行通信

P2P通信基本原理,计算机网络,p2p,网络协议,网络

这种方式能大大减轻服务端的负载,所以特别适合大数据的传输,比如实时音视频聊天、在线视频直播、大文件传输等应用场景。

1.2 P2P原理

P2P 技术的出现,主要是为了解决,两台不同局域网下的设备,无法通过局域网 IP 地址,直连通信的问题。

因为IPV4的地址有限(25亿个),导致很多设备并没有公网的IP地址,而是多个内网地址使用一个公网地址。

家庭中常见的内网地址有:192.168.xx.xx。只知道对方的内网地址,两个设备是无法通信的。

就像两个人如果只说自己住在几幢几单元,而不说自己住在哪个在哪个城市哪个小区,对方是找不到你的。

而服务器是有公网地址的,因此两个人都可以通过公网地址找到服务器,然后通过服务器的中介,两者建立联系。从下图可以看到,IPC的公网地址是209.144.29.01,手机的公网地址是128.105.39.11,要是IPC能知道手机的公网IP地址(反过来也一样),那就能跳过服务器直接与对方相连。这就是P2P的原理。
P2P通信基本原理,计算机网络,p2p,网络协议,网络

1.3 P2P如何实现

简单来说实现P2P比把大象关进冰箱还要简单,只需要两步

  • 获取自身所在的公网地址

  • 将获取到的公网地址和端口告诉对端。

二、NAT

NAT(网络地址转换器),它可以进入数据包的头部,并且对其修改,已达到多个内网公用一个公网地址的目的。

NAT也有两种,一种是Basic NAT,一种是NAPT,Basic NAT基本被淘汰了,这里只关注NAPT,

2.1 NAT的工作

下面用一个简单的例子来说明,这是两个设备Peer A和 Peer B之间的通信
P2P通信基本原理,计算机网络,p2p,网络协议,网络

有一台计算机,叫PeerB,它的内网地址是192.168.1.10,

它的网关是155.12.39.22(应该还有一个内网的IP地址,比如192.168.1.10)

如果Peer B中的某个进程(这个进程创建了一个UDP Socket,这个Socket绑定8888端口)想访问Peer A 117.78.39.135 的9999端口,那么当数据包通过NAT时会发生什么事情呢?

首先NAT会改变这个数据包的原IP地址,改为155.12.39.22。接着NAT会为这个传输创建一个Session(Session是一个抽象的概念,可以理解成两个手机在打电话,虽然是无形的,但是就是建立了一个对话)并且给这个Session分配一个端口,比如54000,然后改变这个数据包的源端口为54000。

所以本来是(192.168.1.10:8888->117.78.39.135:9999)的数据包到了互联网上变为了(155.12.39.22:54000->117.78.39.135:9999)。

一旦NAT创建了Session后,

NAT会记住这个54000端口对应的就是192.168.1.10:8888,

以后从117.78.39.135发送到54000端口上的数据都会转发到192.168.1.10:8888上,

这样来回都打通了,

我们也就可以认为Peer A 和 Peer B之间建立了连接,并且连接后数据不需要经过服务器。

2.1 NAT类型

NAT有很多类型,这里继续刚才的例子,如果PeerA向另外一个Peer C 发消息,会怎么样呢?

有两种情况,

  • NAT又给Session重新分配一个端口号。

  • NAT还使用原来的session1分配的端口号。

如果NAT类型是第一种,我们称为对称型,如果是这种p2p的魔法就很容易失灵,这种情况一般就不走直连了,走服务器转发。

第二种叫锥型。全锥型又分成4种。

全锥型、受限锥型(IP受限)、端口受限锥型(IP+PORT受限)、对称型。

  1. 全锥型:NAT把所有来自相同内部IP地址和端口的请求映射到相同的外部IP地址和端口。任何一个外部主机均可通过该映射发送IP包到该内部主机。在上面的例子中,只要建立了54000的映射,那Peer C 发送到这个端口的数据包,也会转发到PeerA

  2. 受限锥型:NAT把所有来自相同内部IP地址和端口的请求映射到相同的外部IP地址和端口。但是,只有当内部主机先给IP地址为X的外部主机发送IP包,该外部主机才能向该内部主机发送IP包。在上面的例子中,如果PeerA没有PeerC的IP发过消息,那PeerC给PeerA发的消息会被丢弃

  3. 端口受限锥型:端口限制性圆锥与限制性圆锥类似,只是多了端口号的限制,即只有内部主机先向IP地址为X,端口号为P的外部主机发送1个IP包,该外部主机才能够把源端口号为P的IP包发送给该内部主机。端口受限锥形是在受限锥形的基础上加了端口号的限制。

2.2 P2P连接的条件

并不是所有的设备都能建立P2P连接的,要考虑连接双方的NAT类型。

因为不同NAT的类型的严格程度不一样。

这里先介绍不同的NAT类型。

NAT 类型 全锥型 受限锥型 端口受限锥型 对称型
全锥型 可以 可以 可以 可以
受限锥型 可以 可以 可以 可以
端口受限锥型 可以 可以 可以 不可以
对称型 可以 可以 不可以 不可以

需要根据通信双方NAT的类型采用不同的穿透技术,如STUN(Session Traversal Utilities for NAT)、TURN(Traversal Using Relays around NAT)或ICE(Interactive Connectivity Establishment)来实现不同NAT类型之间的有效连接。文章来源地址https://www.toymoban.com/news/detail-853082.html

到了这里,关于P2P通信基本原理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • P2P网络NAT穿透原理(打洞方案)

    NAT技术(Network Address Translation,网络地址转换)是一种把内部网络(简称为内网)私有IP地址转换为外部网络(简称为外网)公共IP地址的技术,它使得一定范围内的多台主机只利用一个公共IP地址连接到外网,可以在很大程度上缓解了公网IP地址紧缺的问题,同时也能防止外

    2024年02月15日
    浏览(50)
  • 基于 P2P 技术的 Android 局域网内设备通信实践

    Android 局域网内的多设备通信方式有多种,其中常见的方式有: 基于 TCP/UDP 的 Socket 通信 基于 Bluetooth 的近场通信 基于 Wifi 的 Wi-Fi Direct 连接 基于第三方框架的通信,如 MQTT、Websocket 等 每种方式都有其适用范围,下面分别介绍一下它们的示例代码、优劣势。 Socket 是 TCP/UDP 套

    2024年02月08日
    浏览(49)
  • 分布式系统之P2P,云计算,雾计算

    一.P2P cs构架的问题:负载(If too many users access the server/s at the same time, such architecture can suffer from network overload problem.(slow down, long Queues, carsh)同时太多的用户访问服务器就会影响服务器性能) 定义:计算任务由多个节点协同完成,而不是依赖于一个中心节点或服务器。 每个节

    2024年02月02日
    浏览(40)
  • 去中心化和p2p网络以及中心化为核心的传统通信

    去中心化 P2P通信及其协议实现去中心化 如大数据文件的分布存储 如视频网站服务器 1.p2p网络: 优点: 缺点: 存储应用: 2.典型案例; IPFS: 分布式协议系统 3.完全去中心化应用:基于p2p的区块链+IPFS 注释:中心化(点对点) 传统通信:PSTN的树状架构 注释:互联网中心化平

    2024年02月10日
    浏览(43)
  • 网络穿透 P2P 穿透 UDP打洞、TCP打洞 原理

    经常听到 网络穿透 P2P 穿透 UDP打洞、TCP打洞 以前只是 知道网络底层的底层的一些知识 接触过 网络穿透 P2P 穿透 UDP打洞、TCP打洞 现在做个笔记: P2P穿透是一种技术,用于在两个或多个设备之间建立直接的点对点连接,而无需依赖中间服务器进行转发。它可以帮助设备在NA

    2024年02月15日
    浏览(40)
  • 无需服务器:Android 应用中使用 P2P 技术进行局域网内设备通信

    随着局域网内设备数量的不断增加和不断演化的 IoT 技术,设备之间的互联变得越来越重要。对于许多 Android 应用程序而言,这样的互联性是必不可少的,需要使用一些技术来实现跨设备的通信。P2P 技术(点对点技术)已证明是一种非常成功的通信技术,可以实现在局域网内

    2024年02月14日
    浏览(41)
  • Wi-Fi Direct:在 Android 上构建基于 P2P 技术的局域网通信

    在 Android 应用中实现局域网内设备通信,可以使用 P2P(Peer-to-Peer)技术来实现。P2P 技术使得设备之间可以直接相互通信,而不必通过服务器或者其他中介设备。在 Android 中,你可以使用 Wi-Fi Direct 技术来实现 P2P 通信。 下面是一个简单的示例,演示如何在 Android 应用程序中使

    2024年02月08日
    浏览(51)
  • P2P 应用

    ·在 P2P 工作方式下,所有的音频/视频文件都是在普通的互联网 用户之间传输 。 ·Napster 最早 使用 P2P 技术,提供免费下载 MP3 音乐。 ·Napster 将所有音乐文件的索引信息都集中存放在 Napster 目录服务器中。 ·使用者只要查找目录服务器,就可知道应从何处下载所要的 MP3 文件

    2024年02月19日
    浏览(42)
  • 什么是P2P?

    P2P (Peer-to-Peer) 是一种分布式的网络架构,其中各个节点(通常被称为“peers”或“节点”)直接进行数据共享和交换,而无需依赖中央服务器。P2P 网络强调平等的参与和共享,每个节点既可以是数据的消费者(下载者),也可以是提供者(上传者)。 以下是 P2P 协议和技术的

    2024年02月13日
    浏览(52)
  • P2P协议的传输艺术

    TP 采用两个 TCP 连接来传输一个文件。 控制连接:服务器以被动的方式,打开众所周知用于 FTP 的端口 21,客户端则主动发起连接。该连接将命令从客户端传给服务器,并传回服务器的应答。常用的命令有:list——获取文件目录;reter——取一个文件;store——存一个文件。

    2024年02月07日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包