NAT穿越讨论,大家给点意见,谢谢
网络传输模块总要:
一,NAT类型不同传输方式不同
(1),首先判别两个双方是不是在同一个内网,如果是直接发送,如果不是转到(2)
(对于有独立外网IP的主机当成FULL CONE NAT,因为他没有IP,端口的限制.)
(注意软件NAT的类型,主要是OS自带的共享上网)
(2),双方程序实时检查本方的NAT类型号并交给服务器(是Cone NAT还是Symmetric NAT)
如果是CONE NAT转(3),如果任何一方有Symmetric NAT就转(4)
(QQ有专门的STUN服务器来测定NAT类型,用WINSTUN去测试stun.qq.com就可以发现)
(3),双方通信时,CONE NAT 进行UDP,TCP打洞(心跳包,STUN协议)
(除FULL CONE NAT外,因为它是全双工的,没有IP,端口限制).
音频,视频采用UDP,包中带有编号,重组,实时性高.以太网帧不超过1500字节.
其他用TCP传输,三次握手才能建立连接,比UDP多点步骤
(4),Symmetric NAT采用服务器中转方式.
一个新的Session,Symmetric NAT就会一个新的端口匹配.变化不断,
端口猜测不易!所以采用服务中转.
备注:HTTP遂道技术,SOCKS5代理等技术暂不使用
对以上想法大家多给建议了!谢谢!
新的STUNT协议没看懂.