該報文段則被放入在一個具有廣播 IP 目的地址(255.255.255.255) 和源 IP 地址(0.0.0.0) 的 IP 數(shù)據(jù)報中。
該數(shù)據(jù)報則被放置在 MAC 幀中,該幀具有目的地址 FF:FF:FF:FF:FF:FF,將廣播到與交換機連接的所有設(shè)備。
連接在交換機的 DHCP 服務(wù)器收到廣播幀之后,不斷地向上分解得到 IP 數(shù)據(jù)報、UDP 報文段、DHCP 請求報文,之后生成 DHCP ACK 報文,該報文包含以下信息:IP 地址、DNS 服務(wù)器的 IP 地址、默認(rèn)網(wǎng)關(guān)路由器的 IP 地址和子網(wǎng)掩碼。該報文被放入 UDP 報文段中,UDP 報文段有被放入 IP 數(shù)據(jù)報中,最后放入 MAC 幀中。
該幀的目的地址是請求主機的 MAC 地址,因為交換機具有自學(xué)習(xí)能力,之前主機發(fā)送了廣播幀之后就記錄了 MAC 地址到其轉(zhuǎn)發(fā)接口的交換表項,因此現(xiàn)在交換機就可以直接知道應(yīng)該向哪個接口發(fā)送該幀。
主機收到該幀后,不斷分解得到 DHCP 報文。之后就配置它的 IP 地址、子網(wǎng)掩碼和 DNS 服務(wù)器的 IP 地址,并在其 IP 轉(zhuǎn)發(fā)表中安裝默認(rèn)網(wǎng)關(guān)。
2. ARP 解析 MAC 地址
主機通過瀏覽器生成一個 TCP 套接字,套接字向 HTTP 服務(wù)器發(fā)送 HTTP 請求。為了生成該套接字,主機需要知道網(wǎng)站的域名對應(yīng)的 IP 地址。
主機生成一個 DNS 查詢報文,該報文具有 53 號端口,因為 DNS 服務(wù)器的端口號是 53。
該 DNS 查詢報文被放入目的地址為 DNS 服務(wù)器 IP 地址的 IP 數(shù)據(jù)報中。
該 IP 數(shù)據(jù)報被放入一個以太網(wǎng)幀中,該幀將發(fā)送到網(wǎng)關(guān)路由器。
DHCP 過程只知道網(wǎng)關(guān)路由器的 IP 地址,為了獲取網(wǎng)關(guān)路由器的 MAC 地址,需要使用 ARP 協(xié)議。
主機生成一個包含目的地址為網(wǎng)關(guān)路由器 IP 地址的 ARP 查詢報文,將該 ARP查詢報文放入一個具有廣播目的地(FF:FF:FF:FF:FF:FF) 的以太網(wǎng)幀中,并向交換機發(fā)送該以太網(wǎng)幀,交換機將該幀轉(zhuǎn)發(fā)給所有的連接設(shè)備,包括網(wǎng)關(guān)路由器。
網(wǎng)關(guān)路由器接收到該幀后,不斷向上分解得到 ARP 報文,發(fā)現(xiàn)其中的 IP 地址與其接口的 IP 地址匹配,因此就發(fā)送一個 ARP 回答報文,包含了它的 MAC地址,發(fā)回給主機。
3. DNS 解析域名
知道了網(wǎng)關(guān)路由器的 MAC 地址之后,就可以繼續(xù) DNS 的解析過程了。
網(wǎng)關(guān)路由器接收到包含 DNS 查詢報文的以太網(wǎng)幀后,抽取出 IP 數(shù)據(jù)報,并根據(jù)轉(zhuǎn)發(fā)表決定該 IP 數(shù)據(jù)報應(yīng)該轉(zhuǎn)發(fā)的路由器。
因為路由器具有內(nèi)部網(wǎng)關(guān)協(xié)議(RIP、OSPF) 和外部網(wǎng)關(guān)協(xié)議(BGP) 這兩種路由選擇協(xié)議,因此路由表中已經(jīng)配置了網(wǎng)關(guān)路由器到達(dá) DNS 服務(wù)器的路由表項。
到達(dá) DNS 服務(wù)器之后,DNS 服務(wù)器抽取出 DNS 查詢報文,并在 DNS 數(shù)據(jù)庫中查找待解析的域名。
找到 DNS 記錄之后,發(fā)送 DNS 回答報文,將該回答報文放入 UDP 報文段中,然后放入 IP 數(shù)據(jù)報中,通過路由器反向轉(zhuǎn)發(fā)回網(wǎng)關(guān)路由器,并經(jīng)過以太網(wǎng)交換機到達(dá)主機。
4. HTTP 請求頁面
有了 HTTP 服務(wù)器的 IP 地址之后,主機就能夠生成 TCP 套接字,該套接字將用于向 Web 服務(wù)器發(fā)送 HTTP GET 報文。