用協議分析工具學習TCP/IP

來源:互聯網
上載者:User

用協議分析工具學習TCP/IP

一、前言

目前,網路的速度發展非常快,學習網路的人也越來越多,稍有網路常識的人都知道TCP/IP協議是網路的基礎,是Internet的語言,可以說沒有TCP/IP協議就沒有互連網的今天。目前號稱搞網的人非常多,許多人就是從一把夾線鉗,一個測線器連網開始接觸網路的,如果只是連網玩玩,知道幾個Ping之類的命令就行了,如果想在網路上有更多的發展不管是黑道還是紅道,必須要把TCP/IP協議搞的非常明白。

學習過TCP/IP協議的人多有一種感覺,這東西太抽象了,沒有什麼資料執行個體,看完不久就忘了。本文將介紹一種直觀的學習方法,利用協議分析工具學習TCP/IP,在學習的過程中能直觀的看到資料的具體傳輸過程。

為了初學者更容易理解,本文將搭建一個最簡單的網路環境,不包含子網。

二、實驗環境

1、網路環境

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

2)用熱鍵CTRL+E彈出過濾設定,選擇左欄“IP address”,右欄按將address book中的地址拽到下面,設定好後確定,這樣就這抓這兩台電腦之間的包。

圖3

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所示。每一層負責不同的功能:

表1

分層的概念說起來非常簡單,但在實際的應用中非常的重要,在進行網路設定和排除故障時對網路層次理解得很透,將對工作有很大的協助。例如:設定路由是網路層IP協議的事,要尋找MAC地址是鏈路層ARP的事,常用的Ping命令由ICMP協議來做的。

圖5顯示了各層協議的關係,理解它們之間的關係對下面的協議分析非常重要。

圖5

b.資料發送時是自上而下,層層加碼;資料接收時是自下而上,層層解碼。

當應用程式用TCP傳送資料時,資料被送入協議棧中,然後逐個通過每一層直到被當作一串位元流送入網路。其中每一層對收到的資料都要增加一些首部資訊(有時還要增加尾部資訊),該過程6所示。TCP傳給IP的資料單元稱作TCP報文段或簡稱為TCP段。I P傳給網路介面層的資料單元稱作IP資料報。 通過乙太網路傳輸的位元流稱作幀(Frame)。

資料發送時是按照圖6自上而下,層層加碼;資料接收時是自下而上,層層解碼。

圖6

c. 邏輯上通訊是在同級完成的

垂直方向的結構層次是當今普遍認可的資料處理的功能流程。每一層都有與其相鄰層的介面。為了通訊,兩個系統必須在各層之間傳遞資料、指令、地址等資訊,通訊的邏輯流程與真正的資料流的不同。雖然通訊流程垂直通過各層次,但每一層都在邏輯上能夠直接與遠端電腦系統的相應層直接通訊。

從圖7可以看出,通訊實際上是按垂直方向進行的,但在邏輯上通訊是在同級進行的。

圖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應答包含I P地址及對應的硬體地址。

7) 收到ARP應答後,使ARP進行請求—應答交換的IP資料包現在就可以傳送了。

8) 發送IP資料報到目的主機。

圖8

3、執行個體分析

下面通過分析用iris捕獲的包來分析一下TCP/IP的工作過程,為了更清晰的解釋資料傳送的過程,我們按傳輸的不同階段抓了四組資料,分別是尋找伺服器、建立串連、資料轉送和終止串連。每組資料,按下面三步進行解釋。

顯示資料包

解釋該資料包

按層分析該包的頭資訊

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.