論文閱讀:Heavy-Hitter Detection Entirely in the Data Plane

摘要:

識(shí)別“heavy hitter”數(shù)據(jù)流或數(shù)據(jù)平面中具有大流量的數(shù)據(jù)流對(duì)于多種應(yīng)用(例如,知道流量大小的路由彤守,DoS檢測(cè)和流量工程)來(lái)說(shuō)非常重要诽凌。

然而矾瑰,數(shù)據(jù)平面中的測(cè)量受到線速處理10-100Gb / s)和交換硬件中有限內(nèi)存需求的限制。

提出了HashPipe酵镜,這是一種使用新興的可編程數(shù)據(jù)平面的heavy hitter檢測(cè)算法碉碉。HashPipe實(shí)現(xiàn)了哈希表的管道,該哈希表保留了重流的計(jì)數(shù)器淮韭,同時(shí)隨著時(shí)間的推移逐出了較輕的計(jì)數(shù)器垢粮。

背景/問(wèn)題:

許多網(wǎng)絡(luò)管理應(yīng)用程序可以從發(fā)現(xiàn)對(duì)鏈路貢獻(xiàn)大量流的流量中受益:例如,減輕鏈路擁塞靠粪,規(guī)劃網(wǎng)絡(luò)容量蜡吧,檢測(cè)網(wǎng)絡(luò)異常和攻擊,或緩存轉(zhuǎn)發(fā)表?xiàng)l目占键。

此外昔善,在較小的時(shí)間尺度上(與流量變化相比較)識(shí)別此類(lèi)“heavy hitter”可以實(shí)現(xiàn)重流的動(dòng)態(tài)路由和動(dòng)態(tài)流量調(diào)度。人們希望始終在網(wǎng)絡(luò)中的所有交換機(jī)上運(yùn)行重流監(jiān)視畔乙,以快速響應(yīng)短期流量變化君仆。

在交換機(jī)中處理數(shù)據(jù)包時(shí),是否可以識(shí)別屬于高流量的數(shù)據(jù)包牲距,以便交換機(jī)可以對(duì)其進(jìn)行特殊處理返咱?現(xiàn)有的監(jiān)視heavy hitter的方法很難以可接受的開(kāi)銷(xiāo)獲得合理的準(zhǔn)確性。

NetFlow的形式進(jìn)行數(shù)據(jù)包采樣在軟件中處理采樣數(shù)據(jù)包的CPU和帶寬開(kāi)銷(xiāo)使其無(wú)法以足夠高的速率進(jìn)行采樣嗅虏。而另一種方法洛姑,sketch需要大量的內(nèi)存開(kāi)銷(xiāo)來(lái)檢索heavy hitter

新興的可編程交換機(jī)使我們不僅可以進(jìn)行采樣皮服,哈希和計(jì)數(shù)楞艾,還為在交換機(jī)上運(yùn)行新穎算法提供了機(jī)會(huì)参咙。

當(dāng)在10-100個(gè)端口上以每個(gè)端口10-100 Gbps的線速運(yùn)行時(shí),可以對(duì)這些交換機(jī)進(jìn)行編程硫眯,以維持多個(gè)數(shù)據(jù)包的狀態(tài)蕴侧,例如,將流標(biāo)識(shí)符作為keys帶著計(jì)數(shù)器两入。

但是交換機(jī)受到保持高分組處理吞吐量的需求的約束:

  • 確定性的小時(shí)間預(yù)算(1 ns)净宵,用于在每個(gè)階段處理狀態(tài)和處理數(shù)據(jù)包
  • 每個(gè)階段對(duì)內(nèi)存存儲(chǔ)狀態(tài)的訪問(wèn)次數(shù)有限,通常只有一次readmodify-write
  • 每個(gè)階段可用的內(nèi)存量有限
  • 需要僅將大部分?jǐn)?shù)據(jù)包通過(guò)管道移動(dòng)一次裹纳,以避免停頓和降低吞吐量

解決辦法:

我們提出了HashPipe择葡,該算法可在可編程交換機(jī)的功能和約束范圍內(nèi)以高精度跟蹤最重的k個(gè)流量。

HashPipe在哈希表的流水線中維護(hù)流標(biāo)識(shí)符(“鍵”)和交換機(jī)中的重流計(jì)數(shù)剃氧。

當(dāng)數(shù)據(jù)包散列到流水線第一級(jí)中的某個(gè)位置時(shí)敏储,如果有命中(或空插槽),則將更新(或初始化)其計(jì)數(shù)器朋鞍。如果有遺漏已添,則以現(xiàn)有密鑰為代價(jià)插入新密鑰 。

