在我们电脑的ip配置里,有静态配置 ip 地址和动态获取 ip 地址两种选择。
我敢保证绝大部分人使用的都是动态获取 ip 地址,因为如果自己静态配置的话,容易出错,例如你不小心配置了一个已经被其他人在使用的 ip 地址。所以我们一般选择的是动态获取 ip 地址。注意,这里的 ip 地址不仅仅是指主机的唯一标识,还指DNS、网关等 ip 地址。
对于动态获取 ip 地址,如果你的电脑关机重启了之后,此时可以说你的电脑如同一个初生的婴儿,啥 ip 也没有。这个时候最重要的事情就是让自己获得一个 ip ,好让自己可以去冲浪,可是问题来了,你该给谁发送报文以此来获取 ip 呢?
有人可以会说,我可以给 DHCP 服务器发送一个报文来动态获取 ip,然而问题是,你知道 DHCP 服务器的 ip 是多少吗?你不知道,你是一个刚出生的婴儿,你啥也不知道。
居然我们不知道该找谁来给我们分配一个 ip 地址,那就只能暴力一点,发个广播吧,告诉所有人,我急需一个 ip 地址。于是,我们发了一个广播通知了所有人。
目的 ip 填 255.255.255.255 代表这是一个广播报文,会发给局域网内的所有主机。其他主机收到广播报文之后,会进行判断这个广播报文是否是发给自己的,如果是发给自己的,则进行处理,否则就把这个广播报文丢弃。
这个时候, DHCP 服务器终于收到了我的广播,这个时候问题来了,DHCP服务器是如何知道我是来请求一个 ip 的呢?
为了解决这个问题,我们需要在报文里做一个标记,告诉 DHCP服务器我是来请求报文的,于是,啥也没有的我,在报文的源地址里填了 0.0.0.0。当DHCP服务器看到报文的源地址是 0.0.0.0时, 就知道我还没有被分配过 ip,急需一个ip来去冲浪了。
于是,DHCP服务器赶紧找了一个没有被使用ip地址发给我,并且把这个 ip 地址标记为 已使用的状态。
有人可能会说,我没有 ip 地址,DHCP服务器怎么发送给我呢?好吧,我没有 ip 地址,但我有全球唯一的 Mac地址啊。这样,我就能顺利着拿到我的 各种 ip参数了。
总结下:
255.255.255.255这个地址一般用来广播的时候使用,而0.0.0.0这个地址可以代表这是一个还没有分配 ip 的主机。
不过0.0.0.0还有其他作用,代表主机还没有分配ip地址只是其中的一个用处。例如:充当默认路由来使用,当一个路由器要发送路由表中无法查询的包时,如果设置了全零网络的路由时,我们就可以把这个包丢给全零网络的路由。
作者介绍在校生一枚,目前维护公众号 【苦逼的码农】,欢迎你关注一起学习,后台回复【666】送你一份我精选的电子书单。