精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

TCP的狀態轉換及生產問題實操

網絡 網絡管理
前文本號介紹了TCP協議主要的流程,包括建立連接、傳輸數據和斷開連接。如果大家認真閱讀了附圖,應該可以看到在各個流程中套接字的狀態是在不斷變化的,不同的狀態標識了套集字所處的階段。

前文介紹了TCP協議主要的流程,包括建立連接、傳輸數據和斷開連接。如果大家認真閱讀了附圖,應該可以看到在各個流程中套接字的狀態是在不斷變化的,不同的狀態標識了套集字所處的階段。

如圖1是TCP一個完整的狀態轉換圖,圖中包含了套接字的所有狀態,以及發生狀態轉變的觸發條件。可能會有人問,了解這些狀態有什么用呢?我們平時編程又用不到。

TCP狀態轉換圖

圖1 TCP狀態轉換圖

為了說明上述問題,我們從3個角度進行解釋,分別是各種狀態的含義、在系統層面如何查詢狀態和在實際生產中的應用。

一、各種狀態的含義

在回答問題之前我們先具體了解一下各個狀態的含義。

  • CLOSED:這個是套接字的初始狀態,表示TCP連接是新建“未打開的”狀態或者已經“關閉著的”。
  • LISTEN :這個是服務端僅有的狀態,表示服務器端的某個SOCKET處于監聽狀態,可以接受客戶端的連接。
  • SYN_RCVD :表示服務器接收到了來自客戶端請求連接的SYN報文。在正常情況下,這個狀態我們可能觀察不到,因為這個狀態是服務器端的SOCKET在建立TCP連接時的三次握手會話過程中的一個中間狀態,很短暫。
  • SYN_SENT :這個狀態與SYN_RCVD 狀態相呼應,當客戶端SOCKET執行connect()進行連接時,它首先發送SYN報文,然后隨即進入到SYN_SENT 狀態,并等待服務端的發送三次握手中的第2個報文。SYN_SENT 狀態表示客戶端已發送SYN報文。
  • ESTABLISHED :表示TCP連接已經成功建立。
  • FIN_WAIT_1 :這個狀態得好好解釋一下,其實FIN_WAIT_1 和FIN_WAIT_2 兩種狀態的真正含義都是表示等待對方的FIN報文。而這兩種狀態的區別是:FIN_WAIT_1狀態實際上是當SOCKET在ESTABLISHED狀態時,它想主動關閉連接,向對方發送了FIN報文,此時該SOCKET進入到FIN_WAIT_1 狀態。而當對方回應ACK報文后,則進入到FIN_WAIT_2 狀態。當然在實際的正常情況下,無論對方處于任何種情況下,都應該馬上回應ACK報文,所以FIN_WAIT_1 狀態一般是比較難見到的,而FIN_WAIT_2 狀態有時仍可以用netstat看到。
  • FIN_WAIT_2 :上面已經解釋了這種狀態的由來,實際上FIN_WAIT_2狀態下的SOCKET表示半連接,即有一方調用close()主動要求關閉連接。注意:FIN_WAIT_2 是沒有超時的(不像TIME_WAIT 狀態),這種狀態下如果對方不關閉(不配合完成4次揮手過程),那這個 FIN_WAIT_2 狀態將一直保持到系統重啟,越來越多的FIN_WAIT_2 狀態會導致內核crash。
  • TIME_WAIT :表示收到了對方的FIN報文,并發送出了ACK報文。 TIME_WAIT狀態下的TCP連接會等待2*MSL(Max Segment Lifetime,分段生存期,指一個TCP報文在Internet上的最長生存時間。)在Linux可以通過cat /proc/sys/net/ipv4/tcp_fin_timeout看到本機的這個值,然后即可回到CLOSED 可用狀態了。
  • CLOSING :這種狀態在實際情況中應該很少見,屬于一種比較罕見的例外狀態。正常情況下,當一方發送FIN報文后,按理來說是應該先收到(或同時收到)對方的ACK報文,再收到對方的FIN報文。但是CLOSING 狀態表示一方發送FIN報文后,并沒有收到對方的ACK報文,反而卻也收到了對方的FIN報文。什么情況下會出現此種情況呢?那就是當雙方幾乎在同時close()一個SOCKET的話,就出現了雙方同時發送FIN報文的情況,這是就會出現CLOSING 狀態,表示雙方都正在關閉SOCKET連接。
  • CLOSE_WAIT :表示正在等待關閉。怎么理解呢?當對方close()一個SOCKET后發送FIN報文給自己,你的系統毫無疑問地將會回應一個ACK報文給對方,此時TCP連接則進入到CLOSE_WAIT狀態。接下來呢,你需要檢查自己是否還有數據要發送給對方,如果沒有的話,那你也就可以close()這個SOCKET并發送FIN報文給對方,即關閉自己到對方這個方向的連接。有數據的話則看程序的策略,繼續發送或丟棄。簡單地說,當你處于CLOSE_WAIT 狀態下,需要完成的事情是等待你去關閉連接。
  • LAST_ACK :當被動關閉的一方在發送FIN報文后,等待對方的ACK報文的時候,就處于LAST_ACK 狀態。當收到對方的ACK報文后,也就可以進入到CLOSED 可用狀態了。

