本文從一個嚴重影響網絡服務性能的故障案例出發,分析了對于網絡接口速率的設置和相關錯誤的原理和故障排除過程,文中提到的故障是常見的網絡性能故障之一。
1.全雙工是否讓網絡傳輸更快
增加網絡應用性能的一個有效的方法就是充分利用現今大多數100M交換機和高速網卡的全雙工(FDX)以太網通信能力。然而,如果兩個相連設備端口的速率和雙工通信設置不一致,網絡性能非但不會提高反而會導致嚴重下降。這一現象是我們在為北京協和醫院進行網絡測試服務中發現的。該醫院的網管人員反映信息中心的某臺服務器在被網上其他站點訪問時速度很慢,復制一個30M左右的文件需要5~6分鐘時間,而該服務器的網卡為100M,交換機是10/100M自適應的。
我們使用了FLUKE683企業級網絡測試儀查找到了這個故障的原因。分別用測試儀的 HUB和NIC端口測試功能測試了交換機和服務器網卡的端口設置,發現交換機端口工作在半雙工/10/100M自適應模式下;而服務器上的網卡工作在全雙工/100M模式下,這顯然是不匹配的設置情況。正是由于這個問題導致了網絡的傳輸不正常、性能大大下降的故障。在測試中發現,在糾正這個設置錯誤之前,傳輸數據(如復制文件)時就出現大量的錯誤幀,造成數據的重發,嚴重影響網絡的傳輸效率。而在我們發現這個問題并調整服務器網卡的設置與交換機的設置一致后,網絡數據傳輸就立即恢復正常了,同樣復制30M的文件現在僅需要十幾秒鐘,并且沒有發現任何錯誤幀。
這個問題讓我們意識到,如果沒有正確地采用新技術,反而會造成網絡造成性能的下降。所以在對網絡進行升級或改造時,一定要對新采用的技術和設備進行必要的了解,并對網絡做變動前后的測試,通過對測試結果進行比較來確認網絡的改變沒有帶來負面的影響。
下面我們就為什么這個全雙工的簡單設置問題能造成如此嚴重的網絡傳輸故障而進行深入的分析。先從了解以太網介質訪問的機制入手。
2.端口設置基礎
標準以太網設計為半雙工操作,采用CSMA/CD(具有沖突檢測功能的載波偵聽多路訪問協議)介質訪問控制技術。其基本思想是:一個半雙工以太網端口(站點)在發送信號前需要監聽總線,以確定傳輸介質上是否存在其他站點發送的信號(CSMACD的CS——載波偵聽)。如果傳輸介質空閑,則該站點開始發送數據幀。如果探測到其他站點(多路訪問)有沖突(沖突檢測),它就發送一個阻塞信號,通常是二進制1和0。之后為降低再次發生沖突的概率,采用退避算法隨機延時一段時間,再按CSMA/CD協議重新發送數據。在雙絞線和光纖拓撲結構中,出現發送數據幀的同時又接收到數據的情況,極易發生碰撞。所有相互之間有可能沖突的設備均被認為是在一個“沖突域”。所有通過HUB或中繼器連接的節點都被認為是在一個沖突域中。在交換環境只有交換機和末端結點是在一個沖突域。
采用以太網交換機,全雙工操作可顯著地增加性能,因為其放棄了全部CSMA/CD過程。全雙工操作利用了交換機內部的緩沖,因此設備可以同時發送和接收數據而不必關心來自其他站點的流量。
使用半雙工操作,在任何時間內只有一方可以發送數據。而采用全雙工操作,兩個站點(服務器和交換機)之間發送和接收通道是相互獨立的。這看起來就像是兩個單工鏈路(一個發送而另一個接收),兩通道間沒有相互影響和依賴關系。
3.混合技術網絡
目前大多數網絡都是混合速率環境,一些是10BASE-T,另一些是100BASE-TX。對于混合速率的網絡環境有一個必須要遵守的原則:即在全部網絡或廣播域(一個以太網廣播幀可以到達的網絡范圍)中可以是混合速率;而在一個單一的沖突域中就只能有一個網絡速度。在10BASE-T和100BASE-TX網段間傳送的所有數據幀必須通過網橋或交換機類的設備進行交換。另外,所有全雙工鏈路也必須連接在交換機端口。
4.端口設置技術——自動協商技術
避免在一個網段中混淆速率和雙工設置是非常關鍵的。為幫助防止出現此類問題,很多設備都支持自動協商功能。
自動協商是這樣一個過程:網段的兩個端點會確定一個雙方設備都支持的設置。自動協商使用一種特殊的連接脈沖協議——快速連接脈沖(FLP)。當主機探測到FLP并且支持它時,這兩個站點就能確定另外一方的性能,如速度(10或100Mb)和通信方式(全雙工或半雙工)。
由于不是所有的端口都支持FLP自動協商過程,所以就會有手動設置的需要。固定速率的HUB(10或100Mbps)通常不支持自動協商功能。比如,一個固定速率的100BASE-TX的HUB可能只發送100BASE-TX連接脈沖信號而不是發送快速連接脈沖用于自動協商。如果一個支持自動協商的以太網設備連接到一個固定速率的設備上,它會利用半雙工操作自動設定與固定速率一致。多數廠商允許用戶設定交換機端口為固定速率而禁止自動協商功能。這樣可以支持早期生產的不具有自動協商功能的100BASE-TX網卡,或者由網管人員確保在重要鏈路中避免出現使用低速率的意外情況。
5.問題
如果網段中相連的兩個設備沒有使用相同的傳輸速率和雙工設置將會產生嚴重的問題。一般來說10BASE-T網卡不會影響100BASE-TX的HUB或交換機端口。反之無自動協商功能的100BASE-TX設備直接接入10BASE-T的HUB則會引起大量的全半雙工的配合不當問題是很難查找的。如果網段的一端運行全雙工而另一端運行半雙工,那么在整個沖突域中就會導致應用性能的不一致和沖突的少許增加。