默认
打赏 发表评论 3
想开发IM:买成品怕坑?租第3方怕贵?找开源自已撸?尽量别走弯路了... 找站长给点建议
一款用于P2P开发的NAT类型检测工具 [附件下载]
阅读(109254) | 评论(3 收藏7 淘帖1 2
微信扫一扫关注!

前言


P2P技术的应用已经很广泛了,比如IM应用中实时音视频数据的网络传输就是P2P技术,还有现在越来越热的视频直播技术,也同样或多或少涉及到P2P技术。

作为网络编程领域里的一项实用的应用技术,P2P的相关知识已经很普及(如果您对此尚有不解,请查阅本论坛的P2P技术系列文章:《P2P技术详解(一):NAT详解——详细原理、P2P简介》、《P2P技术详解(二):P2P中的NAT穿越(打洞)方案详解》、《P2P技术详解(三):P2P技术之STUN、TURN、ICE详解》)。P2P技术的实现基础就是要首先突破NAT的限制(至于NAT的原理和对于P2P通信的限制,请详见《P2P技术详解(一):NAT详解——详细原理、P2P简介》),而各路由设备厂商因为自家设备设备所采用的方案不同,导致NAT的类型并非一种:按照STUN协议(关于STUN协议请见《P2P技术详解(三):P2P技术之STUN、TURN、ICE详解》)中分类目前主要有4类,即:“Full cone NAT”、“Address-Restricted cone NAT”、“Port-Restricted cone NAT”、“Symmetric NAT(对称NAT)”,具体各类型的区别将在下一节进行简要介绍。

P2P技术的NAT穿越方案,需要针对上述的4种NAT类型使用不同的方案,才有可能打洞(穿墙)成功,而最在要紧的是,我该怎么知道目前某台客户端所处的路由属于哪种NAT类型呢?于是,从牛们又总结出了像STUN、TURN、ICE这些NAT穿越成套解决方案(详见《P2P技术详解(三):P2P技术之STUN、TURN、ICE详解》)。

而本文要介绍的工具,就是用于开发者在开发P2P技术时检测某台客户机所属的NAT类型的,从而辅助您进行P2P代码的编写。

NAT类型简介


➀ Full cone NAT:
即著名的一对一(one-to-one)NAT。一旦一个内部地址(iAddr:port1)映射到外部地址(eAddr:port2),所有发自iAddr:port1的包都经由eAddr:port2向外发送。任意外部主机都能通过给eAddr:port2发包到达iAddr:port1。

➁ Address-Restricted cone NAT:
限制地址,即只接收曾经发送到对端的IP地址来的数据包。一旦一个内部地址(iAddr:port1)映射到外部地址(eAddr:port2),所有发自iAddr:port1的包都经由eAddr:port2向外发送。任意外部主机(hostAddr:any)都能通过给eAddr:port2发包到达iAddr:port1的前提是:iAddr:port1之前发送过包到hostAddr:any. "any"也就是说端口不受限制。

➂ Port-Restricted cone NAT:
类似受限制锥形NAT(Restricted cone NAT),但是还有端口限制。一旦一个内部地址(iAddr:port1)映射到外部地址(eAddr:port2),所有发自iAddr:port1的包都经由eAddr:port2向外发送。一个外部主机(hostAddr:port3)能够发包到达iAddr:port1的前提是:iAddr:port1之前发送过包到hostAddr:port3。

➃ Symmetric NAT(对称NAT):
每一个来自相同内部IP与port的请求到一个特定目的地的IP地址和端口,映射到一个独特的外部来源的IP地址和端口。同一个内部主机发出一个信息包到不同的目的端,不同的映射使用
外部主机收到了一封包从一个内部主机可以送一封包回来。

工具截图


一款用于P2P开发的NAT类型检测工具 [附件下载]_a.png

填入您的STUN服务器地址或域名,或者找到免费的STUN服务器(本论坛收集了目前最新的免费STUN服务器列表:《最新收集NAT穿越(p2p打洞)免费STUN服务器列表 [附件下载]》)。

附件下载


NAT路由检测工具(52im.net).exe (567.43 KB , 下载次数: 384 , 售价: 2 金币)

相关资源


[1] 截止2016/11/27日可用的免费STUN服务器列表:
最新收集NAT穿越(p2p打洞)免费STUN服务器列表

[2] 有关P2P技术的精选文章:
P2P技术详解(一):NAT详解——详细原理、P2P简介
P2P技术详解(二):P2P中的NAT穿越(打洞)方案详解
P2P技术详解(三):P2P技术之STUN、TURN、ICE详解

[3] 参考资料:
https://tools.ietf.org/html/rfc3489
https://tools.ietf.org/html/rfc5389
https://tools.ietf.org/html/rfc5766
https://tools.ietf.org/html/rfc7350

即时通讯网 - 即时通讯开发者社区! 来源: - 即时通讯开发者社区!

标签:P2P NAT
上一篇:最新收集NAT穿越(p2p打洞)免费STUN服务器列表 [附件下载]下一篇:两款增强型Ping工具:持续统计、图形化展式网络状况 [附件下载]

本帖已收录至以下技术专辑

推荐方案
评论 3
不错
不错
签名: read the fucking source code
哥搞p2p的时候要是能找到这个工具,就不用苦苦查资料了。。。。
打赏楼主 ×
使用微信打赏! 使用支付宝打赏!

返回顶部