結(jié)合我系計(jì)算機(jī)網(wǎng)絡(luò)課程的教學(xué)內(nèi)容, 設(shè)計(jì)了該實(shí)驗(yàn)指導(dǎo)書。實(shí)驗(yàn)內(nèi)容共分為5個(gè)實(shí)驗(yàn)環(huán)節(jié), 分別是動(dòng)手操作型實(shí)驗(yàn)、測(cè)試驗(yàn)證型實(shí)驗(yàn)、編程實(shí)現(xiàn)型驗(yàn)、設(shè)計(jì)規(guī)劃型實(shí)驗(yàn)和演示模擬型實(shí)驗(yàn); 力求使學(xué)生通過(guò)實(shí)驗(yàn)加深理解網(wǎng)絡(luò)基本概念、了解各項(xiàng)網(wǎng)絡(luò)服務(wù)配置原理和方法, 進(jìn)而設(shè)計(jì)和開發(fā)網(wǎng)絡(luò)通程序, 并通過(guò)對(duì)需要大量設(shè)備投入的實(shí)驗(yàn)進(jìn)行軟件模擬, 了解網(wǎng)絡(luò)相關(guān)設(shè)備的工作原理和實(shí)現(xiàn)方法。
本書是結(jié)合清華大學(xué)自動(dòng)化系計(jì)算機(jī)網(wǎng)絡(luò)課程的教學(xué)內(nèi)容,設(shè)計(jì)了該實(shí)驗(yàn)指導(dǎo)書。實(shí)驗(yàn)內(nèi)容共分為7個(gè)實(shí)驗(yàn)環(huán)節(jié),力求使學(xué)生通過(guò)這些實(shí)驗(yàn)加深理解網(wǎng)絡(luò)基本概念,了解各項(xiàng)網(wǎng)絡(luò)服務(wù)配置原理和方法,進(jìn)而設(shè)計(jì)和開發(fā)網(wǎng)絡(luò)通信程序,并通過(guò)對(duì)需要大量設(shè)備投入的實(shí)驗(yàn)進(jìn)行軟件模擬,了解網(wǎng)絡(luò)相關(guān)設(shè)備的工作原理和實(shí)現(xiàn)方法。
實(shí)驗(yàn)安排說(shuō)明
結(jié)合清華大學(xué)自動(dòng)化系計(jì)算機(jī)網(wǎng)絡(luò)課程的教學(xué)內(nèi)容,設(shè)計(jì)了該實(shí)驗(yàn)指導(dǎo)書。實(shí)驗(yàn)內(nèi)容共分為7個(gè)實(shí)驗(yàn)環(huán)節(jié),力求使學(xué)生通過(guò)這些實(shí)驗(yàn)加深理解網(wǎng)絡(luò)基本概念,了解各項(xiàng)網(wǎng)絡(luò)服務(wù)配置原理和方法,進(jìn)而設(shè)計(jì)和開發(fā)網(wǎng)絡(luò)通信程序,并通過(guò)對(duì)需要大量設(shè)備投入的實(shí)驗(yàn)進(jìn)行軟件模擬,了解網(wǎng)絡(luò)相關(guān)設(shè)備的工作原理和實(shí)現(xiàn)方法。
實(shí)驗(yàn)要求
1.預(yù)習(xí)實(shí)驗(yàn)指導(dǎo)書有關(guān)部分,做好實(shí)驗(yàn)內(nèi)容的準(zhǔn)備,就實(shí)驗(yàn)可能出現(xiàn)的情況提前做出思考。
2.實(shí)驗(yàn)過(guò)程中認(rèn)真進(jìn)行相關(guān)實(shí)驗(yàn)和測(cè)試,觀察出現(xiàn)的問(wèn)題,記錄主要情況,并做出必要說(shuō)明和分析。
3.編程實(shí)驗(yàn)要求提交源程序、程序設(shè)計(jì)文檔及用戶使用說(shuō)明。
4.在實(shí)驗(yàn)室進(jìn)行實(shí)驗(yàn),實(shí)驗(yàn)結(jié)束后,要求全部卸載實(shí)驗(yàn)中安裝的軟件。
5.認(rèn)真書寫實(shí)驗(yàn)報(bào)告。實(shí)驗(yàn)報(bào)告包括主要實(shí)驗(yàn)內(nèi)容,實(shí)驗(yàn)情況及其分析,并解答實(shí)驗(yàn)思考中的問(wèn)題。
實(shí)驗(yàn)一基本網(wǎng)絡(luò)操作命令
1.1實(shí)驗(yàn)?zāi)康?br />
1.2實(shí)驗(yàn)環(huán)境
1.3實(shí)驗(yàn)內(nèi)容
1.4實(shí)驗(yàn)要求
1.5實(shí)驗(yàn)思考
1.6附錄: 網(wǎng)絡(luò)常用命令
實(shí)驗(yàn)二常用網(wǎng)絡(luò)服務(wù)的配置
2.1實(shí)驗(yàn)簡(jiǎn)介
2.1.1實(shí)驗(yàn)?zāi)康?br />
2.1.2實(shí)驗(yàn)內(nèi)容
2.1.3實(shí)驗(yàn)環(huán)境
2.2DNS服務(wù)器的設(shè)置
2.2.1實(shí)驗(yàn)步驟
2.2.2實(shí)驗(yàn)思考
2.2.3附錄: 實(shí)驗(yàn)參考資料
2.3用Apache HTTP Server開設(shè)WWW服務(wù)
2.3.1實(shí)驗(yàn)環(huán)境
2.3.2實(shí)驗(yàn)步驟
2.3.3實(shí)驗(yàn)要求
2.3.4實(shí)驗(yàn)思考
2.3.5附錄: 實(shí)驗(yàn)參考資料
2.4架設(shè)FTP服務(wù)器
2.4.1實(shí)驗(yàn)環(huán)境
2.4.2實(shí)驗(yàn)內(nèi)容
2.4.3實(shí)驗(yàn)步驟
2.5DHCP服務(wù)器的配置
2.5.1實(shí)驗(yàn)?zāi)康?br />
2.5.2實(shí)驗(yàn)環(huán)境
2.5.3實(shí)驗(yàn)內(nèi)容
2.5.4實(shí)驗(yàn)思考
2.5.5附錄: 實(shí)驗(yàn)參考資料
實(shí)驗(yàn)三捕獲TCP數(shù)據(jù)包
3.1實(shí)驗(yàn)?zāi)康?br />
3.2實(shí)驗(yàn)環(huán)境
3.3實(shí)驗(yàn)內(nèi)容
3.4實(shí)驗(yàn)報(bào)告要求
3.5實(shí)驗(yàn)步驟
實(shí)驗(yàn)四HTTP抓包分析
4.1實(shí)驗(yàn)?zāi)康?br />
4.2實(shí)驗(yàn)內(nèi)容
4.3實(shí)驗(yàn)報(bào)告要求
4.4實(shí)驗(yàn)步驟
實(shí)驗(yàn)五DHCP抓包分析
5.1實(shí)驗(yàn)?zāi)康?br />
5.2實(shí)驗(yàn)環(huán)境
5.3實(shí)驗(yàn)內(nèi)容
5.4實(shí)驗(yàn)報(bào)告要求
5.5實(shí)驗(yàn)步驟
實(shí)驗(yàn)六DNS抓包分析
6.1實(shí)驗(yàn)?zāi)康?br />
6.2實(shí)驗(yàn)內(nèi)容
6.3實(shí)驗(yàn)報(bào)告要求
6.4實(shí)驗(yàn)步驟
實(shí)驗(yàn)七Socket編程實(shí)現(xiàn)網(wǎng)絡(luò)通信
7.1實(shí)驗(yàn)?zāi)康?br />
7.2實(shí)驗(yàn)要求
7.3實(shí)驗(yàn)內(nèi)容
7.3.1郵件發(fā)送客戶端實(shí)驗(yàn)(Simple SMTP)
7.3.2課后完成內(nèi)容: 帶身份驗(yàn)證的Simple SMTP
7.3.3UDP Ping實(shí)驗(yàn)
7.4注意事項(xiàng)
7.5實(shí)驗(yàn)結(jié)果
7.6實(shí)驗(yàn)思考與分析題
7.7附錄: 配置實(shí)驗(yàn)環(huán)境
7.7.1配置Java運(yùn)行環(huán)境
7.7.2在Eclipse中開發(fā)Java程序
7.7.3在Eclipse中使用調(diào)試器
致謝
實(shí)驗(yàn)三捕獲TCP數(shù)據(jù)包
3.1實(shí)驗(yàn)?zāi)康?br />
通過(guò)實(shí)驗(yàn)熟悉Wireshark抓包軟件的使用方法,理解TCP傳輸過(guò)程,以及慢啟動(dòng)、擁塞避免等相關(guān)技術(shù)。
3.2實(shí)驗(yàn)環(huán)境
操作系統(tǒng): 幾乎任意Windows版本。本實(shí)驗(yàn)是在Windows XP下實(shí)現(xiàn)的。
所需軟件: Wiresharkwin321.10.2。
3.3實(shí)驗(yàn)內(nèi)容
(1) 在Windows環(huán)境進(jìn)行Wireshark抓包。
(2) 在Windows環(huán)境Wireshark窗口中查看各種協(xié)議下的數(shù)據(jù)包。
(3) 在Windows環(huán)境上傳文件到服務(wù)器,同時(shí)觀察TCP傳輸過(guò)程。
3.4實(shí)驗(yàn)報(bào)告要求
按實(shí)驗(yàn)步驟完成所有實(shí)驗(yàn)內(nèi)容,回答實(shí)驗(yàn)思考題,并從實(shí)驗(yàn)結(jié)果中提取必要的圖表和分析數(shù)據(jù)來(lái)支持你對(duì)實(shí)驗(yàn)思考題的回答。
3.5實(shí)驗(yàn)步驟
1. Wireshark的安裝
Wireshark基本安裝過(guò)程與一般軟件安裝基本相同,均按默認(rèn)設(shè)置安裝即可。
2. 捕捉從自己PC到遠(yuǎn)程服務(wù)器的TCP傳輸
在開始探索TCP奧秘之前,需要用Wireshark軟件跟蹤從PC到遠(yuǎn)程服務(wù)器的TCP傳輸數(shù)據(jù)包。需要進(jìn)入一個(gè)網(wǎng)頁(yè),這個(gè)網(wǎng)頁(yè)允許輸入在PC上的一個(gè)文件的名字,然后利用HTTP POST方法將這個(gè)文件傳輸?shù)絎eb服務(wù)器(教材2.2.3節(jié))。用POST方法而不是GET方法,是因?yàn)橄胍獜腜C上傳輸大量數(shù)據(jù)到另外一臺(tái)PC。當(dāng)然,在做以上工作的時(shí)候,需要同時(shí)運(yùn)行Wireshark,以捕獲從PC上發(fā)送和接收到的TCP數(shù)據(jù)包。
需要進(jìn)行如下步驟:
(1) 準(zhǔn)備好Alice in Wonderland(《愛(ài)麗絲漫游奇境記》)的ASCII碼文檔,并以“(你的學(xué)號(hào)).txt”為文件名存入PC,如2004011000.txt。
文檔可以去下面鏈接下載http://166.111.180.60:8080/upload/alice.txt(將該網(wǎng)頁(yè)另存為txt文件)。
(2) 進(jìn)入http://166.111.180.60:8080/upload/Lab3.jsp,會(huì)看到如圖3.1所示的窗口。
圖3.1實(shí)驗(yàn)界面
單擊“瀏覽”按鈕進(jìn)入包含Alice in Wonderland文件的文件夾,先不要著急單擊“提交文件(學(xué)號(hào)).txt”按鈕。
(3) 用Wireshark開啟數(shù)據(jù)包捕捉。開始抓包之前,進(jìn)入Wirshark的Capture→Options,去掉Hide capture info dialog前面的“√”,以便在抓包過(guò)程中看到數(shù)據(jù)框,如圖3.2所示。
安裝好Wireshark后,選擇Capture→Start開始抓包。回到瀏覽器,單擊“提交文件(學(xué)號(hào)).txt”按鈕來(lái)上傳文件。一旦文件上傳成功,將會(huì)有一個(gè)祝賀信息出現(xiàn)。
為簡(jiǎn)單起見(jiàn),在開始運(yùn)行capture命令之前,可以先定義對(duì)數(shù)據(jù)包進(jìn)行捕捉的過(guò)濾器。具體操作如下: 選擇菜單capture→options,出現(xiàn)一個(gè)對(duì)話窗口,確認(rèn)Inferface項(xiàng)是否是當(dāng)前計(jì)算機(jī)的默認(rèn)網(wǎng)卡。
(4) 停止Wireshark數(shù)據(jù)包捕捉。你的Wireshark窗口會(huì)出現(xiàn)類似圖3.3的界面。
圖3.2Wireshark捕獲選項(xiàng)設(shè)置
圖3.3Wireshark捕獲結(jié)果
為方便分析數(shù)據(jù),可在左上角的過(guò)濾器(filter)工具欄中輸入“tcp.port == 8080”后按Enter鍵,即可初步篩選所需數(shù)據(jù)。
如果在網(wǎng)絡(luò)上Wireshark無(wú)法運(yùn)行,可以從網(wǎng)絡(luò)學(xué)堂上下載default_test文件。default_test是默認(rèn)的數(shù)據(jù)包追蹤文件,這個(gè)文件是在教師的計(jì)算機(jī)上按照上述操作步驟捕捉下來(lái)的。即使已經(jīng)成功捕捉到了自己的追蹤數(shù)據(jù)包并且已經(jīng)解讀,也會(huì)發(fā)現(xiàn)下載這個(gè)追蹤文件是很有幫助的,因?yàn)檫@樣可以幫助你更好地回答下面的思考題。
3. 查看捕獲的跟蹤
在分析TCP連接過(guò)程的細(xì)節(jié)之前,先來(lái)仔細(xì)查看一下跟蹤。首先,在Wireshark窗口上方的過(guò)濾器(filter)窗口輸入tcp,使得Wireshark的數(shù)據(jù)窗口中只顯示TCP數(shù)據(jù)包。在數(shù)據(jù)窗口中將看到下面的消息:
(1) 一系列往返于計(jì)算機(jī)和http://166.111.180.60:8080/之間的TCP和HTTP消息。在這些消息中,會(huì)看到包含SYN消息的初始的三次握手過(guò)程。
(2) 可能會(huì)看到從計(jì)算機(jī)發(fā)送到http://166.111.180.60:8080/的一個(gè)HTTP POST消息以及一系列的HTTP Continuation消息。
注意: 在之前的HTTP實(shí)驗(yàn)中沒(méi)有出現(xiàn)類似的HTTP Continuation消息,這是因?yàn)橛卸鄠(gè)TCP段在傳送一個(gè)HTTP消息,Wireshark用HTTP Continuation消息來(lái)表示這樣的情況。
(3) 從http://166.111.180.60:8080/返回到計(jì)算機(jī)的TCP ACK段。
注意報(bào)告要求:
在回答實(shí)驗(yàn)思考題時(shí),應(yīng)在答案中同時(shí)提交含有數(shù)據(jù)包以及跟蹤的打印輸出。在這些數(shù)據(jù)中添加注釋來(lái)對(duì)相應(yīng)的答案做出解釋。
一種打印數(shù)據(jù)包的途徑是: 選擇File→Print,選中output to file,將數(shù)據(jù)導(dǎo)出,然后打開文件,選擇回答問(wèn)題所需要的少量數(shù)據(jù)即可(即在Package Range選擇Displayed,而不是Captured),如圖3.4所示。
圖3.4Wireshark輸出選項(xiàng)設(shè)置
現(xiàn)在,改變Wireshark的“l(fā)isting of captured packets (已捕獲數(shù)據(jù)包清單)”窗口,使它忽略含有HTTP消息的TCP段信息。選擇Analyze→Enabled Protocols,去除HTTP前面復(fù)選框中的“√ ”,然后單擊OK按鈕。在此次實(shí)驗(yàn)中還要查看TCP的sequence numbers(不是Wireshark可能顯示的relative sequence numbers),選擇Edit→Preferences→Protocols→TCP,去除relative sequence numbers前面復(fù)選框中的“√ ”即可。事實(shí)上,Wireshark在新版本中已經(jīng)默認(rèn)將上述兩個(gè)復(fù)選框的“√ ”去除。
這就是需要查看的一系列往返于計(jì)算機(jī)和http://166.111.180.60:8080/之間的TCP段。我們將用這些捕獲到的數(shù)據(jù)包和跟蹤信息來(lái)完成此次實(shí)驗(yàn)。
4. 分析TCP數(shù)據(jù)包
回答以下有關(guān)TCP報(bào)文段的問(wèn)題:
(1) 客戶端電腦傳送文件到166.111.180.60的IP地址和端口是什么?從166.111.180.60接收文件的IP地址和端口是什么?
(2) 用來(lái)初始化客戶端電腦和166.111.180.60的TCP連接的TCP SYN報(bào)文段的序號(hào)是什么?在報(bào)文段中,哪個(gè)地方表明這是一個(gè)SYN報(bào)文段?
(3) 回復(fù)SYN報(bào)文段時(shí),由166.111.180.60發(fā)送的SYNACK報(bào)文段的序號(hào)是什么?在SYNACK報(bào)文段中的ACKnowledgement域的值是什么?166.111.180.60是如何確定這個(gè)值的?表明這個(gè)段是SYNACK的標(biāo)志位或者符號(hào)是什么?
(4) 包含HTTP POST命令的TCP段的序號(hào)是多少?注意,要找到POST命令,需要在Wireshark窗口的底部發(fā)掘這個(gè)數(shù)據(jù)包內(nèi)容域,找到一個(gè)在其DATA域中標(biāo)識(shí)有POST的段。
(5) 仔細(xì)思考一下作為TCP連接的*個(gè)包含HTTP POST的TCP報(bào)文段。TCP連接(包括包含HTTP POST的報(bào)文段)的開頭6個(gè)報(bào)文段的序號(hào)是多少?每個(gè)報(bào)文段都在什么時(shí)間發(fā)送?每個(gè)報(bào)文段接收到ACK的時(shí)間是多少?假定每個(gè)TCP報(bào)文段發(fā)送事件和收到其確認(rèn)信息的事件之間存在時(shí)間差,那么這6個(gè)報(bào)文段各自的RTT值是多少?接收到每個(gè)ACK之后的EstimatedRTT數(shù)值是多少?(參見(jiàn)課本160頁(yè))假設(shè)*個(gè)報(bào)文段的EstimatedRTT值等于其觀測(cè)到的RTT值,后續(xù)報(bào)文段的EstimatedRTT均按課本160頁(yè)方程計(jì)算。
……