关于NAT的几种类型

NAT网络地址转换(Network Address Translation)主要用于解决IP地址不足而提出的,NAT主要有以下几类

1、S-NAT(Source Network Address Translation)基于源地址的NAT

2、D-NAT(Destination Network Address Translation)基于目标地址的NAT

3、P-NAT(Port Network Address Translation)基于端口的NAT

     P-NAT 也称为 P-AT(Port Address Translation)

4、ID-NAT(Identity NAT)基于ID的NAT

NAT大致为以上四类,下面阐述这些分别用于那些场景:

1、S-NAT 常用于 NAT 端口映射,DMZ、NAT/1

2、D-NAT 常用于公网重定向到内网

3、P-NAT 常用于 TCP/IP、UDP/IP 这些L3层协议

4、ID-NAT 常用于 ICMP 这些L3层协议

GRE/PPP帧,NAT路由做工是拆出欲转发IP报文在按照正常路由NAT处理的,因为GRE/PPP帧一般带的就是一个L3网络层完整的IP数据帧。

关于 NAT/1、NAT/2、NAT/3 类

1、NAT/1 类

     网络没有限制直连公网、拥有独立IP地址、路由器之中DMZ功能就是这个,或者光猫桥接到你的电脑。

     优点:网络无限制,所以几乎没有网络问题

     缺点:因为没有NAT或防火墙的保护,可能面临更高的安全风险。

2、NAT/2 类

     最常见的NAT类型,设备位于路由器后面,并通过NAT与外网通信,设备拥有私有IP地址,而路由器负责将内部流量映射到一个公网IP地址。 

     优点:保持较好网络连接的同时,提供了一定程度的网络安全。

     缺点:可能会遇到某些连接问题,尤其是在一些P2P连接的程序中。

3、NAT/3 类

     NAT或防火墙的限制非常严格,可能只允许出站连接,而对于进站连接则大多数被阻止,就是端口映射都不行,可以映射端口是 NAT/2 类。

    优点:拥有较高的安全级别,未经请求的外部流量几乎都被阻止。

    缺点:可能导致多数网络服务和P2P应用出现连接问题,影响在线游戏、视频会议等应用的体验。

4、NAT/4 类

    这种是NAT/3、NAT/3,是个不存在的NAT类型,只是有很多人这么叫,一般就是大陆国内ISP运营商给家宽整的IP地址网络,大内网套小内网。

关于锥形NAT(Cone NAT),又称为圆锥形NAT,它主要是用来描述如何处理外部到内部的连接请求,它分为以下几个类型。

1、完全锥形NAT(Full Cone NAT)

      意思就是完全不受限制,外部任意端口、IP地址都可以访问,比如P2P穿透一般需要这种,星际战甲(Warfame)那款TPS游戏,玩家练级就比较吃这个。

     但需要注意的是,完全锥形NAT,是基于端口映射关系的,即一个端口对应一个内网IP+端口(固定)不可变的。

所以:可以静态端口映射到公网的,都属于是锥形NAT。

 

2、受限锥形NAT(Restricted Cone NAT)

      这个跟完全锥形NAT很类似,区别就一个就是,它只允许来自内部主机之前已发送过数据包的外部IP地址的入站流量通过。

      你可以理解,我们在内网NAT客户端设备之中用UDP链接了外网某服务器IP,然后对面可以一直用自己的IP,任意的端口号给我们内网的设备发数据过来,这种常见是UDP、ICMP NAT。

3、端口受限锥形NAT(Port Restricted Cone NAT)

     这个跟第二个没多大区别,就是在多限制了一个端口号,主要用在TCP协议的,NAT会跟踪TCP的链接状态。(TCP connection nat tracker)限制对面不能以非这个IP+PORT的数据穿过NAT,所以TCP打不了NAT洞。

4、 对称锥形NAT(Symmetric NAT)

