上禮拜某天,去問了老大關於乙太網路端口Link燈的意義,雖然被念說之前講那多次都會忘記,這次總算是融會貫通,再把這些記的得趕快寫下來以備後來查詢。
RJ-45是一種乙太網路常見的接口,電話線的接孔也長這個樣子。以主機板的網路孔為例子,接上你的設備(電腦,交換機,路由器等等設備)之後,過一段時間他的Link燈號會亮起。本文就是在說明他的燈號亮起的原理是什麼。燈號的模式IEEE有一個規範在,因此各家的PHY或是FPGA/RTC點燈的方式,都會依照規範來走,所以原理大同小異而已。底下一步步來介紹:
「Auto MDI/MDIX」
網路線材裡頭,有4對線,其中1.2一對,3.6一對,4.5一對,7.8一對。為何3.4不一對呢?因為早期電話線是佔用了4.5的線,因此為了沿用,就變成這種配對方式。然後這四對線裡頭,100Mb只用到1.2和3.6,一對負責傳送,一對負責接收。1G的話則是二對負責傳送,二對負責接收,原則上是這樣。當一邊傳送訊號時,另一邊負責接收,如果沒有接收到訊號,有些網卡的PHY會進行Tx/Rx對調,也就是傳送端(之後簡稱Tx)接收端(之後簡稱Rx)對調,所謂自動跳線功能。這就稱作Auto MDI/MDIX。這就是為何網卡平行線和跳線都會通的原因。因為PHY去做自動調換了。
「Auto Negotiation」
Auto MDI/MDIX的功能是Link的第一步(其實是第二步,還有一個極性的偵測,這邊沒有細問),A.B兩邊說好你Tx我就Rx,Tx/Rx對起來之後,再來就開始要做連線。連線的最基本原理是A的Tx端發送一連串訊號,被B的Rx端接收到後,就算連接。Tx端在一上電,做好Auto MDI/MDIX之後,就會開始發送訊號,這個訊號稱作pulse,每間隔一段時間發送的意思。Rx端在接收到一連串訊號之後(幾個看每家規定不一樣,通常都不會看單純一個,因為可能是雜訊),裝置就可以處於Link狀態。而在100M的速度下,發送的pulse訊號是以MLT-3編碼的方式,而在1G 的速度下,發送的pulse訊號是以PAM-5編碼的方式,底下列出三種速度的pulse編碼方式如下:
編碼方式不重要,就當成是大量的資料從A的Tx端傳送,因此,B裝置Rx端看到這串訊號,若是以10M的方式來解讀的話,就會認為是Link的狀態了。說到這邊,一個很重要的觀念來了,那要怎麼辨認他的Speed是多少?到底是10M還是100M,還是1G呢?單純pulse資料沒辦法做到,因此有一個技術稱作「Auto negotiation」,這個功能是選擇性開啟的。他會在pulse的後頭在跟上幾十個bit的訊號(準確的個數我也不懂,說是有些是被忽略的,目的是讓裝置被喚起),裡頭摻雜16bit的資料,稱作FLP(Fase Link Pulse),相對於這個,傳統的pulse就稱作NLP(Normal)。兩者的差別如下,FLP除了pulse之外,還帶了auto negotiation的資料:
這些pulse後頭帶的bit,除了表示speed之外,在1G speed的時候,還有帶master/slave的參數,類似告訴另一端走哪個頻道等等的(因為一對CAT-6的線,最高傳輸速率為250Mbps,四對線就是1Gbps,佔滿了頻寬,同時上下行的話需要master/slave兩邊說好)!這邊更多可以深究的,我也沒細看。原理大概就是這樣啦。接收端裝置看到來的資料,對照本身資料做個and運算,對齊之後就知道自己的最高speed能力到哪裡了,找到一樣的最高速度,link燈亮起了!
在網路中遇到的速度不對等狀況很多種,就幾種來對照上頭說的,會呈現哪種狀況。
狀況
|
A端
|
B端
|
Result
|
||
Auto negotiation
|
Speed
|
Auto negotiation
|
Speed
|
||
1
|
Auto
|
100MF
|
Auto
|
10MF
|
A.B Link 10MF
|
2
|
Auto
|
100MF
|
Force
|
10MH
|
A Link 10MF,
B Link 10MH*
|
3
|
Force
|
100MF
|
Force
|
10MF
|
A Link down, B Link 10MH*
|
l A端會降速,且會收到來自B端的pulse,但無auto negotiation資料,連線至該speed。
l 因為B端會看到來自A端發送的pulse資料,但是上頭無auto negotiation資料,不知道其speed,根據10M的解釋因此連結在10MFull。看各家解讀,有些廠商會將此狀況link down處理。反正在這種狀態下,也無法將資料送達對方。
以上~~然後雄雄發現,這剛好是我第100篇文章耶!
0 意見:
張貼留言