琚生根, 陳 黎, 駱學春, 周 剛, 師 維
(四川大學 計算機學院, 四川 成都 610065)
基于Ethereal的協議分析實驗設計
琚生根, 陳 黎, 駱學春, 周 剛, 師 維
(四川大學 計算機學院, 四川 成都 610065)
目前高校計算機網絡課程中在教學過程中,普遍存在學生感覺協議的學習枯燥無味、難于理解,無法對協議的工作做到眼見為實。為此,設計了基于協議分析工具Ethereal的網絡協議分析實驗,幫助學生有效地了解協議的工作過程、掌握協議的工作原理、提高理論課程的教學質量和效果。
網絡實驗; 協議分析; Ethereal
“計算機網絡”理論教學過程中主要圍繞“協議”展開各種教學。學生在教學過程中需要學習大量的網絡協議,并要求掌握協議的工作原理。但是學生對于看不見摸不著的抽象的協議,感覺枯燥無味,無所適從,為了讓學生能清楚地了解并真實看見這些協議如何工作,網絡協議分析工具可以很好地幫助學生眼見為實,真實地看到數據包是如何工作、如何變換的[1]。
目前高校的網絡實驗課程,主要是以交換機、路由器、服務器為主的一些工程性實驗,這些工程性實驗能夠幫助學生掌握如何配置服務器及如何配置交換機、路由器,但是在搭建好網絡環境,配置好路由器、交換機、服務器以后,學生只能看到的是什么服務可以使用及網絡通斷的情況,卻不能了解協議的詳細工作過程,特別是無法清楚掌握除應用層之外有什么協議參與工作、如何工作的,很多相關的教師都在教學過程中發現了這樣的問題,并設計了相應的協議分析實驗[2-5],但是都缺乏系統地對整個課程相應協議分析實驗的設計。為此,我們設計了基于Ethereal的網絡協議分析實驗[6-10],幫助學生從細節處更好地了解各個協議的工作原理、工作過程,從而達到輔助理論課教學的目的。
Ethereal(a network packet sniffing tool)是當前較為流行的一種計算機網絡調試和數據包嗅探軟件,它的工作原理類似于Tcpdump,但Ethereal 還具有設計完美的 GUI 和眾多分類信息及過濾選項的特點。用戶通過 Ethereal,同時將網卡設置為混合模式,就可以查看到網絡中發送的所有通信流量[11]。
Ethereal能夠識別500多種協議,其采用了協議樹的方式,對數據流中的各個層次的協議逐層處理。將最底層的無結構數據流作為根節點,具有相同父節點的協議成為兄弟節點。兄弟節點是根據協議的特征字來識別,每個協議會注冊自己的特征,而特征字可以是協議規范定義的任何一個字段,例如,有的協議特征字是端口號。由于采用了協議樹加特征字的設計,這個系統在協議解析上有了很強的擴展性,增加一個協議解析器只需要將解析函數掛到協議樹的相應節點上即可。
實驗利用計算機網絡實驗室現有的路由器以及交換機構建了實驗網絡拓撲結構圖,如圖1所示,服務器的操作系統采用Windows Server 2003,客戶端使用Windows XP。這樣的網絡環境在完成了局域網的相關服務器配置實驗以后,可以進行以下的協議分析實驗。如果無法達到這樣的實驗環境,直接通過客戶端主機接入Internet也可以完成實驗。

圖1 實驗網絡拓撲結構圖
本學院使用James F.Kurose的《計算機網絡——自頂向下方法》[12]一書作為理論課教材,而本文所設計的配套協議分析實驗根據教材的安排自頂向下,從應用層到鏈路層分層進行設計。根據學院的教學要求,為每層設計了相應的協議分析實驗來輔助理論課堂的教學,旨在幫助學生從細節更加深入地了解協議的原理,了解協議的設計。每層協議分析實驗內容如表1所示。

