这方面我也刚刚开始看,交流下心得吧
nat类型好像关系不大吧,nat使内部网络中的计算机可以访问外部公共网络,但不允许外部网络对内部的访问。如果在内部网络的计算机首先向外部网络发送数据,就可以收到该外部网络的数据了(可以理解为,在访问了某个外部网络后,nat为该外部网络的ip留了一个“洞”,这个来自这个ip的数据可以穿透nat)。
两个nat内的内部网络要实现通信的话,先要知道对方的公共网络ip地址,让后通过分别向对方发送数据(udp的数据包,或者tcp的ACK),来给对方的公网ip留“洞”,让后就可以实现穿透了。
通过STUN可以帮助本机找到想要通信的那端的公网ip。
在穿越nat的时候还要进行内部ip和公网ip的转换,这个好像是可以自动完成的。
具体细节我也在摸索中..有结果了分享下~