以太網自動協商原理


自協商基本原

自動協商模式是端口根據另一端設備的連接速度和雙工模式,自動把它的速度調節到最高的公共水平,即線路兩端能具有的最快速度和雙工模式。

  自協商功能允許一個網絡設備能夠將自己所支持的工作模式信息傳達給網絡上的對端,並接受對方可能傳遞過來的相應信息,從而解決雙工和10M/100M速率自協商問題。自協商功能完全由物理層芯片設計實現,因此並不使用專用數據包或帶來任何高層協議開銷。 

  自協商功能的基本機制是:每個網絡設備在上電、管理命令發出、或是用戶干預時發出FLP(快速連接脈沖),協商信息封裝在這些FLP序列中。FLT中包含有時鍾/數字序列,將這些數據從中提取出來就可以得到對端設備支持的工作模式,以及一些用於協商握手機制的其他信息。當一個設備不能對FLP作出有效反應,而僅返回一個NLP(普通連接脈沖)時,它被作為一個10BASE-T兼容設備。 快速鏈路脈沖FLP和普通鏈路脈沖NLP都僅使用於非屏蔽雙絞線上,而不能應用在光纖媒體。 

  自動協商的內容主要包括雙工模式、運行速率、流控等內容,一旦協商通過,鏈路兩端的設備就鎖定在這樣一種運行模式下。1000M以太網也支持自協商,在此從略。 

電口和光口自協商主要區別是在OSI 中它們所處的位置不同。對於電口來說,協商發生在鏈路信號傳輸之前;對於光口來說, 自協商機制與PCS在同一層, 這意味着光口的協商必須先建立鏈路同步以后才可以進行協商

協商過程

    如果兩端都支持自協商,則都會接收到對方的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鏈路的特征信號。

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

如果是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)兩種雙工模式。

自協商和強制最根本的區別就是兩者再建立物理鏈路時發送的碼流不同,自協商模式發送的是/C/碼,也就是配置(Configuration)碼流,而強制模式發送的是/I/碼,也就是idle碼流。

千兆光口自協商過程:

1.兩端都設置為自協商模式

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

2.一端設置為自協商,一端設置為強制

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

3.兩端均設置為強制模式

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

快速鏈接脈沖(FLPs)和普通鏈接脈沖(NLPs)

自動協商的執行是通過FLPs來實現的。NLPs是周期為16ms左右的脈沖,脈沖寬度為100ns(10base-T)、10ns(100base-TX)。FLPs類似於NLPs,它是連續的17~33個的脈沖用來傳輸16bit的連接碼(link code word)以進行自動協商,碼寬為125us,在125us碼寬中間有脈沖為1,無脈沖為0。link code word並不是以太網通信結點的有效數據,只被PHY接口模塊識別。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM