TCP/IP 協定與 Internet 網路:第二章 雛形區域網路 - Ethernet 上一頁 下一頁
2-2 Ethernet 網路
目前網路環境裡的區域網路大多是 Ethernet 網路,而 Ethernet 網路是 1972 年由Digital公司、Intel公司和Xerox公司依照 CSMA/CD 協定標準所制定的。早期 Ethernet 網路製作簡單,連線也非常容易,因此漸漸被工業界喜愛,應用範圍也漸漸擴大。所以目前講區域網路主要以 Ethernet 為標準。但 CSMA/CD 協定也有致命的缺點,就是頻寬分配不均、易發生碰撞的現象而影響傳輸效率。但目前新的技術足以克服,使效率和速率較原來標準完善。我們以 Ethernet 標準網路為基礎開始介紹,再進入 Fast Ethernet 和 Gigabit Ethernet 網路。
2-2-1 Ethernet 網路簡介
Ethernet 網路的基本結構為匯流排(Bus)架構,如圖 2-8 所示,基本特性如下:
圖 2-8 CSMA/CD 網路基本架構圖
(1) Ethernet網路基本上為匯流排架構,傳輸媒介為同軸電纜(Coaxial Cable)。該傳輸媒介為網路上所有工作站之間通訊的橋樑,任何一部工作站欲傳送資料給其他工作站,必須將資料廣播到(Broadcasting)傳輸媒介上,而且所有工作站都要能收到網路上所廣播的訊息,如果有任何一部工作站無法接收到他人發送的訊息(也許網路太大),則表示網路不正常。
(2) 網路上同一時間只允許一部工作站發送訊號,如果有兩部以上同時發送訊號,則它們之間的訊號將會在網路上發生碰撞(Collision),造成錯誤訊息而失效(無法解碼)。發生碰撞時,所有傳送中的工作站必須停止傳送,另找適當時機再重新傳送。因此,每部工作站都必須具有偵測碰撞的功能。
(3) 同軸電纜上傳遞的訊號為電波方式。電波傳遞到纜線的端點會發生反射的現象,造成反射波和前進波混合,而發生訊號錯誤。為了讓網路不要發生反射波現象,我們必須在網路的兩個端點安裝『終端器』(Terminator),以便吸收前進波而使不致發生反射波的現象。
(4) 由上述情況可以看出,網路上任何一處斷線、接觸不良、或終端器脫漏將使整個網路癱瘓。
(5) 同軸電纜和工作站之間必須透過『收發器』(Transceiver)和『收發器電纜』(Transceiver Cable)的連接。收發器是電流訊號和電波訊號之間的轉換,其功能是在同軸電纜上發送和接收訊號。收發器電纜是一般絞對線電纜,其傳遞電流訊號。
由以上的特性,我們將標準 Ethernet 網路的基本規格歸類如下:
(1) 傳輸速率:10Mbps(高速 Ethernet 可達 100 Mbps ~ 1 Gbps)
(2) 訊框格式:IEEE 802.3 CSMA/CD格式 ,最大訊框為 1518 位元組,最小訊框為 64 位元組。
(3) 傳輸媒介: 50 歐姆之同軸電纜(Coaxial Cable)、無遮蔽式雙絞線(UTP)或光纖(Optical Fiber)。
(4) 網路拓樸圖:匯流排架構、廣播方式傳輸,最大網路範圍 2500 公尺。
(5) 不提供保證傳送延遲服務:CSMA/CD 協定為競爭式,沒有優先權傳輸服務。所以不保證工作站是否能在某段時間內取得傳輸媒介的使用權。
(6) 頻寬使用不保證公平:工作站的使用頻寬沒有平均分配,由競爭原則取得頻寬使用權。
(7) 高負載時頻寬使用率低:高負載時工作站之間碰撞機率提昇,易造成頻寬使用率降低。
(8) 較不適合多媒體資訊傳輸:因不保證傳輸延遲時間,而且基本協定規格的速率只有 10 Mbps,所以對即時傳輸的多媒體應用較不適合。
2-2-2 Ethernet 運作原理
Ethernet 網路是採用『載波檢測多重存取附碰撞偵測』(Carrier Sense Multiple Access with Collision Detection, CSMA/CD)協定,是 IEEE 802.3 所制定的『媒介存取控制』(Medium Access Control, MAC)通訊協定。它的上層必須配合 IEEE 802.2 LLC(如圖 2-7),而下層可依照不同環境需求結合各種傳輸媒介。CSMA/CD 協定是屬於廣播方式傳輸,其工作站不是在傳送資料(發送訊號),就是在接收資料(接收訊號)。網路上同一時間只允許一部工作站傳送資料,其餘則處於接收情況。圖 2-9 為 CSMA/CD 通訊協定的運作流程圖,可分為傳送資料和接收資料兩部分,以下分別說明之:
(A) 傳送資料流程:
(1) 工作站欲傳送資料前,首先聆聽(Listen)網路上是否有訊號在傳送(Carrier Sense)?如果網路上是安靜的 (Quiet),表示沒有任何工作站在使用,便可開始傳送資料;否則就必須等待,而且繼續聆聽。
(2) 當工作站將資料(訊框)傳送出去後,必須立即將其讀回,判斷是否與其他工作站碰撞(Collision Detection)?如發生碰撞便馬上退回不再傳送,等待某一『隨機時間』(Random Time)後再回到流程 (1) 繼續聆聽;否則便可繼續傳送。
(3) 資料是否傳送完畢?如完畢便發送介面程式通知上一層(LLC 層);否則回到流程 (2) 繼續發送。
(4) 如發生碰撞(由訊號改變來判斷是否碰撞),傳送端將送出擾亂訊號,告知所有工作站,網路已發生碰撞現象,不要再繼續傳送訊號。如果連續發生16 次以上的碰撞,表示網路或電腦發生嚴重的故障,停止傳送並等待修護人員來修護。
(5) 在網路上可能有多部工作站在載波偵測(Carrier Sense)準備要傳送資料,也有可能在傳送途中與其它工作站的訊號發生碰撞。
(B) 接收資料流程:
(1) 工作站如沒有在傳送資料,就在接收狀態下。當它接收完資料,如判斷該資料太短便將其拋棄(可能傳送途中發生碰撞而停止傳送),繼續接收資料。否則接下一個流程 (2)。
(2) 由訊框內的目的位址(Destination Address, DA)判斷是否傳送給自己,如果不是傳給自己的就將該訊框拋棄,回到流程 (1)。如果是,接下一個流程 (3)。
(3) 由訊框中 FCS(Frame Check Sequence)欄位的值,以 CRC(Cycle Redundancy Check)檢查方法,檢查訊框內資料是否發生錯誤。如果已發生錯誤則通知 LLC(由 LLC 要求對方重送該訊框),回到流程 (1)。如果沒有錯誤則接流程 (4)。
(4) 以訊框中長度(Length)欄位的值,與計算資料欄位內資料長度是否相符。如果不符,則通知 LLC(由 LLC 要求對方重送該訊框);如果相符,則刪除訊框的頭尾,將資料(LLC-PDU)傳給 LLC。回到流程 (1) 繼續接收資料。
圖 2-9 CSMA/CD 通訊協定流程
2-2-3 Ethernet 延遲等待時間
在 CSMA/CD 協定中,可能同時有多部工作站正準備傳送資料,它們都會在網路上檢測(Carrier Sense)是否有其他工作站正在傳送資料。如果有一部工作站檢測出網路是空閒時(Quiet),便立即將資料送出,但也有可能與其它工作站同時將資料送出,因此發生碰撞的機率也非常大。因此,在 Ethernet網路上,發送訊號者必須隨時讀回資料,以便確認是否有碰撞發生。如果讀回的資料和發送的資料相同(表示傳輸訊號可解碼回原來資料),則沒有發生碰撞的現象。如果讀回的訊號,無法解碼(decoding)回原來資料,則表示發送出來的訊號已和其他訊號相重疊,成為另一個訊號,和原來發送的訊號不同,也就無法解碼回原來資料。我們判斷這不明訊號也許是其他電腦所發送的,因此稱為碰撞(Collision)現象。其實,這不一定是發生碰撞,也許是接線不良,造成訊號損失過度嚴重,以致發送端無法解碼回原來資料,也有可能係因纜線受到外來訊號干擾所造成的。在此我們假設網路情況都非常好,不明訊號皆來自其他工作站。(因此對一個網路管理者而言,網路時常發生碰撞時,必須另外思考有關網路環境的問題)
發送訊號者如果偵測出已發生碰撞,必須放棄正在傳送中的資料,並送出擾亂訊號告知其他電腦目前已發生碰撞,不要繼續發送資料。這時候,每一個發送訊號者必須等待一段時間後再繼續檢測網路是否空閒,回到最起始流程(如圖 2-9)。現在,我們來思考一個問題,如果我們在通訊協定裡規定一個固定等待的時間,這時候所有電腦都等待一個固定時間後再去監聽網路,大家都認為空閒,所以同時開始傳送資料,碰撞就此發生。因此,等待時間不可以被固定,而必須是隨機性的。然而,產生這一個隨機時間又必須考慮到目前網路的情況,如果網路負載很高,該次傳送資料已連續碰撞多次了,等待的隨機時間就必須久一點;如果從來沒有碰撞過,就可以短一點。如何來產生這『隨機延遲時間』(Random Delay Time),CSMA/CD採用『二元指數後退演算法』(Binary Exponential Backoff Algorithm),簡述如下:
● n:連續發生碰撞次數 (n <= 16) 。當同一筆訊框連續碰撞超過 16 次,表示目前網路負載過重,或者是網路狀況有問題。此時,工作站必須停止傳送,並報告網路狀況。
● k:k = MIN (n, 10),MIN 是最小值函數。亦即,若碰撞次數超過 10 次,皆以 10 計算。
● r:r 是隨機延遲單位。r 是介於 0 和(2k -1)之間(0 <= r < = 2k -1)。例如,k = 3,表示於 r = {0, 1, 2, 3, 4, 5, 6, 7} 之間隨機(random)取一個數。
● t:t是延遲單位時間。一般都採用網路上的『時槽時間』(Slot Time)。一個時槽表示訊號傳遞到網路上最遠距離的『來回傳遞延遲時間』(Round-Trip Propagation Delay)。在 CSMA/CD 的通訊協定裡制定網路最遠距離為 2500 公尺,來回時間是 51.2 us。
● 隨機延遲時間 = r * t。隨機延遲時間等於延遲單位時間的隨機延遲單位的倍數。
例如,當第一次發生碰撞時(n = 1),k = MIN(1, 10) = 1,r = {0, 1},因此延遲時間有兩種可能:一種立即傳送(0 * 51.2 us);另一種等待 51.2 us(1 * 51.2us)。如果第二次發生碰撞(n = 2),k = MIN(2, 10) = 2,r = {0, 1, 2, 3},因此延遲時間變成四種隨機機率(0, 51.2us, 102.4us, 153.6us)。當碰撞超過 10 次時(n >= 10),k = MIN(10, 10) = 10,r = {0, 1, 2, …, 210},最高的等待時間是 1023 個時槽(1023 * 51.2us)。
2-2-4 Ethernet訊框格式
『MAC 訊框格式』(MAC-Frame,Ethernet I 訊框)牽涉到實體傳輸媒介存取的技術,它是一組在網路上傳送的連續訊號。訊框的結構和長短,與網路的存取方法有連帶的關係,在後文會有詳細的說明。Ethernet 訊框最長為 1518 位元組、最短為 64 位元組。其格式如圖 2-10 所示。
圖 2-10 CSMA/CD 訊框格式(Ethernet I 訊框)
其中:
● 前置訊號(Preamble):7個位元組(1010101~1010)。主要是達成接收端的同步功能(Synchronization)。 當傳送端連續發送前置訊號時,接收端利用訊號內的同步訊號(曼撤斯特編碼技巧)調整本身的時序,使其同步於傳送端。
● 訊框起始符號(Start Frame Delimiter, SFD):一個位元組 (10101011),表示訊框的開始,也表示前置訊號的結束。
● 目的地位址(Destination Address, DA):用來註明該訊框欲傳送給目的工作站之 MAC 位址,其長度可以是 2 個 或 6 個位元組,一般都採用 6 個位元組(48 Bits)格式。此位址又稱為『Ethernet 位址』(Ethernet Address)。
● 來源位址(Source Address , SA):用來註明這訊框是誰發送的。其長度也如同 DA 可以是2 或 6 個位元組。
● 長度(Length, LEN):2 個位元組,紀錄訊息欄內資料(LLC-PDU)的長度。
● LLC 資料:此欄位是訊息欄位。就是由邏輯鏈路控制層(LLC)所產生的通訊協定單元(LLC-PDU),最長為 1500 byte。
● 補位(Padding, PAD):如果LLC資料(LLC-PDU)小於 46 個位元組時,填入PAD 內隨意資料(無意義的資料),以補滿訊息 46 位元組。
● 訊框檢查序列(Frame Check Sequence, FCS):4 個位元組,紀錄該訊框的錯誤檢查碼。其所檢查的範圍是從 DA 欄位到 PAD 欄位之間的資料,錯誤檢查的方法是採用 CRC-32(Cyclic Redundancy Check)技巧,CRC-32 多項式如下:
G(x) = x32 + x26 + x23 + x22 + x16 + x12 + x11 + x10 + x8 + x7 + x5 + x4 + x2 + x +1
2-2-5 Ethernet 最小訊框
為了實現 Ethernet 網路中碰撞偵測的功能,必須有最小訊框的限制。依照 CSAM/CD 協定規定,工作站之間最遠的距離是 2500 公尺(並非完全相同於網路範圍),在這距離之中也許會包含:電纜、半增益電電纜、AUI 電纜、增益器、及其他所有設備。我們將從最末端的工作站發出訊號,到達最遠距離的『來回傳遞延遲時間』(Round-Trip Propagation Delay Time),稱之為一個『時槽』(Time slot)。預估經歷所有網路設備(網路卡、增益器、收發器)和纜線(同軸電纜、收發器電纜,半增益器電纜)的延遲大約 46.38 us(微秒)。但為了計算方便及預估不同設備之間的誤差,我們將一個時槽設定為 51.2 us。
如圖 2-11 所示,工作站 A 和 B 在相隔最遠距離(2500公尺)。又CSMA/CD通訊協定裡,傳送端(A)將訊號發送至網路上,再將其讀回判斷是否發生碰撞。於最差狀態(Worst Case)下,當訊號傳遞到最遠的地方時,剛好另一端工作站(B)發送出訊號,兩個訊號發生碰撞。如果訊號太短,發送端傳送完後,訊號還未到達最遠距離,有可能偵測後,才發生碰撞現象。因此,訊框太短有可能無法偵測碰撞現象,所以我們必須增加訊框長度,讓發送端在訊框傳送完成之前,訊框有足夠的時間到達最遠地方。萬一發生碰撞,發送端才能偵測到碰撞現象。也因此,才有最小訊框的限制。
圖 2-11 訊框長度與碰撞偵測
到底最小訊框是多少?我們必須預估最差狀況下,在最遠的地方發生碰撞,而且能將碰撞訊號傳回原來發送端的時間內,此時發送端還在傳送訊框。這一來回的時間剛好是一個時槽(51.2 us)。也就是說,一個訊框傳遞的時間至少要一個時槽時間以上。我們以網路傳送速率 10Mbps 來計算,最小訊框是:
10 × 106 × 51.2 × 10-6 = 512 位元 = 64 位元組。
由圖 2-10 CSMA/CD 的訊框格式中,在整個訊框裡包含著 DA、SA、LEN、FCS 和 LLC-PDU。這些總共的長度必須高於 64 為元組,因此我們可以算出最小資料:
64 - 6 (DA) - 6 (SA) - 2 (LEN) - 4 (FCS) = 46 位元組。
如果 LLC-PDU 長度不足 46 位元組,就加入 PAD 欄位的無用的資料,以補足 46 位元。因為 LLC-PDU 的資料長度在 LEN 欄位內有紀錄,所以補上 PAD 欄位並不影響接收端的判斷。
2-2-6 Ethernet 實體層
為了滿足不同環境的需求,IEEE 802.3標準在實體層上提供多種不同架構的版本,各種版本規格如表 2-1 所示。早期 Ethernet 網路大多以 10Base5 為傳輸骨幹,而以 10Base2 和 10BaseT 為分歧連線來連接一般工作站。雖然目前已甚少使用,但這些都是 Ethernet 網路的基本觀念,我們用圖 2-12 來說明各網路系統的特性如下:
表 2-1 Ethernet 網路實體層規格
參數 |
10Base5 |
10Base2 |
10BaseT |
10Broad36 |
傳輸媒體 |
同軸電纜 (50 歐姆) |
同軸電纜 (50 歐姆) |
無遮蔽式 雙絞線 |
同軸電纜 (75 歐姆) |
訊號處理技術 |
基頻 (Manchester) |
基頻 (Manchester) |
基頻 (Manchester) |
寬頻 (DPSK) |
資料傳輸速度 |
10 Mbps |
10 Mbps |
10 Mbps |
10 Mbps |
每段最大長度 |
500 公尺 |
185 公尺 |
100 公尺 |
1800 公尺 |
網路最大長度 |
2500 公尺 |
925 公尺 |
500 公尺 |
3600 公尺 |
每段最多可連接工作站 |
100 |
30 |
*** |
*** |
工作站距離 |
2.5 公尺* n |
0.5 公尺*n |
*** |
*** |
電纜線直徑 |
10 mm |
5 mm |
0.4 ~ 0.6 mm |
*** |
(A) 10Base5 網路系統
10Base5 網路是依照 CSMA/CD 網路標準所製作,它的網路架構就如圖 2-12 所示。早期 Ethernet 網路剛開始使用時,都以 10Base5 作為傳輸骨幹。其主要特性如下:
● 傳輸速率 10Mbps。
● 基頻傳輸技術,使用 Manchester 編碼。
● 同軸電纜直徑 10mm(RG-11),又稱『粗線 Ethernet』(Thick Ethernet)。
● 每一段同軸電纜的最大長度為 500 公尺。
● 網路最大範圍可達 2500 公尺。
● 每一段同軸電纜上最多可接 100 部電腦。
● 任何二個收發器(MAU)之間的距離為 2.5 公尺的整數倍。
● 使用阻抗為 50 歐姆的同軸電纜。電纜兩端必須接與纜線阻抗相同的電阻,以消除反射波。我們將該電阻裝成接頭直接鎖在纜線的端點,稱之為『終端器』(Terminator)。
● 時槽時間(Slot Time)為 51.2us。相當於 512 位元時間,一位元時間為 0.1us。
● 每一筆訊框在連續發生碰撞的情形下,最高嘗試傳送次數為 16 次。
● 傳送訊框間格時間(Inter-frame Gap)為 9.6 us。
● 訊框傳送發生碰撞後延遲時間的取樣範圍最大為 210 ,即是 [0, 1, 2, .., 1023] 的時槽時間。
● 訊框傳送發生碰撞後送出的擾亂訊號(Jamming Signal)長度為 32 位元。
(B) 10Base2 網路系統
10Base2 網路的纜線連線比較簡單,但傳輸距離較短,主要是用在連接終端電腦。一般佈線時,我們會以 10Base5 為網路主幹,工作站之間的串接再使用 10Base2。10Base2 和 10Base5 最主要的不同點是,10Base2 將 MAU 部分裝設在網路卡上,因此不需要 AUI 接頭和 AUI 電纜。同軸電腦直接透過 BNC 接頭連上網路卡,多部電腦之間只要利用同軸電纜和 BNC 接頭就可以串接在一起,如圖 2-12 所示。所以對整個佈線系統而言,比 10Base5 簡單又便宜。其特性如下:
● 使用同軸電纜的直徑為 5mm、阻抗為 50 歐姆(RG-58A/U)。因此也稱為『細線 Ethernet』(Thin Ethernet)。
● 傳輸速率為 10Mbps。
● 基頻傳輸技術、使用 Manchester 編碼。
● 每一段同軸電纜的最大長度為 185 公尺。
● 網路最長可達 925 公尺(185 × 5 = 925)。
● 任何兩部電腦之間的連線為 0.5 公尺的整數倍。
● 每一段同軸電纜上最多可接上 30 部工作站。
● 每一段同軸電纜的兩端需接上 50 歐姆的終端器。
● 每段同軸電纜的連線是利用 BNC-T 型連接器以『雛菊花環式』(Daisy Chaining)串接法,將電腦串接起來。
● 其他特性和 10Base5 的參數相同,彼此可以經由訊號增益器相連接起來成為一個 Ethernet 網路,如圖 2-12 所示。
(C) 10BaseT 網路系統
如果用 10Base2 來佈放電腦端的連線,在某區段中任何地方斷線,或任何一處的 BNC 接頭接觸不良,將使該區段的網路將完全癱瘓。尤其在辦公自動化的環境裡,當網路故障時,要找出故障點,的確不是一件容易的事。10BaseT 網路系統保持原來 CSMA/CD 的特性,將網路架構更改為星狀的集中式。集中設備稱之為『集線器』(HUB),又稱為 10BaseT HUB,如圖 2-12 所示。任何一部工作站都有專線連接到集線器上,如果該連線斷線,將不會影響到其他工作站的通訊。因此在佈線方面比 10Base2 容易得多,而且維護上也較容易。10BaseT 網路特性如下:
● 傳輸速率為 10Mbps。
● 基頻傳輸,資料編碼採用 Manchester 技巧。
● 使用直徑 0.4 ~ 0.6mm 的雙絞線(Cat-3 UTP)。
● 雙絞線接頭為 RJ-45(8 pin)、接續規格為 EIA-568B 方式。
● 工作站和集線器之間的絞對線最長 100 公尺。
● 網路最大範圍為 500 公尺。
● 利用集中器串接以延伸距離。最多可以串接五段傳輸線(其中兩條為中繼傳輸線),也就是說最多只能連接四台集線器。
● 其他特性與 10Base5 及 10Base2 的參數相同,彼此可以經由訊號增益器相連接起來成為一個 Ethernet 網路。如圖 2-12 表示由 10Base5 為網路骨幹,10Base2 和 10BaseT 為分歧電腦連線。
圖 2-12 Ethernet 網路基本架構
2-2-7 Ethernet 編碼技巧
傳送端將數位資料轉換成數位訊號稱之為『編碼』(Encoding),編碼設備稱為『編碼器』(Enoder)。編碼後將訊號透過傳輸媒體,接收端接收到訊號再將『解碼』(Decoding)為原來資料,該設備稱為『解碼器』(Decoder)。網路上設備都具有傳送及接收功能,執行此功能設備就是『編碼解碼器』(coder-decoder, codec),如圖 2-13 所示。一般此裝置都設置在網路卡上,譬如 Ethernet 網路卡。
圖 2-13 編碼/解碼器(Codec)
在數位編碼技巧上有兩大類的表示法,一則是直接用脈衝(Pulse)訊號的高電位和低電位來表示二進位的0 和1,例如電報發送方式。另一則是利用脈衝訊號的變化情形(高低電位的變化)來表示二進位的0 和 1,Ethernet 網路就是使用這種編碼技巧的『曼徹斯特編碼』(Manchester Encoding)。曼徹斯特編碼的主要特性是無論二進位資料是0或1,在每一個位元時間的中央一定有電位變化(由高電位到低電位,或由低電位到高電位),利用位元中間變化的情形來表示1或 0,其編碼如下:(如圖 2-14 所示)
● 0:位元中間由高電位變化到低電位(high → low)。
● 1:位元中間由低電位變化到高電位(low → high)。
曼徹斯特編碼的特點是每一位元中間都有變化,傳輸雙方可利用這個特性達到雙方同步。但該特性也是缺點,因為每個位元都有變化,表示頻寬必須是傳輸速率的兩倍。在目前高速網路上,傳輸媒介的頻寬非常珍貴,是決定傳輸速率的主要因素之一,不可能再浪費在編碼技術上,因此曼徹斯特編碼並不適合於高速網路上使用。
圖 2-14 曼徹斯特編碼技巧範例