🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6
🍨 阿珊和她的猫_CSDN个人主页
🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》
🍚 蓝桥云课签约作者、已在蓝桥云课上架的前后端实战课程《Vue.js 和 Egg.js 开发企业级健康管理项目》、《带你从入门到实战全面掌握 uni-app》
文章目录
- 对域名缓存的了解?
- 除了滑动窗口,还有哪些流量控制机制?
- 在哪些场景下使用滑动窗口协议比较合适?
- 在交互过程中如果数据传送完了,还不想断开连接怎么办,怎么办?
对域名缓存的了解?
域名缓存(DNS Cache)是指将域名解析结果存储在本地设备上,以便在下次访问该域名时可以直接从缓存中获取解析结果,从而提高 DNS 解析速度和减少网络延迟。域名缓存通常由操作系统或网络设备提供,它能够大幅提高 DNS 解析速度,提高网络访问效率。
域名缓存的工作原理如下:
- 用户在浏览器中输入域名。
- 浏览器将域名发送给本地 DNS 服务器。
- 本地 DNS 服务器将域名解析为 IP 地址,并将结果存储在域名缓存中。
- 本地 DNS 服务器将 IP 地址返回给浏览器。
- 浏览器使用 IP 地址连接到服务器。
当用户再次访问该域名时,浏览器会首先检查域名缓存,如果该域名已经在缓存中,则直接从缓存中获取解析结果,而不需要再次向 DNS 服务器发送请求。这种做法能够大幅提高 DNS 解析速度,减少网络延迟,提高网络访问效率。
需要注意的是,域名缓存并不是绝对的,它只缓存最近的 DNS 解析结果。如果 DNS 解析结果发生了变化,则需要更新域名缓存。此外,域名缓存也有过期时间,过期后需要重新向 DNS 服务器发送请求以获取最新的解析结果。
除了滑动窗口,还有哪些流量控制机制?
除了滑动窗口,还有以下几种流量控制机制:
- 令牌桶模型:该模型将请求分配到固定数量的桶中,每个桶有一定的容量,当桶的容量达到上限时,请求被拒绝。当请求被处理完成后,桶的容量会逐渐恢复。这种机制能够限制请求的速率,但可能会导致突发请求被拒绝。
- 固定窗口:该机制将请求分配到固定大小的窗口中,窗口中的请求可以并发处理,但窗口的大小是固定的。当窗口已满时,新请求会被拒绝,直到之前的请求处理完成。这种机制能够限制请求的速率,但可能会导致请求排队等待处理。
- 动态窗口:该机制将窗口大小设置为固定值,但允许窗口根据网络状况动态调整。当网络状况良好时,窗口大小会增加;当网络状况不好时,窗口大小会减小。这种机制能够根据网络状况自动调整请求速率,但可能会导致请求波动。
滑动窗口是一种常见的流量控制机制,它能够根据网络状况动态调整窗口大小,从而实现平衡请求速率与网络带宽之间的平衡。
在哪些场景下使用滑动窗口协议比较合适?
滑动窗口协议(Sliding Window Protocol)适用于以下场景:
- 网络带宽受限:当网络带宽有限时,滑动窗口协议能够限制请求的速率,避免请求过多导致网络拥塞。
- 延迟敏感:当请求的延迟敏感时,滑动窗口协议能够平衡请求速率与延迟之间的关系,尽可能减少延迟。
- 带宽敏感:当请求的带宽敏感时,滑动窗口协议能够平衡请求速率与带宽之间的关系,尽可能减少带宽占用。
- 网络延迟变化:当网络延迟变化时,滑动窗口协议能够根据网络状况自动调整窗口大小,以保持请求速率不变。
滑动窗口协议适用于需要控制请求速率的场景,如 HTTP 请求、TCP 连接等。它能够确保网络带宽的稳定使用,提高网络性能,并减少网络拥塞和延迟。
在交互过程中如果数据传送完了,还不想断开连接怎么办,怎么办?
如果数据传送完了,但仍然不想断开连接,可以使用长连接(Long Connection)技术。长连接是指在完成一次数据传输后,连接保持打开状态,等待下一次数据传输。这种技术可以节省建立连接的开销,提高数据传输效率,但可能会导致网络拥塞和资源浪费。
常用的长连接技术包括:
HTTP Keep-Alive
:HTTP 协议允许客户端与服务器之间保持连接状态,以避免建立新的连接的开销。当客户端发送完请求后,可以保持连接状态,等待服务器的响应。TCP Keep-Alive
:TCP 协议允许客户端与服务器之间保持连接状态,以避免建立新的连接的开销。当客户端发送完数据后,可以设置保活定时器,定期发送保活消息,以保持连接状态。
需要注意的是,虽然长连接可以提高数据传输效率,但可能会导致网络拥塞和资源浪费。因此,在使用长连接时,需要根据网络状况和资源状况进行合理控制,以保持网络稳定和资源高效使用。