一臺路由器緩沖區稍微大一點,你知道會帶來多大的益處嗎?稍微小一點,你知道會帶來多少的悲哀嗎?
跑高速的時候,有時候兩輛車輕微碰擦,就會帶來幾十公里的擁堵....這就是局部事故引發全局連鎖反應。前年,滬嘉高速施工,拆除中心綠化帶,取消硬路肩,將二車道改為三車道,你可別小看這一根車道,作用大了。
對于網絡而言,數據包在網線上的時候,絕對安全,絕對是全速前進,最危險的就是到達轉發設備內部,設備處理數據包帶來的固有延遲導致數據包必須有機會被緩沖,處理加速比一定要和緩沖區大小對應,此時增加緩沖區大小就類似于高速公路增加車道,作用大了去了。不管增加多少,緩沖區大小和線路帶寬之間有個公式,說實話,TCP為這個公式幫了大忙。
我們知道,UDP無狀態無連接,丟了就丟了,誰也不知道,一切默默地。所以轉發設備沒法衡量到底設置多大的緩沖區。但是TCP可以幫忙。TCP有一個RTT,即一個數據包一個來回所需要的時間,開啟時間戳之后,這個測量是很精準的,因此,轉發設備的緩沖區大小設置就和這個相關了。也就是說,緩沖區必須能夠保存一個TCP來回時間持續到達的數據包,能持續到達多少呢?這個由帶寬決定。如果緩沖區大小小于這個值,一旦內部發生隊列阻塞或者延遲,TCP就會持續丟包。因此,越是高速的鏈路,緩沖區大小越是要大,網絡帶寬持續提高的今天,設備如何在單位時間緩沖存儲如此巨量的數據,是一個大問題。固然,TCP發現丟包會降速,那么UDP呢?
歸根結底,轉發設備緩沖區大小的決定因素就是內存訪問效率,目前什么樣的存儲設備能滿足要求啊?數據量巨量,直接就把昂貴的東西給pass了,不考慮并行性,什么才是神器?