Homa:A Receiver-Driven Low-LatencyTransport Protocol Using Network Priorities

關(guān)鍵詞:端上擁塞控制 接收端驅(qū)動 短流

1.陌生名詞

heavy-tailed:重尾分布淡溯,尾部比指數(shù)分布大

tail latency:少量響應(yīng)的延遲高于均值函荣,這些響應(yīng)稱為尾延遲

downlink:邊緣終端或節(jié)點從網(wǎng)絡(luò)核心或從更高級別的網(wǎng)絡(luò)節(jié)點(例如路由器和服務(wù)器)接收數(shù)據(jù)

incast:是指一種多對一的通信模式

2.目標(biāo)

在高網(wǎng)絡(luò)負(fù)載下使用當(dāng)前網(wǎng)絡(luò)硬件為短消息提供盡可能低的延遲(消息延遲而不是包延遲)

3.核心挑戰(zhàn)與要點

消除短消息的排隊時延翠拣。

  • 不去調(diào)度每一個包:理想的調(diào)度有——基于中央仲裁器/receiver的調(diào)度按摘,短消息等待調(diào)度需要花費1.5RTTs朗徊,而直接發(fā)送只需要0.5RTT

為盡可能低的延遲,必須盲目傳輸短消息娜庇,而不考慮潛在的擁塞拇泛。 通常滨巴,發(fā)送方必須盲目傳輸足夠的字節(jié)以覆蓋接收方的往返時間(包括兩端的軟件開銷)。在這段時間內(nèi)俺叭,接收機可以返回明確的調(diào)度信息以控制未來的傳輸恭取,而不會引入額外的延遲。

  • buffer的必要性和困擾:盲目傳輸意味著當(dāng)多個發(fā)送者發(fā)送到同一個接收者時熄守,沒有任何協(xié)議可以在沒有緩沖的情況下達到最小延遲蜈垮。然而緩沖區(qū)也會帶來時延,但這是不可避免的裕照。

  • 充分利用In-network的優(yōu)先級:現(xiàn)代交換機中的每個輸出端口支持少量的優(yōu)先級(通常為8)攒发,每個優(yōu)先級有一個隊列。

基于交換機的優(yōu)先級的調(diào)度方案可以用來改善消息延遲晋南,Homa實現(xiàn)了近似SRPT(最短剩余處理時間優(yōu)先惠猿,只是思想,不是實現(xiàn)的算法)的設(shè)計

  • 最大限度地利用有限的優(yōu)先權(quán)需要接收方的控制负间。

接收機確定優(yōu)先級偶妖。 除了盲傳輸之外,接收方還知道從TOR交換機downlink的爭奪帶寬的確切消息集政溃。 結(jié)果趾访,接收方可以最好地決定對每個傳入數(shù)據(jù)包使用哪個優(yōu)先級。 此外董虱,接收器可以通過將優(yōu)先級與數(shù)據(jù)包調(diào)度機制集成在一起來增強優(yōu)先級的有效性

  • 接收方必須動態(tài)分配優(yōu)先級扼鞋。

每個接收方使用兩種機制為其自己的下行鏈路分配優(yōu)先級。

  • 對于大于RTTbytes的消息愤诱,接收者將根據(jù)入站消息的確切集合云头,將每個數(shù)據(jù)包的優(yōu)先級動態(tài)地傳達給其發(fā)送者。 這幾乎消除了所有搶占延遲淫半。
  • 對于盲目發(fā)送的短消息溃槐,發(fā)送者無法知道接收者的其他入站消息。 即使這樣撮慨,接收方仍可以根據(jù)其最近的工作量提前向發(fā)送方提供指導(dǎo)竿痰。
  • 接收方必須以可控的方式過量使用其下行鏈路脆粥。

使用來自接收方的授權(quán)來調(diào)度數(shù)據(jù)包傳輸會減少緩沖區(qū)占用砌溺,但這帶來了新的挑戰(zhàn):接收方可能將授權(quán)發(fā)送給未及時向其發(fā)送的發(fā)送方。例如变隔,當(dāng)一個發(fā)送者有多個接收者的消息時规伐,如果一個以上的接收者決定發(fā)送授權(quán),則發(fā)送者無法將數(shù)據(jù)包全速發(fā)送給所有此類接收者匣缘。這浪費了接收器下行鏈路的帶寬猖闪。

