交換機開發(一)—— 交換機的工做原理

1、交換機的工做原理

     當交換機收到數據時,它會檢查它的目的MAC地址,而後把數據從目的主機所在的接口轉發出去。交換機之因此能實現這一功能,是因爲交換機內部有一個MAC地址表MAC地址表記錄了網絡中所有MAC地址與該交換機各port的相應信息。某一數據幀需要轉發時,交換機依據該數據幀的目的MAC地址來查找MAC地址表。從而獲得該地址相應的port。即知道具備該MAC地址的設備是鏈接在交換機的哪一個port上。而後交換機把數據幀從該port轉發出去

1.交換機依據收到數據幀中的源MAC地址創建該地址同交換機port的映射,並將其寫入MAC地址表中。前端


2.交換機將數據幀中的目的MAC地址同已創建的MAC地址表進行比較,以決定由哪一個port進行轉發。算法


3.如數據幀中的目的MAC地址不在MAC地址表中。則向所有port轉發。這一過程稱爲泛洪(flood
4.廣播幀和組播幀向所有的port轉發緩存

例:某網絡如圖1所看到的。網絡

                                                                         圖1 交換機地址表

表1port/MAC地址映射表併發

                MAC地址                   socket

           port              分佈式

00-10-B5-4B-30-85post

E0/1性能

00-10-B5-4B-30-90學習

E0/2

00-10-B5-4B-30-65

E0/24

若是主機pc1向主機pc7發送一個數據幀,該數據幀被送到交換機後,交換機首先查MAC地址表。發現主機pc7鏈接在E0/24接口上,就將數據幀從E0/24接口轉發出去。


2、MAC地址表的構建過程

       爲高速轉發報文,以太網交換機需要創建和維護MAC地址表。

交換機採用源MAC地址學習的方法創建MAC地址表

(1)交換機初始狀態

交換機的初始狀態MAC地址表爲空,如圖2所看到的。


                                                  圖2 交換機地址表初始狀態


(2)地址表源MAC地址學習

     當計算機PC1要發送數據幀給計算機PC6時,所以時地址表是空的。交換機將向除PC1鏈接portE0/1之外的其它所有port轉發數據幀。在轉發以前,首先檢查該數據幀的源MAC地址(00-10-B5-4B-30-85),並在交換機的MAC地址表中加入一條記錄(00-10-B5-4B-30-85,E0/1)使之和portE0/1相相應。

(3)計算機PC6接收數據幀

    計算機PC6收到發送的數據幀後。用該數據幀的目的MAC地址和本機的MAC地址比較。發現PC1找的正是它。則接收該數據幀,其它計算機丟棄數據幀。

    計算機PC6回覆PC1時,交換機直接從portE0/1轉發。並學習到(00-10-B5-4B-30-65)爲PC6鏈接的port。將其加入到地址表中,如圖3所看到的。

                                                           圖3 地址表源MAC地址學習


       交換機的其它port利用源MAC地址學習的方法在MAC地址表中不斷加入新的MAC地址與port號的相應信息。直到MAC地址表加入完整爲止。

      爲了保證MAC地址表中的信息能夠實時地反映網絡狀況,每個學習到的記錄都有一個老化時間,假設在老化時間內收到地址信息則刷新記錄。

對沒有收到相應的地址信息的則刪除該記錄。

好比,計算機PC6中止了和交換機通訊。達到老化時間後。交換機會將其相應的記錄從MAC地址表中刪除。

      也可以手工加入交換機的MAC地址表的靜態記錄,手工配置的靜態記錄沒有老化時間的限制。

由於MAC地址表中對於同一個MAC地址僅僅能有一條記錄,因此假設手工配置了MAC地址和port號相應關係後。交換機就再也不動態學習這臺計算機的MAC地址了。


3、交換機的三個主要功能 

a -- 學習

      以太網交換機瞭解每一port相連設備的MAC地址,並將地址同對應的port映射起來存放在交換機緩存中的MAC地址表中.

b -- 轉發/過濾

  當一個數據幀的目的地址在MAC地址表中有映射時,它被轉發到鏈接目的節點的port而不是所有port(如該數據幀爲廣播/組播幀則轉發至所有port)

c -- 消除迴路

      當交換機包含一個冗餘迴路時,以太網交換機經過生成樹協議避免迴路的產生,同一時候贊成存在後備路徑。


4、交換機的工做特性 

1.交換機的每一個port所鏈接的網段都是一個獨立的衝突域。 

2.交換機所鏈接的設備仍然在同一個廣播域內,也就是說,交換機不隔絕廣播(唯一的例外是在配有VLAN的環境中)。

 

3.交換機根據幀頭的信息進行轉發,所以說交換機是工做在數據鏈路層的網絡設備(此處所述交換機僅指傳統的二層交換設備)。


5、交換機的分類 

   按照交換機處理幀時不一樣的操做模式,主要可分爲兩類: 

a -- 存儲轉發

       交換機在轉發以前必須接收整個幀,並進行錯誤校檢,如無錯誤再將這一幀發往目的地址。

幀經過交換機的轉發時延隨幀長度的不一樣而變化。 

b -- 直通式

      交換機僅僅要檢查到幀頭中所包括的目的地址就立刻轉發該幀,而無需等待幀全部的被接收,也不進行錯誤校驗。由於以太網幀頭的長度老是固定的,所以幀經過交換機的轉發時延也保持不變。


6、2、3、四層交換機對照

多種理解的說法:

1.

二層交換(也稱爲橋接)是基於硬件的橋接。基於每個末端網站的惟一MAC地址轉發數據包。二層交換的高性能可以產生添加各子網主機數量的網絡設計。其仍然有橋接所具備的特性和限制。

三層交換是基於硬件的路由選擇。路由器和第三層交換機對數據包交換操做的主要差異在於物理上的實施。 

四層交換的簡單定義是:不只基於MAC(第二層橋接)或源/目的地IP地址(第三層路由選擇)。同一時候也基於TCP/UDP應用port來作出轉發決定的能力。其使網絡在決定路由時能夠區分應用。能夠基於詳細應用對數據流進行優先級劃分。它爲基於策略的服務質量技術提供了更加細化的解決方式。提供了一種能夠區分應用類型的方法。


2.

二層交換機 基於MAC地址
三層交換機 具備VLAN功能 有交換和路由///基於IP。就是網絡
四層交換機 基於port,就是應用


3.

二層交換技術從網橋發展到VLAN(虛擬局域網),在局域網建設和改造中獲得了普遍的應用。

第二層交換技術是工做在OSI七層網絡模型中的第二層,即數據鏈路層。

它依照所接收到數據包的目的MAC地址來進行轉發,對於網絡層或者高層協議來講是透明的。

它不處理網絡層的IP地址。不處理高層協議的諸如TCPUDP的port地址。它僅僅需要數據包的物理地址即MAC地址。數據交換是靠硬件來實現的,其速度至關快。這是二層交換的一個顯著的長處。但是。它不能處理不一樣IP子網之間的數據交換。

傳統的路由器可以處理大量的跨越IP子網的數據包,但是它的轉發效率比二層低。所以要想利用二層轉發效率高這一長處。又要處理三層IP數據包。三層交換技術就誕生了。

三層交換技術的工做原理

第三層交換工做在OSI七層網絡模型中的第三層即網絡層,是利用第三層協議中的IP包的包頭信息來對興許數據業務流進行標記,具備同一標記的業務流的興許報文被交換到第二層數據鏈路層,從而打通源IP地址和目的IP地址之間的一條通路。這條通路通過第二層鏈路層。有了這條通路,三層交換機就沒有必要每次將接收到的數據包進行拆包來推斷路由,而是直接將數據包進行轉發,將數據流進行交換


如下看一下具體分析:

一、二層交換技術

      二層交換技術是發展比較成熟,二層交換機屬數據鏈路層設備,可以識別數據包中的MAC地址信息,依據MAC地址進行轉發,並將這些MAC地址相應的port記錄在本身內部的一個地址表中

  詳細的工做流程例如如下:

1) 當交換機從某個port收到一個數據包,它先讀取包頭中的MAC地址,這樣它就知道源MAC地址的機器是連在哪一個port上的;

