计算机网络自顶向下-Web网页请求过程

一、场景(假设这位同学不是在天朝,能直接访问谷歌

  1. 学生将PC用电缆连接到学校以太网交换机,访问 www.google.com
  2. comcast为ISP。comcast.net为学校提供DNS服务,服务器在comcast网络中。
  3. DHCP服务器运行在路由器中。

1、通过DHCP获得本机IP等信息 协议:DHCP

PC连接到网络时的动作

  1. PC生成DHCP请求报文,放入目的端口67和源端口68的UDP报文段。报文段放入广播目的IP地址(255.255.255.255)和源IP地址(0.0.0.0)的IP数据报中。
  2. 该数据报放入以太网帧中,目的MAC地址为广播地址48个1,源MAC地址为PC适配器MAC地址。该帧在交换机所有出口端广播。
  3. 路由器接口接收到该帧,抽取出IP数据报。广播IP地址表示该IP数据报需要节点的高层协议处理,所以分解出UDP报文上传UDP。DHCP服务器从UDP报文段中得到该请求报文。
  4. 服务器生成DHCP ACK报文,包括分配给PC的IP地址、DNS服务器IP地址、默认网关路由器IP地址(68.85.2.1)、子网块(68.80.2.0、24)。该报文放入UDP、IP数据报、以太网帧中,目的MAC地址为PC的MAC地址、源MAC地址为路由器刚刚收到帧的子网接口的MAC地址。
  5. ACK报文发送到交换机。由于交换机通过自学习,之前从PC接收帧的时候得到MAC地址和端口的映射,所以直接将帧从连接PC的接口转发。
  6. PC接收到帧,一步步抽取出ACK报文,记录下自己的IP地址、DNS服务器地址。配置IP转发表的默认网关,将目的地址为子网块之外的所有数据报发送向默认网关。
    DCHP中的4步只有最后两步必须。

2、通过DNS获得谷歌的IP地址 协议:ARP,DNS

  1. PC生成DNS查询报文, www.google.com 放入报文的问题段。DNS报文放入端口号53的UDP报文段中,UDP报文段目的IP为DNS服务器的IP地址,源IP地址为PC的IP地址的IP数据报,但是缺少默认网关的目的MAC地址(只知道IP地址)。
  2. PC发送查询默认网关MAC地址的ARP查询报文,放入广播目的地址的以太网帧。向交换机发送该帧,交换机将该帧转发给所有出口端。网关路由器收到查询报文后,准备ARP回答,包括默认网关IP和对应的MAC地址。将ARP回答放入以太网帧,目的MAC地址为PC的MAC地址。发送该帧,通过交换机交付给PC。
  3. PC获取该帧,抽取得到网关路由器的MAC地址。将1中的数据报放入以太网帧,目的MAC地址为网关路由器的MAC地址。将帧发送给交换机,交付给网关路由器。
  4. 网关路由器接收帧,抽取IP数据报。根据目的地址和转发表,决定下一跳路由器。将IP数据报放入链路层帧,发送至下一跳路由–comcast最左边路由器。
  5. comcast最左边路由器接收到帧,抽取IP数据报,根据目的IP地址和转发表确定出口,向DNS服务器转发数据报。转发表已经根据域内路由协议和域间路由协议填好。
  6. DNS服务器收到IP数据报,抽取出DNS查询报文,找到对应的IP地址,生成DNS回答报文,放入UDP报文段,反向寻址到学校路由器,最后通过交换机到PC。
  7. PC从DNS报文中抽取出 www.google.com 对应的IP地址。

3、进行客户服务器交互 协议:TCP,HTTP

  1. PC生成一个目的端口号80的TCP SYN报文段,放入目的IP为谷歌的IP地址的数据报中。
  2. 该数据报通过学校网络、comcast网络、谷歌网络到达谷歌服务器,服务器分配资源,产生TCP SYNACK报文段,放入数据报,反向到达PC。PC形成套接字,进入连接状态,第三次握手与之后的HTTP请求一起发送。
  3. PC的浏览器生成获取URL的HTTP GET报文,写入套接字。生成的TCP报文段放入一个IP数据报中,到达谷歌服务器。
  4. 谷歌HTTP服务器从TCP套接字读取HTTP GET报文,生成HTTP响应报文,将请求的页面内容放入HTTP报文实体,将响应报文放入套接字,生成的TCP报文段放入IP数据报,经过网络到达PC。
  5. PC的浏览器从套接字读取HTTP响应,从实体中抽取页面的html,显示web页面。