胡 斌
(天津商業(yè)大學(xué) 信息工程學(xué)院,天津 300134)
在“計(jì)算機(jī)網(wǎng)絡(luò)”課程教學(xué)中,由于網(wǎng)絡(luò)分層體系結(jié)構(gòu)及其中的協(xié)議較為抽象,學(xué)生對(duì)于網(wǎng)絡(luò)原理知識(shí)點(diǎn)的理解困難[1]。Cisco Packet Tracer網(wǎng)絡(luò)模擬工具是由Cisco公司發(fā)布的網(wǎng)絡(luò)輔助學(xué)習(xí)工具,除了提供搭建網(wǎng)絡(luò)拓?fù)洹?duì)網(wǎng)絡(luò)設(shè)備進(jìn)行配置功能外,能采用動(dòng)畫方式表現(xiàn)網(wǎng)絡(luò)協(xié)議過程和數(shù)據(jù)封裝,這對(duì)學(xué)習(xí)者深入理解網(wǎng)絡(luò)的工作原理和體系結(jié)構(gòu)有很大幫助[2]。
瀏覽器訪問Web服務(wù)器網(wǎng)頁的過程是一個(gè)典型的Web應(yīng)用,將該應(yīng)用作為教學(xué)案例。
圖1是案例網(wǎng)絡(luò)拓?fù)鋱D,在該網(wǎng)絡(luò)中,路由器R將兩個(gè)局域網(wǎng)LAN1和LAN2互連。LAN1中包括一臺(tái)終端PC0,一臺(tái)DNS服務(wù)器和交換機(jī)1,LAN1連接到路由器R的Fa0/0端口;LAN2中有一臺(tái)Web服務(wù)器和交換機(jī)2,LAN2連接到路由器R的Fa0/1端口。在DNS服務(wù)器中添加一條資源記錄,將域名www.abc.com綁定IP地址192.1.2.2。
將Packet Tracer切換到Simulation(模擬)模式環(huán)境,仿真軟件能以動(dòng)畫形式產(chǎn)生數(shù)據(jù)包,并且提供了查看數(shù)據(jù)包詳細(xì)協(xié)議信息的功能,利用這一功能,可以幫助學(xué)生理解網(wǎng)絡(luò)的分層體系結(jié)構(gòu)、了解數(shù)據(jù)包的封裝過程和各層協(xié)議首部的構(gòu)成及其含義[3]。
打開教學(xué)案例的拓?fù)湮募?,切換到Simulation模式,在PC0的瀏覽器URL中輸入www.abc.com/helloworld.html,單擊Go按鈕。在Simulation Panel中單擊Auto Capture/Play按鈕進(jìn)行捕獲,當(dāng)捕獲結(jié)束時(shí),整個(gè)案例的數(shù)據(jù)包將在事件列表展示。以下主要對(duì)PC0和兩臺(tái)服務(wù)器捕獲的數(shù)據(jù)包進(jìn)行分析,忽略交換機(jī)和路由器轉(zhuǎn)發(fā)的數(shù)據(jù)包。
圖1 案例網(wǎng)絡(luò)拓?fù)鋱D
由于PC0中設(shè)置了DNS服務(wù)器為192.1.1.2,因此當(dāng)PC0瀏覽器請(qǐng)求www.abc.com/helloworld.html網(wǎng)頁時(shí),PC0將向DNS服務(wù)器發(fā)送一個(gè)DNS查詢請(qǐng)求。
圖2捕獲的是PC0產(chǎn)生的DNS查詢報(bào)文信息,在圖2的OSI Model選項(xiàng)卡中,Out Layers(出站層)展示出了OSI的七層網(wǎng)絡(luò)體系結(jié)構(gòu),按照自上層向下層的順序,對(duì)該P(yáng)DU的封裝過程描述如下:最上層Layer7應(yīng)用層使用DNS協(xié)議,生成DNS查詢請(qǐng)求;Layer4是運(yùn)輸層,在該層使用UDP協(xié)議封裝DNS查詢請(qǐng)求,運(yùn)輸層使用目的端口號(hào)53和源端口號(hào)1025;Layer3是網(wǎng)絡(luò)層,網(wǎng)絡(luò)層使用IP協(xié)議,將上層的UDP封裝在IP數(shù)據(jù)報(bào)中,其中源IP地址為PC0的IP地址(192.1.1.1),目的IP地址為DNS服務(wù)器的IP地址(192.1.1.2);Layer2是數(shù)據(jù)鏈路層,該層采用EthernetⅡ協(xié)議,將上層的IP數(shù)據(jù)報(bào)封裝成一個(gè)幀;Layer1是物理層,物理層將將以太網(wǎng)幀以二進(jìn)制比特流形式傳遞,二進(jìn)制比特流轉(zhuǎn)換為電信號(hào)在物理媒體中傳送出去。
圖2 PC0的DNS查詢請(qǐng)求OSI Model選項(xiàng)卡
DNS服務(wù)器收到PC0的查詢請(qǐng)求后,在本地區(qū)域文件查找,將www.abc.com對(duì)應(yīng)的IP地址192.1.2.1放入DNS應(yīng)答報(bào)文,發(fā)送給PC0。
TCP連接建立階段需要3次握手,過程如下。
第一次握手:PC0向Web服務(wù)器發(fā)送一個(gè)TCP同步(SYN)報(bào)文段,記錄該報(bào)文段中的sequence number(序號(hào))、ACK number(確認(rèn)號(hào))字段的值。
第二次握手:Web服務(wù)器端口80收到PC0發(fā)來的TCP同步報(bào)文段,Web服務(wù)器向PC0發(fā)送一個(gè)TCP的同步確認(rèn)(SYN+ACK)報(bào)文段。
第三次握手:PC0收到Web服務(wù)器發(fā)來的TCP同步確認(rèn)報(bào)文段, PC0向Web服務(wù)器發(fā)送一個(gè)TCP確認(rèn)報(bào)文段。Web服務(wù)器收到PC發(fā)來的TCP確認(rèn)報(bào)文段,同意接收PC的連接請(qǐng)求,連接建立。
PC0的瀏覽器產(chǎn)生HTTP請(qǐng)求信息,圖3捕獲的是PC0產(chǎn)生的HTTP請(qǐng)求信息。在圖3的OSI Model選項(xiàng)卡中,Out Layers的最上層Layer7應(yīng)用層使用HTTP協(xié)議,生成HTTP請(qǐng)求報(bào)文;Layer4運(yùn)輸層使用TCP協(xié)議封裝HTTP請(qǐng)求報(bào)文,運(yùn)輸層使用目的端口號(hào)80和源端口號(hào)1029;Layer3網(wǎng)絡(luò)層使用IP協(xié)議,將上層的TCP封裝在IP數(shù)據(jù)報(bào)中,其中源IP地址為PC0的IP地址(192.1.1.1),目的IP地址為WEB服務(wù)器的IP地址(192.1.2.2);Layer2和Layer1與前面的描述相似。HTTP請(qǐng)求報(bào)文的內(nèi)容包括了請(qǐng)求行、請(qǐng)求首部等組成。
圖3 PC0的HTTP請(qǐng)求OSI Model選項(xiàng)卡
Web服務(wù)器收到請(qǐng)求報(bào)文后,對(duì)其進(jìn)行解析并查找服務(wù)器中的網(wǎng)頁,找到網(wǎng)頁后將其副本寫到HTTP響應(yīng)報(bào)文中,回發(fā)給PC0。HTTP響應(yīng)報(bào)文的內(nèi)容包括了狀態(tài)行、響應(yīng)首部、響應(yīng)數(shù)據(jù)等組成。
PC0收到Web服務(wù)器發(fā)來的HTTP響應(yīng)報(bào)文,在瀏覽器中將收到的helloworld.html網(wǎng)頁進(jìn)行顯示。其后PC0瀏覽器與Web服務(wù)器進(jìn)入釋放TCP連接過程,完成整個(gè)Web應(yīng)用案例演示。
以Internet為代表的計(jì)算機(jī)網(wǎng)絡(luò)是一個(gè)非常龐大的系統(tǒng),涉及眾多復(fù)雜的網(wǎng)絡(luò)協(xié)議和算法,通過在教學(xué)中引入Packet Tracer虛擬仿真工具,使復(fù)雜抽象的網(wǎng)絡(luò)概念、網(wǎng)絡(luò)協(xié)議的學(xué)習(xí)和教學(xué)變得形象生動(dòng),直觀地展示了各層協(xié)議的封裝信息,這種理論聯(lián)系實(shí)際的教學(xué)方法起到了很好的教學(xué)效果。