我們知道,一台主機想要和其他主機通信,必須要有IP位址。那麼,這個IP位址是怎麼來的呢?和MAC位址不同的是,當你買了一台筆記型電腦時,MAC位址就儲存在網路卡的唯讀記憶體裡,但IP位址是沒有的。所以,IP位址要靠你自己去設定。但自己設定需要了解IP位址的知識,需要設定IP位址、子網路遮罩以及網關位址等。所以,一般用戶可能不會去設定IP。絕大部分情況都是使用了動態主機設定協定DHCP去自動取得IP位址等資訊。
DHCP的工作流程有四個步驟,分別是
DHCP discover:新主機發送廣播包,說自己需要分配一個IP
DHCP offer:dhcp server收到了請求,發送一個廣播包,告訴新主機被分配的ip等資訊。
DHCP request:新主機收到dhcp server的訊息,知道自己有了新ip。傳送廣播包,告訴dhcp server,自己知道了新分配的ip。
DHCP ack:廣播一個訊息包,告訴這個網路裡的其他主機有新朋友加入了。
DHCP DISCOVE
#當一台新主機(MAC位址是00:0b:82:01:fc: 42)剛加入到一個網路時,這時候它是沒有IP位址的,所以它需要去發送一個廣播包,讓這個網路的管理員DHCP SERVER收到封包(dhcp server是專門用來分配ip和管理ip的)。廣播包格式如下圖
這裡補充一個知識點:255.255.255.255是一個特殊的ip位址,做廣播用途。但它廣播的範圍是有限了,傳播到了網關就會停止傳播。
DHCP OFFER
當dhcp server收到Boot Request時,就知道有新來的主機需要分配IP了,這時候dhcp server也傳送一個廣播包(因為新來的主機還沒有分配到IP),裡面的資訊是分配給新來主機的IP、子網路遮罩、租期等資訊。
DHCP REQUEST
#新主機收到了來自dhcp server的訊息,知道了自己被分配到的IP,但這個時候,還不能用,必須告訴dhcp server,我已經收到ip位址了。所以,還是要發廣播包告訴dhcp server。
DHCP ACK
#當dhcp server收到boot request訊息後,廣播回傳給客戶機器一個DHCP ACK 訊息包,表示已經接受客戶機的選擇,並將此IP 位址的合法租用資訊和其他的設定資訊放入該廣播包,發給客戶機,歡迎它加入網路大家庭。
至此,新主機有了自己的IP位址,之後傳送封包都會帶上自己的IP了。
以上是詳解DHCP協定——IP是怎麼來的的詳細內容。更多資訊請關注PHP中文網其他相關文章!