999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

鏈路聚合在PTN智能接入終端上的設計與實現

2013-01-31 05:22:30熊志明肖萍萍
電視技術 2013年9期
關鍵詞:設置

熊志明,肖萍萍

(武漢郵電科學研究院光纖通信技術和網絡國家重點實驗室,湖北 武漢430074)

網絡技術的不斷發展使得網絡傳輸的數據量急劇增加,網絡的帶寬資源顯得越來越寶貴,如何有效提高帶寬并能適應目前傳輸網絡成為討論的關鍵。解決這一問題最直接的方法就是提高網絡傳輸的鏈接能力。要增加網絡的鏈接能力,通常有兩種選擇:一是提升本地鏈接能力(即硬件升級),二是使用鏈路聚合來聚合兩個或兩個以上的低速鏈接。當然,通過硬件升級把舊網絡升級成新網絡來提高網絡帶寬無疑是最直接的解決辦法,但通過這樣的方法要花費大量的時間和金錢,對于用戶來說并不可取,同時這種方案不夠靈活。隨著每一次硬件升級都要更換新的產品,造成極大的資源浪費,這不是運營商希望看到的結果。為了更好地解決這個問題,鏈路聚合(Link Aggregation)技術應運而生,鏈路聚合是指將多個端口匯聚在一起形成一個匯聚組,以實現出/入負荷在匯聚組中各個成員端口中的負載分擔,同時也提供了更高的連接可靠性,靈活有效地提高帶寬。早期的鏈路聚合技術沒有實現標準統一,各個廠商有各自私有的解決方案,實現功能不盡相同,各設備間也很難相互兼容。為此,IEEE制定了鏈路聚合的標準,目前以IEEE 802.3ad為正式標準,LACP是該標準的主要內容之一,是一種實現鏈路動態匯聚和解匯聚的協議。

1 LACP的原理

LACP協議聚合的兩端,即本端(Actor)和對端(Partner)通過LACPDU報文的交互來獲取雙方的各種聚合信息,從而通過鏈路匯聚控制協議數據單元(Link Aggregation Control Protocol Data Unit,LACPDU)實現動態鏈路匯聚和解匯聚。將某端口的LACP協議使能后,該端口將通過發送LACPDU協議報文通告對端自己的狀態信息,包括各種優先級等。對端將接收到的信息與其他端口所保存的狀態信息進行對比,并按照一定的算法(一般為hash算法)對鏈路匯聚的端口進行相應的選擇,從而雙方對端口加入或退出某個動態匯聚組進行協商達成一致。由于LACPDU協議報文的交互是周期性的,即聚合的雙方每隔一段時間(由系統設定)便互發一次LACPDU協議報文,所以當使能端口成員鏈路因為某種原因不能工作時,鏈路會對此很快感知,并重設鏈路端口狀態,置該鏈路為阻塞,流量被重分配給其他使能端口成員鏈路。這樣就實現了帶寬增加、鏈路動態備份的功能,從而提高了鏈路的可靠性。

2 鏈路聚合的實現

在研的PTN智能接入終端是一個具有4個百兆口、2個千兆口的適用于PTN傳輸網的智能接入終端。本設計動態鏈路聚合基于該設備來實現。動態鏈路聚合通過事件來驅動,每個事件發生的時序都是隨機的,為了更好地控制在不同狀態產生的不同事件都能夠有正確合理的處理,有限狀態機是最為有效的方法。

2.1 狀態機模塊總體框架

鏈路聚合的實現的狀態機總體框架如圖1所示。

圖1 鏈路聚合總體框架圖

1)接收狀態機模塊(Rx狀態機)

處理從對端收到的LACP協議報文。主要包括報文解析;記錄對端聚合的相關信息;設置端口選擇狀態(選中/未選中);根據對端信息,設置鏈路聚合的相關數據;處理本端保存的對端聚合相關的數據老化。

2)周期發送狀態機(PTx狀態機)

周期發送定時機制的建立,是為了讓本端和遠端交互周期的LACPDU報文來維護鏈路的聚合,同時確定并控制這些周期性傳輸產生的頻率。本端或對端任一方的需要都會產生周期的發送。而發送的速率由對端確定,該速率與其定義信息接收的超時時間相關。

此狀態機包含4個狀態:

(1)NO_PERIODIC(無周期),在此狀態不能周期性地發送。

(2)FAST_PERIODIC(快速周期),在此狀態以快速率使能周期性地發送。

