91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

為什么建鏈接要3次握手,斷鏈接需要4次揮手?

Linux愛好者 ? 來源:Jack ? 作者:Linux愛好者 ? 2020-11-12 15:36 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

首先處理這個問題,我們要知道一些網(wǎng)絡知識,要知道tcp那些事,比如說三次握手,和四次揮手......很多人會問,為什么建鏈接要3次握手,斷鏈接需要4次揮手?讓我們一起看下下面的流程圖:

首先,是三次握手:

首先Client端發(fā)送連接請求報文,Server段接受連接后回復ACK報文,并為這次連接分配資源。Client端接收到ACK報文后也向Server段發(fā)生ACK報文,并分配資源,這樣TCP連接就建立了。

然后是中間部分:兩者之間可以傳輸數(shù)據(jù)了

再次,下面的斷開鏈接:【注意】中斷連接端可以是Client端,也可以是Server端。

假設Client端發(fā)起中斷連接請求,也就是發(fā)送FIN報文。Server端接到FIN報文后,意思是說"我Client端沒有數(shù)據(jù)要發(fā)給你了",但是如果你還有數(shù)據(jù)沒有發(fā)送完成,則不必急著關閉Socket,可以繼續(xù)發(fā)送數(shù)據(jù)。

所以你先發(fā)送ACK,"告訴Client端,你的請求我收到了,但是我還沒準備好,請繼續(xù)你等我的消息"。這個時候Client端就進入FIN_WAIT狀態(tài),繼續(xù)等待Server端的FIN報文。當Server端確定數(shù)據(jù)已發(fā)送完成,則向Client端發(fā)送FIN報文,"告訴Client端,好了,我這邊數(shù)據(jù)發(fā)完了,準備好關閉連接了"。

Client端收到FIN報文后,"就知道可以關閉連接了,但是他還是不相信網(wǎng)絡,怕Server端不知道要關閉,所以發(fā)送ACK后進入TIME_WAIT狀態(tài),如果Server端沒有收到ACK則可以重傳?!埃琒erver端收到ACK后,"就知道可以斷開連接了"。Client端等待了2MSL后依然沒有收到回復,則證明Server端已正常關閉,那好,我Client端也可以關閉連接了。Ok,TCP連接就這樣關閉了!

那么可以這么理解,當client進入time_wait的等待時間是2個MSL

讓我們看一下一臺linux服務器的網(wǎng)絡狀態(tài):

# netstat -an | awk '/^tcp/ {++State[$NF]}END{for(key in State)print key " " State[key]}'LAST_ACK 7LISTEN 9SYN_RECV 2CLOSE_WAIT 125ESTABLISHED 1070FIN_WAIT1 17FIN_WAIT2 247CLOSING 4TIME_WAIT 25087

對于網(wǎng)站來說,這樣的time_wait略顯偏高, 也就是說大量的關閉操作在等待2個MSL后結(jié)束,正常我們的tcp 端口是65535個,如果并發(fā)再高一些,可能會大量的socket不能及時被釋放,從而導致性能下降,所以我們可以通過linux內(nèi)核進行一些網(wǎng)絡調(diào)整比如,開啟socket重用和快速回收:

net.ipv4.tcp_syncookies = 1net.ipv4.tcp_tw_reuse = 1net.ipv4.tcp_tw_recycle = 1net.ipv4.tcp_max_tw_buckets = 5000net.ipv4.tcp_max_syn_backlog = 8192net.ipv4.tcp_keepalive_time = 1200net.ipv4.ip_local_port_range = 1024 65000

net.ipv4.tcp_syncookies = 1

表示開啟SYN Cookies。當出現(xiàn)SYN等待隊列溢出時,啟用cookies來處理,可防范少量SYN攻擊,默認為0,表示關閉;

net.ipv4.tcp_tw_reuse = 1

表示開啟重用。允許將TIME-WAIT sockets重新用于新的TCP連接,默認為0,表示關閉;

net.ipv4.tcp_tw_recycle = 1

表示開啟TCP連接中TIME-WAIT sockets的快速回收,默認為0,表示關閉。

系統(tǒng)tcp_timestamps缺省就是開啟的,所以當tcp_tw_recycle被開啟后,實際上這種行為就被激活了.如果服務器身處NAT環(huán)境,安全起見,通常要禁止tcp_tw_recycle,至于TIME_WAIT連接過多的問題,可以通過激活tcp_tw_reuse來緩解。

net.ipv4.tcp_max_tw_buckets = 5000

