SRD(Scalable Reliable Datagram,可擴(kuò)展的可靠數(shù)據(jù)報(bào)文),是AWS年推出的協(xié)議,旨在解決亞馬遜的云性能挑戰(zhàn)。它是專為AWS數(shù)據(jù)中心網(wǎng)絡(luò)設(shè)計(jì)的、基于Nitro芯片、為提高HPC性能實(shí)現(xiàn)的一種高吞吐、低延遲的網(wǎng)絡(luò)傳輸協(xié)議。 ?
SRD 不保留數(shù)據(jù)包順序,而是通過(guò)盡可能多的網(wǎng)絡(luò)路徑發(fā)送數(shù)據(jù)包,同時(shí)避免路徑過(guò)載。為了最大限度地減少抖動(dòng)并確保對(duì)網(wǎng)絡(luò)擁塞波動(dòng)的最快響應(yīng),在 AWS 自研的 Nitro chip 中實(shí)施 SRD。
SRD 由 EC2 主機(jī)上的 HPC/ML 框架通過(guò) AWS EFA(Elastic Fabric Adapter,彈性結(jié)構(gòu)適配器)內(nèi)核旁路接口使用。
SRD的特點(diǎn):
1)不保留數(shù)據(jù)包順序,交給上層消息傳遞層處理
2)通過(guò)盡可能多的網(wǎng)絡(luò)路徑發(fā)包,利用ECMP標(biāo)準(zhǔn),發(fā)端控制數(shù)據(jù)包封裝來(lái)控制ECMP路徑選擇,實(shí)現(xiàn)多路徑的負(fù)載平衡
3)自有擁塞控制算法,基于每個(gè)連接動(dòng)態(tài)速率限制,結(jié)合RTT(Round Trip Time)飛行時(shí)間來(lái)檢測(cè)擁塞,可快速?gòu)膩G包或鏈路故障中恢復(fù)
4)由于無(wú)序發(fā)包以及不支持分段,SRD傳輸時(shí)所需要的QP(隊(duì)列對(duì))顯著減少
為什么不是TCP?
TCP 是 IP 網(wǎng)絡(luò)中可靠數(shù)據(jù)傳輸?shù)闹饕侄?,自誕生以來(lái)一直很好地服務(wù)于 Internet,并且仍然是大多數(shù)通信的最佳協(xié)議。
但是,它不適合對(duì)延遲敏感的處理,TCP 在數(shù)據(jù)中心最好的往返延遲差不多是 25us,因擁塞(或鏈路故障)等待導(dǎo)致的異常值可以是 50 ms,甚至數(shù)秒,帶來(lái)這些延遲的主要原因是TCP丟包之后的重傳機(jī)制。
另外,TCP傳輸是一對(duì)一的連接,就算解決了時(shí)延的問(wèn)題,也難在故障時(shí)重新快速連線。 ?
TCP 是通用協(xié)議,沒(méi)有針對(duì)HPC場(chǎng)景進(jìn)行優(yōu)化,早在2020 年,AWS 已經(jīng)提出需要移除TCP。
為什么不是RoCE?
InfiniBand 是一種用于高性能計(jì)算的流行的高吞吐量低延遲互連,它支持內(nèi)核旁路和傳輸卸載。RoCE(RDMA over Converged Ethernet),也稱為 InfiniBand over Ethernet,允許在以太網(wǎng)上運(yùn)行 InfiniBand 傳輸,理論上可以提供 AWS 數(shù)據(jù)中心中 TCP 的替代方案。
EFA 主機(jī)接口與 InfiniBand/RoCE 接口非常相似。但是 InfiniBand 傳輸不適合 AWS 可擴(kuò)展性要求。原因之一是 RoCE 需要 PFC(優(yōu)先級(jí)流量控制),這在大型網(wǎng)絡(luò)上是不可行的,因?yàn)樗鼤?huì)造成隊(duì)頭阻塞、擁塞擴(kuò)散和偶爾的死鎖。
PFC 更適合比 AWS 規(guī)模小的數(shù)據(jù)中心。此外,即使使用 PFC,RoCE 在擁塞(類似于 TCP)和次優(yōu)擁塞控制下仍會(huì)遭受 ECMP(等價(jià)多路徑路由)沖突。
為什么是SRD?
SRD是專為AWS設(shè)計(jì)的可靠的、高性能的、低延遲的網(wǎng)絡(luò)傳輸。這是數(shù)據(jù)中心網(wǎng)絡(luò)數(shù)據(jù)傳輸?shù)囊淮沃卮蟾倪M(jìn)。SRD受InfiniBand可靠數(shù)據(jù)報(bào)的啟發(fā),結(jié)合大規(guī)模的云計(jì)算場(chǎng)景下的工作負(fù)載,SRD也經(jīng)過(guò)了很多的更改和改進(jìn)。SRD利用了云計(jì)算的資源和特點(diǎn)(例如AWS的復(fù)雜多路徑主干網(wǎng)絡(luò))來(lái)支持新的傳輸策略,為其在緊耦合的工作負(fù)載中發(fā)揮價(jià)值。
任何真實(shí)的網(wǎng)絡(luò)中都會(huì)出現(xiàn)丟包、擁塞阻塞等一系列問(wèn)題。這不是說(shuō)每天會(huì)發(fā)生一次的事情,而是一直在發(fā)生。
大多數(shù)協(xié)議(如 TCP)是按順序發(fā)送數(shù)據(jù)包,這意味著單個(gè)數(shù)據(jù)包丟失會(huì)擾亂隊(duì)列中所有數(shù)據(jù)包的準(zhǔn)時(shí)到達(dá)(這種效應(yīng)稱為“隊(duì)頭阻塞”)。而這實(shí)際上會(huì)對(duì)丟包恢復(fù)和吞吐量產(chǎn)生巨大影響。
SRD 的創(chuàng)新在于有意通過(guò)多個(gè)路徑分別發(fā)包,雖然包到達(dá)后通常是亂序的,但AWS實(shí)現(xiàn)了在接收處以極快的速度進(jìn)行重新排序,最終在充分利用網(wǎng)絡(luò)吞吐能力的基礎(chǔ)上,極大地降低了傳輸延遲。 ?
SRD 可以一次性將構(gòu)成數(shù)據(jù)塊的所有數(shù)據(jù)包推送到所有可能路徑,這意味著SRD不會(huì)受到隊(duì)頭阻塞的影響,可以更快地從丟包場(chǎng)景中恢復(fù)過(guò)來(lái),保持高吞吐量。 ?
眾所周知,P99尾部延遲代表著只有1%的請(qǐng)求被允許變慢,但這也恰恰反映了網(wǎng)絡(luò)中所有丟包、重傳和擁塞帶來(lái)的最終性能體現(xiàn),更能夠說(shuō)明“真實(shí)”的網(wǎng)絡(luò)情況。SRD能夠讓P99 尾延遲直線下降(大約 10 倍)。
SRD的主要功能包括:
1)亂序交付:取消按順序傳遞消息的約束,消除了隊(duì)頭阻塞,AWS在EFA用戶空間軟件堆棧中實(shí)現(xiàn)了數(shù)據(jù)包重排序處理引擎
2)等價(jià)多路徑路由(ECMP):兩個(gè)EFA實(shí)例之間可能有數(shù)百條路徑,通過(guò)使用大型多路徑網(wǎng)絡(luò)的一致性流哈希的屬性和SRD對(duì)網(wǎng)絡(luò)狀況的快速反應(yīng)能力,可以找到消息的最有效路徑。數(shù)據(jù)包噴涂(Packet Spraying)可防止出現(xiàn)擁塞熱點(diǎn),并可以從網(wǎng)絡(luò)故障中快速無(wú)感地恢復(fù)
3)快速的丟包響應(yīng):SRD對(duì)丟包的響應(yīng)比任何高層級(jí)的協(xié)議都快得多。偶爾的丟包,特別是對(duì)于長(zhǎng)時(shí)間運(yùn)行的HPC應(yīng)用程序,是正常網(wǎng)絡(luò)操作的一部分,不是異常情況
4)可擴(kuò)展的傳輸卸載:使用SRD,與其他可靠協(xié)議(如InfiniBand可靠連接IBRC)不同,一個(gè)進(jìn)程可以創(chuàng)建并使用一個(gè)隊(duì)列對(duì)與任何數(shù)量的對(duì)等方進(jìn)行通信
? ?
SRD 實(shí)際工作的關(guān)鍵不在于協(xié)議,而在于它在硬件中的實(shí)現(xiàn)方式。換種說(shuō)法,就目前而言,SRD 僅在使用 AWS Nitro DPU 時(shí)才有效。
SRD亂序交付的數(shù)據(jù)包需要重新排序才能被操作系統(tǒng)讀取,而處理混亂的數(shù)據(jù)包流顯然不能指望“日理萬(wàn)機(jī)”的 CPU。即便真通過(guò)CPU 來(lái)完全負(fù)責(zé) SRD 協(xié)議并重新組裝數(shù)據(jù)包流,無(wú)疑是高射炮打蚊子——大材小用,那會(huì)使系統(tǒng)一直忙于處理不應(yīng)該花費(fèi)太多時(shí)間的事情,而根本無(wú)法真正做到性能的提升。
在SRD這一不尋常的“協(xié)議保證”下,當(dāng)網(wǎng)絡(luò)中的并行導(dǎo)致數(shù)據(jù)包無(wú)序到達(dá)時(shí),AWS將消息順序恢復(fù)留給上層,因?yàn)樗鼘?duì)所需的排序語(yǔ)義有更好的理解,并選擇在AWS Nitro卡中實(shí)施SRD可靠性層。其目標(biāo)是讓SRD盡可能靠近物理網(wǎng)絡(luò)層,并避免主機(jī)操作系統(tǒng)和管理程序注入的性能噪音。這允許快速適應(yīng)網(wǎng)絡(luò)行為:快速重傳并迅速減速以響應(yīng)隊(duì)列建立。
AWS說(shuō)他們希望數(shù)據(jù)包在“棧上”重新組裝,他們實(shí)際上是在說(shuō)希望 DPU 在將數(shù)據(jù)包返回給系統(tǒng)之前,完成將各個(gè)部分重新組合在一起的工作。系統(tǒng)本身并不知道數(shù)據(jù)包是亂序的。系統(tǒng)甚至不知道數(shù)據(jù)包是如何到達(dá)的。它只知道它在其他地方發(fā)送了數(shù)據(jù)并且沒(méi)有錯(cuò)誤地到達(dá)。
這里的關(guān)鍵就是 DPU。AWS SRD 僅適用于 AWS 中配置了 Nitro 的系統(tǒng)。現(xiàn)在不少使用AWS的服務(wù)器都安裝和配置了這種額外的硬件,其價(jià)值在于啟用此功能將能夠提高性能。用戶需要在自己的服務(wù)器上專門啟用它,如果需要與未啟用 SRD 或未配置 Nitro DPU 的設(shè)備通信,就不會(huì)得到相應(yīng)的性能提升。
至于很多人關(guān)心的SRD未來(lái)是否會(huì)開(kāi)源,只能說(shuō)讓我們拭目以待吧!
審核編輯:劉清
-
適配器
+關(guān)注
關(guān)注
9文章
2054瀏覽量
69740 -
DPU
+關(guān)注
關(guān)注
0文章
393瀏覽量
24937 -
HPC
+關(guān)注
關(guān)注
0文章
333瀏覽量
24338
原文標(biāo)題:當(dāng)網(wǎng)絡(luò)傳輸協(xié)議SRD遇上DPU
文章出處:【微信號(hào):SDNLAB,微信公眾號(hào):SDNLAB】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
MSP430單片機(jī)的特點(diǎn)有哪些呢
IGBT模塊有哪些特點(diǎn)和應(yīng)用呢
STM32的通用定時(shí)器有何特點(diǎn)及其應(yīng)用呢
STM32的UART特點(diǎn)有哪些呢
iTOP-Exynos4412開(kāi)發(fā)板的特點(diǎn)有哪些呢
單片機(jī)與嵌入式系統(tǒng)的特點(diǎn)有哪些呢
使用8098微機(jī)設(shè)計(jì)SRD電機(jī)控制系統(tǒng)的資料說(shuō)明

對(duì)蘋果SRD計(jì)劃規(guī)則不滿 谷歌等不再參與iPhone的SRD安全計(jì)劃
雷達(dá)信號(hào)有什么特點(diǎn)?和通信信號(hào)的差異在哪里呢?
基于8098微機(jī)的SRD電機(jī)控制系統(tǒng)

評(píng)論