陳潮
(浙江警察學(xué)院計算機與信息安全系,杭州310053)
交換機和路由器是計算機網(wǎng)絡(luò)中使用最廣泛的兩類網(wǎng)絡(luò)設(shè)備,交換機用來組建局域網(wǎng),路由器用來實現(xiàn)網(wǎng)絡(luò)之間的互聯(lián),理解交換機的工作原理,掌握交換機的配置方法,是學(xué)習(xí)計算機網(wǎng)絡(luò)知識的基本要求之一。以太網(wǎng)早已經(jīng)成為局域網(wǎng)的主流標(biāo)準(zhǔn),日常使用交換機一般都是以太網(wǎng)交換機,以太網(wǎng)交換機的工作原理是《計算機網(wǎng)絡(luò)》課程的重要教學(xué)內(nèi)容之一,由于計算機網(wǎng)絡(luò)知識抽象、前后知識點緊密關(guān)聯(lián)、網(wǎng)絡(luò)數(shù)據(jù)包轉(zhuǎn)發(fā)過程難以觀察和缺少實驗室支持等原因,常常導(dǎo)致學(xué)生對計算機網(wǎng)絡(luò)的工作原理難以理解、學(xué)習(xí)積極性低和開展實驗項目較少等情況,在一定程度上影響教學(xué)工作的開展,從而導(dǎo)致教學(xué)效果一般。在《計算機網(wǎng)絡(luò)》課程的實踐教學(xué)中,采用真實網(wǎng)絡(luò)設(shè)備進行實驗教學(xué),存在實驗室投入大、場地要求高、網(wǎng)絡(luò)設(shè)備容易損壞和網(wǎng)絡(luò)實驗環(huán)境管理復(fù)雜等問題,特別是疫情期間,學(xué)生無法到校在實驗室開展實驗的情況下,開展仿真實驗教學(xué)具有重大意義,因此通過仿真軟件來仿真計算機網(wǎng)絡(luò)的工作原理,仿真軟件模擬真實數(shù)據(jù)包的轉(zhuǎn)發(fā)過程,從而加深學(xué)生對計算機網(wǎng)絡(luò)工作原理的理解。本文設(shè)計與實現(xiàn)一個基于Packet Tracer 軟件的以太網(wǎng)交換機工作原理仿真實驗,學(xué)生通過該仿真實驗,明顯提高了學(xué)生對以太網(wǎng)交換機工作原理的理解。
以太網(wǎng)交換機的核心功能是轉(zhuǎn)發(fā)數(shù)據(jù)幀,數(shù)據(jù)幀的轉(zhuǎn)發(fā)依靠交換機中的轉(zhuǎn)發(fā)表,而交換機的轉(zhuǎn)發(fā)表是交換機通過自學(xué)習(xí)算法自動生成和維護的,因此交換機的工作主要包括自學(xué)習(xí)生成轉(zhuǎn)發(fā)表記錄(即登記數(shù)據(jù)幀)和根據(jù)轉(zhuǎn)發(fā)表中的記錄轉(zhuǎn)發(fā)數(shù)據(jù)幀,交換機的轉(zhuǎn)發(fā)表主要由MAC 地址和交換機接口兩個字段構(gòu)成,其他還包括所屬VLAN 和記錄類型等字段,交換機的工作原理示意圖如圖1 所示,主要包括登記數(shù)據(jù)幀和轉(zhuǎn)發(fā)數(shù)據(jù)幀兩部分[1-3]。
轉(zhuǎn)發(fā)表的生成過程,即登記數(shù)據(jù)幀過程如下:當(dāng)交換機每接收一個數(shù)據(jù)幀時,將記錄數(shù)據(jù)幀的源MAC 地址和接收該數(shù)據(jù)幀的交換機接口編號,并在轉(zhuǎn)發(fā)表查找源MAC 地址,根據(jù)查找結(jié)果分為兩種情況:①若查找成功,說明轉(zhuǎn)發(fā)表中存在該MAC 地址,則更新該記錄的有效時間;②若查找不到,說明轉(zhuǎn)發(fā)表中不存在該MAC 地址,則在轉(zhuǎn)發(fā)表中增加一條新的記錄。
轉(zhuǎn)發(fā)數(shù)據(jù)幀過程如下:根據(jù)數(shù)據(jù)幀的目的MAC 地址,在轉(zhuǎn)發(fā)表中進行查尋,根據(jù)查找結(jié)果分為兩種情況:①若未查到,則進行廣播,向除數(shù)據(jù)幀到達交換機接口外的所有交換機接口轉(zhuǎn)發(fā);②若查到,則需要根據(jù)查到的接口是否是數(shù)據(jù)幀到達接口相同分為兩種情況:若相同,則是丟棄數(shù)據(jù)幀;若不同,則向查到的接口轉(zhuǎn)發(fā)數(shù)據(jù)幀[4-6]。
圖1 交換機工作原理示意圖
實驗使用Packet Tracer 進行仿真與實現(xiàn),實驗設(shè)計中需要規(guī)劃實驗網(wǎng)絡(luò)拓撲和編制計算機的IP 地址,實驗設(shè)備配置中設(shè)置計算機的IP 地址、子網(wǎng)掩碼等信息,并將交換機的IP 地址與MAC 地址標(biāo)注在實驗拓撲中,實驗準(zhǔn)備中需要在通信雙方計算機的ARP 緩存中生成對方的記錄,解決ARP 協(xié)議對本實驗的干擾,并清空交換機的轉(zhuǎn)發(fā)表,實驗過程與分析中認真觀察數(shù)據(jù)幀的發(fā)送過程,重點觀察交換機轉(zhuǎn)發(fā)表記錄的變化和交換機對數(shù)據(jù)幀的轉(zhuǎn)發(fā)處理。
實驗拓撲如圖2 所示,由1 臺思科2960 交換機Switch1、4 臺計算機PC1、PC2、PC3 和PC4 和4 根直通雙絞線組成,4 臺計算機依次連接交換機的Fa0/1、Fa0/2、Fa0/3 和Fa0/4 接口,構(gòu)成一個局域網(wǎng)。
圖2 實驗拓撲
實驗中計算機的IP 地址編址如表1 所示,4 臺計算機屬于192.168.1.0 網(wǎng)絡(luò),子網(wǎng)掩碼為255.255.255.0,4 臺計算機的IP 地址和MAC 地址標(biāo)注在實驗拓撲中。
表1 計算機IP 編址
由于ARP 協(xié)議會對實驗產(chǎn)生干擾,在實驗進行前,確保通信雙方計算機的ARP 緩存中存在對方計算機的ARP 記錄,同時清空交換機的轉(zhuǎn)發(fā)表。
在實時模式下,添加一個從PC1 到PC2 的簡單PDU 數(shù)據(jù)幀,結(jié)果如圖3 所示,在場景區(qū)域顯示通信成功。
圖3 簡單PDU數(shù)據(jù)幀通信場景
在PC1 和PC2 計算機中分別運行查看ARP 緩存記錄命令:arp-a,結(jié)果分別如圖4 和圖5 所示,分別存儲對方計算機的ARP 記錄。
圖4 PC1的ARP緩存表
圖5 PC2的ARP緩存表
在交換機的特權(quán)模式下運行命令:show macaddress-table,結(jié)果如圖6 所示,存在2 條記錄,該記錄是PC1 與PC2 的通信時,交換機對到達的數(shù)據(jù)幀進行登記,通過自學(xué)習(xí)算法生成的。
圖6 交換機的轉(zhuǎn)發(fā)表
在交換機的特權(quán)模式下運行命令:clear mac-ad?dress-table,清除交換機的轉(zhuǎn)發(fā)表,再通過命令:show mac-address-table,確認交換機的轉(zhuǎn)發(fā)表已經(jīng)清空。
經(jīng)過以上兩步操作,至此已經(jīng)完成實驗前的準(zhǔn)備。
本實驗設(shè)計重復(fù)發(fā)送兩個對PC1 到PC2 的簡單PDU 數(shù)據(jù)包,重點觀察第1 個數(shù)據(jù)包的傳輸過程中交換機轉(zhuǎn)發(fā)表的變化和交換機對數(shù)據(jù)幀的轉(zhuǎn)發(fā)處理,并與第2 個數(shù)據(jù)包的傳輸過各進行對比分析,整個上實驗過程分為六個步驟。
步驟一:仿真模式配置
將Packet Tracer 軟件切換到仿真模式,本實驗中使用ICMP 協(xié)議,在事件過濾器中只選擇ICMP 協(xié)議,確保只顯示ICMP 協(xié)議的數(shù)據(jù)幀,防止其他數(shù)據(jù)幀的傳輸?shù)接绊憣嶒炦^程中的觀察,同時通過工具欄的觀察工具,打開交換機的轉(zhuǎn)發(fā)表,配置結(jié)果如圖7 所示,交換機的轉(zhuǎn)發(fā)表已經(jīng)清空。
圖7 工作界面
步驟二:添加一個從PC1 到PC2 的簡單PDU 數(shù)據(jù)幀。
從工具欄選擇添加簡單PDU 數(shù)據(jù)幀工具,分別單擊PC1 和PC2 計算機,生成一個從PC1 發(fā)送數(shù)據(jù)幀到PC2 的場景,并在事件列表中產(chǎn)生第1 個事件,數(shù)據(jù)幀在PC1 計算機,類型是ICMP 數(shù)據(jù)幀。
步驟三:觀察交換機登記數(shù)據(jù)幀的過程。
在仿真模式的播放控制中,單擊下一步,觀察數(shù)據(jù)幀從PC1 發(fā)送到交換機的過程,如圖8 所示,交換機的轉(zhuǎn)發(fā)表增加1 條記錄:MAC 地址為0001.9708.961B,即為PC1 的MAC 地址,對應(yīng)接口為FastEthernet0/1,單擊交換機上的信封圖標(biāo),打開PDU 詳細信息窗口,查看入站詳細信息如圖9 所示,交換機接收到的數(shù)據(jù)幀的源MAC 地址為0001.9708.961B,與交換機在轉(zhuǎn)發(fā)表中添加記錄的MAC 地址一致,證明交換機通過自學(xué)習(xí)算法完成轉(zhuǎn)發(fā)表記錄的添加。
圖8 交換機轉(zhuǎn)發(fā)添加記錄
圖9 交換機接收數(shù)據(jù)幀入站詳細信息
步驟四:觀察交換機轉(zhuǎn)發(fā)數(shù)據(jù)幀的過程。
交換機接收到PC1 發(fā)送的數(shù)據(jù)幀,目的MAC 地址為0060.4713.56D2,即PC2 的MAC 地址,交換機根據(jù)該MAC 地址在轉(zhuǎn)發(fā)表中進行查詢,由于當(dāng)前轉(zhuǎn)發(fā)表中只有PC1 的MAC 地址,因此未查到匹配的記錄,交換機進行廣播,將數(shù)據(jù)幀發(fā)送到PC2、PC3 和PC4 計算機,如圖10 所示,其中PC3 和PC4 對收到的數(shù)據(jù)幀進行檢查,發(fā)現(xiàn)目的MAC 地址不是本計算機的MAC,則丟棄該數(shù)據(jù)幀,而PC2 的MAC 地址與數(shù)據(jù)幀中的目的MAC 地址相同,則收下該數(shù)據(jù)幀。
圖10 交換機廣播數(shù)據(jù)幀
步驟五:觀察PC2 響應(yīng)PC1 的數(shù)據(jù)幀到交換機的過程。
PC2 計算機接收PC1 計算機發(fā)送的數(shù)據(jù)幀后,將產(chǎn)生一個應(yīng)答數(shù)據(jù)幀,該數(shù)據(jù)幀的源MAC 地址為0060.4713.56D2,即PC2 的MAC 地址,目的MAC 地址為0001.9708.961B,即PC1 的MAC 地址,交換機接收該數(shù)據(jù)幀后,首先將源MAC 地址和接收該數(shù)據(jù)幀的交換機接口Fa0/2 添加到轉(zhuǎn)發(fā)表中,增加1 條記錄,完成登記,如圖11 所示,同時交換機根據(jù)接收數(shù)據(jù)幀的目的MAC 地址在轉(zhuǎn)發(fā)表中進行查找,目的MAC 為PC1計算機的MAC 地址,該MAC 地址在步驟二中已經(jīng)添加到交換機轉(zhuǎn)發(fā)表中,因此查找到該MAC 地址對應(yīng)的接口為Fa0/1,交換機從接口Fa0/1 轉(zhuǎn)發(fā)該數(shù)據(jù)幀到PC1 計算機,至此完成PC1 計算機和PC2 計算機的通信,在交換機的轉(zhuǎn)發(fā)表中成功添加PC1 和PC2 計算機的MAC 與交換機接口的映射記錄。
圖11 交換機轉(zhuǎn)發(fā)表添加記錄
步驟六:重復(fù)添加一個從PC1 到PC2 的簡單PDU數(shù)據(jù)幀,觀察交換機對數(shù)據(jù)幀的處理。
兩次數(shù)據(jù)幀的傳輸過程的事件列表如圖12 所示,對比發(fā)現(xiàn),當(dāng)?shù)? 次從PC1 計算機向交換機發(fā)送數(shù)據(jù)幀,交換機的轉(zhuǎn)發(fā)表中已經(jīng)存在PC2 計算機的MAC 地址,因此交換機在轉(zhuǎn)發(fā)時,能夠在轉(zhuǎn)發(fā)表中查找到記錄,不必再次進行廣播。
圖12 數(shù)據(jù)幀事件列表對比
交換機是計算機網(wǎng)絡(luò)中最重要的網(wǎng)絡(luò)設(shè)備之一,交換機的工作依靠轉(zhuǎn)發(fā)表,轉(zhuǎn)發(fā)表中記錄的生成和更新是關(guān)鍵,本文設(shè)計了一個交換機工作原理實驗,通過仿真軟件,模擬交換機轉(zhuǎn)發(fā)表的生成過程和交換機轉(zhuǎn)發(fā)數(shù)據(jù)幀的處理過程,并對同一數(shù)據(jù)幀的前后兩次傳輸進行對比分析交換機的工作原理。實踐教學(xué)表明,通過交換機工作原理仿真實驗的教學(xué),直觀展示交換機的工作原理,加深對學(xué)生對交換機工作原理的理解,提高了學(xué)生對交換機工作原理的認識,增強了學(xué)生的學(xué)習(xí)興趣和積極性,取得較好教學(xué)效果。