2) 再去讀取包頭中的目的MAC地址。並在地址表中查找對應的port

3) 如表中有與這目的MAC地址相應的port,把數據包直接拷貝到這port上;

4) 如表中找不到相應的port則把數據包廣播到所有port上。當目的機器對源機器迴應時,交換機又可以學習一目的MAC地址與哪一個port相應,在下次傳送數據時就再也不需要對所有port進行廣播了。

        不斷的循環這個過程,對於全網的MAC地址信息都可以學習到。二層交換機就是這樣創建和維護它本身的地址表

從二層交換機的工做原理可以推知下面三點:

1) 由於交換機對多數port的數據進行同一時候交換,這就要求具備很是寬的交換總線帶寬,假設二層交換機有N個port,每個port的帶寬是M,交換機總線帶寬超過N×M,那麼這交換機就可以實現線速交換;

2) 學習port鏈接的機器的MAC地址,寫入地址表,地址表的大小(通常兩種表示方式:一爲BEFFER RAM,一爲MAC表項數值)。地址表大小影響交換機的接入容量;

3) 另外一個就是二層交換機通常都含有專門用於處理數據包轉發的ASICApplication specific Integrated Circuit)芯片,所以轉發速度可以作到很快。由於各個廠家採用ASIC不一樣。直接影響產品性能。

