【史上最详】Web页面的请求过程

1.DHCP配置主机信息

  1. 假设主机最开始没有IP地址以及其他信息,那么就需要先使用DHCP获取IP地址。
  2. 主机生成一个DHCP请求报文,并将报文放入具有目的端口67和源端口68的UDP报文段中,报文段加上头部尾部放在目的IP(255.255.255.255)和源IP(0.0.0.0)的广播IP数据报中。该数据包再加上相应的头部尾部放置在MAC帧中,帧的目的MAC (FF:FF:FF:FF:FF:FF),将广播发送到与交换机连接的所有设备。
  3. DHCP服务器收到广播帧以后,不断向上分解最终得到DHCP请求报文,之后生成DHCP ACK报文,该报文包含以下信息:IP地址、DNS服务器的IP地址、默认网关路由器的IP地址和子网掩码。该报文放入UDP报文段,然后最终封装在MAC帧中。
  4. 该帧的目的MAC是请求主机的MAC的地址,因为交换机具有自学习能力,之前主机发送了广播帧之后就记录了MAC地址到其转发接口的交换项目,因此现在交换机就可以直接知道应该向哪个接口转发此帧。
  5. 主机收到该帧后,不断分解得到DHCP响应报文。之后根据响应报文的内容配置IP地址、子网掩码、DNS服务器的IP地址,并在IP转发表中安装默认网关。

2.ARP解析MAC地址

  1. 主机通过浏览器生成一个TCP套接字,套接字向HTTP服务器发送HTTP请求。为了生成套接字,主机需要知道网站的域名对应的IP地址和MAC地址。
  2. 主机生成一个DNS查询报文,该报文具有53号端口。
  3. 该DNS查询报文被放入目的地址为DNS服务器IP地址的IP数据报中。
  4. 该IP数据报被放入一个以太网帧中,该帧将发送到网关路由器。
  5. DHCP过程只知道网关路由器的IP地址,为了获取网关路由器的MAC地址,需要使用ARP协议。
  6. 主机生成一个包含目的地址为网关路由器IP地址的ARP查询报文,该ARP查询报文放入一个具有广播目的地址(FF:FF:FF:FF:FF:FF)的以太网帧中,并向交换机发送该以太网帧,交换机将该帧发给所有的连接设备,包括网络路由器。
  7. 网关路由器接收到该帧后,不断向上分解得到ARP报文,发现其中的IP地址与其接口的IP地址匹配,因此就发送一个ARP回答报文,包含了它的MAC地址,发回给主机。

3.DNS解析域名

  1. 知道了网关路由器的MAC地址之后,就可以继续DNS的解析过程了。网关路由器接收包含DNS查询报文的以太网帧之后,抽取出IP数据报,并根据转发表决定该IP数据报应该转发的路由器。
  2. 因为路由器具有内部网关协议(RIP、OSPF)和外部网关协议(BGP)这两种路由选择协议,因此路由表中已经配置了网关路由器到达DNS服务器的路由表项。
  3. 到达DNS服务器之后,DNS服务器取出DNS查询报文,并在DNS数据库中查找待解析的域名,找到DNS记录之后,发送DNS回答报文,将该回答报文放入UDP报文段中,然后放入IP数据报中,通过路由反向转发回网关路由器,并经过以太网交换机到达主机。

4.HTTP请求页面

  1. 有了HTTP服务器的IP地址之后,主机就能够生成TCP套接字,该套接字将用于向Web服务器发送HTTP GET报文。
  2. 在生成TCP套接字之前,必须先与HTTP服务器进行三次握手来建立连接,生成一个具有目的端口80和TCP SYN报文段,并向HTTP服务器发送该报文段。HTTP服务器收到该报文段之后,生成TCP SYN ACK的报文段,发回给主机。连接建立后,浏览器生成HTTP GET报文,并交付给HTTP服务器。
  3. HTTP服务器从TCP套接字读取HTTP GET报文,生成HTTP 响应报文,将Web页面内容放入报文主体中,发回给主机。
  4. 浏览器接收到HTTP响应报文后,抽取Web页面内容,之后进行渲染,显示Web页面。

总结

  1. DHCP:获取主机的IP地址,网关路由器的IP地址
  2. ARP:获取网关路由器的MAC地址
  3. DNS:将网址(如:www.baidu.com)转化为IP地址
  4. HTTP: 通过请求和响应报文,获取网页内容。

CS-Noters

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值