王莉軍
【摘 要】交換機是以太網(wǎng)的一種連接設備,可以擴大以太網(wǎng)的覆蓋范圍。交換機是計算機網(wǎng)絡課程中的一個非常重要的知識,本論文介紹了基于思科Packet Tracer軟件搭建交換機網(wǎng)絡,并通過軟件仿真過程使同學們更容易理解交換機的工作原理。
【關鍵詞】交換機;Packet Tracer;MAC地址
中圖分類號: TP393.05 文獻標識碼: A 文章編號: 2095-2457(2018)28-0150-002
DOI:10.19694/j.cnki.issn2095-2457.2018.28.068
【Abstract】Switch is a connecting device of Ethernet,which can expand the coverage of Ethernet.Switch is a very important knowledge in computer network course.This paper introduces the construction of switch network based on Cisco Packet Tracer software,and makes it easier for students to understand the working principle of switch through software simulation process.
【Key words】Switch;Packet Tracer;Mac Address
1 原理說明
按照OSI參考模型,交換機工作在第二層數(shù)據(jù)鏈路層,數(shù)據(jù)鏈路層的數(shù)據(jù)幀里有兩個關鍵字段,目的MAC地址和源MAC地址[1]。目的MAC地址指的是最終數(shù)據(jù)站點的MAC地址,源MAC地址是指起始發(fā)送站點的MAC地址。交換機的工作過程可以分為兩大部分,一部分是建立轉(zhuǎn)發(fā)表,一部分是轉(zhuǎn)發(fā)數(shù)據(jù)。交換機里有一個地址轉(zhuǎn)發(fā)表,記錄的是站點的MAC地址與進入交換機的接口之間的對應關系,一天新的交換機里面的轉(zhuǎn)發(fā)表是空的。當交換機接收到數(shù)據(jù)幀,先是判斷轉(zhuǎn)發(fā)表中是否有與源MAC地址匹配的表項,如果沒有,就會將源MAC地址與交換機接收端口之間的對應關系添加入交換機的轉(zhuǎn)發(fā)表中,這個就是基于源MAC地址的轉(zhuǎn)發(fā)表的建立過程。然后交換機判斷轉(zhuǎn)發(fā)表中是否有與目的MAC匹配的表項,沒有匹配的表項,則洪泛轉(zhuǎn)發(fā),即除輸入端口以外的所有端口都轉(zhuǎn)發(fā);如果有匹配的表項,找到的轉(zhuǎn)發(fā)口與接收端口不相同,則直接從找到的轉(zhuǎn)發(fā)口發(fā)送數(shù)據(jù);如果有匹配的表項,但找到的轉(zhuǎn)發(fā)口與接收端口一樣則將數(shù)據(jù)丟棄;,上面3種情況,就是基于目的MAC地址的查表轉(zhuǎn)發(fā)數(shù)據(jù)過程。交換機的工作過程流程圖如下圖1所示[2]:
2 案例分析
下面以一個案例的三種場景來說明交換機的工作過程。在思科的Packet Tracer模擬仿真器中搭建如下圖2所示的網(wǎng)絡拓撲[3]。仿真前先在清除分別清空三臺交換機的MAC地址表,在特權(quán)模式下使用clear mac-address-table命令,清除后再用show mac-address-table命令查看確認。然后在三臺PC機的“Command Prompt”的命令行中輸入ipconfig/all命令查看3臺PC機的MAC地址和IP地址在圖2中有顯示[3]。
2.1 PC0向PC2發(fā)送數(shù)據(jù)
2.1.1 PC0發(fā)送請求報文給PC2
第1個場景是PC0向PC2發(fā)送數(shù)據(jù),PC0先發(fā)送請求報文給PC2,SW0交換機先收到數(shù)據(jù)報文,查看MAC地址表沒有源MAC地址即PC0的MAC地址,所以將PC0的MAC地址和輸入端口F0/1添加進入MAC地址轉(zhuǎn)發(fā)表中,再查看MAC地址表中沒有目標MAC地址即PC2的MAC地址,所以從除輸入端口F0/1以外的F0/3端口洪泛轉(zhuǎn)發(fā)數(shù)據(jù)。SW1收到數(shù)據(jù)報文,查看MAC地址表沒有源MAC地址即PC0的MAC地址,所以將PC0的MAC地址和輸入端口F0/1添加進入MAC地址轉(zhuǎn)發(fā)表中,再查看MAC地址表中沒有目標MAC地址即PC2的MAC地址,所以從除輸入端口F0/1以外的F0/3端口和F0/2端口洪泛轉(zhuǎn)發(fā)數(shù)據(jù)。PC1收到數(shù)據(jù)檢測目標MAC地址和自己的MAC地址不一樣就將數(shù)據(jù)丟棄。SW2收到數(shù)據(jù)報文,查看MAC地址表沒有源MAC地址即PC0的MAC地址,所以將PC0的MAC地址和輸入端口F0/1添加進入MAC地址轉(zhuǎn)發(fā)表中,再查看MAC地址表中沒有目標MAC地址即PC2的MAC地址,所以從除輸入端口F0/1以外的F0/3端口洪泛轉(zhuǎn)發(fā)數(shù)據(jù)。PC2收到數(shù)據(jù)后檢測目標MAC地址與自己的MAC地址一樣所以接收數(shù)據(jù)
2.1.1 PC2發(fā)送響應報文給PC0
接下來PC2發(fā)送一個響應數(shù)據(jù)報文給PC0,這時源MAC地址為PC2的MAC地址,目標MAC地址為PC0的MAC地址。PC2先將數(shù)據(jù)發(fā)給SW2,SW2查看MAC地址表沒有源MAC地址即PC2的MAC地址,所以將PC2的MAC地址和輸入端口F0/3添加進入MAC地址轉(zhuǎn)發(fā)表中,再查看MAC地址表中目標MAC地址即PC0的MAC地址對應的端口為F0/1,所以直接從F0/1端口轉(zhuǎn)發(fā)數(shù)據(jù)。SW1查看MAC地址表沒有源MAC地址即PC2的MAC地址,所以將PC2的MAC地址和輸入端口F0/2添加進入MAC地址轉(zhuǎn)發(fā)表中,再查看MAC地址表中目標MAC地址即PC0的MAC地址對應的端口為F0/1,所以直接從F0/1端口轉(zhuǎn)發(fā)數(shù)據(jù)。SW0查看MAC地址表沒有源MAC地址即PC2的MAC地址,所以將PC2的MAC地址和輸入端口F0/2添加進入MAC地址轉(zhuǎn)發(fā)表中,再查看MAC地址表中目標MAC地址即PC0的MAC地址對應的端口為F0/1,所以直接從F0/1端口轉(zhuǎn)發(fā)數(shù)據(jù)。PC0收到數(shù)據(jù),檢測目標MAC地址就是自己的MAC地址,所以接收該數(shù)據(jù),則從PC0發(fā)送數(shù)據(jù)給PC2,以及PC2返回響應數(shù)據(jù)的整個過程就結(jié)束了。
2.2 PC1向PC0發(fā)送數(shù)據(jù)
2.2.1 PC1發(fā)送請求報文給PC0
第2個場景是PC1向PC0發(fā)送數(shù)據(jù),PC1先發(fā)送請求報文給PC0,SW1交換機先收到數(shù)據(jù)報文,查看MAC地址表沒有源MAC地址即PC1的MAC地址,所以將PC1的MAC地址和輸入端口F0/3添加進入MAC地址轉(zhuǎn)發(fā)表中,再查看MAC地址表中目標MAC地址即PC0的MAC地址對應的端口為F0/1,所以直接從F0/1端口轉(zhuǎn)發(fā)數(shù)據(jù)。SW0收到數(shù)據(jù)報文,查看MAC地址表沒有源MAC地址即PC1的MAC地址,所以將PC1的MAC地址和輸入端口F0/3添加進入MAC地址轉(zhuǎn)發(fā)表中,再查看MAC地址表中目標MAC地址即PC0的MAC地址對應的端口為F0/1,所以直接從F0/1端口轉(zhuǎn)發(fā)數(shù)據(jù)。PC0收到數(shù)據(jù)后檢測目標MAC地址與自己的MAC地址一樣所以接收數(shù)據(jù)
2.2.2 PC0發(fā)送響應報文給PC1
接下來PC0發(fā)送響應報文給PC1,SW0先收到數(shù)據(jù)報文,查看MAC地址表有源MAC地址即PC0的MAC地址,所以MAC地址轉(zhuǎn)發(fā)表不變,再查看MAC地址表中目標MAC地址即PC1的MAC地址對應的端口為F0/3,所以直接從F0/3端口轉(zhuǎn)發(fā)數(shù)據(jù)。SW1收到數(shù)據(jù)報文,查看MAC地址表有源MAC地址即PC0的MAC地址,所以MAC地址轉(zhuǎn)發(fā)表不變,再查看MAC地址表中目標MAC地址即PC1的MAC地址對應的端口為F0/3,所以直接從F0/3端口轉(zhuǎn)發(fā)數(shù)據(jù)。
2.3 刪除SW1的地址轉(zhuǎn)發(fā)表后PC1向PC0發(fā)送數(shù)據(jù)
2.3.1 PC1發(fā)送請求報文給PC0
第3個場景是刪除SW1的地址轉(zhuǎn)發(fā)表后PC1向PC0發(fā)送數(shù)據(jù),PC1先發(fā)送請求報文給PC0,SW1交換機里的MAC地址轉(zhuǎn)發(fā)表已經(jīng)用clear mac-address-table命令刪除MAC地址轉(zhuǎn)發(fā)表,用show mac-address-table命令查看轉(zhuǎn)發(fā)表內(nèi)容為空。SW1先收到數(shù)據(jù)報文,查看MAC地址表沒有源MAC地址即PC1的MAC地址,所以將PC1的MAC地址和輸入端口F0/3添加進入MAC地址轉(zhuǎn)發(fā)表中,再查看MAC地址表中目標MAC地址即PC0的MAC地址,發(fā)現(xiàn)沒有則從除輸入端口F0/3,以外的F0/1和F0/2端口洪泛轉(zhuǎn)發(fā)數(shù)據(jù)。SW2交換機查看MAC地址表沒有源MAC地址即PC1的MAC地址,所以將PC1的MAC地址和輸入端口F0/1添加進入MAC地址轉(zhuǎn)發(fā)表中,再查目標MAC地址即PC0的MAC地址對應的端口為F0/1與輸入端口一樣,所以丟棄該數(shù)據(jù)報文。SW0收到數(shù)據(jù)報文,查看MAC地址表有源MAC地址即PC1的MAC地址,所以MAC地址轉(zhuǎn)發(fā)表不變,再查看MAC地址表中目標MAC地址即PC0的MAC地址對應的端口為F0/1,所以直接從F0/1端口轉(zhuǎn)發(fā)數(shù)據(jù)。PC0收到數(shù)據(jù)后檢測目標MAC地址與自己的MAC地址一樣所以接收數(shù)據(jù)。
2.3.2 PC0發(fā)送響應報文給PC1
接下來PC0發(fā)送響應報文給PC1。SW0收到數(shù)據(jù)報文,查看MAC地址表有源MAC地址即PC0的MAC地址,所以MAC地址轉(zhuǎn)發(fā)表不變,再查看MAC地址表中目標MAC地址即PC1的MAC地址對應的端口為F0/3,所以直接從F0/3端口轉(zhuǎn)發(fā)數(shù)據(jù)。SW1收到數(shù)據(jù)報文,查看MAC地址表沒有源MAC地址即PC0的MAC地址,所以將PC0的MAC地址和輸入端口F0/1添加進入MAC地址轉(zhuǎn)發(fā)表中,再查看MAC地址表中目標MAC地址即PC1的MAC地址對應的端口為F0/3,所以直接從F0/3端口轉(zhuǎn)發(fā)數(shù)據(jù)。PC1收到數(shù)據(jù)后檢測目標MAC地址與自己的MAC地址一樣所以接收數(shù)據(jù)。
3 結(jié)語
本文介紹了基于思科Packet Tracer仿真軟件搭建交換機網(wǎng)絡說明交換機工作原理的一種方法[4]。這個仿真實驗方法讓同學們在沒有交換機硬件設備的情況下,也可以搭建網(wǎng)絡,從而很好的理解交換機的工作原理。
【參考文獻】
[1]謝希仁.計算機網(wǎng)絡.第6版[M].北京:電子工業(yè)出版社,2013:89-93.
[2]張純?nèi)?,施曉秋,劉?網(wǎng)絡互連技術[M].北京:清華大學出版社,2015:221-222.
[3]葉阿勇,賴會霞,張楨霞,陳秋玲,許力.計算機網(wǎng)絡實驗與學習指導-基于Cisco Packet Tracer模擬器.第2版[M].北京:電子工業(yè)出版社,2017:46-51.
[4]姜恩華,張亞萍,侯俊欽.Packet Tracer軟件在計算機網(wǎng)絡實驗教學中的應用[J].實驗科學與技術,2011.9:30-33.