P2P对等网络 – UDP穿透NAT

参考内容:UDP 构建p2p打洞过程的实现原理

双方都在局域网内就没有办法TCP直连,以下方法只适用于NAT符合被穿透的情况下。假设A向B发送消息。

UDP穿透的过程大概如下:

  • 双方通过UDP与服务器通讯,NAT默认就做了一个外网IP和端口号与你内网IP和端口号的映射。这个无需用户设置
  • 用户A先通过服务器获得用户B的外网IP和端口
  • 用户A向用户B的外网IP和端口发送消息
  • 在这一次发送中,用户B的NAT会拒收这条消息,因为它的映射中并没有这条规则。
  • 但是用户A的NAT就会增加一条允许规则,允许接收从B发送过来的消息。
  • 服务器要求用户B发送一条消息到用户A的外网IP和端口
  • 用户B发送一条消息,这是用户A就可以接收到B的消息,而且这时B也会增加了允许规则
  • 此时网关A与网关B都增加了允许规则,所以A与B都可以向对方的外网IP和端口发送消息
Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s