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