在http應用中,存在乙個問題,server由於某種原因關閉連線,如keepalive的超時,這樣,作為主動關閉的server一方就會進入 fin_wait2狀態,但tcp/ip協議棧有個問題,fin_wait2狀態是沒有超時的(不象time_wait狀態),所以如果client不關閉,這個fin_wait_2狀態將保持到系統重新啟動,越來越多的fin_wait_2狀態會致使核心crash。
產生原因:
1。常連線並且當連線一直處於idle狀態導致server close時,client程式設計缺陷,沒有向server 發出fin和ack包
2。apache1.1和apache1.2增加了linger_close()函式,前面的帖子有介紹,這個函式可能引起了這個問題(為什麼我也不清楚)
解決辦法:
1。對fin_wait_2狀態增加超時機制,這個特性在協議裡沒有體現,但在一些os中已經實現
如:linux、solaris、freebsd、hp-unix、irix等
2。不要用linger_close()編譯
3。用so_linger代替,這個在某些系統中還能很好地處理
4。增加用於儲存網路連線狀態的記憶體mbuf,以防止核心crash
5。disable keepalive
網路的FIN WAIT 2狀態解釋和分析
b 關於網路裝置的fin wait 2狀態解釋 b 出處 在http應用中,存在乙個問題,server由於某種原因關閉連線,如keepalive的超時,這樣,作為主動關閉的server一方就會進入 fin wait2狀態,但tcp ip協議棧有個問題,fin wait2狀態是沒有超時的 不象time...
常見的網路裝置
中繼器,工作在物理層,只起到擴大傳輸距離的作用 集線器,工作在物理層,多埠中繼器。每個埠的輸入都向其他所有埠 二層交換機,工作在資料鏈路層,又被稱作多埠網橋,是傳統意義的,隔離衝突域 三層交換機工作在網路層,同時又路由功能。路由器工作在網路層,只能連線使用相同網路層協議的子網,隔離廣播域 多層交換機...
Xen的虛擬網路裝置
作為虛擬機器與外界通訊的途徑,虛擬網路裝置在xen的虛擬裝置中具有代表性。虛擬網路裝置的前後端須要通過共享記憶體進行通訊。由於後端須要為多個虛擬機器提供網路服務,因此後端具有網橋的功能。每個虛擬機器擁有乙個或多個網路裝置,通過軟體模擬的網橋進行資料報 虛擬網路裝置包含位於dom n中的前端和位於do...