為了應(yīng)對這一挑戰(zhàn)鲜棠,Homa的接收者有意通過同時授予少量發(fā)送者來過度分配其下行鏈路; 這樣可以在接收方的TOR處實現(xiàn)受控的數(shù)據(jù)包排隊培慌,但對于實現(xiàn)高網(wǎng)絡(luò)利用率和高負(fù)載下的最佳消息延遲至關(guān)重要

  • 發(fā)送方也需要SRPT

排隊可能在發(fā)送者和接收者處累積豁陆,這會導(dǎo)致短消息的長時間延遲。對于同一目的地通常會建立一條流吵护,流內(nèi)的包順序發(fā)送盒音,會導(dǎo)致短消息在同一目的地的長消息后面的字節(jié)流中排隊。對于低尾latency馅而,發(fā)送方必須確保短消息不會被長消息延遲祥诽。

4.基本設(shè)計

Homa的四個關(guān)鍵設(shè)計原則:

  • 盲目發(fā)送短消息

  • 使用網(wǎng)絡(luò)優(yōu)先級

  • 結(jié)合接收方驅(qū)動的速率控制來動態(tài)分配優(yōu)先級

  • 接收方下行鏈路的受控的超量使用

Homa將消息分為兩部分:初始unscheduled部分,然后是scheduled部分瓮恭。

發(fā)送方立即發(fā)送unscheduled的數(shù)據(jù)包(RTTbytes)雄坪,但直到接收方指示,它才發(fā)送scheduled數(shù)據(jù)包屯蹦。 unscheduled數(shù)據(jù)包的到來使接收方意識到了該消息维哈。

接收者通過為每個scheduled數(shù)據(jù)包發(fā)送一個授權(quán)數(shù)據(jù)包來請求調(diào)度數(shù)據(jù)包的傳輸。 Homa的接收者動態(tài)設(shè)置scheduled數(shù)據(jù)包的優(yōu)先級颇玷,并定期將一組閾值通知發(fā)送方笨农,以設(shè)置unscheduled數(shù)據(jù)包的優(yōu)先級。 最后帖渠,在沒有響應(yīng)的發(fā)送者的情況下谒亦,接收者實施受控的過量使用以維持高利用率。 最終結(jié)果是使用少量優(yōu)先級隊列精確近似實現(xiàn)了SRPT調(diào)度策略空郊。

5.詳細(xì)解讀

Key Word:接收方驅(qū)動的份招;它是面向消息的(而不是面向流的);它是無連接的狞甚;它不使用顯式的確認(rèn)锁摔;以及它至少實現(xiàn)一次語義,而不是更傳統(tǒng)的至多一次語義哼审。

Homa使用了四種數(shù)據(jù)包類型:

  • Data:從發(fā)送方發(fā)送到接收方谐腰。包含消息中的字節(jié)范圍,由偏移量和長度定義涩盾。還指示消息的總長度

  • Grant:從接收者發(fā)送到發(fā)送者十气。指示發(fā)送方現(xiàn)在可以將消息中的所有字節(jié)傳輸?shù)浇o定的偏移量,并指定要使用的優(yōu)先級

  • Resend:從接收者發(fā)送到發(fā)送者春霍。表示發(fā)送方應(yīng)該再次發(fā)送消息中給定的字節(jié)范圍內(nèi)的內(nèi)容

  • Busy:從發(fā)送方發(fā)送到接收方砸西。指示響應(yīng)ReSend將被延遲(發(fā)送方正忙于傳輸高優(yōu)先級消息,或者RPC操作仍在執(zhí)行);用于防止超時

5.1無連接的RPC

Homa的無連接方法意味著服務(wù)器上保留的狀態(tài)由活動RPC的數(shù)量決定芹枷,而不是由客戶端的總數(shù)決定衅疙,同時保證了同一個sender&receiver pair之前所有消息的獨立傳遞,對于降低尾部延遲至關(guān)重要鸳慈。

5.2發(fā)送方策略

當(dāng)消息到達發(fā)送方的傳輸模塊時饱溢,Homa將其分為兩部分:初始unscheduled部分(第一個RTTbytes字節(jié)),然后是scheduled部分走芋。發(fā)送方使用一個或多個DATA數(shù)據(jù)包立即發(fā)送unscheduled字節(jié)理朋。 在接收方使用GRANTs數(shù)據(jù)包明確請求之前,不會發(fā)送scheduled的字節(jié)绿聘。

