當前位置

首頁 > 商務英語 > 實用英語 > close wait什麼意思

close wait什麼意思

推薦人: 來源: 閱讀: 1.34W 次

close wait在英文中我們很少看到,但它卻確確實實地存在著,它的意思是什麼呢?下面是本站小編給大家整理的close wait什麼意思,供大家參閱!

close wait什麼意思
  close wait什麼意思

等待結束

  TIME WAIT和CLOSE WAIT狀態區別

在伺服器的日常維護過程中,會經常用到下面的命令:

它會顯示例如下面的資訊:

[plain] view plain copy

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

TIME_WAIT 814

CLOSE_WAIT 1

FIN_WAIT1 1

ESTABLISHED 634

SYN_RECV 2

LAST_ACK 1

常用的三個狀態是:ESTABLISHED 表示正在通訊,TIME_WAIT 表示主動關閉,CLOSE_WAIT 表示被動關閉。

TCP協議規定,對於已經建立的連線,網路雙方要進行四次握手才能成功斷開連線,如果缺少了其中某個步驟,將會使連線處於假死狀態,連線本身佔用的資源不會被釋放。網路伺服器程式要同時管理大量連線,所以很有必要保證無用連線完全斷開,否則大量僵死的連線會浪費許多伺服器資源。在眾多TCP狀態中,最值得注意的狀態有兩個:CLOSE_WAIT和TIME_WAIT。

TIME_WAIT

TIME_WAIT 是主動關閉連結時形成的,等待2MSL時間,約4分鐘。主要是防止最後一個ACK丟失。 由於TIME_WAIT 的時間會非常長,因此server端應儘量減少主動關閉連線

CLOSE_WAIT

CLOSE_WAIT是被動關閉連線是形成的。根據TCP狀態機,伺服器端收到客戶端傳送的FIN,則按照TCP實現傳送ACK,因此進入CLOSE_WAIT狀態。但如果伺服器端不執行close(),就不能由CLOSE_WAIT遷移到LAST_ACK,則系統中會存在很多CLOSE_WAIT狀態的連線。此時,可能是系統忙於處理讀、寫操作,而未將已收到FIN的連線,進行close。此時,recv/read已收到FIN的連線socket,會返回0。

為什麼需要 TIME_WAIT 狀態?

假設最終的ACK丟失,server將重發FIN,client必須維護TCP狀態資訊以便可以重發最終的ACK,否則會發送RST,結果server認為發生錯誤。TCP實現必須可靠地終止連線的兩個方向(全雙工關閉),client必須進入 TIME_WAIT 狀態,因為client可能面 臨重發最終ACK的情形。

為什麼 TIME_WAIT 狀態需要保持 2MSL 這麼長的時間?

如果 TIME_WAIT 狀態保持時間不足夠長(比如小於2MSL),第一個連線就正常終止了。第二個擁有相同相關五元組的連接出現,而第一個連線的重複報文到達,干擾了第二個連線。TCP實現必須防止某個連線的重複報文在連線終止後出現,所以讓TIME_WAIT狀態保持時間足夠長(2MSL),連線相應方向上的TCP報文要麼完全響應完畢,要麼被 丟棄。建立第二個連線的時候,不會混淆。

TIME_WAIT 和CLOSE_WAIT狀態socket過多

如果伺服器出了異常,百分之八九十都是下面兩種情況:

1.伺服器保持了大量TIME_WAIT狀態

2.伺服器保持了大量CLOSE_WAIT狀態,簡單來說CLOSE_WAIT數目過大是由於被動關閉連線處理不當導致的。

因為Linux分配給一個使用者的檔案控制代碼是有限的,而TIME_WAIT和CLOSE_WAIT兩種狀態如果一直被保持,那麼意味著對應數目的通道就一直被佔著,而且是“佔著茅坑不使勁”,一旦達到控制代碼數上限,新的請求就無法被處理了,接著就是大量Too Many Open Files異常,Tomcat崩潰。

  netstat listening close wait established等是什麼意思

