为什么咱们家里的IP都是192.168最初的?

本文为社区首发签约文章,14天内制止转载,14天后未获授权制止转载,侵权必究!

是的,还是我小白,什么技能博主,老情感博主了。
来讲个故事。
资深老舔狗小张今日很振奋,说什么也要请咱们喝奶茶
由于他说他感觉要跟喜爱的女生小吕修成正果了。
一问为什么。
他耳朵都红了,说”我觉得小吕在暗示我了,她说她喜爱看阿凡达,正好我长得就像阿凡达”。

听了让人蹙眉。
他继续说:”她说她喜爱射手座,正好我便是”
我挠挠头:”行,别说了,懂了。她住上海,你也住上海,你两算是同居了”
他愣了一会,看了看我:”别说这种舔狗话,但你说的其实有点道理,上次她让我帮她修电脑,我发现她家的ip是192.168.xx.xx,巧了,我家的也是,我怀疑咱们住的很近”。

很感动。

我乃至没敢告知他,我家里的IP也是192.168最初的,我猜你家的也是,就现在正在看这篇文章的你。

但问题就来了,为什么咱们的IP都是192.168.xx.xx?

咱们今日来聊下这个论题。

IP地址是什么

咱们知道,网络通讯的实质便是收发数据包。假如说收发数据包就跟收发快递相同。那IP地址就类似于快递上填的收件地址和发件地址相同,有了它,路由器就能够开端充任快递员的人物,在这个纷繁复杂的网络世界里找到该由谁来接纳这个数据包。

收发数据就像收发快递

由于咱们现在主流的还是IPV4地址,所以默认以IPV4为例进行讲解。

这个IP大约长这样。

IPv4地址

在控制台里执行ifconfig 就能看到。inet 边上的 192.168.31.170 便是IP地址。

$ ifconfig
en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500  
	options=400<CHANNEL_IO>  
	ether 88:36:3d:33:a0:15  
	inet6 fe70::1009:aabf:ecc6:2d10%en0 prefixlen 64 secured scopeid 0x6  
	inet 192.168.31.170 netmask 0xffffff00 broadcast 192.168.31.255  
	nd6 options=201<PERFORMNUD,DAD>  
	media: autoselect  
	status: active  

说白了,它便是个特别点的编号,用于在互联网中唯一定位到某台机子。

为了表明这个编号,IP地址总共分为4个字节,一个字节8位,共32位,能用来表明最多 2 ^32,也便是 42亿个地址。

貌似。。。有点少?

2021年全球就有78亿,今年更是突破了80亿,也便是说人均一个IP都做不到。

当前全球人口数

为此很多年前,就在说IPV4地址不够用,要耗尽了,所以才会有后来的IPV6地址。

IPv6用了更多的字节数,因此能表明更多的地址。大约长这样。

IPv6地址

是不是很陌生,感觉没怎样见过。

这就对了。

咱们有没有发现,用了这么多年,大部分人其实还在用IPV4地址,不是说要耗尽了吗?

为什么咱们还一向在用IPV4?

先别急,咱们再聊个前置知识点,IP地址的分类

IP地址的分类

为了更好的办理这42亿个IP地址的用途。咱们应该也在教科书上看过这样一张IP分类的图。

IP地址的分类

大约的意思是32位地址里,最初为0的,那便是A类地址。最初为10的,便是B类,最初为110的,便是C类。在这之后,把剩下的字节数拆成两段,一段表明网络号,另一短表明主机号

网络号和主机号的联系,就像是某个停车场编号和停车位号的联系。一个城市里有许多停车场,而停车场里又有许多个停车位。每个停车位能够停一辆车,这儿的一辆车,其实便是一台电脑(主机)。

大型停车场少,可是能停的车巨多,对应A类地址的网络号少,可是主机号多。

小型停车场到处都是,可是一般能停的车就少,对应C类地址的网络号多,但主机号少。

大佬们一开端这么区分网络,其实也是为了方便办理,比方A类地址,是给大型组织机构用的,主机地址的位数高达1600w+,C类地址是给小公司用的,主机号只需200+

这个距离就有点悬殊了,放在今日就不太合理了,我开个网吧可能都不止200台机子对吧,用C类嫌主机号少,用A类又嫌主机号太多。因此现在这套分类机制其实现已很少用了。

