对称NAT和非对称NAT

# 1.非对称NAT

非对称NAT(Asymmetric NAT) 是一种网络地址转换(NAT)类型,在这种NAT类型下,外部端口和内部端口的映射并不是对称的,即客户端的每个内部IP地址和端口,映射到外部的IP地址和端口对是不同的,不能简单地按照内部端口映射(**简单的'等于'这种映射关系**)回外部端口。

基于非对称会话的端口映射:

非对称NAT的端口映射通常是**基于发起端的会话(就是相对于发起外部连接请求的一端来讲,一次不中断的TCP/UDP连接)来进行**的,也就是说,每当内网设备发起新连接时,NAT会为该会话选择一个新的外部端口。这种方式确保了不同的会话(即使是来自同一设备)不会共享相同的外部端口。
例如,当多个内网设备同时向外部服务器发起连接时,每个会话都可能会映射到不同的外部端口。

非对称NAT的特性:

非对称NAT的主要特性是它在不同的连接上使用不同的外部端口进行映射,但**对于同一个连接(即TCP/UDP会话),一旦内网的特定IP和端口与外部IP和端口建立了映射,这个映射在整个会话过程中通常会保持不变。注意这个会话的信息其实是在NAT设备上的所以对于UDP这种无连接状态的协议来讲会话的结束通常是NAT上的映射缓存过期后才算结束会话**

TCP/UDP连接中的端口绑定:

在一次TCP/UDP连接(从建立到断开)中,内网设备的某个IP和端口会被映射到外网的某个端口,形成一个内外网IP和端口的绑定(内网IP:端口 ↔ 外网IP:端口)。
对于同一个TCP/UDP连接,在连接期间这个映射关系通常不会改变。即内网的某个IP和端口会与某个外部IP和端口保持绑定,直到连接结束或者NAT设备的映射缓存过期。
会话保持一致性:

一旦建立连接后,NAT设备会为这个特定的会话保留映射,并在整个连接期间不变。这个映射仅在该连接生命周期内有效,一旦连接断开或者NAT设备的映射缓存过期,NAT可能会为下一个连接使用不同的外网端口进行映射。


# 2.对称NAT

**基于对称会话的端口映射:**
对称NAT的端口映射通常是**基于发起端和接收端的共同作用的这个会话(就是相对于发起外部连接请求的一端和接收这个外部连接请求的一端这个组合来讲,一次不中断的TCP/UDP连接)来进行**的

**对称NAT(Symmetric NAT)的端口映射策略是最为严格的一种NAT类型**,其特点是:

每个外部目标地址使用不同的端口:当客户端在对称NAT下发起多个到不同外部主机的连接时,NAT会为每个目的IP和端口映射一个独特的外部端口。也就是说,如果一个客户端通过不同的目的IP地址发起多个连接,NAT会为每个目标IP地址和端口分配一个独立的外部IP和端口。(**就是不同的四元组IP包(源IP,源端口,目的IP,目的端口)映射对应到不同的外部端口(至于说外部IP?这个IP就是你当前所处的子网中的网关的IP,这个IP一般不会变,因为这个网关一般它是个公网设备。当然那种子网里面嵌套着子网的可能不一样,但是总的来说这个做这个NAT映射的东西就是网关,在一次通信连接中这个网关的IP一般是不变的。)**)

**该种端口映射方式会依赖于目标地址和目标端口**,与其他NAT类型(如全锥形NAT或限制性NAT)不同,对称NAT不仅根据源主机IP地址和端口,还会根据目标IP地址和端口来创建映射。这样,对于同一个内网IP地址,如果发起到不同目标的IP地址和端口的连接,NAT设备会使用不同的外部端口进行映射。

**不允许外部主机直接发起连接(非对称NAT也是一样的)**:对称NAT只有在内网主机首先发起了连接请求时,NAT才会为其创建端口映射。这意味着外部主机不能直接通过NAT映射的端口来连接内网主机,除非内网主机已经通过该端口发送过数据。

示例说明:
假设内网IP地址是192.168.1.2,内网端口是5000,客户端通过不同的外部目标IP和端口发起连接:

连接到外部目标1(例如:目标IP为203.0.113.1,目标端口为80),NAT可能分配一个外部端口12345。
连接到外部目标2(例如:目标IP为198.51.100.1,目标端口为443),NAT可能分配一个外部端口54321。
在对称NAT下,如果目标IP和端口不相同,即使是同一内网端口(5000),每个连接都会分配一个不同的外部端口。这样,它使得外部主机难以预测或猜测正确的外部端口来建立连接,这也增加了NAT的安全性,但同时也使得P2P通信变得更加复杂。

主要特点:
端口映射是唯一的,基于目标IP地址和目标端口进行区分。
每个外部目标使用不同的端口,即使是同一个内网主机和端口,去不同的外部目标也会使用不同的端口映射。
仅内网客户端发起的连接会映射端口,外部设备无法直接连接到内网。
总结:
对称NAT的端口映射策略非常严格,端口映射是根据目标IP和端口来动态分配的,导致外部设备很难直接与内网设备通信,这对某些应用(如P2P通信、视频会议等)会造成一定的挑战。

# 3.对称NAT和非对称NAT区别

非对称NAT的端口映射通常是**基于发起端的会话(就是相对于发起外部连接请求的一端来讲,一次不中断的TCP/UDP连接)来进行**的

## **所以它叫非对称NAT,他是在一次会话(一次连接中)只基于发起外部连接请求的一端来映射的。**


对称NAT的端口映射通常是**基于发起端和接收端的共同作用的这个会话(就是相对于发起外部连接请求的一端和接收这个外部连接请求的一端这个组合来讲,一次不中断的TCP/UDP连接)来进行**的

## **所以它叫对称NAT,他是在一次会话(一次连接中)基于发起外部连接请求的一端和接收这个外部连接请求的一端这特定的组合来映射的。(组合方式当然是发起端的IP和端口 与 接收端的IP和端口的组合啦)**

ps:它在发起端刚开始发出第一个数据包的时候,该数据包在IP网络层的时候网关会根据IP包头中的源IP和目的IP取得映射所需的信息!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值