在所有下游階段滥酥,隨包一起攜帶剛剛收回的物品的密鑰和數(shù)量更舞,在哈希表中查找的與攜帶的密鑰之間,具有較大計(jì)數(shù)的密鑰將保留在哈希表中坎吻,而另一個(gè)密鑰則與數(shù)據(jù)包一起攜帶到下一個(gè)階段缆蝉,或者如果密鑰被攜帶,在最后階段則將從交換機(jī)中完全刪除數(shù)據(jù)包禾怠。

因此返奉,HashPipe使用流水線操作對(duì)哈希表中的多個(gè)位置進(jìn)行采樣,并使用較輕的鍵代替較重的鍵吗氏,從而在有限的可用內(nèi)存中“清除”沉重的鍵芽偏,并且每個(gè)階段僅更新一個(gè)位置。

Hashpipe算法實(shí)現(xiàn)細(xì)節(jié):

節(jié)省空間:

要跟蹤k個(gè)最重的項(xiàng)目弦讽,節(jié)省空間的方法是使用一個(gè)具有m個(gè)(為O(k))插槽的表污尉,每個(gè)插槽都標(biāo)識(shí)一個(gè)不同的流的密鑰及其計(jì)數(shù)器



當(dāng)數(shù)據(jù)包到達(dá)時(shí),如果表中還沒(méi)有對(duì)應(yīng)的流往产,并且表中還有剩余空間被碗,則空間節(jié)省功能將插入新的流,計(jì)數(shù)為1仿村。如果表中存在流锐朴,算法將更新相應(yīng)的流計(jì)數(shù)器。但是蔼囊,如果表已滿(mǎn)焚志,并且在表中找不到流衣迷,則該算法將表中具有最小計(jì)數(shù)器值的流條目替換為傳入數(shù)據(jù)包的流,并遞增此最小值計(jì)數(shù)器酱酬。

最小值采樣:

我們要做的是查看隨機(jī)選擇的計(jì)數(shù)器的較小的恒定數(shù)量d的最小值壶谒,而不是整個(gè)表,將每個(gè)數(shù)據(jù)包的最壞情況的存儲(chǔ)器訪問(wèn)次數(shù)限制為較小的固定常數(shù)d膳沽。

算法2中顯示了修改后的版本HashParallel汗菜。


與算法1相比,主要變化在于檢查了一組表插槽(在查找或更新任何鍵時(shí))挑社,該表插槽現(xiàn)在是通過(guò)對(duì)表哈希進(jìn)行哈希處理而獲得的d個(gè)插槽集合陨界,使用d個(gè)獨(dú)立哈希函數(shù)的傳入密鑰。

實(shí)際上滔灶,我們對(duì)表進(jìn)行采樣以使用幾個(gè)位置來(lái)估計(jì)最小值普碎。但是吼肥,只有d個(gè)插槽的最小值可能會(huì)與整個(gè)m個(gè)插槽表的最小值相距甚遠(yuǎn)录平。最小值的設(shè)定值可能會(huì)影響有用的錯(cuò)誤保證,以節(jié)省空間缀皱。

哈希表的多個(gè)階段:

為了減少對(duì)內(nèi)存的讀取次數(shù)斗这,以方便以線路速率進(jìn)行操作,我們將計(jì)數(shù)器表T拆分為d個(gè)不相交的表啤斗,并且每個(gè)表正好讀取一個(gè)插槽表箭。

由于不同的數(shù)據(jù)包可以同時(shí)訪問(wèn)不同的表,因此該設(shè)計(jì)可以使對(duì)d表的內(nèi)存訪問(wèn)的流水線化钮莲,但是免钻,數(shù)據(jù)包可能需要通過(guò)此流水線兩次:一次確定d個(gè)時(shí)隙中最小值的計(jì)數(shù)器,第二次更新該計(jì)數(shù)器崔拥。

前饋包處理:

現(xiàn)在极舔,我們使用兩個(gè)關(guān)鍵思想來(lái)減輕通過(guò)交換管道多次處理數(shù)據(jù)包的需求。

首先链瓦,跟蹤滾動(dòng)最小值:通過(guò)將計(jì)數(shù)器和密鑰作為包元數(shù)據(jù)在管道中移動(dòng)拆魏,我們跟蹤當(dāng)數(shù)據(jù)包穿過(guò)管道時(shí)到目前為止看到的最小計(jì)數(shù)器值(及其密鑰)。

