tcp狀態轉移要點
tcp協議規定,對於已經建立的連線,網路雙方要進行四次握手才能成功斷開連線,如果缺少了其中某個步驟,將會使連線處於假死狀態,連線本身占用的資源不會被釋放。網路伺服器程式要同時管理大量連線,所以很有必要保證無用連線完全斷開,否則大量僵死的連線會浪費許多伺服器資源。在眾多tcp狀態中,最值得注意的狀態有兩個:close_wait和time_wait。
1、listening狀態
ftp服務啟動後首先處於偵聽(listening)狀態。
2、established狀態
established的意思是建立連線。表示兩台機器正在通訊。
3、close_wait
對方主動關閉連線或者網路異常導致連線中斷,這時我方的狀態會變成close_wait 此時我方要呼叫close()來使得連線正確關閉
4、time_wait
我方主動呼叫close()斷開連線,收到對方確認後狀態變為time_wait。tcp協議規定time_wait狀態會一直持續2msl(即兩倍的分段最大生存期),以此來確保舊的連線狀態不會對新連線產生影響。處於time_wait狀態的連線占用的資源不會被核心釋放,所以作為伺服器,在可能的情況下,盡量不要主動斷開連線,以減少time_wait狀態造成的資源浪費。
目前有一種避免time_wait資源浪費的方法,就是關閉socket的linger選項。但這種做法是tcp協議不推薦使用的,在某些情況下這個操作可能會帶來錯誤。
埠狀態解釋
埠狀態解釋 jxych 發表於 2005 12 1 22 48 00 在執行中輸入cmd開啟命令提示符,然後輸入netstat an,如下 proto local address foreign address state tcp 0.0.0.0 135 0.0.0.0 0 listening tc...
6000檢視埠狀態 通訊裝置埠安全知識點彙總
埠安全 mac泛洪攻擊利用了交換機的mac學習機制,攻擊者通過傳送偽造源位址的資料報,讓交換機學習到錯誤的mac 表項,同時交換機的mac 表項就會被這種虛假的資訊佔滿,導致正常的資料報 時,匹配不到 表項而泛洪到vlan內的所有其它埠,這樣就可以實現報文監聽了。1 交換機的mac學習機制 2 ma...
socket監聽埠實現實時通訊
socket通訊的原理在這裡就不說了,它的用途還是比較廣泛的,我們可以使用socket來做乙個api介面出來,也可以使用socket來實現兩個程式之間的通訊,我們來研究一下在php裡面如何實現socket通訊。李昌輝 1.php製作的socket服務端 主要功能是設定socket通訊的ip位址及埠號...