史萊姆論壇

返回   史萊姆論壇 > 教學文件資料庫 > 網路軟硬體架設技術文件
忘記密碼?
註冊帳號 論壇說明 標記討論區已讀

歡迎您來到『史萊姆論壇』 ^___^

您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的!

請點擊這裡:『註冊成為我們的一份子!』

Google 提供的廣告


 
 
主題工具 顯示模式
舊 2006-07-14, 03:00 AM   #1
psac
榮譽會員
 
psac 的頭像
榮譽勳章
UID - 3662
在線等級: 級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時
註冊日期: 2002-12-07
住址: 木柵市立動物園
文章: 17381
現金: 5253 金幣
資產: 33853 金幣
預設 軟體 - 用協議分析工具學習TCP/IP

 
 一、前言
  目前,網路的速度發展非常快,學習網路的人也越來越多,稍有網路常識的人都知道TCP/IP協議是網路的基礎,是Internet的語言,可以說沒有TCP/IP協議就沒有互連網的今天。目前號稱搞網的人非常多,許多人就是從一把夾線鉗,一個測線器聯網開始接觸網路的,如果只是聯網玩玩,知道幾個Ping之類的命令就行了,如果想在網路上有更多的發展不管是黑道還是紅道,必須要把TCP/IP協議搞的非常明白。
  學習過TCP/IP協議的人多有一種感覺,這東西太抽像了,沒有什麼資料實例,看完不久就忘了。本文將介紹一種直觀的學習方法,利用協議分析工具學習TCP/IP,在學習的過程中能直觀的看到資料的具體傳輸過程。
  為了初學者更容易理解,本文將搭建一個最簡單的網路環境,不包含子網。
二、試驗環境
1、網路環境
如圖1所示
http://www.cnpaf.net/cnpafweb/upload/mulu/29/20044299329933.gif
圖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),設置好後關閉此視窗。
http://www.cnpaf.net/cnpafweb/upload/mulu/29/20044299453744.gif
圖2
  2)用熱鍵CTRL+E彈出如圖所示過濾設置,選擇左欄「IP address」,右欄按下圖將address book中的地址拽到下面,設置好後確定,這樣就這抓這兩台電腦之間的包。
http://www.cnpaf.net/cnpafweb/upload/mulu/29/20044299535403.gif
圖3
  3、抓包
  按下IRIS工具欄中 開始按鈕。在瀏覽器中輸入:FTP://192.168.113.1,找到要下載的文件 ,滑鼠右鍵該文件,在彈出的表菜單中選擇「複製到資料夾」開始下載,下載完後在IRIS工具欄中按 按鈕停止抓包。圖4顯示的就是FTP的整個過程,下面我們將詳細分析這個過程。

http://www.cnpaf.net/cnpafweb/upload/mulu/29/200442993242676.gif

圖4
  說明:為了能抓到ARP協議的包,在WINDOWS 2000 中執行arp –d 清除arp快取記憶體。
四、過程分析
1、TCP/IP的基本原理
  本文的重點雖然是根據實例來解析TCP/IP,但要講明白下面的過程必須簡要講一下TCP/IP的基本原理。
A.網路是分層的,每一層分別負責不同的通信功能。
  TCP/IP通常被認為是一個四層協議系統,TCP/IP協議族是一組不同的協議組合在一起構成的協議族。儘管通常稱該協議族為TCP/IP,但TCPIP只是其中的兩種協議而已,如表1所示。每一層負責不同的功能:

http://www.cnpaf.net/cnpafweb/upload/mulu/29/200442993523400.gif

表1
  分層的概念說起來非常簡單,但在實際的應用中非常的重要,在進行網路設置和排除故障時對網路層次理解得很透,將對工作有很大的幫助。例如:設置路由是網路層IP協議的事,要查找MAC地址是鏈路層ARP的事,常用的Ping命令由ICMP協議來做的。
  圖5顯示了各層協議的關係,理解它們之間的關係對下面的協議分析非常重要。
