網絡技術是從1990年代中期發展起來的新技術,它把互聯網上分散的資源融為有機整體,實現資源的全面共享和有機協作,使人們能夠透明地使用資源的整體能力并按需獲取信息。資源包括高性能計算機、存儲資源、數據資源、信息資源、知識資源、專家資源、大型數據庫、網絡、傳感器等。 當前的互聯網只限于信息共享,網絡則被認為是互聯網發展的第三階段。 一、前言 二、試驗環境 三、測試過程 四、過程分析 第一組 查找服務器 目前,網絡的速度發展非常快,學習網絡的人也越來越多,稍有網絡常識的人都知道TCP/IP協議是網絡的基礎,是Internet的語言,可以說沒有TCP/IP協議就沒有互聯網的今天。目前搞網絡的人非常多,許多人就是從一把夾線鉗,一個測線器聯網開始接觸網絡的,如果只是聯網玩玩,知道幾個Ping之類的命令就行了,如果想在網絡上有更多的發展不管是黑道還是紅道,必須要把TCP/IP協議搞的非常明白。
學習過TCP/IP協議的人多都有一種感覺,這東西太抽象了,沒有什么數據實例,看完不久就忘了。本文將介紹一種直觀的學習方法,利用分析監測工具IRIS學習TCP/IP,在學習的同時通過IRIS能直觀的看到數據的具體傳輸過程,這對學習TCP/IP能起到事半功倍的效果。
為了初學者更容易理解,本文將搭建一個最簡單的網絡環境,不包含子網。
二、試驗環境
1、網絡環境
如圖1所示
為了表述方便,下文中208號機即指地址為192.168.113.208的計算機,1號機指地址為192.168.113.1的計算機。
2、操作系統
兩臺機器都為Windows 2000 ,1號機機器作為服務器,安裝FTP服務
3、協議分析工具
Windows環境下常用的工具有:Sniffer Pro、Natxray、IRIS以及windows 2000自帶的網絡監視器等。本文選用IRIS作為協議分析工具。
在客戶機208號機安裝IRIS軟件. 三、測試過程
1、測試例子:將1號機計算機中的一個文件通過FTP下載到208號機中。
2、IRIS的設置。
由于IRIS具有網絡監聽的功能,如果網絡環境中還有其它的機器將抓很多別的數據包,這樣為學習帶來諸多不便,為了清楚地看清楚上述例子的傳輸過程首先將IRIS設置為只抓208號機和1號機之間的數據包。設置過程如下:
1) 用熱鍵CTRL+B彈出如圖所示的地址表,在表中填寫機器的IP地址,為了對抓的包看得更清楚不要添主機的名字(name),設置好后關閉此窗口。
2)用熱鍵CTRL+E彈出如圖所示過濾設置,選擇左欄“IP address”,右欄按下圖將address book中的地址拽到下面,設置好后確定,這樣就這抓這兩臺計算機之間的包。
3、抓包
按下IRIS工具欄中 開始按鈕。在瀏覽器中輸入:FTP://192.168.113.1,找到要下載的文件 ,鼠標右鍵該文件,在彈出的菜單中選擇“復制到文件夾”開始下載,下載完后在IRIS工具欄中按按鈕停止抓包。圖4顯示的就是FTP的整個過程,下面我們將詳細分析這個過程。
圖4(可點擊放大)
說明:為了能抓到ARP協議的包,在WINDOWS 2000 中運行arp –d 清除arp緩存。
四、過程分析
1、TCP/IP的基本原理
本文的重點雖然是根據實例來解析TCP/IP,但要講明白下面的過程必須簡要講一下TCP/IP的基本原理。 A.網絡是分層的,每一層分別負責不同的通信功能。
TCP/IP通常被認為是一個四層協議系統,TCP/IP協議族是一組不同的協議組合在一起構成的協議族。盡管通常稱該協議族為TCP/IP,但TCP和IP只是其中的兩種協議而已,如表1所示。每一層負責不同的功能: TCP/IP層描述 主要協議 主要功能 應用層 Http、Telnet、FTP和e-mail等 負責把數據傳輸到傳輸層或接收從傳輸層返回的數據 傳輸層 TCP和UDP 主要為兩臺主機上的應用程序提供端到端的通信,TCP為兩臺主機提供高可靠性的數據通信。它所做的工作包括把應用程序交給它的數據分成合適的小塊交給下面的網絡層,確認接收到的分組,設置發送最后確認分組的超時時鐘等。UDP則為應用層提供一種非常簡單的服務。它只是把稱作數據報的分組從一臺主機發送到另一臺主機,但并不保證該數據報能到達另一端。 網絡層 ICMP、IP 和 IGMP 有時也稱作互聯網層,主要為數據包選擇路由,其中IP是TCP/IP協議族中最為核心的協議。所有的TCP、UDP、ICMP及IGMP數據都以IP數據報格式傳輸 鏈路層 ARP 、RARP和設備驅動程序及接口卡 發送時將IP包作為幀發送;接收時把接收到的位組裝成幀;提供鏈路管理;錯誤檢測等
表1
分層的概念說起來非常簡單,但在實際的應用中非常的重要,在進行網絡設置和排除故障時對網絡層次理解得很透,將對工作有很大的幫助。例如:設置路由是網絡層IP協議的事,要查找MAC地址是鏈路層ARP的事,常用的Ping命令由ICMP協議來做的。
圖5顯示了各層協議的關系,理解它們之間的關系對下面的協議分析非常重要。
b. 數據發送時是自上而下,層層加碼;數據接收時是自下而上,層層解碼。
當應用程序用TCP傳送數據時,數據被送入協議棧中,然后逐個通過每一層直到被當作一串比特流送入網絡。其中每一層對收到的數據都要增加一些首部信息(有時還要增加尾部信息),該過程如圖6所示。TCP傳給IP的數據單元稱作TCP報文段或簡稱為TCP段。IP傳給網絡接口層的數據單元稱作IP數據報。通過以太網傳輸的比特流稱作幀(Frame)。
數據發送時是按照圖6自上而下,層層加碼;數據接收時是自下而上,層層解碼。
C. 邏輯上通訊是在同級完成的
垂直方向的結構層次是當今普遍認可的數據處理的功能流程。每一層都有與其相鄰層的接口。為了通信,兩個系統必須在各層之間傳遞數據、指令、地址等信息,通信的邏輯流程與真正的數據流的不同。雖然通信流程垂直通過各層次,但每一層都在邏輯上能夠直接與遠程計算機系統的相應層直接通信。 從圖7可以看出,通訊實際上是按垂直方向進行的,但在邏輯上通信是在同級進行的。
2、過程描述
為了更好的分析協議,我們先描述一下上述例子數據的傳輸步驟。如圖8所示:
1) FTP客戶端請求TCP用服務器的IP地址建立連接。
2) TCP發送一個連接請求分段到遠端的主機,即用上述IP地址發送一份IP數據報。
3) 如果目的主機在本地網絡上,那么IP數據報可以直接送到目的主機上。如果目的主機在一個遠程網絡上,那么就通過IP選路函數來確定位于本地網絡上的下一站路由器地址,并讓它轉發IP數據報。在這兩種情況下,IP數據報都是被送到位于本地網絡上的一臺主機或路由器。
4) 本例是一個以太網,那么發送端主機必須把32位的IP地址變換成48位的以太網地址,該地址也稱為MAC地址,它是出廠時寫到網卡上的世界唯一的硬件地址。把IP地址翻譯到對應的MAC地址是由ARP協議完成的。
5) 如圖的虛線所示,ARP發送一份稱作ARP請求的以太網數據幀給以太網上的每個主機,這個過程稱作廣播。ARP請求數據幀中包含目的主機的IP地址,其意思是“如果你是這個IP地址的擁有者,請回答你的硬件地址!
6) 目的主機的ARP層收到這份廣播后,識別出這是發送端在尋問它的IP地址,于是發送一個ARP應答。這個ARP應答包含IP地址及對應的硬件地址。
7) 收到ARP應答后,使ARP進行請求—應答交換的IP數據包現在就可以傳送了。
8) 發送IP數據報到目的主機。
3、實例分析
下面通過分析用IRIS捕獲的包來分析一下TCP/IP的工作過程,為了更清晰的解釋數據傳送的過程,我們按傳輸的不同階段抓了四組數據,分別是查找服務器、建立連接、數據傳輸和終止連接。每組數據,按下面三步進行解釋。
顯示數據包 解釋該數據包 按層分析該包的頭信息
第一組 查找服務器
1)下圖顯示的是1、2行的數據。
2)解釋數據包
這兩行數據就是查找服務器及服務器應答的過程。
在第1行中,源端主機的MAC地址是00:50:FC:22:C7:BE。目的端主機的MAC地址是FF:FF:FF:FF:FF:FF,這個地址是十六進制表示的,F換算為二進制就是1111,全1的地址就是廣播地址。所謂廣播就是向本網上的每臺網絡設備發送信息,電纜上的每個以太網接口都要接收這個數據幀并對它進行處理,這一行反映的是步驟5)的內容,ARP發送一份稱作ARP請求的以太網數據幀給以太網上的每個主機。網內的每個網卡都接到這樣的信息“誰是192.168.113.1的IP地址的擁有者,請將你的硬件地址告訴我”。
第2行反映的是步驟6)的內容。在同一個以太網中的每臺機器都會"接收"到這個報文,但正常狀態下除了1號機外其他主機應該會忽略這個報文,而1號的主機的ARP層收到這份廣播報文后,識別出這是發送端在尋問它的IP地址,于是發送一個ARP應答。告知自己的IP地址和MAC地址。第2行可以清楚的看出1號回答的信息__自己的MAC地址00:50:FC:22:C7:BE。
這兩行反映的是數據鏈路層之間一問一答的通信過程。這個過程就像我要在一個坐滿人的教室找一個叫“張三”的人,在門口喊了一聲“張三”,這一聲大家都聽見了,這就叫廣播。張三聽到后做了回應,別人聽到了沒做回應,這樣就與張三取得了聯系。 3)頭信息分析
如下圖左欄所示,第1數據包包含了兩個頭信息:以太網(Ethernet)和ARP。
下表2是以太網的頭信息,括號內的數均為該字段所占字節數,以太網報頭中的前兩個字段是以太網的源地址和目的地址。目的地址為全1的特殊地址是廣播地址。電纜上的所有以太網接口都要接收廣播的數據幀。兩個字節長的以太網幀類型表示后面數據的類型。對于ARP請求或應答來說,該字段的值為0806。
第2行中可以看到,盡管ARP請求是廣播的,但是ARP應答的目的地址卻是1號機的(00 50 FC 22 C7 BE)。ARP應答是直接送到請求端主機的。
行 以太網目的地址(6) 以太網源地址(6) 幀類型(2) 1 FF FF FF FF FF FF 00 50 FC 22 C7 BE 08 06 2 00 50 FC 22 C7 BE 00 90 27 F6 54 53 08 06
表2 下表3是ARP協議的頭信息。硬件類型字段表示硬件地址的類型。它的值為1即表示以太網地址。協議類型字段表示要映射的協議地址類型。它的值為0800即表示IP地址。它的值與包含IP數據報的以太網數據幀中的類型字段的值相同。接下來的兩個1字節的字段,硬件地址長度和協議地址長度分別指出硬件地址和協議地址的長度,以字節為單位。對于以太網上IP地址的ARP請求或應答來說,它們的值分別為6和4。Op即操作(Opoperation),1是ARP請求、2是ARP應答、3是RARP請求和4為RARP應答,第二行中該字段值為2表示應答。接下來的四個字段是發送端的硬件地址、發送端的IP地址、目的端的硬件地址和目的端IP地址。注意,這里有一些重復信息:在以太網的數據幀報頭中和ARP請求數據幀中都有發送端的硬件地址。對于一個ARP請求來說,除目的端硬件地址外的所有其他的字段都有填充值。
表3的第2行為應答,當系統收到一份目的端為本機的ARP請求報文后,它就把硬件地址填進去,然后用兩個目的端地址分別替換兩個發送端地址,并把操作字段置為2,最后把它發送回去。
行 1 2 硬件類型(2) 00 01 00 01 協議類型(2) 08 0008 00 硬件地址長度(1) 06 06 協議地址長度(1) 04 04 Op(2) 00 01 00 02 發送端以太網地址(6) 00 50 FC 22 C7 BE 00 90 27 F6 54 53 發送端IP地址(4) C0 A8 71 D0 C0 A8 7101 目的以太網地址(6) 00 00 00 00 00 00 00 50 FC 22 C7 BE 目的IP地址(4) C0 A8 71 01 C0 A8 71 D0
表3
網絡的神奇作用吸引著越來越多的用戶加入其中,正因如此,網絡的承受能力也面臨著越來越嚴峻的考驗―從硬件上、軟件上、所用標準上......,各項技術都需要適時應勢,對應發展,這正是網絡迅速走向進步的催化劑。
|