每個DATA數(shù)據(jù)包都有一個優(yōu)先級嗽上,該優(yōu)先級由接收方?jīng)Q定,發(fā)送方為其輸出數(shù)據(jù)包實現(xiàn)SRPT:如果來自多個消息的DATA數(shù)據(jù)包準(zhǔn)備好同時傳輸熄攘,則該消息的數(shù)據(jù)包最少其余字節(jié)先發(fā)送兽愤。 發(fā)送方在調(diào)度其數(shù)據(jù)包傳輸時不考慮DATA數(shù)據(jù)包中的優(yōu)先級(DATA數(shù)據(jù)包中的優(yōu)先級用在到達接收方的downlinks)。GRANT和RESEND控制數(shù)據(jù)包總是比DATA數(shù)據(jù)包具有更高的優(yōu)先級挪圾。

5.3流控制

實現(xiàn)在接收端:如果到來的DATA包過多浅萧,那么根據(jù)優(yōu)先級接受,同時接收端返回GRANT的時間會延后哲思,這意味著每個傳入的消息可以占用接收方TOR中最多RRTbyte大小的緩沖區(qū)空間洼畅。

此外消息的數(shù)據(jù)包可以以任何順序到達;接收方使用每個包中的偏移量對它們進行整理棚赔。這使得Homa可以使用每包多路徑路由來最小化網(wǎng)絡(luò)核心的擁塞帝簇。

5.4 包優(yōu)先級

接收方確定其所有傳入數(shù)據(jù)包的優(yōu)先級,以便近似于SRPT策略靠益。它對unscheduled和scheduled的數(shù)據(jù)包使用不同的機制丧肴。

對于未調(diào)度的數(shù)據(jù)包,接收方預(yù)先分配優(yōu)先級胧后。它使用最近的流量模式來選擇優(yōu)先級分配芋浮,并通過將這些信息打包到其他數(shù)據(jù)包上,將這些信息傳播給發(fā)送者壳快。每個sender保留每個receiver的最新分配優(yōu)先級(每個接收器占用十幾個字節(jié))纸巷,并在傳遞unscheduled的數(shù)據(jù)包時使用這些信息。如果receiver的接收的通信量發(fā)生變化眶痰,它將在下一次與每個發(fā)送方通信時分發(fā)新的優(yōu)先級分配瘤旨。

還沒讀懂3.4

5.5 overcommitment

最初的設(shè)計中,每個接收器一次只允許一條active消息凛驮。如果一個接收者有多個部分接收到的消息裆站,它只向其中的最高優(yōu)先級發(fā)送授權(quán)条辟;一旦它授予了最高優(yōu)先級消息的所有字節(jié)黔夭,它就開始向下一個最高優(yōu)先級消息授予權(quán)限宏胯,依此類推。這種方法的理由是最小化緩沖區(qū)占用本姥,實現(xiàn)從運行到完成肩袍,而不是循環(huán)調(diào)度。但由于發(fā)送者并不總是立即響應(yīng)grant婚惫,所以網(wǎng)絡(luò)未得到充分利用氛赐。

接收器沒有辦法知道某個特定的發(fā)送方是否會響應(yīng)授權(quán),因此保持downlink充分利用的唯一方法是過度提交:一個receiver一次向多個sender授權(quán)先舷,即使它的downlink一次只能支持一個傳輸艰管。使用這種方法,如果一個sender沒有響應(yīng)蒋川,那么downlink可以用于另一個sender牲芋。如果多個sender同時響應(yīng),優(yōu)先級機制確保首先傳遞最短的消息,來自其他消息的包將被緩沖在TOR中

使用“degree of overcommitment”這個術(shù)語來表示給定接收器上一次可以激活的消息的最大數(shù)量捺球。更高程度的degree of overcommitment使用降低了浪費帶寬的可能性缸浦,但它會在TOR中消耗更多的緩沖空間(每個活動消息最多為RTTbytes),并且會導(dǎo)致消息之間更多的循環(huán)調(diào)度氮兵,從而增加存儲空間完成時間裂逐。

5.6 incast