http://www.cnpaf.net/cnpafweb/upload/mulu/29/200442993621632.gif
圖5
  b.資料發送時是自上而下,層層加碼;資料接收時是自下而上,層層解碼。
  當應用程式用TCP傳送資料時,資料被送入協議棧中,然後逐個通過每一層直到被當作一串比特流送入網路。其中每一層對收到的資料都要增加一些首部訊息(有時還要增加尾部訊息),該過程如圖6所示。TCP傳給IP的資料單元稱作TCP報文段或簡稱為TCP段。I P傳給網路接頭層的資料單元稱作IP資料報。 通過以太網傳輸的比特流稱作幀(Frame)。
  資料發送時是按照圖6自上而下,層層加碼;資料接收時是自下而上,層層解碼。
http://www.cnpaf.net/cnpafweb/upload/mulu/29/200442993656611.gif
圖6
c. 邏輯上通訊是在同級完成的
  垂直方向的結構層次是當今普遍認可的資料處理的功能流程。每一層都有與其相鄰層的接頭。為了通信,兩個系統必須在各層之間傳遞資料、指令、地址等訊息,通信的邏輯流程與真正的資料流的不同。雖然通信流程垂直通過各層次,但每一層都在邏輯上能夠直接與遠端電腦系統的相應層直接通信。
  從圖7可以看出,通訊實際上是按垂直方向進行的,但在邏輯上通信是在同級進行的。
http://www.cnpaf.net/cnpafweb/upload/mulu/29/200442993731808.gif
圖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資料報到目的主機。
http://www.cnpaf.net/cnpafweb/upload/mulu/29/20044299389989.gif
圖8
3、實例分析
  下面通過分析用iris捕獲的包來分析一下TCP/IP的工作過程,為了更清晰的解釋資料傳送的過程,我們按傳輸的不同階段抓了四組資料,分別是查找服務器、建立連接、資料傳輸和終止連接。每組資料,按下面三步進行解釋。
顯示資料包
解釋該資料包
按層分析該包的頭訊息
第一組 查找服務器
1)下圖顯示的是1、2行的資料

http://www.cnpaf.net/cnpafweb/upload/mulu/29/200442993849506.gif

圖9
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。

http://www.cnpaf.net/cnpafweb/upload/mulu/29/200442993931387.gif

圖10
  下表2是以太網的頭訊息,括號內的數均為該字段所佔字節數,以太網報頭中的前兩個字段是以太網的源地址和目的地址。目的地址為全1的特殊地址是廣播地址。電纜上的所有以太網接頭都要接收廣播的資料幀。兩個字節長的以太網幀類型表示後面資料的類型。對於ARP請求或應答來說,該字段的值為0806。
  第2行中可以看到,儘管ARP請求是廣播的,但是ARP應答的目的地址卻是1號機的(00 50 FC 22 C7 BE)。ARP應答是直接送到請求端主機的。

http://www.cnpaf.net/cnpafweb/upload/mulu/29/20044299402600.gif

表2
  下表3是ARP協議的頭訊息。硬體類型字段表示硬體地址的類型。它的值為1即表示以太網地址。協議類型字段表示要映射的協議地址類型。它的值為0800即表示IP地址。它的值與包含I P資料報的以太網資料幀中的類型字段的值相同。接下來的兩個1字節的字段,硬體地址長度和協議地址長度分別指出硬體地址和協議地址的長度,以字節為單位。對於以太網IP地址的ARP請求或應答來說,它們的值分別為6和4。Op即操作(Opoperation),1是ARP請求、2是ARP應答、3是RARP請求和4為RARP應答,第二行中該字段值為2表示應答。接下來的四個字段是發送端的硬體地址、發送端的IP地址、目的端的硬體地址和目的端IP地址。注意,這裡有一些重複訊息:在以太網的資料幀報頭中和ARP請求資料幀中都有發送端的硬體地址。對於一個ARP請求來說,除目的端硬體地址外的所有其他的字段都有填充值。
  表3的第2行為應答,當系統收到一份目的端為本機的ARP請求報文後,它就把硬體地址填進去,然後用兩個目的端地址分別替換兩個發送端地址,並把操作字段置為2,最後把它發送回去。

http://www.cnpaf.net/cnpafweb/upload/mulu/29/200442994036414.gif

表3

第二組 建立連接

1)下圖顯示的是3-5行的資料

http://www.cnpaf.net/cnpafweb/upload/mulu/29/200442994110944.gif