取而代之的是计划是,将所谓的ABC分类直接撤销,只保存网络号和主机号,并且网络号的位数也不像曾经约束的那么死,用一个斜杠告知用户多少位是网络号,其他的都是主机号。比方 172.20.61.69/20,那网络号的位数便是20位,主机号的位数是32-20=12位,能放4096台机子,很灵活,很够用。

1668126898773

这便是,所谓的CIDR,(Classless Inter-Domain Routing, 无类别域间路由)。

IP地址不够用了吗?

但不管你怎样去分类,在32位下的约束下,你就算玩得再花,只需将A类+B类+C类+X类加起来,IP的个数也最多还是42亿个。还是不够用。

那既然加法不可,那咱们就用乘法

啥意思?

42亿这个数字对咱们来说太大了,为了方便了解,咱们改成6个IP

假设将6拆成4+2,再让4乘以2,那成果8必定大于6。

一开端,咱们了解的网络世界只需一层,每人一个IP,那就只需6个人能上网。

相加只能让6人上网

现在咱们将网络分红两层。像下面这样。

相乘能让8人上网

每2个人构成一个”小网络“,对外共用一个IP,而内部每个人的IP都不相同,4个小网络共同构成一个”大网络“。比方小明的电脑是1号网络下的6号机子,小红的电脑是2号网络下的6号机子。这样也能做到唯一标识某台机子的效果。

像上面这样,每个2人构成的小网络,就叫做局域网,也便是所谓的内网,用的IP(上面的5,6)也叫私有IP内网IP,而上面说到的”大网络”,则是广域网,用的IP则被称为公有IP公网IP

经过这种方法,本来只能让6人上网,现在却能让8人一同上网。这还是IP只需6个的情况下,假如让数字变回42亿,那就能支撑远大于42亿的机子上网了。

公有和私有IP的概念

按照这样的思路,回到上面的ABC类IP地址,大佬们也将它们分红了私有和公有两部分

rfc1918文档中定义了私有地址的规模。它们不会呈现在广域网中,只会呈现在局域网内。

* A类地址:10.0.0.0--10.255.255.255
* B类地址:172.16.0.0--172.31.255.255  
* C类地址:192.168.0.0--192.168.255.255  

这时分,你再看看C类里的私有地址规模,眼熟不?

192.168.xx.xx便是这网段内的其中一个IP地址。这个规模里大约有6w+个主机号,什么家庭条件能用得完?

所以,就变成了一条街或许一个小区,又或许小区内的几幢楼共用一个公网IP,而内部就用192.168.xx.xx这样的内网IP。所以只需你在家,大约率会发现你的IP地址是C类的192.168.xx.xx

几幢楼共用一个公网IP

但其实只需你想,A类和B类的私有地址也是能够用在局域网里的。

你到了公司里执行下ifconfig命令,你很可能会发现你的局域网IP就不是192.168最初的了, 而是172或许10最初的。

这是由于在公司内网里,需求的IP数量会更大,172和10最初的IP能表明的主机更多,比方10最初的能表明1600w+个。

就不说别的,光A类地址,只拿了个10最初的网络号出来当内网IP就能表明1600w+个主机号,其他的100+个A类网络号都拿来当公网地址。按上面说到算法去进行个相乘,公网IP数 * 内网IP数 = (100+ * 1600w) * 1600w,你也甭管我算的对不对,横竖便是能提供给很多设备运用,更别说还有B类和C类的还没算呢。

并且上面只考虑了一层局域网,其实局域网内还能再分红多层,局域网内再嵌套局域网。就像下面这样,这样能用的IP数量就更多了。

局域网内还有局域网

所以说,IP地址尽管不多,但其实彻底够用,这也是咱们一向以来迟迟不切换成IPv6的原因。够用,能跑,为什么要换?

聊到这儿,其实就回答了文章标题的问题,为什么咱们的IP都是192.168最初的,是由于IPv4地址有限,为了有用利用这些有限的地址,咱们能够将网络分为局域网和广域网,将IP分为了私有IP和公网IP,一个局域网里的N多台机器都能够共用一个广域网IP,然后达到了”做乘法”的效果,大大增加了”可用IP数量”,小区里几幢楼能够共用一个公网IP,且由于设备数量不多,一般选用C类的私有地址,也便是192.168最初的地址。

但问题就来了,怎样知道我的公网IP地址是什么?

查询自己的公网IP地址

在家里的电脑上,经过ifconfig,你能拿到自己的内网IP地址,比方我的便是192.168.31.170

