NAPT的类型(Cone NAT、Symmetric NAT)

article/2025/10/4 0:19:28

NAPT与NAT的区别在于,NAPT不仅转换IP包中的IP地址,还对IP包中TCP和UDP的Port进行转换。这使得多台私有网主机利用1个NAT公共IP就可以同时和公共网进行通信。(NAPT多了对TCP和UDP的端口号的转换)

一、带防火墙的NAT

NAT一开始的功能只是一种映射,其功能是将内网IP、端口 映射到 公网 IP 端口;而防火墙的功能是过滤进出内网的数据,带防火墙功能的NAT,即带有过滤功能的NAT,即有限制数据功能的NAT。

(1)锥形NAT(cone NAT)
锥型的NAT,内网IP、端口{X:y} 唯一映射到公网IP、端口{A:b},即 {X:y}——>{A:b}

与公网主机建立通信时,将每个公网主机看做一点,这所有的点就相当于一个面,而因为映射 {X:y}——>{A:b}是唯一的,由点{A:b}到面建立连线形成的就是一个锥形

(2)对称NAT(Symmetric NAT)
与不同的公网主机{IP:port}通信时,内网的IP、端口{X:y} 都会为这一次的通信建立一个唯一的映射:{X:y}——>{IP:port},即每一次的通信映射和公网主机的数量是一一对应的,所以称为对称。

二、cone NAT(锥形NAT)
(1)Full cone NAT 完全圆锥型
全锥型NAT
如上图所示,内网IP、端口{X:y} 与公网IP、端口{A:b} 建立映射,并绑定 {X:y}——>{A:b}

绑定建立后,无论外部数据来自于哪个公网主机(M、P、S),都允许与内网主机建立通信

(2)Restricted cone NAT 受限圆锥型
在这里插入图片描述
在完全圆锥型建立了映射 {X:y}——>{A:b} 的基础上,此时,公网的主机想要访问内网主机增加了一条限制

即:内网主机( {X:y}——>{A:b} )访问过公网主机 P,则主机P可访问内网主机{X:y},且端口不受限{P:q}、{P:r};而非公网主机P的 M、S均无法访问内网主机

(3)Port Restricted cone NAT 端口受限圆锥型
在这里插入图片描述
在受限圆锥型对IP有限制的基础上,继续增加对端口的限制,不仅要是内网主机( {X:y}——>{A:b} )访问过公网主机 P,还要细化是哪一个端口

即: 映射{X:y}——>{A:b} 访问过公网主机{M:N},则{M:N}可访问内网主机{X:y},同为公网的主机S则不可访问内网 【受限圆锥型】
映射{X:y}——>{A:b} 访问过公网主机 {P:q},则{P:q}可访问内网主机 {X:y},同一个IP的{P:r}也不能访问内网主机【端口受限圆锥型】

三、Symmetric NAT(对称NAT)
在这里插入图片描述

与不同的公网主机{IP:port}通信时,内网的IP、端口{X:y} 都会为这一次的通信建立一个唯一映射,

即: 内网主机{X:y} 访问过 公网主机{M:n},生成一个映射 {X:y}——>{C:d},公网主机{M:n}就可以访问内网主机{X:y}同为公网的主机S不可访问内网
内网主机{X:y} 访问过 公网主机 {P:q},生成一个映射 {X:y}——>{A:b},公网主机{P:q}就可以访问内网主机{X:y},同一个IP的{P:r}却不可访问内网

四、目前比较常用的NAT类型是完全锥型NAT:
1.首先目前绝大多数的路由器都是非对称型NAT(Cone NAT),所以P2P技术才能正常使用。 对称/非对称的区别主要在于:网关设备在实现NAT时,对于内网某主机的若干个UDP连接请求,网关设备对应地在外网上所建立的UDP端口数量。对称NAT是一个请求对应一个端口,非对称NAT是多个请求对应一个端口(象锥形,所以叫Cone NAT)

2.对称型NAT(Symmetric NAT)是无法实现P2P技术


http://chatgpt.dhexx.cn/article/rDqpKsjp.shtml

相关文章

NAT / NAPT

目录 一、前言 二、网络地址转换(NAT) 2.1 NAT如何解决IP冲突 2.2 SNAT / DNAT 2.3 SNAT工作原理 2.3.1 案例1(NAT) 2.3.2 案例2(NAPT) 2.4 DNAT 三、总结 一、前言 本人在学习Bridge/Router的过程中,发现在…

NAT与NAPT

一、NAT和NAPT的概念 NAT(Network Address Translation,网络地址转换):NAT是将IP数据报头中的IP地址转换为另一个IP地址的过程。使用少量的公网IP地址代表较多的私网IP地址的方式,仅支持地址转换,不支持端…

华为eNSP:静态NAT、动态NAT、端口NAT的配置(NAPT)-网络地址转换

静态NAT的配置 一、拓扑图 二、路由器的配置 1、配置端口IP AP1: [Huawei]interface gigabitether 0/0/1 [Huawei-GigabitEthernet0/0/1]ip address 1.1.1.1 24 [Huawei-GigabitEthernet0/0/1]interface gigabitether 0/0/2 [Huawei-GigabitEthernet0/0/2]ip address 192.1…

NAT基础:NAT技术原理,静态NAT、动态NAT、NAPT、Easy IP、NAT Server的原理,以及各NAT的配置方法和转换示例。

目录 NAT 技术原理: 静态NAT原理: 静态NAT(土豪用法): NAT转换示例: 静态NAT配置方法介绍: 1、方式一: 2、方式二: 静态NAT的配置实例: 动态NAT原理&…

NAT、Napt(地址转换技术)详解