对称锥形NAT对于每一个不同的外部目的地(即不同的外部IP地址或端口),都会使用不同的映射。

即使是从同一个内部IP地址和端口发出的两个数据包,如果它们的目标不同,也可能被映射到两个不同的外部IP地址和端口。

这个主要用在UDP/P2P,你可以理解先打NAT洞,然后用任何类型的IP+PORT都可以向这个UDP端口发送数据,当然这个UDP端口也可以向任何目标IP+PORT地址发数据,打洞需要这种NAT,当然完全锥形NAT更好,毕竟能静态映射它不好嘛,只是这两个类型NAT大多数时候容易被人混淆。

    

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/715968.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

串及BF朴素查找算法(学习整理):

关于串的相关定义: 串:用‘ ’表示的字符序列空串:包含零个字符的串子串:包含传本身和空串的子串 eg: abc(,a,b,c,ab,bc,ac,abc)共7个:串的长度的阶乘1(空串)真子串:不包含自身的所…

解读OWASP应用安全验证标准ASVS

OWASP应用程序安全验证标准(OWASP Application Security Verification Standard,ASVS)为测试web应用程序技术安全控制提供了基础,还为开发人员提供了安全开发的要求列表。 1. 简介 OWASP应用安全验证标准,是一份测试应…

电子电气架构——AUTOSAR架构下EcuM唤醒源事件详解

电子电气架构——AUTOSAR架构下EcuM唤醒源事件详解 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 没有人关注你。也无需有人关注你。你必须承认自己的价值,你不能站在他人的角度来反对自己。人…

Verilog原语、Verilog保留关键字

Verilog基元 Vivado合成支持Verilog门级原语,下表所示除外。 Vivado合成不支持Verilog开关级原语,例如以下原语: cmos、nmos、pmos、rcmos、rnmos、rpmos rtran、rtranif0、rtranif1、tran, tranif0,tranif1 门级…

Qt/自定义控件的封装

新建文件,选择Qt设计师界面类 创建空界面 这是自己控件封装的文件,双击跳转到设计界面进行设计 跳转到其他的ui界面,创建一个widget 右键,选择提升为 在提升的类名称输入刚刚创建的类名,添加后选择提升,勾选…

政安晨【示例演绎虚拟世界开发】(五):从制作一个对战小游戏开始(Cocos Creator 《击败老大》)(第二段)

政安晨的个人主页:政安晨 欢迎 👍点赞✍评论⭐收藏 收录专栏: AI虚拟世界大讲堂 希望政安晨的博客能够对您有所裨益,如有不足之处,欢迎在评论区提出指正! 现在我们已经学会了如何向场景中添加图片,接下来继…

计算机设计大赛 深度学习机器视觉车道线识别与检测 -自动驾驶

文章目录 1 前言2 先上成果3 车道线4 问题抽象(建立模型)5 帧掩码(Frame Mask)6 车道检测的图像预处理7 图像阈值化8 霍夫线变换9 实现车道检测9.1 帧掩码创建9.2 图像预处理9.2.1 图像阈值化9.2.2 霍夫线变换 最后 1 前言 🔥 优质竞赛项目系列,今天要分…

怎么运行/opencv/modules/imgproc/test下的test_cvtyuv.cpp

怎么运行/opencv/modules/imgproc/test下的test_cvtyuv.cpp 要运行test_cvtyuv.cpp,你需要按照以下步骤操作: 获取OpenCV源代码,编译并安装opencv:首先,确保你已经下载并安装了OpenCV。如果没有,请前往Open…

Leetcode630. 课程表 III

Every day a Leetcode 题目来源:630. 课程表 III 解法1:反悔贪心 经验告诉我们,在准备期末考试的时候,先考的课程先准备。同理,lastDay 越早的课程,应当越早上完。但是,有的课程 duration 比…

2023年09月CCF-GESP编程能力等级认证Scratch图形化编程四级真题解析