其次是始終插入第一階段:如果在管道的第一個(gè)階段中找不到傳入密鑰慈俯,則沒(méi)有關(guān)聯(lián)的計(jì)數(shù)器值可與該表中的密鑰進(jìn)行比較渤刃。在這里,我們選擇始終在第一個(gè)階段插入新的流贴膘,并將現(xiàn)有的密鑰和計(jì)數(shù)器逐出數(shù)據(jù)包元數(shù)據(jù)卖子,在該階段之后,分組可以以上述通常的方式跟蹤后續(xù)階段的最小滾動(dòng)刑峡。

其實(shí)整個(gè)HashPipe的結(jié)構(gòu)都可以用圖三的算法表示出來(lái)洋闽。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末璃哟,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子喊递,更是在濱河造成了極大的恐慌随闪,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,378評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件骚勘,死亡現(xiàn)場(chǎng)離奇詭異铐伴,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)俏讹,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,356評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門(mén)当宴,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人泽疆,你說(shuō)我怎么就攤上這事户矢。” “怎么了殉疼?”我有些...
    開(kāi)封第一講書(shū)人閱讀 152,702評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵梯浪,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我瓢娜,道長(zhǎng)挂洛,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,259評(píng)論 1 279
  • 正文 為了忘掉前任眠砾,我火速辦了婚禮虏劲,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘褒颈。我一直安慰自己柒巫,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,263評(píng)論 5 371
  • 文/花漫 我一把揭開(kāi)白布谷丸。 她就那樣靜靜地躺著堡掏,像睡著了一般。 火紅的嫁衣襯著肌膚如雪淤井。 梳的紋絲不亂的頭發(fā)上布疼,一...
    開(kāi)封第一講書(shū)人閱讀 49,036評(píng)論 1 285
  • 那天,我揣著相機(jī)與錄音币狠,去河邊找鬼游两。 笑死,一個(gè)胖子當(dāng)著我的面吹牛漩绵,可吹牛的內(nèi)容都是我干的贱案。 我是一名探鬼主播,決...
    沈念sama閱讀 38,349評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼宝踪!你這毒婦竟也來(lái)了侨糟?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 36,979評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤瘩燥,失蹤者是張志新(化名)和其女友劉穎秕重,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體厉膀,經(jīng)...
    沈念sama閱讀 43,469評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡溶耘,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,938評(píng)論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了服鹅。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片凳兵。...
    茶點(diǎn)故事閱讀 38,059評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖企软,靈堂內(nèi)的尸體忽然破棺而出庐扫,到底是詐尸還是另有隱情,我是刑警寧澤仗哨,帶...
    沈念sama閱讀 33,703評(píng)論 4 323
  • 正文 年R本政府宣布形庭,位于F島的核電站,受9級(jí)特大地震影響藻治,放射性物質(zhì)發(fā)生泄漏碘勉。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,257評(píng)論 3 307
  • 文/蒙蒙 一桩卵、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧倍宾,春花似錦雏节、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,262評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至怔锌,卻和暖如春寥粹,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背埃元。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,485評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工涝涤, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人岛杀。 一個(gè)月前我還...
    沈念sama閱讀 45,501評(píng)論 2 354
  • 正文 我出身青樓阔拳,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親类嗤。 傳聞我的和親對(duì)象是個(gè)殘疾皇子糊肠,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,792評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容

  • 摘要: 軟件定義網(wǎng)絡(luò)(SDN)是計(jì)算機(jī)網(wǎng)絡(luò)行業(yè)中的新范例辨宠,它將當(dāng)前的分布式體系結(jié)構(gòu)更改為集中式體系結(jié)構(gòu)。這種集中式...
    阿明DunDunDun閱讀 269評(píng)論 0 1
  • Guide to BluetoothSecurity原文 本出版物可免費(fèi)從以下網(wǎng)址獲得:https://doi.o...
    公子小水閱讀 7,897評(píng)論 0 6
  • Swift1> Swift和OC的區(qū)別1.1> Swift沒(méi)有地址/指針的概念1.2> 泛型1.3> 類(lèi)型嚴(yán)謹(jǐn) 對(duì)...
    cosWriter閱讀 11,089評(píng)論 1 32
  • 原文地址 https://mbinary.coding.me/introduction-to-bitcoin.ht...
    mbinary閱讀 5,096評(píng)論 0 4
  • ORA-00001: 違反唯一約束條件 (.) 錯(cuò)誤說(shuō)明:當(dāng)在唯一索引所對(duì)應(yīng)的列上鍵入重復(fù)值時(shí)货裹,會(huì)觸發(fā)此異常嗤形。 O...
    我想起個(gè)好名字閱讀 5,176評(píng)論 0 9