TCP的三次握手和四次揮手

TCP的三次握手和四次揮手

TCP/IP是面向連接的協(xié)議阅羹。運(yùn)輸連接是用來發(fā)送TCP報(bào)文的为居。TCP的運(yùn)輸連接又三個(gè)過程枯途,即建立連接忌怎,傳輸數(shù)據(jù)和連接釋放。

TCP的連接建立:


image.png

1.首先酪夷,客戶機(jī)與服務(wù)器的TCP進(jìn)程都處于CLOSED(關(guān)閉)狀態(tài)榴啸,當(dāng)要進(jìn)行TCP連接時(shí),客戶機(jī)主動(dòng)打開連接晚岭,服務(wù)器被動(dòng)打開連接
2.然后鸥印,服務(wù)器的TCP進(jìn)程先創(chuàng)建傳輸控制塊TCB(傳輸控制塊TCB存儲(chǔ)了每一個(gè)連接中的重要信息,如:TCP連接表坦报,指向發(fā)送和接收緩存的指針库说,指向重傳隊(duì)列的指針,當(dāng)前的發(fā)送和接收序號(hào)片择,等等)潜的,此時(shí),服務(wù)器就處于LISTEN(收聽)狀態(tài)构回。同樣的夏块,客戶機(jī)也會(huì)首先創(chuàng)建一個(gè)傳輸控制塊TCB發(fā)送給服務(wù)器。這樣纤掸,準(zhǔn)備工作就做好了脐供。
3.開始真正的三次握手了。首先客戶端會(huì)給服務(wù)器發(fā)送一個(gè)同步位SYN=1(這個(gè)時(shí)候SYN=1說明借跪,客戶端想要給服務(wù)器發(fā)送數(shù)據(jù))政己,同時(shí)隨機(jī)生成一個(gè)初始序號(hào)x(表明,下次客戶端發(fā)送數(shù)據(jù)的時(shí)候?yàn)閤+1),那么此時(shí)客戶機(jī)就會(huì)進(jìn)入同步發(fā)送狀態(tài)掏愁。
4.當(dāng)服務(wù)器收到客戶端的請(qǐng)求后歇由,如果同意與該客戶端進(jìn)行連接卵牍,那么這時(shí)就會(huì)給客戶端發(fā)送確認(rèn)報(bào)文,首部中的同步位SYN=1(表明服務(wù)器想要和客戶端進(jìn)行連接)沦泌,ACK=1(表明這時(shí)服務(wù)器同同意和客戶端進(jìn)行連接)糊昙,并且隨機(jī)生成一個(gè)初始序號(hào)y,確認(rèn)號(hào)為x+1(表明服務(wù)器希望收到的下一個(gè)報(bào)文段的第一個(gè)數(shù)據(jù)字節(jié)的序號(hào)谢谦,因?yàn)橹翱蛻舳税l(fā)送的是x释牺,所以下一個(gè)序號(hào)為x+1),那么此時(shí)的服務(wù)器就會(huì)進(jìn)入一個(gè)同步收到狀態(tài)。
(前面的兩個(gè)握手階段會(huì)發(fā)生SYN flooding攻擊)
5.TCP客戶端收到了服務(wù)器的確認(rèn)后回挽,那么這時(shí)就會(huì)給服務(wù)器再次給出確認(rèn)没咙。確認(rèn)報(bào)文的首部同步位ACK=1(表明客戶端同意和服務(wù)器進(jìn)行連接),確認(rèn)號(hào)為y+1(表明客戶端希望收到服務(wù)器的下一個(gè)報(bào)文的第一個(gè)數(shù)據(jù)字節(jié)為y+1),此時(shí)客戶機(jī)發(fā)送的序號(hào)為x+1,那么此時(shí)的客戶機(jī)和服務(wù)器就會(huì)進(jìn)行已連接狀態(tài)千劈。