圖11
2)解釋資料包
  這三行資料是兩機建立連接的過程。
  這三行的核心意思就是TCP協議的三次握手。TCP的資料包是靠IP協議來傳輸的。但IP協議是只管把資料送到出去,但不能保證IP資料報能成功地到達目的地,保證資料的可靠傳輸是靠TCP協議來完成的。當接收端收到來自發送端的訊息時,接受端詳發送短髮送一條應答訊息,意思是:「我已收到你的訊息了。」第三組資料將能看到這個過程。TCP是一個面向連接的協議。無論哪一方向另一方發送資料之前,都必須先在雙方之間建立一條連接。建立連接的過程就是三次握手的過程。
  這個過程就像要我找到了張三向他借幾本書,第一步:我說:「你好,我是擔子」,第二步:張三說:「你好,我是張三」,第三步:我說:「我找你借幾本書。」這樣通過問答就確認對方身份,建立了聯繫。


下面來分析一下此例的三次握手過程。
1))請求端208號機發送一個初始序號(SEQ)987694419給1號機。
2))服務器1號機收到這個序號後,將此序號加1值為987694419作為應答信號(ACK),同時隨機產生一個初始序號(SEQ)1773195208,這兩個信號同時發回到請求端208號機,意思為:「消息已收到,讓我們的資料流以1773195208這個數開始。」
3))請求端208號機收到後將確認序號設置為服務器的初始序號(SEQ)1773195208加1為1773195209作為應答信號。
  以上三步完成了三次握手,雙方建立了一條通道,接下來就可以進行資料傳輸了。
  下面分析TCP頭訊息就可以看出,在握手過程中TCP頭部的相關字段也發生了變化。
3)頭訊息分析
  如圖12所示,第3資料包包含了三頭訊息:以太網Ethernet)和IPTCP
  頭訊息少了ARP多了IPTCP,下面的過程也沒有ARP的參與,可以這樣理解,在局域網內,ARP負責的是在眾多聯網的電腦中找到需要找的電腦,找到工作就完成了。
  以太網的頭訊息與第1、2行不同的是幀類型為0800,指明該幀類型為IP

http://www.cnpaf.net/cnpafweb/upload/mulu/29/200442994219769.gif

圖12
IP協議頭訊息
  IPTCP/IP協議族中最為核心的協議。從圖5可以看出所有的TCPUDP、ICMP及IGMP資料都以IP資料報格式傳輸的,有個形象的比喻IP協議就像運貨的卡車,將一車車的貨物運向目的地。主要的貨物就是TCPUDP分配給它的。需要特別指出的是IP提供不可靠、無連接的資料報傳送,也就是說I P僅提供最好的傳輸服務但不保證IP資料報能成功地到達目的地。看到這你會不會擔心你的E_MAIL會不會送到朋友那,其實不用擔心,上文提過保證資料正確到達目的地是TCP的工作,稍後我們將詳細解釋。
  如表4是IP協議的頭訊息。

http://www.cnpaf.net/cnpafweb/upload/mulu/29/200442994250195.gif

