亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于多核處理器BFD協(xié)議的設計與實現(xiàn)

        2016-10-14 06:44:38鄧嘉吉萌雷升平
        電子設計工程 2016年12期
        關鍵詞:表項會話哈希

        鄧嘉,吉萌,雷升平

        (1.武漢郵電科學研究院湖北武漢430074;2.武漢烽火網(wǎng)絡有限責任公司湖北武漢430074)

        基于多核處理器BFD協(xié)議的設計與實現(xiàn)

        鄧嘉1,2,吉萌2,雷升平2

        (1.武漢郵電科學研究院湖北武漢430074;2.武漢烽火網(wǎng)絡有限責任公司湖北武漢430074)

        BFD是一種雙向轉發(fā)快速檢測機制,為解決協(xié)議軟件BFD在鏈路檢測中響應慢的問題,本文提出并實現(xiàn)了一種在多核處理器平臺下基于底層驅動實現(xiàn)的BFD機制。該機制下所有的收發(fā)包處理都由底層驅動實現(xiàn),上層只負責向底層下發(fā)配置命令和接受底層的通告信息;會話表中通過哈希算法查找相應的會話并對相關字段進行匹配。實驗證明,該機制的鏈路檢測響應時間可達20毫秒左右,滿足高性能網(wǎng)絡設備可靠性的要求。

        BFD;多核處理器;鏈路狀態(tài);哈希表

        隨著IP數(shù)據(jù)業(yè)務的發(fā)展,網(wǎng)絡鏈路的可靠性越來越受到人們的重視,其中設備之間的鏈路狀態(tài)檢測成為了關注的焦點。相鄰系統(tǒng)之間通信故障快速檢測功能最早應用于傳輸網(wǎng)的SDH(Synchronous Digital Hierarchy,同步數(shù)字體系)設備中,而作為聯(lián)通網(wǎng)的路由器、交換機設備并沒有類似的檢測機制。BFD[1](Bidirectional Forwarding Detection,雙向轉發(fā)檢測)協(xié)議的出現(xiàn),填補了網(wǎng)絡設備之間故障檢測協(xié)議的空白,各大設備廠商也紛紛致力于BFD的研究和實現(xiàn)?;谲浖拥腂FD,當對端發(fā)來BFD報文后,由底層送到軟件層,然后進協(xié)議棧解析和匹配,一旦檢測到鏈路故障,需要通告底層切換備用路由,整個過程反應比較遲鈍,無法滿足高端路由器鏈路快速倒換的要求。因此,實現(xiàn)一種能夠對鏈路故障快速檢測并響應的BFD機制顯得尤為重要。本文提出的基于驅動實現(xiàn)的BFD,能夠在30毫秒內(nèi)檢測出鏈路故障并做出響應,為快速路由倒換并恢復鏈路爭取了時間,提升了整個網(wǎng)絡鏈路的可靠性。

        1 BFD表項設計

        BFD的表項設計是通過哈希表來實現(xiàn)的,將源IP和目的IP作為參數(shù)輸入SDK中所提供的一個函數(shù),生成一個數(shù)字X,因為本哈希表的大小為1K,所以哈希值的大小必須在0到1023之間,所以再將X除以1024取余,得出一個大小在0到1023之間的哈希值。如果兩對不同的源目的IP但是算出來的哈希值相同的話則會產(chǎn)生哈希沖突,解決哈希沖突這一問題,在這里采用鏈地址的方式,就是通過next指針將沖突的表項鏈接在已存在表項的后面,從BFD的列表[2]中抽象出3個部分:標志位部分(flag),條件匹配部分(match),協(xié)商部分(consult)

        Flag={flag1,flag2,..,flagn},flagn屬于集合Flag,flagn則是表項中第n個標志位;Match={match1,match2,...,matchn},matchn屬于集合Match,matchn則是表項中第n個匹配字段位;Consult={consult1,consult2,..,consultn}consultn屬于集合Consult,consultn則是第n個協(xié)商字段。如圖1所示。

        2 BFD發(fā)包模塊設計

        圖2是整個發(fā)包模塊的流程圖,發(fā)包模塊的定時器是采用輪訓的方式,core8每隔10 ms,掃描整張hash表,也就是說掃描的范圍是從0一直到1023,在表項中有一項為sessionid,如果session-id的值為0則表示該表項沒有會話,則跳過,如果不為空,首先查看是否存在沖突域,如果存在的話,說明在一個hash表項中存在多個會話session[3-4],需要對其遍歷,并對沖突域中的每一個會話都要對其進行處理,對每一個會話的操作與表項不存在沖突域是對會話的操作相同。當對某一個會話進行處理時,首先要判斷其會話模式是主動模式,被動模式,或者是回聲模式。主動模式和被動模式的主要區(qū)別是當會話狀態(tài)是down的時候,主動模式會不斷的送down包,而被動模式則什么也不做。當會話處于init和up狀態(tài)的時候,主動模式和被動模式的實現(xiàn)過程相同。Core8每掃一次hash表的時候,時間計數(shù)器的數(shù)值會被累加。所以當時間計數(shù)器的值余1 000 ms為0的時候,如果會話的狀態(tài)為down或者init時,則發(fā)送相應狀態(tài)的數(shù)據(jù)包出去。同當會話狀態(tài)為init時,除了發(fā)送init出去以外,還會依據(jù)flag位和detect_multi來判定是否超時。如果超時則將當前會話設置為down,同時上報主控。

        如果會話的狀態(tài)是為up的話,發(fā)送up包并將flag位加1的條件是時間計數(shù)器的值余協(xié)商發(fā)包間隔為0的時候,當時間計數(shù)器的值余協(xié)商收包間隔為0的時候,則判斷flag的值是否大于預先設定的detect_multi[5-6]發(fā)包重復次數(shù)。依據(jù)flag位和detect_multi來判定是否超時。如果超時則將當前會話設置為down,同時上報主控

        由于是在多核下實現(xiàn)發(fā)包,考慮到線程安全問題,當進入發(fā)包模塊的時候,會給相應表項資源上鎖。從而避免對同一表項,在發(fā)送數(shù)據(jù)包的同時修改數(shù)據(jù)包。

        圖1 BFD表項結構圖

        圖2 發(fā)包模塊設計流程圖

        圖3 收包模塊設計流程圖

        3 BFD收包模塊設計

        收包是非常關鍵的一部分,系統(tǒng)流程如圖3所示,首先,當接受了一個數(shù)據(jù)包過來,要收包模塊要從主干道將它提取出來,這個數(shù)據(jù)包要符合兩個條件,第一個是其協(xié)議號要是17,說明采用udp,第二個是其端口號為3704。提取出數(shù)據(jù)包以后,首先要判斷這個數(shù)據(jù)包是不是合法的,有兩個條件:第一是將數(shù)據(jù)包的源IP和目的IP提取出來,通過多核處理器上的SDK依據(jù)源目的IP算出hash值,到hash表中去查找對應的session,如果查找到對應的表項為空時,則表明這個數(shù)據(jù)包不是合法的,則丟棄。第二,如果找到了對應的表項,則再去比對其中的字段,首先看有沒有認證,如果有則進行認證。否則查看表項里面唯一的標識符,如果標識符不完全,則將會話雙發(fā)的標識符補全,如果會話雙方的標識符齊全,則判斷數(shù)據(jù)包和表項對應的標示符是否一致。如果不一致則說明數(shù)據(jù)包是不合法的,可能是別人偽造的或者被改過了的,則丟掉。當所有這些條件判斷過后,證明這個數(shù)據(jù)包已經(jīng)合法之后,再依據(jù)數(shù)據(jù)包中的狀態(tài)來修改表項中會話的狀態(tài),如果數(shù)據(jù)包的狀態(tài)為UP,還需要進一步判斷是否需要重新協(xié)商發(fā)包間隔和收包間隔。

        收包的話就可以用core1到core7都可以,收發(fā)包是并行工作的,當收包后,數(shù)據(jù)包在修改表項數(shù)據(jù)的時候該表項則會上鎖,這時如果發(fā)包的核在這是后來讀取的話,則會等待,等鎖釋放以后再讀取表項,將包發(fā)出去,所以一定要設一個LOCK,不然一個再改一個在發(fā),則會出現(xiàn)錯誤,因為修改表項相對于掃描表項的時間是非常短的,所以當遇到鎖的時候核core8等待。

        4 實驗與結果分析

        本實驗是在高端路由器上進行,實驗儀表為Spirent FestCenter,用儀表模擬一臺路由器設備,建立BFD會話。高端路由器中的核卡則采用多核處理器,單核主頻為1.2 GHz。

        圖4 實驗拓撲圖

        按圖4連接設備,配置IP地址并保證設備之間能ping通,路由器設備的ip配置為5.5.5.1/24,儀表的IP設置為5.5.5.5/24.在設備上開啟BFD功能。在連接鏈路接口上使能BFD,設置為主動模式,且兩端都為主動方。BFD的主要操作模式稱為主動模式(異步模式)。在這種模式下,系統(tǒng)之間相互周期性地發(fā)送BFD控制報文,如果某個系統(tǒng)連續(xù)幾個報文都沒有接收到,就認為此BFD會話的狀態(tài)是Down。當兩端都為主動角色時,兩端的系統(tǒng)都要向對端發(fā)送Your Discriminator為0的BFD控制報文,直到兩端學到對端的Discriminator,然后開始建立會話查看BFD會話。通過主控將其配置到將最小發(fā)送間隔和接受間隔都設置為最小的10 ms,檢測次數(shù)設為2次,因為發(fā)送數(shù)據(jù)包的core8的循環(huán)間隔為10 ms,因此該值為發(fā)包的極限值。

        5 主控配置建立會話

        當bfd配置好之后,通過儀表連接設備,建立會話session如圖5所示,會話的狀態(tài)有down轉變?yōu)閡p狀態(tài),說明會話建立成功。

        圖5 會話狀態(tài)圖

        6 最后結果分析

        通過對途中數(shù)據(jù)的分析得出10組以5.5.5.1位源IP的數(shù)據(jù)的發(fā)送時間進行了統(tǒng)計。依據(jù)圖6統(tǒng)計結果所得數(shù)據(jù)(數(shù)據(jù)已秒為單位),分析得出單次發(fā)包所用平均時間10.485 845 ms。發(fā)包間隔大于10 ms的部分是多核在構造數(shù)據(jù)包上所用時間。由于檢測次數(shù)至少為兩次,所以該機制的鏈路檢測響應時間可達30 ms以內(nèi),滿足高端路由器可靠性的要求。

        圖6 BFD響應時間測試結果

        7 結束語

        基于驅動層的BFD,對整個BFD報文的收發(fā)處理都在線卡上完成,當會話狀態(tài)發(fā)生改變時,只需要向主控通告相應的會話狀態(tài)信息。這種方式的BFD對鏈路狀態(tài)的感知比較快,當檢測到鏈路故障后,可以在第一時間通告切換備用路由。這種機制避免了鏈路出現(xiàn)故障時主控與線卡之間多次通告的耗時過程,為快速路由倒換節(jié)約了時間。運用這種BFD機制與FRR聯(lián)動,鏈路故障恢復時間可實現(xiàn)50 ms以內(nèi),滿足骨干網(wǎng)中高端路由器可靠性的要求。但是,隨著各種數(shù)據(jù)業(yè)務的發(fā)展,整個網(wǎng)絡的組網(wǎng)結構也愈發(fā)復雜,人們對鏈路的檢測的要求已不僅僅滿足于能夠發(fā)現(xiàn)故障并快速恢復鏈路,而且還要求能夠檢測具體哪條鏈路出現(xiàn)故障,造成故障的原因是什么。因此,如何利用現(xiàn)有的BFD協(xié)議精確檢測鏈路狀態(tài),是今后需要進一步研究的方向之一。

        [1]王晨.BFD技術在H-VPLS網(wǎng)絡上的實現(xiàn)[D].南京大學,2012.

        [2]蔡素梅,劉蓮花,陳強.BFD的研究及在3G網(wǎng)絡中的應用設計[J].廣東通信技術,2011(3):25-29.

        [3]韓韜略.分布式BFD系統(tǒng)中驅動模塊的設計與實現(xiàn)[D].南京大學,2013.

        [4]陳瑞森.基于BFD的IP快速重路由的研究與實現(xiàn)[D].杭州電子科技大學,2012.

        [5]何燕.基于BFD的MPLS隧道故障檢測及恢復技術的研究與實現(xiàn)[D].杭州電子科技大學,2010.

        [6]陶潤澤.基于BFD協(xié)議的40G的以太網(wǎng)鏈路檢測模塊的設計與實現(xiàn)[D].華中科技大學,2013.

        Design and implementation of BFD protocol based on multi-core processor

        DENG Jia1,2,JI Meng2,LEI Sheng-ping2
        (1.Wuhan Research Institue of Posts and Telecommunications,Wuhan 430074,China;2.Wuhan FiberHome Networks,Wuhan 430074,China)

        BFD is a bidrectional forwarding fast detection.To solve the problem of slow-forward detection,this paper presents and implements BFD protocol on a multi-core processor platform.sending and processing packets in this mechanism are implements by bottom-driver.bottom-driver receive and send commands through notification to up level.A session is find and matched by hash value.The experiment prove that the time of fast-forward detection is about 20 ms,and it can satisfy the request of rooter.

        BFD;multi-core processor;state of link;hash table

        TN 915

        A

        1674-6236(2016)12-0090-03

        2015-06-04稿件編號:201506055

        鄧嘉(1989—),男,湖南長沙人,碩士研究生。研究方向:通信技術。

        猜你喜歡
        表項會話哈希
        一種改進的TCAM路由表項管理算法及實現(xiàn)
        通信技術(2022年5期)2022-06-11 00:47:44
        基于ARMA模型預測的交換機流表更新算法
        SDN數(shù)據(jù)中心網(wǎng)絡基于流表項轉換的流表調(diào)度優(yōu)化
        有意冒犯性言語的會話含義分析
        漢語教材中的會話結構特征及其語用功能呈現(xiàn)——基于85個會話片段的個案研究
        基于OpenCV與均值哈希算法的人臉相似識別系統(tǒng)
        基于維度分解的哈希多維快速流分類算法
        計算機工程(2015年8期)2015-07-03 12:20:04
        基于同態(tài)哈希函數(shù)的云數(shù)據(jù)完整性驗證算法
        計算機工程(2014年6期)2014-02-28 01:25:40
        一種基于Bigram二級哈希的中文索引結構
        沖突語的會話分析研究
        一本一道人人妻人人妻αv| 国产综合一区二区三区av| 亚洲无人区乱码中文字幕| 欲女在线一区二区三区| 久久国产精品99精品国产| 日韩在线无| 亚洲免费无毛av一区二区三区| 国产一区二区三区青青草| 精品国产青草久久久久福利| 97人妻熟女成人免费视频| 国产亚洲女人久久久久久| 一区二区三区精品免费| 18禁裸男晨勃露j毛网站| 欧美俄罗斯乱妇| 国产在线AⅤ精品性色| 精品女厕偷拍视频一区二区| 久久久久av无码免费网| 最新亚洲人成无码网站| 中文字幕乱码中文乱码毛片 | 久久久久久久波多野结衣高潮 | 久久久久久无中无码| 国产丝袜美腿一区二区三区| 欧美肥婆性猛交xxxx| 三上悠亚av影院在线看| 久久久久久久久高潮无码| 成人一区二区三区国产| 妺妺窝人体色www聚色窝| 91高清国产经典在线观看| 成人偷拍自拍在线视频| 中文字幕亚洲乱码成熟女1区| 国产综合久久久久| 亚洲ⅤA中文字幕无码| 天堂网av在线免费看| 国产人妻大战黑人20p| 国产成人国产在线观看入口| 亚洲天堂av另类在线播放 | 婷婷色香五月综合激激情| 亚洲аv天堂无码| 中文字幕一区二区在线看| 日韩精品无码一区二区三区四区| 最新国产av无码专区亚洲|