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
吃紙的妖怪
本刊欄目設置說明
中俄臨床醫學專業課程設置的比較與思考
主站蜘蛛池模板: 久久精品亚洲热综合一区二区| 色偷偷男人的天堂亚洲av| 国产精品冒白浆免费视频| julia中文字幕久久亚洲| 国产欧美日韩视频怡春院| 国产日本视频91| 亚洲视频四区| 欧美视频在线第一页| 国产玖玖玖精品视频| 午夜福利无码一区二区| 欧美视频免费一区二区三区| 亚洲av无码人妻| 精品人妻系列无码专区久久| 91丝袜乱伦| 美女被躁出白浆视频播放| 在线欧美日韩| 久久人搡人人玩人妻精品一| 五月婷婷亚洲综合| 婷婷综合亚洲| 中文字幕av一区二区三区欲色| 香蕉视频在线观看www| 国产精品国产三级国产专业不| 精品色综合| 亚洲人成网站色7777| 九九精品在线观看| 国产精品蜜臀| 日本欧美成人免费| 一区二区日韩国产精久久| 成人字幕网视频在线观看| 欧美国产精品拍自| 色综合久久88| 九九视频免费在线观看| 制服无码网站| 亚洲午夜天堂| 麻豆国产精品视频| 激情综合网激情综合| 亚洲成aⅴ人片在线影院八| 99热这里只有精品2| 国产欧美视频综合二区| 99热国产在线精品99| 免费一级毛片在线播放傲雪网| 丝袜国产一区| 欧美亚洲国产精品第一页| 青青青国产精品国产精品美女| 尤物视频一区| 国产午夜一级淫片| 波多野结衣第一页| 亚洲综合色婷婷| 在线观看视频99| 无码视频国产精品一区二区| 91精品国产无线乱码在线| 久久国产亚洲偷自| 最新国产精品第1页| 免费一级无码在线网站| 亚洲av无码专区久久蜜芽| 亚洲AV免费一区二区三区| 亚洲精品日产精品乱码不卡| 亚洲av无码成人专区| 精品乱码久久久久久久| 久久国语对白| V一区无码内射国产| 久久精品国产999大香线焦| 被公侵犯人妻少妇一区二区三区 | 国模视频一区二区| 精品无码一区二区三区电影| 国产精品林美惠子在线播放| 伊人成色综合网| 精品福利视频导航| 欧美亚洲第一页| 久久女人网| 看国产毛片| 亚洲女同欧美在线| 亚洲第一国产综合| 国产精品性| 亚洲综合色婷婷中文字幕| 国产aⅴ无码专区亚洲av综合网| 国产午夜无码片在线观看网站| 亚洲欧洲日韩久久狠狠爱| 久久青草视频| 亚洲综合精品香蕉久久网| 在线无码九区| 久久国产精品国产自线拍|