TCP三次握手四次揮手

TCP和UDP都是常見的通信協(xié)議阔籽,其中TCP以可靠數(shù)據(jù)傳輸相較于UDP更加被選用喧枷。TCP協(xié)議中最基礎的應該就是三次握手和四次揮手伞辛,稍微懂TCP的應該都知道溢豆。這篇文章就簡單闡述一下握手和揮手過程币绩。

1. 三次握手

三次握手過程簡單說起來就真的很簡單蜡秽,首先是客戶端向服務端發(fā)送SYN包,服務端向客戶端發(fā)送SYN+ACK包缆镣,最后是客戶端發(fā)送ACK包給服務端芽突。更簡單說起來就是:

  • 客戶端:“我的發(fā)送正常不?”(待確認客戶端發(fā)送功能正常)
  • 服務端:“正常董瞻,我的發(fā)送正常不寞蚌?”(確認服務端接收正常,待確認服務端發(fā)送正常)
  • 客戶端:“正常钠糊⌒樱”(確認客戶端接收正常,服務端發(fā)送正常)


    TCP三次握手

專業(yè)性解釋就是:

  1. 第一次:客戶端發(fā)送SYN和發(fā)送一個隨機值seq=j給服務端抄伍,客戶端進入SYN_SENT狀態(tài)艘刚,待服務端確認。
  2. 第二次:服務端接收到SYN端請求連接截珍,服務端確認SYN攀甚,產(chǎn)生ack=j+1,并隨機產(chǎn)生一個seq=k岗喉,并將SYN+ACK包發(fā)送給客戶端確認連接秋度,服務端進入SYN_RECV狀態(tài)。
  3. 第三次:客戶端收到服務端發(fā)送的SYN+ACK包钱床,將ACK(ack=k+1)發(fā)送給服務端荚斯,服務端檢查ack是k+1,正確則建立連接。服務端和客戶端進入ESTABLISHED狀態(tài)鲸拥,完成三次握手開始傳輸數(shù)據(jù)拐格。

*SYN攻擊
三次握手中僧免,服務端發(fā)送SYN-ACK之后刑赶,收到客戶端的ACK,此時處于半連接狀態(tài)懂衩。這時候服務端處于SYN_RCVD狀態(tài)撞叨,當收到ACK包后轉入ESTABLISHED狀態(tài)。SYN攻擊就是在客戶端偽造大量不存在的IP地址浊洞,不斷向服務端發(fā)送SYN包牵敷,服務端收到確認的ACK包等待客戶端確認,由于IP是不存在的法希,服務端一直發(fā)送到超時枷餐。偽造的SYN包將長時間占用為連接隊列,導致正確的SYN請求被丟棄苫亦,從而導致網(wǎng)絡癱瘓毛肋。檢測方式就是看服務端有大量半連接狀態(tài)并且客戶單IP是隨機的,那么就是被攻擊了屋剑。檢測命令就是“netstat -nap | grep SYN_RECV”

2. 四次揮手

四次揮手相較于三次握手熟悉的人就沒那么多了润匙。四次揮手流程也簡單,簡單說就是:

  • 客戶端:“請求斷開連接”(客戶端不發(fā)送數(shù)據(jù)了唉匾,但是可以接收)
  • 服務端:“收到孕讳,準備斷開”(服務端檢查自己,如果有數(shù)據(jù)還沒有發(fā)送完成巍膘,發(fā)送剩余數(shù)據(jù))
  • 服務端:“準備完成厂财,是否斷開”(如果有則將待發(fā)送數(shù)據(jù)發(fā)送完成,服務端不再發(fā)送數(shù)據(jù))
  • 客戶端:“斷開”(客戶端不再接收數(shù)據(jù)峡懈,服務端接收到后不再接收數(shù)據(jù))


    TCP四次揮手

專業(yè)性解釋就是:

  1. 第一次揮手:客戶端發(fā)送FIN=1和seq=u(已經(jīng)傳輸數(shù)據(jù)的最后一個字節(jié)的序號加一)包璃饱,然后進入FIN_WAIT_1的狀態(tài)。FIN即使無數(shù)據(jù)也要消耗一個序號逮诲。
  2. 第二次揮手:服務端接收到FIN包之后帜平,向客戶端發(fā)送ACK((ACK=1) + (ack=u+1) + (seq=v))包,服務端進入CLOSE_WAIT狀態(tài)梅鹦。
  3. 第三次揮手:客戶端進入FIN_WAIT_2狀態(tài)裆甩,服務端發(fā)送FIN包,關閉服務端和客戶端的數(shù)據(jù)傳輸齐唆,服務端進入LAST_ACK狀態(tài)嗤栓。
  4. 第四次揮手:客戶端收到FIN包進入TIME_WAIT狀態(tài),接著發(fā)送ACK包給服務端,序號+1茉帅,服務端進入CLOSED狀態(tài)叨叙,結束連接。
  1. 為什么握手三次揮手要四次堪澎?
    答:因為服務端在LISTEN狀態(tài)擂错,等待客戶端連接,收到客戶端請求連接的SYN報文樱蛤,將SYN和ACK放在同一個包里發(fā)送給客戶端钮呀。關閉連接時,收到客戶頓的FIN包后昨凡,只表示自己不再發(fā)送數(shù)據(jù)但是還可以接收爽醋。服務端不一定所有數(shù)據(jù)發(fā)送完成,所以發(fā)送完成時候可以直接關閉便脊,否則需要將數(shù)據(jù)發(fā)送完成后再關閉蚂四。所以服務端的ACK和FIN包要分開發(fā)送。
  2. 為什么TIME_WAIT需要等待2MSL(最大報文段生存時間)才CLOSE哪痰?
    答:因為有可能最后一個ACK包丟失遂赠,最后的TIME_WAIT就是用來重發(fā)丟失的ACK包《视客戶端發(fā)送最后的ACK包回復解愤,但是也可能丟失,服務端如果沒收到ACK包乎莉,將不斷發(fā)送FIN送讲。所以不能立即關閉,需要確認服務端接收到了ACK包惋啃『喵蓿客戶端會設置一個定時器,等待2MSL時間边灭,如果再次收到FIN包异希,意味著服務端沒有收到ACK包,那么客戶端再次發(fā)送ACK包并重新等待2MSL時間绒瘦。如果2MSL時間結束沒有收到服務端的FIN包称簿,那么認為服務端收到了最后的ACK包,結束連接惰帽。

