NAT 穿透

一、元素

STUN  获取内、外二元组

TURN 比如【Symmetric NAT】使用relay最终保证成功

 ICE   狭理解为STUN和TURN的聚合框架

二、简易实现

   1 .引用老司机   
       http://www.hankcs.com/program/network/actual-rfc5766-turn-server-and-ice4j-wide-area-network-communication.html
STUN地址stun.l.google.com:19302
TURN 使用aliyun安装turnserver-3.2.3.95.tar.gz(其他版本不知道与协议实现是否有差异)

    2.二元组遍历就不说了

    3.测试[TURN],刚好住处NAT 是Symmetric NAT

    主机上两台虚拟机测试,网络地址转换模式,VirtualBox 分别网卡一、网卡二

    10.0.2.15  10.0.3.15 使用不同的username + passwd 分别启动

    经历测试N次,出现了一次relay成功大哭

  4.没有成功前,也不知到aliyun妹的是否支持hairpinning,于是找到了[PJSIP] ,编译蛋蛋忧伤。。。
   pjturn测试aliyun  turnserver  OK


  5.相关

   libjingle

   libnice

   PJSIP 

   上面有自己的ICE实现,

   预想使用PJSIP 的ICE库,   转JNI,  蛋疼。。。。。

   生产如果搞【音频】+【视频】, PJSIP................很NB的样子

  



 

    

    

       


  

猜你喜欢

转载自blog.csdn.net/u011739062/article/details/79123539