喬明秋+趙振洲



(北京政法職業學院)
摘 要:網絡協議是計算機網絡教學中重要的內容,同時也是不容易理解的教學難點。本文使用sniffer軟件,讓sniffer在真實網絡環境中截獲數據包,再利用sniffer解碼功能,詳細的展示了網絡數據包的具體內容,具體分析了ip協議的格式、tcp協議格式以及tcp協議傳輸的三次握手過程。其他協議也可以類似的進行分析。
關鍵詞:sniffer;ip協議;tcp協議
計算機網絡已成為人們工作、生活中必不可少的一部分,而計算機網絡的核心是網絡協議,網絡協議的教學一直是一個難點問題。本文通過將SnifferPro這一網絡探測和分析軟件引入到網絡協議教學中的實踐探究,給出了一種能直觀的理解和掌握網絡協議的方法。
1 Sniffer簡介
Sniffer,中文可以翻譯為嗅探器,也叫抓數據包軟件,是一種基于被動偵聽原理的網絡分析方式。使用這種技術方式,可以監視網絡的狀態、數據流動情況以及網絡上傳輸的信息。
如果使用Hub,即基于共享網絡的情況下,網絡上所有的機器都可以“聽”到通過的流量,但對不屬于自己的數據包則不予響應。如果某個工作站的網絡接口處于混雜模式,那么它就可以捕獲網絡上所有的數據包。
但是現代網絡常常采用交換機作為網絡連接設備樞紐,在通常情況下,交換機不會讓網絡中每一臺主機偵聽到其他主機的通訊,因此Sniffer技術在這時必須與網絡端口鏡像技術進行配合。而衍生的安全技術則是通過ARP欺騙來變相達到交換網絡中的偵聽。
2 Sniffer分析ip協議格式
Sniffer可以對在各種網絡上運行的400多種協議進行解碼,如TCP/IP、Novell Netware、DECnet、SunNFS、X-Windows、HTTP、TNS SLQ*Net v2(Oracle)、Banyan v5.0和v6.0、TDS/SQL(Sybase)、X.25、Frame Realy、PPP、Rip/Rip v2、EIGRP、APPN、SMTP等。還廣泛支持專用的網絡互聯橋/路由器的幀格式。
Sniffer可以在全部七層OSI協議上進行解碼,目前沒有任何一個系統可以做到對協議有如此透徹的分析;它采用分層方式,從最低層開始,一直到第七層,甚至對Oracle數據庫、SYBASE數據庫都可以進行協議分析;每一層用不同的顏色加以區別。下面就使用sniffer的解碼功能來分析IP協議和tcp協議的格式。
2.1 虛擬機環境設置
配置一臺虛擬機,通過橋接模式將虛擬機和物理機連接到同一個局域網,IP分別設置為192.168.1.102與192.168.1.104,并在虛擬機中安裝Sniffer軟件。選擇Capture菜單中的Defind Filter,選擇address項,在address欄里選擇“IP”,在station1和2中分別填寫兩臺機器的IP地址,選擇Advanced選項,選擇選IP/ICMP。
2.2 用Sniffer捕獲分析IP數據包
在Sniffer的工具欄中選擇上述新建的過濾器,點擊Start按鈕開始捕獲數據包,在真機的命令行窗口中執行ping虛擬機的命令。
點擊Sniffer工具欄中的Stop and Display按鈕,在界面中切換到Decode欄,如圖1所示。如圖1中的標注所示,界面中從上到下分為三部分。第一部分中的每一行對應一個發出或收到的ICMP數據包,選中一個具體的數據包后,可在第二、第三部分觀察到該數據包的IP報頭內容解析和字節流。第二部分是按協議結構解析出的IP報頭的各字段內容。第三部分是IP報頭的字節流內容,在第二部分中點擊選擇具體的某一協議字段后,其對應的字節流將在第三部分中高亮顯示。
2.3 結果分析
在圖1所示的Sniffer界面中,可以直觀地觀察到每一個IP報頭的解析結果。根據觀察到的協議中各字段的順序和長度,以4字節為單位,將IP協議結構歸納如表1所示。表1中,每行對應字節流中的4個字節,通過表1可形象地觀察到協議中各個字段在字節流中的分布。
3 Sniffer分析tcp協議
3.1 tcp協議的封裝格式
類似第2節的操作過程,可以在sniffer中截獲tcp數據包,如圖2所示。在圖2所示的Sniffer界面中,可以直觀地觀察到每一個TCP報頭的解析結果。根據觀察到的協議中各字段的順序和長度,以4字節為單位,將TCP協議結構歸納如表2所示。
3.2 tcp協議的三次握手
TCP協議的三次握手過程也可以在sniffer中直觀的看到,TCP第一次握手:192.168.1.104向192.168.1.10
2發送請求連接(SYN=1),如圖3所示。
TCP第二次握手:192.168.1.102回應192.168.1.104確認連接(ACK=1,SYN=1),如圖4所示。
同樣可以分析TCP第三次握手:192.168.1.104回應192.168.1.102(ACK=1)。
結束語
可見,通過在sniffer截獲數據包,可以清楚的看到每種協議對應數據包的具體內容,從而能夠更好的理解網絡協議和數據包的傳輸過程。這種方法對于學習網絡協議非常有效。
參考文獻
[1]趙北庚.虛擬機環境下基于Sniffer的ARP協議結構研究[J].數據技術與應用,2015年1月.
[2]葉恒舟.《TCP/IP協議分析》教學實踐與反思賀惠萍,教育教學論壇,2017年2月第8期.
[3]劉洪濤,張綱,程良倫.基于SnifferPro的虛擬實驗室構建[J].實驗室研究與探索,2011年8月.
[4]百度百科.
作者簡介:喬明秋(1982-),女,碩士研究生,主要研究領域為信息安全;趙振洲(1978-),男,碩士研究生,主要研究領域為數據恢復,信息安全。