2011年12月4日 星期日

Switch 交換技術 and 乙太網路

IEEE 802標準
* 僅涉及OSI參考模型之實體層(Physical Layer)及資料鏈結層(Data Link Layer)。
* 資料鏈結層則被分為兩個子層。
* 與網路實體有關的部分歸為媒介存取控制(MAC)子層(使用媒體存取控制(MAC)和錯誤偵測的技術) ,與軟體的部分就歸入邏輯鏈結控制(LLC)子層。
* 允許較高階層使用資料框的技術,來存取媒體(LLC),高階資料連結控制(HDLC)、資料框轉送(Frame Relay)或PPP 。
IEEE802.1    VLAN 與橋接。
IEEE 802.2 標準負責的就正是 LLC 標準的制定。
IEEE 802.3 標準負責乙太(Ethernet)網路之實體層和資料鏈結層媒介存取控制部份的標準,是目前市佔率達90%的有線區域網路的標準。
IEEE 802.4 標準負責記號匯流排(Token-Bus)網路之實體層和資料鏈結層媒介存取控制部份的標準,已無人使用。
IEEE 802.5 標準負責記號環(Token-Ring)網路之實體層和資料鏈結層媒介存取控制部份的標準。

乙太網路
Ethernet 乙太網路是一種分享式(Shared)的網路技術,因為是分享,因此同一時間,僅有一個裝置傳送資料,其他裝置則負責收聽,並且決定是否要接收資料。
* 目前的乙太網路是使用中心點為switch(交換器)的 star topology (星狀拓樸)
* 交換器與集線器最大的差異,在於交換器內有一個特別的記憶體, 這個記憶體可以記錄每個 switch port 與其連接的 PC 的 MAC 位址,所以,當來自 switch 兩端的 PC 要互傳資料時,每個訊框將直接透過交換器的記憶體資料而傳送到目標主機上! 所以 switch 不是共享媒體,且 switch 的每個埠口 (port) 都具有獨立的頻寬。
*共享媒體MAC(HUB)就可能會發生碰撞的情況, CSMA/CD 的緣故。
*非共享媒體的MAC(switch) 點對點的拓樸(point-to-point topologies)半雙工(half duplex)全雙工(full duplex)。
* 允許point-to-point連結(使用switch)及shared channel(使用hub)
*全雙工:傳統分享式 Ethernet 使用兩對絞線,一對用來傳遞(TX)資料,另一對則用來監聽網路上是否有資料傳遞;至於交換式乙太網路對網路裝置來說是屬於獨佔,因此兩對絞線,一對用來 傳遞(TX)資料,另一對則用來接收(RX)資料,可以同時進行,不會產生碰撞,因而網路頻寬加倍,這就是全雙工。
*流量控制(Flow Control):不同速度與目的之網路傳輸可能會產生傳輸壅塞與超載的情形,例如連接於交換式集線器的不同速度的網路設備10Mbps與100Mbps,10Mbps勢必無法應付100Mbps的資料傳送,因而必須有一套管制機制。在半雙工的流量控制方式是利用製造假碰撞或傳輸偵測(Carrier Sense)機制讓傳送端以為傳輸埠正在忙碌中而停止傳送資料;至於全雙工的流量控制方式,由於傳送接收各自屬於專屬通道,因而無法製造假碰撞或作載波偵測,它是使用 IEEE802.3x 標準來作為流量控制,也就是交換器會送出一個暫停(PAUSE)的訊框讓傳送端暫停資料傳輸

乙太網路的工作原理
Ethernet的媒體存取層使用的(IEEE802.3)通訊協定稱為「載波感測多重存取與碰撞偵測 (Carrier Sense Multiple Access with Collision Detection;CSMA/CD)這是基頻(baseband)所使用的碰撞偵測技術 。

訊框(frame)格式
Ethernet 802.3 (that it does not contain the Logical Link Control (LLC) information in the packet)
Preamble            : 7 bytes 10101010 用來synchronize(喚醒)接收端 ,並使其clock rate和傳送端的同步化。
SFD                     : 1 byte  10101011 功能是表示訊框即將開始。
Destination Address : 6 bytes 接收端 MAC address。
Source Address        : 6 bytes 傳送端 MAC address。
type/Length Field      : 2 bytes IP和其他的network-layer protocol,像Novell IPX或AppleTalk都有各自的type編號。
Data Field                 : Between 46 and 1500 bytes IP datagram(IP資料封包)。
Pad Characters        : Variable, stuffs data field up to 46 bytes 若data長度少於46Bytes,則以PAD填補無意義的資料直到長度為46Bytes。若data長度大於或等於46Bytes,PAD長度為0。

