Q:淺談以太網de Auto-Negotiation 和 Auto-Sense 機制
A:說起自動協商(Auto-negotiation),我想很多人都不會陌生。當你把你PC機器上的網卡通過一段雙絞線連接到某個交換機的某個端口的時候,如果你的網卡和交換機都支持自動協商功能的話,一件有趣的事情就會發生了,網卡和交換機似乎能夠互相告知對方自己可以工作的方式包括網速,雙工狀態。然後自動選擇一個大家都能接受的最佳工作狀態!
首先給大家說說為什麼會出現自動協商!它為解決什麼問題而來!
眾所周知,早期的以太網工作在低速的10M,半雙工狀態,後來隨著網絡不斷發展的,又出現了交換機--支持全雙工,100M,1000M,甚至最新的萬兆以太網。為了保護以前的投資,新的標准一般都向下兼容比如100M的系統能夠支持就的10M,半雙工。但是這樣同時又產生了一個新的問題,如果沒有某種機制能夠讓兩台互聯的以太網設備之間能夠協商獲得兩者都能接受的最佳工作方式的話,你只能通過手工設置來保證通訊雙方工作狀態的一致性!
這對於有少量這種問題的網絡也許是個小問題,但是對於存在大量這種問題的網絡而言就是一個頭疼的問題。幸好,以太網的標准制定者推出了自動協商(Auto-Negotiation)這種機制,來解決這個問題。
說完這個自動協商機制用來解決什麼問題,我們再講講自動協商機制是如何協商的.Auto-Negotiation實際上我們可以把它看作成一種主動地協商方式,具有這種功能的設備會主動與對方協商,並且等待對端返回協商結果,它不僅能夠協商兩端的工作速度是10M,還是100M還是1000M,而且還可以協商兩端工作的雙工方式是半雙工還是全雙工.
Auto-Negotiation通過和對端交換一種FLP(Fast Link Pluse)的特殊Frame,裡面包含了自己這端可以支持的工作組合方式(速度/雙工方式),對端收到之後和自己可以支持的工作組合方式相比較選擇一種最佳的工作方式.
簡單介紹完自動協商Auto-Negotiation這種機制,我們在說說一個類似的解決方案:
Auto-Sense,自動適應--這是一種被動的方式,它通過對比從對端收到的信號的時間間隔來計算對端的工作速度是10M還是100M.這種方式有個很明顯的缺陷就是無法Sense雙工狀態.
現在大部分的網絡設備對Auto-Negotiation和Auto-Sense都支持,當自動協商失敗的時候,它可以
通過Auto-Sense確定和對端一致的工作速度.
需要再給大家提醒的就是自動協商並不能百分之一百的可靠。也就是說因為各種各樣的原因可能
造成速度不匹配或者雙工不匹配。速度不匹配的情況下,我們通常可以很容易的感覺的到,因為
速度不匹配的情況下通訊雙方是無法正常通訊的。而雙工不匹配的情況下,雙方能夠互相正常通訊但是會造成接口錯誤包數量的不斷增加,特別在接口流量較大的情況下會造成性能下降的問題!往往因為這個問題比較隱蔽不易查找!
由於以太網的歷史悠久而且像自動協商這種機制並不是和以太網一起誕生的而是隨著一台網的不斷發展而出現的。所以在使用自動協商機制的時候可能會因為對端不支持自動協商或者被手工指定工作方式而導致協商失敗或者協商不匹配。
所以我們在一般的應用的時候遵循以下原則:
1.對於重要設備之間的互聯,我們一般不起用自動協商機制我們一般通過強制指定兩端設備的工作速度和雙工狀態,比如核心交換機之間互聯,核心交換機和核心路由器互聯
2.對於一般的主機和交換機之間的互聯我們起用自動協商機制
3.對於那些無法協商或者協商失敗的設備互聯的時候,手工強制指定合適的工作狀態