P2P原理

本文详细介绍了P2P通信中的中继、逆向连接和UDP打洞方法,重点讲解了UDP打洞在Restricted-Port NAT环境下的工作过程。通过网络拓扑图和NAT分类,阐述了完全锥型、受限锥型、端口受限锥型和对称型NAT的特点,并提供了NAT类型检测的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

P2P原理

常用方法

中继

使用中继服务器连接两台内网设备,受限于中继节点性能。

逆向连接

当客户端A、B之一有公网地址时可以使用该方法。

UDP打洞

最常见的方法

利用锥形NAT(下文将介绍NAT分类)会将 内网ip+端口 绑定一个 外网ip+端口 的特性实现。理论上来说,利用该特性就可以实现任意主机间的通信,但往往NAT会做很多限制,导致这种直接通信无法完成。下面以限制最多的 Restricted-Port NAT 为例说明:

网络拓扑图

在这里插入图片描述

Client A和B仅具有内网地址,有Restricted-Port NAT功能的router A和B将他们的内网地址及端口和外网地址及端口进行绑定,Server S具有外网地址。

限制前提

Restricted-Port NAT 会直接丢弃其他主机 主动 发送过来的报文,只有它向另一台主机发送一个报文后,它才会接收该主机发送过来的一个报文。所以即使A和B映射了公网地址也不能直接通信。

打洞过程

  1. Client A和B分别向S发送一条报文,S会记录下A和B的出口地址及端口(即:1.1.1.1:7777和2.2.2.2:888
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值