P2P打洞原理

一、P2P时,为何需要打洞?

两个局域网内的客户端没法直接连接,通过打洞可以实现两个局域网内的客户端间通信。

二、基础知识介绍

1、两个内网的客户端没法直接建立通信,需要公网上的服务器来协助
2、内网客户端和公网服务器通信时,会经过路由器,再到达公网服务器
3、公网服务器和内网客户端通信时,也会经过路由器,再达到内网客户端
4、路由器具有NAT功能,即网络地址转换功能,实现内网地址、端口和公网地址、端口的转换
5、打洞的过程就是为了获得内网地址、端口对应的公网地址、端口
6、两个客户端间的P2P通信就通过路由器上的公网地址、端口通信

三、NAT的方式介绍

这里写图片描述

四、P2P打洞过程

1、A客户端新建一个Udp端口,向公网地址、端口上发Udp包,这样就知道了A对应内网地址、端口对应的公网地址和端口
2、B客户端新建一个Udp端口,向公网地址、端口上发Udp包,这样就知道了B对应内网地址、端口对应的公网地址和端口
3、公网服务器把A客户端的公网地址、端口告诉B,把B客户端的公网地址、端口告诉A
4、A客户端向B客户端的公网地址、端口发送一个Udp包,这样A的NAT设备就允许B发送数据给A(否则B发给A的数据会被NAT设备拒绝)
5、B客户端向A客户端的公网地址、端口发送一个Udp包,这样A的NAT设备就允许A发送数据给A(否则A发给B的数据会被NAT设备拒绝)
6、A客户端和B客户端可以正常通信了

五、打洞原理图

打洞原理图

六、P2P通信原理图

P2P通信原理图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值