版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、用協(xié)議分析工具學習tcp/ip1 / 23一、前言 目前,網(wǎng)絡的速度發(fā)展非??欤瑢W習網(wǎng)絡的人也越來越多,稍有網(wǎng)絡常識的人都知道tcp/ip協(xié)議是網(wǎng)絡的基礎,是internet的語言,可以說沒有tcp/ip協(xié)議就沒有互聯(lián)網(wǎng)的今天。目前號稱搞網(wǎng)的人非常多,許多人就是從一把夾線鉗,一個測線器聯(lián)網(wǎng)開始接觸網(wǎng)絡的,如果只是聯(lián)網(wǎng)玩玩,知道幾個ping之類的命令就行了,如果想在網(wǎng)絡上有更多的發(fā)展不管是黑道還是紅道,必須要把tcp/ip協(xié)議搞的非常明白。 學習過tcp/ip協(xié)議的人多有一種感覺,這東西太抽象了,沒有什么數(shù)據(jù)實例,看完不久就忘了。本文將介紹一種直觀的學習方法,利用協(xié)議分析工具學習tcp/ip,在
2、學習的過程中能直觀的看到數(shù)據(jù)的具體傳輸過程。 為了初學者更容易理解,本文將搭建一個最簡單的網(wǎng)絡環(huán)境,不包含子網(wǎng)。 二、試驗環(huán)境 1、網(wǎng)絡環(huán)境 如圖1所示 為了表述方便,下文中208號機即指地址為08的計算機,1號機指地址為的計算機。 2、操作系統(tǒng) 兩臺機器都為windows 2000 ,1號機機器作為服務器,安裝ftp服務 3、協(xié)議分析工具 windows環(huán)境下常用的工具有:sniffer pro、natxray、iris以及windows 2000自帶的網(wǎng)絡監(jiān)視器等。本文選用iris作為協(xié)議分析工具。 在客戶機208號機安裝iris軟件。
3、三、測試過程 1、測試例子將1號機計算機中的一個文件通過ftp下載到208號機中。 2、iris的設置 由于iris具有網(wǎng)絡監(jiān)聽的功能,如果網(wǎng)絡環(huán)境中還有其它的機器將抓很多別的數(shù)據(jù)包,這樣為學習帶來諸多不便,為了清楚地看清楚上述例子的傳輸過程首先將iris設置為只抓208號機和1號機之間的數(shù)據(jù)包。設置過程如下: 1)用熱鍵ctrl+b彈出如圖所示的地址表,在表中填寫機器的ip地址,為了對抓的包看得更清楚不要添主機的名字(name),設置好后關閉此窗口。 2)用熱鍵ctrl+e彈出如圖所示過濾設置,選擇左欄“ip address”,右欄按下圖將address book中的地址拽到下面,設置好后確
4、定,這樣就這抓這兩臺計算機之間的包。 3、抓包 按下iris工具欄中 開始按鈕。在瀏覽器中輸入:ftp:/,找到要下載的文件 ,鼠標右鍵該文件,在彈出的菜單中選擇“復制到文件夾”開始下載,下載完后在iris工具欄中按 按鈕停止抓包。圖4顯示的就是ftp的整個過程,下面我們將詳細分析這個過程.說明:為了能抓到arp協(xié)議的包,在windows 2000 中運行arpd 清除arp緩存。四、過程分析 1、tcp/ip的基本原理 本文的重點雖然是根據(jù)實例來解析tcp/ip,但要講明白下面的過程必須簡要講一下tcp/ip的基本
5、原理。 1)網(wǎng)絡是分層的,每一層分別負責不同的通信功能。 tcp/ip通常被認為是一個四層協(xié)議系統(tǒng),tcp/ip協(xié)議族是一組不同的協(xié)議組合在一起構成的協(xié)議族。盡管通常稱該協(xié)議族為tcp/ip,但tcp和ip只是其中的兩種協(xié)議而已,如表1所示。每一層負責不同的功能: tcp/ip層描述 主要協(xié)議 主要功能 應用層 http、telnet、ftp和e-mail等 負責把數(shù)據(jù)傳輸?shù)絺鬏攲踊蚪邮諒膫鬏攲臃祷氐臄?shù)據(jù) 傳輸層 tcp和upd 主要為兩臺主機上的應用程序提供端到端的通信,tcp為兩臺主機提供可靠的數(shù)據(jù)通信。它所做的工作包括把應用程序交給它的數(shù)據(jù)分成合適的小塊交給下面的網(wǎng)絡層,確認接收到的分組
6、,設置發(fā)送最后確認分組的超時時鐘等。upd則為應用層提供一種非常簡單的服務。它只是把稱作數(shù)據(jù)報的分組從一臺主機發(fā)送到另一臺主機,但并不保證該數(shù)據(jù)能到達另一端。 網(wǎng)絡層 icmp、ip和igmp 有時稱作互聯(lián)網(wǎng)層,主要為數(shù)據(jù)包選擇路由,其中ip是tcp/ip協(xié)議族中最為核心的協(xié)議。所有的tcp、upd、icmp及igmp數(shù)據(jù)協(xié)議都以ip數(shù)據(jù)包格式傳輸。 鏈路層 arp、rarp和設備驅動程序及接口卡 發(fā)送時將ip包作為幀發(fā)送;接收時把接收到的位組裝成幀;提供鏈路管理、錯誤檢測等。 分層的概念說起來非常簡單,但在實際的應用中非常的重要,在進行網(wǎng)絡設置和排除故障時對網(wǎng)絡層次理解得很透,將對工作有很大
7、的幫助。例如:設置路由是網(wǎng)絡層ip協(xié)議的事,要查找mac地址是鏈路層arp的事,常用的ping命令由icmp協(xié)議來做的。 圖5顯示了各層協(xié)議的關系,理解它們之間的關系對下面的協(xié)議分析非常重要。 2)數(shù)據(jù)發(fā)送時是自上而下,層層加碼;數(shù)據(jù)接收時是自下而上,層層解碼。 當應用程序用tcp傳送數(shù)據(jù)時,數(shù)據(jù)被送入?yún)f(xié)議棧中,然后逐個通過每一層直到被當作一串比特流送入網(wǎng)絡。其中每一層對收到的數(shù)據(jù)都要增加一些首部信息(有時還要增加尾部信息),該過程如圖6所示。tcp傳給ip的數(shù)據(jù)單元稱作tcp報文段或簡稱為tcp段。i p傳給網(wǎng)絡接口層的數(shù)據(jù)單元稱作ip數(shù)據(jù)報。 通過以太網(wǎng)傳輸?shù)谋忍亓鞣Q作幀(frame)。
8、數(shù)據(jù)發(fā)送時是按照圖6自上而下,層層加碼;數(shù)據(jù)接收時是自下而上,層層解碼.3)邏輯上通訊是在同級完成的 垂直方向的結構層次是當今普遍認可的數(shù)據(jù)處理的功能流程。每一層都有與其相鄰層的接口。為了通信,兩個系統(tǒng)必須在各層之間傳遞數(shù)據(jù)、指令、地址等信息,通信的邏輯流程與真正的數(shù)據(jù)流的不同。雖然通信流程垂直通過各層次,但每一層都在邏輯上能夠直接與遠程計算機系統(tǒng)的相應層直接通信。 從圖7可以看出,通訊實際上是按垂直方向進行的,但在邏輯上通信是在同級進行的。 2、過程描述 為了更好的分析協(xié)議,我們先描述一下上述例子數(shù)據(jù)的傳輸步驟。如圖8所示: 1)ftp客戶端請求tcp用服務器的ip地址建立連接。 2)tcp
9、發(fā)送一個連接請求分段到遠端的主機,即用上述ip地址發(fā)送一份ip數(shù)據(jù)報。 3) 如果目的主機在本地網(wǎng)絡上,那么ip數(shù)據(jù)報可以直接送到目的主機上。如果目的主機在一個遠程網(wǎng)絡上,那么就通過ip選路函數(shù)來確定位于本地網(wǎng)絡上的下一站路由器地址,并讓它轉發(fā)ip數(shù)據(jù)報。在這兩種情況下,ip數(shù)據(jù)報都是被送到位于本地網(wǎng)絡上的一臺主機或路由器。 4) 本例是一個以太網(wǎng),那么發(fā)送端主機必須把32位的ip地址變換成48位的以太網(wǎng)地址,該地址也稱為mac地址,它是出廠時寫到網(wǎng)卡上的世界唯一的硬件地址。把ip地址翻譯到對應的mac地址是由arp協(xié)議完成的。 5) 如圖的虛線所示,arp發(fā)送一份稱作arp請求的以太網(wǎng)數(shù)據(jù)幀
10、給以太網(wǎng)上的每個主機,這個過程稱作廣播。arp請求數(shù)據(jù)幀中包含目的主機的ip地址,其意思是“如果你是這個ip地址的擁有者,請回答你的硬件地址。” 6) 目的主機的arp層收到這份廣播后,識別出這是發(fā)送端在尋問它的ip地址,于是發(fā)送一個arp應答。這個arp應答包含i p地址及對應的硬件地址。 7) 收到arp應答后,使arp進行請求應答交換的ip數(shù)據(jù)包現(xiàn)在就可以傳送了。 8) 發(fā)送ip數(shù)據(jù)報到目的主機。 3、實例分析 下面通過分析用iris捕獲的包來分析一下tcp/ip的工作過程,為了更清晰的解釋數(shù)據(jù)傳送的過程,我們按傳輸?shù)牟煌A段抓了四組數(shù)據(jù),分別是查找服務器、建立連接、數(shù)據(jù)傳輸和終止連接。
11、每組數(shù)據(jù),按下面三步進行解釋。顯示數(shù)據(jù)包解釋該數(shù)據(jù)包按層分析該包的頭信息 第一組 查找服務器 1)圖9顯示的是1、2行的數(shù)據(jù) 2)解釋數(shù)據(jù)包 這兩行數(shù)據(jù)就是查找服務器及服務器應答的過程。 在第1行中,源端主機的mac地址是00:50:fc:22:c7:be。目的端主機的mac地址是ff:ff:ff:ff:ff:ff,這個地址是十六進制表示的,f換算為二進制就是1111,全1的地址就是廣播地址。所謂廣播就是向本網(wǎng)上的每臺網(wǎng)絡設備發(fā)送信息,電纜上的每個以太網(wǎng)接口都要接收這個數(shù)據(jù)幀并對它進行處理,這一行反映的是步驟5)的內(nèi)容,arp發(fā)送一份稱作arp請求的以太網(wǎng)數(shù)據(jù)幀給以太網(wǎng)上的每個主機。網(wǎng)內(nèi)的每個
12、網(wǎng)卡都接到這樣的信息“誰是的ip地址的擁有者,請將你的硬件地址告訴我”。 第2行反映的是步驟6)的內(nèi)容。在同一個以太網(wǎng)中的每臺機器都會"接收"到這個報文,但正常狀態(tài)下除了1號機外其他主機應該會忽略這個報文,而1號的主機的arp層收到這份廣播報文后,識別出這是發(fā)送端在尋問它的ip地址,于是發(fā)送一個arp應答。告知自己的ip地址和mac地址。第2行可以清楚的看出1號回答的信息_自己的mac地址00:50:fc:22:c7:be。 這兩行反映的是數(shù)據(jù)鏈路層之間一問一答的通信過程。這個過程就像我要在一個坐滿人的教室找一個叫“張三”的人,在門口喊了一聲“張三
13、”,這一聲大家都聽見了,這就叫廣播。張三聽到后做了回應,別人聽到了沒做回應,這樣就與張三取得了聯(lián)系。 3)頭信息分析 如下圖10左欄所示,第1數(shù)據(jù)包包含了兩個頭信息:以太網(wǎng)(ethernet)和arp。 下面是以太網(wǎng)的頭信息,括號內(nèi)的數(shù)均為該字段所占字節(jié)數(shù),以太網(wǎng)報頭中的前兩個字段是以太網(wǎng)的源地址和目的地址。目的地址為全1的特殊地址是廣播地址。電纜上的所有以太網(wǎng)接口都要接收廣播的數(shù)據(jù)幀。兩個字節(jié)長的以太網(wǎng)幀類型表示后面數(shù)據(jù)的類型。對于arp請求或應答來說,該字段的值為0806。 第2行中可以看到,盡管arp請求是廣播的,但是arp應答的目的地址卻是1號機的(00 50 fc 22 c7 be)
14、。arp應答是直接送到請求端主機的。 行 以太網(wǎng)目的地址(6) 以太網(wǎng)源地址(6) 幀類型(2) 1 ff ff ff ff ff ff 00 50 fc 22 c7 be 06 06 2
15、160; 00 50 fc 22 c7 be 00 50 27 f6 50 53 06 06 下面是arp協(xié)議的頭信息。硬件類型字段表示硬件地址的類型。它的值為1即表示以太網(wǎng)地址。協(xié)議類型字段表示要映射的協(xié)議地址類型。它的值為0800即表示ip地址。它的值與包含i p數(shù)據(jù)報的以太網(wǎng)數(shù)據(jù)幀中的類型字段的值相同。接下來的兩個1字節(jié)的字
16、段,硬件地址長度和協(xié)議地址長度分別指出硬件地址和協(xié)議地址的長度,以字節(jié)為單位。對于以太網(wǎng)上ip地址的arp請求或應答來說,它們的值分別為6和4。op即操作(opoperation),1是arp請求、2是arp應答、3是rarp請求和4為rarp應答,第二行中該字段值為2表示應答。接下來的四個字段是發(fā)送端的硬件地址、發(fā)送端的ip地址、目的端的硬件地址和目的端ip地址。注意,這里有一些重復信息:在以太網(wǎng)的數(shù)據(jù)幀報頭中和arp請求數(shù)據(jù)幀中都有發(fā)送端的硬件地址。對于一個arp請求來說,除目的端硬件地址外的所有其他的字段都有填充值。 表3的第2行為應答,當系統(tǒng)收到一份目的端為本機的arp請求報文后,它就
17、把硬件地址填進去,然后用兩個目的端地址分別替換兩個發(fā)送端地址,并把操作字段置為2,最后把它發(fā)送回去。 行 硬件類型(2) 協(xié)議類型(2) 硬件地址長度(1) 協(xié)議地址長度(1) op(2) 發(fā)送端以太網(wǎng)地址(6) 發(fā)送端ip地址(4)1 00 00 08 00
18、60; 06 06 00 01
19、0; 0050fc22c7be c0a871d02 00 00 08 00
20、 06 06 00 02 &
21、#160; 005027f65053 c0a871d1目的以太網(wǎng)地址(6) 目的ip地址(4) 000000000000 c0a871d10050fc22c7be &
22、#160; c0a871d0第二組 建立連接 1)圖11顯示的是3-5行的數(shù)據(jù) 2)解釋數(shù)據(jù)包 這三行數(shù)據(jù)是兩機建立連接的過程。 這三行的核心意思就是tcp協(xié)議的三次握手。tcp的數(shù)據(jù)包是靠ip協(xié)議來傳輸?shù)摹5玦p協(xié)議是只管把數(shù)據(jù)送到出去,但不能保證ip數(shù)據(jù)報能成功地到達目的地,保證數(shù)據(jù)的可靠傳輸是靠tcp協(xié)議來完成的。當接收端收到來自發(fā)送端的信息時,接受端詳發(fā)送短發(fā)送一條應答信息,意思是:“我已收到你的信息了。”第三組數(shù)據(jù)將能看到這個過程。tcp是一個面向連接的協(xié)議。無論哪一方向另一方發(fā)送數(shù)據(jù)之前,都必須先在雙方之間建立一條連接。建立連接的過程
23、就是三次握手的過程。 這個過程就像要我找到了張三向他借幾本書,第一步:我說:“你好,我是擔子”,第二步:張三說:“你好,我是張三”,第三步:我說:“我找你借幾本書。”這樣通過問答就確認對方身份,建立了聯(lián)系。 下面來分析一下此例的三次握手過程。 1)請求端208號機發(fā)送一個初始序號(seq)987694419給1號機。 2)服務器1號機收到這個序號后,將此序號加1值為987694419作為應答信號(ack),同時隨機產(chǎn)生一個初始序號(seq)1773195208,這兩個信號同時發(fā)回到請求端208號機,意思為:“消息已收到,讓我們的數(shù)據(jù)流以1773195208這個數(shù)開始?!?3)請求端208號機收
24、到后將確認序號設置為服務器的初始序號(seq)1773195208加1為1773195209作為應答信號。 以上三步完成了三次握手,雙方建立了一條通道,接下來就可以進行數(shù)據(jù)傳輸了。 下面分析tcp頭信息就可以看出,在握手過程中tcp頭部的相關字段也發(fā)生了變化。 3)頭信息分析 如圖12所示,第3數(shù)據(jù)包包含了三頭信息:以太網(wǎng)(ethernet)和ip和tcp。 頭信息少了arp多了ip、tcp,下面的過程也沒有arp的參與,可以這樣理解,在局域網(wǎng)內(nèi),arp負責的是在眾多聯(lián)網(wǎng)的計算機中找到需要找的計算機,找到工作就完成了。 以太網(wǎng)的頭信息與第1、2行不同的是幀類型為0800,指明該幀類型為ip。
25、ip協(xié)議頭信息 ip是tcp/ip協(xié)議族中最為核心的協(xié)議。從圖5可以看出所有的tcp、udp、icmp及igmp數(shù)據(jù)都以ip數(shù)據(jù)報格式傳輸?shù)模袀€形象的比喻ip協(xié)議就像運貨的卡車,將一車車的貨物運向目的地。主要的貨物就是tcp或udp分配給它的。需要特別指出的是ip提供不可靠、無連接的數(shù)據(jù)報傳送,也就是說i p僅提供最好的傳輸服務但不保證ip數(shù)據(jù)報能成功地到達目的地??吹竭@你會不會擔心你的e_mail會不會送到朋友那,其實不用擔心,上文提過保證數(shù)據(jù)正確到達目的地是tcp的工作,稍后我們將詳細解釋。 圖12中所宣布分45 0071 01為ip的頭信息。這些數(shù)是十六進制表示的。一個數(shù)占4位,例如:
26、4的二進制是0100 4位版本:表示目前的協(xié)議版本號,數(shù)值是4表示版本為4,因此ip有時也稱作ipv4; 4位首部長度:頭部的是長度,它的單位是32位(4個字節(jié)),數(shù)值為5表示ip頭部長度為20字節(jié)。 8位服務類型(tos):00,這個8位字段由3位的優(yōu)先權子字段,現(xiàn)在已經(jīng)被忽略,4位的tos子字段以及1 位的未用字段(現(xiàn)在為0)構成。4位的tos子字段包含:最小延時、最大吞吐量、最高可靠性以及最小費用構成,這四個1位最多只能有一個為1,本例中都為0,表示是一般服務。 16位總長度:總長度字段是指整個ip數(shù)據(jù)報的長度,以字節(jié)為單位。數(shù)值為00 30,換算為十進制為48字節(jié),48字節(jié)=20字節(jié)
27、的ip頭+28字節(jié)的tcp頭,這個數(shù)據(jù)報只是傳送的控制信息,還沒有傳送真正的數(shù)據(jù),所以目前看到的總長度就是報頭的長度。 16位標識:標識字段唯一地標識主機發(fā)送的每一份數(shù)據(jù)報。通常每發(fā)送一份報文它的值就會加1,第3行為數(shù)值為30 21,第5行為30 22,第7行為30 23。分片時涉及到標志字段和片偏移字段,本文不討論這兩個字段。 8位生存時間(ttl):ttl(time-to-live)生存時間字段設置了數(shù)據(jù)報可以經(jīng)過的最多路由器數(shù)。它指定了數(shù)據(jù)報的生存時間。ttl的初始值由源主機設置,一旦經(jīng)過一個處理它的路由器,它的值就減去1??筛鶕?jù)ttl值判斷服務器是什么系統(tǒng)和經(jīng)過的路由器。本例為80,換
28、算成十進制為128,windows操作系統(tǒng)ttl初始值一般為128,unix操作系統(tǒng)初始值為255,本例表示兩個機器在同一網(wǎng)段且操作系統(tǒng)為windows。 8位協(xié)議:表示協(xié)議類型,6表示傳輸層是tcp協(xié)議。 16位首部檢驗和:當收到一份ip數(shù)據(jù)報后,同樣對首部中每個16 位進行二進制反碼的求和。由于接收方在計算過程中包含了發(fā)送方存在首部中的檢驗和,因此,如果首部在傳輸過程中沒有發(fā)生任何差錯,那么接收方計算的結果應該為全1。如果結果不是全1,即檢驗和錯誤,那么ip就丟棄收到的數(shù)據(jù)報。但是不生成差錯報文,由上層去發(fā)現(xiàn)丟失的數(shù)據(jù)報并進行重傳。 32位源ip地址和32位目的ip地址:實際這是ip協(xié)議中
29、核心的部分,但介紹這方面的文章非常多,本文搭建的又是一個最簡單的網(wǎng)絡結構,不涉及路由,本文對此只做簡單介紹,相關知識請參閱其它文章。32位的ip地址由一個網(wǎng)絡id和一個主機id組成。本例源ip地址為c0 a8 71 d0,轉換為十進制為:08; 目的ip地址為c0 a8 71 01,轉換為十進制為:。網(wǎng)絡地址為192.168.113,主機地址分別為1和208,它們的網(wǎng)絡地址是相同的所以在一個網(wǎng)段內(nèi),這樣數(shù)據(jù)在傳送過程中可直接到達。 tcp協(xié)議頭信息 端口號:常說ftp占21端口、http占80端口、telnet占23端口等,這里指的端口就是t
30、cp或udp的端口,端口就像通道兩端的門一樣,當兩機進行通訊時門必須是打開的。源端口和目的端口各占16位,2的16次方等于65536,這就是每臺電腦與其它電腦聯(lián)系所能開的“門”。一般作為服務一方每項服務的端口號是固定的。本例目的端口號為00 15,換算成十進制為21,這正是ftp的默認端口,需要指出的是這是ftp的控制端口,數(shù)據(jù)傳送時用另一端口,第三組的分析能看到這一點??蛻舳伺c服務器聯(lián)系時隨機開一個大于1024的端口,本例為04 28,換算成十進制為1064。你的電腦中了木馬也會開一個服務端口。觀察端口非常重要,不但能看出本機提供的正常服務,還能看出不正常的連接。windows察看端口的命令
31、時netstat。 32位序號:也稱為順序號(sequence number),簡寫為seq,從上面三次握手的分析可以看出,當一方要與另一方聯(lián)系時就發(fā)送一個初始序號給對方,意思是:“讓我們建立聯(lián)系吧?”,服務方收到后要發(fā)個獨立的序號給發(fā)送方,意思是“消息收到,數(shù)據(jù)流將以這個數(shù)開始?!庇纱丝煽闯?,tcp連接完全是雙向的,即雙方的數(shù)據(jù)流可同時傳輸。在傳輸過程中雙方數(shù)據(jù)是獨立的,因此每個tcp連接必須有兩個順序號分別對應不同方向的數(shù)據(jù)流。 32位確認序號:也稱為應答號(acknowledgment number),簡寫為ack。在握手階段,確認序號將發(fā)送方的序號加1作為回答,在數(shù)據(jù)傳輸階段,確認序號
32、將發(fā)送方的序號加發(fā)送的數(shù)據(jù)大小作為回答,表示確實收到這些數(shù)據(jù)。在第三組的分析中將看到這一過程。 4位首部長度:這個字段占4位,它的單位時32位(4個字節(jié))。本例值為7,tcp的頭長度為28字節(jié),等于正常的長度2 0字節(jié)加上可選項8個字節(jié)。,tcp的頭長度最長可為60字節(jié)(二進制1111換算為十進制為15,15*4字節(jié)=60字節(jié))。 6個標志位: urg 緊急指針,告訴接收tcp模塊緊要指針域指著緊要數(shù)據(jù) ack 置1時表示確認號(為合法,為0的時候表示數(shù)據(jù)段不包含確認信息,確認號被忽略。 psh 置1時請求的數(shù)據(jù)段在接收方得到后就可直接送到應用程序,而不必等到緩沖區(qū)滿時才傳送。 rst 置1時
33、重建連接。如果接收到rst位時候,通常發(fā)生了某些錯誤。 syn 置1時用來發(fā)起一個連接。 fin 置1時表示發(fā)端完成發(fā)送任務。用來釋放連接,表明發(fā)送方已經(jīng)沒有數(shù)據(jù)發(fā)送了。 圖13的3個圖分別為3-5行tcp協(xié)議的頭信息,這三行是三次握手的過程,我們看看握手的過程標志位發(fā)生了什么? 如圖13-1請求端208號機發(fā)送一個初始序號(seq)987694419給1號機。標志位syn置為1。 如圖13-2服務器1號機收到這個序號后,將應答信號(ack)和隨機產(chǎn)生一個初始序號(seq)1773195208發(fā)回到請求端208號機,因為有應答信號和初始序號,所以標志位ack和syn都置為1。 如圖13-3請求
34、端208號機收到1號機的信號后,發(fā)回信息給1號機。標志位ack置為1,其它標志為都為0。注意此時syn值為0,syn是標示發(fā)起連接的,上兩部連接已經(jīng)完成。 16位窗口大?。簍cp的流量控制由連接的每一端通過聲明的窗口大小來提供。窗口大小為字節(jié)數(shù),起始于確認序號字段指明的值,這個值是接收端正期望接收的字節(jié)。窗口大小是一個16字節(jié)字段,因而窗口大小最大為65535字節(jié)。 16位檢驗和:檢驗和覆蓋了整個的tcp報文段: tcp首部和tcp數(shù)據(jù)。這是一個強制性的字段,一定是由發(fā)端計算和存儲,并由收端進行驗證。 16位緊急指針:只有當u r g標志置1時緊急指針才有效。緊急指針是一個正的偏移量,和序號字
35、段中的值相加表示緊急數(shù)據(jù)最后一個字節(jié)的序號。 選項:圖13-1和圖13-2有8個字節(jié)選項,圖13-3沒有選項。最常見的可選字段是最長報文大小,又稱為mss (maximum segment size)。每個連接方通常都在握手的第一步中指明這個選項。它指明本端所能接收的最大長度的報文段。圖13-1可以看出208號機可以接受的最大字節(jié)數(shù)為1460字節(jié),1460也是以太網(wǎng)默認的大小,在第三組的數(shù)據(jù)分析中可以看到數(shù)據(jù)傳送正是以1460字節(jié)傳送的。 握手小結 上面我們分開講了三次握手,看著有點散,現(xiàn)在小結一下。 圖13a第三組 數(shù)據(jù)傳輸 1)下圖顯示的是57-60行的數(shù)據(jù) 2)解釋數(shù)據(jù)包 這四行數(shù)據(jù)是數(shù)
36、據(jù)傳輸過程中一個發(fā)送一個接收的過程。 前文說過,tcp提供一種面向連接的、可靠的字節(jié)流服務。當接收端收到來自發(fā)送端的信息時,接受端要發(fā)送一條應答信息,表示收到此信息。數(shù)據(jù)傳送時被tcp分割成認為最適合發(fā)送的數(shù)據(jù)塊。一般以太網(wǎng)在傳送時tcp將數(shù)據(jù)分為1460字節(jié)。也就是說數(shù)據(jù)在發(fā)送方被分成一塊一塊的發(fā)送,接受端收到這些數(shù)據(jù)后再將它們組合在一起。 57行顯示1號機給208號機發(fā)送了大小為1514字節(jié)大小的數(shù)據(jù),注意我們前文講過數(shù)據(jù)發(fā)送時是層層加協(xié)議頭的,1514字節(jié)=14字節(jié)以太網(wǎng)頭 + 20字節(jié)ip頭 + 20字節(jié)tcp頭 + 1460字節(jié)數(shù)據(jù) 58行顯示的應答信號ack為:1781514222
37、,這個數(shù)是57行得seq序號1781512762加上傳送的數(shù)據(jù)1460,208號機將這個應答信號發(fā)給1號機說明已收到發(fā)來的數(shù)據(jù)。 59、60行顯示的是繼續(xù)傳送數(shù)據(jù)的過程。 這個過程就像我向張三借書,借給我?guī)妆疚乙f:“我已借了你幾本了。”,他說:“知道了”。 3)頭信息 圖15-1和圖15-2分別是57行和58行的頭信息,解釋參考第二組第四組 終止連接 1)圖16顯示的是93-96行的數(shù)據(jù)2)解釋數(shù)據(jù)包 93-96是兩機通訊完關閉的過程。 建立一個連接需要三次握手,而終止一個連接要經(jīng)過4次握手。這是因為一個tcp連接是全雙工(即數(shù)據(jù)在兩個方向上能同時傳遞),每個方向必須單獨地進行關閉。4次握手
38、實際上就是雙方單獨關閉的過程。 本例文件下載完后,關閉瀏覽器終止了與服務器的連接圖16的93-96行顯示的就是終止連接所經(jīng)過4次握手過程。 93行數(shù)據(jù)顯示的是關閉瀏覽器后,如圖17-1所示208號機將fin置1連同序號(seq)987695574發(fā)給1號機請求終止連接。 94行數(shù)據(jù)和圖17-2顯示1號機收到fin關閉請求后,發(fā)回一個確認,并將應答信號設置為收到序號加1,這樣就終止了這個方向的傳輸。 95行數(shù)據(jù)和圖17-3顯示1號機將fin置1連同序號(seq)1773196056發(fā)給208號機請求終止連接。 96行數(shù)據(jù)和圖17-4顯示208號機收到fin關閉請求后,發(fā)回一個確認,并將應答信號設置為收到序號加1,至此tcp連接徹底關閉。 3)頭信息 五、掃描實例 下面我們再舉個ping的實例,測試某臺計算機是否通,最常用的命令就是ping命令。ping 一臺計算機,出現(xiàn)如圖18所示界面就是通,出現(xiàn)如圖19所示界面就是不通,不通有兩種情況,一是該計算機不存在或沒接網(wǎng)線,二是該計算機安裝了防火墻并設置為不允許ping。如何區(qū)別這兩種情況呢?下面還是利用iris跟蹤上述情況
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 四川省瀘州市瀘縣2024-2025學年高二上學期1月期末考試 化學試題(含答案)
- 福建省泉州市2025屆高中畢業(yè)班質量監(jiān)測 (二)地理試題(含答案)
- 08信管1班 080802011017 宏觀經(jīng)濟學論文
- 浙江省寧波市九校2024-2025學年高二上學期期末聯(lián)考數(shù)學試題答案
- 2024小學語文教師心得體會(33篇)
- 福建省南平市嵐谷中學2020-2021學年高三生物期末試卷含解析
- 福建省南平市井后中學2022年高二數(shù)學文模擬試卷含解析
- 2025年度安全生產(chǎn)隱患排查治理合同范本6篇
- 2024版港口物流場地租賃合同
- 2025年度企業(yè)財務內(nèi)部審計與合規(guī)性檢查合同3篇
- 新生兒腭裂護理查房課件
- 二年級下冊科學課程綱要
- 前交叉韌帶重建術后康復訓練
- 河南近10年中考真題數(shù)學含答案(2023-2014)
- 八年級上學期期末家長會課件
- 2024年大學試題(宗教學)-佛教文化歷年考試高頻考點試題附帶答案
- 軟件項目服務外包工作管理辦法
- 紅薯系列產(chǎn)品項目規(guī)劃設計方案
- 人教版九年級上冊化學默寫總復習
- 無人機地形匹配導航
- 2023-餐飲公司章程范本
評論
0/150
提交評論