通俗點(diǎn)說: 祭刚、
客戶端:服務(wù)器我想和你建立連接(SYN=1),你同意嗎?
服務(wù)器:客戶端墙牌,我同意和你連接(ACK=1),發(fā)送連接請(qǐng)求(SYN=1);
客戶端:服務(wù)器涡驮,我同意和你連接(ACK=1)。

TCP的連接建釋放:


image.png

1.如果數(shù)據(jù)傳輸結(jié)束后喜滨,通信的雙方都會(huì)釋放連接遮怜,但是此時(shí)的客戶端和服務(wù)器都處于一個(gè)已建立連接的狀態(tài)。
2.假如客戶機(jī)請(qǐng)求的資源完畢了以后鸿市,想要釋放連接锯梁,首先會(huì)給服務(wù)器發(fā)送連接釋放的報(bào)文段,報(bào)文段的首部終止控制FIN為1(表明客戶端想要和服務(wù)器斷開連接)焰情,并且發(fā)送序號(hào)u(此時(shí)的u不是隨機(jī)產(chǎn)生的陌凳,而是客戶端傳送的最后一個(gè)字節(jié)+1),那么此時(shí)客戶端就會(huì)進(jìn)入終止等待1狀態(tài),等待服務(wù)器的確認(rèn)内舟。
3.服務(wù)器在收到客戶端的請(qǐng)求斷開的報(bào)文后合敦,發(fā)出確認(rèn)報(bào)文,將報(bào)文首部的ACK置為1(表明服務(wù)器同意與客戶端斷開連接)验游,并且產(chǎn)生序號(hào)v(此時(shí)的序號(hào)也不會(huì)隨機(jī)產(chǎn)生的充岛,而是服務(wù)器給客戶端發(fā)送數(shù)據(jù)的最后一個(gè)字節(jié)+1),并且發(fā)出確認(rèn)序號(hào)u+1,此時(shí)服務(wù)器就進(jìn)入關(guān)閉等待狀態(tài),客戶機(jī)就進(jìn)入終止等待2的狀態(tài)耕蝉。
時(shí)啊崔梗,客戶端收到服務(wù)器的的確認(rèn)報(bào)文后就釋放了,也就是說垒在,客戶端已經(jīng)沒有數(shù)據(jù)向服務(wù)端發(fā)送了蒜魄,但是如果服務(wù)端向客戶端發(fā)送數(shù)據(jù),客戶端任然需要接受,也就是說客戶端到服務(wù)器的連接已經(jīng)被釋放了谈为,但是服務(wù)器到客戶端的連接并沒有被釋放旅挤。tcp處于一個(gè)半關(guān)閉狀態(tài)。
4.如果服務(wù)器已經(jīng)不向客戶端發(fā)送數(shù)據(jù)了伞鲫,那么服務(wù)器的應(yīng)用進(jìn)程就可以向客戶端發(fā)送連接釋放的報(bào)文段粘茄,該報(bào)文的首部終止位FIN為1(表明服務(wù)器想要和客戶端斷開連接),ACK置為1秕脓,并且序號(hào)為w(w并不一定等于v+1,因?yàn)樵诳蛻舳酸尫胚B接后驹闰,可能服務(wù)器還向客戶端發(fā)送過數(shù)據(jù),總而言之如果發(fā)送給那么就是發(fā)送的最后一個(gè)數(shù)據(jù)的字節(jié)+1),再發(fā)送u+1的確認(rèn)序號(hào)(因?yàn)橹鞍l(fā)送了u),此時(shí)服務(wù)器就進(jìn)入了最后確認(rèn)的狀態(tài)撒会。
5.那么在客戶端收到了服務(wù)器的釋放報(bào)文后,必須對(duì)此進(jìn)行確認(rèn)师妙。在該報(bào)文中將ACK置為1诵肛,確認(rèn)號(hào)為w+1,產(chǎn)生序號(hào)為u+1(上次客戶端發(fā)送的序號(hào)為u)默穴,此時(shí)的服務(wù)器進(jìn)入等待狀態(tài)怔檩。但是TCP連接還沒有被釋放掉,必須要經(jīng)過4分鐘后服務(wù)器才進(jìn)入closed狀態(tài)蓄诽。
通俗來講:
客戶端:服務(wù)器薛训,我想和你斷開連接(FIN=1)
服務(wù)器:同意斷開連接(ACK=1)
服務(wù)器:客戶端,我想和你斷開連接(FIN=1)
客戶端:同意(ACK=1)

