ICTCP-閱讀筆記

IEEE/ACM Transactions on networking,2013

簡介

應用層與傳輸層解決方案的區(qū)別:應用層級的解決方案不具有通用性,只適用于同一種應用,例如PICC。而傳輸層級的解決方案可以屏蔽不同應用間的區(qū)別,更具有通用性。

實驗中每個發(fā)端發(fā)送的數(shù)據(jù)數(shù)量是相同的,總的流量會隨著發(fā)端數(shù)量的增加而增加。在某些文章中,是將總流量固定為一個定值,隨著發(fā)端數(shù)量的增加,單個發(fā)端發(fā)送的數(shù)據(jù)量減少。

方案思想:基于接收窗口的擁塞控制算法。在丟包前進行擁塞避免,避免丟包。理論依據(jù)為接收端可以獲取目前全局的有限吞吐量和可用剩余帶寬。難點在于如果接收窗口大小過小,會限制TCP性能,過大則失去了預防incast擁塞的作用。

解決步驟:(1)在接收端執(zhí)行擁塞控制算法,用剩余帶寬作為調(diào)節(jié)接收窗口的評價標準(2)每條流的接收窗口的調(diào)節(jié)都是獨立的(3)接收窗口的調(diào)節(jié)是基于測量吞吐量和理想吞吐量之間差值的百分比,以及RTT往返時延來確定的。

背景和動機

  1. 介紹了incast問題發(fā)生的情景
    每個TCP連接傳輸?shù)臄?shù)據(jù)塊大小都是比較小的, 為kB量級的,一般測試用的數(shù)據(jù)塊大小在64kB,128kB,256kB,等等。同時連接的服務器數(shù)量在44-48之間,TOR交換機一般情況下是48個端口,上行鏈路帶寬大約為單個端口10Gb。

goodput指的是多個TCP連接的有效吞吐量,是在應用層測量得到的。在實際測試中,接收端先通過多線程向所有發(fā)端發(fā)送請求,TCP連接是逐個發(fā)出的,當該輪上的所有連接都已完成向接收方的數(shù)據(jù)傳輸時,一輪結(jié)束。

探討了并行發(fā)端數(shù)量與有效吞吐量之間的關(guān)系,得出結(jié)論,在最后一跳解決incast問題。

  1. goodput,接收窗口,RTT
    探索了靜態(tài)接收窗口下goodput和RTT的變化情況,分析了其他根據(jù)RTT調(diào)整接收窗口的方案,得出結(jié)論,增加的時延就是因為排隊,但單純依據(jù)RTT調(diào)整接收窗口,不靠譜,一是RTT測量的精確度本身與系統(tǒng)相關(guān)性較大,二是RTT增加時,可用帶寬并不一定增加,這時增加接收窗口只會造成丟包。

方案只調(diào)整RTT小于2ms的TCP流,這樣,該擁塞避免算法就可以只應用于多對一模式的流量,避免了其他長流的吞吐量下降。

  1. incast問題的根源探索
    從時延的組成分析,根源在于交換機出口的排隊。定義了BDP(帶寬時延產(chǎn)品),理論計算了不發(fā)生incast問題時允許同時發(fā)送的數(shù)據(jù)包個數(shù)為8個。指出現(xiàn)代TOR交換機的緩存一般為4MB,平均每個端口為85kB。只有使用好交換機緩存空間,才能保證不丟包,吞吐量不下降。調(diào)節(jié)方案有兩種:發(fā)端擁塞窗口和收端接收窗口。本文選擇收端接收窗口。

設(shè)計

ICTCP方案具有通用性,既可以調(diào)節(jié)incast流,也可以調(diào)節(jié)非incast流。沒有對TCP協(xié)議和TCP包頭做任何修改,具有很強的兼容性。在擁塞發(fā)生前避免,而不是擁塞發(fā)生后快速恢復,避免了丟包。

研究場景為典型的incast場景:多個服務器連接在同一個交換機上,接收端為單個,也連接在該交換機上。該算法只針對低時延流,即RTT小于2ms的流。若一臺服務器同時與數(shù)據(jù)中心內(nèi)服務器通信,又與外部服務器通信,則該算法只會對內(nèi)部服務器的流起作用。在后文中也測試了該算法在背景流量方面的性能。

ICTCP的基礎(chǔ):

  1. 接收端的可用帶寬是接收端實行擁塞控制的信號。
  2. 接收窗口的調(diào)整間隔應大于1個RTT,否則調(diào)整無效,不會應用到下一輪數(shù)據(jù)發(fā)送中。
  3. 接收窗口的設(shè)置在滿足應用吞吐量的要求的前提下,應檢查是否過大。否則若該應用重新請求,則很可能會因突發(fā)流量造成incast擁塞。

基于以上基礎(chǔ),ICTCP算法的思想就是為共享同一個最后一條的所有TCP連接分配合適的接收窗口。保證正常的TCP連接的性能不能下降,多對一TCP流的incast問題可以避免。由于多對一流的性能由最慢的一條TCP連接決定,因此還要考慮多對一TCP連接中的接收窗口公平性問題。

ICTCP算法

  1. 控制觸發(fā):可用帶寬

    假定接收端對每條TCP連接都有一個接口,可統(tǒng)計該流的信息,例如吞吐量等??捎脦捰嬎愎剑?div id="u0z1t8os" class="image-package">
    可用剩余帶寬計算公式