二、狀態的監控方法

前文已經有提及,可以通過netstat命令查看TCP連接的狀態。圖2是一個簡單的例子,執行該命令的時候不帶任何參數。

netstat執行結果

圖2 netstat執行結果

由上圖可以看出,通過netstat可以看到每個TCP連接和UDP的狀態和詳細的IP地址等信息。該命令有很多參數,通過不同的參數可以得到我們想要的內容。下面我們舉幾個具體的例子。

1. 顯示所有端口信息

可以通過-a參數列出所有端口信息,而且可以附帶-t只列出TCP協議的,或者-u只列出UDP協議的端口信息。

  1. [root@itworld123~]# netstat -a # 列出所有端口 
  2. [root@itworld123~]# netstat -at # 列出所有TCP端口 
  3. [root@itworld123~]# netstat -au # 列出所有UDP端口 

2. 顯示所有監聽狀態的套接字

可以通過-l參數列出所有處于監聽狀態的套接字。當然也可以結合-t或者-u參數獲取想要的信息。如下是獲取TCP處于監聽狀態的套接字列表:

  1. root@itworld123:~# netstat -lu 

圖3 監聽狀態列表

3. 查看服務狀態

可以查看具體的服務的監聽和套接字等狀態。例如下面命令用于查看ssh服務的狀態:

  1. root@itworld123:~#netstat -antp | grep ssh 

圖3 SSH狀態結果

4. 其它

當然,也可以通過shell腳本實現復雜的查詢,比如下面用于統計ESTABLISHED狀態的數量。

  1. netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}' 

netstat命令功能非常強大,由于篇幅問題,本文只能拋磚引玉,更多功能可以man一下看看,這里就不過多解釋。

三、實際生產環境的意義

前面啰嗦了一大堆,我們回到正題,了解這些狀態到底有什么用呢?我們知道Linux操作系統對文件句柄的總量是有限制的,套接字也屬于文件句柄,因此也是有限制的。了解套接字的狀態有助于我們了解服務器是否有隱患或者性能瓶頸。

說到這,可能有的同學還是不明白,我們舉個簡單的例子。假設一臺服務器最多有6萬個句柄,如果由于某種業務場景,在服務器端出現大量的TIME_WAIT,此時這些套接字是無法馬上釋放,也就是無法馬上被重復使用,但仍然占用6萬句柄的名額。這塊,隨著時間的推移,可能會耗盡所有句柄,從而導致有新的連接請求是服務器端無法響應的問題。

為了讓大家更形象的理解這些狀態在實際生產中的意義,我們舉幾個實際生產中遇到問題的例子。

1. 服務器端大量TIME_WAIT

(1) 現象描述

某對象存儲服務,在監控系統發現有大量的TIME_WAIT。經確認該服務器是一臺新上架接入的服務器。經反復確認,具備相同功能的同集群的其它服務器工作都正常,并不存在大量TIME_WAIT的情況。

