自協商基本原理自動協商模式是埠根據另一端裝置的連線速度和雙工模式,自動把它的速度調節到最高的公共水平,即線路兩端能具有的最快速度和雙工模式。
自協商功能允許乙個網路裝置能夠將自己所支援的工作模式資訊傳達給網路上的對端,並接受對方可能傳遞過來的相應資訊,從而解決雙工和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介面模組識別。
自協商基本頁資訊
在鏈路初始化的時候,自協商協議向對端傳送16bit的報文,也就是所謂的脈衝訊號,然後從對端接收類似的報文,這個16bit的報文就是我們所說的基本頁,不同的裝置,在針對基本頁做字位資訊的時候,那就能識別它是屬於哪乙個情況.。
bit0~4:指示自協商資料幀,對於802.3標準,設定為'10000';
bit5~12:指示結點(埠)資訊效能域;
bit5~9:定義埠可連線型別,按照優先順序從高到低如下(setbit有效):
bit8:100base-tx全雙工;bit9:100base-t4;bit7:100base-tx半雙工;bit6:10base-t全雙工;bit5:10base-t半雙工;
bit10:指示流量控制資訊:0:流控無效;1:流控有效,決定了埠後續通訊是否有pause幀;
bit11:支援全雙工連線時的非對稱暫停機制;
bit13:遠端故障指示;
bit14:握手訊號ack,當收到三個連續的相同flp後,此位置1;
pause幀(流量控制)
乙太網埠電口工作模式簡單介紹
1.乙太網口的兩端工作模式(10m半雙工、10m全雙工、100m半雙工、100m全雙工、自協商)必須設定一致。
2.如果一端是固定模式(無論是10m、100m),另外一端是自協商模式,即便能夠協商成功,自協商的那一端也將只能工作在半雙工模式。
3.如果一端工作在全雙工模式,另外一端工作在半雙工模式(包括自協商出來的半雙工,也一樣處理),ping是沒有問題的,流量小的時候也沒有任何問題,流量達到約15%以上時,就會出現衝突、錯包,最終影響了工作效能!
4.對於兩端工作模式都是自協商,最後協商成的結果是「兩端都支援的工作模式中優先順序最高的那一類」。
5. 如果a端自協商,b端設定為100m全雙工,a協商為100m半雙工後,再強制將b改為10m全雙工,a端也會馬上向下協商到10m半雙工;如果a端自協商,b端設定為10m全雙工,a協商為10m半雙工後,再強制將b改為100m全雙工,會出現協商不成功,連線不上!這個時候,如果插拔一下網線,又會重新協商在100m半雙工。
建議
乙太網口的兩端工作模式必須設定一致。 否則,就會出現流量一大速度變慢的問題。大多數裝置乙太網口的預設的出廠設定是自協商。如果兩端都是自協商,協商成功了,但網路不通,此時請檢查網線是否支援100m。如果兩端都是自協商,協商成功並且執行在全雙工,在沒有link down的前提下,將其中一端「立刻」設定為固定的「10m/100m全雙工」,兩端仍然能夠工作在全雙工。但是,萬一將來插拔網線或者其他原因出現重新link,就會重新協商為「一端全雙工&一端半雙工」的不穩定連線。因此,這種情況一定要避免!
乙太網自動協商原理
自協商基本原理 自動協商模式是埠根據另一端裝置的連線速度和雙工模式,自動把它的速度調節到最高的公共水平,即線路兩端能具有的最快速度和雙工模式。自協商功能允許乙個網路裝置能夠將自己所支援的工作模式資訊傳達給網路上的對端,並接受對方可能傳遞過來的相應資訊,從而解決雙工和10m 100m速率自協商問題。自...
乙太網自動協商原理
自協商基本原理 自動協商模式是埠根據另一端裝置的連線速度和雙工模式,自動把它的速度調節到最高的公共水平,即線路兩端能具有的最快速度和雙工模式。自協商功能允許乙個網路裝置能夠將自己所支援的工作模式資訊傳達給網路上的對端,並接受對方可能傳遞過來的相應資訊,從而解決雙工和10m 100m速率自協商問題。自...
乙太網自動協商原理
自協商基本原理 自動協商模式是埠根據另一端裝置的連線速度和雙工模式,自動把它的速度調節到最高的公共水平,即線路兩端能具有的最快速度和雙工模式。自協商功能允許乙個網路裝置能夠將自己所支援的工作模式資訊傳達給網路上的對端,並接受對方可能傳遞過來的相應資訊,從而解決雙工和10m 100m速率自協商問題。自...