NAT的由来 IPv4即网际网协议第4版——Internet Protocol Version 4的缩写。IPv4定义一个跨越异种网络互连的超级网,它为每个网际网的节点分配全球唯一IP地址。如果我们把Internet比作一个邮政系统,那么IP地址的作用就等同于包含城市、街区、门牌编号在内…

静态NAT、NAT server、NAPT区别

NAT NAT(Network Address Translation网络地址转换)是将IP数据报文头中的IP地址转换为另一个IP地址的过程。 NAPT(Network Address Port Translation网络地址端口转换)可以实现并发的地址转换。 它允许多个内部地址映射到同一个…

IP协议与NAT/NAPT技术

文章目录 IP协议一、什么是IP协议1、IPv4协议报文格式关于分片 2、IP地址3、子网划分与CIDR4、特殊的IP地址5、公网IP和私网IP6、IP地址的分配(DHCP) 二、NAT/NAPT技术1、接口与IP的关系2、路由器的LAN口与WAN口3、NAPT的基本工作原理 三、IPv4与IPv6四、ICMP协议1、关于ping命…

NAT与NAPT技术详解

一、定义 NAT: Network Address Transfer 网络地址转换。虚拟机。 NAPT: Network Address Port Transfer 网络地址端口转换。也叫PAT。内网路由器或FW。 NAT和NAPT的功能是完成内部私有地址和全局网络地址的转换,让计算机能与外界网络通信。其属接入广域网(WAN)技…

Queue与Deque的区别

前言 ​ 在研究java集合源码的时候,发现了一个很少用但是很有趣的点:Queue以及Deque,平常在写leetcode经常用LinkedList向上转型Deque作为栈或者队列使用,但是一直都不知道Queue的作用,于是就直接官方文档好了。 正文…

【C++】deque的实现原理简单介绍

前言 deque被称为双端队列,它的出现主要是为了结合vector和list的优点并减小它们的缺点,实际上deque确实结合了vector和list的优点减小了它们的缺点,但是它的结合也让它自己的优点没有原始的vector和list那么极致,导致deque变得很…

C++容器deque的用法

目录 1.deque容器概念 2.deque对象的构造 2.1deque对象的默认构造 2.2deque对象的带参数构造 3.deque头部和末尾的添加移除操作 4.deque的数据存取 5.deque与迭代器 6.deque的赋值 7.deque的大小 8.deque的插入 9.deque的删除 1.deque容器概念 deque容器概念 deque是…

C++ deque

C deque 简介 所谓的deque是”double ended queue”的缩写,双端队列不论在尾部或头部插入元素,都十分迅速。而在中间插入元素则会比较费时,因为必须移动中间其他的元素。双端队列是一种随机访问的数据类型,提供了在序列两端快速…

C++ queue 和 deque的区别

从使用的角度来讲主要差别就是&#xff1a; deque支持push_front、pop_front、push_back、pop_back。 queue支持push_back、pop_front。 ---------------------------------------------------------------------------- deque是双端队列 #include<deque>template&l…

C++——deque

文章目录 Deque 与 vector 的异同点构造操作非更易型操作更易型操作使用例子 容器 deque (发音为“deck”)和 vector 非常相似。它也采用dynamic array来管理元素&#xff0c;提供随机访问&#xff0c;并有着和 vector 几乎一模一样的接口。不同的是 deque 的 dynamic array 头…

C++中deque用法详解

deque函数&#xff1a; deque容器为一个给定类型的元素进行线性处理&#xff0c;像向量一样&#xff0c;它能够快速地随机访问任一个元素&#xff0c;并且能够高效地插入和删除容器的尾部元素。但它又与vector不同&#xff0c;deque支持高效插入和删除容器的头部元素&#xff0…

python中的deque模块(collections的deque模块)

目录 1. deque是python的collections中的一个类 2.deque的简单使用以及它的方法 2.1 创建deque的方法 2.2 创建deque时&#xff0c;并指定大小maxlen&#xff0c;即能装几个元素&#xff0c; 以及deque添加元素append()方法 2.3 deque的 appendleft()方法 2.4 deque的 clear()…

C++中deque的用法(超详细,入门必看)

博主简介&#xff1a;Hello大家好呀&#xff0c;我是陈童学&#xff0c;一个与你一样正在慢慢前行的人。 博主主页&#xff1a;陈童学哦 所属专栏&#xff1a;CSTL 如果本文对你有所帮助的话&#xff0c;希望可以点赞&#x1f44d;收藏&#x1f4c2;支持一下哦&#xff01; 期待…

Java数据结构之Deque

Java数据结构之Deque 引题Deque接口分析Deque的注释与Queue的联系还在使用Stack&#xff1f;你OUT啦&#xff01;peek方法更方便与List的不同与null说goodbye 子类ArrayDeque.class分析基本结构官方的代码图解数据存储过程 简单思考 1部分代码的分析关于初始容量关于扩容代码中…

java关于Deque的使用

定义 双向队列&#xff1a;支持插入删除元素的线性集合。 java官方文档推荐用deque实现栈&#xff08;stack&#xff09;。 和Queue的区别 Deque是double ended queue&#xff0c;将其理解成双端结束的队列&#xff0c;双端队列&#xff0c;可以在首尾插入或删除元素。 Queue的…

【C++】deque的用法

目录 一、容器适配器二、deque的介绍三、deque的使用及缺陷1、deque的构造函数2、deque的元素访问接口3、deque的 iterator的使用4、deque的增删查改4、deque的缺陷5、为什么选择deque作为stack和queue的底层默认容器 一、容器适配器 在了解deque前&#xff0c;我们先讲一讲什…