基本原理
連線埠自動協商模式是連線埠根據另一端設備的連線速度和雙工模式,自動把它的速度調節到最高的工作水平,即線路兩端能具有的最快速度和雙工模式。
自協商功能允許一個網路設備能夠將自己所支持的工作模式信息傳達給網路上的對端,並接受對方可能傳遞過來的相應信息,從而解決雙工和10M/100M速率自協商問題。自協商功能完全由物理層晶片設計實現,因此並不使用專用數據包或帶來任何高層協定開銷。
自協商功能的基本機制是:每個網路設備在上電、管理命令發出、或是用戶干預時發出FLP(快速連線脈衝),協商信息封裝在這些FLP序列中。FLP中包含有時鐘/數字序列,將這些數據從中提取出來就可以得到對端設備支持的工作模式,以及一些用於協商握手機制的其他信息。當一個設備不能對FLP作出有效反應,而僅返回一個NLP(普通連線脈衝)時,它被作為一個10BASE-T兼容設備。 快速鏈路脈衝FLP和普通鏈路脈衝NLP都僅使用於非禁止雙絞線上,而不能套用在光纖媒體。
自動協商的內容主要包括雙工模式、運行速率、流控等內容,一旦協商通過,鏈路兩端的設備就鎖定在這樣一種運行模式下。1000M乙太網也支持自協商,在此從略。
電口和光口自協商主要區別是在OSI 中它們所處的位置不同。對於電口來說,協商發生在鏈路信號傳輸之前;對於光口來說, 自協商機制與PCS在同一層, 這意味著光口的協商必須先建立鏈路同步以後才可以進行協商。PCS (Physical Coding Sub-layer)
工作模式
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,就會重新協商為“一端全雙工&一端半雙工”的不穩定連線。因此,這種情況一定要避免!
千兆光口
千兆光口可以工作在強制和自協商兩種模式。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狀態。