1. 程式人生 > >TCP|TCP異常中的Reset報文

TCP|TCP異常中的Reset報文

TCP異常終止(reset報文)

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

TCP異常終止的常見情形

我們在實際的工作環境中,導致某一方傳送reset報文的情形主要有以下幾種:

1,客戶端嘗試與伺服器未對外提供服務的埠建立TCP連線,伺服器將會直接向客戶端傳送reset報文。

2,客戶端和伺服器的某一方在互動的過程中發生異常(如程式崩潰等),該方系統將向對端傳送TCP reset報文,告之對方釋放相關的TCP連線,如下圖所示:

3,接收端收到TCP報文,但是發現該TCP的報文,並不在其已建立的TCP連線列表內,則其直接向對端傳送reset報文,如下圖所示:

4,在互動的雙方中的某一方長期未收到來自對方的確認報文,則其在超出一定的重傳次數或時間後,會主動向對端傳送reset報文釋放該TCP連線,如下圖所示:

5,有些應用開發者在設計應用系統時,會

利用reset報文快速釋放已經完成資料互動的TCP連線,以提高業務互動的效率,如下圖所示:

Reset報文的利用

安全裝置利用reset報文阻斷異常連線

安全裝置(如防火牆、入侵檢測系統等)在發現某些可疑的TCP連線時,會構造互動雙方的reset報文發給對端,讓對端釋放該TCP連線。比如入侵檢測檢測到黑客攻擊的TCP連線,其構造成被攻擊端給黑客主機發送reset報文,讓黑客主機釋放攻擊連線。

利用reset報文實施攻擊

安全裝置可以利用reset報文達到安全防護的效果,黑客和攻擊者也可以利用reset報文實現對某些主機的入侵和攻擊,最常見的就是TCP會話劫持攻擊。關於TCP會話劫持的相關知識請參考第三章《TCP會話劫持》一文。