TCP連接端口的狀態

我們知道面試中,最常問到的關於網絡的TCP/IP協議方面的應該就是

1.TCP的3次握手和4次分手的過程?

2.TCP和UDP的區別?

等等。

而這裏我要總結一下TCP在連接過程中的端口的狀態的問題。在Linux下,可以用netstat  -ntal 查看tcp 的端口,如果要查看具體的某一個端口號,可以grep  xxx 過濾出

相應的哪一個端口,查看其狀態。


1.LISTENING狀態
FTP 服務啓動後首先處於偵聽狀態State 顯示是 LINSTENING 時表示處於偵聽狀態,

就是說該端口是開放的,等待連接,但還沒有連接。

TCPView可以看出本機開放FTP 的情況。它的意思是程序開放了

FTP默認端口爲21,可見在本季開放了FTP服務。目前處於偵聽狀態。


2.ESTABLISHED狀態

現在從192.168.1.1這臺計算機訪問一下192.168.1.10FTP服務。

在本機的TCPView可以查看端口狀態變爲ESTABLISHED.

ESTABLISHED的意思是建立連接。表示兩臺機器正在通信。

3.TIME_WAIT狀態

現在從102.168.1.1這臺計算機結束訪問192.168.1.10FTP 服務。

在本機TCPView可以查看出端口狀態變爲TIME_WAIT.

TIME_WAIT的意思是結束了這次連接。說明21端口曾經有訪問,但訪問結束了。



客戶端端口狀態的變化

1.SYN_SENT狀態

SYN_SENT狀態表示請求連接,當你要訪問其他的計算機的服務時首先要發個同步信號給端口,此時狀態爲SYN_SENT,如果連接成功了就變爲了ESTABLISHED,此時的 SYN_SENT 的狀態非常短暫。但如果發現SYN_SENT 非常多且在向不同的機器發出,那你的機器可能中了病毒或震盪波之類的病毒。這類病毒爲了感染別的計算機,他就要掃描別的計算機所, 在掃描的過程中對每個要掃描的計算機都要發出同步的請求,這也是出現了許多SYN_SENT的原因。

2.CLOSE_WAIT狀態
對方主動關閉連接或者網絡異常導致連接中斷,這時我方的狀態會變成CLOSE_WAIT此時我方要調用 close()來使得連接正確關閉對方主動關閉連接或者網絡異常導致連接中斷, 這時我方的狀態會變CLOSE_WAIT此時我方要調用 close()來使得連接正確關閉





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章