tcp 6個標記位

tcp 6個標記位

1)URG:此標誌表示TCP包的緊急指針域(後面馬上就要說到)有效,用來保證TCP連接不被中斷,並且督促中間層設備要儘快處理這些數據;

(2)ACK:此標誌表示應答域有效,就是說前面所說的TCP應答號將會包含在TCP數據包中;有兩個取值:0和1,爲1的時候表示應答域有效,反之爲0;

(3)PSH:這個標誌位表示Push操作。所謂Push操作就是指在數據包到達接收端以後,立即傳送給應用程序,而不是在緩衝區中排隊;

(4)RST:這個標誌表示連接復位請求。用來複位那些產生錯誤的連接,也被用來拒絕錯誤和非法的數據包;

(5)SYN:表示同步序號,用來建立連接。SYN標誌位和ACK標誌位搭配使用,當連接請求的時候,SYN=1,ACK=0;連接被相應的時候,SYN=1,ACK=1;這個標誌的數據包經常被用來進行端口掃描。掃描者發送一個只有SYN的數據包,如果對方主機響應了一個數據包回來,就表明這臺主機存在這個端口;但是由於這種掃描方式只是進行TCP三次握手的第一次握手,因此這種掃描的成功表示被掃描的機器不很安全,一臺安全的主機將會強制要求一個連接嚴格的進行TCP的三次握手;

(6)FIN:表示發送端已經達到數據末尾,也就是說雙方的數據傳送完成,沒有數據可以傳送了,發送FIN標誌位的TCP數據包後,連接將被斷開。這個標誌的數據包也經常被用於進行端口掃描。當一個FIN標誌的TCP數據包發送到一臺計算機的特定端口,如果這臺計算機響應了這個數據,並且反饋回來一個RST標誌的TCP包,就表明這臺計算機上沒有打開這個端口,但是這臺計算機是存在的;如果這臺計算機沒有反饋回來任何數據包,這就表明,這臺被掃描的計算機存在這個端口。

 

 

需要說明的是,金山網鏢的日誌報告使用的不是這些標誌位的全稱,而是使用的這些標誌位的首字母,比如攔截到一個包含FIN標誌的TCP數據包將會報告x.x.x.x的TCP數據包:F。還有一點,你的日誌可能報告x.x.x.x的TCP數據包:NULL,這是什麼?NULL標明發送給你的數據包不包含任何標誌位,你收到這種數據包,很多情況下意味着你被掃描,掃描者發送NULL數據包給你,如果你的計算機發送回去了一個FIN標誌的TCP數據包,就表明他探測的端口在你的計算機上不存在,但是你的計算機就已經被確定存在了,這樣他就可以使用其他的掃描方式進行端口探測。有一些特殊的掃描方式可以繞過不嚴謹的防火牆。

瞭解到了TCP標誌位的含義,就可以瞭解TCP的三次握手是怎麼進行的了:發送端發送一個SYN=1,ACK=0標誌的數據包給接收端,請求進行連接,這是第一次握手;接收端收到請求並且允許連接的話,就會發送一個SYN=1,ACK=1標誌的數據包給發送端,告訴它,可以通訊了,並且讓發送端發送一個確認數據包,這是第二次握手;最後,發送端發送一個SYN=0,ACK=1的數據包給接收端,告訴它連接已被確認,這就是第三次握手。之後,一個TCP連接建立,開始通訊。

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