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