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