tcp鏈接的幾種狀態(tài)


說明: 通常情況下:一個(gè)正常的TCP連接褐隆,都會(huì)有三個(gè)階段:1才写、TCP三次握手;2回挽、數(shù)據(jù)傳送;3、TCP四次揮手
里面的幾個(gè)概念:

  • SYN: (同步序列編號(hào),Synchronize Sequence Numbers)
  • ACK: (確認(rèn)編號(hào),Acknowledgement Number)
  • FIN: (結(jié)束標(biāo)志,FINish)

TCP三次握手(創(chuàng)建 OPEN)

  1. 客戶端發(fā)起一個(gè)和服務(wù)創(chuàng)建TCP鏈接的請(qǐng)求缨历,這里是SYN(J)
  2. 服務(wù)端接受到客戶端的創(chuàng)建請(qǐng)求后以蕴,返回兩個(gè)信息: SYN(K) + ACK(J+1)
  3. 客戶端在接受到服務(wù)端的ACK信息校驗(yàn)成功后(J與J+1),返回一個(gè)信息:ACK(K+1)
  4. 服務(wù)端這時(shí)接受到客戶端的ACK信息校驗(yàn)成功后(K與K+1)辛孵,不再返回信息丛肮,后面進(jìn)入數(shù)據(jù)通訊階段

數(shù)據(jù)通訊

  1. 客戶端/服務(wù)端 read/write數(shù)據(jù)包

TCP四次握手(關(guān)閉 finish)

  1. 客戶端發(fā)起關(guān)閉請(qǐng)求,發(fā)送一個(gè)信息:FIN(M)
  2. 服務(wù)端接受到信息后魄缚,首先返回ACK(M+1),表明自己已經(jīng)收到消息宝与。
  3. 服務(wù)端在準(zhǔn)備好關(guān)閉之前,最后發(fā)送給客戶端一個(gè) FIN(N)消息冶匹,詢問客戶端是否準(zhǔn)備好關(guān)閉了
  4. 客戶端接受到服務(wù)端發(fā)送的消息后习劫,返回一個(gè)確認(rèn)信息: ACK(N+1)
  5. 最后,服務(wù)端和客戶端在雙方都得到確認(rèn)時(shí)嚼隘,各自關(guān)閉或者回收對(duì)應(yīng)的TCP鏈接诽里。

