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