【计算机考研408-计算机网络-教书匠视频笔记】主机访问浏览器的全部过程

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Q9CF2lnV-1670594818326)(C:\Users\Lenovo\AppData\Roaming\Typora\typora-user-images\image-20221209205607001.png)]

主机H1利用浏览器通过该域名请求访问web服务器

  • 由于题目给定主机H1的ARP表是空的

(1)主机H1首先会发送ARP请求报文,ARP请求报文会被封装在以太网的MAC帧中发送

ARP请求报文:FF-FF-FF-FF-FF-FF

源MAC地址:00-11-22-33-44-cc(即主机H1的MAC地址)

  • ARP协议的作用:由IP地址查找对应的MAC地址
  • ARP请求报文会被封装在以太网广播帧中,整个过程都是在数据链路层中进行的

(2)该ARP请求报文进入以太网交换机,以太网交换机进行自学习和转发帧的操作,登记ARP报文的源地址和进入交换机时的端口号(这就是所谓的自学习)

  • 题目给定以太网交换机的交换表是空的

  • 自学习后的交换表

(3)由于该ARP请求报文是广播帧,故不用查表,直接从其他所有的端口转发出去

  • 本地域名服务器会收到
  • H2主机会收到
  • R路由器也会收到

(4)本地域名服务器从该广播帧中解析出ARP请求报文,从而知道该ARP请求报文是询问自己的,故接收该ARP请求报文,并向主机H1发出ARP响应报文欲告知自己的MAC地址。

路由器R从该广播帧中解析出ARP请求报文,知道不是询问自己的,从而丢弃该报文,H2同理丢弃。

  • ARP响应报文被封装在以太网单播帧中发送

ARP响应报文:00-11-22-33-44-cc(目的地址,主机H1的MAC地址)00-11-22-33-44-bb(源地址,本地域名服务器的MAC地址)

(5)该单播帧ARP响应报文从交换机的1号端口进入交换机,故交换机更新交换表,更新完后,在交换表中查找该单播帧的目的MAC地址,发现对应的端口号为4,故从该端口4转发出

(6)主机H1收到来自交换机端口4转发的ARP响应报文,通过解析该报文,发现是发送给自己的,于是知道了本地域名服务器的MAC地址,并更新ARP表

  • 现在主机可以向本地域名服务器发送DNS请求报文了,以便获取web服务器域名所对应的IP地址
  • DNS是基于UDP的,根据域名查询出IP地址

DNS查询流程简化如下(这里我使用的是递归与迭代相结合的方式),

a.查询本地域名服务器,本地域名服务器中没有记录所以进行b

b.访问DNS根服务器,根服务器通过查询知道了该域名是归.com顶级域名服务器管理的,所以告知本地域名服务器去查询顶级域名服务器,所以去进行c

c.本地域名服务器,去查询.com域服务器(顶级域名服务器),然后该服务器告知,负责abc.com区域的服务器知道,我告诉你他的地址,你去问他把

d.最后,访问abc.com域服务器,得知此域名对应的IP地址

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ecRp8aQr-1670594818326)(C:\Users\Lenovo\AppData\Roaming\Typora\typora-user-images\image-20221209213337116.png)]

DNS请求报文的封装情况,

(7)主机收到DNS响应报文从而知道了web服务器的IP地址,通过比较前25比特网络前缀,知道了web服务器与主机H1不在一个网络当中

(8)于是,主机H1要通过访问R路由器也就是默认网关192.168.1.1来访问web服务器

  • 主机H1查找ARP表发现,默认网关192.168.1.1的MAC地址,找不到

(9)主机H1再次发送ARP请求报文,通过路由器R的IP地址来查询其相应的MAC地址,ARP请求报文被封装在以太网广播帧中发送

  • 目的地址:FF-FF-FF-FF-FF-FF
  • 源MAC地址:00-11-22-33-44-cc

(10)路由器R从该广播帧中解析出ARP请求报文,知道这是询问自己,所以接收该报文(其他的设备发现不是给自己的,丢弃该报文),响应该报文

(11)路由器R给主机H1发送ARP响应报文,告知自己的MAC地址,ARP响应报文被封装在以太网单播帧中发送

该ARP响应报文进入交换机后,更新交换表,如下

(12)更新完后,对该单播帧进行转发,根据目的MAC地址查询交换表,发现应该从4号端口中转发出去

(13)主机H1收到单播帧,从中解析出ARP响应报文,从而知道了路由器R该接口的IP地址所对应的MAC地址,将其记录到ARP表中

(14)先主机H1可以通过路由器R访问web服务器

(15)主机H1与web服务器之间要先通过TCP连接报文建立连接(即三报文握手)

  • TCP使用熟知端口号80

  • 主机可以在第三个报文段中携带HTTP请求报文

  • web服务器在收到报文后,将所请求的内容封装成HTTP响应报文

  • 通过已建立的连接发送给主机H1

(16)至此,主机H1访问web服务器的应用场景的全部过程。