深入学习NAT工作原理

深入学习NAT工作原理

我们单位中的电脑很多,组成了一个局域网,网络中只有一个电脑和外网(Internet)相连,当然有一个外网地址,但仅仅一个。我以前一直不明白,我们局域网的电脑均能上网,几台同时上也没有问题,究竟是怎么实现的?

当时我知道,Internet网上的计算机都必须有一个IP地址(公址Public IP),才能和Internet网络上其他设备正确通信。在某个时刻必须是唯一的(这句话某个时刻要解释一下,我以前家用电脑是通过电信上网的,每次登陆上网都会从电信公司ISP得到一个公址Public IP,但每次并不相同,当我得到某个公址Public IP,外网上的其他设备不会为我得到的那个公址Public IP;但是当我下线以后,其他某一台电脑是可以得到我刚才用的那个公址Public IP。其实ISP是把公址Public IP是租给我的,我不租时他们可以租给其他电脑以提高Public IP利用率(Public IP就是一种资源,不是无穷无尽的),但是不可以同时把一个公址Public IP租给两台设备,可以在不同时间把一个公址Public IP租给两台或更多设备,在任一时间一个公址Public IP只对应着Internet网上一个设备,如我的计算机,而不会两个)

我们局域网的电脑均能上网,几台同时上也没有问题,究竟又是怎么实现的?这就要说到我们今天学习的NAT。

下面先来一段教科书上的定义:NAT网络地址转换(NAT,Network Address Translation)属接入广域网(WAN)技术,是一种将私有(保留)地址转化为合法IP地址的转换技术,它被广泛应用于各种类型Internet接入方式和各种类型的网络中。原因很简单,NAT不仅完美地解决了lP地址不足的问题,而且还能够有效地避免来自网络外部的攻击,隐藏并保护网络内部的计算机。

看了上面定义,还是不能理解局域网中电脑几台同时均能上网的问题。

NAT的实现方式有三种,即静态转换Static Nat、动态转换Dynamic Nat 和 端口多路复用OverLoad。

其中端口多路复用OverLoad是目前我们网络中应用最多的一类,我们就拿他说事。(其他两种,你感兴趣又不知道的话,不知百度之吧,呵,不是很难理解的)

搞懂了其中端口多路复用OverLoad,你就能理解理解局域网中电脑几台同时均能上网的问题了。不要怕头疼,接着看,关键的地方要到啦。

我们说我的计算机和外网通信,一定是我的电脑里有一个应用程序在运行,比如说IE浏览器。这个应用程序能够和外界Internet网通信,必须在本计算机上打开一个或几个端口;同样当他浏览某个网站的某个网页时,也必须通过网站服务器中的一个或几个端口才能复制网页内容再按原路传送过来,我们的浏览器将他显示在我们的屏幕上。这就是我们运用浏览器浏览网页的过程。从上面的过程我们可以知道,网络设备间通信不仅要有Public IP(我的计算机和网站服务器的),而且要有各自端口号才能完成相互的通讯。IP+端口号才是完整的通讯地址!

端口是什么?我罗嗦几句。这里的端口是指软端口。有有软就有硬,对!硬端口直观、简单,就是电脑主机箱后面的那些插口:RJ45接口、串口、并口、RS232等等,看得见、数得清的。

软端口是什么东东?电脑里应用程序、服务等打开的端口,看不见的,当然你看不见不要紧,那些应用程序能知道并使用。每个和外部通信的应用程序均会创建属于自己的一个(或几个)软端口以便和外部通信。当然每个端口有自己的端口号以示区分。通常一台计算机最多可以开65535个端口,也就是说端口号可以是1~65535,完全够你(的计算机中的应用程序)用的了。我们说的远程桌面运用,其实就开了一个端口:3389.通过这一个端口就可以完全控制你的电脑了。

有人还是搞不清软端口、硬端口,比如我以前就这样,看见端口就头晕。(我这人挺笨的,我妈可以证明)所以我就再比较一下他们。我们通常上网浏览、发邮件等会同时开几个软端口,他们都是通过RJ45这一个硬端口和外界通信的,也就是说,一个硬端口中可以同时通过几个软端口中的通信数据。体会一下吧。什么,还不懂?!你可以到一边凉快……

顺便说一句,应用程序都必须建立通信端口吗?不一定。比如有些游戏(也是一种应用程序)有单机版和网络版的,单机版就不一定建立通信端口(如果能更新就要建立),网络版一定会建立。以后你就知道单机版和网络版的含义和区别了吧。

端口问题说了半天,也许你已经……,我要说的,正是这些端口构成NAT的基础,使内网的多台电脑能够共享一个公址Public IP同时上网。理解上面的内容,下面就说明NAT工作原理——本篇重点!

 

类似的,我们局域网中的计算机B要访问外网,过程和上相似,NAT服务器会提供另外一个未用的端口给局域网中的计算机B。只要NAT服务器能提供不同的端口(NAT服务器可提供上万个端口),就可以让内网计算机和外网通讯(俗称上网),

并且能让数台内网计算机互不影响地同时上网。

转载:https://blog.51cto.com/20100823/401704

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值