转自: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)的基本概念和工作原理及区别的更多相关文章

  1. Android 基于Netty的消息推送方案之概念和工作原理(二)

    上一篇文章中我讲述了关于消息推送的方案以及一个基于Netty实现的一个简单的Hello World,为了更好的理解Hello World中的代码,今天我来讲解一下关于Netty中一些概念和工作原理的内 ...

  2. LVM基本概念及工作原理

    LVM基本概念及工作原理 背景知识: 一直困惑于LVM,特地找资料查了查,终于对LVM的概念和工作原理有了深入的理解.接下来记录下.新的技术出来必定是为了改变现有的不足,所以LVM的出现是由于对现有磁 ...

  3. zabbix监控的基础概念、工作原理及架构(一)

    zabbix监控的基础概念.工作原理及架构 转载于网络 一.什么是zabbix及优缺点 Zabbix能监视各种网络参数,保证服务器系统的安全运营,并提供灵活的通知机制以让系统管理员快速定位/解决存在的 ...

  4. Elasticsearch系列---Elasticsearch的基本概念及工作原理

    基本概念 Elasticsearch有几个核心的概念,花几分钟时间了解一下,有助于后面章节的学习. NRT Near Realtime,近实时,有两个层面的含义,一是从写入一条数据到这条数据可以被搜索 ...

  5. SaltStack 的基本概念与工作原理 架构设计

    随着云计算技术的快速普及与发展,越来越多的企业开始学习和搭建自己的云平台代替传统的 IT 交付模式,企业的 IT 环境也随之越来越复杂,常规的运维方法与技术已经无法满足现在云环境中系统的配置与变更.基 ...

  6. zabbix监控的基础概念、工作原理及架构

    一.什么是zabbix及优缺点(对比cacti和nagios) Zabbix能监视各种网络参数,保证服务器系统的安全运营:并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题.是一个基于WE ...

  7. VRRP概念、工作原理

    VRRP是一种路由容错协议,也可以叫做备份路由协议,可以把一个虚拟路由器的责任动态分配到局域网上的 VRRP 路由器中的一台. 控制虚拟路由器 IP 地址的 VRRP 路由器称为主路由器, 它负责转发 ...

  8. Hibernate和Mybatis的工作原理以及区别

    一.Mybatis的工作流程图 (1).原理详见: MyBatis应用程序根据XML配置文件创建SqlSessionFactory,SqlSessionFactory在根据配置,配置来源于两个地方,一 ...

  9. WebService 概念和工作原理(一)

    今天我们一起来学习WebService.它到底是干啥用的? Web service是一个平台独立的,低耦合的,自包含的.基于可编程的web的应用程序,可使用开放的XML(标准通用标记语言下的一个子集) ...

随机推荐

  1. Myeclipse10集成Flex4.6

    安装好flash builder4.6 执行fb安装文件夹下utilities\Adobe Flash Builder 4.6 Plug-in Utility.exe 插件. 第一次选择flash b ...

  2. [翻译角]Learn From George, Not Pinocchio(ESLPOD)

    以下转自www.eslpod.com,翻译为本人添加.其余版权均归原网站所有. ESLPOD是一个英语学习网站,我最初知道这个网站,是因为“奶爸”<把你的英语用起来>一书的推荐. ESLP ...

  3. Bridge Page

    http://www.zzbaike.com/wiki/%E6%A1%A5%E9%A1%B5 桥页(Bridge Page),又叫“门页”(Doorway/Portal/Jump/Entry Page ...

  4. CSP 201612-4 压缩编码 【区间DP+四边形不等式优化】

    问题描述 试题编号: 201612-4 试题名称: 压缩编码 时间限制: 3.0s 内存限制: 256.0MB 问题描述: 问题描述 给定一段文字,已知单词a1, a2, …, an出现的频率分别t1 ...

  5. 洛谷 P1236 算24点

    题目描述 几十年前全世界就流行一种数字游戏,至今仍有人乐此不疲.在中国我们把这种游戏称为"算24点".您作为游戏者将得到4个1~9之间的自然数作为操作数,而您的任务是对这4个操作数 ...

  6. Gamma的完全理解

    Gamma校正 问题:什么是Gamma曲线矫正?Gamma曲线矫正是什么意思?       Gamma曲线是一种特殊的色调曲线,当Gamma值等于1的时候,曲线为与坐标轴成45°的直线,这个时候表示输 ...

  7. Java IO 字节流与字符流 (三)

    概述 IO流用来处理设备之间的数据传输 Java对数据的操作时通过流的方式 Java用于操作流的对象都在IO包中 流按操作的数据分为:字节流和字符流 流按流向不同分为:输入流和输出流 IO流常用基类 ...

  8. gitlab smtp设置

    QQ exmail gitlab_rails['smtp_enable'] = true gitlab_rails['smtp_address'] = "smtp.exmail.qq.com ...

  9. Tomcat + solr5.2.1环境搭建

    1. 下载solr并解压后的目录为:E:\solr-5.2.1   ,  http://lucene.apache.org/solr/downloads.html 2. 将solr部署到Tomcat中 ...

  10. 10.16NOIP模拟赛

    /* 我是一个大sb */ #include<iostream> #include<cstdio> #include<cstring> #include<qu ...