。其中α為0.9。α值越大,越接近一,表示需要更謹慎的調(diào)整接收窗口,吞吐量會更大,對交換機的緩存區(qū)空間要求越高。α值越小,表示是需要更積極的約束接收窗口大小,這樣會造成不必要的吞吐量下降。

每個時間片分為兩個子時間片,第一個子時間片,測量每個網(wǎng)絡接口的流量,然后計算可用剩余帶寬作為在第二個子時間片是否要進行接收窗口增加的判斷依據(jù)。

注意:第一個時間片內(nèi)不會發(fā)生接收窗口增加的動作,在監(jiān)測到擁塞時,第一時間片有可能減少接收窗口。任意一條TCP流的接收窗口減少,都不會更新可用剩余帶寬的值,這個值只有在下一個第一子時間片才會更新重置。

  1. 每條連接的控制間隔:兩個RTT

    至少要經(jīng)過一個RTT的時間,才能使上一輪調(diào)節(jié)的接收窗口生效,因此本方案中設(shè)置的每條連接的控制間隔為2個RTT。每條連接的調(diào)節(jié)都是相互獨立的。但由于不同連接的RTT不同,因此子時間片的設(shè)置要考慮到所有活動的流的RTT,即自時間片長度設(shè)置為
    子時間片長度計算公式
    ,其中w表示第i條連接在上一個時間T的流量的歸一化因子。

舉例說明,假如當前時刻為全局控制間隔的第二個子時間片,某條流i在此時距離上次調(diào)整接收窗口的時間間隔大于2倍的該流的RTT,并且可用帶寬滿足條件,此時可以增加接收窗口。

  1. 單條連接的窗口調(diào)整
    測量的吞吐量Bm,期待的吞吐量Be,采樣的吞吐量Bs,其中Bs計算公式為用一個RTT時間間隔內(nèi)接收端收到的字節(jié)數(shù)除以RTT。Bm的更新公式如下


    Bm更新公式

    在實驗中β值為0.75.期待的吞吐量Be測量公式如下
    Be計算公式
    這樣就保證了測量的吞吐量的上限值為期待的吞吐量。

ICTCP方案中將期待吞吐量與測量吞吐量之間的差值比作為判別接收窗口是否增加或減小的依據(jù)。在之前的方案TCP Vegas中,是用期待吞吐量與測量吞吐量之間的差值作為判斷依據(jù),并且是在發(fā)送端實行控制擁塞窗口的方式進行擁塞控制的。ICTCP方案的Db表示差值比,計算公式如下:
差值比計算公式

其中差值比的取值范圍為0-1.根據(jù)差值比,設(shè)置了兩個閾值γ1(取值為0.1)和γ2(取值為0.5)。

  • 當差值比小于等于γ1或MSS除以接收窗口的比值時,若此時處于全局的第二個子時間片,且有足夠的可用帶寬,則增加接收窗口,并將增加的接收窗口在總的可用帶寬減掉(減去帶寬的計算公式為增加的MSS除以RTT),避免多條流同時增加接收窗口時引發(fā)的overdescribed。慢啟動階段。
  • 當差值比大于γ2時,并且連續(xù)三個RTT的測量結(jié)果都是這樣,此時減小接收窗口,減掉一個MSS,接收窗口最小為2*MSS。擁塞避免階段
  • 其他情況下,接收窗口保持不變。
  1. 維持多條連接公平性的控制器
    當可用剩余帶寬小于0.2C時,則將接收窗口大于平均接收窗口值的連接的接收窗口減去一個MSS。若所有連接都擁有相同的接收窗口,則所有連接均不會減小。
    這種公平性機制主要針對這種情景,較早啟動的連接擁有較大的接收窗口,較晚啟動的接收窗口較小。此時所有連接均不能增加接收窗口,因為沒有足夠的可用帶寬了,只要不出現(xiàn)丟包,這種狀態(tài)會一直維持下去,這就會引發(fā)TCP連接間的公平性問題。所以ICTCP算法設(shè)置了剩余帶寬門限,通過微調(diào)不同連接間的差異,使得所有TCP連接實現(xiàn)平穩(wěn)收斂。

分析(介紹了ICTCP方案的合理性,建立了簡單的流模型)

建立了穩(wěn)態(tài)下的流模型,此時所有流的接收窗口已被優(yōu)化,建立此模型的目的是從理論上討論在穩(wěn)態(tài)下,所需的交換機緩存空間是多少,現(xiàn)有交換機緩存能否支持ICTCP算法的運行。


n條流的bdp等于接收端鏈路的BDP=R*C
單條流在交換機中排隊的數(shù)據(jù)包數(shù)
緩存大小的約束公式

在極端情況下,即網(wǎng)絡中還沒有ack包,所有數(shù)據(jù)包都朝著接收端方案傳輸,此時所需要的緩存大小為
最壞情況下的交換機緩存大小約束

在上述公式的基礎(chǔ)上,將現(xiàn)有48口交換機的相關(guān)數(shù)據(jù)帶入,得出當48個端口同時發(fā)生排隊情況下,每條流的接收窗口為兩個MSS,C=1Gbps,RTT=100微秒時,所需的交換機緩存為6MB。而現(xiàn)有交換機緩存為4MB,因此在最壞情況下,允許同時并發(fā)的發(fā)端數(shù)量為32臺。

實現(xiàn)和評估部分未讀

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容