計算機(jī)網(wǎng)絡(luò)DNS以及HTTP協(xié)議實驗報告
學(xué)生實驗報告姓名: 學(xué)號:班級: 指導(dǎo)老師:內(nèi)容摘要該實驗報告介紹了DNS 協(xié)議分析實驗和http 的相關(guān)分析。DNS 協(xié)議分析是通過nslookup 進(jìn)行域名解析
學(xué)生實驗報告
姓名: 學(xué)號:
班級: 指導(dǎo)老師:
內(nèi)容摘要
該實驗報告介紹了DNS 協(xié)議分析實驗和http 的相關(guān)分析。
DNS 協(xié)議分析是通過nslookup 進(jìn)行域名解析并通過協(xié)議分析軟件來分析DNS 協(xié)議的報文格式,如:DNS 中RR 格式的具體內(nèi)容,以及DNS 報文中事物標(biāo)號,報文類型,問題的個數(shù),回答RR 個數(shù),權(quán)威域名RR 數(shù),附加RR 數(shù),問題具體RR 數(shù),回答具體RR 數(shù),域名對應(yīng)的權(quán)威域名服務(wù)器的相關(guān)RR 和附加的具體RR 數(shù);
一、DNS 協(xié)議分析:
實驗?zāi)康?/p>
1. 學(xué)會客戶端使用nslookup 命令進(jìn)行域名解析
2. 通過協(xié)議分析軟件掌握DNS 協(xié)議的報文格式
實驗原理
連上internet 的PC 機(jī),并且安裝有協(xié)議分析軟件Wireshark 。
實驗原理及概況
1.DNS 解析過程:
(1) 當(dāng)客戶機(jī)提出查詢請求時,首先在本地計算機(jī)的緩存中查找,如果在本地?zé)o
法查詢信息,則將查詢請求發(fā)給DNS 服務(wù)器
(2) 首先客戶機(jī)將域名查詢請求發(fā)送到本地DNS 服務(wù)器,當(dāng)本地DNS 服務(wù)器接
到查詢后,首先在該服務(wù)器管理的區(qū)域的記錄中查找,如果找到該記錄,則進(jìn)行此記錄進(jìn)行解析,如果沒有區(qū)域信息可以滿足查詢要求,服務(wù)器在本地緩存中查找
(3) 如果本地服務(wù)器不能在本地找到客戶機(jī)查詢的信息,將客戶機(jī)請求發(fā)送到根
域名DNS 服務(wù)器
(4) 根域名服務(wù)器負(fù)責(zé)解析客戶機(jī)請求的根域名部分,它將包含下一級域名信息
的DNS 服務(wù)器地址地址返回給客戶機(jī)的DNS 服務(wù)器地址
(5) 客戶機(jī)的DNS 服務(wù)器利用根域名服務(wù)器解析的地址訪問下一級DNS 服務(wù)器,得到再下一級域名的DNS 服務(wù)器地址
(6) 按照上述遞歸方法逐級接近查詢目標(biāo),最后在有目標(biāo)域名的DNS 服務(wù)器上
找到相應(yīng)IP 地址信息
(7) 客戶機(jī)的本地DNS 服務(wù)器將遞歸查詢結(jié)構(gòu)返回客戶機(jī)
(8) 客戶機(jī)利用從本地DNS 服務(wù)器查詢得到的IP 訪問目標(biāo)主機(jī),就完成了一個
解析過程
(9) 同時客戶機(jī)本地DNS 服務(wù)器更新其緩存表,客戶機(jī)也更新期緩存表,方便
以后查詢 3. DNS處于IP 分層結(jié)構(gòu)的應(yīng)用層,是一種應(yīng)用層協(xié)議,DNS 協(xié)議數(shù)據(jù)單元 1
,封裝在UDP 數(shù)據(jù)報文中,DNS 服務(wù)器端使用公用端口號為53(使用UDP 協(xié)議0x11)
標(biāo)識字段:占用兩個字節(jié),由客戶程序設(shè)置,并由服務(wù)器返回結(jié)果 標(biāo)志字段:該字段占兩個字節(jié)長,被細(xì)分成8個字段:
QR :1bits 字段,0表示查詢報文,1表示響應(yīng)報文 Opcode:4bits 字段,通常值為0(標(biāo)準(zhǔn)查詢),其他值為1(反向查詢)和2(服務(wù)器狀態(tài)請求)
AA :1bits 標(biāo)志表示授權(quán)回答(authoritive answer), 該名字服務(wù)器是授權(quán)于該領(lǐng)域的 TC:1bits 字段,表示可截(truncated ),使用UDP 時,它表示當(dāng)應(yīng)答的總長度超過512字節(jié)時,只返回前512個字節(jié)
RD :1bits 字段,表示期望遞歸,該比特能在一個查詢中設(shè)置,并在一個響應(yīng)中返回,這個標(biāo)志告訴名字服務(wù)器必須處理這個查詢,也稱為一個遞歸查詢,如果該位為0,且被請求的名字服務(wù)器沒有一個授權(quán)回答,它就返回一個能解答該查詢的其他名字服務(wù)器列表,這稱為迭代查詢(期望遞歸)
RA :1bits 字段,表示可用遞歸,如果名字服務(wù)器支持遞歸查詢,則在響應(yīng)中將該bit 置為1(可用遞歸)
zero :必須為0
rcode :是一個4bit 的返回碼字段,通常值為0(沒有差錯)和3(名字差錯),名字差錯只有從一個授權(quán)名字服務(wù)器上返回,它表示在查詢中指定的域名不存在
隨后的4個bit 字段說明最后4個變長字段中包含的條目數(shù),對于查詢報文,問題數(shù)通常是1,其他三項為0,類似的,對于應(yīng)答報文,回答數(shù)至少是1,剩余兩項可以使0或非0 5. DNS查詢報文中每個查詢問題的格式
2
,查詢名:要查找的名字
查詢類:通常值為1,表示是互聯(lián)網(wǎng)的地址,也就是IP 協(xié)議族的地址
查詢類型:有很多種查詢類型,一般最常用的查詢類型是A 類型(表示查找域名對應(yīng)的IP 地址)和PTR 類型(表示查找IP 地址對應(yīng)的域名)
查詢名為要查找的名字,它由一個或者多個標(biāo)示符序列組成,每個標(biāo)示符已首字符字節(jié)數(shù)的計數(shù)值來說明該表示符長度,每個名字以0結(jié)束,計數(shù)字節(jié)數(shù)必須是0~63之間,該字段無需填充字節(jié),如:
gemine.tuc.noao.edu
實驗步驟
1. 打開Wireshark ,設(shè)置好過濾器
(1). 打開后選擇capture, 后選擇
interfaces;
(2).接著選擇有數(shù)據(jù)變動的網(wǎng)絡(luò)連接,后選option ;
(3)在Filter 里輸入udp
port 53;
2. 使用命令提示符輸入nslookup 查找www.sina.com 的IP 地址,
3
,分析Wireshark 捕獲的數(shù)據(jù)包;
具體分析如下:
1. 第一幀:由本地PC 機(jī)IP 地址為182.1.63.149發(fā)送報文給本地DNS 服務(wù)器219.229.240.19的反向查詢,用于查詢本地服務(wù)器的名字,具體協(xié)議如下:
4
,報文標(biāo)識為1;標(biāo)志為1;問題數(shù)1;回答數(shù)0;權(quán)威RR 為0;附加RR 為0;詢問IP 地址為219.229.240.19的權(quán)威域名,type 類型為PTR ;
第二幀是本地DNS 服務(wù)器響應(yīng)報文,包含了查詢結(jié)果,即本地DNS 服務(wù)器的名字:
權(quán)威回答數(shù)1;本地DNS 服務(wù)器的名字為dns.jxnu.edu.cn
附加RR 回答了本地域名服務(wù)器域名對應(yīng)的IP 地址;
第三幀用于客戶端發(fā)送給本地DNS 服務(wù)器的請求報文,用于請求www.baidu.com 的IP 地址
5
,第四幀是本地DNS 域名服務(wù)器的響應(yīng)報文,包含了回答www.baidu.com 的IP 地址
生存時間
別名
其中,權(quán)威RR 回答了IP 地址,別名等信息;
二、Http 協(xié)議分析:
6
,實驗?zāi)康?/p>
1. 分析http1.0和1.1之間的區(qū)別(持續(xù)連接和非持續(xù)連接,流水線和非流水線)。
2. 分析http 的請求報文和響應(yīng)報文的格式。
3. 驗證Web 緩存。
4. 驗證cookie 的存在。
5. 驗證http 的明文傳輸特性。
實驗原理
HTTP 是一個客戶端終端(用戶)和服務(wù)器端(網(wǎng)站)請求和應(yīng)答的標(biāo)準(zhǔn)(TCP )。通過使用Web 瀏覽器、網(wǎng)絡(luò)爬蟲或者其它的工具,客戶端發(fā)起一個HTTP 請求到服務(wù)器上指定端口(默認(rèn)端口為80)。我們稱這個客戶端為用戶代理程序(user agent)。應(yīng)答的服務(wù)器上存儲著一些資源,比如HTML 文件和圖像。我們稱這個應(yīng)答服務(wù)器為源服務(wù)器(origin server )。在用戶代理和源服務(wù)器中間可能存在多個中間層,比如代理,網(wǎng)關(guān),或者隧道(tunnel )。 盡管TCP/IP協(xié)議是互聯(lián)網(wǎng)上最流行的應(yīng)用,HTTP 協(xié)議中,并沒有規(guī)定必須使用它或它支持的層。事實上,HTTP 可以在任何互聯(lián)網(wǎng)協(xié)議上,或其他網(wǎng)絡(luò)上實現(xiàn)。HTTP 假定其下層協(xié)議提供可靠的傳輸。因此,任何能夠提供這種保證的協(xié)議都可以被其使用。因此也就是其在TCP/IP協(xié)議族使用TCP 作為其傳輸層。 通常,由HTTP 客戶端發(fā)起一個請求,創(chuàng)建一個到服務(wù)器指定端口(默認(rèn)是80端口)的TCP 連接。HTTP 服務(wù)器則在那個端口監(jiān)聽客戶端的請求。一旦收到請求,服務(wù)器會向客戶端返回一個狀態(tài),比如"HTTP/1.1 200 OK" ,以及返回的內(nèi)容,如請求的文件、錯誤消息、或者其它信息
注:取自維基百科
實驗步驟
1. 設(shè)置協(xié)議分析軟件Wireshark 的過濾器,只捕獲http 的報文;
1). 打開Wireshark 后選擇capture ,后選擇interfaces
2). 接著選擇有數(shù)據(jù)變動的網(wǎng)絡(luò)連接,后選擇option
3). 在Filter 里輸入
tcp port 80
7
,2. 打開瀏覽器,訪問不同的網(wǎng)站,抓取不同的http 報文,本實驗捕獲訪問百度網(wǎng)站www.baidu.com 進(jìn)行分析,在瀏覽器輸入網(wǎng)址后,點(diǎn)擊抓包按鈕,開始抓包
請求方式:GET ,HTTP 版本為1.1
瀏覽器類型是
MOZILA/5.0
8
,上傳瀏覽器緩存cookie 內(nèi)容為加密的用戶名,密碼等
狀態(tài)碼:200
回應(yīng)內(nèi)容:OK
時間2013年9月30日。。。
最終收到完
整的頁面
內(nèi)容的獲?。韩@取頁面文檔階段
9
,3. 登陸http://jwc.jxnu.edu.cn/檢測http 是否為明文登陸
4.Http1.0和Http1.1的區(qū)別
HTTP 1.0規(guī)定瀏覽器與服務(wù)器只保持短暫的連接,瀏覽器的每次請求都需要與服務(wù)器建立一個TCP 連接,服務(wù)器完成請求處理后立即斷開TCP 連接,服務(wù)器不跟蹤每個客戶也不記錄過去的請求。此外,由于大多數(shù)網(wǎng)頁的流量都比較小,一次TCP 連接很少能通過slow-start 區(qū),不利于提高帶寬利用率。
HTTP 1.1支持長連接(PersistentConnection )和請求的流水線(Pipelining )處理,在一個TCP 連接上可以傳送多個HTTP 請求和響應(yīng),減少了建立和關(guān)閉連接的消耗和延遲。例如:一個包含有許多圖像的網(wǎng)頁文件的多個請求和應(yīng)答可以在一個連接中傳輸,但每個單獨(dú)的網(wǎng)頁文件的請求和應(yīng)答仍然需要使用各自的連接。
HTTP 1.1還允許客戶端不用等待上一次請求結(jié)果返回,就可以發(fā)出下一次請求,但服務(wù)器端必須按照接收到客戶端請求的先后順序依次回送響應(yīng)結(jié)果,以保證客戶端能夠區(qū)分出每次請求的響應(yīng)內(nèi)容,這樣也顯著地減少了整個下載過程所需要的時間。
在HTTP/1.0中,要建立長連接,可以在請求消息中包含Connection: Keep-Alive頭域,如果服務(wù)器愿意維持這條連接,在響應(yīng)消息中也會包含一個Connection: Keep-Alive的頭域。同時,可以加入一些指令描述該長連接的屬性,如max ,timeout 等。
10