月度归档:2026年10月 (59)
DNS 解析:一次域名查询的奇幻漂流
从浏览器缓存一路问到根服务器,递归与迭代各司其职,TTL 决定改配置要等多久。DNS 是互联网最古老的缓存系统,也是最常见的故障源头——解析慢、解析错、被劫持,各有各的剧本。
证书与信任链:CA 凭什么给你背书
证书不是加密文件,是一份带签名的身份档案。浏览器逐级验签到内置的根 CA 才肯放行——理解了信任链,证书过期、域名不匹配、SNI 是什么、为什么全站必须 HTTPS,全都一句话讲清。
TLS 握手:HTTPS 到底慢在哪一步
非对称加密换密钥,对称加密传数据——TLS 的设计一眼看穿。慢的不是算力是 RTT:TLS 1.2 要 2 个来回,1.3 砍到 1 个,会话复用还能到 0。会看 openssl 握手输出,性能账就清楚了。
HTTP/2 多路复用:一条连接怎么跑一百个请求
把报文切成二进制帧、按 stream 编号交错传输——HTTP/2 用一场拆包运动终结了应用层队头阻塞。HPACK 顺手把重复的请求头压掉九成,但 TCP 那道墙依然立在那里。
队头阻塞:从排队打饭到 HTTP/2 的死角
一个慢请求堵住一整条连接,这就是队头阻塞。HTTP/1.1 的解法是开六条队,黑历史是域名分片;HTTP/2 解决了应用层的排队,却撞上 TCP 层的同一堵墙。
HTTP/1.1 的家底与欠账:keepalive、chunked 和一肚子文本
明文、行分隔、一问一答——HTTP/1.1 用最朴素的设计统治了三十年。keepalive 和 chunked 是它的两大传家宝,文本协议和队头阻塞是它甩不掉的债。curl -v 一敲,所有细节看得见。
Nagle 与延迟确认:一个攒包一个拖确认,40ms 卡顿的百年恩怨
Nagle 想攒满一车再发,延迟确认想等 40ms 搭个顺风车——两个都出于好意的机制碰到一起,就是 request-response 场景的经典卡顿。一条 TCP_NODELAY,多数交互式服务都该开。
拥塞控制:慢启动、拥塞避免、快重传、快恢复四幕剧
rwnd 管得住接收方,管不住中间那条拥堵的路。TCP 用 cwnd 探路:指数冲刺、线性爬坡、丢包刹车、减半缓行。1988 年的四幕剧演到今天,直到 BBR 换了个思路。
滑动窗口:TCP 凭什么不丢、不重、不乱序
发一个等一个太慢,一口气全发出去又会淹死对端——滑动窗口在两者之间找平衡:在途数据封顶,确认到来窗口右滑。配合超时重传、快速重传和 SACK,构成 TCP 可靠性的四梁八柱。