2009-07-13 65 views
0

我正在爲一個簡單的協議實現滑動窗口。我正在使用靜態循環隊列(數組)來實現窗口,因爲我認爲它很高效。
但是我的一位朋友說,他已經看到了tcp中滑動窗口的實現,它使用了一個鏈表。我不認爲他已經看到了,因爲他不知道發行版中的網絡代碼位於何處。
反正, 這是一個更好的方式來實現流控制的滑動窗口。
1.一個關鍵隊列
2.一個鏈表
3.或其他。流量控制滑動窗口的實現。哪個更好靜態隊列(數組)vs動態鏈接列表?

任何建議或代碼的實施?

回答

0

更好的是有點主觀/取決於你的目標/如何使用數據結構 - 鏈接列表可能會更好,以避免頭部複製到陣列中,但這是以犧牲複雜的緩衝區跟蹤列表項。搜索一個鏈表更難/更慢,但如果你插入多於檢索,這是一個合理的折衷。

+1

它不僅是鏈表遍歷這是一個問題,malloc是,每次malloc完成時,都會發生上下文切換......在效率方面它太昂貴了 – 2009-07-13 17:10:18