以太網基本知識小結

一、概述

以太網是應用最爲廣泛的局域網,包括標準的以太網(10Mbit/s)、快速以太網(100Mbit/s)和10G(10Gbit/s)以太網,採用的是CSMA/CD訪問控制法,它們都符合IEEE802.3。

常見的802.3應用爲:

10M:10base-T(銅線UTP模式)

100M:100base-TX(銅線UTP模式):100BASE-TX是一種使用5類數據級無屏蔽雙絞線或屏蔽雙絞線的快速以太網技術。它使用兩對雙絞線,一對用於發送,一對用於接收數據。在傳輸中使用4B/5B編碼方式,信號頻率爲125MHz。符合EIA586的5類佈線標準和IBM的SPT1類佈線標準。使用同10BASE-T相同的RJ-45連接器。它的最大網段長度爲100米。它支持全雙工的數據傳輸。

100base-FX(光纖線):100BASE-FX是一種使用光纜的快速以太網技術,可使用單模和多模光纖(62.5和125um)。多模光纖連接的最大距離爲550米。單模光纖連接的最大距離爲3000米。在傳輸中使用4B/5B編碼方式,信號頻率爲125MHz。它使用MIC/FDDI連接器、ST連接器或SC連接器。它的最大網段長度爲150m、412m、2000m或更長至10公里,這與所使用的光纖類型和工作模式有關,它支持全雙工的數據傳輸。100BASE-FX特別適合於有電氣干擾的環境、較大距離連接、或高保密環境等情況下的適用。

1000M:1000base-T(銅線UTP模式)

二、以太網結構: 

802.3通常使用專門的網絡接口卡或通過系統主電路板上的電路實現。以太網使用收發器與網絡媒體進行連接。收發器可以完成多種物理層功能,其中包括對網絡碰撞進行檢測。收發器可以作爲獨立的設備通過電纜與終端站連接,也可以直接被集成到終端站的網卡當中。

以太網採用廣播機制,所有與網絡連接的工作站都可以看到網絡上傳遞的數據。通過查看包含在幀中的目標地址,確定是否進行接收或放棄。如果證明數據確實是發給自己的,工作站將會接收數據並傳遞給高層協議進行處理。

以太網採用CSMA/CD媒體訪問機制,任何工作站都可以在任何時間訪問網絡。在發送數據之前,工作站首先需要偵聽網絡是否空閒,如果網絡上沒有任何數據傳送,工作站就會把所要發送的信息投放到網絡當中。否則,工作站只能等待網絡下一次出現空閒的時候再進行數據的發送。

作爲一種基於競爭機制的網絡環境,以太網允許任何一臺網絡設備在網絡空閒時發送信息。因爲沒有任何集中式的管理措施,所以非常有可能出現多臺工作站同時檢測到網絡處於空閒狀態,進而同時向網絡發送數據的情況。這時,發出的信息會相互碰撞(collision)而導致損壞。工作站必須等待一段時間之後,重新發送數據。補償算法用來決定發生碰撞後,工作站應當在何時重新發送數據幀。

三、以太網的工作過程

當以太網中的一臺主機要傳輸數據時,它將按如下步驟進行:

1、監聽信道上收否有信號在傳輸。如果有的話,表明信道處於忙狀態,就繼續監聽,直到信道空閒爲止。

2、若沒有監聽到任何信號,就傳輸數據

3、傳輸的時候繼續監聽,如發現衝突則執行退避算法,隨機等待一段時間後,重新執行步驟1(當衝突發生時,涉及衝突的計算機會發送會返回到監聽信道狀態。

注意:每臺計算機一次只允許發送一個包,一個擁塞序列,以警告所有的節點)

4、若未發現衝突則發送成功,所有計算機在試圖再一次發送數據之前,必須在最近一次發送後等待9.6微秒(以10Mbps運行)。

四、以太網/IEEE802.3幀的結構

下圖所示爲以太網/IEEE802.3幀的基本組成。

 

如圖所示,以太網和IEEE802.3幀的基本結構如下:

前導碼:由0、1間隔代碼組成,可以通知目標站作好接收準備。IEEE802.3幀的前導碼佔用7個字節,緊隨其後的是長度爲1個字節的幀首定界符(SOF)。以太網幀把SOF包含在了前導碼當中,因此,前導碼的長度擴大爲8個字節。

幀首定界符(SOF):IEEE802.3幀中的定界字節,以兩個連續的代碼1結尾,表示一幀實際開始。

目標和源地址:表示發送和接收幀的工作站的地址,各佔據6個字節。其中,目標地址可以是單址,也可以是多點傳送或廣播地址。

類型(以太網):佔用2個字節,指定接收數據的高層協議。

長度(IEEE802.3):表示緊隨其後的以字節爲單位的數據段的長度。

數據(以太網):在經過物理層和邏輯鏈路層的處理之後,包含在幀中的數據將被傳遞給在類型段中指定的高層協議。雖然以太網版本2中並沒有明確作出補齊規定,但是以太網幀中數據段的長度最小應當不低於46個字節。

數據(IEEE802.3):IEEE802.3幀在數據段中對接收數據的上層協議進行規定。如果數據段長度過小,使幀的總長度無法達到64個字節的最小值,那麼相應軟件將會自動填充數據段,以確保整個幀的長度不低於64個字節。

幀校驗序列(FSC):該序列包含長度爲4個字節的循環冗餘校驗值(CRC),由發送設備計算產生,在接收方被重新計算以確定幀在傳送過程中是否被損壞。

五、以太網速率計算

