高效rudp之數據控制塊管理

rudp(可靠UDP傳輸)模塊中,數據控制(標記爲:PCB)是保存邏輯連接相關信息的結構對象,PCB是和端口一一對應的,它包含本地端口 、本地IP、遠程端口、遠程IP地址、未發送報文段隊列、未確認報文段隊列、接收buffer等。PCB的生成、查找、銷燬等管理工作由PCB管理模塊(簡稱PCBMgr)負責。

PCB的生成和端口的生成是同時發生的,當發起一個連接或者接受一個連接時,堆棧要分配一個當前未啓用的端口號,同時生成和端口號相對應的PCB

在很多可靠傳輸堆棧版本中,PCB的管理是個鏈表結構,採用該結構,插入以及刪除節點等維護成本比較低,便於爲各種狀態的節點集合做cache。由鏈表結構我們知道查詢的時間複雜度爲O(n),在大量連接存在的情況下,查詢效率不夠理想。在連接的整個生存期,進行最多的是數據的傳輸,在數據傳輸過程中,由報文頭中的邏輯端口號查詢對應PCB是必經之路,所以如果採用map結構維護端口號和PCB的關係,查詢時間複雜度爲O(n),大大降低查詢的時間複雜度。由此筆者推薦PCBMgr採用map結構保存端口號和PCB的對應關係。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章