什么是 NAT 网络地址转换协议?

苦逼的码农

共 1870字,需浏览 4分钟

 ·

2021-10-01 23:41

可能你们会经常听到全球 IP(外网)私有 IP(内网),他们的区别是什么呢?今天这篇文章来简单讲讲这到底是怎么回事。

我们都知道,IPv4中的IP地址的数量是有限的,每次把一部分地址分配出去,那么就意味着能够用来分配的IP地址就更少了,而且随着现在手机,电脑等的快速发展,如果每个手机或者电脑都要求一个IP地址,那么显然IP地址是不够用的。

为了解决这个问题,我们可以采取这样的策略:例如对于一个公司来说,每个公司都会有一个属于自己公司的内网(也可以称之为局域网)。

假如我们给这个公司A分配了一个IP=192.168.1.1。我们把这个IP作为这个公司内网的网关吧。

在公司A的内网里面有3台电脑,如果这三台电脑要上网的话,我们需要给他分配一个IP,那么我们一定需要去申请3个IP地址来使用吗?

答否。我们不一定需要去申请3个IP的,在我们这个内网里,我们可以指定自己的规则,例如,我们可以给这三台电脑随便分配三个IP(请注意,这三个IP不是去申请的,而且我自己随意给它分配的)。分别分配电脑A = 192.168.1.2  电脑B = 192.168.1.3 电脑C = 192.168.1.4

假如电脑A想要访问百度,百度的IP我们假设为:172.168.30.3

图片

我们都知道,电脑A的IP是我们虚构的,实际上可能并不存在这样一个IP,如果用电脑A的IP去访问百度,那肯定行不通。

我们也知道,由于百度和电脑A不在一个局域网内,所以A要访问百度,那么必须得经过网关。而网关的这个IP地址,是真实存在的,是可以访问百度的。

为了让 A 可以访问百度,那么我们可以采取这样的方法:让网关去帮助 A 访问,然后百度把结果传递给网关,而网关再把结果传递给 A,这样不就可以解决了?

不过电脑A, B, C都可能拜托网关去帮忙访问百度,而百度返回的结果 的目的IP都是网关的IP=192.168.1.1。那么网关该如何进行区分这结果是A的,B的还是C的呢?

我们去访问百度的时候,不是需要指定一个端口吗?只要我们把 A的IP + 端口 映射成 网关的IP+端口,不就可以唯一确定身份了?

例如A用端口60去访问百度,网关把  A的IP+端口60   映射成   网关的IP+端口80 不就可以了?

百度把结果返回给网关的80端口之后,网关再通过映射表,就可以把结果返回给 A的60端口 了。

如果B也是用60端口去访问百度的话,也是一样,可以把它映射到90端口。

这种方法地址的映射转换,我们也称之为网络地址转换。英文为 Network Address Translation,简称NAT

而像A, B, C这样的IP地址我们也称之为内网IP,即私有IP;而像网关,百度这样的IP我们称之为外网IP,即全球IP。现在知道外网IP和内网IP了吧?

几点需要注意的地方

1、对于全球IP,显然每个IP都是唯一的,而对于私有IP,同一个局域网内,也得是唯一的,但在两个不同的局域网中,是可以有相同的私有IP的。

2、局域网内主机之间的通信,是不需要进行地址转换的,而如果需要访问外网,才需要进行地址转换。

实际上,我们也可以把这种地址转换称之为一种代理。网关就相当于一个代理,把局域网内的主机的一些信息都给隐藏了起来。百度并不知道是主机A访问它,他只知道是网关访问了它。

END

最后,欢迎大家加入帅地的知识星球,星球里有很多热爱学习的小伙伴,一群人一起学习不孤单。

并且你有任何学习上的疑问,帅地都会指导你应该如何学习,根据你的情况为你量身定制,在星球会提供如下服务:

1、【一对一咨询服务】48 小时以内详细回答你的任何问题,包括写作等等,这是知识星球最重要的功能。最近一周就回答了十几个 offer 选择,校招等学习路线问题。

2、【学习攻略】校招这方面比较有经验,帅地会提供完整的学习攻略,小白跟着帅地说的学习就行,这块会在最近出。

3、简历修改,项目等学习资源,offer 收割机嘉宾分享等等。

目前星球是专注于校招,在校生学习指导这块,一定可以让你少走弯路,已经有 490+ 位小伙伴加入,这里还有一些 20 元的优惠卷,如果你信的过帅地,那么欢迎你的加入。


想具体了解可以看这篇文章:我的四年大学


浏览 63
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报