TCP三次握手和四次揮手

TCP(Transmission Control Protocol傳輸控制協(xié)議)是一種面向連接的(端對端扁凛,不能1對多)、可靠的、基于字節(jié)流的傳輸層通信協(xié)議抚岗。

TCP首部:20B

TCP的六個標志位

PSH:當PSH=1的時候扒寄,會立刻封裝發(fā)送出去鱼鼓;

RST:復(fù)位比特,表示需要重新建立連接该编;

SYN:同步比特迄本,當SYN = 1的時候听皿,向?qū)Ψ秸埱蠼⒁粋€鏈接晨仑,主要用于TCP三次握手童太,建立連接亩冬;

FIN:當FIN = 1時,請求終止TCP鏈接公条;

URG:緊急字段拇囊;

ACK:確認字段,對方返回確認ACK = 1靶橱。

以上6個標志位往往和首部其他字段配合使用寥袭。

接下來就步入正題。

TCP三次握手

所謂三次握手是指建立一個TCP連接時关霸,需要客戶端和服務(wù)器總共發(fā)送3個包传黄。

三次握手的目的是連接服務(wù)器指定端口,建立TCP連接队寇,并同步連接雙方的序列號和確認號并交換TCP窗口大小信息尝江。

當建立未開始的時候,C和S都處于CLOSED的狀態(tài)英上,接著S進入LISTEN狀態(tài)炭序,監(jiān)聽客戶端是否發(fā)送請求。

第一次握手苍日,客戶端發(fā)送SYN=1,Seq=X,表示客戶端請求建立連接惭聂,并將初始序列號X發(fā)送給服務(wù)器,客戶端進入SYN_SENT狀態(tài)相恃。

第二次握手辜纲,服務(wù)器端返回SYN=1,Seq=Y拦耐,ACK=1耕腾,ack=X+1,表示服務(wù)器端請求和客戶端建立連接杀糯,將初始序列號Y發(fā)送給客戶端扫俺;ACK=1是對客戶端請求建立連接的確認,ack = X+1是返回給客戶端的序列號(將客戶端的Seq=X加1)固翰。此時狼纬,服務(wù)器端進入SYN_RCVD狀態(tài)。

第三次握手骂际,客戶端發(fā)送Seq=X+1疗琉,ACK=1,ack=Y+1歉铝,表示客戶端確認連接盈简,再次發(fā)送序列號X+1,并返回Y+1;客戶端進入ESTABLISHED狀態(tài)柠贤。當服務(wù)器端收到后香浩,服務(wù)器端也進入ESTABLISHED狀態(tài)。

那么為什么是三次握手呢种吸?

三次就可以確認雙方都能正常接發(fā)消息弃衍。這就和打電話的道理是一樣的呀非,Ex:

“喂坚俗?你聽的到嗎?”?

?“我聽的到岸裙,你聽的到我嗎猖败?”?

?“我能聽得到你,今天……”

如果是兩次的話降允,可能會出現(xiàn)這種情況:

“喂恩闻?你聽的到嗎?”

“我聽的到”

“喂剧董?你聽的到嗎幢尚?”

“我聽的到”

如果是四次呢?

“喂翅楼?你聽的到嗎尉剩?”

“我聽的到,你聽的到我嗎毅臊?”

“我能聽得到你理茎,你能聽的到我嗎?”

“我不想和xx說話”

TCP四次揮手

目的是拆除連接管嬉,而拆除連接需要發(fā)送4個包皂林。客戶端和服務(wù)器均可主動發(fā)起揮手動作蚯撩。


第一次揮手础倍,客戶端發(fā)完數(shù)據(jù)后,向服務(wù)端發(fā)送FIN=1胎挎,序列號為X著隆,表示客戶端沒有數(shù)據(jù)要發(fā)送給服務(wù)器了,客戶端進入FIN_WAIT_1狀態(tài)呀癣。

第二次揮手美浦,服務(wù)器受到了客戶端的FIN報文段,向客戶端發(fā)送一個ACK=X+1確認项栏,表示“我同意你關(guān)閉”浦辨,接著客戶端進入FIN_WAIT_2狀態(tài)。

第三次揮手,服務(wù)器向客戶端發(fā)送FIN報文段流酬,請求關(guān)閉連接币厕,服務(wù)器進入LAST_ACK狀態(tài)。

第四次揮手芽腾,客戶端收到服務(wù)器的FIN報文旦装,返回ACK確認,客戶端進入TIME_WAIT狀態(tài)摊滔,服務(wù)器收到ACK關(guān)閉連接阴绢,此時客戶端等待2MSL之后沒有收到回復(fù),證明服務(wù)器正常關(guān)閉艰躺,然后客戶端關(guān)閉連接呻袭。