Frame Check Sequence: 4 bytes 採用CRC-32技術作為訊框的檢查碼。
Min Frame Length    : 64 bytes
最小訊框限制
因為802.3將一個訊槽時間定為51.2us。
一個訊框長度最小為=10Mbit * 51.2 * 10-6 = 512 bits = 64 Bytes。不得小於64Bytes,否則這個訊框傳輸時間會低於51.2us
Max Frame Length    : 1518 bytes (not including Preamble)
一個訊框大小=DA+SA+LEN+data+PAD+FCS,大小必須大於或等於64Bytes,為何限制在64Bytes,主要與CSMA/CD的碰撞偵測有關,當訊框長度短於64Bytes時,可能會發生還來不及偵測是否碰撞,就已經傳送完畢了。另一方面為避免某工作站佔用傳輸媒體太久,所以限制訊框長度不得超過1518Bytes。
interface gap       : 12 bytes
10/100Mbps 乙太網路規格定義訊框與訊框之間的間隔時間, IFG (InterFrame Gap)為 96 Bit Time因為偵測到的空檔可能正好位於 IFG 內, 倘若立即送出訊框便會發生碰撞, 解決之道就是繼續偵測此空檔能否維持 96 Bit Time 之久, 才能確定媒介上真的沒有訊框。

