以太網自協商原理

自協商原理:

           自協商是通過一種叫做快速連接脈衝(Fast Link Pulse)的信號實現的,簡稱FLP。自協商的雙方通過FLP來交換數據。


       在具備自協商能力的端口沒有Link的情況下,端口一直髮送FLP,在FLP中包含着自己的連接能力信息,包括支持的速率能力、雙工能力、流控能力等。這個連接能力是從自協商能力寄存器中得到的(Auto-Negotiation Advertisement Register ,PHY標準寄存器地址4 )。FLP中的編碼方式如圖。依靠脈衝位置編碼攜帶數據。一個FLP突發包含33個脈衝位置。17個奇數位置脈衝爲時鐘脈衝,時鐘脈衝總是存在的;16個偶數位置脈衝用來表示數據:此位置有脈衝表示1,此位置沒有脈衝表示0。這樣1個FPL的突發就可以傳輸16bit的數據。自協商交互數據就這樣通過物理線路被傳輸。


       如果兩端都支持自協商,則都會接收到對方的FLP,並且把FLP中的信息解碼出來。得到對方的連接能力。並且把對端的自協商能力值記錄在自協商對端能力寄存器中(Auto-Negotiation Link Partner Ability Register , PHY標準寄存器地址5 )。同時把狀態寄存器(PHY標準寄存器地址1)的自協商完成bit(bit5)置成1。在自協商未完成的情況下,這個bit一直爲0。然後各自根據自己和對方的最大連接能力,選擇最好的連接方式Link。比如,如果雙方都即支持10M也支持100M,則速率按照100M連接;雙方都即支持全雙工也支持半雙工,則按照全雙工連接。一定連接建立後,FLP就停止發送。直到鏈路中斷,或者得到自協商Restart命令時,纔會再次發送FLP。
並行檢測

爲了保證在對端不能支持自協商的情況下也能連接,引入了被稱爲並行檢測(Parallel Detection)的機制。在一端打開自協商,另一端關閉自協商的情況下,連接的建立就依靠並行檢測功能實現。

並行檢測機制是這樣的:在具有自協商能力的設備端口上,如果接收不到FLP,則檢測是否有10M鏈路的特徵信號或100M鏈路的特徵信號。

       1) 如果設備是10M設備,不支持自協商,則在鏈路上發送普通連接脈衝(Normal Link Pulse)簡稱NLP。NLP僅僅表示設備在位,不包含其它的額外信息。

       2) 如果是100M設備,不支持自協商,則在沒有數據的情況下,在鏈路上一直髮送4B/5B編碼的Idle符號。

並行檢測機制如果檢測到NLP,則知道對方支持10M速率;如果檢測到4B/5B編碼的Idle符號,則知道對方支持100M速率。但是對方是否支持全雙工、是否支持流控幀這些信息是無法得到的。因此在這種情況下,認爲對方只支持半雙工,不支持全雙工,且不支持流控幀。

       基於以上原理,在對端不打開自協商時,打開自協商的一方只能協商成半雙工模式。


       802.3協議規定,通過並行檢測建立連接後,PHY的狀態寄存器(PHY標準寄存器地址1)的自協商完成bit(bit5)依然要置位成1,儘管鏈路上並非使用了真正的自協商操作。同時規定在自協商完成bit爲1的情況下,本地自協商能力寄存器(PHY標準寄存器地址4)和對端自協商能力寄存器(PHY標準寄存器地址5)是有意義的。所以,要把寄存器5中的數據更新。如果建立的連接爲10M,則寄存器5的10M能力bit(bit5)置1,其它bit置0,表示對端只能支持10M半雙工;如果建立的連接爲100M,則寄存器5的100M能力bit(bit7)置1,其它bit置0,表示對端只能支持100M半雙工。


千兆光口自協商:

       千兆光口可以工作在強制和自協商兩種模式。802.3規範中千兆光口只支持1000M速率,支持全雙工(Full)和半雙工(Half)兩種雙工模式。


千兆光口自協商過程:

1) 兩端都設置爲自協商模式

        雙方互相發送/C/碼流,如果連續接收到3個相同的/C/碼且接收到的碼流和本端工作方式相匹配,則返回給對方一個帶有Ack應答的/C/碼,對端接收到Ack信息後,認爲兩者可以互通,設置端口爲UP狀態

2) 一端設置爲自協商,一端設置爲強制

       自協商端發送/C/碼流,強制端發送/I/碼流,強制端無法給對端提供本端的協商信息,也無法給對端返回Ack應答,故自協商端DOWN。但是強制端本身可以識別/C/碼,認爲對端是與自己相匹配的端口,所以直接設置本端端口爲UP狀態

3) 兩端均設置爲強制模式


       雙方互相發送/I/碼流,一端接收到/I/碼流後,認爲對端是與自己相匹配的端口,直接設置本端端口爲UP狀態

注意:

       以太網交換機的兩個千兆電口對接時,如果一端配置成強制千兆全雙工模式,那麼協商結果很可能是千兆全雙工模式。這個結果和常識相悖。正常情況下,一端強制一端自協商的話,協商結果應該是半雙工模式。
   之所以出現上面的情況,是因爲這裏的強制模式是假象,實際上端口依然工作在自協商模式,只是取消了千兆全雙工以外的能力。這樣,兩個自協商模式的端口對接,協商出全雙工模式也就是意料之中的事了。如果再深入一點點,就會產生一個疑問——爲什麼交換機要這樣設定呢?這要從千兆電口的工作原理說起。
   兩個千兆電口對接時,一端要工作在master模式,另一端則工作在slave模式。Slave一端不使用自己的時鐘,而是從接收到的信號中恢復時鐘,自己發送信號時就使用恢復出來的時鐘。這樣,可以有效保證雙方的同步。但是,誰當master,誰又當slave呢?這就要通過自協商功能做出裁決。正是因爲這個原因,IEEE 802.3ab-1999標準規定,自協商功能是1000BASE-T以太網的必選項。

發佈了9 篇原創文章 · 獲贊 1 · 訪問量 1106
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章