在工作中或多或少需要和協議棧打交道,因爲公司的策略,公司自有的協議棧基本都是基於開源協議棧的理解重寫的協議棧,在可維護性和性能方面均比開源軟件強勢很多,可惜在公司時更多是調用API,並未從頭到尾研究過一個完整的協議棧。從事網絡工作沒有研究過完整的協議棧,不得不說是個嚴重的缺失。
本想基於2.6內核進行協議棧分析,分析了一段時間,感覺有些吃力,估計得分析幾遍才能理解透徹,而且並不能真正掌握。
發現了《linux內核網絡棧源代碼情景分析》,此書是基於1.2.3版本Linux進行的分析,20多年前的版本,不過對於協議棧的一些理論分析爲不錯的參考。整個協議棧收發包流程以及協議設計並沒有太大的改變,更多的是基於性能考慮優化了數據結構以及相應的算法,當然此版本不支持多核,所以整個過程沒有鎖,或者使用變量標誌作爲鎖。
下一步準備分析一下最新版本Linux的協議棧。