表4 IP資料報格式及首部中的各字段
  圖12中所宣佈分45 00—71 01為IP的頭訊息。這些數是十六進製表示的。一個數占4位,例如:4的二進制是0100
  4位版本:表示目前的協議版本號,數值是4表示版本為4,因此IP有時也稱作IPv4;
  4位首部長度:頭部的是長度,它的單位是32位(4個字節),數值為5表示IP頭部長度為20字節。
  8位服務類型(TOS):00,這個8位字段由3位的優先權子字段,現在已經被忽略,4位的TOS子字段以及1 位的未用字段(現在為0)構成。4位的TOS子字段包含:最小延時、最大吞吐量、最高可靠性以及最小費用構成,這四個1位最多只能有一個為1,本例中都為0,表示是一般服務。
  16位總長度(字節數):總長度字段是指整個IP資料報的長度,以字節為單位。數值為00 30,換算為十進制為48字節,48字節=20字節 的IP頭+28字節的TCP頭,這個資料報只是傳送的控制訊息,還沒有傳送真正的資料,所以目前看到的總長度就是報頭的長度。
  16位標識:標識字段唯一地標識主機發送的每一份資料報。通常每發送一份報文它的值就會加1,第3行為數值為30 21,第5行為30 22,第7行為30 23。分片時涉及到標誌字段和片偏移字段,本文不討論這兩個字段。
  8位生存時間(TTL):TTL(time-to-live)生存時間字段設置了資料報可以經過的最多路由器數。它指定了資料報的生存時間。ttl的初始值由源主機設置,一旦經過一個處理它的路由器,它的值就減去1。可根據TTL值判斷服務器是什麼系統和經過的路由器。本例為80,換算成十進制為128,WINDOWS操作系統TTL初始值一般為128,UNIX操作系統初始值為255,本例表示兩個機器在同一網段且操作系統為WINDOWS。
  8位協議:表示協議類型,6表示傳輸層是TCP協議
  16位首部檢驗和:當收到一份I P資料報後,同樣對首部中每個16 位進行二進制反碼的求和。由於接收方在計算過程中包含了發送方存在首部中的檢驗和,因此,如果首部在傳輸過程中沒有發生任何差錯,那麼接收方計算的結果應該為全1。如果結果不是全1,即檢驗和錯誤,那麼IP就丟棄收到的資料報。但是不產生差錯報文,由上層去發現丟失的資料報並進行重傳。
  32位源IP地址和32位目的IP地址:實際這是IP協議中核心的部分,但介紹這方面的文章非常多,本文搭建的又是一個最簡單的網路結構,不涉及路由,本文對此只做簡單介紹,相關知識請參閱其它文章。32位的IP地址由一個網路ID和一個主機ID組成。本例源IP地址為C0 A8 71 D0,轉換為十進制為:192.168.113.208; 目的IP地址為C0 A8 71 01,轉換為十進制為:192.168.113.1。網路地址為192.168.113,主機地址分別為1和208,它們的網路地址是相同的所以在一個網段內,這樣資料在傳送過程中可直接到達。
TCP協議頭訊息
  如表5是ICP協議的頭訊息。

http://www.cnpaf.net/cnpafweb/upload/mulu/29/200442994325335.gif

表5 TCP包首部
  第三行TCP的頭訊息是:04 28 00 15 3A DF 05 53 00 00 00 00 70 02 40 00 9A 8D 00 00 02 04 05 B4 01 01 04 02
  連接阜號:常說FTP占21連接阜、HTTP占80連接阜、TELNET占23連接阜等,這裡指的連接阜就是TCPUDP的連接阜,連接阜就像通道兩端的門一樣,當兩機進行通訊時門必須是打開的。源連接阜和目的連接阜各佔16位,2的16次方等於65536,這就是每台電腦與其它電腦聯繫所能開的「門」。一般作為服務一方每項服務的連接阜號是固定的。本例目的連接阜號為00 15,換算成十進制為21,這正是FTP的預定連接阜,需要指出的是這是FTP的控制連接阜,資料傳送時用另一連接阜,第三組的分析能看到這一點。客戶端與服務器聯繫時隨機開一個大於1024的連接阜,本例為04 28,換算成十進制為1064。你的電腦中了木馬也會開一個服務連接阜。觀察連接阜非常重要,不但能看出本機提供的正常服務,還能看出不正常的連接。Windows察看連接阜的命令時netstat。
  32位序號:也稱為順序號(Sequence Number),簡寫為SEQ,從上面三次握手的分析可以看出,當一方要與另一方聯繫時就發送一個初始序號給對方,意思是:「讓我們建立聯繫吧?」,服務方收到後要發個獨立的序號給發送方,意思是「消息收到,資料流將以這個數開始。」由此可看出,TCP連接完全是雙向的,即雙方的資料流可同時傳輸。在傳輸過程中雙方資料是獨立的,因此每個TCP連接必須有兩個順序號分別對應不同方向的資料流。
  32位確認序號:也稱為應答號(Acknowledgment Number),簡寫為ACK。在握手階段,確認序號將發送方的序號加1作為回答,在資料傳輸階段,確認序號將發送方的序號加發送的資料大小作為回答,表示確實收到這些資料。在第三組的分析中將看到這一過程。
  4位首部長度:。這個字段占4位,它的單位時32位(4個字節)。本例值為7,TCP的頭長度為28字節,等於正常的長度2 0字節加上可選項8個字節。,TCP的頭長度最長可為60字節(二進制1111換算為十進制為15,15*4字節=60字節)。
  6個標誌位。
  URG 緊急指標,告訴接收TCP模塊緊要指標域指著緊要資料
  ACK 置1時表示確認號(為合法,為0的時候表示資料段不包含確認訊息,確認號被忽略。
  PSH 置1時請求的資料段在接收方得到後就可直接送到應用程式,而不必等到Buffers區滿時才傳送。
  RST 置1時重建連接。如果接收到RST位時候,通常發生了某些錯誤。
  SYN 置1時用來發起一個連接。
  FIN 置1時表示發端完成發送任務。用來釋放連接,表明發送方已經沒有資料發送了。
  圖13的3個圖分別為3-5行TCP協議的頭訊息,這三行是三次握手的過程,我們看看握手的過程標誌位發生了什麼?
  如圖13-1請求端208號機發送一個初始序號(SEQ)987694419給1號機。標誌位SYN置為1。
  如圖13-2服務器1號機收到這個序號後,將應答信號(ACK)和隨機產生一個初始序號(SEQ)1773195208發回到請求端208號機,因為有應答信號和初始序號,所以標誌位ACK和SYN都置為1。
  如圖13-3請求端208號機收到1號機的信號後,發回訊息給1號機。標誌位ACK置為1,其它標誌為都為0。注意此時SYN值為0,SYN是標示發起連接的,上兩部連接已經完成。

http://www.cnpaf.net/cnpafweb/upload/mulu/29/20044299441489.gif

  16位視窗大小:TCP的流量控制由連接的每一端通過聲明的視窗大小來提供。視窗大小為字節數,起始於確認序號字段指明的值,這個值是接收端正期望接收的字節。視窗大小是一個16字節字段,因而視窗大小最大為65535字節。
  16位檢驗和:檢驗和覆蓋了整個的TCP報文段: TCP首部和TCP資料。這是一個強制性的字段,一定是由發端計算和存儲,並由收端進行驗證。
  16位緊急指標:只有當U R G標誌置1時緊急指標才有效。緊急指標是一個正的偏移量,和序號字段中的值相加表示緊急資料最後一個字節的序號。
  選項:圖13-1和圖13-2有8個字節選項,圖13-3沒有選項。最常見的可選字段是最長報文大小,又稱為MSS (Maximum Segment Size)。每個連接方通常都在握手的第一步中指明這個選項。它指明本端所能接收的最大長度的報文段。圖13-1可以看出208號機可以接受的最大字節數為1460字節,1460也是以太網預定的大小,在第三組的資料分析中可以看到資料傳送正是以1460字節傳送的。
握手小結
  上面我們分開講了三次握手,看著有點散,現在小結一下。

http://www.cnpaf.net/cnpafweb/upload/mulu/29/200442994429452.gif

第三組 資料傳輸
1)下圖顯示的是57-60行的資料