以上三點也是評判二三層交換機性能優劣的主要技術參數,這一點請你們在考慮設備選型時注意比較。


二、路由技術

       路由器工做在OSI模型的第三層---網絡層操做。其工做模式與二層交換類似。但路由器工做在第三層,這個差異決定了路由和交換在傳遞包時使用不一樣的控制信息,實現功能的方式就不一樣。工做原理是在路由器的內部也有一個表,這個表所標示的是假設要去某一個地方。下一步應該向那裏走,假設能從路由表中找到數據包下一步往那裏走,把鏈路層信息加上轉發出去;假設不能知道下一步走向那裏,則將此包丟棄。而後返回一個信息交給源地址。

     路由技術實質上來講只是兩種功能:決定最優路由轉發數據包。路由表中寫入各類信息,由路由算法計算出到達目的地址的最佳路徑。而後由相對簡單直接的轉發機制發送數據包。

接受數據的下一臺路由器按照一樣的工做方式繼續轉發,依次類推,直到數據包到達目的路由器。

    而路由表的維護,也有兩種不一樣的方式。

一種是路由信息的更新。將部分或者全部的路由信息發佈出去,路由器經過互相學習路由信息。就掌握了全網的拓撲結構。這一類的路由協議稱爲距離矢量路由協議;還有一種是路由器將本身的鏈路狀態信息進行廣播,經過互相學習掌握全網的路由信息,進而計算出最佳的轉發路徑,這類路由協議稱爲鏈路狀態路由協議。

   因爲路由器需要作大量的路徑計算工做,通常處理器的工做能力直接決定其性能的優劣。固然這一推斷仍是對中低端路由器而言。因爲高端路由器每每採用分佈式處理系統體系設計。


三、三層交換技術

      近年來的對三層技術的宣傳,耳朵都能起繭子。處處都在喊三層技術,有人說這是個很新的技術。也有人說。三層交換嘛。不就是路由器和二層交換機的堆疊。也沒有什麼新的玩意,事實果然如此嗎?如下先來經過一個簡單的網絡來看看三層交換機的工做過程。

     組網比較簡單

     使用IP的設備A------------------------三層交換機------------------------使用IP的設備B

     比方A要給B發送數據,已知目的IP,那麼A就用子網掩碼取得網絡地址,推斷目的IP是否與本身在同一網段。

     假設在同一網段。但不知道轉發數據所需的MAC地址,A就發送一個ARP請求,B返回其MAC地址。A用此MAC封裝數據包併發送給交換機,交換機起用二層交換模塊。查找MAC地址表。將數據包轉發到對應的port

   假設目的IP地址顯示不是同一網段的,那麼A要實現和B的通信,在流緩存條目中沒有相應MAC地址條目。就將第一個正常數據包發送向一個缺省網關。這個缺省網關通常在操做系統中已經設好。相應第三層路由模塊,因此可見對於不是同一子網的數據。最早在MAC表中放的是缺省網關的MAC地址;而後就由三層模塊接收到此數據包。查詢路由表以肯定到達B的路由。將構造一個新的幀頭。當中以缺省網關的MAC地址爲源MAC地址,以主機BMAC地址爲目的MAC地址。經過必定的識別觸發機制。確立主機ABMAC地址及轉發port的相應關係,並記錄進流緩存條目表,之後的AB的數據,就直接交由二層交換模塊完畢。

這就一般所說的一次路由屢次轉發。

    以上就是三層交換機工做過程的簡單歸納,可以看出三層交換的特色:

a -- 由硬件結合實現數據的快速轉發

b -- 這就不是簡單的二層交換機和路由器的疊加。三層路由模塊直接疊加在二層交換的快速背板總線上。突破了傳統路由器的接口速率限制,速率可達幾十Gbit/s。算上背板帶寬。這些是三層交換機性能的兩個重要參數。

c -- 簡潔的路由軟件使路由過程簡化。

d -- 大部分的數據轉發,除了必要的路由選擇交由路由軟件處理,都是又二層模塊快速轉發,路由軟件大多都是通過處理的高效優化軟件,並不是簡單照搬路由器中的軟件。


簡單總結:

     二層交換機用於小型的局域網絡

