Web页面的请求历程

发布于:2024-12-18 ⋅ 阅读:(16) ⋅ 点赞:(0)

1 因特网协议栈

协议栈 常用协议
应用层 HTTP协议、DNS协议、DHCP协议
传输层 TCP协议、UDP协议
网络层 IP协议、NAT协议、ICMP协议、BGP协议、OSPF协议
数据链路层 ARP协议、以太网协议
物理层 各种电气特性的规定等

2 Web页面的请求历程

本节通过一个电脑访问谷歌网页的例子(简化版),来了解这些协议是如何工作的。
Web页面请求的历程.png

图2.1 Web页面请求的历程

  1. 电脑刚接网线连接交换机时还没有IP地址。此时电脑的操作系统自动运行DHCP协议,从路由器A获取到IP地址、DNS服务器的IP地址、默认网关路由器的IP地址、子网掩码和IP地址的有效时间。假设电脑获取到的IP地址是个内网IP地址(通常情况也确实是这样的。如192.168.1.12这种)。如果路由器A中没有开启DHCP服务器,那就需要在电脑上手动配置IP地址、网关IP等信息。

  2. 打开浏览器输入“www.google.com”。此时电脑尝试向网关发送DNS查询报文,以获取“www.google.com”的IP地址。不过在封装以太网协议时,发现没有网关的MAC地址。因此暂时不发送DNS查询报文。

  3. 电脑通过ARP协议获取网关的MAC地址,并记录在自己的ARP表中。

  4. 有了网关的IP地址和MAC地址,电脑便可以发送DNS查询报文了。

  5. 路由器A收到电脑的DNS查询报文,并传递NAT服务。NAT服务将报文的源IP地址修改为公网地址,并修改端口号,然后记录映射关系(公网IP+端口号1 <= = = = => 内网IP+端口号2)。

  6. 路由器A根据目标IP地址,通过匹配自身的转发表将DNS查询报文从合适的接口发出去。之后收到DNS查询报文的路由器都以同样的方式转发DNS查询报文。最终DNS查询报文到达DNS服务器。

  7. DNS服务器解析DNS查询报文,并生成了包含“www.google.com”IP地址的DNS回答报文。该报文通过Comcast网络反向转发到路由器A。

  8. 路由器A将该报文传递给NAT服务,NAT服务根据之前记录的映射关系(公网IP+端口号1 <= = = = => 内网IP+端口号2)将报文的源IP地址转为内网IP,并修改端口号。

  9. 路由器A根据转发表将报文转发给交换机,报文经过交换机最终到达电脑。电脑解析DNS回答报文得到了“www.google.com”的IP地址。

  10. 电脑的浏览器生成包含要获取的“www.google.com”的HTTP GET报文,经过学校、Comcast、Google的网络,到达“www.google.com”Web服务器。

  11. “www.google.com”的Web服务器生成HTTP回答报文,该报文通过谷歌、 Comcast和学校网络转发, 到达电脑,最终电脑成功显示了Web页面。

康卡斯特(英文:Comcast Corporation,NASDAQ: CMCSA),是美国一家主要有线电视,宽带网络及IP电话服务供应商及内容供应商,总部位于宾夕凡尼亚州的费城,是美国最大的有线电视公司,亦是美国第二大互联网服务供应商。