



下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、TCP三次握手/四次揮手詳解TCP(Tra nsmissio nCon trol Protocol)傳輸控制協(xié)議TCP是主機對主機層的傳輸控制協(xié)議,提供可靠的連接服務,采用三次握手確認建立一個連接:位碼即tcp標志位,有6種標示:SYN(synchronous建立聯(lián)機)ACK(acknowledgement確認)PSH(push 傳送ST(reset 重置)URG(urgent緊急)Sequeneenumber( 順序號碼)Acknowledgenumber( 確認號碼)第一次握手:主機 A發(fā)送位碼為syn = 1,隨機產(chǎn)生seq number=1234567的數(shù)據(jù)包到服務器,主機B由SYN=
2、機;第二次握手:主機B收到請求后要確認聯(lián)機信息,向A發(fā)送ack number=(主機A的seq+1),syn=1,ack=1,隨1的包第三次握手:主機 A收到后檢查ack number 是否正確,即第一次發(fā)送的seq number+1, 以及位碼ack是否為再發(fā)送ack number=( 主機B的seq+1),ack=1 ,主機B收到后確認seq值與ack=1 則連接建立成功。完成三次握手,主機 A與主機B開始傳送數(shù)據(jù)。在TCP/IP協(xié)議中,TCP協(xié)議提供可靠的連接服務,采用三次握手建立一個連接。第一次握手:建立連接時,客戶端發(fā)送syn包(syn=j)到服務器,并進入 SYN_SEND 狀態(tài),
3、等待服務器確認;第二次握手:服務器收到syn包,必須確認客戶的SYN (ack=j+1 ),同時自己也發(fā)送一個 SYN包(syn=k ),時服務器 進入SYN_RECV 狀態(tài); 第三次握手:客戶端收到服務器的完畢,客戶端和服務器進入ESTABLISHED 狀態(tài),完成三次握手。SYN + ACK包,向服務器發(fā)送確認包 ACK( 完成三次握手,客戶端與服務器開始傳送數(shù)據(jù)實例:IP16.3337>IP23.7788>IP16.3337>第一次握手:1623.7788:192
4、.337:23.7788:S 3626544836:3626544836S 1739326486:1739326486 ack 1739326487,ack1發(fā)送位碼 syn = 1,隨機產(chǎn)生 seq number=3626544836ack 3626544837的數(shù)據(jù)包到192.168.1.由 SYN=1 知道 16要求建立聯(lián)機第二次握手:23收到請求后要確認聯(lián)機信息,向16 發(fā)送ack number=362654483機產(chǎn)生seq=1739326486 的包;第 三次握手:192.
5、168.1.116 收到后檢查 ack number 是否正確,即第一次發(fā)送的 seq number+1, 以及位碼16會再發(fā)送 ack number=1739326487,ack=1,23收到后確認 seq=seq+1,ack圖解:一個三次握手的過程(圖 1,圖2 )124.147.192,147:3867220,131.23, 42: ww-http220.26.42: ww-http47:3067124.147,192,147:3667220-101-2&.42:www-http(圖1 )220.181.2B.
6、 42 i ww-htcpHTTP90序列號L65S526435fD而fdOD標廨氛悵124.147,192.147:3667HTTP76庠列 =3581866967,= 1655526440,標志二乳狂220,42; ww-hctpHTTP66齢列號 1655526440, A號3於1加活麗聯(lián)孟口冉衣(圖2)第一次握手的標志位(圖 3 )我們可以看到標志位里面只有個同步位,也就是在做請求(SYN)th »0 。i A * fl X Iv v 甲 0-O購急也:O確認12:O憊迫怕:©同步悝:O終止也:(圖3) 第二次握手的標志位(圖 4)(SYN + ACK)我們可以看到
7、標志位里面有個確認位和同步位,也就是在做應答U標志:.01 0010卜Q篇急位:0.;Q確認位:|Q急迫也:* 口 | Q重置也:*01 O同步悅:-“Q終止悅:- b * 0(圖4)第三次握手的標志位(圖5)我們可以看到標志位里面只有個確認位,也就是再做再次確認(ACK)J 標志;0000-O第急位;.+00丄» -O迫迫餃:-0,.,-.O至直也; * CL *罔步位:0.L.Q終止位:0(圖5) 一個完整的三次握手也就是 請求-應答-再次確認四次分手:由于TCP連接是全雙工的,因此每個方向都必須單獨進行關(guān)閉。這個原則是當一方完成它的數(shù)據(jù)發(fā)送任務后就能發(fā)送一個接。收到一個FIN只
8、意味著這一方向上沒有數(shù)據(jù)流動,一個TCP連接在收到一個FIN后仍能發(fā)送數(shù)據(jù)。首先進行關(guān)閉的一方將執(zhí)行被動關(guān)閉。(1) 客戶端A發(fā)送一個FIN,用來關(guān)閉客戶 A到服務器B的數(shù)據(jù)傳送(報文段 4)。(2) 服務器B收到這個FIN,它發(fā)回一個ACK,確認序號為收到的序號加1 (報文段5)。和SYN 一樣,一個FIN將占用(3) 服務器B關(guān)閉與客戶端 A的連接,發(fā)送一個 FIN給客戶端A (報文段6)。(4) 客戶端A發(fā)回ACK報文確認,并將確認序號設置為收到序號加1 (報文段7)。狀態(tài)詳解CLOSED :這個沒什么好說的了,表示初始狀態(tài)。LISTEN :這個也是非常容易理解的一個狀態(tài),表示服務器端的
9、某個SOCKET處于監(jiān)聽狀態(tài),可以接受連接了SYN_RCVD :這個狀態(tài)表示接受到了SYN報文,在正常情況下,這個狀態(tài)是服務器端的SOCKET在建立-會話過程中的一個中間狀態(tài),很短暫,基本上用n etstat你是很難看到這種狀態(tài)的,除非你特意寫了一個客戶端測試CP握手過程中最后一個 ACK報文不予發(fā)送。因此這種狀態(tài)時,當收到客戶端的ACK報文后,它會進入到 ESTABSYN_SENT : 這個狀態(tài)與 SYN_RCVD 遙想呼應,當客戶端 SOCKET 執(zhí)行CONNECT 連接時,它首先發(fā)送 即它會進入到了 SYN_SENT狀態(tài),并等待服務端的發(fā)送三次握手中的第2個報文。SYN_SENT狀態(tài)表示
10、客戶端已ESTABLISHED :這個容易理解了,表示連接已經(jīng)建立了。FIN_WAIT_1 :這個狀態(tài)要好好解釋一下,其實FIN_WAIT_1 和FIN_WAIT_2狀態(tài)的真正含義都是表示而這兩種狀態(tài)的區(qū)別是:FIN_WAIT_1狀態(tài)實際上是當 SOCKET在ESTABLISHED 狀態(tài)時,它想主動關(guān)閉連接,文,此時該 SOCKET即進入到FIN_WAIT_1 狀態(tài)。而當對方回應 ACK報文后,則進入到 FIN_WAIT_2狀態(tài),當下,無論對方何種情況下,都應該馬上回應ACK報文,所以FIN_WAIT_1狀態(tài)一般是比較難見到的,而FIN_WA可以用netstat 看到。FIN_WAIT_2 :
11、上面已經(jīng)詳細解釋了這種狀態(tài),實際上 FIN_WAIT_2狀態(tài)下的SOCKET,表示半連接,也連接,但另外還告訴對方,我暫時還有點數(shù)據(jù)需要傳送給你,稍后再關(guān)閉連接。TIME_WAIT : 表示收到了對方的 FIN報文,并發(fā)送岀了 ACK報文,就等2MSL后即可回到CLOSED 可丿 WAIT_1 狀態(tài)下,收到了對方同時帶FIN標志和ACK標志的報文時,可以直接進入到TIME_WAIT 狀態(tài),而無須態(tài)。CLOSING :這種狀態(tài)比較特殊,實際情況中應該是很少見,屬于一種比較罕見的例外狀態(tài)。正常情況下,當 按理來說是應該先收到(或同時收到)對方的 ACK報文,再收到對方的 FIN報文。但是CLOSI
12、NG 狀態(tài)表示你發(fā)送 收到對方的ACK報文,反而卻也收到了對方的FIN報文。什么情況下會岀現(xiàn)此種情況呢?其實細想一下,也不難得雙方幾乎在同時 close 一個SOCKET的話,那么就岀現(xiàn)了雙方同時發(fā)送FIN報文的情況,也即會岀現(xiàn)CLOSING關(guān)閉SOCKET連接。CLOSE_WAIT :這種狀態(tài)的含義其實是表示在等待關(guān)閉。怎么理解呢?當對方close 一個SOCKET后發(fā)送系統(tǒng)毫無疑問地會回應一個ACK報文給對方,此時則進入到CLOSE_WAIT 狀態(tài)。接下來呢,實際上你真正需要考 否還有數(shù)據(jù)發(fā)送給對方,如果沒有的話,那么你也就可以 close 這個 SOCKET ,發(fā)送 FIN 報文給對方,
13、也即關(guān)閉連 _WAIT 狀態(tài)下,需要完成的事情是等待你去關(guān)閉連接。LAST_ACK : 這個狀態(tài)還是比較容易好理解的,它是被動關(guān)閉一方在發(fā)送 FIN 報文后,最后等待對方的 AC 報文后,也即可以進入到 CLOSED 可用狀態(tài)了。總結(jié):1為什么建立連接協(xié)議是三次握手,而關(guān)閉連接卻是四次握手呢?這是因為服務端的 LISTEN 狀態(tài)下的 SOCKET 當收到 SYN 報文的建連請求后,它可以把 ACK 和 SYN (ACK 起應答作用, 在一個報文里來發(fā)送。但關(guān)閉連接時,當收到對方的 FIN 報文通知時,它僅僅表示對方?jīng)]有數(shù)據(jù)發(fā)送給你了;但未必你所有的數(shù) 所以你可以未必會馬上會關(guān)閉 SOCKET, 也即你可能還需要發(fā)送一些數(shù)據(jù)給對方之后,再發(fā)送FIN 報文給對方來表示你同意現(xiàn)在可這里的 ACK 報文和 FIN 報文多數(shù)情況下都是分開發(fā)送的 .2為什么 TIME_WAIT 狀態(tài)還需要等 2MS
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2023一年級數(shù)學上冊 六 認識圖形第2課時 我說你做教學設計 北師大版
- 2023七年級英語下冊 Unit 7 It's raining Section A 第1課時(1a-2d)教學設計 (新版)人教新目標版
- 七年級地理上冊 第三章 第三節(jié) 降水的變化與分布教學設計3 (新版)新人教版
- 2024-2025學年高中物理 第二章 機械波 5 波的干涉、衍射教學設計2 教科版選修3-4
- 10我們愛和平 教學設計
- 4《少讓父母為我操心》教學設計-2023-2024學年道德與法治四年級上冊統(tǒng)編版
- 2024八年級英語下冊 Unit 1 Spring Is ComingLesson 2 It's Getting Warmer教學設計(新版)冀教版
- 三年級信息技術(shù)下冊 第5課《描繪美麗的大自然》教學設計2 川教版
- 13 精衛(wèi)填海教學設計-2024-2025學年四年級上冊語文統(tǒng)編版
- 2024秋三年級英語上冊 Module 4 Unit 2 Its black dog教學設計 外研版(三起)
- GB/T 19822-2024鋁及鋁合金硬質(zhì)陽極氧化膜規(guī)范
- 2024離婚不離家的協(xié)議書
- 【永輝超市公司企業(yè)績效考核方法的案例分析(12000字論文)】
- 海康威視校招在線測評題庫
- 錳礦供應鏈風險評估與控制
- 學校課間安全教育課件
- 正大鍍鋅鋼管檢測報告
- 打樣中心管理制度
- 門球技、戰(zhàn)術(shù)教學講
- 美團外賣平臺轉(zhuǎn)讓協(xié)議
- 2023年1月自考11466現(xiàn)代企業(yè)人力資源管理概論試題及答案含解析
評論
0/150
提交評論