前兩次,客戶端關(guān)閉寫通道腺兴,不再發(fā)送數(shù)據(jù)左电,但可以接收數(shù)據(jù);服務(wù)器端關(guān)閉讀通道页响,仍可發(fā)送數(shù)據(jù)篓足。后兩次,客戶端關(guān)閉讀通道闰蚕,服務(wù)器關(guān)閉寫通道栈拖。可見陪腌,通過四次雙方成功關(guān)閉讀寫通道——關(guān)閉連接辱魁。

四次揮手還有雙方同時請求斷開連接的情況。感興趣的可以去查閱一下诗鸭。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末染簇,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子强岸,更是在濱河造成了極大的恐慌锻弓,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,277評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蝌箍,死亡現(xiàn)場離奇詭異青灼,居然都是意外死亡,警方通過查閱死者的電腦和手機妓盲,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評論 3 393
  • 文/潘曉璐 我一進店門杂拨,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人悯衬,你說我怎么就攤上這事弹沽。” “怎么了?”我有些...
    開封第一講書人閱讀 163,624評論 0 353
  • 文/不壞的土叔 我叫張陵策橘,是天一觀的道長炸渡。 經(jīng)常有香客問我,道長丽已,這世上最難降的妖魔是什么蚌堵? 我笑而不...
    開封第一講書人閱讀 58,356評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮沛婴,結(jié)果婚禮上吼畏,老公的妹妹穿的比我還像新娘。我一直安慰自己瘸味,他們只是感情好宫仗,可當我...
    茶點故事閱讀 67,402評論 6 392
  • 文/花漫 我一把揭開白布够挂。 她就那樣靜靜地躺著旁仿,像睡著了一般。 火紅的嫁衣襯著肌膚如雪孽糖。 梳的紋絲不亂的頭發(fā)上枯冈,一...
    開封第一講書人閱讀 51,292評論 1 301
  • 那天,我揣著相機與錄音办悟,去河邊找鬼尘奏。 笑死,一個胖子當著我的面吹牛病蛉,可吹牛的內(nèi)容都是我干的炫加。 我是一名探鬼主播,決...
    沈念sama閱讀 40,135評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼铺然,長吁一口氣:“原來是場噩夢啊……” “哼俗孝!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起魄健,我...
    開封第一講書人閱讀 38,992評論 0 275
  • 序言:老撾萬榮一對情侶失蹤赋铝,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后沽瘦,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體革骨,經(jīng)...
    沈念sama閱讀 45,429評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,636評論 3 334
  • 正文 我和宋清朗相戀三年析恋,在試婚紗的時候發(fā)現(xiàn)自己被綠了良哲。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,785評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡助隧,死狀恐怖筑凫,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤漏健,帶...
    沈念sama閱讀 35,492評論 5 345
  • 正文 年R本政府宣布嚎货,位于F島的核電站,受9級特大地震影響蔫浆,放射性物質(zhì)發(fā)生泄漏殖属。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,092評論 3 328
  • 文/蒙蒙 一瓦盛、第九天 我趴在偏房一處隱蔽的房頂上張望洗显。 院中可真熱鬧,春花似錦原环、人聲如沸挠唆。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,723評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽玄组。三九已至,卻和暖如春谒麦,著一層夾襖步出監(jiān)牢的瞬間俄讹,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,858評論 1 269
  • 我被黑心中介騙來泰國打工绕德, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留患膛,地道東北人。 一個月前我還...
    沈念sama閱讀 47,891評論 2 370
  • 正文 我出身青樓耻蛇,卻偏偏與公主長得像踪蹬,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子臣咖,可洞房花燭夜當晚...
    茶點故事閱讀 44,713評論 2 354

推薦閱讀更多精彩內(nèi)容

  • TCP連接狀態(tài) 圖1是TCP三次握手跃捣、數(shù)據(jù)傳輸、四次揮手三個階段的狀態(tài)轉(zhuǎn)移圖亡哄,狀態(tài)說明如下: LISTEN:偵聽來...
    大頭8086閱讀 9,820評論 7 13
  • 1枝缔、TCP三次握手 TCP建立連接需要進行“三次握手”: TCP三次握手過程描述如下: 客戶端發(fā)送連接請求報文:S...
    SinX竟然被占用了閱讀 328評論 0 0
  • TCP建立連接三次握手: 第一次握手:客戶端發(fā)送 syn 包(syn=j)到服務(wù)器,并進入 SYN_SEND 狀態(tài)...
    Michael_NO1閱讀 236評論 0 0
  • TCP 三次握手和四次揮手 三次握手 如圖所示,客戶端主動打開連接蚊惯,服務(wù)端被動打開連接愿卸。連接過程如下: 客戶端發(fā)送...
    RojerAlone閱讀 457評論 0 0
  • 三次握手建立連接 客戶主機發(fā)送請求報文,F(xiàn)lag設(shè)置為 SYN截型,帶上 Seq趴荸, 假設(shè)為 clientNo; 服務(wù)主...
    PFF閱讀 715評論 0 1