表1 每層的協議分析實驗內容
3.1 應用層協議的協議分析實驗設計
應用層協議位于TCP/IP協議族的最高層,是學生能夠直接面對、真實感受的協議層,雖然學生可以通過具體的應用來了解信息的發送,但是應用層協議的細節卻無法了解。為此,應用層協議分析實驗安排在應用層的相關服務器配置實驗完成以后,便于學生了解各個服務器具體的工作原理。我們主要針對Web服務、文件傳輸服務、郵件服務以及域名系統4類應用層服務來設計協議分析實驗。
3.1.1 Web服務協議分析實驗
HTTP是交互式的協議,協議的設計不是簡單地獲取HTTP的數據包,而是要根據HTTP的自身特點,它是一個基于對象的協議。因此,應該設計如表2所示的實驗內容。做實驗的時候需要注意,每次實驗前需要將瀏覽器的緩存清空,否則瀏覽器從緩存中獲取網頁信息將無法正確展示HTTP協議的工作過程。

表2 http協議的實驗設計
3.1.2 文件傳輸協議分析實驗
FTP是一個非常特殊的應用層協議,學生在學習FTP協議的過程中,需要詳細了解FTP的控制連接和數據連接。為此,在FTP實驗中,要求學生必須通過命令行登錄FTP服務器,并測試FTP服務器一系列命令。通過Ethereal抓包測試FTP登錄及FTP各種命令。
通過測試需要學生了解FTP的控制連接的建立過程,在什么命令發生的情況下,產生數據連接。因此在設計實驗的過程中,需要持續一段時間,將整個FTP會話過程的數據包都捕獲,才能有效地理解FTP的工作過程。在通過FTP協議進行數據傳輸時,必須先建立控制連接,再建立數據連接,明白其中的過程。
3.1.3 電子郵件服務協議分析實驗
大多數電子郵件客戶端允許用戶撰寫電子郵件并將其發到發件箱中,并接收新郵件到收件箱。大多數用戶都知道必須連接到因特網才能發送和接收郵件,但他們可能不知道網絡通信的細節。
發送郵件的過程和接收郵件的過程截然不同,它們甚至使用不同的應用層協議。電子郵件客戶端通常使用郵件傳送協議SMTP來發送郵件,并用郵局協議 POP接收郵件。因此首先要求學生在客戶端主機的outlook配置好相關信息,保證能夠正常接收和發送電子郵件。然后打開Ethereal捕獲發送和接收郵件的數據包。在數據包的分析中需要引導學生查看SMTP發送的3個基本步驟MAIL FROM、RCPT TO以及DATA。同時在郵件正文的數據包中查看郵件正文的格式,將理論課學習中的RFC822協議有效地結合起來,查看RFC822的各個標題行信息。
3.1.4 DNS協議分析實驗
DNS協議的學習過程中主要是學習、了解DNS的數據報的工作過程,以及在DNS服務器中存在緩存的時候,獲取的DNS應答報文發生的改變。
先將瀏覽器中的所有緩存信息清空,打開Ethereal,然后以域名訪問web服務器,接下來再重復以域名訪問web服務器,停止捕獲。分別在捕獲數據包中查看2次DNS解析所獲取的數據包的差異。
3.2 傳輸層協議的設計
傳輸層主要包括不可靠的UDP協議以及面向連接的可靠數據傳輸協議TCP。
3.2.1 UDP協議分析實驗
UDP協議相比TCP協議簡單很多,而且功能單一,因此UDP協議的設計更多地在于實驗完成后需要給學生提出一些相關問題,便于更好地了解UDP協議。
例如可以設計下面一些問題:
(1) UDP頭部有多少字段?
(2) UDP的length字段的含義是什么?是只包括頭部的長度還是整個UDP的長度?
(3) UDP的checksum如何計算?學生根據捕獲數據包的內容,進行手工計算。
(4) UDP使用的端口號和TCP使用端口號是否相同?
3.2.2 TCP協議分析實驗
TCP協議主要包括3部分實驗,TCP的連接管理、TCP的可靠傳輸、TCP的擁塞控制管理。
(1) TCP連接管理協議分析實驗。TCP連接管理包括TCP 3次握手建立連接以及TCP 4次握手釋放連接。打開Ethereal中的capture,開始截獲數據包,然后在瀏覽器中輸入網址的URL,打開一個網頁,最后關閉瀏覽器,停止數據包的截獲。通過這個實驗可以同時獲取TCP建立連接的數據包以及釋放連接的數據包。在截獲的3次握手的數據中,要求學生找到每次握手過程中的序號、確認號以及SYN字段的變化過程,還有應用層數據信息在什么時候開始發送。在釋放連接的數據包中,要求學生找到釋放連接的4次握手,以及握手過程中的序號、確認號以及FIN的變化過程。
(2) TCP可靠傳輸實驗協議分析實驗。TCP的可靠數據傳輸實驗重點是要求學生掌握,TCP的可靠傳輸的序號,確認號的變化過程以及定時器是如何設置的。為了根據有效的了解序號、確認號的變化過程,可以使用telnet協議完成該實驗。打開Ethereal開始截獲數據包,然后向telnet服務器建立連接,發送信息,停止數據包的截獲。先讓學生根據3次握手的過程,自己手工寫出在telnet傳輸過程中,各個數據包的序號和確認號的變化過程,然后再和數據報對應起來,了解TCP序號及確認號的變化情況。
(3) TCP擁塞控制分析實驗。TCP擁塞控制的過程,無法像前面的TCP實驗能非常精確地了解每個擁塞窗口的變化過程,但是可以通過Ethereal的statics->flow graph選項查看在擁塞控制下發送方發送的情況,如圖2所示。為了持續有效地了解,在進行TCP擁塞控制分析的實驗中,最好采用FTP應用,傳送一個較大的文件,才能在比較長的時間段觀察擁塞控制的過程。