Ethernet 802.2 (This frame includes fields from 802.3 and 802.2 (Logical Link Control)
Preamble                         : 7 bytes 10101010
SFD                                  : 1 byte  10101011
Destination Address       : 6 bytes
Source Address              : 6 bytes
type/Length Field             : 2 bytes
Data Field                         : Between 46 and 1500 bytes (including LLC)
Pad Characters                : Variable, stuffs data field up to 46 bytes
Frame Check Sequence : 4 bytes
Min Frame Length            : 64 bytes
Max Frame Length           : 1518 bytes (not including Preamble)
interface gap                     : 12 bytes

The LLC field consists of:
Destination Service Access Point (DSAP)     : 1 byte  (NetWare 0xE0)
Source Service Access Point (SSAP)             : 1 byte  (NetWare 0xE0)
Control Field                                                        : 1 byte  (NetWare 0x03)

Ethernet II (Ethernet II frames do not use a LLC header in the data field)
Preamble                           : 7 bytes 10101010
SFD                                    : 1 byte  10101011
Destination Address         : 6 bytes
Source Address                 : 6 bytes
Ethernet Type                     : 2 bytes (Novell 0x81-37)
Data Field                           : Between 46 and 1500 bytes
Pad Characters                  : Variable, stuffs data field up to 46 bytes
Frame Check Sequence  : 4 bytes
Min Frame Length            :64 bytes
Max Frame Length            : 1518 bytes (not including Preamble)
interframe gap                   : 12 bytes 

* CSMA/CD 屬於競爭式 (contention-based) 的網路存取方式。這個技術最大的缺點是:為電纜的長度會受限制,否則感測不到碰撞。如果工作站數量多的時候,碰撞機率也隨之大增。

CSMA/CD工作原理:
1.Carrier Sense 在CSMA/CD網路上的節點 (電腦或其他網路硬體設備) 隨時都可以存取網路資源,然而當一個節點要傳送資料的時候會先聆聽 (Listening) 看網路是否正有別的節點在傳送資料。
2.如果沒有其他節點在傳送資料,則這個節點就可以開始傳送資料了。
3.如果這時候有其他的節點正在使用網路傳送資料,則這個節點必須暫停傳輸的動作,一直等待到網路上沒有其他節點傳輸資料。
4.兩個節點同時間都開始進行傳輸資料的動作,這時將會發生碰撞(Collision)
5.發生碰撞時,節點必須馬上停止傳輸資料的動作並且改輸出一個擁塞訊號(Jamming Signal),並且通知每一部電腦發生碰撞, 使得所有需要送出訊框的電腦等待一段隨機時間之後重新搶送資料,節點會以亂數取樣的方式 (Back-Off Algorithm) 取得一個數值,根據這個數值來決定必須等待多久。
6.如果不幸的,這兩個節點的等待相同,又同時傳輸資料、產生碰撞,兩個節點又必須退回、等待,再次的以亂數取樣的方式來決定等待的時間。

CSMA/CD 屬於競爭式 (contention-based) 的網路存取方式。這個技術最大的缺點是:為電纜的長度會受限制,否則感測不到碰撞。如果工作站數量多的時候,碰撞機率也隨之大增

擁塞訊號 32bit(Jamming Signal)
* 訊號傳輸的過程中同時也偵測媒介上的訊號。如果發現碰撞則立即停止傳送並且改輸出一個擁塞訊號(Jamming Signal), 通知每一部電腦發生碰撞, 使得所有需要送出訊框的電腦等待一段隨機時間之後重新搶送資料。

訊槽時間(Slot time)
* 開始傳送訊框時仍需繼續監聽是否有碰撞情形發生,因為可能有多個工作站同時偵測到目前沒有傳送訊號,而開始傳送訊框造成碰撞。這段監聽時間設為2t,t代表同一乙太網路中訊號由一端工作站到相距最遠的工作站之間所需的時間,來回共2t稱為一個「訊槽時間」(Slot time)
* 訊槽時間是指訊號在乙太網路上相距最遠兩端工作站來回傳輸一次所需時間,也是工作站在傳輸訊框時,為了偵測是否碰撞所必須監聽的時間,所以也稱為「碰撞視窗」(Collision Window)。
* 802.3將一個訊槽時間定為51.2us 。設長度為2500公尺。

碰撞處理 碰撞偵測 CD;Collision Detect
* 碰撞雙方馬上停止傳送資料。
* 送出壅塞信號。
* 各自等待一"隨機時間"後再聆聽通道是否為空閒,再傳送資料
* 隨機時間: 採用 二元指數退後演算法

乙太網路的重要參數
參數                      功能                                                     數值
slotTime               訊槽時間,訊槽傳輸時間                  512 bit-time
interFrameGap    訊框間隔                                             9.6 us
attemptLimit         至多重傳次數                                     16
backoffLimit         碰撞後回歸等待時間底限                  10
jamSize                碰撞訊號長度                                      32 bits
MaxFrameSize    最大訊框長度                                     1518 bytes
minFrameSize    最小訊框長度                                       64 bytes
addressSize        網路實體位址                                       6 byes

交換器簡介
Layer 2 Switch
即是在區域網路通訊傳輸中僅以第二層(MAC層)的資訊來作為傳輸與資料交換之依據通常此類交換器先以學習的方式(Learning)在每一個port紀錄該區段的MAC Address再根據MAC層封包中的目的地位址(DestinationAddress,DA)傳送該封包至目的地的port(或區段),其他port(或區段)將不會收到該封包,若目的地位址仍然在該(或區段),則封包將不會被傳送。Layer 2的Switch由於只判斷第二層的資訊故其處理效能佳,且其有效隔絕區段間非往來封包(及獨享頻寬),大大提昇網路的傳輸效能,且因技術與ASIC晶片的功能日益強化,目前較高檔的Layer 2 Switch每個port均可達到wiring Speed的傳輸率(Ethernet為14880pps,Fast Ethernet為14880pps)。

Layer 3 Switch又稱為IP Switch或Switch Router
其工作於第三層網路層的通信協定(如IP),並藉由解析第三層表頭(Header)將封包傳至目的地,有別於傳統的路由器以軟體的方式來執行路由運算與傳送,Layer 3 Switch是以硬體的方式(通常由專屬的IC構成)來加速路由運算與封包傳送率並結合Layer 2的彈性設定,因此其效能通常可達每秒數百萬封包(Million packet per second)的傳送率,並具備數十個至上百個以上的高速乙太網路(Fast Ethernet)連接埠,或數個至數十個超高速乙太網路(Gigabit Ethernet)連接埠之容量。

傳統路由器通常可處理Multiprotocal多重協定路由運算(如IP,IPX AppleTalk,DEC Net...etc)但Layer 3 Switch通常只處理IP及IPX,此乃為簡化設計,降低路由運算與軟體的複雜性以提昇效能,並配合網路協定發展的單純化(多重協定慢慢簡化至IP一種協定)趨勢所致。

由於Layer 2的Switch並無法有效的阻絕廣播域(Broadcast Domain)如此ARP(Address Resolution Protocol )及Win95/98中大量使用的NetBEUI協定均大量使用廣播封包,因此就算Layer 2Switch以VLAN(Virtual LAN)的方式(虛擬網路)將經常要通訊的群組構成一廣播域(Broadcast Domain)來試圖降低broadcast封包對網路層的影響,但仍無法完全避免廣播風暴問題(同一個VLAN問仍會產生廣播風暴),再加上現今網路(尤其是Campus內部間流量及對外的Internet/Intranet流量)已不是80/20規則(80%流量在本地,20%是外地),而是漸漸成為20/80規則,且加上Client/Server及Distributor Server之運用,因此單靠Layer 2Switch或傳統Router路由器便無法符合對效能(傳統路由器變成瓶頸)及Intranet上對安全顧忌(Layer2Broadcast Domain ,對因廣播而使資訊傳送被盜取的安全疑慮)之要求,因此Layer 3 Switch使大量興起,初期只運用Core端(骨幹),現在的趨勢已漸漸走向桌面(Layer 3down to desktop)。

如同傳統路由器(Router),Layer 3Switch的每一個連接埠(port)都是一個子網路的subnet),而一個子網路就單獨是一個Broadcast Domain廣播域,因此每一個port的廣播封包並不會流竄到另一個port,其僅負責傳送要跨越子網路的封包(Routing Forward),並以目的地的IP位址(目的地子網路的網路號碼)來決定封包要轉送至哪一個port,並以Routing Protocol(如RIP或OSPF)來交換Routing Table並學習網路拓樸,其通常存放於Layer 3 Switch的Routing Forward Data-Base(FDB),並以硬體及Route Cache的方式來加速IP table lookup並予以定址與更新(目前大多以ASICIC來執行),因此才得以提昇運算效能達成wiring Speed Forward之目的。