(3)SLOW_PERIODIC(慢速周期),在此狀態以慢速率使能周期性地發送。

(4)PERIODIC_TX(周期發送),此狀態是一個瞬態,進入周期計時終止,當插入NTT標位時就轉入快速周期或者慢速周期,慢速周期或者快速周期由對端的LACP超時設定決定。

是否發生周期性發送由本端和對端的被操作端口狀態決定。端口狀態分為LACP激勵狀態和LACP消極狀態。在兩端至少有一端端口狀態為LACP激勵狀態時就產生周期性發送,兩端同時設置為LACP消極狀態時就不會產生周期性發送事件。類似的,如果兩端的端口使能或者LACP使能變量設置為無效時,表明端口的LACP協議功能未使能,或者端口不可用,此時周期性發送事件不會發生。

如果發生了周期性發送事件,那么其發送周期速率由對端被操作的端口狀態LACP超時變量決定。如果該變量為短超時,那么周期性發送的內部時間將用快速發送周期。反之內部時間將用慢速發送周期。本設計中慢速周期發送定時器的周期設置為30 000 ms,快速周期發送定時器的周期設置為1 000 ms。

3)多路轉發狀態機(MUX狀態機)

MUX狀態機是用來根據本端和對端的選中狀態,通過控制端口阻塞與否來控制接收和發送數據功能的開啟和關閉。狀態控制又可以分為獨立控制和耦合控制。獨立控制是指端口的接收和發送功能是可獨立控制,即可異步控制,一個功能開啟,另一個功能關閉,如端口使能或去使能及端口的數據幀發送。耦合控制是指端口的接收和發送只能同時開啟或關閉。本次設計中為了使事件響應更快、處理更簡化,采用耦合控制。

4)發送狀態機模塊(Tx狀態機)

它完成對LACP協議報文內容的填充,并處理協議報文的發送,當收到各種標志通知時,立即調用報文發送模塊發送報文。當周期狀態機狀態為NO_PERIODIC(無周期)時,不交互LACPDU報文,同時將標志位NTT(Need To Transmit)置為無效;當LACP使能變量有效且標志位NTT有效時,又由于LACP協議屬于慢速協議,每秒最多允許發送10個LACP協議報文,LACPDU報文的發送將嚴格遵循這一原則。為確保遵循這個要求,狀態機設置內部維護NTT標志和一個全局變量來記錄已發送協議報文的數目,每隔1 s就將這些參數清零。

5)邏輯選擇器

設置端口的選中狀態,配合其他狀態機完成聚合功能。

圖1說明了這些狀態機之間的關系以及它們之間的信息交互。標記了Partner狀態信息的這組箭頭代表新Partner的信息,包含在一個傳入的LACPDU或是系統提供的默認值中,通過接收狀態機反饋給各個狀態機。標記了Actor狀態信息的這組箭頭代表狀態機之間更新的Actor狀態信息數據。LACPDUs的傳輸是由于周期性狀態機觸發產生一個周期性的LACPDU或需要傳達給Partner的Actor的狀態信息改變產生的。LACPDU的傳輸要通過置標志位NTT。剩下的箭頭標記代表在狀態機中描述全局變量,允許觸發一個狀態機的事件發生在另一個狀態機。

2.2 狀態機的軟件實現

軟件實現狀態機通常有內嵌switch、狀態表、用函數指針作為狀態,用函數地址代替狀態值,每個狀態對應于一個函數指針。

本次LACP狀態機的軟件實現借鑒了以上3種方法,用枚舉值表示狀態,用函數指針的方式實現狀態的動作和轉換。端口對應的本端和對端的聚合相關信息保存在結構體指針全局變量lacp_info_t指向的內存中。代碼框架具體如下:

/*lacp事件狀態枚舉*/

typedef enum/*lacp_event_t*/

{

Lac_null=0,

Lac_init,/*lacp協議初始化*/

Lac_tick,/*定時器計時時間戳*/

Lac_port_enabled, Lac_port_disabled,/*端口lacp協議功能使能和去使能*/

Lac_new_info,

Lac_attach, Lac_attached,/*端口lacp添加和已添加*/

Lac_detach, Lac_detached,/*端口lacp分離和已分離*/

Lac_enable_collector, Lac_collector_on,/*邏輯選擇器使能和打開*/

Lac_disable_collector,Lac_collector_off,/*邏輯選擇器去使能和關閉*/

Lac_enable_distributor,Lac_distributor_on,/*適配器使能和打開*/

Lac_disable_distributor,Lac_distributor_off,/*適配器器去使能和關閉*/

Lac_ntt, Lac_txd,/*lacp協議報文發送標志和報文發送*/

Lac_check_moved,/*確認端口分離*/

}lacp_event_t;

