NAT类型讲解

NAT类型讲解
和平peaceful大家玩游戏的时候明明网络状态非常好,就是特别的卡,检查路由器、光猫、网线、光纤、同轴,也没什么检查出什么问题,很奇怪对吧?但是这些问题跟网络质量没什么关系,而是NAT类型
什么是NAT类型?
NAT类型(Network Address Translation,即网络地址转换),作用是允许在多个内网设备中共享同一个公网IP地址,有效节省了IPv4资源。
为什么会有NAT类型?
因为IPv4只有约四十多亿(42949672962)
,而到了2025年,全世界总人口已经有七十多亿了,这点IPv4的资源根本不够用;为了解决IPv4资源的枯竭,于是就有了NAT类型技术。
NAT工作原理是什么?
一般来说,我们想要访问某个网站,就比如对方的服务器是123.321.232.11
,而我们的公网IP是47.234.111.32
,然后我们内网设备比如是192.168.1.32
,比如手机192.168.1.32
向网站123.321.232.11
发送数据,需要从手机192.168.1.32
转发到路由器、再转发到光猫并转换成公网IP47.234.111.32
、最终请求的数据包已经发送到了对方服务器123.321.232.11
(提示:如果是PPPoE拨号上网,你的数据包会发送到运营商内网而且还有做一次NAT转换);看起来很乱?下面有流程图👇
手机
->路由器
->光猫
->互联网
->网站
NAT类型有四种类型,每一种类型的工作方式不太一样,分别是
全锥形(Full Cone): 最宽松的NAT类型。只要外网设备知道你的公网IP,就可以向内网设备发送数据,对于游戏玩家来说是一个不错的选择。
IP限制锥形(Restricted Cone): 外网设备无法主动向内网设备发送数据,内网设备必须向外网设备发出请求,才能与外网设备互相通信。只有之前与通信过的外网主机才能通过继续通信。
端口限制锥形(Port Restricted Cone): 和IP限制锥形类似,但是有端口限制,双方通信时必须达成协议要用什么端口;比如我们开放25565端口,对方也会用25560端口进行通信,但如果对方使用19132端口和我们通信,NAT类型会直接拒绝链接。
对称形(Symmetric): 这是安全最严格但也是最麻烦的NAT类型之一,内网设备发送请求会映射到不同的IP,每次发送的请求都有可能每个不同IP。对于游戏玩家来说非常不友好。
NAT类型有哪些影响?
NAT类型主要影响UDP协议的通信性能和稳定性。特别是在需要低延迟和高实时性的应用中,例如在线游戏、VoIP和视频通话。
游戏的影响:玩主机游戏的影响很大,如果你有PS、Xbox、NS 等主机,可以在网络状态里看到 NAT类型;对网络游戏会影响延迟和丢包率,以及匹配系统的效率和成功率。
语音视频的影响:你可能遇到过微信视频提示网络质量不好,但WiFi信号满格的状况,这种情况很有可能是NAT4类型,导致无法P2P连接成功导致的。
BT下载的影响:P2P下载等应用,最为开放的NAT类型,可以连接到更多的资源数,加快下载的速度。
开放性:NAT1>NAT2>NAT3>NAT4
安全性:NAT1<NAT2<NAT3<NAT4
如何更改NAT类型?
由于IPv4资源枯竭,大部分家庭没有公网IP,如果是PPPoE拨号上网你发送的数据包还要经过运营商的内网再次转换,这也意味着我们可能需要向运营商电话联络(大概不会给你改),最简单的办法就是找运营商要一个公网IP(广电公网IP一个月好几百块,还不如GTA抢银行去了),并且光猫连接方式改为桥接
如何检测自己的NAT类型?
- NAT类型在线检测工具,查看我的NAT类型 – 猫点饭: 网页检测,挺准,但是需要订阅微信公众号
(猫点饭快给我打钱) - 人生苦短,我用Python!
1
2
3
4
5
6pip install pystun3
# 安装完毕后直接在终端敲pystun3回车就行了
PS C:\Users\liuyi> pystun3
NAT Type: Symmetric NAT
External IP: 111.31.29.128
External Port: 27388