備注:圖片來自網(wǎng)絡

?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末憨降,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子该酗,更是在濱河造成了極大的恐慌授药,老刑警劉巖士嚎,帶你破解...
    沈念sama閱讀 222,183評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異悔叽,居然都是意外死亡莱衩,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,850評論 3 399
  • 文/潘曉璐 我一進店門娇澎,熙熙樓的掌柜王于貴愁眉苦臉地迎上來笨蚁,“玉大人,你說我怎么就攤上這事九火∽裕” “怎么了?”我有些...
    開封第一講書人閱讀 168,766評論 0 361
  • 文/不壞的土叔 我叫張陵岔激,是天一觀的道長。 經(jīng)常有香客問我是掰,道長虑鼎,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,854評論 1 299
  • 正文 為了忘掉前任键痛,我火速辦了婚禮炫彩,結果婚禮上,老公的妹妹穿的比我還像新娘絮短。我一直安慰自己江兢,他們只是感情好,可當我...
    茶點故事閱讀 68,871評論 6 398
  • 文/花漫 我一把揭開白布丁频。 她就那樣靜靜地躺著杉允,像睡著了一般。 火紅的嫁衣襯著肌膚如雪席里。 梳的紋絲不亂的頭發(fā)上叔磷,一...
    開封第一講書人閱讀 52,457評論 1 311
  • 那天,我揣著相機與錄音奖磁,去河邊找鬼改基。 笑死,一個胖子當著我的面吹牛咖为,可吹牛的內(nèi)容都是我干的秕狰。 我是一名探鬼主播,決...
    沈念sama閱讀 40,999評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼躁染,長吁一口氣:“原來是場噩夢啊……” “哼鸣哀!你這毒婦竟也來了?” 一聲冷哼從身側響起褐啡,我...
    開封第一講書人閱讀 39,914評論 0 277
  • 序言:老撾萬榮一對情侶失蹤诺舔,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體低飒,經(jīng)...
    沈念sama閱讀 46,465評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡许昨,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,543評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了褥赊。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片糕档。...
    茶點故事閱讀 40,675評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖拌喉,靈堂內(nèi)的尸體忽然破棺而出速那,到底是詐尸還是另有隱情,我是刑警寧澤尿背,帶...
    沈念sama閱讀 36,354評論 5 351
  • 正文 年R本政府宣布端仰,位于F島的核電站,受9級特大地震影響田藐,放射性物質(zhì)發(fā)生泄漏荔烧。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,029評論 3 335
  • 文/蒙蒙 一汽久、第九天 我趴在偏房一處隱蔽的房頂上張望鹤竭。 院中可真熱鬧,春花似錦景醇、人聲如沸臀稚。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,514評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽吧寺。三九已至,卻和暖如春酒觅,著一層夾襖步出監(jiān)牢的瞬間撮执,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,616評論 1 274
  • 我被黑心中介騙來泰國打工舷丹, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留抒钱,地道東北人。 一個月前我還...
    沈念sama閱讀 49,091評論 3 378
  • 正文 我出身青樓颜凯,卻偏偏與公主長得像谋币,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子症概,可洞房花燭夜當晚...
    茶點故事閱讀 45,685評論 2 360

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

  • P_時閱讀 181評論 0 0
  • 樹上的葉子遲早會離開大樹蕾额,沒有了更多的庇護,學會了自己堅強彼城。 離開了大樹葉子和朋友一起到處飄著诅蝶,有...
    毛毛_雨閱讀 910評論 0 2
  • 下面可能會出現(xiàn)一些不文明用語 我覺得這也是一種讓人討厭的現(xiàn)象 可是最后呢 那個簽名擋在中間 看得我強迫癥都犯了 這...
    tanqian_閱讀 330評論 0 0
  • 勤奮與堅持退个,主動與樂于助人,嬉鬧與開心调炬。在這里有新的你语盈,新的她,新的我們缰泡,新的環(huán)境刀荒,那就是我們317。 初次相逢棘钞,...
    李招琴閱讀 326評論 0 0
  • 享受當下 今天不知道寫什么缠借。 都這個點兒了。 一天都在路上宜猜,思緒飄啊飄泼返。 白天去了醫(yī)院約了床位,心里踏實了許多宝恶。 ...
    必須達成目標閱讀 107評論 0 0