http://www.cnpaf.net/cnpafweb/upload/mulu/29/200442994452984.gif

圖14
2)解釋資料包
  這四行資料是資料傳輸過程中一個發送一個接收的過程。
  前文說過,TCP提供一種面向連接的、可靠的字節流服務。當接收端收到來自發送端的訊息時,接受端要發送一條應答訊息,表示收到此訊息。資料傳送時被TCP分割成認為最適合發送的資料塊。一般以太網在傳送時TCP將資料分為1460字節。也就是說資料在發送方被分成一塊一塊的發送,接受端收到這些資料後再將它們組合在一起。
  57行顯示1號機給208號機發送了大小為1514字節大小的資料,注意我們前文講過資料發送時是層層加協議頭的,1514字節=14字節以太網頭 + 20字節IP頭 + 20字節TCP頭 + 1460字節資料
  58行顯示的應答信號ACK為:1781514222,這個數是57行得SEQ序號1781512762加上傳送的資料1460,208號機將這個應答信號發給1號機說明已收到發來的資料。
  59、60行顯示的是繼續傳送資料的過程。
  這個過程就像我向張三借書,借給我幾本我要說:「我已借了你幾本了。」,他說:「知道了」。
3)頭訊息
  圖15-1和圖15-2分別是57行和58行的頭訊息,解釋參考第二組。

http://www.cnpaf.net/cnpafweb/upload/mulu/29/200442994522407.gif

第四組 終止連接
1)下圖顯示的是93-96行的資料

http://www.cnpaf.net/cnpafweb/upload/mulu/29/200442994547838.gif

圖16
__________________
http://bbsimg.qianlong.com/upload/01/08/29/68/1082968_1136014649812.gif
psac 目前離線  
送花文章: 3, 收花文章: 1630 篇, 收花: 3204 次
舊 2006-07-14, 03:01 AM   #2 (permalink)
榮譽會員
 