(2) 問題分析

結合協議我們知道主動關閉方會處于該狀態,而且TIME_WAIT狀態下的TCP連接會等待2*MSL。因此我們查看系統配置cat /proc/sys/net/ipv4/tcp_fin_timeout,發現是默認值。因此,確定是等待時間太長,導致套接字無法被利用所致。

(3) 問題解決

通過調整內核參數解決,打開文件/etc/sysctl.conf,編輯文件,加入以下內容:

  1. net.ipv4.tcp_syncookies = 1 
  2. net.ipv4.tcp_tw_reuse = 1 
  3. net.ipv4.tcp_tw_recycle = 1 
  4. net.ipv4.tcp_fin_timeout = 30 

然后執行/sbin/sysctl -p讓參數生效。

上述內容的含義具體如下:

  • net.ipv4.tcp_syncookies = 1表示開啟SYN Cookies。當出現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,表示關閉。
  • net.ipv4.tcp_fin_timeout修改系統默認的TIMEOUT時間

2. 服務器端大量ESTABLISHED

(1) 問題描述

某Tomcat服務器出現大量ESTABLISHED連接。

(2) 問題分析

根據協議狀態轉換情況,初步推斷是tomcat服務器回收session時出了問題,這個一般都跟服務器的Timeout設置有聯系。

查看tomcat的配置文件 server.xml

  1. <Connector port="8080" protocol="HTTP/1.1" 
  2.  connectionTimeout="20000" 
  3.  redirectPort="8443" URIEncoding="UTF-8" /> 
  4. ***** 

我們重點關注一下connectionTimeout,這個配置導致建立一個socket連接后,如果一直沒有收到客戶端的FIN,也沒有數據過來,那么此連接也必須等到10s后,才能被超時釋放。由于服務器并發量大,而該超時時間有長,導致連接釋放嚴重滯后,因此出現大量的ESTABLISHED連接。

(3) 問題解決

分析上述問題后,我們有針對性的作出如下修改。

  1. connectionTimeout="20000" 改為 connectionTimeout="100" 
  2. acceptCount="100"改為acceptCount="5000" 

修改后問題解決。

實際的例子還很多,但萬變不離其宗,需要我們熟悉TCP協議和狀態轉換,這樣在實際生產中遇到問題就可以有理有據的進行分析,然后輕松解決。

 

責任編輯:趙寧寧 來源: 今日頭條
相關推薦

2024-04-28 10:52:25

CentOS系統RHEL系統

2010-05-11 10:22:43

Mysql日期

2019-07-30 15:13:30

2022-10-12 14:23:30

Java線程

2015-08-31 11:00:10

SPECvirt 云測試虛擬化

2010-04-29 12:23:58

Oracle 獲取系統

2010-04-12 09:36:29

Oacle merge

2010-05-10 17:00:53

Oracle死鎖進程

2010-04-15 14:18:30

Oracle創建

2010-04-09 10:13:13

Oracle數據字典

2010-05-18 12:24:16

MySQL binlo

2010-01-06 10:38:16

Linux安裝JDK

2010-04-13 16:30:13

Oracle權限

2010-04-20 16:24:52

Oracle EM

2010-04-19 17:39:04

Oracle導入

2010-04-16 17:35:39

Oracle進程

2010-05-19 15:59:30

MySQL 中文亂碼

2010-04-20 13:17:44

2010-04-30 11:29:19

Oracle Data

2010-04-16 11:11:46

Oracle存儲過程
點贊
收藏

51CTO技術棧公眾號

