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