$ ifconfig
en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500  
	options=400<CHANNEL_IO>  
	ether 88:36:3d:33:a0:15  
	inet6 fe70::1009:aabf:ecc6:2d10%en0 prefixlen 64 secured scopeid 0x6  
	inet 192.168.31.170 netmask 0xffffff00 broadcast 192.168.31.255  
	nd6 options=201<PERFORMNUD,DAD>  
	media: autoselect  
	status: active  

但假如你想知道你的公网IP地址的话,该怎样做呢?

有个简单的方法。你直接在baidu上查找”我的IP地址“,就能看到你的公网IP地址。

别去ping这个地址,这个图被我p过。

假如你用的是某里云的机子。你也会发现你的机子既有私有IP地址,也有一个公有IP地址。

某里云能够一同分配公有和私有IP

也是p的图。

当你去ping上面的私有地址172.21.56.59时,你会发现它根本ping不通

$ ping 172.21.56.59
PING 172.21.56.59 (172.21.56.59): 56 data bytes  
Request timeout for icmp_seq 0  
Request timeout for icmp_seq 1  
Request timeout for icmp_seq 2  
^C  
--- 172.21.56.59 ping statistics ---  
4 packets transmitted, 0 packets received, 100.0% packet loss  

而公网地址46.101.121.11却能够ping通。也便是说,在你家的局域网里,你只能经过公网IP地址去拜访这台云服务器。

$ ping 46.101.121.11
PING 46.101.121.11 (46.101.121.11): 56 data bytes  
64 bytes from 46.101.121.11: icmp_seq=0 ttl=48 time=273.481 ms  
64 bytes from 46.101.121.11: icmp_seq=1 ttl=48 time=268.018 ms  
64 bytes from 46.101.121.11: icmp_seq=2 ttl=48 time=266.606 ms  
^C  
--- 46.101.121.11 ping statistics ---  
3 packets transmitted, 3 packets received, 0.0% packet loss  

这时分,用过他们家服务器的人可能会有个疑问。

只需申请一台云服务,某里云就能给你一个公网IP地址,怎样做到的?

这。。。这么富的吗?

其实,某里云跟管IP的机构,租用了的一批IP地址,在你需求的时分,就能付费租给你,不用了也能收回分配给其他人。

并且公网IP地址下面,其实也能够挂多台云服务器,用上文说到的方法,让多台云服务器共用一个IP。

因此不太需求忧虑IP耗尽的问题。

总结

  • IP地址就像快递里填的送件和收件地址,是一串编号,用于在纷繁复杂的网络世界中标识你的位置。
  • IPv4有32位,最多能表明42亿个IP地址。为了更好的办理它们,教科书上呈现过ABC这样的分类方法,并且在ABC类里还分为私有地址和公有地址。但现在盛行运用CIDR的方法进行分类。
  • 为了表明更多主机,咱们能够将网络分为广域网和局域网,广域网用公有地址,局域网运用私有地址。将公有地址乘上私有地址,就能表明远大于42亿台的机子。
  • 家庭网络较小,往往小区内几幢楼构成一个局域网,这几幢楼共用一个公有IP地址。局域网内挑选了C类的私有地址,也便是192.168.xx最初的ip,所以你会发现咱们家里的IP基本上都是192.168最初的。
  • 在baidu上查找”我的IP地址“,就能看到你的公网IP地址。

差不多了,给咱们留个问题吧

上面说到,网络分为广域网和局域网,IP分为公有和私有。一个局域网内一切机子对外运用一个公有IP,对内则运用私有IP。

那么问题来了,公网里不运用私有IP,一个局域网里的私有IP想拜访局域网外的公有IP,必然要做个IP转化,这是在哪里做的转化呢?

私有IP和公有IP在哪进行转化

最后

我在写文章的时分,遇到个小彩蛋。

当我在baidu查找的网页里,用F12打开浏览器的控制台时。

看到了下面这么一段话。发现是个招聘推广文,想想也是,会开控制台看的基本上都是跟程序员沾边的人,这波是精准引流了。

招聘宣传语的确写的很好。

看完我emo了,当年我结业的时分,也想着自己有一天能靠着写代码改动世界。

多年今后,我发现,能改动自己,就现已很了不得了。。。


脱离广东好长时间了,良久没人叫我靓仔了。

咱们能够在评论区里,叫我一靓仔吗?

我这么善良质朴的希望,能被满足吗?

别说了,一同在知识的海洋里呛水吧