波多野结衣一区二区| 欧美日韩激情在线观看| 日本一区二区三区视频在线| 国产欧美日韩在线| 91精品视频观看| 国产对白videos麻豆高潮| 深爱激情综合| 欧美一区二区精品在线| 精品无码一区二区三区在线| 国产毛片av在线| 国产黄人亚洲片| 国产ts一区二区| 日韩高清dvd碟片| 偷拍精品福利视频导航| 欧美一区二区在线免费观看| 成年人视频网站免费观看| 精品国产丝袜高跟鞋| 97久久超碰国产精品| 国产欧美一区二区三区久久| 日本三级片在线观看| 日本黄色精品| 日韩电影免费观看中文字幕| 日韩欧美理论片| 久久99久久99精品免观看软件| 樱花影视一区二区| 亚洲欧洲精品在线| 美女毛片在线看| 成人免费高清在线| 91在线国产电影| 国产精品51麻豆cm传媒 | 亚洲精品日韩在线观看| 天天在线女人的天堂视频| 久久精品国产秦先生| 欧美影院久久久| 亚洲精品在线观看av| 一区二区三区在线观看免费| 在线观看欧美成人| 国产手机在线观看| 日韩精品福利一区二区三区| 欧美成人一区二区| 亚洲妇熟xx妇色黄蜜桃| 精品久久久网| 欧美性猛片xxxx免费看久爱| www黄色av| 亚洲第一av| 欧美色视频日本高清在线观看| www精品久久| 亚洲大胆人体大胆做受1| 中文字幕综合网| 亚洲一区二区三区免费观看| 成人不用播放器| 国产欧美日韩麻豆91| 日本一区二区三区免费观看| 欧美套图亚洲一区| 91视频国产观看| 欧美成人综合一区| 狠狠v欧美ⅴ日韩v亚洲v大胸| 久久亚区不卡日本| 欧美一级日本a级v片| 欧美日本韩国一区二区| 久久网站热最新地址| 日本在线观看一区二区| 成人亚洲综合天堂| 国产精品乱码人人做人人爱| 亚洲一区二区三区欧美| 国产福利在线播放麻豆| 伊人一区二区三区| 青青草精品视频在线| h片在线观看视频免费| 午夜久久福利影院| 男人透女人免费视频| 成人一级视频| 91精品国产全国免费观看| 五月天六月丁香| 国产一区丝袜| 亚洲小视频在线观看| 亚洲 欧美 国产 另类| 中文字幕日韩一区二区不卡| 国产综合在线看| 欧美国产成人精品一区二区三区| 日日夜夜免费精品视频| 91免费欧美精品| 亚洲产国偷v产偷v自拍涩爱| 91免费观看在线| 夜夜爽99久久国产综合精品女不卡 | 国产精品99精品无码视| 久久精品盗摄| 91久久综合亚洲鲁鲁五月天| 国产91麻豆视频| 欧美国产一区二区在线观看| 国产精品99久久久久久大便| www.九色在线| 在线成人小视频| japanese在线观看| 国产日产一区 | 人成在线免费网站| 欧美性色aⅴ视频一区日韩精品| 日本黄色www| 中文有码一区| 欧美精品手机在线| 天天干天天操天天操| 国产一区在线观看视频| 麻豆91蜜桃| 最新国产在线拍揄自揄视频| 色一情一伦一子一伦一区| 欧美体内she精高潮| 国产不卡一二三区| 欧美二区乱c黑人| 中文字字幕在线观看| 成人国产在线观看| 一级二级三级欧美| 中文字幕在线直播| 日韩色在线观看| 欧美福利第一页| 在线亚洲成人| 97超碰在线播放| www.亚洲视频| 色视频成人在线观看免| 精品无码人妻少妇久久久久久| 四虎成人精品永久免费av九九| 亚洲97在线观看| 亚洲第一精品网站| 亚洲欧美综合在线精品| 色一情一乱一伦一区二区三区日本| 久久精品一级| 久久精品亚洲国产| 伊人色综合久久久| 久久精品免视看| 哪个网站能看毛片| 美女主播精品视频一二三四| 欧美成人sm免费视频| 91麻豆成人精品国产| 亚洲国产精品精华液2区45| 欧美日韩在线视频一区二区三区| 一区二区三区国产好| 久久亚洲综合国产精品99麻豆精品福利 | 91精品天堂| 嫩草在线视频| 欧美高清性hdvideosex| 成人欧美一区二区三区黑人一 | 欧美在线资源| 成人激情电影一区二区| 色大18成网站www在线观看| 色拍拍在线精品视频8848| 99久久久无码国产精品性| 性高湖久久久久久久久| 免费一区二区三区在在线视频| 77thz桃花论族在线观看| 欧美r级电影在线观看| 欧美成人免费观看视频| 国产精品白丝jk白祙喷水网站| 国产美女视频免费| 国产精品亚洲综合在线观看| 久久最新资源网| 国产熟女一区二区三区五月婷| 亚洲丝袜美腿综合| 成人免费播放视频| 国内精品久久久久久久影视蜜臀| 成人av资源| аⅴ资源天堂资源库在线| 日韩av一卡二卡| 国产精品一区无码| 中文天堂在线一区| 91热视频在线观看| 在线日韩av| 日本不卡一区二区三区在线观看| 国产91在线精品| 爱福利视频一区| 亚洲大尺度网站| 一本一道波多野结衣一区二区| 亚洲无人区码一码二码三码的含义| 奇米一区二区三区| 免费观看国产视频在线| 国产精品22p| 日韩av电影手机在线观看| yiren22亚洲综合伊人22| 欧美一区二区三区电影| 日韩污视频在线观看| 久久久99久久| 婷婷中文字幕在线观看| 夜久久久久久| 一区二区91美女张开腿让人桶| 亚洲大奶少妇| 日韩女在线观看| 3d玉蒲团在线观看| 日韩毛片中文字幕| 亚洲天堂avav| 午夜久久久影院| 日本 欧美 国产| 91丨porny丨蝌蚪视频| 色播五月激情五月| 影音先锋日韩资源| 亚洲高清视频一区| 国产精品男女| 91精品国产综合久久香蕉| 国产丝袜在线观看视频| 在线激情影院一区| 天堂中文字幕av| 欧美精品 日韩| 9i精品福利一区二区三区| 亚洲欧美日韩国产一区二区三区| 国产成人无码一区二区在线观看| 久久精品国产77777蜜臀| 欧美激情视频免费看| 91一区在线| 日本不卡高清视频一区| 国产乱人伦丫前精品视频| 成人激情在线播放| 影音成人av| 69影院欧美专区视频| 污的网站在线观看| 爽爽爽爽爽爽爽成人免费观看| 午夜视频1000| 精品国精品自拍自在线| 国产精品熟女久久久久久| 色94色欧美sute亚洲线路一ni | 国产精品国产三级欧美二区| 欧美综合影院| 日韩av免费在线看| 天天综合av| 91国产美女在线观看| 欧美色图天堂| 欧美成人精品三级在线观看 | 国产精品乱码一区二区三区软件 | 久久综合av| 色吧亚洲视频| 视频精品在线观看| 精品国产综合久久| 中文无码日韩欧| 亚洲综合中文字幕68页| 欧美电影在线观看网站| 国产精品一区二区电影| 秋霞国产精品| 国产成人中文字幕| 欧美日韩五码| 国产成人高潮免费观看精品| 午夜影院一区| 欧美综合激情网| 无码小电影在线观看网站免费| 久久久人成影片一区二区三区观看 | 欧美一区二区大胆人体摄影专业网站| 黄色免费在线看| 精品久久国产精品| а√天堂官网中文在线| 欧美xxxx14xxxxx性爽| 在线观看av免费| 九九热精品在线| 24小时免费看片在线观看| 久久久日本电影| 亚洲人体视频| 国产成人精品免高潮在线观看| 亚洲一区资源| 国产999精品久久久| 国产成人精品一区二区三区在线 | 青青一区二区| 久久99精品久久久久久青青日本| 欧美丝袜美腿| 日本在线观看一区| 婷婷激情综合| 国产91porn| 亚洲激情亚洲| 激情视频综合网| 精品一区二区三区视频在线观看| 一区二区三区四区毛片| 国产福利视频一区二区三区| 东京热av一区| 久久嫩草精品久久久精品一| 一级在线观看视频| 亚洲乱码国产乱码精品精可以看| 免费在线观看av网址| 疯狂蹂躏欧美一区二区精品| 国产无遮挡又黄又爽又色视频| 欧美精品日韩一区| 黄频网站在线观看| 亚洲欧美在线免费观看| 日本在线免费播放| 欧美黑人xxxx| 欧美舌奴丨vk视频| 亚洲r级在线观看| 日韩理论电影中文字幕| 日韩资源av在线| 欧美日韩精选| 国产一区视频免费观看| 国产精品一级在线| 公侵犯人妻一区二区三区| 国产精品久久久久久妇女6080| 久久黄色小视频| 在线视频欧美精品| 亚洲国产精品欧美久久| 亚洲人高潮女人毛茸茸| 午夜激情在线| 国产精品igao视频| 福利片一区二区| 欧美少妇一区| 尹人成人综合网| 五月天激情播播| 91麻豆产精品久久久久久| 国产精品成人69xxx免费视频 | 国产午夜伦鲁鲁| 国产一区二区在线免费观看| 成人免费网站黄| 亚洲国产成人高清精品| 亚洲天堂avav| 亚洲人成电影网| 超碰在线cao| 亚洲va欧美va国产综合剧情| 妖精一区二区三区精品视频| 99久久99久久精品| 麻豆91精品视频| 国产三级视频网站| 亚洲国产日产av| 91成人国产综合久久精品| 亚洲欧美成人一区二区在线电影| 污网站在线免费看| 国产日韩av在线| 久操成人av| 国产免费黄色av| 国产99久久久国产精品潘金网站| youjizz亚洲女人| 欧美性猛交xxxx乱大交蜜桃| 免费看av毛片| 欧美另类xxx| 精品久久国产一区| 一区精品在线| 美腿丝袜亚洲色图| 精品人伦一区二区三电影| 欧美性猛交xxxx富婆| 色一情一乱一乱一区91av| 欧美国产日韩免费| 日韩视频1区| 奇米777四色影视在线看| 国产最新精品精品你懂的| 亚洲欧洲综合网| 欧美肥胖老妇做爰| 麻豆网站在线免费观看| 国产欧美一区二区三区视频| 日韩欧美综合| 四季av一区二区三区| 国产精品免费久久| 一本色道久久综合无码人妻| www.xxxx欧美| 午夜不卡一区| 黑人巨大国产9丨视频| 国产一区二区福利视频| 免费在线观看日韩| 亚洲黄色www| 午夜影院一区| 欧洲成人一区二区| 奇米精品一区二区三区在线观看 | 久久综合99| 中文字幕亚洲影院| 亚洲女子a中天字幕| www.国产免费| 国外视频精品毛片| 亚洲素人在线| www.天天射.com| 一区在线观看视频| 国产黄色美女视频| 97人人做人人爱| 精品不卡一区| 欧美又黄又嫩大片a级| 一区二区高清在线| 亚洲 欧美 激情 另类| 国产成+人+综合+亚洲欧洲| 欧美高清视频手机在在线| xxx中文字幕| 大荫蒂欧美视频另类xxxx| 国产经典自拍视频在线观看| 91精品国产综合久久香蕉922| 国产精品地址| 国产呦小j女精品视频| 欧美日韩一区在线观看| 国产传媒在线播放| 免费成人深夜夜行视频| 奇米精品一区二区三区在线观看一| 日韩三级在线观看视频| 亚洲精品在线观看视频| 亚洲四虎影院| 中文字幕日韩精品无码内射| 久久久久久久网| 国产又粗又黄又爽的视频| 午夜欧美不卡精品aaaaa| 第四色成人网| 久久久久久久穴| 欧美性xxxxx极品少妇| 欧美xxxx免费虐| 亚洲欧美日韩不卡一区二区三区| 高清免费成人av| 中文字幕福利视频| 午夜精品一区二区三区在线视频| 欧美在线观看视频一区| 国产极品一区二区| 欧美久久久久中文字幕| 日本黄色免费在线| 国产又黄又爽免费视频| 国产亚洲视频系列| 好吊视频一二三区| 成人有码在线播放| 水野朝阳av一区二区三区| 久久精品女人毛片国产|