為什么控制臺(或API)用量分析里的流量與日志統計的流量有差異
更新時間 2024-11-01 01:11:18
最近更新時間: 2024-11-01 01:11:18
分享文章
本文介紹控制臺(或API)用量分析里的流量與日志統計的流量有差異的原因。
客戶控制臺上可查詢帶寬、流量等統計數據,該數據同時也應用于生成計費賬單,其流量會比基于訪問日志統計的流量偏多。原因是全站日志中記錄的流量數據是基于應用層日志中響應消息頭+響應body體統計出的流量,而在實際網絡請求中產生的網絡流量,由于存在TCP/IP包頭消耗和TCP重傳,要比應用層統計到的流量數據高出7%~15%。因此按照業界標準,應用于賬單的計費值會比基于訪問日志計算得出的計費值上浮10%。
TCP/IP包頭的消耗
HTTP請求是基于TCP/IP協議的,數據包是TCP/IP協議通信傳輸中的數據單位,我們在使用基于TCP/IP協議的網絡時,網絡中傳遞的其實就是數據包。每個數據包的大小最大是1500字節,這1500字節中包括了TCP和IP協議組成的40個字節的包頭,這兩個協議包頭其實也會產生流量,但是卻無法被應用層統計到,因此這40個字節的流量就不會被統計到日志里,這部分的流量會占到我們通過日志計算出流量的2.74%(40/1460)以上,即3%左右。
TCP重傳
根據互聯網中網絡的負載情況,通常情況下,會有接近3%~10%的數據包會因為網絡堵塞、設備故障等各種異常情況被丟棄。發生丟包后,服務器會對丟棄的數據包進行重傳,這部分的具體操作是由內核層的協議棧處理完成的,通常無法被應用層統計到的,因此在一定程度上也會造成日志統計與實際網絡響應流量的差異。
綜上所述,天翼云全站加速產品取平均值10%作為網絡層額外消耗的流量比例,即應用于賬單的計費值會比基于訪問日志計算得出的計費值上浮10%。