上一篇文章介紹了應用在路由器與交換機之轉發平面與控制平面的運作方式,這些知識是大家進而了解軟體定義網路(SDN)的基礎。接下來,本文將說明網路交換機的運作模式,並介紹應用在網路交換機上的OpenFlow協定。
透過這篇文章的說明,將可以了解目前在軟體定義網路中,如何詳細地將網路交換機之實體埠的處理以軟體的方式抽離開來。一開始,先介紹網路交換機技術,說明其運作的原理。
網路交換機技術簡介
雖然目前網路交換機設備有分第二層和第三層的網路交換機,但一般而言,當談到網路交換機時,主要還是以運作於第二層的網路交換機為主。
網路交換機是運作於OSI(Open System Interconnection)網路七層架構的第二層協定之中,而一般所使用的Hub則是運作於第一層協定,第一層即Physical Layer,而第二層則是Data Link Layer,由於篇幅有限,這裡就不針對OSI網路七層架構多做介紹。
基本上,橋接器(Bridge)和網路交換機設備比Hub更「聰明」,因為這兩種設備可以學習來源端和目的端的MAC位址,以便架構出MAC位址表,並使用這個MAC位址表在第二層中轉發資料。若想要正確地設定Cisco Catalyst Switch設備,必須先熟悉網路交換機與橋接器設備的功能。以下就一一介紹網路交換機的功能。
交換機的主要功能
基本上,用於乙太網路中的網路交換機設備能夠增加網路的可用頻寬,同時也能根據發送過來的Frame,分析其中的來源端與目的端的MAC位址,製作出MAC位址表,並藉由這樣的MAC位址表正確地轉發封包。
網路交換機雖然都是運作在網路七層架構中的第二層,但由於網路交換機擁有較為高速的內部結構以及擁有比較多的埠介面,所以與傳統的橋接器比較起來,網路交換機設備能夠提供更多的網路流量。
而關於MAC位址學習的部分,網路交換機設備會從它們的埠上監聽所傳進來的Frame,檢測這些資料的來源端MAC位址,並且把MAC位址與埠號的對應關係記錄下來,儲存在本地端的MAC資料庫內,而這份MAC資料庫通常稱之為MAC Address Table或是Content-addressable Memory (CAM) Table。
一旦網路交換機設備再次收到Frame時,會先到MAC資料庫內查看從哪個埠出去可到達這個目的地MAC位址所指定的機器,如果目的端的MAC位址能夠在MAC資料庫中被找到,則這個Frame就只會從學習到的埠號轉發。若在MAC資料庫中找不到這樣的對應關係,則這個Frame會從所有其他的埠轉發出去(來源埠除外)。這裡所指的Frame,有人用中文稱它為「幀」,但建議還是使用原有英文來指稱會比較好。
Frame的傳送模式
網路交換機設備在傳送Frame時,有以下三種可用的運作模式:
1. Store and Forward
2. Cut Through
3. Fragment-Free
接下來,分別介紹這三種可用的運作模式。
Store and Forward模式
在Store and Forward模式下,網路交換機設備會先把Frame完整地接收下來,然後才進行轉發的動作。因為在這個模式下,整個Frame都會被讀取,因此來源端和目的端的MAC位址都會被讀取。另外,CRC(Cyclic Redundancy Check)的錯誤檢查動作也會被執行,也會採用相關的篩選動作,之後才進行轉發。如果CRC的檢查失敗,這個Frame就會被遺棄。這種轉送模式雖然能夠確保Frame中資料的正確性,但也比較費時,其所需要的延遲時間與Frame的資料長度有關。
Cut-Though模式
在Cut-Through這個轉送模式中,就不會像Store and Forward那樣麻煩,一旦接收到Header之後,看到目的端的MAC位址,就會馬上執行Frame的轉送動作。因此,Cut-Though模式比Store and Forward模式快上許多,而且Cut-Though模式所需要的時間並不會因為Frame的長度變長就變多,因為網路交換機設備只想取得目的端的MAC位址,而目的端的MAC位址都一定會存放在Frame資料內最前面的Header處。
不過,雖然有些網路交換機設備在這種模式下只想讀取MAC位址,還是存在著某些網路交換機設備,它們會讀取CRC值並記錄下錯誤數目,但是一旦有錯誤發生,在這種模式下是不會將這個Frame遺棄,而是可以針對設定值自動或是手動切換成Store and Forward模式。這種可以允許切換的Cut-Though又稱為Adaptive Cut-Though模式,這種模式結合Cut-Though模式與Store and Forward模式的優點。
Fragment-Free模式
在Fragment-Free模式中,網路交換機設備只會讀取Frame的前64個bytes(這也是乙太網路中Frame最小的資料大小),而最主要原因是,在乙太網路中碰撞幾乎都是發生在前64個bytes之中,因此一旦發生碰撞,就會產生小於64個bytes的Frame資料。所以網路交換機設備經由讀取前64個bytes資料,就可以初步篩選經由碰撞所產生的Frame資料。
這種模式的速度比Cut-Though更快,而且一旦發現有錯誤的Frame,是會把這樣的Frame丟棄,這是與Cut-Though模式不同的地方。這個模式也稱為Modified Cut-Though模式。