来源丨经授权转自 小白debug(ID:xiaobaidebug) 来讲个故事。 小张今天很兴奋,说什么也要请大家喝奶茶。 因为他说他感觉要跟喜欢的女生小吕修成正果了。 一问为什么。 他耳朵都红了,说'我觉得小吕在暗示我了,她说她喜欢看阿凡达,正好我长得就像阿凡达'。 听了让人皱眉。 他继续说:'她说她喜欢射手座,正好我就是' 我挠挠头:'行,别说了,懂了。她住上海,你也住上海,你两算是同居了” 他愣了一会,看了看我:'别说这种话,但你说的其实有点道理,上次她让我帮她修电脑,我发现她家的ip是192.168.xx.xx,巧了,我家的也是,我怀疑我们住的很近'。 很感动。 我甚至没敢告诉他,我家里的IP也是192.168开头的,我猜你家的也是,就现在正在看这篇文章的你。 但问题就来了,为什么大家的IP都是192.168.xx.xx? 我们今天来聊下这个话题。 我们知道,网络通讯的本质就是收发数据包。如果说收发数据包就跟收发快递一样。那IP地址就类似于快递上填的收件地址和发件地址一样,有了它,路由器就可以开始充当快递员的角色,在这个纷繁复杂的网络世界里找到该由谁来接收这个数据包。 ![]()
这个IP大概长这样。 ![]() 在控制台里执行 $ ifconfig 说白了,它就是个特殊点的编号,用于在互联网中唯一定位到某台机子。 为了表示这个编号,IP地址一共分为 貌似。。。有点少? 2021年全球就有 ![]() 为此好多年前,就在说 IPv6用了更多的字节数,因此能表示更多的地址。大概长这样。 ![]() 是不是很陌生,感觉没怎么见过。 这就对了。 大家有没有发现,用了这么多年,大部分人其实还在用IPV4地址,不是说要耗尽了吗? 为什么大家还一直在用IPV4? 先别急,我们再聊个前置知识点,IP地址的分类。 IP地址的分类 为了更好的管理这42亿个IP地址的用途。我们应该也在教科书上看过这样一张IP分类的图。 大概的意思是 网络号和主机号的关系,就像是某个停车场编号和停车位号的关系。一个城市里有很多停车场,而停车场里又有很多个停车位。每个停车位可以停一辆车,这里的一辆车,其实就是一台电脑(主机)。 大型停车场少,但是能停的车巨多,对应A类地址的网络号少,但是主机号多。 小型停车场到处都是,但是一般能停的车就少,对应C类地址的网络号多,但主机号少。 大佬们一开始这么划分网络,其实也是为了方便管理,比如A类地址,是给大型组织机构用的,主机地址的位数高达 这个差距就有点悬殊了,放在今天就不太合理了,我开个网吧可能都不止200台机子对吧,用C类嫌主机号少,用A类又嫌主机号太多。因此现在这套分类机制其实已经很少用了。 取而代之的是方案是,将所谓的ABC分类直接取消,只保留网络号和主机号,并且网络号的位数也不像以前限制的那么死,用一个斜杠告诉用户多少位是网络号,其余的都是主机号。比如 ![]() 这就是,所谓的CIDR,(Classless Inter-Domain Routing, 无类别域间路由)。 IP地址不够用了吗? 那既然加法不行,那我们就用乘法。但不管你怎么去分类,在32位下的限制下,你就算玩得再花,只要将 啥意思?
假设将6拆成 一开始,我们理解的网络世界只有一层,每人一个IP,那就只有6个人能上网。 ![]() 现在我们将网络分成两层。像下面这样。 ![]() 每2个人构成一个'小网络',对外共用一个IP,而内部每个人的IP都不一样,4个小网络共同构成一个'大网络'。比如小明的电脑是1号网络下的6号机子,小红的电脑是2号网络下的6号机子。这样也能做到唯一标识某台机子的效果。 像上面这样,每个2人构成的小网络,就叫做局域网,也就是所谓的内网,用的IP(上面的5,6)也叫私有IP或内网IP,而上面提到的'大网络',则是广域网,用的IP则被称为公有IP或公网IP。 通过这种方式,原本只能让6人上网,现在却能让8人同时上网。这还是IP只有6个的情况下,如果让数字变回42亿,那就能支持远大于42亿的机子上网了。 ![]() 按照这样的思路,回到上面的ABC类IP地址,大佬们也将它们分成了私有和公有两部分。 在
这时候,你再看看C类里的私有地址范围,眼熟不?
于是,就变成了一条街或者一个小区,又或者小区内的几幢楼共用一个公网IP,而内部就用 ![]() 但其实只要你想,A类和B类的私有地址也是可以用在局域网里的。 你到了公司里执行下 这是因为在公司内网里,需要的IP数量会更大,172和10开头的IP能表示的主机更多,比如10开头的能表示1600w+个。 就不说别的,光A类地址,只拿了个10开头的网络号出来当内网IP就能表示1600w+个主机号,其余的100+个A类网络号都拿来当公网地址。按上面提到算法去进行个相乘, 而且上面只考虑了一层局域网,其实局域网内还能再分成多层,局域网内再嵌套局域网。就像下面这样,这样能用的IP数量就更多了。 ![]() 所以说,IP地址虽然不多,但其实完全够用,这也是我们一直以来迟迟不切换成IPv6的原因。够用,能跑,为什么要换? 聊到这里,其实就回答了文章标题的问题,为什么大家的IP都是192.168开头的,是因为IPv4地址有限,为了有效利用这些有限的地址,我们可以将网络分为局域网和广域网,将IP分为了私有IP和公网IP,一个局域网里的N多台机器都可以共用一个广域网IP,从而达到了'做乘法'的效果,大大增加了'可用IP数量',小区里几幢楼可以共用一个公网IP,且因为设备数量不多,一般选用C类的私有地址,也就是 但问题就来了,怎么知道我的公网IP地址是什么? 查询自己的公网IP地址 在家里的电脑上,通过 $ ifconfig 但如果你想知道你的公网IP地址的话,该怎么做呢? 有个简单的方法。你直接在 ![]()
如果你用的是某里云的机子。你也会发现你的机子既有私有IP地址,也有一个公有IP地址。 ![]()
当你去ping上面的私有地址
而公网地址 $ ping 46.101.121.11 这时候,用过他们家服务器的人可能会有个疑问。 只要申请一台云服务,某里云就能给你一个公网IP地址,怎么做到的? 这。。。这么富的吗? 其实,某里云跟管IP的机构,租用了的一批IP地址,在你需要的时候,就能付费租给你,不用了也能回收分配给其他人。 而且公网IP地址下面,其实也可以挂多台云服务器,用上文提到的方式,让多台云服务器共用一个IP。 因此不太需要担心IP耗尽的问题。
差不多了,给大家留个问题吧 上面提到,网络分为广域网和局域网,IP分为公有和私有。一个局域网内所有机子对外使用一个公有IP,对内则使用私有IP。 那么问题来了,公网里不使用私有IP,一个局域网里的私有IP想访问局域网外的公有IP,必然要做个IP转换,这是在哪里做的转换呢? ![]() 2、暴雪国服正式停服,与网易14年合作结束!数百万玩家纷纷祭奠,再见青春 ![]() |
|