查缺补漏----用户上网过程(HTTP,DNS与ARP)
(1)HTTP
来自湖科大计算机网络微课堂:
① HTTP/1.0采用非持续连接方式。在该方式下,每次浏览器要请求一个文件都要与服务器建立TCP连接当收到响应后就立即关闭连接。
每请求一个文档就要有两倍的RTT的开销。若一个网页上有很多引用对象(例如图片等),那么请求每一个对象都需要花费2RTT的时间。
为了减小时延,浏览器通常会建立多个并行的TCP连接同时请求多个对象。但是,这会大量占用万维网服务器的资源,特别是万维网服务器往往要同时服务于大量客户的请求,这会使其负担很重。
② HTTP/1.1采用持续连接方式。在该方式下,万维网服务器在发送响应后仍然保持这条连接,使同一个客户(浏览器)和该服务器可以继续在这条连接上传送后续的HTTP请求报文和响应报文。这并不局限于传送同一个页面上引用的对象,而是只要这些文档都在同一个服务器上就行。
为了进一步提高效率,HTTP/1.1的持续连接还可以使用流水线方式工作,即浏览器在收到HTTP的响应报文之前就能够连续发送多个请求报文。这样的一个接一个的请求报文到达服务器后,服务器就发回一个接一个的响应报文。这样就节省了很多个RTT时间,使TCP连接中的空闲时间减少提高了下载文档的效率。
例题:
注:看到MSS,一定要想到慢开始,拥塞避免算法。
2011年统考真题:
(2)DNS
① 若主机不知道本地域名服务器的MAC地址,会通过ARP查询,查询本地域名服务器的MAC地址。
注:通常情况下,网络管理员会手动为DNS服务器指定一个或多个固定的IP地址。
② 一旦用户的设备知道域名服务器的MAC地址,它就会构造一个DNS查询请求发送到域名服务器。这个DNS查询请求包含用户想要解析的域名。
③ 域名服务器收到DNS查询请求后,会查找其缓存或进行递归/迭代查询以确定域名的IP地址。一旦找到IP地址,域名服务器就会将结果(即域名的IP地址)返回给用户的设备。
④ 用户的设备收到DNS查询响应后,现在知道了它想要访问的网站的IP地址。
用户的设备可以使用这个IP地址来与网站服务器建立TCP/IP连接,并发送HTTP请求以获取网页内容。(这里知道网站IP地址,仍须通过ARP协议得到其MAC地址)
补充:注意区别浏览器的缓存和本地域名服务器缓存
浏览器缓存:浏览器缓存DNS查询结果,以便在后续访问相同域名时能够快速获取IP地址,而无需再次进行DNS查询。
本地域名服务器缓存:本地域名服务器缓存是存在于本地网络中的DNS服务器上的一种缓存机制。当用户尝试访问某个域名时,本地域名服务器会首先检查自己的缓存中是否已解析过该域名。如果已解析过且结果仍然有效(即未过期),本地域名服务器会直接将对应的IP地址返回给用户设备,而无需向更高级别的DNS服务器发起查询。
例题:
① 主机H1首先会发送ARP请求,根据本地域名服务器的IP地址询问本地域名服务器的MAC地址,当得到本地域名服务器的MAC地址后,这时,交换机记录了H1和本地域名服务器的MAC地址和端口号。
② 主机H1向本地域名服务器发送DNS请求,获取域名对应的IP地址,在这期间交换机的表项不会发生改变。
③ H1获得IP地址,将目的IP地址与子网掩码逐位与,发现目的IP地址与自己不在同一个局域网内,于是要将数据报(这个数据报,是要与WEB服务器建立连接的数据报,即第1次握手的数据报)发给默认网关。
④ 此时,ARP表中只记录了本地域名服务器的MAC地址,所以他会再次发送ARP请求,获取默认网关的MAC地址。
③ WEB服务器收到握手请求后,会回复确认,这时路由器会将确认帧转发给交换机,交换机交给H1。
注意:默认网关在收到ARP请求并回复自己的MAC地址时,会顺便把H1的MAC地址记录在自己的ARP表中,所以只需把确认帧交给对应的交换机,交换机再传给H1即可。
解析:
极易错的题:
应注意的点:
① 忽略其他各种时延,只计internet上各服务器往返时延
② 首先要建立TCP连接(TCP握手的前两次连接),才能进行资源访问。