P2P基础

P2P即点对点通信,本文讨论的是通信双方位都位于NAT网关后的情况。
本文要点:

  1. NAT
  2. NAT 类型
  3. STUN
  4. TURN
  5. ICE
  6. 开源P2P框架libjingle

1. NAT

NAT(net address translation)网络地址转换,在网关处将内部网络地址转换未外部网络地址与外部主机通信。NAT可以解决IPv4地址资源耗尽的问题,同时可以隐藏内部IP。

2. NAT 类型

全锥形(Full Cone),NAT后IP:PORT固定,完全不受限
限制锥形(Restrict Cone),或者叫地址限制形(Address Restricted Cone),NAT后IP:PORT固定,IP受限
端口限制锥形(Port Restrict Cone),NAT后IP:PORT固定,IP:端口受限
对称形(Symmetric),每次连接都是新的端口,无法建立直连

3种锥形可以通过打洞穿透(STUN),实现P2P;对称形只能通过中间服务器(TURN)中继(转发)。
Hairpin NAT,回环NAT。

3. STUN

通过打洞来找到公网中的固定网络地址。

要点:

  • STUN服务器(2台)
  • 外网网关可能禁止UDP传入
  • 判断STUN客户端与STUN服务器是否经过NAT
  • 判断NAT类型
  • 两个客户端为(对称形,对称形)或(对称形,端口限制锥形)不能使用STUN实现P2P
  • 免费STUN服务器
  • RFC3489
  • RFC5389

4. TURN

严格受限的NAT,内网可以单项访问外网,外网不能直接访问。

TURN不能算是P2P,TURN服务器可以实现客户端间的数据转发/中继;

5. ICE

ICE是一个实现P2P的框架,整合了STUN和TURN,找到最合适的穿透NAT的方式。

6. 开源P2P框架libjingle

libjingle是google开源的一个P2P实现库,不完全的实现了jingle协议,jingle包括了ICE。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值