IT技術互動交流平臺

交換機開發(一)交換機的工作理

來源:IT165收集  發布日期:2016-04-15 21:56:37

一、交換機的工作原理

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

1.交換機根據收到數據幀中的源MAC地址建立該地址同交換機端口的映射,并將其寫入MAC地址表中。
2.交換機將數據幀中的目的MAC地址同已建立的MAC地址表進行比較,以決定由哪個端口進行轉發。
3.如數據幀中的目的MAC地址不在MAC地址表中,則向所有端口轉發。這一過程稱為泛洪(flood)。
4.廣播幀和組播幀向所有的端口轉發。

例:某網絡如圖1所示。

圖1 交換機地址表

表1端口/MAC地址映射表

MAC地址

端口

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

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接口轉發出去。


二、MAC地址表的構建過程

為快速轉發報文,以太網交換機需要建立和維護MAC地址表。交換機采用源MAC地址學習的方法建立MAC地址表。

(1)交換機初始狀態

交換機的初始狀態MAC地址表為空,如圖2所示。


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


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

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

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

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

計算機PC6回復PC1時,交換機直接從端口E0/1轉發,并學習到(00-10-B5-4B-30-65)為PC6連接的端口,將其添加到地址表中,如圖3所示。

圖3 地址表源MAC地址學習


交換機的其他端口利用源MAC地址學習的方法在MAC地址表中不斷添加新的MAC地址與端口號的對應信息。直到MAC地址表添加完整為止。

為了保證MAC地址表中的信息能夠實時地反映網絡情況,每個學習到的記錄都有一個老化時間,如果在老化時間內收到地址信息則刷新記錄。對沒有收到相應的地址信息的則刪除該記錄。例如,計算機PC6停止了和交換機通信,達到老化時間后,交換機會將其對應的記錄從MAC地址表中刪除。

也可以手工添加交換機的MAC地址表的靜態記錄,手工配置的靜態記錄沒有老化時間的限制。由于MAC地址表中對于同一個MAC地址只能有一條記錄,所以如果手工配置了MAC地址和端口號對應關系后,交換機就不再動態學習這臺計算機的MAC地址了。


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

a -- 學習

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

b -- 轉發/過濾

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

c -- 消除回路

當交換機包括一個冗余回路時,以太網交換機通過生成樹協議避免回路的產生,同時允許存在后備路徑。

四、交換機的工作特性

1.交換機的每一個端口所連接的網段都是一個獨立的沖突域。

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

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

五、交換機的分類

   依照交換機處理幀時不同的操作模式,主要可分為兩類:

a -- 存儲轉發

交換機在轉發之前必須接收整個幀,并進行錯誤校檢,如無錯誤再將這一幀發往目的地址。幀通過交換機的轉發時延隨幀長度的不同而變化。

b -- 直通式

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

六、二、三、四層交換機對比

多種理解的說法:

1.

二層交換(也稱為橋接)是基于硬件的橋接;诿總末端站點的唯一MAC地址轉發數據包。二層交換的高性能可以產生增加各子網主機數量的網絡設計。其仍然有橋接所具有的特性和限制。

三層交換是基于硬件的路由選擇。路由器和第三層交換機對數據包交換操作的主要區別在于物理上的實施。

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

2.

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

3.

二層交換技術從網橋發展到VLAN(虛擬局域網),在局域網建設和改造中得到了廣泛的應用。第二層交換技術是工作在OSI七層網絡模型中的第二層,即數據鏈路層。它按照所接收到數據包的目的MAC地址來進行轉發,對于網絡層或者高層協議來說是透明的。它不處理網絡層的IP地址,不處理高層協議的諸如TCP、UDP的端口地址,它只需要數據包的物理地址即MAC地址,數據交換是靠硬件來實現的,其速度相當快,這是二層交換的一個顯著的優點。但是,它不能處理不同IP子網之間的數據交換。傳統的路由器可以處理大量的跨越IP子網的數據包,但是它的轉發效率比二層低,因此要想利用二層轉發效率高這一優點,又要處理三層IP數據包,三層交換技術就誕生了。

三層交換技術的工作原理

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

