• 正文
    • 一、DHCP 是什么?
    • 二、DHCP 的工作流程
    • 三、在嵌入式開發(fā)中使用 DHCP
  • 相關推薦
申請入駐 產業(yè)圖譜

嵌入式設備聯網的 “捷徑” ——DHCP 詳解

04/22 10:40
445
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

大家好,我是雜燴君。之前我們分享的:嵌入式Linux設備開啟無線AP/無線接入點中有用到udhcpd。

udhcpd?是一個輕量級的 DHCP (Dynamic Host Configuration Protocol,動態(tài)主機配置協議服務器實現。通常用于資源受限的嵌入式系統或小型網絡環(huán)境中。

它是 Universal DHCP Daemon 的縮寫,旨在為設備提供基本的 DHCP 服務,具有占用資源少、配置簡單等特點。

本篇文章我們來分享DHCP的相關知識。

一、DHCP 是什么?

簡單來說,DHCP 就像網絡世界里的 “貼心管家”。

在一個復雜的網絡環(huán)境中,比如智能家居系統,有大量設備需要接入網絡。每個設備要正常聯網,都得有個獨一無二的 IP 地址,就好比每棟房子都要有唯一的門牌號,這樣數據才能準確送達。

DHCP 的職責,就是自動給這些設備分配 IP 地址,同時提供子網掩碼、默認網關、DNS 服務器地址等關鍵網絡配置信息,讓設備能迅速、無誤地接入網絡,無需人工干預。減少人為錯誤,還能靈活應對設備移動、網絡擴展等變化。

二、DHCP 的工作流程

DHCP 的工作流程可分為四個關鍵階段:發(fā)現(Discover)、提供(Offer)、請求(Request)確認(Ack)。

假設智能部署了大量嵌入式設備,用于生產監(jiān)控、設備控制等?,F在,新一批智能傳感器到貨,需要接入工廠的局域網。工廠網絡中有一臺 DHCP 服務器,負責為所有設備分配網絡配置。

1. 發(fā)現階段(Discover)

當新的智能傳感器首次接入工廠網絡,它對網絡環(huán)境一無所知,不知道 DHCP 服務器在哪。

于是,傳感器會在網絡中發(fā)送一個特殊的廣播包,這個包就像在大聲呼喊:“有沒有 DHCP 服務器呀?我需要上網,請給我分配網絡配置!”

廣播包的目的 IP 地址是 255.255.255.255,這意味著網絡中的所有設備都能收到,但只有 DHCP 服務器會響應。

2. 提供階段(Offer)

工廠網絡中的 DHCP 服務器收到傳感器的 Discover 包后,會從預先設定的 IP 地址池中挑選一個尚未分配的 IP 地址,然后向傳感器發(fā)送一個 Offer 包。

這個 Offer 包就像 DHCP 服務器在回應:“我這兒有個 IP 地址,給你用吧,還有配套的網絡配置信息。”

Offer 包中除了分配的 IP 地址,還包含子網掩碼、默認網關、DNS 服務器地址等。同時,DHCP 服務器會在內部記錄中標記這個 IP 地址已預分配給該傳感器。

3. 請求階段(Request)

智能傳感器可能會收到多個 DHCP 服務器的 Offer 包(雖然在工廠這種單一網絡環(huán)境中不太常見,但在復雜網絡中可能發(fā)生)。

不管收到幾個,傳感器只會選擇其中一個 Offer 包,并向對應的 DHCP 服務器發(fā)送一個 Request 包,意思是:“我就要你給的這個 IP 地址啦!” 這個 Request 包同樣是廣播包,目的是通知網絡中的其他 DHCP 服務器,自己已選定 IP 地址,其他服務器可收回它們提供的地址。

4. 確認階段(Ack)

DHCP 服務器收到傳感器的 Request 包后,會發(fā)送一個 Ack 包給傳感器,相當于回應:“好的,這個 IP 地址歸你用了,配置信息確認無誤?!盇ck 包再次包含完整的網絡配置信息,確認傳感器可使用該 IP 地址。此時,傳感器成功獲取 IP 地址和其他配置,能正常接入工廠網絡,開始數據采集和傳輸工作。

三、在嵌入式開發(fā)中使用 DHCP

在基于 Linux 的嵌入式開發(fā)中,使用 DHCP 同樣能極大簡化設備的網絡配置流程。我們可以通過udhcpd來實現 DHCP 功能。

udhcpd的配置文件可參考udhcpd源碼下的udhcpd.conf:

我們只保留如下內容:

# The start?and?end of the IP lease block
start ? ? ? ? ??192.168.3.2
end ? ? ? ? ? ??192.168.3.254

# The interface that udhcpd will use
interface ? ? ? wlan0

opt ? ? dns ? ??114.114.114.114
option ?subnet ?255.255.255.0
opt ? ? router ?192.168.3.1
option ?domain ?local
option ?lease ??864000? ? ?#?10?days of seconds

該文件主要配置了:

    所能分配的IP地址的范圍為:192.168.3.2~192.168.3.254網卡接口:wlan0網關地址:192.168.3.1

相關推薦

登錄即可解鎖
  • 海量技術文章
  • 設計資源下載
  • 產業(yè)鏈客戶資源
  • 寫文章/發(fā)需求
立即登錄

本公眾號專注于嵌入式技術,包括但不限于C/C++、嵌入式、物聯網、Linux等編程學習筆記,同時,公眾號內包含大量的學習資源。歡迎關注,一同交流學習,共同進步!