圖2 Ethereal的flow graph結果圖
3.3 網絡層協議的設計
Internet的網絡層是TCP/IP協議族的核心,該層包含了眾多重要的協議,這部分的協議分析主要是IP、DHCP、NAT以及ICMP協議。
3.3.1 IP協議分析實驗
IP協議的實驗旨在讓學生了解IP數據報的傳送過程,因此可以使用“tracert”程序(linux操作系統為traceroute程序)來分析IP數據報從發送到接收的過程。
打開Ethereal,開始捕獲數據,然后在命令行中輸入tracert以及目的地址信息。等待tracert命令完成以后關閉Ethereal。讓學生查看每個數據報的頭部字段,發送的數據報和接收到的數據報的TTL字段存在什么差異。
3.3.2 DHCP協議分析實驗
為了能夠有效獲取DHCP數據報,需要通過一些命令的輔助。
(1) 在命令行中輸入ipconfig /release將當前自動獲取的IP配置信息釋放,主機IP地址將變為0.0.0.0。
(2) 打開Ethereal,開始捕獲數據。
(3) 在命令行中輸入ipconfig /renew重新向DCHP服務器申請獲取IP配置信息。
(4) 重復在命令行中輸入ipconfig /renew。
(5) 在命令行中輸入ipconfig /release,釋放當前配置。
(6) 第三次在命令行中輸入ipconfig /renew。
(7) 抓包結束。
重復進行操作的目的是要求學生從捕獲的數據包中進行分析,第二次輸入ipconfig /renew的時候只是在完成DCHP的續約過程,因為捕獲的數據包只有DCHP的request以及DHCP ACK報文。而通過ipconfig /release命令后將必須重新通過DHCP的4次握手獲取IP配置信息。
3.3.3 NAT協議分析實驗
NAT實驗環境配置中需要分別在外部網絡口和內部網絡同時捕獲數據包,Ethereal放置的位置如圖3所示。在外部抓包工具主機上可以捕獲到進行NAT轉換以后的數據包,而內網抓包工具主機可以捕獲NAT地址轉換之前的數據包。將2個不同位置截獲的數據包進行分析可以詳細了解NAT的轉換過程。

圖3 NAT實驗中抓包工具的放置圖
3.3.4 ICMP協議分析實驗
ICMP協議分析實驗最有效的是通過2個網絡命令ping和tracert。ping命令可以有效了解ICMP的查詢報文類型,而tracert可以了解ICMP的差錯報文類型。
ping命令的抓包實驗中,先打開Ethereal,然后在命令行中輸入ping -n 5 主機名(發送5個ICMP的查詢報文),等待ping命令完成以后結束捕獲。
traceroute命令的ICMP協議分析實驗,打開Ethereal,然后在命令行輸入tracert hostname,等待traceroute完成以后結束捕獲。在tracert實驗中需要學生詳細了解tracert返回得到的是什么類型的ICMP報文,和ping的ICMP報文類型存在什么差異?tracert的ICMP報文的數據字段由什么信息組成?每次發送的tracert的TTL字段有什么變化?
3.4 鏈路層協議的設計
鏈路層的學習重點包括2個部分ARP以及CSMA/CD協議,而協議分析工具的實驗主要針對ARP協議,了解ARP協議的工作過程。
(1) 在命令行中首先通過arp -a查看本機是否存在arp的緩存信息,如果存在緩存信息,如圖4所示,則在命令行中輸入arp -d刪除緩存中的信息;如果緩存中沒有任何信息,則可以直接開始抓包實驗。

