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