詳細(xì)的狀態(tài)說明(以及l(fā)inux相關(guān)參數(shù)調(diào)整)

  1. SYN_SEND
  • 客戶端嘗試鏈接服務(wù)端,通過open方法飞蛹。也就是TCP三次握手中的第1步之后,注意是客戶端狀態(tài)
  • sysctl -w net.ipv4.tcp_syn_retries = 2 ,做為客戶端可以設(shè)置SYN包的重試次數(shù)谤狡,默認(rèn)5次(大約180s)引用校長(zhǎng)的話:僅僅重試2次灸眼,現(xiàn)代網(wǎng)絡(luò)夠了
  1. SYN_RECEIVED
  • 服務(wù)接受創(chuàng)建請(qǐng)求的SYN后,也就是TCP三次握手中的第2步墓懂,發(fā)送ACK數(shù)據(jù)包之前
  • 注意是服務(wù)端狀態(tài),一般15個(gè)左右正常焰宣,如果很大,懷疑遭受SYN_FLOOD攻擊
  • sysctl -w net.ipv4.tcp_max_syn_backlog=4096 , 設(shè)置該狀態(tài)的等待隊(duì)列數(shù)拒贱,默認(rèn)1024宛徊,調(diào)大后可適當(dāng)防止syn-flood,可參見man 7 tcp
  • sysctl -w net.ipv4.tcp_syncookies=1 , 打開syncookie逻澳,在syn backlog隊(duì)列不足的時(shí)候,提供一種機(jī)制臨時(shí)將syn鏈接換出
  • sysctl -w net.ipv4.tcp_synack_retries = 2 ,做為服務(wù)端返回ACK包的重試次數(shù)暖呕,默認(rèn)5次(大約180s)引用校長(zhǎng)的話:僅僅重試2次斜做,現(xiàn)代網(wǎng)絡(luò)夠了
  1. ESTABLISHED
  • 客戶端接受到服務(wù)端的ACK包后的狀態(tài),服務(wù)端在發(fā)出ACK在一定時(shí)間后即為ESTABLISHED

  • sysctl -w net.ipv4.tcp_keepalive_time = 1200 湾揽,默認(rèn)為7200秒(2小時(shí))瓤逼,系統(tǒng)針對(duì)空閑鏈接會(huì)進(jìn)行心跳檢查,如果超過 net.ipv4.tcp_keepalive_probes *net.ipv4.tcp_keepalive_intvl = 默認(rèn)11分库物,終止對(duì)應(yīng)的tcp鏈接霸旗,可適當(dāng)調(diào)整心跳檢查頻率

  • 目前線上的監(jiān)控 waring:600 , critial : 800

  1. FIN_WAIT1
  • 主動(dòng)關(guān)閉的一方,在發(fā)出FIN請(qǐng)求之后戚揭,也就是在TCP四次握手的第1步
  1. CLOSE_WAIT
  • 被動(dòng)關(guān)閉的一方诱告,在接受到客戶端的FIN后,也就是在TCP四次握手的第2步
  1. FIN_WAIT2
  • 主動(dòng)關(guān)閉的一方民晒,在接受到被動(dòng)關(guān)閉一方的ACK后精居,也就是TCP四次握手的第2步
  • sysctl -w net.ipv4.tcp_fin_timeout=30, 可以設(shè)定被動(dòng)關(guān)閉方返回FIN后的超時(shí)時(shí)間,有效回收鏈接潜必,避免syn-flood.
  1. LASK_ACK
  • 被動(dòng)關(guān)閉的一方靴姿,在發(fā)送ACK后一段時(shí)間后(確保客戶端已收到)磁滚,再發(fā)起一個(gè)FIN請(qǐng)求佛吓。也就是TCP四次握手的第3步
  1. TIME_WAIT
  • 主動(dòng)關(guān)閉的一方,在收到被動(dòng)關(guān)閉的FIN包后垂攘,發(fā)送ACK维雇。也就是TCP四次握手的第4步
  • sysctl -w net.ipv4.tcp_tw_recycle = 1 , 打開快速回收TIME_WAIT,Enabling this option - is not recommended since this causes problems when working with NAT (Network Address Translation)
  • sysctl -w net.ipv4.tcp_tw_reuse =1, 快速回收并重用TIME_WAIT的鏈接, 貌似和tw_recycle有沖突搜贤,不能重用就回收?
  • net.ipv4.tcp_max_tw_buckets: 處于time_wait狀態(tài)的最多鏈接數(shù)谆沃,默認(rèn)為180000.

