圖解DHCP協(xié)議,搞懂你的電腦/手機如何自動獲取IP的
大家好,我是IT售前工程師Bernie。
本文簡要介紹下,在計算機網(wǎng)絡(luò)中DHCP的技術(shù)原理,歡迎閱讀。
我們知道,無論是手機、電腦、筆記本,還是其他智能終端,只要連上WIFI或者網(wǎng)線,就能夠直接上網(wǎng)。當(dāng)我們查看筆記本的IP信息時,就會顯示當(dāng)前設(shè)備的IP地址、網(wǎng)關(guān)地址、子網(wǎng)掩碼等,這些信息是計算機網(wǎng)絡(luò)中數(shù)據(jù)包中必須的,放在數(shù)據(jù)報頭。
但是,我們并沒有手動的配置上述信息。
設(shè)備的IP是怎么來的呢?
小伙伴們不妨查看下自己的筆記本Internet選項,不出意外的話就會顯示“自動獲得IT地址的默認配置”。其實,這些IP是通過DHCP服務(wù)器下發(fā),自動獲取的。
接下來,我們以簡單辦公場景講一下DHCP服務(wù)的概念和技術(shù)原理。
什么是DHCP?
DHCP的英文全稱是Dynamic Host Configuration Protocol,動態(tài)主機配置協(xié)議。
直白一點講就是:計算機網(wǎng)絡(luò)中,端設(shè)備可以在DHCP服務(wù)器上動態(tài)獲得IP地址、子網(wǎng)掩碼和網(wǎng)關(guān)地址,以便可以在網(wǎng)絡(luò)中標(biāo)注自己的身份,獲得上網(wǎng)的資格。
比如一個局域網(wǎng)中,有一臺pc和一部手機,雙方都連接到路由器。那么,pc和手機都可以從路由器上得到IP地址、網(wǎng)關(guān)地址和子網(wǎng)掩碼。在這里,路由器就是他們的dhcp服務(wù)器。
那么他們是如何獲取IP地址的呢?這里要重點講一下
DHCP服務(wù)原理
第1步:discover
當(dāng)一臺終端設(shè)備,插入網(wǎng)線或者連接WIFI時。在初始化階段,它是沒有IP地址的。那么這時第一個任務(wù)就是通過廣播的形式尋找子網(wǎng)下的dhcp服務(wù)器。
我們知道,在計算機網(wǎng)絡(luò)中任何一條數(shù)據(jù)包都是要包含源IP地址、目的IP地址的。這里就矛盾了,因為pc3發(fā)送廣播消息的目的就是獲取IP地址,它既不知道自己的IP地址應(yīng)該是多少,也不知道dhcp服務(wù)器的地址是多少。
這里往往會給這個數(shù)據(jù)包賦值源IP為0.0.0.0,目的IP為255.255.255.255.
特別說明一點, 0.0.0.0并不是一個真正意義的IP地址,它其實是缺省路由,即:告訴對方我不知自己IP是多少,所以用0.0.0.0代替。
而255.255.255.255也不是一個嚴格意義的IP地址,它是限制廣播地址,即:告訴同一個網(wǎng)段的所有端設(shè)備,這里的設(shè)備都注意啦!255.255.255.255是不能被路由器轉(zhuǎn)發(fā)的,因為它本身并沒有太多意義。
這個廣播消息會被二層交換機發(fā)送到同一個vlan下的所有設(shè)備中,包括pc1、pc2、dhcp1和dhcp2。
第2步:offer
由于pc1和pc2是端設(shè)備,不具備dhcp的功能,他們會自動忽略這個廣播消息,
dhcp server1和dhcp server2接收到IP地址獲取的請求消息時,他們都會分配一個IP地址、網(wǎng)關(guān)地址和掩碼等信息給pc3。
這時候,pc3就會接收到兩套不同的IP信息,他們都可以正常使用。同一網(wǎng)段中有幾個dhcp服務(wù)器,就會分配給pc3幾套IP地址信息。
注意:這里不僅僅包含IP信息,還包含這個IP的使用期限,過了期限就會自動回收或者自動續(xù)期。比如:寬帶路由器的dhcp租用周期最小1min,最大是兩天,默認值為120min。
第3步:request
上面pc3一條廣播得到了2套不一樣的IP信息,顯然它是不能全部霸占的,只能使用1套。于是,pc3會選取其中的一套(一般選擇最先到達的那個)。比如IP1的先到達,pc3就會選擇IP1作為自己的IP地址信息。
這樣就結(jié)束了?
并沒有!
因為dhcp server1并不知道自己提供的IP地址被選中了,同樣,dhcp server2也不知道自己提供的IP地址被淘汰了。
所以需要pc3發(fā)一條廣播消息告知自己的選擇結(jié)果。
有的小伙伴可能會感到奇怪,明明pc3已經(jīng)有了自己的IP了,為何數(shù)據(jù)報中還是用0.0.0.0.這是因為還沒有得到確認,也不能發(fā)送單播告知dhcp server1,其他的dhcp server也要知道的。
第4步:ack
終于到了最后一步,這一步的工作就是確認。
當(dāng)收到pc3的選擇結(jié)果后,dhcp server1會更新自己的路由表和mac 地址映射表,同時也會發(fā)送一條確認消息給pc3。
由于dhcp2之前分配給pc3的IP地址落選了,那么,它將把IP回收,以便在后續(xù)分配給其他的接入設(shè)備。同時,也會更新自己的mac地址表和路由表。
總結(jié)
以上便是計算機網(wǎng)絡(luò)終端設(shè)備獲取DHCP服務(wù)的全過程,整個過程包含4個部分:discover、offer、request和ack。他們是層層遞進、環(huán)環(huán)相扣的關(guān)系。
特別說明:DHCP服務(wù)器分配出去的IP是臨時租用!一般情況下,只要不設(shè)置租用時間為infinite(永久租用),端設(shè)備需要在租期到達50%的時候,給dhcp server發(fā)送request數(shù)據(jù)包更新自己的租用時間。
文章出自:??IT一指禪??,如有轉(zhuǎn)載本文請聯(lián)系【IT一指禪】今日頭條號。