圖4 通過arp命令查看本機的arp緩存信息
(2) 打開Ethereal,開始捕獲數據包。
(3) 在瀏覽器中輸入Web服務器的網址。
(4) 停止捕獲。
本文針對TCP/IP協議族的主要協議組織了12個協議分析實驗,從應用層到數據鏈路層,取得了很好的教學效果,學生通過協議分析實驗的學習和了解,可以快速地掌握協議的基本工作原理,從獲取的數據包中可以有效地查看各個數據包頭部的各種信息,有身臨其境的感覺。通過協議分析實驗的設計,有效地提高了計算機網絡課程理論知識的教學效果以及教學質量。
References)
[1] 周金玲,范冰冰,秦潔.基于WinPcap的網絡協議實驗的仿真實現[J].計算機應用與軟件, 2007,24(9): 218-221.
[2] 周斌,霍嚴梅,黃聲烈,等. 協議分析儀在計算機網絡教學改革上的應用[J].儀表技術, 2005(5):73-77.
[3] 毛文濤,王川.物聯網工程專業TCP/IP協議分析教學模式改革[J].計算機教育,2013(8):30-33.
[4] 耿奎,黃雪琴.基于軟件構建網絡協議分析實驗平臺[J].數字技術與應用,2011(4): 131-133.
[5] 周劍峰.基于WinPCap的計算機網絡協議實驗系統[J].實驗室研究與探索,2009,28(12):63-65.
[6] 宋碧蓉.基于Ethereal的網絡協議分析在網絡課程教學中的應用[J].電腦知識與技術, 2011, 7(11): 2521-2526.
[7] 余小華,劉志雄.基于包跟蹤的網絡實驗教學設計[J].實驗室研究與探索, 2009,28(5):67-71.
[8] 黃俊,韓玲莉,陳光平.基于協議數據包分析的計算機網絡課程教學方法探索[J]. 實驗室研究與探索, 2006,25(6):653-656 .
[9] 張巧榮,張斌.協議分析軟件在計算機網絡實驗教學中的應用[J].實驗室科學, 2010,l3(3):119-121.
[10] 李娟.基于協議分析的《計算機網絡》課程教學方法的研究[J].電腦知識與技術, 2011,7(10):2462-2464.
[11] 代光發,陳少平,朱翠濤.Ethereal在計算機網絡實驗教學中的應用[J].中南民族大學學報:自然科學版,2008,27(6):16-18.
[12] James F Kurose, Keith W Ross.計算機網絡:自頂向下方法[M].北京:高等教育出版社, 2009.
Design of experiments based on an Ethereal Protocol analysis
Ju Shenggen, Chen Li, Luo Xuechun, Zhou Gang, Shi Wei
(School of Computer Science, Sichuan University, Chengdu 610065, China)
Most of students are feeling boring in studying protocols and beyond understanding, which is hard to show them before their eyes, during the teaching of Computer Network course. Therefore the Ethereal, a protocol analysis tool, is put forward to help students realize the procedures of protocols effectively, grasp the theories of protocols and improve the quality and results of theoretical course.
network experiment; protocol analysis; Ethereal
2014- 06- 10 修改日期:2014- 06- 30
四川大學實驗技術立項資助項目(2013-79);四川大學教改立項項目(SCUY101);四川大學計算機學院實驗技術立項資助項目
琚生根(1970—),男,四川成都,博士,副教授,研究方向為智能信息處理,高校實驗室建設及實驗教學研究
陳黎(1977—),女,四川成都,博士,講師,研究方向為智能信息處理.
E-mail:jsg@scu.edu.cn
TP393;G423.07
A
1002-4956(2015)5- 0227- 05