查缺补漏----用户上网过程(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服务器发起查询。

例题:

解析:

极易错的题:

应注意的点:

① 忽略其他各种时延,只计internet上各服务器往返时延

② 首先要建立TCP连接,才能进行资源访问。

相关推荐
义一23 分钟前
华为eNSP示例说明网关地址和终端IP地址不在同一网段能正常通信吗
网络
minji...4 小时前
Linux 基础IO(一) (C语言文件接口、系统调用文件调用接口open,write,close、文件fd)
linux·运维·服务器·网络·数据结构·c++
真正的醒悟4 小时前
202503-经验之道
服务器·网络·php
qq_251616195 小时前
ubuntu nginx文件服务器
linux·服务器·网络
云计算练习生5 小时前
渗透测试行业术语—— 网络攻击方式与漏洞利用
服务器·网络·安全·渗透测试术语·网络安全术语
乾元5 小时前
SDN 与 AI 协同:控制面策略自动化与策略一致性校验
运维·网络·人工智能·网络协议·华为·系统架构·ansible
锡兰_CC5 小时前
无缝触达,卓越体验:开启openEuler世界的任意门
服务器·网络·数据库·c++·图像处理·qt·nginx
橘子真甜~6 小时前
C/C++ Linux网络编程10 - http协议
linux·服务器·网络·c++·网络协议·http
十五年专注C++开发7 小时前
async_simple:一个轻量级C++异步协程框架
开发语言·网络·c++·boost·asio
车载测试工程师7 小时前
CAPL学习-ETH功能函数-方法类4
网络协议·tcp/ip·以太网·capl·canoe