相關(guān)說明

  1. 主動(dòng)關(guān)閉方在接收到被動(dòng)關(guān)閉方的FIN請(qǐng)求后,發(fā)送成功給對(duì)方一個(gè)ACK后,將自己的狀態(tài)由FIN_WAIT2修改為TIME_WAIT仪芒,而必須再等2倍的MSL(Maximum Segment Lifetime,MSL是一個(gè)數(shù)據(jù)報(bào)在internetwork中能存在的時(shí)間)時(shí)間之后雙方才能把狀態(tài) 都改為CLOSED以關(guān)閉連接唁影。目前RHEL里保持TIME_WAIT狀態(tài)的時(shí)間為60秒
  2. keepAlive策略可以有效的避免進(jìn)行三次握手和四次關(guān)閉的動(dòng)作
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末耕陷,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子据沈,更是在濱河造成了極大的恐慌哟沫,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,383評(píng)論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件锌介,死亡現(xiàn)場(chǎng)離奇詭異嗜诀,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)孔祸,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,522評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門隆敢,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人崔慧,你說我怎么就攤上這事拂蝎。” “怎么了惶室?”我有些...
    開封第一講書人閱讀 157,852評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵温自,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我皇钞,道長(zhǎng)悼泌,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,621評(píng)論 1 284
  • 正文 為了忘掉前任夹界,我火速辦了婚禮馆里,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘掉盅。我一直安慰自己也拜,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,741評(píng)論 6 386
  • 文/花漫 我一把揭開白布趾痘。 她就那樣靜靜地躺著慢哈,像睡著了一般。 火紅的嫁衣襯著肌膚如雪永票。 梳的紋絲不亂的頭發(fā)上卵贱,一...
    開封第一講書人閱讀 49,929評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音侣集,去河邊找鬼键俱。 笑死,一個(gè)胖子當(dāng)著我的面吹牛世分,可吹牛的內(nèi)容都是我干的编振。 我是一名探鬼主播,決...
    沈念sama閱讀 39,076評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼臭埋,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼踪央!你這毒婦竟也來了臀玄?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,803評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤畅蹂,失蹤者是張志新(化名)和其女友劉穎健无,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體液斜,經(jīng)...
    沈念sama閱讀 44,265評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡累贤,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,582評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了少漆。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片臼膏。...
    茶點(diǎn)故事閱讀 38,716評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖示损,靈堂內(nèi)的尸體忽然破棺而出讶请,到底是詐尸還是另有隱情,我是刑警寧澤屎媳,帶...
    沈念sama閱讀 34,395評(píng)論 4 333
  • 正文 年R本政府宣布,位于F島的核電站论巍,受9級(jí)特大地震影響烛谊,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜嘉汰,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,039評(píng)論 3 316
  • 文/蒙蒙 一丹禀、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧鞋怀,春花似錦双泪、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,798評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至残腌,卻和暖如春村斟,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背抛猫。 一陣腳步聲響...
    開封第一講書人閱讀 32,027評(píng)論 1 266
  • 我被黑心中介騙來泰國(guó)打工蟆盹, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人闺金。 一個(gè)月前我還...
    沈念sama閱讀 46,488評(píng)論 2 361
  • 正文 我出身青樓逾滥,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親败匹。 傳聞我的和親對(duì)象是個(gè)殘疾皇子寨昙,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,612評(píng)論 2 350

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

  • 1讥巡、TCP狀態(tài)linux查看tcp的狀態(tài)命令:1)、netstat -nat 查看TCP各個(gè)狀態(tài)的數(shù)量2)毅待、lso...
    北辰青閱讀 9,414評(píng)論 0 11
  • 18.1 引言 TCP是一個(gè)面向連接的協(xié)議尚卫。無論哪一方向另一方發(fā)送數(shù)據(jù)之前,都必須先在雙方之間建立一條連接尸红。本章將...
    張芳濤閱讀 3,351評(píng)論 0 13
  • Linux(centos 7)文件數(shù)限制 內(nèi)核參數(shù)fs.file-max /proc/sys/fs/file-ma...
    散裝咖啡閱讀 1,480評(píng)論 0 1
  • 個(gè)人認(rèn)為吱涉,Goodboy1881先生的TCP /IP 協(xié)議詳解學(xué)習(xí)博客系列博客是一部非常精彩的學(xué)習(xí)筆記,這雖然只是...
    貳零壹柒_fc10閱讀 5,051評(píng)論 0 8
  • 我看到有人在分享很甜的情話外里。你沒怎么說過怎爵,愛,喜歡盅蝗。有時(shí)叫上一聲寶寶鳖链,已經(jīng)是非常浪漫和甜蜜的事情了。 我想你說過一...
    小森寶閱讀 165評(píng)論 0 0