從通信原理角度看待緩存機(jī)制
分層視角:緩存如何在通信棧中運(yùn)作
1. 應(yīng)用層緩存
場(chǎng)景:HTTP 緩存 (瀏覽器/CDN/反向代理)
原理:瀏覽器根據(jù) Cache-Control (如 max-age=3600) 將靜態(tài)資源(JS/CSS/圖片)存儲(chǔ)在本地;CDN 節(jié)點(diǎn)緩存熱資源,用戶請(qǐng)求命中邊緣節(jié)點(diǎn)而非源站。
通信優(yōu)化:減少 80%+ 的重復(fù) HTTP 請(qǐng)求(YSlow 數(shù)據(jù));降低 RTT(Round-Trip Time)延遲,從 200ms(跨?。?span> 10ms(本地節(jié)點(diǎn))
2. 傳輸層緩存
場(chǎng)景:TCP 快速重傳/滑動(dòng)窗口
原理:維護(hù)發(fā)送緩沖區(qū),存儲(chǔ)已發(fā)送未確認(rèn)的數(shù)據(jù)包;存儲(chǔ)亂序到達(dá)的數(shù)據(jù)包,等待重組(如 TCP Reassembly)。
通信優(yōu)化:避免重復(fù)傳輸丟失包(通過(guò) ACK + 冗余確認(rèn)觸發(fā)快速重傳);滑動(dòng)窗口機(jī)制允許持續(xù)發(fā)送多包,無(wú)需等待單包確認(rèn)。
3. 網(wǎng)絡(luò)層緩存
場(chǎng)景:路由器轉(zhuǎn)發(fā)緩存(FIB/RIB)
原理:存儲(chǔ)頻繁使用的路由條目(如最長(zhǎng)前綴匹配表);本地網(wǎng)絡(luò) IP-MAC 地址映射(如 192.168.1.1 → 00:11:22:33:44:55)。
通信優(yōu)化:減少路由查找時(shí)間(硬件轉(zhuǎn)發(fā)表 TCAM 加速);避免重復(fù) ARP 廣播請(qǐng)求。
4. 數(shù)據(jù)鏈路層緩存
場(chǎng)景:交換機(jī) MAC 地址表
原理:交換機(jī)學(xué)習(xí)源 MAC 地址與端口的映射,緩存到 CAM 表。
通信優(yōu)化:目標(biāo) MAC 已知時(shí)無(wú)需廣播(單播轉(zhuǎn)發(fā)),降低沖突域壓力。
緩存帶來(lái)的通信挑戰(zhàn)
1. 一致性問(wèn)題
場(chǎng)景:用戶 A 更新數(shù)據(jù),用戶 B 從緩存讀取舊值。
解決方案:緩存鍵含數(shù)據(jù)版本號(hào)(如 data_v2);Raft/Paxos 協(xié)調(diào)多節(jié)點(diǎn)緩存失效。
2. 緩存穿透/擊穿/雪崩
穿透-查詢不存在的數(shù)據(jù)(繞過(guò)緩存)-布隆過(guò)濾器攔截非法 Key
擊穿-熱點(diǎn)Key失效瞬間高并發(fā)擊垮后端互斥鎖重建緩存
雪崩-大量緩存同時(shí)過(guò)期-隨機(jī)化 TTL + 熔斷降級(jí)
3. 安全風(fēng)險(xiǎn)
側(cè)信道攻擊:通過(guò)緩存訪問(wèn)時(shí)間差推斷敏感信息(如網(wǎng)站用戶存在性檢測(cè))。
防御:常量時(shí)間訪問(wèn)設(shè)計(jì) + 緩存分區(qū)隔離。
緩存設(shè)計(jì)的通信學(xué)原則
局部性原理:最近訪問(wèn)的數(shù)據(jù)很可能再次訪問(wèn)(LRU 算法);相鄰地址數(shù)據(jù)可能被連續(xù)訪問(wèn)(預(yù)取機(jī)制);Belady's OPT(淘汰最遠(yuǎn)未來(lái)使用的數(shù)據(jù));LRU(最近最少使用)、LFU(最不常用)或其變種(如 ARC)。