/*接收狀態機函數*/

void rx_machine(lacp_port_t*port,lacp_event_t event,lacp_pdu_t*pdu)

{switch(事件)

{

如果事件=Lac_check_moved:通過判斷端口狀態是否繼續初始化;

如果事件=Lac_init:初始化接收端口;

如果事件=Lac_port_disabled:去使能接收端口;

如果事件=Lac_port_enabled:通過判斷端口使能及協議使能做相應處理;

如果事件=Lac_tick:通過時間戳判斷是否將本端加入聚合組;

如果事件=Lac_received:通過時間戳判斷是否將對端加入聚合組;

}

};

/*發送狀態機函數*/

void tx_machine(lacp_port_t*port,lacp_event_t event)

{switch(事件)

{

如果事件=Lac_init,Lac_port_disabled:停止計時;

如果事件=Lac_ntt:開啟lacp協議內部計時器;

如果事件=Lac_tick:開啟周期計時;

如果事件=Lac_txd:通過條件判斷發送協議報文或者開啟周期計時;

}

};

/*周期狀態機函數*/

void per_machine(lacp_port_t*port,lacp_event_t event)

{switch(事件)

{

如果事件=Lac_init,Lac_port_disabled:周期計時設置為停止;;

如果事件=Lac_tick:通過判斷周期是否超時,進入報文發送狀態機或停止周期計時;

}

};

/*多路轉發狀態機函數*/

void mux_control(lacp_port_t*port,lacp_event_t event);

{switch(事件)

{

如果事件=Lac_init:初始化端口lacp狀態;

如果事件=Lac_tick:通過時間戳判斷是否加入聚合組;

如果事件=Lac_new_info:是否改變聚合端口;

如果事件=Lac_distributor_on:不做處理;

如果事件=Lac_distributor_off:停止分配,進入發送狀態機處理;

如果事件=Lac_collector_on:開啟邏輯選擇器,進入發送狀態機處理;

如果事件=Lac_collector_off:不做處理;

如果事件=Lac_received:通過時間戳判斷是否將對端加入聚合組;

}

};

/*邏輯選擇狀態機函數*/

void hw_control(lacp_port_t*port,lacp_event_t event);

switch(事件)

{

如果事件=Lac_init:不做處理;

如果事件=Lac_attach:將多路選擇器狀態設置為協議端口已關聯;

如果事件=Lac_detach:將多路選擇器狀態設置為協議端口未關聯;

如果事件=Lac_enable_collector:接收使能,備份端口數據,開啟接收狀態函數,開啟邏輯選擇器;

如果事件=Lac_disable_collector:接收去使能,備份端口數據,開啟接收狀態函數,關閉邏輯選擇器;

如果事件=Lac_enable_distributor:發送使能,備份端口數據,開啟發送狀態函數,開啟邏輯適配器;

如果事件=Lac_disable_distributor:發送去使能,備份端口數據,關閉發送狀態函數,關閉邏輯適配器;

}

}

3 測試及結論

PTN智能接入終端PAS是公司研發的一款承載PTN傳輸網的接入設備。本次測試設備的硬件設計具有2個GE口,4個電口,支持動態鏈路聚合。如圖2搭建測試環境,正確連接各物理鏈路,確保各相關端口的狀態為up狀態。

圖2 測試環境

測試步驟:

1)將PAS接入終端的FE1/0/1,FE1/0/2,FE1/0/3,FE1/0/4端口LACP使能;與交換機的4個端口相連并使能端口LACP。

2)以太網測試儀的千兆端口連接PAS接入終端的GE口。

3)以太網測試儀與PAS接入終端相連的端口A源MAC設置為00-00-0F-00-FF-00,與交換機相連端口B源MAC設置為00-00-0F-00-00-AA,從A發送目的MAC為00-00-0F-00-00-AA的連續報文2 000 000個。

4)用命令display interface查看端口的收包數目如表1所示。

5)人為制造鏈路故障,如將PAS接入終端的FE1/0/4端口斷纖,用display interface查看端口收包數目如表2所示。