Homa通過計算每個節(jié)點的未完成的rpc來檢測即將到來的incasts。一旦這個數(shù)字超過一個閾值泣栈,新的RPC就會被標(biāo)記上一個特殊的標(biāo)志卜高,使服務(wù)器在響應(yīng)消息中對unscheduled字節(jié)使用一個更低的限制(幾百字節(jié))。較小的響應(yīng)仍將很快通過南片,但較大的響應(yīng)將由接收方調(diào)度篙悯;

Incast也可能以不可預(yù)測的方式發(fā)生;例如铃绒,多臺計算機可能同時決定向單個服務(wù)器發(fā)出請求鸽照。然而,許多這樣的請求不太可能緊密地同步颠悬,從而導(dǎo)致不必要的問題矮燎。如果發(fā)生這種情況,Homa對緩沖空間的有效利用仍然允許它支持?jǐn)?shù)百個同時到達而不丟失數(shù)據(jù)包赔癌。此外诞外,在很多請求被發(fā)出之前就完成了,所以這種情況存在的概率不太高

5.6 丟包與重傳

丟包有兩個原因:網(wǎng)絡(luò)損壞和緩沖區(qū)溢出灾票。前者非常罕見峡谊,而homa減少了很多緩沖區(qū)的使用,使得緩沖區(qū)溢出也變得罕見〖让牵基于這個背景濒析,Homa對丟包處理進行了簡化

如果經(jīng)過一段很長的時間(幾毫秒)而沒有其他數(shù)據(jù)包到達消息,receiver將發(fā)送一個重新發(fā)送數(shù)據(jù)包啥纸,標(biāo)識丟失字節(jié)的第一個范圍号杏;sender將重新傳輸這些字節(jié)。(與tcp收到后返回ACK斯棒,發(fā)送方負(fù)責(zé)檢測重發(fā)不同)

如果RPC請求的所有初始數(shù)據(jù)包都丟失了盾致,服務(wù)器將不知道該消息,因此它不會發(fā)出消息重新發(fā)送荣暮。但是庭惜,客戶端將在響應(yīng)消息上超時,并且它將為響應(yīng)發(fā)送一個RESEND(即使請求尚未完全傳輸穗酥,它也會這樣做)蜈块。當(dāng)服務(wù)器接收到一個帶有未知RPCid的響應(yīng)的RESEND時,它假定請求消息一定已丟失迷扇,并結(jié)束對請求的第一個RTTbytes的重新發(fā)送.

如果多次重發(fā)無響應(yīng)百揭,將會向上層調(diào)用方報錯

創(chuàng)新點

  • 使用現(xiàn)代網(wǎng)絡(luò)交換機提供的優(yōu)先級隊列。為了充分利用有限的優(yōu)先級隊列數(shù)

    • Homa對接收者動態(tài)分配優(yōu)先級蜓席,并將優(yōu)先級與pHost和NDP等接收者驅(qū)動的流量控制機制相結(jié)合器一。
  • 使用控制承諾(controlled over commitment),即接收者允許少數(shù)發(fā)送者同時發(fā)送厨内。

    • 稍微超量使用接收器下行鏈路這種方式使Homa有效地使用網(wǎng)絡(luò)帶寬:Homa可以比pFabric[4]祈秕、PIAS、pHost和NDP高2-33%地維持網(wǎng)絡(luò)負(fù)載雏胃。Homa限制了超量使用请毛,并將其與優(yōu)先級機制集成,以防止短消息排隊瞭亮。
  • Homa還具有其他特性

    • 使用基于消息的體系結(jié)構(gòu)方仿,而不是流式傳輸方法:這消除了發(fā)送方的首行阻塞,并將尾部延遲比流式傳輸(如TCP)減少了100倍统翩。

    • Homa是無連接的仙蚜,減少了在大規(guī)模應(yīng)用上的連接狀態(tài)。

    • 它沒有明確的確認(rèn)厂汗,從而減少了小消息的開銷委粉,并且實現(xiàn)了至少一次而不是一次的語義

性能提升

  • 與之前的接收器驅(qū)動相比,Homa的優(yōu)先級機制提高了尾部延遲2-16倍接近

  • 與發(fā)送方驅(qū)動的優(yōu)先級機制(如asPIAS[6])相比娶桦,Homa提供了更好的SRPT(最短剩余處理時間優(yōu)先)的近似值贾节;這比PIA減少了0-3倍的尾部延遲

#涉及技術(shù)