端口占用查詢命令“netstat”詳解 Netstat用於顯示與IP、TCP、UDP和ICMP協議相關的統計資料,一般用於檢驗本機各埠的網路連線情況。 如果你的計算機有時候接收到的資料報導致出錯資料或故障,你不必感到奇怪,TCP/IP可以容許這些型別的錯誤,並能夠自動重發資料報。但如果累計的出錯情況數目佔到所接收的IP資料報相當大的百分比,或者它的數目正迅速增加,那麼你就應該使用Netstat查一查為什麼會出現這些情況了。 Netstat 詳細引數列表 C:>netstat /? 顯示協議統計資訊和當前 TCP/IP 網路連線。 NETSTAT [-a] [-b] [-e] [-n] [-o] [-p proto] [-r] [-s] [-v] [interval] -a 顯示所有連線和監聽埠。 -b 顯示包含於建立每個連線或監聽埠的可執行元件。在某些情況下已知可執行元件 擁有多個獨立元件,並且在這些情況下包含於建立連線或監聽埠的元件序列被顯示。 這種情況下,可執行元件名在底部的 [] 中,頂部是其呼叫的元件,等等,直到 TCP/IP 部分。注意此選項可能需要很長時間,如果沒有足夠許可權可能失敗。 -e 顯示乙太網統計資訊。此選項可以與 -s 選項組合使用。 -n 以數字形式顯示地址和埠號。 -o 顯示與每個連線相關的所屬程序 ID。 -p proto 顯示 proto 指定的協議的連線;proto 可以是 下列協議之一: TCP、UDP、TCPv6 或 UDPv6。 如果與 -s 選項一起使用以顯示按協議統計資訊,proto 可以是下列協議之一: IP、IPv6、ICMP、ICMPv6、TCP、TCPv6、UDP 或 UDPv6。 -r 顯示路由表。 -s 顯示按協議統計資訊。預設地,顯示 IP、 IPv6、ICMP、ICMPv6、TCP、TCPv6、UDP 和 UDPv6 的統計資訊; -p 選項用於指定預設情況的子集。 -v 與 -b 選項一起使用時將顯示包含於 為所有可執行元件建立連線或監聽埠的 元件。 interval 重新顯示選定統計資訊,每次顯示之間 暫停時間間隔(以秒計)。按 CTRL+C 停止重新 顯示統計資訊。如果省略,netstat 顯示當前 配置資訊(只顯示一次) (Win2000) C:>netstat /? Displays protocol statistics and current TCP/IP network connections. NETSTAT [-a] [-e] [-n] [-s] [-p proto] [-r] [interval] -a Displays all connections and listening ports. -e Displays Ethernet statistics. This may be combined with the -s option. -n Displays addresses and port numbers in numerical form. -p proto Shows connections for the protocol specified by proto; proto may be TCP or UDP. If used with the -s option to display per-protocol statistics, proto may be TCP, UDP, or IP. -r Displays the routing table. -s Displays per-protocol statistics. By default, statistics are shown for TCP, UDP and IP; the -p option may be used to specify a subset of the default. interval Redisplays selected statistics, pausing interval seconds between each display. Press CTRL+C to stop redisplaying statistics. If omitted, netstat will print the current configuration information once. Netstat的一些常用選項 netstat -s——本選項能夠按照各個協議分別顯示其統計資料。如果你的應用程式(如Web瀏覽器)執行速度比較慢,或者不能顯示Web頁之類的資料,那麼你就可以用本選項來檢視一下所顯示的資訊。你需要仔細檢視統計資料的各行,找到出錯的關鍵字,進而確定問題所在。 netstat -e——本選項用於顯示關於乙太網的統計資料。它列出的專案包括傳送的資料報的總位元組數、錯誤數、刪除數、資料報的數量和廣播的數量。這些統計資料既有傳送的資料報數量,也有接收的資料報數量。這個選項可以用來統計一些基本的網路流量。 netstat -r——本選項可以顯示關於路由表的資訊,類似於後面所講使用route print命令時看到的 資訊。除了顯示有效路由外,還顯示當前有效的連線。 netstat -a——本選項顯示一個所有的有效連線資訊列表,包括已建立的連線(ESTABLISHED),也包括監聽連線請求(LISTENING)的那些連線,斷開連線(CLOSE_WAIT)或者處於聯機等待狀態的(TIME_WAIT)等 netstat -n——顯示所有已建立的有效連線。 接下來我們來看一下,微軟是怎麼說的? 微軟公司故意將這個功能強大的命令隱藏起來是因為它對於普通使用者來說有些複雜。我們已經知道:Netstat它可以用來獲得你的系統網路連線的資訊(使用的埠,在使用的協議等 ),收到和發出的資料,被連線的遠端系統的埠,Netstat在記憶體中讀取所有的網路資訊。 在Internet RFC標準中,Netstat的定義是: Netstat是在核心中訪問網路及相關資訊的程式,它能提供TCP連線,TCP和UDP監聽,程序記憶體管理的相關報告。 看其中有個localaddress 和一個foreignaddress如果沒開啟任何網路連線,卻有established說明就有問題,注意,你得保證沒有你開的任何的網路連線,包括後臺程序,如果還是有established說明才有問題。

推薦閱讀

  • 1英語close的中文意思是什麼
  • 2The english we speak(BBC教學)第257期:A bitter pill to swallow 難以下嚥的苦果
  • 3carriage type switchgear,without isolating switch是什麼意思、英文翻譯及中文解釋
  • 4十二星座期待的浪漫情人節What do Twelve Constellation Expect for Romantic Valentine's Day
  • 5alumino silicate zeolites with noble metals as catalysts是什麼意思、英文翻譯及中文解釋
  • 61314什麼意思 1314代表什麼意思
  • 7alate diastolic show filling wave of ventricle是什麼意思、英文翻譯及中文解釋
  • 8associated working with outlet valves,cistern是什麼意思、英文翻譯及中文解釋
  • 9blue collar workers are into white collar workers是什麼意思、英文翻譯及中文解釋
  • 10非洲崛起失去中國動力 Africa's rise is stalled by the Chinese slowdown
  • 11The english we speak(BBC教學)第291期:White collar worker/blue collar worker 白領和藍領
  • 12不什麼不什麼俗語是什麼
  • 13龍抬頭是什麼意思?
  • 14大學生意志力的缺失The Lack of Willpower for College Students
  • 15automatic leased teletype write switching是什麼意思、英文翻譯及中文解釋
  • 16cesspool,drainage pit (waste well,absorbing well)是什麼意思、英文翻譯及中文解釋
  • 17attempt to raise the level of public ownership on the basis of economic backwardness是什麼意思、英文翻譯及中文解釋
  • 18守歲是什麼意思有什麼意義
  • 19automatically operated section block with instruction of instruction to the stations是什麼意思、英文翻譯及中文解釋
  • 20微笑是兩個人之間最短的距離A smile is the Shortest Distance Between two People