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年資深網路工程師,更多網工提升乾貨,請關注公眾號:網路工程師俱樂部