這個就不用多言了。在小型局域網中。廣播包影響不大。二層交換機的高速交換功能、多個接入port和低謙價格爲小型網絡用戶提供了很是無缺的解決方式。

     路由器的長處在於接口類型豐富,支持的三層功能強大,路由能力強大,適合用於大型的網絡間的路由,它的優點在於選擇最佳路由,負荷分擔,鏈路備份及和其它網絡進行路由信息的交換等等路由器所具備功能。

     三層交換機的最重要的功能是加快大型局域網絡內部的數據的高速轉發,增長路由功能也是爲這個目的服務的。假設把大型網絡依照部門,地域等等因素劃分紅一個個小局域網。這將致使大量的網際互訪,單純的使用二層交換機不能實現網際互訪;如單純的使用路由器,由於接口數量有限和路由轉發速度慢。將限制網絡的速度和網絡規模,採用具備路由功能的高速轉發的三層交換機就成爲首選。

    通常來講,在內網數據流量大。要求高速轉發響應的網絡中,如全部由三層交換機來作這個工做。會形成三層交換機負擔太重,響應速度受影響。將網間的路由交由路由器去完畢,充分發揮不一樣設備的長處,不失爲一種好的組網策略,固然,前提是客戶的腰包很是鼓,否則就退而求其次,讓三層交換機也兼爲網際互連。


四、四層交換機

  第四層交換的一個簡單定義是:它是一種功能。它決定傳輸不僅根據MAC地址(第二層網橋)或源/目標IP地址(第三層路由),而且根據TCP/UDP(第四層)應用port號

第四層交換功能就象是虛IP。指向物理server。它傳輸的業務服從的協議多種多樣。有HTTPFTPNFSTelnet或其它協議。這些業務在物理server基礎上。需要複雜的載量平衡算法。在IP世界,業務類型由終端TCPUDPport地址來決定,在第四層交換中的應用區間則由源端和終端IP地址、TCPUDPport共同決定。

  在第四層交換中爲每個供搜尋使用的server組設立虛IP地址(VIP),每組server支持某種應用。在域名server(DNS)中存儲的每個應用server地址是VIP,而不是真實的server地址。

  當某用戶申請應用時,一個帶有目標server組的VIP鏈接請求(好比一個TCP SYN包)發給server交換機。server交換機在組中選取最好的server,將終端地址中的VIP用實際server的IP代替,並將鏈接請求傳給server。這樣,同一區間所有的包由server交換機進行映射,在用戶和同一server間進行傳輸。

第四層交換的原理 

  OSI模型的第四層是傳輸層。傳輸層負責端對端通訊,即在網絡源和目標系統之間協調通訊。在IP協議棧中這是TCP(一種傳輸協議)和UDP(用戶數據包協議)所在的協議層。
  在第四層中,TCPUDP標題包括port號(portnumber),它們能夠惟一區分每個數據包包括哪些應用協議(好比HTTPFTP等)。

端點系統利用這樣的信息來區分包中的數據,尤爲是port號使一個接收端計算機系統能夠肯定它所收到的IP包類型。並把它交給合適的高層軟件。

port號和設備IP地址的組合一般稱做插口(socket

  1255之間的port號被保留。他們稱爲熟知port。也就是說,在所有主機TCP/IP協議棧實現中。這些port號是一樣的。除了熟知port外。標準UNIX服務分配在2561024port範圍,定製的應用通常在1024以上分配port號.

   分配port號的近期清單可以在RFc1700」Assigned Numbers」上找到。TCPUDPport號提供的附加信息可以爲網絡交換機所利用。這是第4層交換的基礎。 

"熟知"port號舉例

應用協議         port號 

FTP                         20(數據)
           21(控制)

TELNET                 23
SMTP                     25
HTTP                      80
NNTP                     119
NNMP                    16
                               162SNMP traps) 

     TCP/UDPport號提供的附加信息可以爲網絡交換機所利用,這是第四層交換的基礎。

  具備第四層功能的交換機能夠起到與server相鏈接的虛擬IP」(VIP)前端的做用。

     每臺server和支持單一或通用應用的server組都配置一個VIP地址。這個VIP地址被髮送出去並在域名系統上註冊。

  在發出一個服務請求時。第四層交換機經過斷定TCP開始。來識別一次會話的開始。而後它利用複雜的算法來肯定處理這個請求的最佳server。

一旦作出這樣的決定。交換機就將會話與一個詳細的IP地址聯繫在一塊兒,並用該server真正的IP地址來取代server上的VIP地址。

  每臺第四層交換機都保存一個與被選擇的server相配的源IP地址以及源TCPport相關聯的鏈接表。而後第四層交換機向這臺server轉發鏈接請求。

所有興許包在客戶機與server之間又一次影射和轉發。直到交換機發現會話爲止。

  在使用第四層交換的狀況下,接入可以與真正的server鏈接在一塊兒來知足用戶制定的規則,諸如使每臺server上有相等數量的接入或依據不一樣server的容量來分配傳輸流。

相關文章
相關標籤/搜索