1. 程式人生 > >高效能網路程式設計7--tcp連線的記憶體使用

高效能網路程式設計7--tcp連線的記憶體使用

TCP連線在程序中使用的記憶體大小千變萬化,通常程式較複雜時可能不是直接基於socket程式設計,這時平臺級的元件可能就封裝了TCP連線使用到的使用者態記憶體。不同的平臺、元件、中介軟體、網路庫都大不相同。而核心態為TCP連線分配記憶體的演算法則是基本不變的,這篇文章將試圖說明TCP連線在核心態中會使用多少記憶體,作業系統使用怎樣的策略來平衡巨集觀的吞吐量與微觀的某個連線傳輸速度。這篇文章也將一如既往的面向應用程式開發者,而不是系統級的核心開發者,所以,不會詳細的介紹為了一個TCP連線、一個TCP報文作業系統分配了多少位元組的記憶體,核心級的資料結構也不是本文的關注點,這些也不是應用級程式設計師的關注點。這篇文章主要描述linux核心為了TCP連線上傳輸的資料是怎樣管理讀寫快取的。