我們通常所說的10M、100M,1000M、10GE,這些都是指物理介質每秒可以傳送多少bit的數據。在我們實際中經常使用每秒傳送實際數據幀的數目即PPS(packets per second)來表示報文的速率。下面介紹對於以太網來說如何進行鏈路速率與pps之間的換算。

以太網傳送數據時,每兩個幀之間存在幀間隙IFG(Inter Frame Gap),幀間隙的作用是使介質中的信號處於穩定狀態,同時讓幀接收者對接收的幀作必要的處理(如調整緩存取的指針、更新計數、發中斷讓主機對報文進行處理)。對於Ethernet(10M)幀間隙時間爲9.6usec,100M快速以太網幀間隙爲0.96usec,1000M幀間隙爲0.096usec,10GE幀間隙爲0.0096usec,這個時間正好相當於傳送96bit數據的時間。

下面我們看怎麼把以太網速率與pps進行換算,假設數據幀的長度爲 k bytes(包括CRC),端口速率爲R,轉化後的PPS爲N,那麼:

N=R/(k×8+8×8+96)

其中k×8表示實際數據幀的長度(bits),8×8表示前導碼(Preamble+SFD)的長度,96bit相當於幀間隙佔用的bits。

下面舉例說明,假設端口速率爲100M,發送數據幀的長度爲64字節,那麼線速發送報文換算成pps後,

N=100 000 000/(64×8+8×8+96)≈148810 pps 

六、半雙工、全雙工、自協商

在10BASE5和10BASE2的總線型拓撲中,同一時刻只能有一個節點發送數據。隨着10BASE-T和hub的出現,網絡節點的連接變成了點到點的連接。在節點之間點到點連接中,同一節點同一時刻只能接收或發送數據,不能同時接收、發送數據。這種同一時刻只能接收或發送數據的工作模式爲半雙工模式。在半雙工模式下,使用CSMA/CD的機制來避免衝突。

全雙工模式下,同一時刻可以同時接收和發送數據幀。

自協商功能允許一個網絡設備能夠將自己所支持的工作模式信息傳達給網絡上的對端,並接收對方可能傳遞過來的相應信息。對於兩端處於自協商工作方式的設備,最終協商的結果是採用二者技術能力域中優先級低的網口提供的工作方式工作。協商級別一般爲1000Mfull,1000Mhalf,100Mfull,100Mhalf,10Mfull,10Mhalf。

10BASE-T的以太網接口(它只支持10M,不支持自協商)在鏈路UP之前會發送Link Test Pulse(LTP),該脈衝用以檢測鏈路是否應該UP;而100BASE-T以太網接口(它只支持100M,不支持自協商)在鏈路UP之前會發送FAST ETHERNET IDLE流,用以檢測鏈路是否應該UP。

支持自協商(Autonegotiation)的以太網接口則在鏈路UP之前發送FLP(Fast Link Pulse),FLP實際上是一組LTP和數據脈衝的組合,它們表明一種含義:例如我支持100M全雙工。較舊的設備例如10BASE-T仍然將這些FLP識別爲LTP,而自協商設備則能夠識別FLP的含義並通過交互這種握手信息來使鏈路成爲最優配置。如果自協商設備看到有一般的LTP(不是有特定含義的FLP)輸入,它就將本端設置爲10M半雙工。如果自協商設備看到有FAST ETHERNET IDLE輸入,它就將本端設置爲100M半雙工。以上所述的自協商機制只對10/100兆銅纜接口或千兆光/電口有效,100BASE-FX不支持自協商。

千兆自協商和10/100兆自協商使用同樣的機制,1000BASE-LX和1000BASE-SX使用自協商機制來協商雙工和流控。1000BASE-T設備的自協商還會包含附加域(例如是MASTER還是SLAVE)的協商。千兆設備幾乎沒有半雙工的情況(雖然可以協商),所以很多雙工的問題都不存在了。

七、流控

流控指當接收者沒有能力處理接收到的報文時,爲了防止丟包,接收者需要通知報文的發送者一段時間內停止發送報文。

對於半雙工模式和全雙工模式,流控通過不同的方式來實現。在全雙工模式下,接收者通過發送一種特殊的數據幀來通知發送者,停止發送報文,這種特殊的數據幀稱爲PAUSE幀,下面是PAUSE幀的結構:

 

PAUSE幀的長度固定爲64字節(包括CRC),PAUSE幀的目的MAC爲組播MAC:0180-c200-0001,源MAC爲發送PAUSE幀的節點的MAC,LENTH/TYPE字段固定爲0x8808。MAC CONTROL PARAMETERS字段表示要求發送者暫停發送流量的時間,數值有效範圍爲0-65535, 單位爲512bit time(bit time指鏈路上傳輸1bit需要的時間,如100M鏈路bit time爲10ns)。如果數據報文的接收者在發送PAUSE幀後,在PAUSE幀發送的等待時間超時之前可以處理數據報文,則再發送一個等待時間爲0的PAUSE幀通知數據發送者開始發送數據。

PAUSE的接收者(也是數據報文的發送者),收到PAUSE幀後會根據PAUSE幀中的等待時間停止發送報文,等待時間超時後繼續發送報文。

半雙工模式下,以太網利用CSMA/CD機制處理衝突和鏈路使用問題。根據CSMA/CD機制,半雙工的模式下,採取的流控方式爲Backpressure,即背壓。該種方法有兩種實現,一個是數據接收者有意製造一次衝突,數據發送者檢測到衝突採取Backoff,這樣就延緩了數據的發送;另外一個方法是製造載波信號,使數據發送者感覺到接收者要發送數據,從而通過檢測到載波而進行延時傳輸。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章