socket的狀態

在一些防火牆或端口管理工具中經常會看到連接狀態爲CLOSED CLOSE_WITE LAST_ACK等的進程, 雖然狀態就那麼很少的幾個, 而且看字面意思也能猜個大概, 但沒做過Socket編程的朋友卻很少能準確的知道每種狀態的準確含義, 我也是經常把其中幾項搞混. 下面把幾種狀態的說明整理了一下, 也許會對有的朋友有點用:

CLOSED 沒有使用這個套接字
LISTEN 套接字正在監聽入境連接
SYN_SENT 套接字正在試圖主動建立連接
SYN_RECEIVED 正在處於連接的初始同步狀態
ESTABLISHED 連接已建立
CLOSE_WAIT 遠程套接字已經關閉:正在等待關閉這個套接字
FIN_WAIT_1 套接字已關閉,正在關閉連接
CLOSING 套接字已關閉,遠程套接字正在關閉,暫時掛起關閉確認
LAST_ACK 遠程套接字已關閉,正在等待本地套接字的關閉確認
FIN_WAIT_2 套接字已關閉,正在等待遠程套接字關閉
TIME_WAIT 這個套接字已經關閉,正在等待遠程套接字的關閉傳送

 

 

服務端,端口的狀態變化

 

  先在本機(IP地址爲:192.168.1.10)配置FTP服務,然後在其它計算機(IP地址爲:192.168.1.1)訪問FTP服務,從TCPView看看端口的狀態變化。

 

  下面黑體字顯示的是從TCPView中截取的部分。

 

  1、LISTENING狀態

 

  FTP服務啓動後首先處於偵聽(LISTENING)狀態。

  State顯示是LISTENING時表示處於偵聽狀態,就是說該端口是開放的,等待連接,但還沒有被連接。就像你房子的門已經敞開的,但還沒有人進來。

  從TCPView可以看出本機開放FTP的情況。它的意思是:程序inetinfo.exe開放了21端口,FTP默認的端口爲21,可見在本機開放了FTP服務。目前正處於偵聽狀態。

  inetinfo.exe:1260 TCP 0.0.0.0:21 0.0.0.0:0 LISTENING

 

  2、ESTABLISHED狀態

 

  現在從192.168.1.1這臺計算機訪問一下192.168.1.10的FTP服務。在本機的TCPView可以看出端口狀態變爲ESTABLISHED。

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

  下面顯示的是本機的FTP服務正在被192.168.1.1這臺計算機訪問。

  inetinfo.exe:1260 TCP 192.168.1.10:21 192.168.1.1:3009 ESTABLISHED

  注意:處於ESTABLISHED狀態的連接一定要格外注意,因爲它也許不是個正常連接。後面我們要講到這個問題。

 

  3、 TIME_WAIT狀態

 

  現在從192.168.1.1這臺計算機結束訪問192.168.1.10的FTP服務。在本機的TCPView可以看出端口狀態變爲TIME_WAIT。

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

  [System Process]:0 TCP 192.168.1.10:21 192.168.1.1:3009 TIME_WAIT

 

  4、小技巧

 

  a、可以telnet一個開放的端口,來觀察該端口的變化。比如看1025端口是開放的,在命令狀態(如圖1運行cmd)運行:

  telnet 192.168.1.10 1025

  b、從本機也可以測試,只不過顯示的是本機連本機

  c、在Tcpview中雙擊連接可看出程序的位置,右鍵點擊該連接,選擇End Process即可結束該連接

  客戶端,端口的狀態變化

  客戶端口實際上就是從本機訪問其它計算機服務時打開的源端口,最多的應用是上網,下面就以訪問www.baidu.com爲例來看看端口開放以及狀態的變化情況。

 

  1、SYN_SENT狀態

 

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

  下面顯示的是本機連接www.baidu.com網站時的開始狀態,如果你的網絡正常的,那很快就變爲ESTABLISHED的連接狀態。

  IEXPLORE.EXE:2928 TCP 192.168.1.10:1035 202.108.250.249:80 SYN_SENT

 

  2、ESTABLISHED狀態

 

  下面顯示的是本機正在訪問www.baidu.com網站。如果你訪問的網站有許多內容比如訪問www.yesky.com,那會發現一個地址有許多ESTABLISHED,這是正常的,網站中的每個內容比如圖片、flash等都要單獨建立一個連接。看ESTABLISHED狀態時一定要注意是不是IEXPLORE.EXE程序(IE)發起的連接,如果是EXPLORE.EXE之類的程序發起的連接,那也許是你的計算機中了木馬了。

  IEXPLORE.EXE:3120 TCP 192.168.1.10:1045 202.108.250.249:80 ESTABLISHED

  3、TIME_WAIT狀態

 

  如果瀏覽網頁完畢,那就變爲TIME_WAIT狀態。

  [System Process]:0 TCP 192.168.1.10:4259 202.108.250.249:80 TIME_WAIT

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