Layer 3 Switch通常提供較大頻寬的交換核心(Switch Fabric)以提供較大的容量(Port Capacity)與較高的交換效能,近來各廠家並不斷附以Layer 3Switch更強大的支援能力,如Class of Service(服務等級優先權),Quality of Service(服務品質係證),POI icy Management(策略分級品質與頻寬管制與管理),Multicast Routing(群組廣播路由傳送)等功能,以符合網路環境的快速變化與應用。

Bridge/layer 2 Switch 重要觀念
1. Bridge/layer 2 Switch可以連結資料連結層(Ethernet,還有如Token Ring、Fast Ethernet、ATM、FDDI等)相同的網路、分割碰撞領域

3. Switch交換換機內部交換訊框 (Frame) 是採用電路交換的架構,所以能提供快速的交換能力
4. Bridge/Switch執行交換的任務(address learning)時是根據 MAC位址表(mac table)來做判斷。
5. Bridge/Switch不知道frame該往哪個Port傳送出去的時候,將複製這個 frame 並從每一個Port傳送出去 (除了接收到那個frame的Port以外) ,而這個動作就稱為泛流 (Flooding) 。若接收端收到該frame後有回傳資料給傳送端,因為接收端將發出frame至Switch,Switch因此就又學習learning到這個設備的MAC位址。
6. 無法有效阻止 Broadcast Domain。
7. 支援 STP 協定。
8. 使用CRC偵錯功能。
9. 據倍緩衝記憶體。

Bridge/Switch 使用技術
address learning(learning學習來自 bridge/bridge 的每一個訊框中的來源位置的  MAC 位址)。
forwarding & filtering (基於目的 MAC 位址,決定mac table何時轉送一個 訊框或過濾一個訊框。)。
flooding。
loop avoidance。(產生回圈 廣播風暴 多個重覆訊框 MAC 位址不穩定,使用 Spanning-Tree 協定與其它的 bridge/switch 建立一個無迴圈的環境。)

每次MAC位址學習記錄的同時,也會打上時間戳記timestap。過期資料則自動失效或清除
dynamic:用flood學到的mac位置通常在一定時間300 sec內沒更新就會被drop掉
static:自己指定的mac位置且不會被drop掉

Switch的特性
低延遲 (Delay) 時間。
快速訊框交換。
提供高頻寬。
具備許多的Port。
使用MAC位址。
提供 VLAN 功能。

Switch 內部訊框交換的方法:
Store-and-forward
等到完整的frame被接收到後,才將frame傳送出去
Cut-through
當Switch收到frame時,只要能讀取到該frame的目的地的MAC位址,Switch就馬上開始進行傳送的程序。
Cut-through雖然提供了比Store-and-forward更快的傳輸交換速度,但Cut-through發生frame錯誤的機會較大 (因為沒檢查FCS)。
Fragment-free
Fragment-free是Cisco的專有技術, 根據cut-through改良研發
Frame會產生錯誤大多原因是因為發生碰撞導致,而通常在傳送64位元組的frame就能偵測到碰撞。所以Fragment-free收到frame的時候並不會馬上傳送出去,而是等到接收到64位元組的frame資料後再開始進行傳送的程序。
Fragment-free大量的減少了發生錯誤的機會,而卻又不用像Store-and-Forward一樣必須等到整個frame都完整收到。
交換方法                    傳輸時間                                           訊框正確率    交換速度
Cut-Through                讀到MAC位址即馬上傳輸              最低                最高
Store-and-Forward    等訊框完整收到後才傳輸               最高                最低
Fragment-free            收到64位元組就傳輸                      普通                 普通

沒有留言:

張貼留言