📜  Web请求的工作

📅  最后修改于: 2021-08-25 17:13:17             🧑  作者: Mango

要连接到Internet上的网页,以下步骤和协议起着至关重要的作用:

  1. 没有IP地址,连接到网络的计算机将无法执行任何操作。因此,动态主机配置协议(DHCP)在客户端计算机上运行,以获取IP地址,第一跳路由器的地址和DNS服务器的地址。

    • 步骤1: DHCP服务器发现。
      在这里,新到达的主机找到DHCP服务器。
      客户端使用目标端口67发送DHCP以发现UDP段中的消息。UDP数据包封装在IP数据报中,该IP数据报的广播IP目标地址为255.255.255.255,源IP地址为0.0.0.0,因为客户端还没有IP地址。

      DHCP客户端将IP数据报传递到链路层,然后链路层将该帧广播到连接到子网的所有节点。

    • 步骤2: DHCP服务器在收到DHCP发现消息后响应客户端。
      服务器提供消息包含接收到的发现消息的事务ID,客户端的建议IP地址,网络掩码以及IP地址租用时间(即,该IP地址将有效的时间量)。
    • 步骤3: DHCP请求。
      客户端响应其DHCP请求消息,回显配置参数。
    • 步骤4: DHCP ACK。
      DHCP服务器创建包含客户端IP地址的DHCP ACK。客户端的第一跳路由器的IP地址,名称和DNS服务器的IP地址。
  2. 客户端接收到包含DHCP ACK的以太网帧,从以太网帧中提取IP数据报,从IP数据报中提取UDP段,最后从UDP段中提取DHCP ACK消息。客户端记录其IP地址,DNS服务器的IP地址。它还将一个条目添加到其转发表中,以获取默认网关的地址。
  3. 客户端操作系统创建包含网页域名的DNS查询消息。此DNS查询消息封装在UDP段中,该段进一步放入IP数据报中,并在DHCP ACK中返回源IP地址和DNS服务器的IP地址。最后,将其封装到以太网帧中。
  4. 客户端不知道网关路由器的MAC地址。为了获得第一跳路由器和本地DNS服务器的MAC地址,客户端使用ARP协议。
    • 步骤1: ARP查询消息。
      客户端在以太网帧内创建此消息,其广播目标地址为FF:FF:FF:FF:FF:FF,并将其发送到交换机,该交换机又广播到所有连接的设备。
    • 步骤2: ARP回复消息–
      路由器在接收到ARP查询消息后,会用ARP答复消息进行回复,并给出路由器接口的MAC地址。

      现在,客户端在“以太网帧”中具有“地址”,并将该帧发送到交换机,该交换机将帧交付给网关路由器。

  5. IP数据报从校园网络转发到Comcast网络,然后使用RIP,OSPF,IS-IS和/或BGP路由协议创建的转发表路由到DNS服务器。
  6. DNS服务器在接收IP数据报后提取DNS查询消息并查找网页。 DNS服务器创建一个包含主机名和IP地址的映射和DNS应答报文中封装你的DNS应答消息在UDP段和进一步的内部IP数据报客户端的IP地址。 IP数据报转发回客户端。
  7. 由于客户端已收到网页的IP地址,因此尽管“第一跳路由器”网页不在本地DNS服务器中,但客户端仍将发送HTTP请求。要发送HTTP请求,客户端首先打开到Web Server的TCP套接字,并通过三次握手(SYN-> ACK-> SYNACK)建立TCP连接。
  8. HTTP请求消息被分段并封装到IP数据报中,然后进一步封装到以太网帧中,最后被发送到第一跳路由器。在接收帧时,路由器将它们向上传递到IP层,检查其路由表,并通过正确的接口转发数据包。
  9. 接收IP数据包时,服务器托管网页将通过HTTP响应消息将网页发送回客户端。
  10. HTTP响应消息将被封装到TCP数据包中,然后再封装到IP数据包中,然后通过IP路由器,消息将到达我们的第一跳路由器,然后路由器将数据包封装到以太网帧中,从而将数据包转发到客户端。