1. 程式人生 > >什麼?你不知道0.0.0.0和255.255.255.255這兩個地址是幹嘛的?

什麼?你不知道0.0.0.0和255.255.255.255這兩個地址是幹嘛的?

在我們電腦的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】送你一份我精選的電子書單