转自: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. [Android6.0][RK3399] 双屏异显代码实现流程分析(一)【转】

    本文转载自:http://blog.csdn.net/dearsq/article/details/55049182 Platform: RK3399 OS: Android 6.0 Version: ...

  2. AIZU AOJ 2309 Vector Compression 最小树形图(朱—刘算法)

    题意简述:给定若干个相同维度的向量,寻找一种排序方法,使得所有向量的表示长度总和最低. 所谓表示长度为(Aj-r*Ai)^2,其中i<j  数据范围:向量总数和维度均小于100 思路:(1)首先 ...

  3. CMake使用总结

    总结CMake的常用命令,并介绍有用的CMake资源. CMake意为cross-platform make,可用于管理c/c++工程.CMake解析配置文件CMakeLists.txt生成Makef ...

  4. Tool:CorelDRAW

    ylbtech-Tool:CorelDRAW 1.返回顶部   2.返回顶部   3.返回顶部   4.返回顶部   5.返回顶部 1. https://baike.baidu.com/item/Co ...

  5. 【161】BASH相关文章链接

    ---恢复内容开始--- 1. Linux cat命令详解  --<cat>-- 新建文件 file1.txt,随便输入几行文字 cat 'file1.txt' #显示 'file1.tx ...

  6. node.js开发错误——DeprecationWarning: Mongoose: mpromise

    原文地址 使用mongoose进行数据库操作时,总是提示: (node:5684) DeprecationWarning: Mongoose: mpromise (mongoose's default ...

  7. java运行jdk连接mysql出现了:Establishing SSL connection without server's identity verification is not recommended

    注意:出现这类提示也不会影响对数据库的增删改查操作,所以不用紧张.. 在运行练习时出现下面的错误信息提示: Establishing SSL connection without server's i ...

  8. Hadoop伪分布式模式搭建

    title: Hadoop伪分布式模式搭建 Quitters never win and winners never quit. 运行环境: Ubuntu18.10-server版镜像:ubuntu- ...

  9. [NOIP2004]火星人

    Description 人类终于登上了火星的土地并且见到了神秘的火星人.人类和火星人都无法理解对方的语言,但是我们的科学家发明了一种用数字交流的方法.这种交流方法是这样的,首先,火星人把一个非常大的数 ...

  10. 429c Leha and Function

    题目 解题报告 F(n, k)是在集合{1, 2, 3, ..., n}中所有的具有k个元素的子集中分别取最小值,相加后的期望. 例如:要求F(4, 2),根据定义有{1, 2}, {1, 3}, { ...