第四十五章 P2P打洞原理

WebRTC 本身是基于点对点(Peer-to-Peer)连接的。如果连接双方都是公网地址,则可以直接访问到对方,从而建立连接。但大部分情况下其中一方或者双方都不是公网地址,而是隐藏在 NAT(Network Address Translation,网络地址转换)之后的内网地址,此时要建立连接,就得使用某种能绕过 NAT 的打洞技术。

个人技术博客: fuqifacai.github.io

更多技术资讯下载: 2img.ai

相关配图由微信小程序【字形绘梦】免费生成

第四十五章 P2P打洞原理

NAT

在开始介绍打洞技术之前,我们先了解一下 NAT。NAT 全称 Network Address Translation,即网络地址转换,可以理解为公网地址和内网地址的映射规则。NAT 通常是个路由器,且最早是作为 iPv4 地址短缺的一种解决方案而流行起来的。

以常见的基于地址和端口转换的 NAPT 为例。如下图所示,假设有台路由器的公网地址为 172.217.194.113 ;此时内网有台地址为 10.0.0.1 的设备想要访问公网服务器,则:

第四十五章 P2P打洞原理
  1. 10.0.0.1 这台设备上端口为 3000 的程序发出源地址为 10.0.0.1:3000 的 IP 数据包。
  2. IP 数据包经过路由器时,路由器对其源地址进行查表;如果源地址不在表中,便会自动分配一个端口号给它,图中对应的端口号就是 8080;同时其内网 IP 也会被替换为公网 IP。
  3. IP 数据包经过路由器后,源地址变为 172.217.194.113:8080 ,而目标地址不变。

于是 10.0.0.1 这台设备便可以访问公网服务器了。同理,当公网服务器回包时,路由器会进行反向查表,将请求结果转发给 10.0.0.1 这台设备。

剩余内容需解锁后查看

您需要付费解锁才能查看当前内容

VIP会员免费
已付费?登录刷新

Paragoger衍生者AI训练营。发布者:稻草人,转载请注明出处:https://www.shxcj.com/archives/6684

(0)
上一篇 2024-09-30 3:59 下午
下一篇 2024-09-30 4:01 下午

相关推荐

发表回复

登录后才能评论
本文授权以下站点有原版访问授权 https://www.shxcj.com https://www.2img.ai https://www.2video.cn