- 1、本文档共3页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
NATandTraversalNAT
NAT and Traversal NAT(TURN/STUN/ICE)
NAT
NAT有4种不同的类型
1 Full Cone
这种NAT内部的机器A连接过外网机器C后,NAT会打开一个端口.然后外网的任何发到这个打开的端口的UDP数据报都可以到达A.不管是不是C发过来的.例如 A:192.168.8.100 NAT:202.100.100.100 C:292.88.88.88A 192.168.8.100:5000 - NAT 202.100.100.100:8000 - C 292.88.88.88:2000 任何发送到 NAT 202.100.100.100:8000 的数据都可以到达A 192.168.8.100:5000
2 Address Restricted Cone
这种NAT内部的机器A连接过外网的机器C后,NAT打开一个端口.然后C可以用任何端口和A通信.其他的外网机器不行.例如 A:192.168.8.100 NAT:202.100.100.100 C:292.88.88.88A 192.168.8.100:5000 - NAT 202.100.100.100 : 8000 - C 292.88.88.88:2000 任何从C发送到 NAT 202.100.100.100:8000 的数据都可以到达A 192.168.8.100:5000
3 Port Restricted Cone
这种NAT内部的机器A连接过外网的机器C后,NAT打开一个端口.然后C可以用原来的端口和A通信.其他的外网机器不行.例如 A:192.168.8.100 NAT:202.100.100.100 C:292.88.88.88A 192.168.8.100:5000 - NAT 202.100.100.100 : 8000 - C 292.88.88.88:2000 C 202.88.88.88:2000 发送到 NAT 202.100.100.100:8000 的数据都可以到达A 192.168.8.100:5000
以上三种NAT通称Cone NAT 圆锥形NAT .我们只能用这种NAT进行UDP打洞.
4 Symmetric(对称形)
对于这种NAT。连接不同的外部Server,NAT打开的端口会变化。也就是内部机器A连接外网机器B时,NAT会打开一个端口,连接外网机器C时又会打开另外一个端口。
对于双方都是Port Restricted Cone NAT的时候,则需要利用UDP打洞原理进行“先打洞,然后才能直接通信”。对于Cone NAT.要采用UDP打洞.需要一个公网机器server C来充当”介绍人”.处于NAT之后的内网的A,B先分别和C通信,打开各自的NAT端口.C这个时候知道A,B的公网IP: Port. 现在A和B想直接连接.比如A给B直接发包,除非B是Full Cone,否则不能通信.反之亦然.为什么啊?因为对于处于NAT之后的A,B。如果想A要与外界的D通信,则首先必须要A发包到D,然后A经过NAT设备NA,NA把A的内网地址和端口转换为NA的外网地址和端口。和D通信之后,D才能经过NA和A通信。也就是说,只能A和外界主动通信,外界不能主动和处于NA之后的A通信。这种包会被NA直接丢弃的。这也就是上面所说的Port Restricted Cone 的情形啊! A 192.168.8.100:5000 - NA 202.100.100.100:8000 - D 292.88.88.88:2000 但是我们可以这样.A --- NA --- Server C --- NB --- B
A,B 为主机;
NA, NB 为NAT设备;
Server C为外网的机器;
如果A想与B通信;
A首先连接 C, C得到A的外网NA的地址和端口;
B也要连接C,C得到B的外网NB的地址和端口;
A告诉C说我要和B通讯;
C通过NB发信息给B,告诉B A的外网NA的地址和端口;
B向NA发数据包(肯定会被NA丢弃,因为NA上并没有 A- NB 的合法session),但是NB上就建立了有B- NA的合法session了;
B发数据包给C,让 C 通知 A,我已经把洞打好了;
A接受到通知后向 B 的外网发NB数据包,这样就不会被丢弃掉了。因为对于NB来说,它看到的是A的外网NA的地址,而通过第6步,B已经让NA成为NB的合法通信对象了。所以当NA发数据包给NB时,NB就会接收并转发给B;
注意: 路由器和防火墙的UDP打洞的端口有个时间限制的,在一定时间内如果没有数据通讯会自动关闭
STUN
STUN的全称是Simple Traversal of UDP
文档评论(0)