全球 IP(外网)和私有 IP(内网)

全球 IP(外网)和私有 IP(内网)




转载于:
谈谈NAT:什么?全球IP和私有IP是什么鬼?-帅地玩编程-公众号
仅用作个人学习记录,请关注原作者。


全球 IP(外网)和私有 IP(内网)概念

可能你会经常听到全球 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 访问了它,百度只知道是网关访问了它。

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值