表1 端口收包數目1

表2 端口收包數目2

結果分析:根據hash算法算出的hash值為0~7,然后根據負載分擔表將流量分配到各個端口,理論分析的結果與實際結果一致。本方案在該設備上實現了動態鏈路聚合,無需手動配置,只需使能端口的LACP協議功能,聚合接口的建立、成員接口的加入、活動接口的選擇完全由LACP協議通過協商完成鏈路的聚合操作。

[1]IEEE Std 802.3ad,Amendment to carrier sense multiple access with collision detection(CSMA/CD)access method and physical layer specifications—aggregation of multiple link segments[S].2000.

[2]鄭濤,郭裕順.基于LACP協議的鏈路聚合狀態機模塊的實現[J].計算機系統應用,2010,19(5):104-108.

[3]池元武.用狀態機原理進行軟件設計[EB/OL].[2011-08-20].http://www.docin.com/p-26276442.html.

[4]李澤杰.面向流媒體傳輸的鏈路聚合技術的研究與實現[D].廣州:廣東工業大學,2008.

猜你喜歡
設置
中隊崗位該如何設置
少先隊活動(2021年4期)2021-07-23 01:46:22
船舶防火結構及設置的缺陷與整改
水上消防(2020年5期)2020-12-14 07:16:18
中外醫學專業與專科設置對比分析及啟示
特殊場景下列控等級轉換的設置方案
7招教你手動設置參數
動車段(所)股道有效長設置研究
我國中小學將設置人工智能相關課程
玩具世界(2017年9期)2017-11-24 05:17:29
吃紙的妖怪
本刊欄目設置說明
中俄臨床醫學專業課程設置的比較與思考
主站蜘蛛池模板: 欧美精品xx| 国产玖玖视频| 国产一级α片| 国产极品美女在线观看| 一本大道香蕉久中文在线播放| 国产99在线| 亚洲天堂视频在线观看| 久久青草精品一区二区三区| 99精品国产电影| 欧美亚洲国产精品第一页| 亚洲欧美日韩中文字幕在线| 久久精品国产精品国产一区| 日韩精品无码免费专网站| 国内精品一区二区在线观看| 国产成人福利在线视老湿机| 亚洲天堂高清| 日韩免费成人| 思思热精品在线8| 波多野结衣久久精品| 72种姿势欧美久久久久大黄蕉| 亚洲精品不卡午夜精品| 国产91精选在线观看| 国产精品网址你懂的| 国产成人综合在线视频| 国产精品一区二区久久精品无码| 日本一区二区三区精品视频| 福利一区在线| 亚洲AⅤ波多系列中文字幕| 亚洲精品无码抽插日韩| 在线免费不卡视频| 欧美成人一级| 国产在线拍偷自揄拍精品| 亚洲综合精品香蕉久久网| 日韩成人高清无码| 在线播放精品一区二区啪视频| 中国国产一级毛片| 四虎精品国产永久在线观看| 五月天久久综合| 亚洲高清无在码在线无弹窗| 色老头综合网| 国产日韩精品欧美一区喷| v天堂中文在线| 亚洲浓毛av| 国产天天射| 日韩午夜片| 久久免费观看视频| 欧美精品v欧洲精品| 国产新AV天堂| 日韩a级毛片| 91最新精品视频发布页| 欧美三级日韩三级| 色综合综合网| 一级高清毛片免费a级高清毛片| 日本道中文字幕久久一区| 91色在线视频| 狠狠色狠狠色综合久久第一次| 国产性猛交XXXX免费看| 久久成人国产精品免费软件| 91丝袜美腿高跟国产极品老师| 国产精品部在线观看| 日本高清有码人妻| 国产亚洲欧美在线中文bt天堂| 国产黑丝视频在线观看| 久久综合婷婷| 国产欧美在线观看视频| 制服丝袜国产精品| 亚洲av无码片一区二区三区| 特级毛片8级毛片免费观看| 国内精品久久人妻无码大片高| 亚洲性影院| 日韩福利在线观看| 久久99国产乱子伦精品免| 亚洲精品色AV无码看| 99热这里只有精品免费国产| 无码av免费不卡在线观看| 亚洲欧美自拍中文| Jizz国产色系免费| 亚洲毛片网站| 一本大道视频精品人妻| 国产午夜不卡| 国产乱子伦无码精品小说| 亚洲伊人天堂|