Tag
TCP
浏览器输入 URL 到页面展示:一次完整网络请求发生了什么
前言“浏览器输入 URL 到页面展示发生了什么”是一个经典问题。 它看起来是在问浏览器,实际上是在串联整条网络链路: 123456789101112131415URL 解析 ↓缓存 ↓DNS ↓TCP ↓TLS ↓HTTP ↓服务端响应 ↓浏览器解析和渲染 以访问下面这个地址为例: 1https://example.com/page 1. 浏览器解析 URL...
TCP、UDP 与 QUIC:为什么 HTTP/3 要基于 UDP
前言TCP 和 UDP 都是传输层协议,都能解决: 1把数据交给目标主机上的哪个进程。 但它们的取舍完全不同: 12TCP:连接、可靠、有序、字节流UDP:无连接、不保证可靠、不保证有序、数据报 再往后看,HTTP/3 又选择基于 QUIC,而 QUIC 基于 UDP。 这篇文章就围绕三件事展开: TCP 和 UDP 到底差在哪。 为什么 DNS、...
TCP 详解:从三次握手到可靠传输、滑动窗口和四次挥手
前言IP 负责把包送到目标主机,TCP 负责把数据可靠送到目标主机上的具体进程。 一句话: TCP 在不可靠的 IP 之上,提供可靠、有序、面向连接的字节流传输。 这篇文章围绕 TCP 的完整生命周期展开: 12345678910111213端口定位进程 ↓三次握手建立连接 ↓序号、确认和重传保证可靠 ↓滑动窗口提高效率 ↓流量控制保护接收方 ↓拥塞控制保护...
HTTP 连接与多路复用:为什么说是 HTTP/2 支持多路复用,而不是 TCP
前言学习 HTTP 版本演进时,很容易遇到几个问题: HTTP 不是应用层协议吗,为什么总说它要建立连接? HTTP/1.1 的长连接,到底连接的是谁和谁? HTTP/2 支持多路复用,为什么不说 TCP 支持多路复用? HTTP/2 既然能多路复用,为什么还会有 TCP 队头阻塞? 这篇文章就围绕一个主线来讲: 123HTTP...
OSI 七层模型与 TCP/IP 四层模型:计算机网络分层到底怎么理解
前言刚开始学计算机网络,最常见的一张图就是: 1234567应用层表示层会话层传输层网络层数据链路层物理层 这张图很经典,但也很容易让人产生一个误会:好像只要背下七层名字,就算理解网络了。 其实分层模型真正想表达的不是“有几个层”,而是: 一次复杂的网络通信,可以拆成多个职责清晰、彼此协作的阶段。 只要抓住这个思路,再看 OSI 七层模型和 TCP/...
计算机网络学习地图:从分层模型到浏览器请求链路
前言学习计算机网络,最容易卡在两个地方: 知识点太多,协议名像一张散开的网。 只背概念,不知道它们在真实请求里站在哪一环。 所以这个专题的目标不是一口气背完所有协议,而是先建立一条主线: 1234567891011浏览器发起请求 ↓找到域名对应的 IP ↓建立连接 ↓传输请求和响应 ↓浏览器处理缓存、安全和跨域 ↓出现问题时能够定位是哪一层出了问题 1. 先...