微波EDA网,见证研发工程师的成长!
首页 > 应用设计 > 消费类电子 > P2P网络“自由”穿越NAT的“秘密”

P2P网络“自由”穿越NAT的“秘密”

时间:02-25 来源:中电网 点击:

实例:UDP穿越NAT:
  
A登录Server,NAT A分配端口11000,Server得到A的地址为100.10.10.10:11000
  
B登录Server,NAT B分配端口22000,Server得到B的地址为200.20.20.20:22000
  
此时B会把直接来自A的包丢弃,所以要在NAT B上打一个方向为A的洞,那么A就可以向200.20.20.20:22000发送数据了
  
打洞的指令来自Server。B向A的地址100.10.10.10:11000发一个UDP报文,被NAT A丢弃,但在NAT B上建立映射记录,NAT B不在丢弃来自A的报文。
  
Server通知A可以通讯,A发起数据UDP包给B,NAT B放行,B收到A的包,双方开始通讯
  
注:若是对称NAT,当B向A打洞的端口要重新分配(NAT A不会再分配11000端口),B无法获取这个端口,所以不适用本方法。
  
实例:TCP穿越NAT:

A登录Server,NAT A分配端口11000,Server得到A的地址为100.10.10.10:11000
B登录Server,NAT B分配端口22000,Server得到B的地址为200.20.20.20:22000
A向B发送TCP数据包SYN:192.168.10.11:1234=>200.20.20.20:22000,在NAT A上打洞
B向A发送TCP数据包SYN:192.168.20.22:1234=>100.10.10.10:11000,在NAT B上打洞

通道建立,A与B三次握手建立TCP连接

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top