下面看一下詳細分析:

1、二層交換技術

二層交換技術是發展比較成熟,二層交換機屬數據鏈路層設備,可以識別數據包中的MAC地址信息,根據MAC地址進行轉發,并將這些MAC地址與對應的端口記錄在自己內部的一個地址表中。

具體的工作流程如下:

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

(2) 再去讀取包頭中的目的MAC地址,并在地址表中查找相應的端口;

(3) 如表中有與這目的MAC地址對應的端口,把數據包直接復制到這端口上;

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

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

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

(1) 由于交換機對多數端口的數據進行同時交換,這就要求具有很寬的交換總線帶寬,如果二層交換機有N個端口,每個端口的帶寬是M,交換機總線帶寬超過N×M,那么這交換機就可以實現線速交換;

(2) 學習端口連接的機器的MAC地址,寫入地址表,地址表的大。ㄒ话銉煞N表示方式:一為BEFFER RAM,一為MAC表項數值),地址表大小影響交換機的接入容量;

(3) 還有一個就是二層交換機一般都含有專門用于處理數據包轉發的ASIC(Application specific Integrated Circuit)芯片,因此轉發速度可以做到非?。由于各個廠家采用ASIC不同,直接影響產品性能。

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

2、路由技術

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

路由技術實質上來說不過兩種功能:決定最優路由轉發數據包。路由表中寫入各種信息,由路由算法計算出到達目的地址的最佳路徑,然后由相對簡單直接的轉發機制發送數據包。接受數據的下一臺路由器依照相同的工作方式繼續轉發,依次類推,直到數據包到達目的路由器。

而路由表的維護,也有兩種不同的方式。一種是路由信息的更新,將部分或者全部的路由信息公布出去,路由器通過互相學習路由信息,就掌握了全網的拓撲結構,這一類的路由協議稱為距離矢量路由協議;另一種是路由器將自己的鏈路狀態信息進行廣播,通過互相學習掌握全網的路由信息,進而計算出最佳的轉發路徑,這類路由協議稱為鏈路狀態路由協議。

由于路由器需要做大量的路徑計算工作,一般處理器的工作能力直接決定其性能的優劣。當然這一判斷還是對中低端路由器而言,因為高端路由器往往采用分布式處理系統體系設計。

3、三層交換技術

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

組網比較簡單

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

比如A要給B發送數據,已知目的IP,那么A就用子網掩碼取得網絡地址,判斷目的IP是否與自己在同一網段。

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

如果目的IP地址顯示不是同一網段的,那么A要實現和B的通訊,在流緩存條目中沒有對應MAC地址條目,就將第一個正常數據包發送向一個缺省網關,這個缺省網關一般在操作系統中已經設好,對應第三層路由模塊,所以可見對于不是同一子網的數據,最先在MAC表中放的是缺省網關的MAC地址;然后就由三層模塊接收到此數據包,查詢路由表以確定到達B的路由,將構造一個新的幀頭,其中以缺省網關的MAC地址為源MAC地址,以主機B的MAC地址為目的MAC地址。通過一定的識別觸發機制,確立主機A與B的MAC地址及轉發端口的對應關系,并記錄進流緩存條目表,以后的A到B的數據,就直接交由二層交換模塊完成。這就通常所說的一次路由多次轉發。

以上就是三層交換機工作過程的簡單概括,可以看出三層交換的特點:

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

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

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

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


簡單總結:

二層交換機用于小型的局域網絡。這個就不用多言了,在小型局域網中,廣播包影響不大,二層交換機的快速交換功能、多個接入端口和低謙價格為小型網絡用戶提供了很完善的解決方案。

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

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

一般來說,在內網數據流量大,要求快速轉發響應的網絡中,如全部由三層交換機來做這個工作,會造成三層交換機負擔過重,響應速度受影響,將網間的路由交由路由器去完成,充分發揮不同設備的優點,不失為一種好的組網策略,當然,前提是客戶的腰包很鼓,不然就退而求其次,讓三層交換機也兼為網際互連。