表示系統(tǒng)同時保持TIME_WAIT套接字的最大數(shù)量,如果超過這個數(shù)字,TIME_WAIT套接字將立刻被清除并打印警告信息。默認為180000,改為 5000。對于Apache、Nginx等服務器,上幾行的參數(shù)可以很好地減少TIME_WAIT套接字數(shù)量,但是對于Squid,效果卻不大。此項參數(shù)可以控制TIME_WAIT套接字的最大數(shù)量,避免Squid服務器被大量的TIME_WAIT套接字拖死。

net.ipv4.tcp_max_syn_backlog = 8192

表示SYN隊列的長度,默認為1024,加大隊列長度為8192,可以容納更多等待連接的網(wǎng)絡連接數(shù)。

net.ipv4.tcp_keepalive_time = 1200

表示當keepalive起用的時候,TCP發(fā)送keepalive消息的頻度。缺省是2小時,改為20分鐘。

net.ipv4.ip_local_port_range = 1024-65000

表示用于向外連接的端口范圍。缺省情況下很?。?2768到61000,改為1024到65000。

# netstat -an | awk '/^tcp/ {++State[$NF]}END{for(key in State)print key " " State[key]}' LAST_ACK140 LISTEN9 SYN_RECV7 CLOSE_WAIT2 ESTABLISHED972 FIN_WAIT121 FIN_WAIT2152 CLOSING2 TIME_WAIT682

責任編輯:lq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • Linux
    +關注

    關注

    88

    文章

    11764

    瀏覽量

    219097
  • 服務器
    +關注

    關注

    14

    文章

    10261

    瀏覽量

    91526
  • TCP
    TCP
    +關注

    關注

    8

    文章

    1425

    瀏覽量

    83541

原文標題:Linux TCP 狀態(tài) TIME_WAIT 過多的處理

