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

穿越NAT实例

作者:Jack zhai | 日期:2008-01-14 | 字体:

  实例: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连接





上一页 [1] [2] [3]    
【内容导航】
第1页:穿越NAT的意义
第2页:STUN协议及利用
第3页:穿越NAT实例
阅读: 次 | 来源:P2P中国 | 录入:admin

评论 】 【 推荐 】 【 打印
上一篇:如何编译使用最新的P2P aMule 2.2 CVS版
下一篇:利用Vista和WCF中强大P2P通信功能
本文点评       全部点评
我要点评


字数

姓名:
 
广告内容
 
下面是广告内容