以太網的兩個標準
- DIX Ethernet V2是世界上第一個局域網產品(以太網)的規約。
- IEEE的802.3標準。
DIX Ethernet V2標準與IEEE的802.3標準只有很小的差別,因此可以將802.3局域網簡稱爲“以太網”,但嚴格來說,“以太網”應當是指符合DIX Ethernet V2標準的局域網。
以太網與數據鏈路層的兩個子層
爲了使數據鏈路層更好適應多種局域網標準,802委員會就將局域網的數據鏈路層拆成兩個子層:
1. 邏輯鏈路控制LLC(Logical Link Control)子層
2. 媒體接入控制MAC(Medium Access Control)子層
與接入到傳輸媒體有關的內容都放在MAC子層,而LLC子層則與傳輸媒體無關,由於TCP/IP體系經常使用的局域網是DIX Ethernet V2而不是802.3標準中的幾種局域網,因此現在802委員會制定的邏輯鏈路控制子層LLC(即802.2標準)的作用已經消失了,所以現在很多廠商生產的適配器(網卡)上就僅裝有MAC協議而沒有LLC協議。
以太網提供的服務
以太網提供的服務是不可靠的交付,即盡最大努力的交付。當接收站收到有差錯的數據幀時就丟棄此幀,其他什麼也不做。差錯的糾正由高層(即傳輸層)來決定。如果高層(傳輸層)發現丟失了一些數據而進行重傳,但以太網並不知道這是一個重傳的幀,而是當做一個新的數據幀來發送。
星型拓撲
傳統以太網最初是使用粗同軸電纜,後來演進到使用比較便宜的細同軸電纜,最後發展爲使用更便宜和更靈活的雙絞線。不用電纜而使用無屏蔽雙絞線。每個站需要用兩對雙絞線,分別用於發送和接收,這種以太網採用星型拓撲,在星形的中心則增加了一種可靠性非常高的設備,叫做集線器(hub),設備與集線器之間通過兩對雙絞線的RJ-45水晶接頭相連,每個設備與集線器連接的距離不得超過100米。集線器起到了信號放大的作用,集線器可以與集線器相互連接。
集線器的一些特點
使用集線器的以太網在邏輯上仍是一個總線網,各工作站的網卡執行CSMA/CD協議,集線器很像一個多接口的轉發器,集線器工作在物理層,它的每個接口只進行簡單的轉發比特,而不進行碰撞檢測。下圖爲一個三接口的集線器,可以發現每一個工作站(設備)通過網卡(適配器)發送的數據(電信號形式)對應着其餘所有網卡的收數據端(其餘某端裝有抓包工具的話可以捕獲數據)。集線器的工作原理非常簡單,只不過當接口變多時,對應的線路也會越多而已。
10BASE-T星形以太網標準(即就是IEEE制定的802.3i標準)
國際互聯網組織給用集線器連接的以太網定義了一個標準爲10BASE-T,**10BASE-T中的10代表的是10兆(10Mbps=10Mbit/s)的帶寬,BASE代表傳輸的信號爲基帶信號(又稱數字信號),T代表使用雙絞線聯網的。**10BASE-T的通信距離稍短,每個計算機到集線器的距離不超過100米,這種10Mb/s速率的無屏蔽雙絞線星形網的出現,既降低了成本,又提高了可靠性,同時它爲以太網在局域網中的統治地位奠定基礎。除此之外還有:100BASE-FX(百兆以太網,傳輸基帶信號,FX代表光纖),100BASE-T,100BASE-T4等等。
以太網的信道利用率
假定一個10Mb/s以太網同時有10個站在工作,那麼每一個站所能發送數據的平均速率似乎應當是總數據率的1/10(即1Mb/s)。其實不然,因爲多個站在以太網上同時工作就可能會發生碰撞。當發生碰撞時,信道資源實際上是被浪費了。因此,當扣除碰撞所造成的信道損失後,以太網總的信道利用率並不能達到100%。一個站在發送幀時出現了碰撞,經過一個爭用期2τ後(τ是以太網單程端到端傳播時延),可能又出現了碰撞。這樣經過若干個爭用期後,一個站發送幀才能成功。
由上圖可知,成功發送一個幀需要佔用信道的時間是
要提高信道利用率,首先要減小
雖然實際的以太網不可能有這樣高的極限信道利用率,但只有當參數
數據鏈路層的MAC子層
MAC層的硬件地址(MAC地址)
以太網組成的網絡中的每一臺計算機他們的網卡都有一個全球唯一地址,這個地址在網卡生產時就已經嵌入到芯片當中了,網卡的這個地址就稱爲媒體訪問控制地址,又稱MAC地址 。MAC地址是由48位二進制組成的(我們所看到的的是16進製表示的MAC地址),IEEE的註冊管理機構RA負責向廠家分配48位MAC地址字段的前三個字節(即高位24位),地址字段中的後三個字節(即低位24位)由廠家自行指派,稱爲擴展標識符,最後必須保證生產出的適配器沒有重複地址(全球唯一)。適配器從網絡中每收到一個MAC幀就首先用硬件檢查MAC幀的目的地址是否正確,也就是說MAC幀是否發送給了正確的接收方,如果檢測沒問題則接收該MAC幀。
“發往本站的幀”包括以下三種幀:
- 單播幀(一對一),即收到的幀的MAC地址與本站的硬件地址相同。
- 廣播幀(一對全體),即發送給本局域網上所有站點的幀(目標MAC地址爲ff ff ff ff ff ff,也就是二進制的全1)。
- 多播幀(一對多),即發送給本局域網上一部分站點的幀。
MAC幀格式
常用的以太網MAC幀格式有兩種標準,一種是DIX Ethernet V2標準(即以太網V2標準,如上圖),另一種是IEEE的802.3標準。這裏只介紹使用最多的以太網V2的MAC幀格式。以太網V2的MAC幀比較簡單,由五個字段組成,前兩個字段分別爲6字節長的目的地址和源地址字段。第三個字段是2字節的類型字段,用來標誌上一層使用的是什麼協議,以便把收到的MAC幀的數據上交給上一層的這個協議。例如當類型字段的值是0x0800時,表示上一層使用的是IP數據報,第四個字段是數據字段,其長度在46到1500之間,因爲前三個字段和最後一個字段加起來共18個字段,而以太網的幀最短爲64字節,所以數據部分最短爲64-18=46字節。最後一個字段是4字節的幀檢驗序列FCS(使用CRC檢驗)。在傳輸MAC幀的時候需要在MAC幀首部加上8個字節,這8個字節中前7個字節爲前同步碼,它的作用是:使接收端的適配器在接收MAC幀時能夠迅速調整其時鐘頻率,使它和發送端的時鐘同步,以就是“實現位同步”(位同步就是比特同步的意思)。最後1個字節是幀開始定界符,定義爲10101011,它的前六位作用和前同步碼一樣,最後兩個連續的1就是告訴接收端適配器:“MAC幀的信息馬上就要來了,請適配器注意接收”。MAC幀的FCS字段的檢驗範圍不包括前同步碼和幀開始定界符。注意首部加上的這8個字節並不屬於MAC幀裏包括的內容,幀的內容總共就5個字段,分別是目的地址、源地址、類型、數據、FCS。若MAC幀中數據部分長度小於46個字節,MAC子層就會在數據字段的後面加入一個整數字節的填充字段,以保證以太網的MAC幀長不小於64字節。
無效的MAC幀
- 幀的長度不是整數個字節。
- 用收到的幀檢驗序列FCS查出有差錯。
- 數據字段的長度不在46~1500字節之間。
- 有效的MAC幀長度爲64~1518字節之間。
- 對於檢查出的無效MAC幀就簡單地丟棄,以太網不負責重傳丟棄的幀。
幀間最小時間間隔
幀間最小時間間隔爲9.6μs,相當於96bit的發送時間。一個站在檢測到總線開始空閒後,還要等待9.6μs才能再次發送數據。這樣做是爲了使剛剛收到數據幀的站的接受緩存來得及清理,做好接收下一幀的準備。