pHost:最接近Homa的先驗方案汁汗,是使用接收機驅(qū)動方法近似SRPT的一個例子

  • 主要機制是數(shù)據(jù)包調(diào)度:發(fā)送者盲目地發(fā)送每個消息的第一個RTTbytes,但是之后的包只在響應(yīng)來自接收方的顯式請求時才被傳輸栗涂。接收機調(diào)度授權(quán)來實現(xiàn)SRPT知牌,同時控制分組的流入以匹配下行鏈路的速度

  • 不足

    • pHost僅有限地使用優(yōu)先級:它統(tǒng)計地為所有盲傳輸分配一個高優(yōu)先級,為所有調(diào)度的數(shù)據(jù)包分配一個較低的優(yōu)先級戴差。這在兩個方面影響了它近似SRPT的能力。首先铛嘱,它將所有盲傳輸捆綁到一個單一優(yōu)先級中暖释。雖然這對于大多數(shù)字節(jié)來自大消息(圖1中的W4-W5)的工作負(fù)載是有原因的,但是對于大量字節(jié)被盲目傳輸?shù)墓ぷ髫?fù)載(W1-W3)來說墨吓,這是有問題的

    • 第二球匕,對于比RTTbytes長的消息,pHost不能立即搶占一個較大的消息來替換較短的消息帖烘。同樣亮曹,問題的根源是pHost將所有這些消息捆綁到一個優(yōu)先級中,這會導(dǎo)致排隊延遲秘症。我們將在§3.4中說明照卦,這種情況會導(dǎo)致延遲,這會損害延遲乡摹,特別是對于持續(xù)幾個rtt的中等大小的消息

博客

https://blog.csdn.net/hb_wxz/article/details/89926217

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末役耕,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子聪廉,更是在濱河造成了極大的恐慌瞬痘,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,204評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件板熊,死亡現(xiàn)場離奇詭異框全,居然都是意外死亡,警方通過查閱死者的電腦和手機干签,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,091評論 3 395
  • 文/潘曉璐 我一進店門津辩,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人容劳,你說我怎么就攤上這事丹泉。” “怎么了鸭蛙?”我有些...
    開封第一講書人閱讀 164,548評論 0 354
  • 文/不壞的土叔 我叫張陵摹恨,是天一觀的道長。 經(jīng)常有香客問我娶视,道長晒哄,這世上最難降的妖魔是什么睁宰? 我笑而不...
    開封第一講書人閱讀 58,657評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮寝凌,結(jié)果婚禮上柒傻,老公的妹妹穿的比我還像新娘。我一直安慰自己较木,他們只是感情好红符,可當(dāng)我...
    茶點故事閱讀 67,689評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著伐债,像睡著了一般预侯。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上峰锁,一...
    開封第一講書人閱讀 51,554評論 1 305
  • 那天萎馅,我揣著相機與錄音,去河邊找鬼虹蒋。 笑死糜芳,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的魄衅。 我是一名探鬼主播峭竣,決...
    沈念sama閱讀 40,302評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼晃虫!你這毒婦竟也來了邪驮?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,216評論 0 276
  • 序言:老撾萬榮一對情侶失蹤傲茄,失蹤者是張志新(化名)和其女友劉穎毅访,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體盘榨,經(jīng)...
    沈念sama閱讀 45,661評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡喻粹,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,851評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了草巡。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片守呜。...
    茶點故事閱讀 39,977評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖山憨,靈堂內(nèi)的尸體忽然破棺而出查乒,到底是詐尸還是另有隱情,我是刑警寧澤郁竟,帶...
    沈念sama閱讀 35,697評論 5 347
  • 正文 年R本政府宣布玛迄,位于F島的核電站,受9級特大地震影響棚亩,放射性物質(zhì)發(fā)生泄漏蓖议。R本人自食惡果不足惜虏杰,卻給世界環(huán)境...
    茶點故事閱讀 41,306評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望勒虾。 院中可真熱鬧纺阔,春花似錦、人聲如沸修然。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,898評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽愕宋。三九已至玻靡,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間掏婶,已是汗流浹背啃奴。 一陣腳步聲響...
    開封第一講書人閱讀 33,019評論 1 270
  • 我被黑心中介騙來泰國打工潭陪, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留雄妥,地道東北人。 一個月前我還...
    沈念sama閱讀 48,138評論 3 370
  • 正文 我出身青樓依溯,卻偏偏與公主長得像老厌,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子黎炉,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,927評論 2 355