TCP異常終止(reset報文)

TCP的異常終止是相對於正常釋放TCP連接的過程而言的,我們都知道,TCP連接的建立是通過三次握手完成的,而TCP正常釋放連接是通過四次揮手來完成,但是有些情況下,TCP在交互的過程中會出現一些意想不到的情況,導致TCP無法按照正常的四次揮手來釋放連接,如果此時不通過其他的方式來釋放TCP連接的話,這個TCP連接將會一直存在,佔用系統的部分資源。在這種情況下,我們就需要有一種能夠釋放TCP連接的機制,這種機制就是TCPreset報文。reset報文是指TCP報頭的標誌字段中的reset位置一的報文,如下圖所示:

點擊查看原圖

TCP異常終止的常見情形
我們在實際的工作環境中,導致某一方發送reset報文的情形主要有以下幾種:
1,客戶端嘗試與服務器未對外提供服務的端口建立TCP連接,服務器將會直接向客戶端發送reset報文。
點擊查看原圖
2,客戶端和服務器的某一方在交互的過程中發生異常(如程序崩潰等),該方系統將向對端發送TCP reset報文,告之對方釋放相關的TCP連接,如下圖所示:
點擊查看原圖
3,接收端收到TCP報文,但是發現該TCP的報文,並不在其已建立的TCP連接列表內,則其直接向對端發送reset報文,如下圖所示:
點擊查看原圖
4,在交互的雙方中的某一方長期未收到來自對方的確認報文,則其在超出一定的重傳次數或時間後,會主動向對端發送reset報文釋放該TCP連接,如下圖所示:
點擊查看原圖
5,有些應用開發者在設計應用系統時,會利用reset報文快速釋放已經完成數據交互的TCP連接,以提高業務交互的效率,如下圖所示:
點擊查看原圖
 Reset報文的利用
1 安全設備利用reset報文阻斷異常連接
安全設備(如防火牆、***檢測系統等)在發現某些可疑的TCP連接時,會構造交互雙方的reset報文發給對端,讓對端釋放該TCP連接。比如***檢測檢測到******的TCP連接,其構造成被***端給***主機發送reset報文,讓***主機釋放***連接。
2 利用reset報文實施***
安全設備可以利用reset報文達到安全防護的效果,***和***者也可以利用reset報文實現對某些主機的***和***,最常見的就是TCP會話劫持***。關於TCP會話劫持的相關知識請參考第三章《TCP會話劫持》一文。

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