psac 的頭像
榮譽勳章
UID - 3662
在線等級: 級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時
註冊日期: 2002-12-07
住址: 木柵市立動物園
文章: 17381
現金: 5253 金幣
資產: 33853 金幣
預設

2)解釋資料包
93-96是兩機通訊完關閉的過程。
  建立一個連接需要三次握手,而終止一個連接要經過4次握手。這是因為一個TCP連接是全雙工(即資料在兩個方向上能同時傳遞),每個方向必須單獨地進行關閉。4次握手實際上就是雙方單獨關閉的過程。
  本例文件下載完後,關閉瀏覽器終止了與服務器的連接圖16的93-96行顯示的就是終止連接所經過4次握手過程。
  93行資料顯示的是關閉瀏覽器後,如圖17-1所示208號機將FIN置1連同序號(SEQ)987695574發給1號機請求終止連接。
  94行資料和圖17-2顯示1號機收到FIN關閉請求後,發回一個確認,並將應答信號設置為收到序號加1,這樣就終止了這個方向的傳輸。
  95行資料和圖17-3顯示1號機將FIN置1連同序號(SEQ)1773196056發給208號機請求終止連接。
  96行資料和圖17-4顯示208號機收到FIN關閉請求後,發回一個確認,並將應答信號設置為收到序號加1,至此TCP連接徹底關閉。
3)頭訊息

http://www.cnpaf.net/cnpafweb/upload/mulu/29/200442994623487.gif


http://www.cnpaf.net/cnpafweb/upload/mulu/29/200442994631293.gif

六、掃瞄實例
  下面我們再舉個ping的實例,測試某台電腦是否通,最常用的命令就是ping命令。Ping 一台電腦,出現如圖18所示界面就是通,出現如圖19所示界面就是不通,不通有兩種情況,一是該電腦不存在或沒接網線,二是該電腦安裝了防火牆並設置為不允許ping。如何區別這兩種情況呢?下面還是利用iris跟蹤上述情況。
http://www.cnpaf.net/cnpafweb/upload/mulu/29/200442994658121.gif
圖18
http://www.cnpaf.net/cnpafweb/upload/mulu/29/200442994719969.gif
圖19
  如圖20是ping通的情況。
  如圖21是ping不通該電腦不存在的情況。從圖可以看出ARP請求沒有回應。
  如圖22是ping不通,該電腦存在但安裝了防火牆的情況。從圖可以看出ARP請求有回應。但ICMP請求沒回應。
  從分析可以看出雖然後兩種情況的表面現象是一樣的,但實質確是截然相反的。通過頭訊息可以清楚的看出PING是
  ICMP協議來完成的,通訊過程是在第三層完成的,沒有用到第四層的TCP協議

http://www.cnpaf.net/cnpafweb/upload/mulu/29/200442994754661.gif

圖20

http://www.cnpaf.net/cnpafweb/upload/mulu/29/20044299481563.gif

圖21

http://www.cnpaf.net/cnpafweb/upload/mulu/29/200442994815203.gif

圖22
七、後記
  本文不是個教程,許多問題都沒有涉及到,比如TCP重發、IP分解、路由等,只是提出個學習思路,希望能起到拋磚引玉的作用。TCP/IP協議族是非常複雜的,但只要理解了還是不難學的。最後向感興趣的朋友提個問題:分別telnet三台機器,一台正常23連接阜開放,一台網是通的但23連接阜沒開放,另外一台是不存在的。用我們學過的方法跟蹤一下,比較三個的不同。其實這就是用TCP掃瞄判斷對方機器是否線上的一種方法。
psac 目前離線  
送花文章: 3, 收花文章: 1630 篇, 收花: 3204 次
 


主題工具
顯示模式

發表規則
不可以發文
不可以回覆主題
不可以上傳附加檔案
不可以編輯您的文章

論壇啟用 BB 語法
論壇啟用 表情符號
論壇啟用 [IMG] 語法
論壇禁用 HTML 語法
Trackbacks are 禁用
Pingbacks are 禁用
Refbacks are 禁用


所有時間均為台北時間。現在的時間是 10:35 PM


Powered by vBulletin® 版本 3.6.8
版權所有 ©2000 - 2020, Jelsoft Enterprises Ltd.


SEO by vBSEO 3.6.1