SYN FLOODING與FIN FLOODING攻擊仑氛?

syn flooding是一種很古老的攻擊乙埃,該攻擊蛀牙是利用了TCP/IP的三次握手,利用大量虛假ip的身份建立不完整連接锯岖,消耗主機(jī)的CPU,從而使主機(jī)近于癱瘓介袜。

image.png

SYN FLOODING就是利用紅色框中的階段進(jìn)行攻擊。

攻擊者向服務(wù)器或者主機(jī)發(fā)送SYN請(qǐng)求連接出吹,服務(wù)器或者目標(biāo)主機(jī)在收到請(qǐng)求時(shí)會(huì)進(jìn)行請(qǐng)求確定遇伞,即向攻擊者進(jìn)行連接確定,而此時(shí)的攻擊者會(huì)停止向服務(wù)器發(fā)送確認(rèn)連接的確認(rèn)包捶牢,因此鸠珠,服務(wù)器就處在了等待確認(rèn)的狀態(tài),在正常的情況下秋麸,服務(wù)器或者目標(biāo)主機(jī)在等待一定的時(shí)間后就會(huì)停止等待渐排,此次的連接也就自然而然的結(jié)束了,也就不會(huì)造成什么危害灸蟆。但是攻擊者會(huì)在短時(shí)間內(nèi)偽造大量的SYN請(qǐng)求連接包發(fā)給服務(wù)器飞盆,即使每條SYN包請(qǐng)求會(huì)在短時(shí)間內(nèi)被丟棄,但是大量的請(qǐng)求包在同一時(shí)間進(jìn)行請(qǐng)求連接,服務(wù)器或者目標(biāo)主機(jī)就沒有足夠的時(shí)間去處理這些請(qǐng)求包吓歇,因此就會(huì)使服務(wù)器或者目標(biāo)主機(jī)的Cpu利用率下降孽水,甚至使服務(wù)器癱瘓

其實(shí),還可以進(jìn)行FIN flooding攻擊城看,原理與SYN攻擊一樣女气,攻擊者向服務(wù)器或者目標(biāo)主機(jī)發(fā)送大量的FIN請(qǐng)求包,由于攻擊者并未和服務(wù)器進(jìn)行過通訊测柠,因此炼鞠,在服務(wù)器或目標(biāo)主機(jī)接收到該FIN請(qǐng)求后,會(huì)對(duì)FIN包進(jìn)行分析轰胁,這就耗費(fèi)了服務(wù)器或者目標(biāo)主機(jī)的時(shí)間谒主,當(dāng)攻擊者向服務(wù)器或者目標(biāo)主機(jī)發(fā)送大量的FIN數(shù)據(jù)包時(shí),就會(huì)消耗大量的CPU使用率赃阀,達(dá)到和SYN FLOOD一樣的效果霎肯。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市榛斯,隨后出現(xiàn)的幾起案子观游,更是在濱河造成了極大的恐慌,老刑警劉巖驮俗,帶你破解...
    沈念sama閱讀 221,198評(píng)論 6 514
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件懂缕,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡王凑,警方通過查閱死者的電腦和手機(jī)搪柑,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,334評(píng)論 3 398
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來索烹,“玉大人拌屏,你說我怎么就攤上這事∈趸纾” “怎么了倚喂?”我有些...
    開封第一講書人閱讀 167,643評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)瓣戚。 經(jīng)常有香客問我端圈,道長(zhǎng),這世上最難降的妖魔是什么子库? 我笑而不...
    開封第一講書人閱讀 59,495評(píng)論 1 296
  • 正文 為了忘掉前任舱权,我火速辦了婚禮,結(jié)果婚禮上仑嗅,老公的妹妹穿的比我還像新娘宴倍。我一直安慰自己张症,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,502評(píng)論 6 397
  • 文/花漫 我一把揭開白布鸵贬。 她就那樣靜靜地躺著俗他,像睡著了一般。 火紅的嫁衣襯著肌膚如雪阔逼。 梳的紋絲不亂的頭發(fā)上兆衅,一...
    開封第一講書人閱讀 52,156評(píng)論 1 308
  • 那天,我揣著相機(jī)與錄音嗜浮,去河邊找鬼羡亩。 笑死,一個(gè)胖子當(dāng)著我的面吹牛危融,可吹牛的內(nèi)容都是我干的畏铆。 我是一名探鬼主播,決...
    沈念sama閱讀 40,743評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼吉殃,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼辞居!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起寨腔,我...
    開封第一講書人閱讀 39,659評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎率寡,沒想到半個(gè)月后迫卢,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,200評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡冶共,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,282評(píng)論 3 340
  • 正文 我和宋清朗相戀三年乾蛤,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片捅僵。...
    茶點(diǎn)故事閱讀 40,424評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡家卖,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出庙楚,到底是詐尸還是另有隱情上荡,我是刑警寧澤,帶...
    沈念sama閱讀 36,107評(píng)論 5 349
  • 正文 年R本政府宣布馒闷,位于F島的核電站酪捡,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏纳账。R本人自食惡果不足惜逛薇,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,789評(píng)論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望疏虫。 院中可真熱鬧永罚,春花似錦啤呼、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,264評(píng)論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至产捞,卻和暖如春醇锚,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背坯临。 一陣腳步聲響...
    開封第一講書人閱讀 33,390評(píng)論 1 271
  • 我被黑心中介騙來泰國打工焊唬, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人看靠。 一個(gè)月前我還...
    沈念sama閱讀 48,798評(píng)論 3 376
  • 正文 我出身青樓赶促,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國和親挟炬。 傳聞我的和親對(duì)象是個(gè)殘疾皇子鸥滨,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,435評(píng)論 2 359

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

  • TCP報(bào)文格式 TCP提供一種面向連接的,可靠的字節(jié)流服務(wù)谤祖。 TCP首部的數(shù)據(jù)格式如下婿滓。(如果不計(jì)任選字段,通常是...
    不變甄心閱讀 245評(píng)論 0 0
  • 網(wǎng)絡(luò)層可以實(shí)現(xiàn)兩個(gè)主機(jī)之間的通信粥喜,但是并不具體凸主,因?yàn)椋嬲M(jìn)行通信的實(shí)體是在主機(jī)中的進(jìn)程额湘,是一個(gè)主機(jī)中的一個(gè)進(jìn)程與...
    沉江小魚閱讀 199評(píng)論 0 2
  • 前言: TCP協(xié)議是計(jì)算機(jī)的基礎(chǔ)卿吐,他本身是一個(gè)非常非常復(fù)雜的協(xié)議。 本文只是蜻蜓點(diǎn)水锋华,將從網(wǎng)絡(luò)基礎(chǔ)以及TCP的相關(guān)...
    Janti閱讀 612評(píng)論 0 4
  • 1 三次握手 TCP是面向連接的嗡官,無論哪一方向另一方發(fā)送數(shù)據(jù)之前,都必須在雙方之間建立一個(gè)連接毯焕。 在TCP/IP協(xié)...
    鋼牙仔閱讀 688評(píng)論 0 0
  • 數(shù)字化時(shí)代衍腥,我們能夠輕而易舉的接觸到非富多彩的文字信息,此時(shí)信息的提煉顯得尤其的重要纳猫。 在距今200多年前的叔本華...
    停不下來的陀螺閱讀 5,120評(píng)論 0 6