0.0.0.0和255.255.255.255这两个IP地址到底有啥用?
按我一贯的答题思路,写的回答就必须得让门外汉都能看明白为宗旨。
啥思路呢?
你看啊,这俩地址实际上是归属于IP地址,所以得先给小白讲讲IP地址是个啥;
其次,这俩地址为啥会被人提出来问,就要涉及到DHCP这个东西;
最后,弄懂前面两个大前提,我们再回归到问题本身:这俩IP地址到底有啥用呢。
老规矩,咱们还是分4点来回答。
1、IP地址是啥
之前老杨的科普文章里也介绍过,有兴趣的伙伴可点开链接查看详细内容:网工必看!如何形象生动的解释IP地址、子网掩码和网关?
只要你使用具有上网功能的电子设备,就都有IP地址。每个人都有身份证,所以每个上网设备也都有IP地址。
再比如,我们京东上买完东西,要确认下单还要填写上自己的地址,快递才能从【商家那里】送到【我们这里】,IP地址同理。
你想要收到女神给你发的微信,就需要女神的IP地址和你的IP地址,这样信息才可以在你俩之间传输。
如果你俩的IP地址不明,那女神的消息就可能发到他男神那里,你发给女神的消息可能就会送到如花那里……这就不太好了吧?
所以在网上冲浪,IP地址是比女神还要重要的存在。
那又有人要问了,“那个mac地址又是什么鬼啊?”
我们的每台上网冲浪看女神的设备里,都包含了mac地址,的确,只用mac地址就可以识别设备了。但这个地址只能用在小型局域网的交流里,你想要去看诗和远方,登上知乎和b站看大神演讲和美女跳舞,还是得安排IP地址出战。
那这个IP地址是电脑一出厂就有的?还是后来有人加上去的?要是重复了咋办?全世界有多少电脑啊,这得乱了不是吗?
所以,我们接下来就得讲讲DHCP这玩意儿了,弄懂它,你就明白IP地址到底为啥如此井然有序。
2、DHCP又是个啥?
DHCP(Dynamic Host Configuration Protocol)。是动态主机配置协议,主要是用来集中对用户的IP地址进行动态管理和配置的技术。
通过DHCP,在你公司范围内的网络的任意一台或者n台设备,想要设定不同且有效的IP地址,都会变得很简单便捷。
那有人又要问了,干嘛要通过DHCP,我手动设置IP地址不行吗?没啥差别啊?
这两者的区别就类似于你算777*777这个结果,一个按计算机直接得出,一个要用笔算去算出……哪个更快更方便?
所以啊,DHCP允许计算机动态地获取IP地址,而不是静态为每台主机指定地址。而且,DHCP能够分配其他配置参数。
比如,客户端的启动配置文件,使客户端仅用一个消息就获取它所需要的所有配置信息。
DHCP还有两种分配IP地址的机制,有兴趣的小伙伴可以多搜索一些资料来看看,这里稍微讲两句。
动态分配机制:是指通过DHCP为主机分配一个有使用期限(这个使用期限通常叫做租期)的IP地址。这种分配机制适用于主机需要临时接入网络或者空闲地址数小于网络主机总数且主机不需要永久连接网络的场景。
静态分配机制:是指网络管理员通过DHCP为指定的主机分配固定的IP地址。相比手工静态配置IP地址,通过DHCP方式静态分配机制避免人工配置发生错误,方便管理员统一维护管理。
所以,正是因为DHCP容易配置也容易部署,还能集中管理,这样一来,就能够把操作和维护成本降到最低,因此广为使用。
小白那看到这里,是不是觉得有点摸不着头脑?
我先弄懂了IP地址是什么,也弄懂了DHCP是一个很好用的分配地址的技术,但是……
这玩意儿和0.0.0.0和255.255.255.255有什么直接联系?
3、0.0.0.0这个IP地址有啥用?
先别急,关于这0和255的数字,我们先弄清楚是哪里来的:
我们知道,IP地址(这里主要指IPv4地址)是由一个32位二进制数组成,通常分割为4个字节,形式就是点分十进制。IP地址段数字之间通常是0-255之间的十进制整数。最小是0,最大是255。
那么,0.0.0.0这个IP地址,你觉得它会是什么呢?
按常理推断,大概就是最初的、最小的、未知的这种概念对吧?反正0这个数字,就有种唯一的、不可替代的感觉。
这样想其实也是八九不离十了,很聪明,给自己一次再找女神聊天的机会吧(手动狗头)。
实际上,0.0.0.0这个IP地址是一个不可路由的IPv4地址。它也定义为“本主机、此网络”的保留专用地址。
虽然0.0.0.0在0-255之间,理论上也是有效的地址语法,但是,使用它作为源IP地址的客户端设备,是无法在网络上进行通信的。
你可以理解为,考试时遇到的所有题目中的主角都叫小明(0.0.0.0),其实每个主角之间肯定是有不同的、具体的身份的,但是因为出题人暂时没那么闲工夫给他们每个人具体的定名字,所以他们都先叫“小明”。
等有需要的时候,再把这些小明们挑出来,有选择的进行“起名仪式”。
所以,当你理解了上述的小明,你就能理解0.0.0.0的其中一个用途到底是啥:
在系统初始化期间,设备在分配可用的IP地址之前,通常都采用0.0.0.0这个地址。
除此之外,0.0.0.0的其他用途还有很多,比如作为默认的静态路由,也可以作为局域网内IPv4广播中的源地址,还可以指未连接到IP网络,以及DHCP错误等原因而出现。
4、255.255.255.255这个IP地址和0.0.0.0又有啥关系?
如果一个IP地址的二进制数都是1,那你就会得到255.255.255.255这个IP地址。
所以,255.255.255.255作为IPv4中最大的数字,它就被定义为“整个互联网”。如果0.0.0.0代表啥都不是,255.255.255.255就代表我啥都有。
255.255.255.255作为特殊的IP地址,属于有线广播。它不被路由,反而会被送到相同物理网络段上的所有主机中去,所以也被很多人称为“广播”功能。
啥东西找不到了,咱们就通过“广播”嚎一嗓子,是不是最快找到东西的办法?
DHCP给设备配置IP地址也是这么个道理。
所以,我们现在就能绕回来说DHCP和0.0.0.0还有255.255.255.255这三者的关系了。这样,你也就明白这俩IP地址最简单的用途。
假设:我们要为一台设备接入网络,此刻它的IP地址是0.0.0.0,按理说,使用它作为源IP地址的客户端设备,是无法在网络上进行通信的。
我们都知道,设备上网必须有个IP地址,这个IP地址可以自动获得或者手动设置,而利用DHCP进行动态分配就是依据DHCP协议去找DHCP服务器分配。
此时,DHCP就要开始自动为这台设备分配可用的IP地址了,分三步走:
(1)发现阶段
DHCP客户端现在想要快速给这台设备找个可用的IP地址,所以它利用了255.255.255.255的广播功能,通过它,把自己想要给它找IP的愿望传达了出去,“求问哪里有可用IP,速来!”
(2)提供阶段
在同一网段内的所有DHCP服务器,都会收到DHCP客户端的这个愿望,一个人找变成好多人找,找IP地址的速度大大加快:
“我这有!”“我这也有!”“来我这!”
于是,处于同一网段的地址池就出现了,汇聚在一起,等待DHCP服务器的挑选。
(3)选择&确认阶段
这个选择有个“先来后到”的讲究,如果出现了第二阶段里的好多个选择,那DHCP客户端只会接收第一个和它打招呼的人,选择它提供的IP地址来用。剩下的那些“热心市民”则会散去,等待下一个DHCP客户端的求助。
虽然讲的并不像其他答主那么有趣和形象,但我觉得,按老杨这么一通梳理,你看完一定会更加系统和全面的了解到这个题目的答案。
还想看这种奇葩类比故事的可以看看老杨之前写过的两篇文章:
如何用一个故事讲清路由器和交换机的区别?
如何形象生动的解释IP地址、子网掩码和网关?
有啥想看的技术科普,欢迎评论区告诉我。
原创: 老杨丨8年资深网络工程师,更多网工提升干货,请关注公众号:网络工程师俱乐部