计算机网络自顶向下方法总结6.7 回顾:Web页面请求的历程
6.7 回顾:Web页面请求的历程
????????假定一个学生使用便携机用一根以太网电缆连接到学校的以太网交换机上,交换机与学校的路由器相连,学校的路由器与一个ISP连接,DNS服务器在ISP网络中不在学校网络中。详细见书中图片6.32。
????????6.7.1 准备:DHCP,UDP,IP和以太网
????????当刚连接到交换机上时,便携机没有IP地址,此时不能做任何事情,所以便携机采取的一个网络相关动作是运行DHCP协议,从本地DHCP服务器获得一个IP地址及其他信息。
- 便携机操作系统生成一个DHCP请求报文,放入目的端口67(DHCP服务器)和源端口68(DHCP客户)的UDP报文段,UDP报文段放置在一个具有广播IP目的地址和源IP地址0.0.0.0的IP数据报中。
- IP数据报被放置在以太网帧中,目的MAC地址为FF:FF:FF:FF。
- DHCP收到之后生成包含IP地址以及DNS服务器IP地址,默认网关路由器的IP地址和子网掩码的一个DHCP ACK报文。
- 便携机收到DHCP ACK之后记录下IP地址和它DNS服务器的IP地址,在IP转发表中安装默认网关的地址。
????????6.7.2 仍在准备:DNS和ARP
? ? ? ? 访问网站时,需要知道此网站的IP地址。
- 操作系统生成一个DNS查询报文,放入要浏览的域名,DNS报文放置在一个具有53号(DNS服务器)目的端口的UDP报文段中,目的IP地址为DNS服务器的IP地址。
- 虽然便携机知道了学校网关路由器的IP地址(默认网关路由器IP地址),但是不知道学校网关路由器的MAC地址,此时需要使用ARP协议。
- 生成一个具有目的IP地址(默认网关)的ARP查询报文,放在具有广播地址的以太网帧中,并交给交换机。
- 网关路由器收到之后要发送一个ARP回答报文,告诉便携机它的MAC地址。
- 现在便携机可以使包含DNS查询的以太网帧寻址到网关路由器的MAC地址。在帧中,目的IP地址为DNS服务器的地址,MAC地址为网关路由器的MAC地址。
????????6.7.3 仍在准备:域内路由选择到DNS服务器
? ? ? ? 在路由器中要根据转发表决定该数据报应该发送给哪个下一跳路由器,域内的路由器转发表根据ISP的域内路由选择协议(RIP,OSPF或IS-IS)以及因特网的域间协议BGP所填写。
? ? ? ? DNS服务器接收到该数据报之后,找到DNS源记录(来自该域名的权威DNS服务器),形成一个主机名到IP地址映射的DNS回答报文。发送给便携机。
????????6.7.4 Web客户-服务器交互:TCP和HTTP
? ? ? ? 便携机的web浏览器生成TCP套接字,用于发送HTTP报文。生成TCP套接字时,要与目的IP地址中的套接字进行三次握手,生成一个目的端口为80的TCP SYN报文段。
? ? ? ? 如果ISP网络要向其他网络转发该包含TCP SYN的数据报时要使用BGP协议决定的利用转发表。
? ? ? ? 之后服务器的80端口欢迎套接字接收到该报文段,并在HTTP服务器和便携机之间的TCP连接上生成一个连接套接字,并返回一个TCP SYNACK报文段。
? ? ? ? 浏览器生成包含要获得的URL的HTTP GET报文,写入套接字,并发送给服务器端的连接套接字,HTTP服务器从TCP套接字中取出HTTP GET报文,生成一个HTTP响应报文。之后便携机的浏览器应用程序从套接字中读取该HTTP响应报文,最终在浏览器上显示出web网页。到此整个过程就完成了。
? ? ? ? 在此过程中忽略了一些附加协议,例如:NAT,无线接入,安全协议,网络管理协议,以及web缓存,DNS等级体系等等。
|