一、DHCP 配置主机信息
-
假设主机最开始没有 IP 地址以及其它信息,那么就需要先使用 DHCP 来获取。
-
主机生成 DHCP 发现报文。
-
报文向下传递到运输层,封装成 UDP 报文段(目的端口 67,源端口 68)。
-
UDP 报文段向下传递到网络层,封装成 IP 分组。
(源 IP 0.0.0.0,目标 IP 255.255.255.255) -
IP 分组向下传递到数据链路层,封装成 MAC 帧。
(目标 MAC FF:FF:FF:FF:FF:FF,即广播) -
MAC 帧广播到与交换机连接的所有设备。
-
连接在交换机的 DHCP 服务器收到广播帧之后,不断向上分解得到发现报文,之后生成 DHCP 提供报文。提供报文包含以下信息:IP 地址、DNS 服务器的 IP 地址、默认网关路由器的 IP 地址和子网掩码。该报文不断向下封装成 MAC 帧。
-
该帧的目的地址是请求主机的 MAC 地址,因为交换机具有自学习能力,之前主机发送了广播帧之后就记录了 MAC 地址到其转发接口的交换表项,因此现在交换机就可以直接知道应该向哪个接口发送该帧。
-
主机收到该帧后,不断分解得到 DHCP 提供报文。之后就配置它的 IP 地址、子网掩码和 DNS 服务器的 IP 地址,并在其 IP 转发表中安装默认网关。
二、ARP 解析 IP
-
DHCP 只是获取默认网关的 IP 地址,但是报文最终会封装成 MAC 帧,所以必须知道默认网关的 MAC 地址。
-
主机生成一个 ARP 请求分组。(目标 IP 是网关 IP)
-
ARP 请求分组向下传输的数据链路层,封装成 MAC 帧。
(目标 MAC 是 FF:FF:FF:FF:FF:FF) -
交换机将该帧转发给所有的连接设备,包括网关。
-
网关接收到该帧后,向上分解得到 ARP 分组,之后生成一个 ARP 响应分组,向下封装成 MAC 帧,内含网关 MAC 地址,发回给主机。
三、DNS 解析域名
-
主机根据 URL 生成一个 DNS 查询报文,向下封装成 UDP 报文段,目标端口号为 53。
-
UDP 报文段向下封装成 IP 分组,目的 IP 为 DNS 服务器 IP 地址。
(DHCP 中已获取 DNS 服务器的 IP 地址)。 -
该 IP 分组向下封装成 MAC 帧,然后发到网关。
(ARP 解析 IP 处已获取网关 MAC) -
网关收到 MAC 帧后,向上分解得到 IP 分组,然后根据转发表决定该 IP 数据报应该转发的路由器。
-
MAC 帧到达 DNS 服务器之后,向上分解得到 DNS 查询报文,然后在 DNS 数据库中查找待解析的域名。
-
找到 DNS 记录之后,生成 DNS 响应报文,不断向下封装成 MAC 帧,通过路由器反向转发回网关路由器,并经过以太网交换机到达主机。
四、HTTP 请求页面
-
客户端与服务器通过 TCP 三次握手建立连接。
-
客户端生成 HTTP 请求报文,交付给服务器。
-
服务器从 TCP 套接字读取请求报文,生成一个 HTTP 响应报文,将 Web 页面内容放入报文主体中,发回给主机。
-
浏览器收到 HTTP 响应报文后,抽取出 Web 页面内容,之后进行渲染,显示 Web 页面。
网友评论