



下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、TCP三次握手/四次揮手詳解TCP(TransmissionControlProtocol)傳輸控制協議TCP是主機對主機層的傳輸控制協議,提供可靠的連接服務,采用三次握手確認建立一個連接:位碼即tcp標志位,有6種標示:SYN(synchronous建立聯機)ACK(acknowledgement確認)PSH(push傳送ST(reset重置)URG(urgent緊急)Sequeneenumber(順序號碼)Acknowledgenumber(確認號碼)第一次握手:主機A發送位碼為syn=1,隨機產生seqnumber=1234567的數據包到服務器,主機B由SYN=機;第二次握手:主機B收
2、到請求后要確認聯機信息,向A發送acknumber=(主機A的seq+1),syn=1,ack=1,隨1的包第三次握手:主機A收到后檢查acknumber是否正確,即第一次發送的seqnumber+1,以及位碼ack是否為再發送acknumber=(主機B的seq+1),ack=1,主機B收到后確認seq值與ack=1則連接建立成功。完成三次握手,主機A與主機B開始傳送數據。在TCP/IP協議中,TCP協議提供可靠的連接服務,采用三次握手建立一個連接。第一次握手:建立連接時,客戶端發送syn包(syn=j)到服務器,并進入SYN_SEND狀態,等待服務器確認;第二次握手:服務器收到syn包,必
3、須確認客戶的SYN(ack=j+1),同時自己也發送一個SYN包(syn=k),時服務器進入SYN_RECV狀態;第三次握手:客戶端收到服務器的SYN+ACK包,向服務器發送確認包ACK(完畢,客戶端和服務器進入ESTABLISHED狀態,完成三次握手。完成三次握手,客戶端與服務器開始傳送數據實例:IP16.333723.7788:S3626544836:3626544836IP23.778816.3337:S1739326486:1739326486ack3626544837IP16.333723.7788:ack1739326487,ack1第一次握手:16發送位碼syn=1,隨機產生se
4、qnumber=3626544836的數據包到192.168.1由SYN=1知道16要求建立聯機;第二次握手:23收到請求后要確認聯機信息,向16發送acknumber=362654483機產生seq=1739326486的包;第三次握手:16收到后檢查acknumber是否正確,即第一次發送的seqnumber+1,以及位碼a16會再發送acknumber=1739326487,ack=1,23收到后確認seq=seq+1,ac圖解:一個三次握手的過程(圖1,圖2)124-147.192.147:38.42:ww-http2:ww-http47:3867124.147-
5、.192.147:38&7220718172842:ww-http圖1).1S1.36.42ww-httpHTTP124.147.19Z.147:3867220.1S1.28.42:ww-httpHTIPHTTP?們胖列尋=1鬲552諭9廐認號=叩喚両他標毎曆詔|癢別號應5552諂疤薩仏$=翕遼&劇福標恚.=血振第一次握手的標志位(圖3)我們可以看到標志位里面只有個同步位,也就是在做請求(SYN)O第急恒:.0O確認恒:.0.O急迫恒:,:.沁0.O玉饑恒:0.O同步恒:-1-O終止恒:0圖3)第二次握手的標志位(圖4)我們可以看到標志位里面有個確認位和同步位,也就是在做應答(SYN+ACK)
6、J標志:.010010O第急程:.0-O魏認位:丄O急道位:0.“O更邊位:0.“O同步位:1.O終止位:0圖4)第三次握手的標志位(圖5)我們可以看到標志位里面只有個確認位,也就是再做再次確認(ACK)=)標志:.010000O第急也:.0O確認也丄O急迫也:0.Q蟲置他:0.O同步慣話0.O終止也舊0(圖5)一個完整的三次握手也就是請求-應答-再次確認四次分手:由于TCP連接是全雙工的,因此每個方向都必須單獨進行關閉。這個原則是當一方完成它的數據發送任務后就能發送一個接。收到一個FIN只意味著這一方向上沒有數據流動,一個TCP連接在收到一個FIN后仍能發送數據。首先進行關閉的一方將執行被動
7、關閉。(1)客戶端A發送一個FIN,用來關閉客戶A到服務器B的數據傳送(報文段4)。(2)服務器B收到這個FIN,它發回一個ACK,確認序號為收到的序號加1(報文段5)。和SYN一樣,一個FIN將占用(3)服務器B關閉與客戶端A的連接,發送一個FIN給客戶端A(報文段6)。(4)客戶端A發回ACK報文確認,并將確認序號設置為收到序號加1(報文段7)。狀態詳解:CLOSED:這個沒什么好說的了,表示初始狀態。LISTEN:這個也是非常容易理解的一個狀態,表示服務器端的某個SOCKET處于監聽狀態,可以接受連接了SYN_RCVD:這個狀態表示接受到了SYN報文,在正常情況下,這個狀態是服務器端的S
8、OCKET在建立-會話過程中的一個中間狀態,很短暫,基本上用netstat你是很難看到這種狀態的,除非你特意寫了一個客戶端測CP握手過程中最后一個ACK報文不予發送。因此這種狀態時,當收到客戶端的ACK報文后,它會進入到ESTAESYN_SENT:這個狀態與SYN_RCVD遙想呼應,當客戶端SOCKET執行CONNECT連接時,它首先發送即它會進入到了SYN_SENT狀態,并等待服務端的發送三次握手中的第2個報文。SYN_SENT狀態表示客戶端已ESTABLISHED:這個容易理解了,表示連接已經建立了。FIN_WAIT_1:這個狀態要好好解釋一下,其實FIN_WAIT_1和FIN_WAIT_
9、2狀態的真正含義都是表示而這兩種狀態的區別是:FIN_WAIT_1狀態實際上是當SOCKET在ESTABLISHED狀態時,它想主動關閉連接,文,此時該SOCKET即進入到FIN_WAIT_1狀態。而當對方回應ACK報文后,則進入到FIN_WAIT_2狀態,下,無論對方何種情況下,都應該馬上回應ACK報文,所以FIN_WAIT_1狀態一般是比較難見到的,而FIN_WA可以用netstat看到。FIN_WAIT_2:上面已經詳細解釋了這種狀態,實際上FIN_WAIT_2狀態下的SOCKET,表示半連接,也連接,但另外還告訴對方,我暫時還有點數據需要傳送給你,稍后再關閉連接。TIME_WAIT:表
10、示收到了對方的FIN報文,并發送出了ACK報文,就等2MSL后即可回到CLOSED可用WAIT_1狀態下,收到了對方同時帶FIN標志和ACK標志的報文時,可以直接進入到TIME_WAIT狀態,而無須態。CLOSING:這種狀態比較特殊,實際情況中應該是很少見,屬于一種比較罕見的例外狀態。正常情況下,當按理來說是應該先收到(或同時收到)對方的ACK報文,再收到對方的FIN報文。但是CLOSING狀態表示你發送收到對方的ACK報文,反而卻也收到了對方的FIN報文。什么情況下會出現此種情況呢?其實細想一下,也不難彳雙方幾乎在同時close一個SOCKET的話,那么就出現了雙方同時發送FIN報文的情況
11、,也即會出現CLOSING關閉SOCKET連接。CLOSE_WAIT:這種狀態的含義其實是表示在等待關閉。怎么理解呢?當對方close一個SOCKET后發送系統毫無疑問地會回應一個ACK報文給對方,此時則進入到CLOSE_WAIT狀態。接下來呢,實際上你真正需要考否還有數據發送給對方,如果沒有的話,那么你也就可以close這個SOCKET,發送FIN報文給對方,也即關閉連_WAIT狀態下,需要完成的事情是等待你去關閉連接。LAST_ACK:這個狀態還是比較容易好理解的,它是被動關閉一方在發送FIN報文后,最后等待對方的AC報文后,也即可以進入到CLOSED可用狀態了。總結:1為什么建立連接協議是三次握手,而關閉連接卻是四次握手呢?這是因為服務端的LISTEN狀態下的SOCKET當收到SYN報文的建連請求后,它可以把ACK和SYN(ACK起應答作用,在一個報文里來發送。但關閉連接時,當收到對方的FIN報文通知時,它僅僅表示對方沒有數據發送給你了;但未必你所有的數所以你可以未必會馬上會關閉SOCKET,也即你可能還需要發送一些數據給對方之后,再發送FIN報文給對方來表示你同意現在這里的ACK報文和FIN報文多數情況下都是分開發送的.2為什么TIME_WAIT狀態還需要等2MSL后才能返回到
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于能量尺度方法的軟土蠕變特性研究
- 大單元教學在農村初中英語閱讀課中的應用研究
- 印度學前教育體系解析
- 體檢健康教育核心要點
- 呼吸內科疑難病例討論
- 腸內營養護理外科
- 健康本領的多維解析
- 《社會財務共享服務實務》課件-增值稅的計算與申報
- 中心校校園安全管理培訓
- 2025年衛星整流罩項目發展計劃
- 建設部建設工程重大質量安全事故應急預案
- 2025年中航油招聘筆試參考題庫附帶答案詳解
- 2024年中國中高端電子鋁箔行業市場調查報告
- DB54∕T 0275-2023 民用建筑節能技術標準
- 2025年人教版小學五年級英語(下冊)期末試卷及答案
- 交通貨運企業-隱患排查治理和防控制度
- 中煙公司財務管理制度
- 《學習雷鋒精神爭主題班會》課件
- 國家教育十五五規劃綱要全文內容
- 以工代賑宣傳活動方案
- 飛機的平衡、穩定性與操縱性
評論
0/150
提交評論