穿越NAT的迷雾:深入领略收集地点转换和NAT穿透,以及STUN、TURN、ICE的相关
其它,一再一下:NAT后的主机给外网发收集包,收集包在颠末NAT的时辰,NAT会为该主机分派出口IP:PORT,NAT会用该公网(出口)IP:PORT替代收集包的SRC,这样,吸取端收到包之后,查阅包的src信息,会获得NAT出口IP:PORT,犹如该包是直接从NAT发送过来的一样。 NAT范例检测的条件前提:必要有一台位于公网的处事器(server),且该server拥有2个公网IP地点,并在ip1:port1和ip2:port2做监听。 留意:检测步调中的server通过ip:port向client回包,是指server回包的时辰,会把ip:port配置为rsp包的src ip和src port。 检测的步调: 【步调1】判定client是否位于NAT后头 很简朴,位于NAT后头的主机跟公网通讯要做表里网地点转换,两个IP纷歧样。以是,可以通过以下操纵完成:
【步调2】判定是否全锥型Full Cone NAT client向server ip1:port1发送一个req UDP包,哀求server通过ip2:port2(以ip2:port2作为rsp UDP的src)向client回UDP包。 按照全锥型NAT的界说,假如client收到了rsp UDP,那声名NAT对外网发包IP都不限定,声名client是全锥型NAT。但全锥型NAT很少,或许率收不到rsp UDP包,假如收不到,则必要继承判定。 【步调3】判定是否对称型 Symmetirc NAT client向server ip2:port2发送一个req udp。server收到后,把收到的req udp的src ip和src port取出来,塞进rsp UDP的payload字段,通过ip2:port2(以ip2:port2作为rsp UDP的src)向client回UDP包。 收到的rsp UDP之后,取出payload中的ip和port,跟步调1中的ip和port比拟,假如纷歧样,则是对称型NAT。 由于按照前面的界说,对称型NAT,会为统一内网IP,按照差异的外网IP,分派差异的NAT出口PORT。 假如一样,那么必定是锥型NAT,步调2已经测试了全锥型,那剩下的就只有ip受限锥型和port受限锥型两种NAT范例必要继承判定了。 【步调4】判定是受限锥型Restricted Cone照旧PORT受限锥型 client向server ip2:port2发送一个req udp,要求server用ip2、且差异于port2的端口向client回rsp udp。就是用ip2+差异于port2的其他port作为udp的src向client回包。 假如client能收到rsp udp,那声名只要ip沟通,哪怕port不沟通,NAT也放行,以是NAT是IP受限型;假如充公到,那就是PORT受限型,声名只能通过port2回包。 至此,全部的NAT范例便都检测出来了,是不是很简朴? 对称型NAT不能直接成立P2P毗连,只能通过中转处事器relay包。 未完待续。 太长了,后头讲打洞、STUN、TURN、ICE。
(编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |