TCP的三次握手和四次揮手

TCP的三次握手和四次揮手

TCP/IP是面向連接的協(xié)議卵沉。運(yùn)輸連接是用來發(fā)送TCP報文的宁舰。TCP的運(yùn)輸連接又三個過程棚亩,即建立連接蓖议,傳輸數(shù)據(jù)和連接釋放虏杰。

TCP的連接建立:

image.png

1.首先,客戶機(jī)與服務(wù)器的TCP進(jìn)程都處于CLOSED(關(guān)閉)狀態(tài)勒虾,當(dāng)要進(jìn)行TCP連接時纺阔,客戶機(jī)主動打開連接,服務(wù)器被動打開連接

2.然后修然,服務(wù)器的TCP進(jìn)程先創(chuàng)建傳輸控制塊TCB(傳輸控制塊TCB存儲了每一個連接中的重要信息笛钝,如:TCP連接表,指向發(fā)送和接收緩存的指針愕宋,指向重傳隊(duì)列的指針玻靡,當(dāng)前的發(fā)送和接收序號,等等)中贝,此時囤捻,服務(wù)器就處于LISTEN(收聽)狀態(tài)。同樣的邻寿,客戶機(jī)也會首先創(chuàng)建一個傳輸控制塊TCB發(fā)送給服務(wù)器最蕾。這樣,準(zhǔn)備工作就做好了老厌。

3.開始真正的三次握手了瘟则。首先客戶端會給服務(wù)器發(fā)送一個同步位SYN=1(這個時候SYN=1說明,客戶端想要給服務(wù)器發(fā)送數(shù)據(jù))枝秤,同時隨機(jī)生成一個初始序號x(表明醋拧,下次客戶端發(fā)送數(shù)據(jù)的時候?yàn)閤+1),那么此時客戶機(jī)就會進(jìn)入同步發(fā)送狀態(tài)。

4.當(dāng)服務(wù)器收到客戶端的請求后淀弹,如果同意與該客戶端進(jìn)行連接丹壕,那么這時就會給客戶端發(fā)送確認(rèn)報文,首部中的同步位SYN=1(表明服務(wù)器想要和客戶端進(jìn)行連接)薇溃,ACK=1(表明這時服務(wù)器同同意和客戶端進(jìn)行連接)菌赖,并且隨機(jī)生成一個初始序號y,確認(rèn)號為x+1(表明服務(wù)器希望收到的下一個報文段的第一個數(shù)據(jù)字節(jié)的序號沐序,因?yàn)橹翱蛻舳税l(fā)送的是x琉用,所以下一個序號為x+1),那么此時的服務(wù)器就會進(jìn)入一個同步收到狀態(tài)。

(前面的兩個握手階段會發(fā)生SYN flooding攻擊)

5.TCP客戶端收到了服務(wù)器的確認(rèn)后策幼,那么這時就會給服務(wù)器再次給出確認(rèn)邑时。確認(rèn)報文的首部同步位ACK=1(表明客戶端同意和服務(wù)器進(jìn)行連接),確認(rèn)號為y+1(表明客戶端希望收到服務(wù)器的下一個報文的第一個數(shù)據(jù)字節(jié)為y+1),此時客戶機(jī)發(fā)送的序號為x+1,那么此時的客戶機(jī)和服務(wù)器就會進(jìn)行已連接狀態(tài)特姐。

通俗點(diǎn)說: 晶丘、

客戶端:服務(wù)器我想和你建立連接(SYN=1),你同意嗎?

服務(wù)器:客戶端,我同意和你連接(ACK=1),發(fā)送連接請求(SYN=1);

客戶端:服務(wù)器浅浮,我同意和你連接(ACK=1)沫浆。

TCP的連接建釋放:

image.png

1.如果數(shù)據(jù)傳輸結(jié)束后,通信的雙方都會釋放連接滚秩,但是此時的客戶端和服務(wù)器都處于一個已建立連接的狀態(tài)专执。

2.假如客戶機(jī)請求的資源完畢了以后,想要釋放連接叔遂,首先會給服務(wù)器發(fā)送連接釋放的報文段他炊,報文段的首部終止控制FIN為1(表明客戶端想要和服務(wù)器斷開連接)争剿,并且發(fā)送序號u(此時的u不是隨機(jī)產(chǎn)生的已艰,而是客戶端傳送的最后一個字節(jié)+1),那么此時客戶端就會進(jìn)入終止等待1狀態(tài),等待服務(wù)器的確認(rèn)蚕苇。

3.服務(wù)器在收到客戶端的請求斷開的報文后哩掺,發(fā)出確認(rèn)報文,將報文首部的ACK置為1(表明服務(wù)器同意與客戶端斷開連接)涩笤,并且產(chǎn)生序號v(此時的序號也不會隨機(jī)產(chǎn)生的嚼吞,而是服務(wù)器給客戶端發(fā)送數(shù)據(jù)的最后一個字節(jié)+1),并且發(fā)出確認(rèn)序號u+1,此時服務(wù)器就進(jìn)入關(guān)閉等待狀態(tài),客戶機(jī)就進(jìn)入終止等待2的狀態(tài)蹬碧。

時啊舱禽,客戶端收到服務(wù)器的的確認(rèn)報文后就釋放了,也就是說恩沽,客戶端已經(jīng)沒有數(shù)據(jù)向服務(wù)端發(fā)送了誊稚,但是如果服務(wù)端向客戶端發(fā)送數(shù)據(jù),客戶端任然需要接受罗心,也就是說客戶端到服務(wù)器的連接已經(jīng)被釋放了里伯,但是服務(wù)器到客戶端的連接并沒有被釋放。tcp處于一個半關(guān)閉狀態(tài)渤闷。

4.如果服務(wù)器已經(jīng)不向客戶端發(fā)送數(shù)據(jù)了疾瓮,那么服務(wù)器的應(yīng)用進(jìn)程就可以向客戶端發(fā)送連接釋放的報文段,該報文的首部終止位FIN為1(表明服務(wù)器想要和客戶端斷開連接)飒箭,ACK置為1狼电,并且序號為w(w并不一定等于v+1,因?yàn)樵诳蛻舳酸尫胚B接后,可能服務(wù)器還向客戶端發(fā)送過數(shù)據(jù)弦蹂,總而言之如果發(fā)送給那么就是發(fā)送的最后一個數(shù)據(jù)的字節(jié)+1),再發(fā)送u+1的確認(rèn)序號(因?yàn)橹鞍l(fā)送了u),此時服務(wù)器就進(jìn)入了最后確認(rèn)的狀態(tài)漫萄。

5.那么在客戶端收到了服務(wù)器的釋放報文后,必須對此進(jìn)行確認(rèn)盈匾。在該報文中將ACK置為1腾务,確認(rèn)號為w+1,產(chǎn)生序號為u+1(上次客戶端發(fā)送的序號為u)削饵,此時的服務(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請求連接,服務(wù)器或者目標(biāo)主機(jī)在收到請求時會進(jìn)行請求確定刹碾,即向攻擊者進(jìn)行連接確定燥撞,而此時的攻擊者會停止向服務(wù)器發(fā)送確認(rèn)連接的確認(rèn)包,因此迷帜,服務(wù)器就處在了等待確認(rèn)的狀態(tài)物舒,在正常的情況下,服務(wù)器或者目標(biāo)主機(jī)在等待一定的時間后就會停止等待戏锹,此次的連接也就自然而然的結(jié)束了冠胯,也就不會造成什么危害。但是攻擊者會在短時間內(nèi)偽造大量的SYN請求連接包發(fā)給服務(wù)器锦针,即使每條SYN包請求會在短時間內(nèi)被丟棄递雀,但是大量的請求包在同一時間進(jìn)行請求連接茫陆,服務(wù)器或者目標(biāo)主機(jī)就沒有足夠的時間去處理這些請求包,因此就會使服務(wù)器或者目標(biāo)主機(jī)的Cpu利用率下降,甚至使服務(wù)器癱瘓

其實(shí)袁铐,還可以進(jìn)行FIN flooding攻擊鸳粉,原理與SYN攻擊一樣断医,攻擊者向服務(wù)器或者目標(biāo)主機(jī)發(fā)送大量的FIN請求包黔衡,由于攻擊者并未和服務(wù)器進(jìn)行過通訊,因此耗美,在服務(wù)器或目標(biāo)主機(jī)接收到該FIN請求后京髓,會對FIN包進(jìn)行分析,這就耗費(fèi)了服務(wù)器或者目標(biāo)主機(jī)的時間商架,當(dāng)攻擊者向服務(wù)器或者目標(biāo)主機(jī)發(fā)送大量的FIN數(shù)據(jù)包時堰怨,就會消耗大量的CPU使用率,達(dá)到和SYN FLOOD一樣的效果蛇摸。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末备图,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌揽涮,老刑警劉巖抠藕,帶你破解...
    沈念sama閱讀 221,198評論 6 514
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異蒋困,居然都是意外死亡盾似,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,334評論 3 398
  • 文/潘曉璐 我一進(jìn)店門雪标,熙熙樓的掌柜王于貴愁眉苦臉地迎上來零院,“玉大人,你說我怎么就攤上這事村刨「娉” “怎么了?”我有些...
    開封第一講書人閱讀 167,643評論 0 360
  • 文/不壞的土叔 我叫張陵烹困,是天一觀的道長玄妈。 經(jīng)常有香客問我乾吻,道長髓梅,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,495評論 1 296
  • 正文 為了忘掉前任绎签,我火速辦了婚禮枯饿,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘诡必。我一直安慰自己奢方,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,502評論 6 397
  • 文/花漫 我一把揭開白布爸舒。 她就那樣靜靜地躺著蟋字,像睡著了一般。 火紅的嫁衣襯著肌膚如雪扭勉。 梳的紋絲不亂的頭發(fā)上鹊奖,一...
    開封第一講書人閱讀 52,156評論 1 308
  • 那天,我揣著相機(jī)與錄音涂炎,去河邊找鬼忠聚。 笑死,一個胖子當(dāng)著我的面吹牛唱捣,可吹牛的內(nèi)容都是我干的两蟀。 我是一名探鬼主播,決...
    沈念sama閱讀 40,743評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼震缭,長吁一口氣:“原來是場噩夢啊……” “哼赂毯!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,659評論 0 276
  • 序言:老撾萬榮一對情侶失蹤党涕,失蹤者是張志新(化名)和其女友劉穎活烙,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體遣鼓,經(jīng)...
    沈念sama閱讀 46,200評論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡啸盏,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,282評論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了骑祟。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片回懦。...
    茶點(diǎn)故事閱讀 40,424評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖次企,靈堂內(nèi)的尸體忽然破棺而出怯晕,到底是詐尸還是另有隱情,我是刑警寧澤缸棵,帶...
    沈念sama閱讀 36,107評論 5 349
  • 正文 年R本政府宣布舟茶,位于F島的核電站,受9級特大地震影響堵第,放射性物質(zhì)發(fā)生泄漏吧凉。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,789評論 3 333
  • 文/蒙蒙 一踏志、第九天 我趴在偏房一處隱蔽的房頂上張望阀捅。 院中可真熱鬧,春花似錦针余、人聲如沸饲鄙。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,264評論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽忍级。三九已至,卻和暖如春伪朽,著一層夾襖步出監(jiān)牢的瞬間轴咱,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,390評論 1 271
  • 我被黑心中介騙來泰國打工驱负, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留嗦玖,地道東北人。 一個月前我還...
    沈念sama閱讀 48,798評論 3 376
  • 正文 我出身青樓跃脊,卻偏偏與公主長得像宇挫,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子酪术,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,435評論 2 359

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

  • TCP報文格式 TCP提供一種面向連接的器瘪,可靠的字節(jié)流服務(wù)翠储。 TCP首部的數(shù)據(jù)格式如下。(如果不計任選字段橡疼,通常是...
    不變甄心閱讀 245評論 0 0
  • 網(wǎng)絡(luò)層可以實(shí)現(xiàn)兩個主機(jī)之間的通信援所,但是并不具體,因?yàn)樾莱嬲M(jìn)行通信的實(shí)體是在主機(jī)中的進(jìn)程住拭,是一個主機(jī)中的一個進(jìn)程與...
    沉江小魚閱讀 199評論 0 2
  • 前言: TCP協(xié)議是計算機(jī)的基礎(chǔ),他本身是一個非常非常復(fù)雜的協(xié)議历帚。 本文只是蜻蜓點(diǎn)水滔岳,將從網(wǎng)絡(luò)基礎(chǔ)以及TCP的相關(guān)...
    Janti閱讀 612評論 0 4
  • TCP的三次握手和四次揮手 TCP/IP是面向連接的協(xié)議。運(yùn)輸連接是用來發(fā)送TCP報文的挽牢。TCP的運(yùn)輸連接又三個過...
    Hanks_Wei閱讀 163評論 0 0
  • 1 三次握手 TCP是面向連接的谱煤,無論哪一方向另一方發(fā)送數(shù)據(jù)之前,都必須在雙方之間建立一個連接禽拔。 在TCP/IP協(xié)...
    鋼牙仔閱讀 688評論 0 0