NAT、NAPT(PAT)的基本概念和工作原理及区别
转自:http://blog.sina.com.cn/s/blog_5d302bd20100gprv.html
近年来,随着 Internet 的迅猛发展,连入 Internet 的主机数量成倍增长。由于最初设计 Internet 的时候并没有考虑到需要支持这么大的规模,因而 Internet 使用的 Ipv4 协议中 IP 地址的长度选择了 32 位,它可以使 IP 包的格式很好地对齐;但是,目前 IP 地址的短缺已经成为 Internet 面临的最大问题之一。
为了解决 IP 地址短缺的问题,人们提出了许多解决方案,Internet 能够支持到新一代 IP 协议 Ipv6 的出台。在众多的解决方案中,网络地址转换 NAT(Network Address Translation)技术提供了一种完全将私有网和公共网隔离的方法,从而得到了广泛的应用。图 1 NAT 工作原理示意图 1 NAT 技术
NAT 技术的基本功能就是,用 1 个或几个 IP 地址来实现 1 个私有网中的所有主机和公共网中主机的 IP 通信。NAT 技术可为 TCP、UDP 以及 ICMP 数据包提供透明转发。
1.1 NAT 工作原理
NAT 的基本工作原理是,当私有网主机和公共网主机通信的 IP 包经过 NAT 网关时,将 IP 包中的源 IP 或目的 IP 在私有 IP 和 NAT 的公共 IP 之间进行转换。
如图 1 所示,NAT 网关有 2 个网络端口,其中公共网络端口的 IP 地址是统一分配的公共 IP,为 202.204.65.2;私有网络端口的 IP 地址是保留地址,为 192.168.1.1。私有网中的主机 192.168.1.2 向公共网中的主机 166.111.80.200 发送了 1 个 IP 包(Des = 166.111.80.200, Src = 192.168.1.2)。当 IP 包经过 NAT 网关时,NAT 会将 IP 包的源 IP 转换为 NAT 的公共 IP 并转发到公共网,此时 IP 包(Des = 166.111.80.200,Src = 202.204.65.2)中已经不含任何私有网 IP 的信息。由于 IP 包的源 IP 已经被转换成 NAT 的公共 IP,响应的 IP 包(Des = 202.204.65.2, Src = 166.111.80.200)将被发送到 NAT。这时,NAT 会将 IP 包的目的 IP 转换成私有网中主机的 IP,然后将 IP 包(Des = 192.168.1.2,Src = 166.111.80.200)转发到私有网。对于通信双方而言,这种地址的转换过程是完全透明的。
1.2 NAPT 技术
由于 NAT 实现是私有 IP 和 NAT 的公共 IP 之间的转换,那么,私有网中同时与公共网进行通信的主机数量就受到 NAT 的公共 IP 地址数量的限制。为了克服这种限制,NAT 被进一步扩展到在进行 IP 地址转换的同时进行 Port 的转换,这就是网络地址端口转换 NAPT(Network Address Port Translation)技术。
NAPT 与 NAT 的区别在于,NAPT 不仅转换 IP 包中的 IP 地址,还对 IP 包中 TCP 和 UDP 的 Port 进行转换。这使得多台私有网主机利用 1 个 NAT 公共 IP 就可以同时和公共网进行通信。
如图 2 所示,私有网主机 192.168.1.2 要访问公共网中的 Http 服务器 166.111.80.200。首先,要建立 TCP 连接,假设分配的 TCP Port 是 1010,发送了 1 个 IP 包(Des = 166.111.80.200:80, Src = 192.168.1.2:1010), 当 IP 包经过 NAT 网关时,NAT 会将 IP 包的源 IP 转换为 NAT 的公共 IP,同时将源 Port 转换为 NAT 动态分配的 1 个Port。然后,转发到公共网,此时 IP 包(Des = 166.111.80.200:80,Src = 202.204.65.2:2010)已经不含任何私有网 IP 和 Port 的信息。由于 IP包的源 IP 和 Port 已经被转换成 NAT 的公共 IP 和 Port,响应的 IP 包(Des = 202.204.65.2:, Src = 2010166.111.80.200:80)将被发送到 NAT。这时 NAT 会将 IP 包的目的 IP 转换成私有网主机的 IP,同时将目的 Port 转换为私有网主机的 Port,然后将 IP 包(Des = 192.168.1.2:1010,Src = 166.111.80.200:80)转发到私网。对于通信双方而言,这种 IP 地址和 Port 的转换是完全透明的。
NAT、NAPT(PAT)的基本概念和工作原理及区别的更多相关文章
- Android 基于Netty的消息推送方案之概念和工作原理(二)
上一篇文章中我讲述了关于消息推送的方案以及一个基于Netty实现的一个简单的Hello World,为了更好的理解Hello World中的代码,今天我来讲解一下关于Netty中一些概念和工作原理的内 ...
- LVM基本概念及工作原理
LVM基本概念及工作原理 背景知识: 一直困惑于LVM,特地找资料查了查,终于对LVM的概念和工作原理有了深入的理解.接下来记录下.新的技术出来必定是为了改变现有的不足,所以LVM的出现是由于对现有磁 ...
- zabbix监控的基础概念、工作原理及架构(一)
zabbix监控的基础概念.工作原理及架构 转载于网络 一.什么是zabbix及优缺点 Zabbix能监视各种网络参数,保证服务器系统的安全运营,并提供灵活的通知机制以让系统管理员快速定位/解决存在的 ...
- Elasticsearch系列---Elasticsearch的基本概念及工作原理
基本概念 Elasticsearch有几个核心的概念,花几分钟时间了解一下,有助于后面章节的学习. NRT Near Realtime,近实时,有两个层面的含义,一是从写入一条数据到这条数据可以被搜索 ...
- SaltStack 的基本概念与工作原理 架构设计
随着云计算技术的快速普及与发展,越来越多的企业开始学习和搭建自己的云平台代替传统的 IT 交付模式,企业的 IT 环境也随之越来越复杂,常规的运维方法与技术已经无法满足现在云环境中系统的配置与变更.基 ...
- zabbix监控的基础概念、工作原理及架构
一.什么是zabbix及优缺点(对比cacti和nagios) Zabbix能监视各种网络参数,保证服务器系统的安全运营:并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题.是一个基于WE ...
- VRRP概念、工作原理
VRRP是一种路由容错协议,也可以叫做备份路由协议,可以把一个虚拟路由器的责任动态分配到局域网上的 VRRP 路由器中的一台. 控制虚拟路由器 IP 地址的 VRRP 路由器称为主路由器, 它负责转发 ...
- Hibernate和Mybatis的工作原理以及区别
一.Mybatis的工作流程图 (1).原理详见: MyBatis应用程序根据XML配置文件创建SqlSessionFactory,SqlSessionFactory在根据配置,配置来源于两个地方,一 ...
- WebService 概念和工作原理(一)
今天我们一起来学习WebService.它到底是干啥用的? Web service是一个平台独立的,低耦合的,自包含的.基于可编程的web的应用程序,可使用开放的XML(标准通用标记语言下的一个子集) ...
随机推荐
- Zend Studio配置Xdebug
按照网上的教程一直没有配置好,上官网看到一句话, If you don't know which one you need, please refer to the custom installati ...
- 00020970-0000-0000-C000-000000000046
00020970-0000-0000-C000-000000000046 System.InvalidCastException: 无法将类型为“Microsoft.Office.Interop.Wo ...
- easyui 生成tas方式
1.采用<a>标签形式 <div id="tabs" style="width:100%;"> <ul> <li id ...
- SQLServer 存储过程 SET NOCOUNT { ON | OFF } 的使用
在JDBC中调用 sql server 的存储过程时“该语句没有返回结果集”异常: 解决方法:在存储过程首行加上 SET NOCOUNT ON 使返回的结果中不包含有关受 Transact-S ...
- Android 在eclipse中没有出现AVD的解决方法(转载)
转自:http://frabbit2013.blog.51cto.com/1067958/1243549 本文主要介绍在系统中成功配置好Android开发环境(即SDK is ok and ADT o ...
- SVN报错 Not Found In Revision 不支持空目录
如果你要初始化上传的SVN目录为空,有可能会报这个错误 解决方法:在SVN下新建一个目录即可
- 如何成为一名牛逼的C/C++程序员?
每一个学技术的人 都想干个三五年就能成为大牛 跳槽去大厂,薪水翻番 或者在一个小公司里,带个小团队 在30岁左右成为项目经理 晋升管理层 买房买车,实现人生理想 然而技术之路漫漫 想要成为牛×的程序员 ...
- goalng——time包学习
1.星期:type Weekday int const ( Sunday Weekday = iota Monday Tuesday Wednesday Thursday Friday Saturda ...
- 51NOD 1088 最长回文子串&1089 最长回文子串 V2(Manacher算法)
回文串是指aba.abba.cccbccc.aaaa这种左右对称的字符串. 输入一个字符串Str,输出Str里最长回文子串的长度. Input 输入Str(Str的长度 <= 1000(第二题要 ...
- 【杂文】C++头文件加速
[杂文]C++头文件加速 骚年,冲钱送开挂哦,可以助你超神于OI战场 如果你发现你的暴力超时了的话,可以尝试用一下头文件加速,说不定就过了呢! #pragma once//只编译一次 #pragma ...