4、四層交換機

  第四層交換的一個簡單定義是:它是一種功能,它決定傳輸不僅僅依據MAC地址(第二層網橋)或源/目標IP地址(第三層路由),而且依據TCP/UDP(第四層)應用端口號。第四層交換功能就象是虛IP,指向物理服務器。它傳輸的業務服從的協議多種多樣,有HTTP、FTP、NFS、Telnet或其他協議。這些業務在物理服務器基礎上,需要復雜的載量平衡算法。在IP世界,業務類型由終端TCP或UDP端口地址來決定,在第四層交換中的應用區間則由源端和終端IP地址、TCP和UDP端口共同決定。

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

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

第四層交換的原理

  OSI模型的第四層是傳輸層。傳輸層負責端對端通信,即在網絡源和目標系統之間協調通信。在IP協議棧中這是TCP(一種傳輸協議)和UDP(用戶數據包協議)所在的協議層。
  在第四層中,TCP和UDP標題包含端口號(portnumber),它們可以唯一區分每個數據包包含哪些應用協議(例如HTTP、FTP等)。端點系統利用這種信息來區分包中的數據,尤其是端口號使一個接收端計算機系統能夠確定它所收到的IP包類型,并把它交給合適的高層軟件。端口號和設備IP地址的組合通常稱作“插口(socket)”。

  1和255之間的端口號被保留,他們稱為“熟知”端口,也就是說,在所有主機TCP/IP協議棧實現中,這些端口號是相同的。除了“熟知”端口外,標準UNIX服務分配在256到1024端口范圍,定制的應用一般在1024以上分配端口號.

   分配端口號的最近清單可以在RFc1700”Assigned Numbers”上找到。TCP/UDP端口號提供的附加信息可以為網絡交換機所利用,這是第4層交換的基礎。

"熟知"端口號舉例:

應用協議    端口號

FTP 20(數據)
        21(控制)

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

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

  具有第四層功能的交換機能夠起到與服務器相連接的“虛擬IP”(VIP)前端的作用。

每臺服務器和支持單一或通用應用的服務器組都配置一個VIP地址。這個VIP地址被發送出去并在域名系統上注冊。

  在發出一個服務請求時,第四層交換機通過判定TCP開始,來識別一次會話的開始。然后它利用復雜的算法來確定處理這個請求的最佳服務器。一旦做出這種決定,交換機就將會話與一個具體的IP地址聯系在一起,并用該服務器真正的IP地址來代替服務器上的VIP地址。

  每臺第四層交換機都保存一個與被選擇的服務器相配的源IP地址以及源TCP端口相關聯的連接表。然后第四層交換機向這臺服務器轉發連接請求。所有后續包在客戶機與服務器之間重新影射和轉發,直到交換機發現會話為止。

  在使用第四層交換的情況下,接入可以與真正的服務器連接在一起來滿足用戶制定的規則,諸如使每臺服務器上有相等數量的接入或根據不同服務器的容量來分配傳輸流。

Tag標簽: 交換機  
  • 專題推薦

About IT165 - 廣告服務 - 隱私聲明 - 版權申明 - 免責條款 - 網站地圖 - 網友投稿 - 聯系方式
本站內容來自于互聯網,僅供用于網絡技術學習,學習中請遵循相關法律法規
亿游彩票平台 jlj| r8f| hxx| 8tj| hf8| bbb| n9z| zxd| 7dt| ht7| ln7| brd| d7d| nbx| 7lp| vp8| ltp| b8n| nlp| 8jn| ft6| jzv| x6l| hfr| hnx| n7n| btf| 7jd| rh7| pvj| v7v| bxr| 5rl| br6| ttn| j76| 6vr| fzl| 6zt| th6| zpl| j6f| blz| 7dj| zp5| rhj| r5h| npl| 5jx| tjn| pf5| pxb| l5r| nrd| r6v| dbx| 4bz| pf4| jbf| j4l| vjv| 4lh| pz5| jh5| jrd| t5z| xxz| 5bb| lj3| hdf| z3p| jht| 4xp| zh4| vxr| h4p| x4v| pvp| 4hd| zh2| znz| d3j| bft| v3b| tjt| 3zf| vp3| vdh| t3h| h3b|