文章出處:【微信號:LinuxHub,微信公眾號:Linux愛好者】歡迎添加關注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    TCP/IP(Socket)協(xié)議深度剖析

    TCP/IP協(xié)議作為互聯(lián)網(wǎng)通信的基礎架構(gòu),其核心機制Socket編程承載著全球數(shù)據(jù)交換的使命。本文將深入剖析這一協(xié)議的七層架構(gòu)、三握手與四揮手的精妙設計、流量控制與擁塞控制的動態(tài)平
    的頭像 發(fā)表于 03-03 17:06 ?520次閱讀

    TCP三握手與四揮手的詳細過程

    TCP 三握手和四揮手,大概是網(wǎng)絡領域被問爛了的面試題。但真正能把狀態(tài)變遷、序列號變化、抓包細節(jié)講清楚的人并不多。很多人背了八股文,一到生產(chǎn)環(huán)境看 Wireshark 抓包就懵了
    的頭像 發(fā)表于 02-25 10:38 ?235次閱讀

    光伏一調(diào)頻設備/一調(diào)頻裝置|光伏一調(diào)頻涉網(wǎng)試驗/光伏電站一調(diào)頻建設改造方案

    2025年以來能源局下發(fā)通知要求10KV以上的新能源廠站具備一調(diào)頻能力,并遞交涉網(wǎng)試驗報告。對于投資規(guī)模不大的工商業(yè)分布式光伏電站,又要面臨改造投資問題,壓力較大。如何選擇質(zhì)優(yōu)價廉的一調(diào)頻產(chǎn)品
    的頭像 發(fā)表于 01-17 08:54 ?1233次閱讀
    光伏一<b class='flag-5'>次</b>調(diào)頻設備/一<b class='flag-5'>次</b>調(diào)頻裝置|光伏一<b class='flag-5'>次</b>調(diào)頻涉網(wǎng)試驗/光伏電站一<b class='flag-5'>次</b>調(diào)頻建設改造方案

    RDMA設計14:連接管理模塊設計

    至 CONNECT 狀態(tài),創(chuàng)建連接流程類似 TCP/IP 三握手流程;如果為斷開連接則跳轉(zhuǎn)至 DISCONNECT 狀態(tài),斷開連接流程類似 TCP/IP 四揮手流程。當連接信息緩存
    發(fā)表于 12-30 16:51

    TCP的三握手

    ,Server進入SYN_RCVD狀態(tài)。 (3)第三握手:Client收到確認后,檢查ack是否為J+1,ACK是否為1,如果正確則將標志位ACK置為1,ack=K+1,并將該數(shù)據(jù)包發(fā)送給Server
    發(fā)表于 12-02 07:16

    Vivado浮點數(shù)IP核的握手信號

    和給出握手信號。在RISC v架構(gòu)中每個模塊(包括FPU)的握手信號都有一個i_valid、i_ready,F(xiàn)PU內(nèi)部需要三個輸入數(shù)據(jù)的握手信號、一個輸出結(jié)果的
    發(fā)表于 10-24 07:01

    根據(jù)標題獲取商品鏈接評論接口的技術實現(xiàn)

    ? ?在電商數(shù)據(jù)分析和競品監(jiān)控場景中, 根據(jù)商品標題精準獲取商品鏈接及評論數(shù)據(jù) 是核心需求。下面將分步驟解析技術實現(xiàn)方案: 一、技術架構(gòu)設計 ? graph TD A[商品標題輸入] --?>
    的頭像 發(fā)表于 10-20 16:03 ?676次閱讀
    根據(jù)標題獲取商品<b class='flag-5'>鏈接</b>評論接口的技術實現(xiàn)

    飛凌嵌入式ElfBoard-Vim編輯器之靜態(tài)鏈接和動態(tài)鏈接

    1.靜態(tài)鏈接靜態(tài)鏈接通過靜態(tài)庫進行鏈接,生成的目標程序中包含運行需要的所有庫,可以直接運行,不過就是文件比較大。靜態(tài)庫是匯編產(chǎn)生的.o文件的集合,一般以.a文件形式出現(xiàn)。gcc在使用靜
    發(fā)表于 10-17 09:07

    拼多多商品推廣鏈接生成API:社交裂變的轉(zhuǎn)化追蹤利器

    ? 在社交電商時代,拼多多通過 商品推廣鏈接生成API 為商家提供了精準的流量轉(zhuǎn)化解決方案。該工具不僅簡化了社交裂變活動的落地,更實現(xiàn)了全鏈路轉(zhuǎn)化效果追蹤,成為提升營銷效率的核心引擎。 一、核心
    的頭像 發(fā)表于 09-08 16:22 ?770次閱讀
    拼多多商品推廣<b class='flag-5'>鏈接</b>生成API:社交裂變的轉(zhuǎn)化追蹤利器

    ReviewHub:實現(xiàn)Booster與設計工具端無縫鏈接的評審協(xié)作平臺

    其“無縫鏈接”特性,徹底打破傳統(tǒng)評審壁壘,實現(xiàn)設計與評審的深度融合與實時同步,打造高效、流暢的協(xié)作體驗。產(chǎn)品特點ReviewHub以無縫鏈接Booster輕量級原
    的頭像 發(fā)表于 06-04 11:46 ?869次閱讀
    ReviewHub:實現(xiàn)Booster與設計工具端無縫<b class='flag-5'>鏈接</b>的評審協(xié)作平臺

    公司在機器人全產(chǎn)業(yè)鏈接會 FAIR plus 2025 的精彩呈現(xiàn)

    公司在機器人全產(chǎn)業(yè)鏈接會 FAIR plus 2025 的精彩呈現(xiàn)
    的頭像 發(fā)表于 05-07 11:14 ?574次閱讀
    公司在機器人全產(chǎn)業(yè)<b class='flag-5'>鏈接</b>會 FAIR plus 2025 的精彩呈現(xiàn)

    消諧裝置與二消諧裝置區(qū)別、一消諧器與二消諧器的區(qū)別

    消諧器與二消諧器是電力系統(tǒng)中用于抑制諧振過電壓的不同裝置,主要區(qū)別如下: 安裝位置:一消諧器串聯(lián)于電壓互感器(PT)一側(cè)中性點與地之間,直接承受高電壓;二
    的頭像 發(fā)表于 05-07 09:58 ?4316次閱讀
    一<b class='flag-5'>次</b>消諧裝置與二<b class='flag-5'>次</b>消諧裝置區(qū)別、一<b class='flag-5'>次</b>消諧器與二<b class='flag-5'>次</b>消諧器的區(qū)別

    思嵐科技攜三大核心產(chǎn)品亮相2025機器人全產(chǎn)業(yè)鏈接

    此前,2025年4月24日-26日,深圳福田會展中心8號館內(nèi)人潮涌動,由深圳市機器人協(xié)會主辦的FAIR plus 2025機器人全產(chǎn)業(yè)鏈接會迎來巔峰時刻。
    的頭像 發(fā)表于 04-30 14:03 ?1116次閱讀

    請問如何鏈接動態(tài)庫?

    是否有可參考的工程? 鏈接成功后動態(tài)庫應該放在哪里啊?SDK是RTOS_ONLY
    發(fā)表于 04-25 08:15

    TCP三握手和四揮手,這樣解釋太通俗易懂了!

    TCP連接的建立和釋放分別通過“三握手”和“四揮手”來完成。三握手過程TCP三
    的頭像 發(fā)表于 04-24 19:33 ?1575次閱讀
    TCP三<b class='flag-5'>次</b><b class='flag-5'>握手</b>和四<b class='flag-5'>次</b><b class='flag-5'>揮手</b>,這樣解釋太通俗易懂了!