在這篇論文中,我們提出了分級回覆封包(ACK)間隔器的實作方法,並且將其實現在Linux系統中。此分級ACK間隔器可以被安裝在伺服器端、使用者端、或是在路由器端的網路核心中,並且提供了不同優先權的排程以及頻寬管理的功能。ACK相對於資料封包來說,封包大小較小,是為控制與分析的理想對象。 對於不同類別(Class)的封包,分級ACK間隔器採用固定的優先權順序來控管。對於同一Class,不同的TCP Session之間,採用Token Round Robin (TRR)與Frequency-Based Rotation Priority Queue (FBRPQ) 來達到公平性的要求。 最後以實作來驗證提出的演算法,並改善了TCP傳輸的速率與穩定性。此外,也比較了在不同的排程方法下,分級ACK間隔器處理器的使用率。
In this thesis,we propose a novel architecture of the Class-Based ACK Spacer and implement it on Linux platforms. This ACK spacer could be installed on the server side, client side, or on the router to provide different priorities and bandwidth allocations of each TCP class and session over ACK packet control. Since ACK is relatively small compared to TCP data packet, we hypothesize that ACK is better for buffering or in CPU load. We use static priority algorithm and token bucket to solve multi-class scheduling problem. To control the sessions in the same priority class, we propose two session scheduling algorithms, Token Round Robin and Frequency-Based Rotation Priority Queue, to achieve fairness between sessions. Finally, we construct experiment environment to verify our implementations. The TCP throughput could be stabilized and improved with proper parameters set. Bandwidth fair-share could be achieved. At last, we also analyze CPU load using different scheduling algorithms.