簡述TCP的三次握手過程 如何快速理解TCP三次握手,四次揮手?
如何快速理解TCP三次握手,四次揮手?TCP是面向連接的就像打電話一樣。你需要撥號、打電話和連接。發(fā)表演講過程:a:我想和你建立聯(lián)系B:好的,我知道。我也想和你建立連接a:我知道你收到了我的連接請求,
如何快速理解TCP三次握手,四次揮手?
TCP是面向連接的
就像打電話一樣。你需要撥號、打電話和連接。發(fā)表演講
過程:
a:我想和你建立聯(lián)系
B:好的,我知道。我也想和你建立連接
a:我知道你收到了我的連接請求,我也收到了你的連接請求
滑動窗口:
主要是為了避免一次發(fā)送太多數(shù)據(jù),導(dǎo)致對方的緩存溢出。
滑動窗口是一種動態(tài)協(xié)商,即當建立連接時,它將進行協(xié)商
同時,當緩沖區(qū)發(fā)生變化時,它將進行協(xié)商。
主要目的是避免在一方斷開連接而另一方不知道時浪費資源來維護斷開的連接
過程:
假設(shè)已經(jīng)建立了三個連接
A:我要與您斷開連接
B:好的,我知道你要斷開連接
B:我也要和你斷開連接
A:好的,然后斷開連接
TCP/IP由四層二級組成:網(wǎng)絡(luò)接口層、網(wǎng)絡(luò)層、傳輸層、應(yīng)用層。
三次握手和四個波發(fā)生在第三層:傳輸層。原因:三次握手和四次握手是TCP協(xié)議保證可靠全連接的手段,TCP協(xié)議屬于傳輸層協(xié)議。當然,三次握手和四次握手發(fā)生在第三層——傳輸層
三次握手:第一次握手:客戶端向服務(wù)器發(fā)送syn數(shù)據(jù)包(syn=x),進入syn發(fā)送狀態(tài),等待服務(wù)器確認;第二次握手:服務(wù)器收到syn數(shù)據(jù)包后,必須確認客戶端的狀態(tài)syn(ACK=x1),同時,它還發(fā)送syn分組(syn=y),即syn ACK分組。此時,服務(wù)器進入synRecv狀態(tài);第三次握手:客戶機接收服務(wù)器的syn+ACK數(shù)據(jù)包并向服務(wù)器發(fā)送ACK(ACK=y1)。數(shù)據(jù)包發(fā)送后,客戶機和服務(wù)器進入建立狀態(tài)并完成三次握手。在握手過程中,數(shù)據(jù)包不包含數(shù)據(jù)。在三次握手之后,客戶機和服務(wù)器正式開始傳輸數(shù)據(jù)。理想情況下,一旦建立了TCP連接,TCP連接將一直保持到雙方中的任何一方關(guān)閉連接為止。四次握手類似于建立連接的“三次握手”,斷開TCP連接需要“四次握手”。第一波:主動關(guān)閉方發(fā)送fin關(guān)閉主動關(guān)閉方到被動關(guān)閉方的數(shù)據(jù)傳輸,即主動關(guān)閉方告訴被動關(guān)閉方:我不再向您發(fā)送數(shù)據(jù)(當然,如果fin包之前發(fā)送的數(shù)據(jù)沒有收到相應(yīng)的ack確認消息,主動關(guān)閉方仍然會重新發(fā)送該數(shù)據(jù)),但此時主動關(guān)閉方也可以接受該數(shù)據(jù)。第二波:被動關(guān)閉方收到fin報文后,向?qū)Ψ桨l(fā)送ACK,確認序號為收到序號1(與syn相同,一個fin占用一個序號)。第三波:被動關(guān)閉方發(fā)送fin,用于關(guān)閉被動關(guān)閉方到主動關(guān)閉方的數(shù)據(jù)傳輸。換言之,它告訴主動成交方我的數(shù)據(jù)已經(jīng)發(fā)送出去了,不會再向您發(fā)送任何數(shù)據(jù)。第四波:主動關(guān)閉方收到fin后,向被動關(guān)閉方發(fā)送ACK,確認收到序列號1。到目前為止,已經(jīng)完成了四次浪潮。