socketref,再见!高德

https://github.com/adoggie

  C++博客 :: 首页 :: 联系 :: 聚合  :: 管理
  246 Posts :: 4 Stories :: 312 Comments :: 0 Trackbacks

常用链接

留言簿(54)

我参与的团队

搜索

  •  

最新评论

阅读排行榜

评论排行榜

近一周时间都在玩p2p,本来以为实现很简单,但做起来实属不易 。 
Udp穿透Nat会遇到多种Nat类型: 
1.FULL CORE 
2. RESTRICT
3. PORT-RESTRICT
4. SYMMETRIC 
1-3三种NAT实现穿透很简单,问题在于处理第4种类型:对等NAT 
SYMMETRIC NAT的工作模式区分在于内网通过NAT时分配的外部端口的方式不同,这又有三种情况: 
1. 端口递增: 通常新端口号会是前一次分配端口号加1或者加固定值 
2. 端口在当前NAT最新端口的左右区间: 例如当前NAT外网端口P,那新的分配端口会落在 -N < P < N
3. 随机分配SR (这个根据当时NAT的网络情况参数等作为函数f(x)的因子决定)
这第三种分配方式,目前无解,只要任意一端存在SR,则无法穿透  
当然很多技术研究者提出了如何猜测动态端口的方案,例如:统计技术的使用,服务器可对固定NAT进行采样分析等等。。
这个很难哦!
面对SR我直接放弃了,还真不巧,测试了3,4个网络环境的NAT,居然50%是SR,50%是SYMMETRIC的1,2种类型 。 
还是老实的服务器中转把!
一些p2p资料供参考:  http://114.215.178.29/static/p2p
posted on 2014-04-11 00:32 放屁阿狗 阅读(370) 评论(0)  编辑 收藏 引用

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理