實驗一 網絡常用命令的使用及DNS層次查詢、SMTP協議分析
利用分組嗅探器(ethereal)進行應用層協議分析
n 網絡常用命令的使用
1、windows命令
不同的操作系統要用不同的命令進入命令行界面。
在Win9x/Me的開始菜單中的運行程序中鍵入"command"命令,可進入命令行界面。在Win2000/NT的開始菜單中的運行程序中鍵入"cmd"命令,可進入命令行界面。
開始——〉運行——〉鍵入cmd命令或command命令——〉回車
進入了命令行操作界面(DOS窗口),在DOS窗口中只能用鍵盤來操作。如下所示:
2、網絡常用命令的作用與格式
了解和掌握網絡常用命令將會有助於更快地檢測到網絡故障所在,從而節省時間,提高效率。網絡命令數量比較多,在本次實驗中我們學習的網絡命令是為數不多的一些常用網絡命令。
由於每個網絡命令都有不同的作用,為了更好地掌握這些網絡常用命令應該了解這些命令的基本格式,基本格式如下:
網絡命令 參數1參數2參數3參數…
查看這些參數的方法是在網絡命令后加“/?”,如要查看ping命令的參數可以輸入ping/?顯示如下:
【實驗目的】
1、掌握網絡常用命令的使用;
2、利用網絡常用命令對網絡中常見現象進行分析判斷。
【實驗內容】
1、掌握PING命令的基本使用方法(包括參數的使用),對網絡常見故障利用命令進行分析判斷:
Ping是測試網絡聯接狀況以及信息包發送和接收狀況非常有用的工具,是網絡測試最常用的命令。Ping向目標主機(地址)發送一個回送請求數據包,要求目標主機收到請求后給予答復,從而判斷網絡的響應時間和本機是否與目標主機(地址)聯通。
如果執行Ping不成功,則可以預測故障出現在以下幾個方面:網線故障,網絡適配器配置不正確,IP地址不正確。如果執行Ping成功而網絡仍無法使用,那么問題很可能出在網絡系統的軟件配置方面,Ping成功只能保證本機與目標主機間存在一條連通的物理路徑。
命令格式:
ping IP地址或主機名 [-t] [-a] [-n count] [-l size]
常用參數含義:
-t不停地向目標主機發送數據;
-a 以IP地址格式來顯示目標主機的網絡地址 ;
-n count 指定要Ping多少次,具體次數由count來指定 ;
-l size 指定發送到目標主機的數據包的大小。
2、用Tracert命令用來顯示數據包到達目標主機所經過的路徑,並顯示到達每個節點的時間,分析網絡延時產生的原因。
Tracert命令用來顯示數據包到達目標主機所經過的路徑,並顯示到達每個節點的時間。命令功能同Ping類似,但它所獲得的信息要比Ping命令詳細得多,它把數據包所走的全部路徑、節點的IP以及花費的時間都顯示出來。該命令比較適用於大型網絡。
命令格式:
tracert IP地址或主機名 [-d][-h maximumhops][-j host_list] [-w timeout]
參數含義:
-d 不解析目標主機的名字;
-h maximum_hops 指定搜索到目標地址的最大跳躍數;
-j host_list 按照主機列表中的地址釋放源路由;
-w timeout 指定超時時間間隔,程序默認的時間單位是毫秒。
例如大家想要了解自己的計算機與目標主機www.163.com之間詳細的傳輸路徑信息,可以在MS-DOS方式輸入www.163.com。
如果我們在Tracert命令后面加上一些參數,還可以檢測到其他更詳細的信息,例如使用參數-d,可以指定程序在跟蹤主機的路徑信息時,同時也解析目標主機的域名。
3、利用Netstat命令了解網絡的整體使用情況。顯示當前正在活動的網絡連接的詳細信息,例如顯示網絡連接、路由表和網絡接口信息,統計目前總共有哪些網絡連接正在運行。
Netstat命令可以幫助網絡管理員了解網絡的整體使用情況。它可以顯示當前正在活動的網絡連接的詳細信息,例如顯示網絡連接、路由表和網絡接口信息,可以統計目前總共有哪些網絡連接正在運行。
利用命令參數,命令可以顯示所有協議的使用狀態,這些協議包括TCP協議、UDP協議以及IP協議等,另外還可以選擇特定的協議並查看其具體信息,還能顯示所有主機的端口號以及當前主機的詳細路由信息。
命令格式:
netstat [-r] [-s] [-n] [-a]
參數含義:
-a 顯示所有連接和偵聽端口。
-b 顯示在創建每個連接或偵聽端口時涉及的可執行程序。
在某些情況下,已知可執行程序承載多個獨立的組件,這些情況下,顯示創建連接或偵聽端口時涉及的組件序列。此情況下,可執行程序的名稱位於底部[]中,它調用的組件位於頂部,直至達到 TCP/IP。注意,此選項可能很耗時,並且在您沒有足夠權限時可能失敗。
-e 顯示以太網統計。此選項可以與 -s 選項結合使用。
-f 顯示外部地址的完全限定域名(FQDN)。
-n 以數字形式顯示地址和端口號。
-o 顯示擁有的與每個連接關聯的進程 ID。
-p proto 顯示 proto 指定的協議的連接;proto 可以是下列任何一個: TCP、UDP、TCPv6 或 UDPv6。如果與 -s 選項一起用來顯示每個協議的統計,proto 可以是下列任何一個: IP、IPv6、ICMP、ICMPv6、TCP、TCPv6、UDP或 UDPv6。
-r 顯示路由表。
-s 顯示每個協議的統計。默認情況下,顯示IP、IPv6、ICMP、ICMPv6、TCP、TCPv6、UDP 和 UDPv6的統計;-p 選項可用於指定默認的子網。
-t 顯示當前連接卸載狀態。
interval 重新顯示選定的統計,各個顯示間暫停的間隔秒數。
按 CTRL+C 停止重新顯示統計。如果省略,則 netstat將打印當前的配置信息一次。
4、利用IPCONFIG命令顯示所有當前的TCP/IP網絡配置值、刷新動態主機配置協議 (DHCP) 和域名系統 (DNS) 設置。 使用不帶參數的IPCONFIG顯示所有適配器的 IP 地址、子網掩碼、默認網關。
命令格式:
Ipconfig[/all][/batch file][/renew all][/release all][/renew n][/release n]
參數含義:
/? 顯示幫助信息
/all 顯示現時所有網絡連接的設置
/release 釋放某一個網絡上的IP位置
/renew 更新某一個網絡上的IP位置
/flushdns 把DNS解析器的暫存內容全數刪除
5、利用ARP確定對應IP地址的網卡物理地址。查看本地計算機或另一台計算機的ARP高速緩存中的當前內容。
在以太網協議中規定,同一局域網中的一台主機要和另一台主機進行直接通信,必須要知道目標主機的MAC地址。而在TCP/IP協議棧中,網絡層和傳輸層只關心目標主機的IP地址。這就導致在以太網中使用IP協議時,數據鏈路層的以太網協議接到上層IP協議提供的數據中,只包含目的主機的IP地址。於是需要一種方法,根據目的主機的IP地址,獲得其MAC地址。這就是ARP協議要做的事情。所謂地址解析(address resolution)就是主機在發送幀前將目標IP地址轉換成目標MAC地址的過程。
另外,當發送主機和目的主機不在同一個局域網中時,即便知道目的主機的MAC地址,兩者也不能直接通信,必須經過路由轉發才可以。所以此時,發送主機通過ARP協議獲得的將不是目的主機的真實MAC地址,而是一台可以通往局域網外的路由器的MAC地址。於是此后發送主機發往目的主機的所有幀,都將發往該路由器,通過它向外發送。這種情況稱為ARP代理(ARP Proxy)
命令格式:
arp[-a [InetAddr] [-N IfaceAddr]] [-g [InetAddr] [-N IfaceAddr]] [-d InetAddr [IfaceAddr]] [-s InetAddr EtherAddr [IfaceAddr]]
參數含義:
-a[ InetAddr] [ -N IfaceAddr] 顯示所有接口的當前 ARP 緩存表。要顯示特定 IP 地址的 ARP 緩存項,請使用帶有 InetAddr 參數的 arp -a,此處的 InetAddr 代表 IP 地址。如果未指定 InetAddr,則使用第一個適用的接口。要顯示特定接口的 ARP 緩存表,請將 -N IfaceAddr 參數與 -a 參數一起使用,此處的 IfaceAddr 代表指派給該接口的 IP 地址。-N 參數區分大小寫。
-g[ InetAddr] [ -N IfaceAddr] 與 -a 相同。
-d InetAddr [IfaceAddr] 刪除指定的 IP 地址項,此處的 InetAddr 代表 IP 地址。對於指定的接口,要刪除表中的某項,請使用 IfaceAddr 參數,此處的 IfaceAddr 代表指派給該接口的 IP 地址。要刪除所有項,請使用星號 (*) 通配符代替 InetAddr。
-s InetAddr EtherAddr [IfaceAddr] 向 ARP 緩存添加可將 IP 地址 InetAddr 解析成物理地址 EtherAddr 的靜態項。要向指定接口的表添加靜態 ARP 緩存項,請使用 IfaceAddr 參數,此處的 IfaceAddr 代表指派給該接口的 IP 地址。
/? 在命令提示符下顯示幫助。
6、課上補充講解其他網絡命令的使用。
【實驗方式】現場參觀並由實驗指導教師講解、演示;分組討論與實踐。
【實驗地點】學院實驗室。
【實驗報告】1 在實驗報告中寫出網絡常用命令的操作過程及效果,分析並總結實驗中遇到的問題,寫出實驗體會。
n 2 DNS層次查詢、SMTP協議分析
【實驗前需要學習掌握的知識】
1、掌握DNS基本構成原理及三層結構。
2、電子郵件系統的構成,包含在發送方、接收方進行郵件傳遞涉及的各種協議及協議構成,區分SMTP協議與郵件消息格式的異同點。
3、了解常用捕包軟件。捕包軟件不但可以分析數據包的流向,也可以對數據包的內容進行監聽,可以觀察TCP/IP協議族中應用層、傳輸層、網絡層、數據鏈路層和有關網絡安全的各種協議的活動。
【實驗目的】
1、了解和掌握DNS層次結構,利用NSLOOKUP命令對DNS層次結構進行訪問;
2、了解電子郵件系統發送及接受處理過程,對SMTP協議進行分析;
3、掌握捕包軟件ethereal的使用,了解網絡協議實體間進行交互以及報文交換的情況;
【實驗內容】
1、熟練掌握nslookup命令,並對nslookup命令的參數進行熟練掌握。
具體參數: nslookup –qt=類型 目標域名
注意qt必須小寫。類型可以是一下字符,不區分大小寫:
A 地址記錄(Ipv4)
AAAA 地址記錄(Ipv6)
AFSDB Andrew文件系統數據庫服務器記錄
ATMA ATM地址記錄
CNAME 別名記錄
HINFO 硬件配置記錄,包括CPU、操作系統信息
ISDN 域名對應的ISDN號碼
MB 存放指定郵箱的服務器
MG 郵件組記錄
MINFO 郵件組和郵箱的信息記錄
MR 改名的郵箱記錄
MX 郵件服務器記錄
NS 名字服務器記錄
PTR 反向記錄(從IP地址解釋域名)
RP 負責人記錄
RT 路由穿透記錄
SRV TCP服務器信息記錄
TXT 域名對應的文本信息
X25 域名對應的X.25地址記錄
實驗具體內容要求:到網上查找13個根名稱的IP;任選一個根名稱服務器,利用NSLOOKUP,在根名稱服務器、頂級域名稱服務器、權威名稱服務器上,手動逐級進行NDS解析,並進行記錄和分析;在本地名稱服務器,利用NSLOOKUP,手動逐級進行NDS解析,並進行記錄和分析。
2、 利用TELNET進行SMTP的郵件發送。
具體要求:連接smtp服務器->發命令"HELO <host_name>" ->發命令"AUTH LOGIN",然后服務器會以base64編碼后的形式提示輸入用戶名->以base64編碼后的形式輸入用戶名,如果用戶名合法,服務器提示輸入口令形式為“334 ******”->以base64編碼后的形式輸入口令。如果檢驗正確,服務器會返回"235 Authentication successful";編輯電子郵件(注意區分SMTP協議格式與郵件格式),利用SMTP協議進行收發電子郵件;觀察並分析收發過程及協議信息。編碼軟件見Centri64.zip。利用TELNET進行POP3郵件接收。
簡單示例:
TELENT 郵件服務器IP 25
HELO LIU
AUTH LOGIN
*******(輸入以base64編碼后用戶名)
***********(輸入以base64編碼后密碼)
MAIL FROM:<發送方的郵件地址>
RCPT TO:<接收方的郵件地址>
DATA
FROM:發送方郵箱
TO:接收方郵箱
SUBJECT:LIU
liuyang like Philatelic!
.(這個點與回車,必須的)
QUIT
3、熟練掌握抓包軟件ethereal。
要深入理解網絡協議,需要觀察它們的工作並使用它們,即觀察兩個協議實體之間交換的報文序列,探究協議操作的細節,使協議實體執行某些動作,觀察這些動作及其影響。這些任務可以在仿真環境下或在如因特網這樣的真實網絡環境中完成。
觀察在正在運行協議實體間交換報文的基本工具被稱為分組嗅探器(packet sniffer)。一個分組嗅探器俘獲(嗅探)由你的計算機發送和接收的報文。一般情況下,分組嗅探器將存儲和顯示出被俘獲報文的各協議字段的內容。圖1顯示了一個分組嗅探器的結構。
圖1右邊是計算機上正常運行的協議(w在這里是因特網協議)和應用程序(如:web瀏覽器和ftp客戶端)。分組嗅探器(虛線框中的部分)是附加計算機普通軟件上的,主要有兩部分組成。分組俘獲庫(packet capture library)接收計算機發送和接收的每一個鏈路層幀的拷貝。高層協議(如:HTTP、FTP、TCP、UDP、DNS、IP等)交換的報文都被封裝在鏈路層幀中,並沿着物理媒體(如以太網的電纜)傳輸。圖1假設所使用的物理媒體是以太網,並且上層協議的報文最終封裝在以太網幀中。
分組嗅探器的第二個組成部分是分組分析器。分組分析器用來顯示協議報文所有字段的內容。為此,分組分析器必須能夠理解協議所交換的所有報文的結構。例如:我們要顯示圖1中HTTP協議所交換的報文的各個字段。分組分析器理解以太網幀格式,能夠識別包含在幀中的IP數據報。分組分析器也要理解IP數據報的格式,並能從IP數據報中提取出TCP報文段。然后,它需要理解TCP報文段,並能夠從中提取出HTTP消息。最后,它需要理解HTTP消息。
Ethereal是一種可以運行在Windows, UNIX, Linux等操作系統上的分組分析器。Ethereal是免費的,可以從Http://www.ethereal.com得到。
運行ethereal程序時,其圖形用戶界面如圖2所示。最初,各窗口中並無數據顯示。ethereal的界面主要有五個組成部分:
命令菜單(command menus):命令菜單位於窗口的最頂部,是標准的下拉式菜單。最常用菜單命令有兩個:File、Capture。File菜單允許你保存俘獲的分組數據或打開一個已被保存的俘獲分組數據文件或退出ethereal程序。Capture菜單允許你開始俘獲分組。
俘獲分組列表(listing of captured packets):按行顯示已被俘獲的分組內容,其中包括:ethereal賦予的分組序號、俘獲時間、分組的源地址和目的地址、協議類型、分組中所包含的協議說明信息。單擊某一列的列名,可以使分組列表按指定列進行排序。在該列表中,所顯示的協議類型是發送或接收分組的最高層協議的類型。
分組首部明細(details of selected packet header):顯示俘獲分組列表窗口中被選中分組的頭部詳細信息。包括:與以太網幀有關的信息,與包含在該分組中的IP數據報有關的信息。單擊以太網幀或IP數據報所在行左邊的向右或向下的箭頭可以展開或最小化相關信息。另外,如果利用TCP或UDP承載分組,ethereal也會顯示TCP或UDP協議頭部信息。最后,分組最高層協議的頭部字段也會顯示在此窗口中。
分組內容窗口(packet content):以ASCII碼和十六進制兩種格式顯示被俘獲幀的完整內容。
顯示篩選規則(display filter specification):在該字段中,可以填寫協議的名稱或其他信息,根據此內容可以對分組列表窗口中的分組進行過濾。
實驗步驟
(1)啟動主機上的web瀏覽器。
(2)啟動ethereal。會看到如圖2所示的窗口,只是窗口中沒有任何分組列表。
(3)開始分組俘獲:選擇“capture”下拉菜單中的“Start”命令,會出現如圖3所示的“Ethereal: Capture Options”窗口,可以設置分組俘獲的選項。
(4)在實驗中,可以使用窗口中顯示的默認值。在“Ethereal: Capture Options”窗口的最上面有一個“interface”下拉菜單,其中顯示計算機所具有的網絡接口(即網卡)。當計算機具有多個活動網卡時,需要選擇其中一個用來發送或接收分組的網絡接口(如某個有線接口)。隨后,單擊“ok”開始進行分組俘獲,所有由選定網卡發送和接收的分組都將被俘獲。
(5)開始分組俘獲后,會出現如圖4所示的分組俘獲統計窗口。該窗口統計顯示各類已俘獲分組的數量。在該窗口中有一個“stop”按鈕,可以停止分組的俘獲。但此時最好不要停止俘獲分組。
(6)在運行分組俘獲的同時,在瀏覽器地址欄中輸入某網頁的URL,如:
http://www2.sdai.edu.cn為顯示該網頁,瀏覽器需要連接www2.sdai.edu.cn的服務器,並與之交換HTTP報文,以下載該網頁。包含這些HTTP報文的以太網幀將被Ethereal俘獲。
(7)當完整的頁面下載完成后,單擊Ethereal俘獲窗口中的stop按鈕,停止分組俘獲。此時,分組俘獲窗口關閉。Ethereal主窗口顯示已俘獲的你的計算機與其他網絡實體交換的所有協議報文,其中一部分就是與www2.sdai.edu.cn服務器交換的HTTP報文。此時主窗口與圖2相似。
(8)在顯示篩選規則中輸入“http”,單擊“apply”,分組列表窗口將只顯示HTTP協議報文。
(9)選擇分組列表窗口中的第一條http報文。它應該是你的計算機發向www2.sdai.edu.cn服務器的HTTP GET報文。當你選擇該報文后,以太網幀、IP數據報、TCP報文段、以及HTTP報文首部信息都將顯示在分組首部子窗口中。單擊分組首部詳細信息子窗口中向右和向下箭頭,可以最小化幀、以太網、IP、TCP信息顯示量,可以最大化HTTP協議相關信息的顯示量。其結果與圖5相似。
(10)退出Ethereal。
【實驗方式】由實驗指導教師講解、演示;分組討論與實踐。
【實驗地點】學院實驗室。
【實驗報告】在實驗報告中寫出DNS層次查詢的實現過程、利用SMTP協議實現接發郵件的過程、回答捕包實驗中所提問題。分析並總結實驗中遇到的問題,寫出實驗體會。
(1)列出在第7步中分組列表子窗口所顯示的所有協議類型。
(2)從發出HTTP GET報文到接收到HTTP OK響應報文共需要多長時間?(在默認的情況下,分組列表窗口中Time列的值是從Ethereal開始追蹤到分組被俘獲的總的時間數,以秒為單位。若要按time-of-day格式顯示Time列的值,需選擇View下拉菜單,再選擇Time Display Format,然后選擇Time-of-day。)
(3)你主機的IP地址是什么?你所訪問的主頁所在服務器的IP地址是什么?
(4)寫出兩個第9步所顯示的HTTP報文頭部行信息。
n
3利用ethereal分別對TCP套接字的實現及UDP套接字的實現捕包分析
安裝java虛擬機。熟悉捕包軟件的使用,進行相應的捕包。具體程序上課時拷貝。
TCP客戶端套接字程序1
import java.io.*;
import java.net.*;
class TCPClient{
public static void main(String argv[]) throws Exception
{
String sentence;
String modifiedSentence;
BufferedReader inFromUser =
new BufferedReader(
new InputStreamReader(System.in));
Socket ClientSocket = new Socket("你同學機器的IP",6789);
DataOutputStream outToServer =
new DataOutputStream(
ClientSocket.getOutputStream());
BufferedReader inFromServer =
new BufferedReader(new InputStreamReader(
ClientSocket.getInputStream()));
sentence =inFromUser.readLine();
outToServer.writeBytes(sentence + '\n');
modifiedSentence = inFromServer.readLine();
System.out.println("FROM SERVER:"+
modifiedSentence);
ClientSocket.close();
}
}
TCP服務器端套接字程序2
import java.io.*;
import java.net.*;
class TCPServer{
public static void main(String argv[]) throws Exception
{
String ClientSentence;
String capitalizedSentence;
ServerSocket welcomeSocket = new ServerSocket(6789);
while(true){
Socket connectionSocket = welcomeSocket.accept();
BufferedReader inFromClient =
new BufferedReader(new InputStreamReader(
connectionSocket.getInputStream()));
DataOutputStream outToClient =
new DataOutputStream(
connectionSocket.getOutputStream());
ClientSentence = inFromClient.readLine();
capitalizedSentence =
ClientSentence.toUpperCase() + '\n';
outToClient.writeBytes(capitalizedSentence);
}
}
}
UDP客戶端套接字程序3
import java.io.*;
import java.net.*;
class UDPClient {
public static void main(String args[]) throws Exception
{
BufferedReader inFromUser =
new BufferedReader(new InputStreamReader(System.in));
DatagramSocket clientSocket = new DatagramSocket();
InetAddress IPAddress = InetAddress.getByName("你同學機器的IP");
byte[] sendData = new byte[1024];
byte[] receiveData = new byte[1024];
String sentence = inFromUser.readLine();
sendData = sentence.getBytes();
DatagramPacket sendPacket =
new DatagramPacket(sendData, sendData.length,
IPAddress,9876);
clientSocket.send(sendPacket);
DatagramPacket receivePacket =
new DatagramPacket(receiveData, receiveData.length);
clientSocket.receive(receivePacket);
String modifiedSentence=
new String(receivePacket.getData());
System.out.println("FROM SERVER:" + modifiedSentence);
clientSocket.close();
}
}
UDP服務器端套接字程序4
import java.io.*;
import java.net.*;
class UDPServer {
public static void main(String args[]) throws Exception
{
DatagramSocket serverSocket = new DatagramSocket(9876);
byte[] receiveData = new byte[1024];
byte[] sendData = new byte[1024];
while(true)
{
DatagramPacket receivePacket =
new DatagramPacket(receiveData, receiveData.length);
serverSocket.receive(receivePacket);
String sentence = new String(receivePacket.getData());
InetAddress IPAddress = receivePacket.getAddress();
int port = receivePacket.getPort();
String capitalizedSentence = sentence.toUpperCase();
sendData = capitalizedSentence.getBytes();
DatagramPacket sendPacket =
new DatagramPacket(sendData, sendData.length,
IPAddress,port);
serverSocket.send(sendPacket);
}
}
}
n
4利用ethereal分析協議HTTP、FTP和DNS
一、 實驗目的
1、 分析HTTP協議
2、 分析DNS協議
二、 實驗環境
與因特網連接的計算機網絡系統;主機操作系統為windows;Ethereal、IE等軟件。
三、 實驗步驟
1、 HTTP GET/response交互
首先通過下載一個非常簡單的HTML文件(該文件非常短,並且不嵌入任何對象)。
(1) 啟動Web browser。
(2) 啟動Ethereal分組嗅探器。在窗口的顯示過濾說明處輸入“http”,分組列表子窗口中將只顯示所俘獲到的HTTP報文。
(3) 一分鍾以后,開始Ethereal分組俘獲。
(4) 在打開的Web browser窗口中輸入一下地址(瀏覽器中將顯示一個只有一行文字的非常簡單的HTML文件):
http://gaia.cs.umass.edu/ethereal-labs/HTTP-ethereal-file1.html
(5) 停止分組俘獲。
窗口如圖1所示。根據俘獲窗口內容,回答“四、實驗報告內容”中的1-6題。
圖1分組俘獲窗口
2、 HTTP 條件GET/response交互
(1) 啟動瀏覽器,清空瀏覽器的緩存(在瀏覽器中,選擇“工具”菜單中的“Internet選項”命令,在出現的對話框中,選擇“刪除文件”)。
(2) 啟動Ethereal分組俘獲器。開始Ethereal分組俘獲。
(3) 在瀏覽器的地址欄中輸入以下URL: http://gaia.cs.umass.edu/ethereal-labs/HTTP-ethereal-file2.html,你的瀏覽器中將顯示一個具有五行的非常簡單的HTML文件。
(4) 在你的瀏覽器中重新輸入相同的URL或單擊瀏覽器中的“刷新”按鈕。
(5) 停止Ethereal分組俘獲,在顯示過濾篩選說明處輸入“http”,分組列表子窗口中將只顯示所俘獲到的HTTP報文。
根據操作回答“四、實驗報告內容”中的7-10題。
3、 獲取長文件
(1) 啟動瀏覽器,將瀏覽器的緩存清空。
(2) 啟動Ethereal分組俘獲器。開始Ethereal分組俘獲。
(3) 在瀏覽器的地址欄中輸入以下URL: http://gaia.cs.umass.edu/ethereal-labs/HTTP-ethereal-file3.html,瀏覽器將顯示一個相當大的美國權力法案。
(4) 停止Ethereal分組俘獲,在顯示過濾篩選說明處輸入“http”,分組列表子窗口中將只顯示所俘獲到的HTTP報文。
根據操作回答“四、實驗報告內容”中的11-13題。
4、 嵌有對象的HTML文檔
(1) 啟動瀏覽器,將瀏覽器的緩存清空。
(2) 啟動Ethereal分組俘獲器。開始Ethereal分組俘獲。
(3) 在瀏覽器的地址欄中輸入以下URL: http://gaia.cs.umass.edu/ethereal-labs/HTTP-ethereal-file4.html,瀏覽器將顯示一個具有兩個圖片的短HTTP文件
(4) 停止Ethereal分組俘獲,在顯示過濾篩選說明處輸入“http”,分組列表子窗口中將只顯示所俘獲到的HTTP報文。
根據操作回答“四、實驗報告內容”中的14-15題。
5、 HTTP認證
(1) 啟動瀏覽器,將瀏覽器的緩存清空。
(2) 啟動Ethereal分組俘獲器。開始Ethereal分組俘獲。
(3) 在瀏覽器的地址欄中輸入以下URL: http://gaia.cs.umass.edu/ethereal-labs/protected_pages/HTTP-ethereal-file5.html,瀏覽器將顯示一個HTTP文件,輸入所需要的用戶名和密碼(用戶名:eth-students,密碼:networks)。
(4) 停止Ethereal分組俘獲,在顯示過濾篩選說明處輸入“http”,分組列表子窗口中將只顯示所俘獲到的HTTP報文。
根據操作回答“四、實驗報告內容”中的16-17題。
6、 跟蹤DNS
nslookup工具允許運行該工具的主機向指定的DNS服務器查詢某個DNS記錄。如果沒有指明DNS服務器,nslookup將把查詢請求發向默認的DNS服務器。其命令的一般格式是:
nslookup –option1 –option2 host-to-find dns-server
ipconfig命令用來顯示你當前的TCP/IP信息,包括:你的地址、DNS服務器的地址、適配器的類型等信息。如果,要顯示與主機相關的信息用命令:
ipconfig/all
如果查看DNS緩存中的記錄用命令:
ipconfig/displaydns
要清空DNS緩存,用命令:
ipconfig /flushdns
運行以上命令需要進入MSDOS環境。
(1) 利用ipconfig命令清空你的主機上的DNS緩存。
(2) 啟動瀏覽器,將瀏覽器的緩存清空。
(3) 啟動Ethereal分組俘獲器,在顯示過濾篩選說明處輸入“ip.addr==your_IP_address”(如:ip.addr==10.17.7.23),過濾器將會刪除所有目的地址和源地址都與指定IP地址不同的分組。
(4) 開始Ethereal分組俘獲。
(5) 在瀏覽器的地址欄中輸入:http://www.ietf.org
(6) 停止分組俘獲。
根據操作回答“四、實驗報告內容”中的18-24題。
(7) 開始Ethereal分組俘獲。
(8) 在www.mit.edu上進行nslookup(即執行命令:nslookup www.mit.edu)。
(9) 停止分組俘獲。
根據操作回答“四、實驗報告內容”中的25-28題。
(10) 重復上面的實驗,只是將命令替換為:nslookup –type=NS mit.edu
根據操作回答“四、實驗報告內容”中的29-31題。
(11) 重復上面的實驗,只是將命令替換為:nslookup www.aiit.or.kr bitsy.mit.edu
根據操作回答“四、實驗報告內容”中的32-34題。
四、 實驗報告內容(全部問題必須實際操作並思考,可以選做8道題)
在實驗的基礎上,回答以下問題:
(1)你的瀏覽器運行的是HTTP1.0,還是HTTP1.1?你所訪問的服務器所運行的HTTP版本號是多少?
(2)你的瀏覽器向服務器指出它能接收何種語言版本的對象?
(3)你的計算機的IP地址是多少?服務器gaia.cs.umass.edu的IP地址是多少?
(4)從服務器向你的瀏覽器返回的狀態代碼是多少?
(5)你從服務器上所獲取的HTML文件的最后修改時間是多少?
(6)返回到你的瀏覽器的內容以供多少字節?
(7)分析你的瀏覽器向服務器發出的第一個HTTP GET請求的內容,在該請求報文中,是否有一行是:IF-MODIFIED-SINCE?
(8)分析服務器響應報文的內容,服務器是否明確返回了文件的內容?如何獲知?
(9)分析你的瀏覽器向服務器發出的第二個“HTTP GET”請求,在該請求報文中是否有一行是:IF-MODIFIED-SINCE?如果有,在該首部行后面跟着的信息是什么?
(10)服務器對第二個HTTP GET請求的響應中的HTTP狀態代碼是多少?服務器是否明確返回了文件的內容?請解釋。
(11)你的瀏覽器一共發出了多少個HTTP GET請求?
(12)承載這一個HTTP響應報文一共需要多少個data-containing TCP報文段?
(13)與這個HTTP GET請求相對應的響應報文的狀態代碼和狀態短語是什么?
(14)你的瀏覽器一共發出了多少個HTTP GET請求?這些請求被發送到的目的地的IP地址是多少?
(15)瀏覽器在下載這兩個圖片時,是串行下載還是並行下載?請解釋。
(16)對於瀏覽器發出的最初的HTTP GET請求,服務器的響應是什么(狀態代碼和狀態短語)?
(17)當瀏覽器發出第二個HTTP GET請求時,在HTTP GET報文中包含了哪些新的字段?
(18)定位到DNS查詢報文和查詢響應報文,這兩種報文的發送是基於UDP還是基於TCP的?
(19)DNS查詢報文的目的端口號是多少?DNS查詢響應報文的源端口號是多少?
(20)DNS查詢報文發送的目的地的IP地址是多少?利用ipconfig命令(ipconfig/all)決定你主機的本地DNS服務器的IP地址。這兩個地指相同嗎?
(21)檢查DNS查詢報文,它是哪一類型的DNS查詢?該查詢報文中包含“answers”嗎?
(22)檢查DNS查詢響應報文,其中提供了多少個“answers”?每個answers包含哪些內容?
(23)考慮一下你的主機發送的subsequent(並發)TCP SYN分組, SYN分組的目的IP地址是否與在DNS查詢響應報文中提供的某個IP地址相對應?
(24)打開的WEB頁中包含圖片,在獲取每一個圖片之前,你的主機發出新的DNS查詢了嗎?
(25)DNS查詢報文的目的端口號是多少?DNS查詢響應報文的源端口號是多少?
(26)DNS查詢報文發送的目的地的IP地址是多少?這個地址是你的默認本地DNS服務器的地址嗎?
(27)檢查DNS查詢報文,它是哪一類型的DNS查詢?該查詢報文中包含“answers”嗎?
(28)檢查DNS查詢響應報文,其中提供了多少個“answers”?每個answers包含哪些內容?
(29)DNS查詢報文發送的目的地的IP地址是多少?這個地址是你的默認本地DNS服務器的地址嗎?
(30)檢查DNS查詢報文,它是哪一類型的DNS查詢?該查詢報文中包含“answers”嗎?
(31)檢查DNS查詢響應報文,其中響應報文提供了哪些MIT名稱服務器?響應報文提供這些MIT名稱服務器的IP地址了嗎?
(32)DNS查詢報文發送的目的地的IP地址是多少?這個地址是你的默認本地DNS服務器的地址嗎?如果不是,這個IP地址相當於什么?
(33)檢查DNS查詢報文,它是哪一類型的DNS查詢?該查詢報文中包含“answers”嗎?
(34)檢查DNS查詢響應報文,其中提供了多少個“answers”?每個answers包含哪些內容?
實驗二:利用分組嗅探器分析傳輸層與網絡層協議
利用分組嗅探器分析數據鏈路層協議
n 利用分組嗅探器分析傳輸層與網絡層協議
【實驗前需要學習掌握的知識】
1、詳細掌握TCP段結構。
2、詳細掌握UDP段結構。
3、IP數據報結構
【實驗目的】
1、了解傳輸層TCP/UDP協議構造;
2、了解網絡層IP協議構造;
【實驗內容】
1、對傳輸層協議TCP/UDP進行捕包分析並回答問題
俘獲大量的由本地主機到遠程服務器的TCP傳輸
(1)啟動瀏覽器,打開http://gaia.cs.umass.edu/ethereal-labs/alice.txt網頁,得到ALICE'S ADVENTURES IN WONDERLAND文本,將該文件保存到你的主機上。
(2)打開http://gaia.cs.umass.edu/ethereal-labs/TCP-ethereal-file1.html
窗口如下所示。
在Browse按鈕旁的文本框中輸入保存在你的主機上的文件ALICE'S ADVENTURES IN WONDERLAND的全名(含路徑),此時不要按“Upload alice.txt file”按鈕
(3)啟動Ethereal,開始分組俘獲。
(4)在瀏覽器中,單擊“Upload alice.txt file”按鈕,將文件上傳到gaia.cs.umass.edu服務器,一旦文件上傳完畢,一個簡短的賀詞信息將顯示在你的瀏覽器窗口中。
(5)停止俘獲。
瀏覽追蹤信息
(1)在顯示篩選規則中輸入“tcp”,你可以看到在你的主機和服務器之間傳輸的一系列的tcp和http報文,你應該能看到包含SYN報文的三次握手。也可以看到有你的主機向服務器發送的一個HTTP POST報文和一系列的“http continuation”報文。
(2)根據操作回答“實驗報告”中的1-2題。
TCP基礎
根據操作回答“實驗報告”中的3-9題
TCP擁塞控制
(1)在Ethereal已俘獲分組列表子窗口中選擇一個TCP 報文段。選擇菜單: Statistics->TCP Stream Graph-> Time-Sequence-Graph(Stevens)。你也許會看到如下所示的圖。
根據操作回答“實驗報告”中的10-11題。
2、對網絡層協議IP進行捕包分析
注意分析網絡層發送方和接收方IP地址關系,推薦采用對tracert命令進行捕包分析。
【實驗方式】實驗指導教師講解演示,每位同學上機實驗,並與指導教師討論。
【實驗地點】學院實驗室。
下載共享版本http://www.pingplotter.com/安裝pingplotter標准版(你有一個30天的試用期),通過對你所喜歡的站點執行一些traceroute來熟悉這個工具。ICMP回復請求消息的大小可以在pingplotter中設置:Edit->Options->Packet,在packet size字段中默認包的大小是56字節。pingplotter發送一系列TTL值漸增的包時,Trace時間間隔的值和間隔的個數在pingplotter中能夠設置。按下面步驟做:
1.打開Ethereal,開始包捕獲,然后在Ethereal包捕獲的選擇屏幕上點擊OK;
2.開啟pingplotter,然后在“Address to Trace”窗口輸入目的地目標的名字:
在“#of times to Trace”區域輸入3。然后選擇Edit->Options->Packet,確認在packet size字段的值為56,點OK。然后按下Trace按鈕。
3.接下來,發送一組具有較長長度的數據包,通過Edit->Options->Packet在包大小區域
輸入值為2000,點OK。接着按下Resume按鈕;
4.再發送一組具有更長長度的數據包,通過Edit->Options->Packet在包大小區域輸入值
為3500,點OK。接着按下Resume按鈕;
5.然后我們停止Ethereal tracing;
根據操作回答“實驗報告”中的12-25題
在實驗的基礎上,回答以下問題:(請在實驗報告中TCP與IP各5道題回答)
(1) 向gaia.cs.umass.edu服務器傳送文件的客戶端主機的IP地址和TCP端口號是多少?
(2) Gaia.cs.umass.edu服務器的IP地址是多少?對這一連接,它用來發送和接收TCP報文段的端口號是多少?
(3) 客戶服務器之間用於初始化TCP連接的TCP SYN報文段的序號(sequence number)是多少?在該報文段中,是用什么來標示該報文段是SYN報文段的?
(4) 服務器向客戶端發送的SYNACK報文段序號是多少?該報文段中,ACKnowledgement字段的值是多少?Gaia.cs.umass.edu服務器是如何決定此值的?在該報文段中,是用什么來標示該報文段是SYNACK報文段的?
(5) 包含HTTP POST命令的TCP報文段的序號是多少?
(6) 考慮在TCP連接中含有HTTP POST並把它作為第一個片段的TCP片段。在TCP連接(包括含有HTTP POST的片段)中最先的六個片段的序列號是多少?每一個片段是什么時候發送的?每一個片段接收到ACK是什么時候?請給出每一個TCP片段發送和確認被收到時的間隔,即六個片段中的每一個RTT值是多少?當接收到每一個ACK時的EstimatedRTT值是多少?假設對於第一個片段來說,EstimatedRTT值和標准的RTT值相同。
EstimatedRTT=(1-α)*EstimatedRTT+α*SampleRTT (假設α=0.125)可以知道如何計算即可
(7) 前六個TCP報文段的長度各是多少?
(8) 在整個跟蹤過程中,接收端公示的最小的可用緩存空間是多少?限制發送端的傳輸以后,接收端的緩存是否仍然不夠用?
(9) 在跟蹤文件中是否有重傳的報文段?進行判斷的依據是什么?
(10) 利用Time-Sequence-Graph(Stevens) plotting工具,瀏覽由客戶端向服務器發送的報文段序號和時間對應關系圖。你能否辨別出TCP慢啟動階段的起止,以及在何處轉入避免擁塞階段?
(11) 闡述所測量到的數據與TCP理想化的行為有何不同?
(12) 選擇你的電腦所發送的第一個ICMP請求消息,在包詳細信息窗口擴展包的Internet協議部分。你的電腦的IP地址是多少?
(13) 在IP包頭部,上層協議區域的值是多少?
(14) IP頭部有多少字節?IP數據包的有效載荷是多少字節?解釋你是怎樣確定有效載荷的數量的?
(15) 這個IP數據包被分割了嗎?解釋你是怎樣確定這個數據包是否被分割?接下來單擊列名按IP源地址排序數據包,選擇你的電腦發送的第一個ICMP請求消息,擴展顯示IP協議的數據。
(16) 在包捕獲列表窗口,你能看到在第一個ICMP下的所有並發的ICMP消息嗎?
(17) 往同一IP的數據包哪些字段在改變,而且必須改變?為什么?哪些字段是保持不變的,而且必須保持不變?
(18) 描述一下在IP數據包的Identification字段的值是什么樣的?
接下來找到通過最近的路由器發送到你的電腦去的ICMP的TTL溢出回復的系列,回答以下問題:
(19) Identification字段和TTL字段的值是多少?
(20) 所有的通過最近的路由器發送到你的電腦去的ICMP的TTL溢出回復是不是值都保持不變呢?為什么?
接下去研究一下分片,先按時間順序排序數據包,找出在pingplotter中把包的大小改成2000后,你的電腦所發送的第一個ICMP請求消息。回答以下問題:
(21) 那個消息是否傳送多於一個IP數據包的分片?看第一個被分割的IP數據包的片段,在IP頭部有什么信息指出數據包已經被分割?在IP頭部有什么信息指出這是否是第一個與后面片段相對的片段?這個IP數據包的長度是多少?
(22) 看被分割的IP數據包的第二個片段。在IP頭部有什么信息指出這不是第一個數據包片段?有更多的片段嗎?你是怎么知道的?和上一個分片的長度加起來是2000嗎?
(23) 哪個字段在第一個和第二個片段之間的IP頭部改變了?Identification變了嗎
再找出在pingplotter中把包的大小改成3500后,你的電腦所發送的第一個ICMP請求消息。回答以下問題:
(24) 從原始的數據包中產生了多少片段?片偏移分別為多少?
(25) 在片段之中IP頭部哪些字段改變了?Identification變了嗎?
n
利用分組嗅探器分析數據鏈路層協議
【實驗前需要學習掌握的知識】
以太網報頭中的前兩個字段是以太網的源地址和目的地址。目的地址為全1的特殊地址是廣播地址。電纜上的所有以太網接口都要接收廣播的數據幀。
兩個字節長的以太網幀類型表示后面數據的類型。對於ARP請求或應答來說,該字段的值為0x0806。
hardware (硬件)和protocol (協議)用來描述ARP分組中的各個字段。例如,一個ARP請求分組詢問協議地址(這里是IP地址)對應的硬件地址(這里是以太網地址)。
硬件類型字段表示硬件地址的類型。它的值為1即表示以太網地址。協議類型字段表示要映射的協議地址類型。它的值為0x0800即表示IP地址。它的值與包含IP數據報的以太網數據幀中的類型字段的值相同,這是有意設計的。
接下來的兩個1字節的字段,硬件地址長度和協議地址長度分別指出硬件地址和協議地址的長度,以字節為單位。對於以太網上IP地址的ARP請求或應答來說,它們的值分別為6和4。
操作字段指出四種操作類型,它們是ARP請求(值為1)、ARP應答(值為2)、R ARP請求(值為3)和R ARP應答(值為4)。這個字段必需的,因為ARP請求和ARP應答的幀類型字段值是相同的。
接下來的四個字段是發送端的硬件地址(在本例中是以太網地址)、發送端的協議地址(IP地址)、目的端的硬件地址和目的端的協議地址。注意,這里有一些重復信息:在以太網的數據幀報頭中和ARP請求數據幀中都有發送端的硬件地址。
對於一個ARP請求來說,除目的端硬件地址外的所有其他的字段都有填充值。當系統收到一份目的端為本機的ARP請求報文后,它就把硬件地址填進去,然后用兩個目的端地址分別替換兩個發送端地址,並把操作字段置為2,最后把它發送回去。
【實驗目的】
了解數據鏈路層協議構造
【實驗內容】
對數據鏈路層協議進行捕包分析並回答問題
俘獲並分析以太網幀
(1)清空瀏覽器緩存(在IE窗口中,選擇“工具/Internet選項/刪除文件”命令)。
(2)啟動Ethereal,開始分組俘獲。
(3)在瀏覽器的地址欄中輸入:http://gaia.cs.umass.edu/ethereal-labs/HTTP-ethereal-file3.html,瀏覽器將顯示冗長的美國權力法案。
(4)停止分組俘獲。首先,找到你的主機向服務器gaia.cs.umass.edu發送的HTTP GET報文的分組序號,以及服務器發送到你主機上的HTTP 響應報文的序號。其中,窗口大體如下。
選擇“Analyze->Enabled Protocols”,取消對IP復選框的選擇,單擊OK。窗口如下。
(5)選擇包含HTTP GET報文的以太網幀,在分組詳細信息窗口中,展開Ethernet II信息部分。根據操作,回答“實驗報告”中的1-5題
(6)選擇包含HTTP 響應報文第一個字節的以太網幀,根據操作,回答“實驗報告”中的6-10題
ARP分析
(1)利用MS-DOS命令:arp 或 c:\windows\system32\arp查看主機上ARP緩存的內容。根據操作,回答“實驗報告”中的11題。
(2)利用MS-DOS命令:arp-d * 清除主機上ARP緩存的內容。
(3)清除瀏覽器緩存。
(4)啟動Ethereal,開始分組俘獲。
(5)在瀏覽器的地址欄中輸入:http://gaia.cs.umass.edu/ethereal-labs/ HTTP-ethereal-lab-file3.html,瀏覽器將顯示冗長的美國權力法案。
(6)停止分組俘獲。選擇“Analyze->Enabled Protocols”,取消對IP復選框的選擇,單擊OK。窗口如下。根據操作,回答“實驗報告”中的12-15題。
計算機網絡與通信實驗報告(二) |
||||||
學 號 |
姓 名 |
班 級 |
報告日期 |
|||
|
|
|
|
|||
實驗內容 |
實驗二 利用分組嗅探器分析傳輸層與網絡層協議 利用分組嗅探器分析數據鏈路層協議 |
|||||
實驗目的 |
|
|||||
實驗預備知識 |
|
|||||
實驗過程描述 |
|
|||||
實驗結果 |
|
|||||
實驗當中問題 及解決方法 |
1、
2、
|
|||||
成績(教師打分) |
優秀 |
良好 |
及格 |
不及格 |
計算機網絡與通信實驗報告(一) |
||||||
學 號 |
姓 名 |
班 級 |
報告日期 |
|||
|
|
|
|
|||
實驗內容 |
實驗一 網絡常用命令的使用及DNS層次查詢、SMTP協議分析 利用分組嗅探器(ethereal)進行應用層協議分析 一:網絡常用命令的使用及DNS層次查詢、SMTP協議分析;利用分組嗅探器(ethereal)進行應用層協議分析 二:DNS層次查詢、SMTP協議分析 三:利用ethereal分別對TCP套接字的實現及UDP套接字的實現捕包分析 四:利用ethereal分析協議HTTP、FTP和DNS |
|||||
實驗目的 |
一:學習網絡常用命令的使用和分析; 二:1、了解和掌握DNS層次結構,利用NSLOOKUP命令對DNS層次結構進行訪問; 2、了解電子郵件系統發送及接受處理過程,對SMTP協議進行分析; 3、掌握捕包軟件ethereal的使用,了解網絡協議實體間進行交互以及報文交換的情況; 三:學會使用ethereal軟件分別對TCP套接字的實現及UDP套接字的實現捕包和分析,了解TCP和UDP的區別; 四:對HTTP、FTP和DNS有基本的認識,學會分析HTTP協議和DNS協議;
|
|||||
實驗預備知識 |
一:1.了解cmd窗口的基本使用 2、網絡常用命令的用法 3、計算機的基本操作 二:1、掌握DNS基本構成原理及三層結構。 2、電子郵件系統的構成,包含在發送方、接收方進行郵件傳遞涉及的各種協議及協議構成,區分SMTP協議與郵件消息格式的異同點。 3、了解常用捕包軟件。捕包軟件不但可以分析數據包的流向,也可以對數據包的內容進行監聽,可以觀察TCP/IP協議族中應用層、傳輸層、網絡層、數據鏈路層和有關網絡安全的各種協議的活動。 三:配置Java編程環境,掌握JDK和編輯器的基本操作,安裝java虛擬機。熟悉捕包軟件的使用,進行相應的捕包操作,具體程序使用現成的。 四:1.實驗環境:與因特網連接的計算機網絡系統;主機操系系統為windows;Ethereal、IE等軟件;
3.Ethereal軟件的基本使用; |
|||||
實驗過程描述 |
一.網絡常用命令的使用 1、在網上搜索並學習了ping命令的基本使用方法(包括參數的使用),對網絡常見故障利用命令進行了解 2、用tracert命令用來顯示數據包到達目標主機所經過的路徑,並顯示到達每個節點的時間,分析網絡延時產生的原因。 3、利用netstat命令了解網絡的整體使用情況。顯示當前正在活動的網絡連接的詳細信息,例如顯示網絡連接、路由表和網絡接口信息,統計目前總共有哪些網絡連接正在運行。 4、利用ipconfig命令顯示所有當前的TCP/IP網絡配置值、刷新動態主機配置協議 (DHCP) 和域名系統 (DNS) 設置。 使用不帶參數的IPCONFIG顯示所有適配器的 IP 地址、子網掩碼、默認網關。 5、利用ARP確定對應IP地址的網卡物理地址。查看本地計算機或另一台計算機的ARP高速緩存中的當前內容。 6、在網上了解相關其它知識 二、DNS層次查詢、SMTP協議分析 1.DNS層次查詢 (1)掌握nslookup命令使用方法,並對nslookup命令的參數進行熟練掌握。 (2)手動逐級進行NDS解析 先上維基查詢13個根域名 嘗試了兩個ns.internic.net和ns.nasa.gov 只有后者能夠有相關答復,問題在於逐步解析DNS 通過查詢相關文章,發現很多博客都會使用dig命令去進行循環解析,使用nslookup的區別在於要自己找到所回復的信息中下一級的服務器ip然后逐步查詢最后得到結果。 2、利用TELNET進行SMTP的郵件發送。 連接smtp服務器->發命令"HELO zeze" ->發命令"AUTH LOGIN",然后服務器以base64編碼后的形式提示輸入用戶名->以base64編碼后的形式輸入用戶名,如果用戶名合法,服務器提示輸入口令->以base64編碼后的形式輸入口令。服務器返回"235 Authentication successful";編輯電子郵件,利用SMTP協議進行收發電子郵件;觀察並分析收發過程及協議信息。 3.按照教程使用Ethereal軟件,關閉多余進程,開始打開網頁捕包,停止捕包。 三、三、利用ethereal分別對TCP套接字的實現及UDP套接字的實現捕包分析 搭建配置java運行環境,java IDE ,學會命令Java運行和Javac編譯-->運行程序進行分析; 四、利用ethereal分析協議HTTP、FTP和DNS 按照實驗說明里的詳細步驟依次操作,進行HTTP GET/response交互,HTTP 條件GET/response交互,獲取長文件,HTTP認證,跟蹤DNS |
|||||
實驗結果 |
一、網絡常用命令的使用 1.ping命令:
2.tracert命令
第1級路由是本地網關,第9級到第10級路由延時驟增,原因是分組正在經過海底光纜通向國外,之后的延時都比較大,超時現象也比較嚴重,此時的分組已經到達了國外,在國外的路由器上進行轉發。 3.Ipconfig命令
4.netstat命令
查看路由表:
5.arp命令:
二、 DNS層次查詢、SMTP協議分析 1.DNS層次查詢 嘗試了兩個ns.internic.net和ns.nasa.gov 查詢到根域名192.203.230.10,頂級域名192.55.83.30 權威名稱服務器180.76.76.92 2.利用TELNET進行SMTP的郵件發送 以下是使用telnet和smtp實現郵件發送過程中使用的所有語句,根據提示按步調用語句 telnet smtp.hit.edu.cn 25 helo zeze auth login Sadsadsadsadsaxxxxx Asdsadasdxxxxxxxx MAIL FROM:<170400211@stu.hit.edu.cn> RCPT TO:<470057867@qq.com> data From:170400211@stu.hit.edu.cn To:470057867@qq.com Subject:test hello guys I am zeze good night .(點不能忘記) 3.訪問哈工大校園網站www.hitwh.edu.cn IP 為222.194.15.6 本機IP為 172.26.26.3
從打開到加載完畢所花費的時間為0.259298S
三:利用ethereal分別對TCP套接字的實現及UDP套接字的實現捕包分析 由於沒有先運行服務器導致了連接超時:
成功連接之后的結果:
客戶端:
服務器端:
UDP 補包:
四:利用ethereal分析協議HTTP、FTP和DNS (1)打開簡單html補包
·瀏覽器和所訪問的服務器運行的都是HTTP1.1 ·zh-Hans-CN、zh-Hans; ·我的ip:10.241.7.201 服務器ip:128.119.245.12 ·200 ok ·Sat, 26 Oct 2019 05:40:02 2019.10.26 5:40:02 ·126 (2)
服務器明確了返回文件的內容 從報文中的Reassembled TCP Segments中可以得知 存在一行IF-MODIFIED-SINCE 該行后面跟的是需要返回的文件名 304 not modified 沒有明確地返回文件的內容 總的字節只有293byte 而第一次返回的有784byte 並且在返回的內容內沒有明確的Line-based text data部分
一共發出了兩次請求
200 OK
一共發出了四次get請求 128.119.245.12 159.182.31.51 並行下載 這樣可以不用每次都建立TCP連接,縮短下載時間
401 Unauthorized(text/html) Authorization: Basic ZXRoLXN0dWRlbnRzOm5ldHdvcms=\r\n
基於UDP協議 目的端口號53 查詢端口號56715 64118
地址相同 A類型:指向ipv4地址和AAAA類型:指向ipv6地址 查詢報文中不包含answer
三個answers
與其中一個answer中提供的ip地址相同 沒有發出新的DNS 發出一個NS類型的是用於解析域名不是用於下載圖片。
53 49746 192.168.43.1 是默認的本地DNS服務器地址 A類型 和 AAAA類型 沒有answers 三個 answers 每個answers包含 Name、 Type、 Class 、Time to live、Data length、 Primary name
192.168.43.1 是默認的本地DNS服務器地址 NS類型的DNS查詢 不包含answers
不包含ip地址
IP是: 240e:ba:c01a:ea93: 不是默認dns服務器地址 相當於 默認dns服務器地址對應的ipv6版本 A類型和AAAA類型的查詢報文 查詢報文中不包含answers A類型的回應報文中有answers AAAA的回應報文中不存在answers 問題回答: (1)你的瀏覽器運行的是HTTP1.0,還是HTTP1.1?你所訪問的服務器所運行的HTTP版本號是多少? 答:通過控制面板的Internet選項-高級發現支持1.1 (4)從服務器向你的瀏覽器返回的狀態代碼是多少? 答:500 (3)你的計算機的IP地址是多少?服務器gaia.cs.umass.edu的IP地址是多少? 答:本機IP地址會變動,通過ping命令查到服務器地址是128.119.245.12 (9)分析你的瀏覽器向服務器發出的第二個“HTTP GET”請求,在該請求報文中是否有一行是:IF-MODIFIED-SINCE?如果有,在該首部行后面跟着的信息是什么? 答:沒有,發現了狀態碼304 (11)你的瀏覽器一共發出了多少個HTTP GET請求? 答:瀏覽器按F12,選中網絡項可以看到有多少個GET請求,發現有4個。 (25)瀏覽器在下載這兩個圖片時,是串行下載還是並行下載?請解釋。 答:並行,傳輸效率高節省時間。 (26)DNS查詢報文發送的目的地的IP地址是多少?利用ipconfig命令(ipconfig/all)決定你主機的本地DNS服務器的IP地址。這兩個地指相同嗎? 答:相同 打開的WEB頁中包含圖片,在獲取每一個圖片之前,你的主機發出新的DNS查詢了嗎? 答:在獲取一個新圖片之前並沒有DNS查詢。 |
|||||
實驗當中問題 及解決方法 |
1、使用IPconfig命令時,顯示了很多IP地址,不知道哪個才是能PING通本機的,經過和同學嘗試,確認了無線局域網下的IPV4地址可以互相PING通。 2、與同學互相使用PING命令,開始可以通,隨后會出錯,發現是校園網隔一段時間會在IP池里自動更換地址。 3、ipconfig中有的命令遇到錯誤: 無法識別或不完整的命令行,暫時未解決,可能是用法不一致。 4、Win10 並不能直接使用telnet命令 需要在系統設置中給telnet打勾才能使用這個命令 5、善用搜索引擎,不知道如何組合nslookup語句實現逐層DNS解析,查閱CSDN之后了解到用nslookup -qt=NS xxxx IP 可以獲取xxxx在當前IP下的子IP,然后逐步更換子IP即可從根域名逐步降級到權威域名。 6、利用TELNET進行SMTP的郵件發送時,163和qq郵箱一直登陸失敗,多次嘗試后發現是密碼應當使用第三方授權碼而不是登陸密碼,最后163郵箱登陸成功! 7、SMTP的郵件發送成功后被郵箱視為垃圾郵件屏蔽,誤認為一直沒有收到,后來發現。 8、telnet遇到錯誤550 500 通過搜索和問同學找到了問題所在,是自己語法出了錯。 9、很多報錯的問題是通過谷歌找到解決方案的,百度有時候不好使。 10、由於本學期未學JAVA,剛開始運行程序時出現了各種問題,在菜鳥教程看了基本的操作后成功運行了第一個程序。 11、JAVA環境配置時未添加環境變量,導致程序不能正常運行,添加環境變量后解決問題。 12、用老師提供的軟件時出現未知錯誤,從網上查找知道可能是操作系統版本不一致,從官網下載了最新版解決了問題。 13、Ethereal抓包文件的使用。 如果stop過快會得不到相應的http協議,如果等待的時間過長,打開過多的文件,會出現過多的數據,最后選擇打開校官網的本科生招生,其中只有一個圖片,能減少產生的結果,從而精確需要看到的東西。 14、telnet剛開始使用時在dos環境下無法識別,后來在網上查詢知道在控制面板中要先設置,最終解決。 15、利用ethereal分析協議HTTP、FTP和DNS中:抓取的包過多,導致篩選后有很多無關包影響分析 |
|||||
成績(教師打分) |
優秀 |
良好 |
及格 |
不及格 |
計算機網絡與通信實驗報告(二) |
||||||
學 號 |
姓 名 |
班 級 |
報告日期 |
|||
|
|
|
|
|||
實驗內容 |
實驗二 利用分組嗅探器分析傳輸層與網絡層協議 利用分組嗅探器分析數據鏈路層協議 |
|||||
實驗目的 |
1、了解傳輸層TCP/UDP協議構造; 2、了解網絡層IP協議構造;
|
|||||
實驗預備知識 |
1、詳細掌握TCP段結構。 2、詳細掌握UDP段結構。 3、掌握IP數據報結構
|
|||||
實驗過程描述 |
一.對傳輸層協議TCP/UDP進行捕包分析 (1)關閉計算機后台多余的進程,啟動瀏覽器,打開網址http://gaia.cs.umass.edu/ethereal-labs/alice.txt ,得到ALICE'S ADVENTURES IN WONDERLAND文本,將該文件保存到桌面。
(2) 打開網址http://gaia.cs.umass.edu/ethereal-labs/TCP-ethereal-file1.html在Browse按鈕旁的文本框中輸入保存在你的主機上的文件ALICE'S ADVENTURES IN WONDERLAND(全名)
(3)啟動Ethereal,開始分組俘獲。 (4)在瀏覽器中,單擊“Upload alice.txt file”按鈕,將文件上傳到gaia.cs.umass.edu服務器,提示恭喜上傳完成。
(5)停止俘獲
|
|||||
實驗結果 |
問題回答:
一.對傳輸層協議TCP/UDP進行捕包分析
TCP SYN報文段的序號是0 Syn值設置為1
ACKnowledgement字段的值是1 Gaia.cs.umass.edu服務器是在SYN報文段中的seq值加1 在該報文段中,用Flags:0x0012來標識
序號是152931 二、對網絡層協議IP進行捕包分析
56-20=36為有效載荷數
被分割了 下一個包為 顯示IP協議的數據:
可以
改變:首部校驗和,標識 不變版本、頭部長度、區分服務、協議、源地址
|
|||||
實驗當中問題 及解決方法 |
1、問題:利用ethereal抓取的包很多后台運行的程序包,導致實驗包無法准確找到 解決:關閉各類后台服務,在高級TCP選項中關閉其他服務,在頁面加載完畢后立即停止抓包。
2、問題:找不到#of times to Trace 解決:本次實驗使用的是PingPlotter5,#of times to Trace即為追蹤次數
2、問題:找不到分片信息 解決:數據報是不在ICMP類型的記錄中找到的,而在IP類型的記錄中尋找。
|
|||||
成績(教師打分) |
優秀 |
良好 |
及格 |
不及格 |