一、单选题(共15题,共30分) 第1题 人们所使用的手机上安装的 App 通常指的是( )。 A:一款操作系统 B:一款应用软件 C:一种通话设备 D:以上都不对 答案:B 第2题 下列流程图的输出结果是?( ) A:9 B:7 C:5 D:11 答案:A 第3题 默认小猫角色,执行下列程序…

IO,硬盘与文件

IO与计算机存储空间 IO(输入/输出)是计算机领域中指的是数据在计算机与外部设备之间的传输过程。存储通常指的是计算机中用来保存数据的介质或设备,硬盘是存储设备的一种,通常是指硬盘驱动器(Hard Disk Drive&#xf…

文章解读与仿真程序复现思路——电网技术EI\CSCD\北大核心《考虑时空相关性的流域水风光多能互补系统高维不确定性场景生成方法》

本专栏栏目提供文章与程序复现思路,具体已有的论文与论文源程序可翻阅本博主免费的专栏栏目《论文与完整程序》 论文与完整源程序_电网论文源程序的博客-CSDN博客https://blog.csdn.net/liang674027206/category_12531414.html 这篇文章的标题涵盖了以下几个关键方…

C语言编程大题

以下总结编程大题的常考题型 1,输出 100-200 之间所有素数。 要求: (1)编写一个判断一个整数是否为素数的函数 void prime(int n),若是素数则输出,否则不输出 (2)主函数中调用 prime 函数,输出 100-200 之间所有素数 说明:素数是指除了1和该数本身之外,不能被其它任何整…

【C++】用命名空间避免命名冲突

🌸博主主页:釉色清风🌸文章专栏:C🌸今日语录:如果神明还不帮你,说明他相信你。 🪷文章简介:这篇文章是结合谭浩强老师的书以及自己的理解,同时加入了一些例子…

NOC2023软件创意编程(学而思赛道)python小高组初赛真题

软件创意编程 一、参赛范围 1.参赛组别:小学低年级组(1-3 年级)、小学高年级组(4-6 年级)、初中组。 2.参赛人数:1 人。 3.指导教师:1 人(可空缺)。 4.每人限参加 1 个赛项。 组别确定:以地方教育行政主管部门(教委、教育厅、教育局) 认定的选手所属学段为准。 二、…

MATLAB知识点:if条件判断语句的嵌套

​讲解视频:可以在bilibili搜索《MATLAB教程新手入门篇——数学建模清风主讲》。​ MATLAB教程新手入门篇(数学建模清风主讲,适合零基础同学观看)_哔哩哔哩_bilibili 节选自​第4章:MATLAB程序流程控制 我们通过一个…

基于springboot+vue的教师工作量管理系统

博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战,欢迎高校老师\讲师\同行交流合作 ​主要内容:毕业设计(Javaweb项目|小程序|Pyt…

Java集合-Map接口

在Java中,Map接口表示键值对的集合,其中每个键都是唯一的,并且每个键映射到一个值。Map接口是集合框架中的一部分,位于java.util包中。它定义了一系列操作来管理键值对,例如添加键值对、删除键值对、获取键对应的值等。…

7.1.1 selenium介绍及安装chromedriver

目录 1. Selenium的用途 2. 安装Selenium库 3. 安装chromedriver 1. 查看谷歌版本号​编辑 2. 找到最新版本及下载 3. 配置环境变量 4. 检测是否配置成功 5. 用python初始化浏览器对象检测: 6. 参考链接 1. Selenium的用途 在前面我们提到:在我…

Github项目推荐-LightMirrors

项目地址 https://github.com/NoCLin/LightMirrors 项目简述 “LightMirrors是一个开源的缓存镜像站服务,用于加速软件包下载和镜像拉取。目前支持DockerHub、PyPI、PyTorch、NPM等镜像缓存服务。 当前项目仍处于早期阶段。”–来自项目说明。 也就是说&#xff…