CDN控制台上可查询带宽流量等统计数据,该数据同时也应用于生成计费账单,其流量会比基于访问日志统计的流量偏多。
原因是CDN日志中记录的流量数据是基于应用层日志中响应消息头+响应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%的数据包会因为网络堵塞、设备故障等各种异常情况被丢弃。发生丢包后,服务器会对丢弃的数据包进行重传,这部分的具体操作是由内核层的协议栈处理完成的,通常无法被应用层统计到的,因此在一定程度上也会造成日志统计与实际网络响应流量的差异。
综上所述,天翼云CDN加速产品取平均值10%作为网络层额外消耗的流量比例,即应用于账单的计费值会比基于访问日志计算得出的计费值上浮10%。