一個虛擬連接的建立是通過三次握手來實現的
1. (Client) –> [SYN] –> (Server)
假如Client和Server通訊. 當Client要和Server通信時,Client首先向Server發一個SYN(Synchronize) 標記的包,告訴Server請求建立連接.
注意: 一個 SYN包就是僅SYN標記設為1的TCP包. 認識到這點很重要,只有當Server收到Client發來的SYN包,才可建立連接,除此之外別無他法,
三次握手ThreewayHandshake
。因此,如果你的防火墻丟棄所有的發往外網接口的SYN包,那么你將不 能讓外部任何主機主動建立連接。如下圖紅框,三次握手的首次SYN,Source為我的教學平臺所在的IP:192.168.102.64 Destination為平臺的IP:192.168.102.241
2. (Client) <– [SYN/ACK] <–(Server)
接著,Server收到來自Client發來的SYN包后,會發一個對SYN包的確認包(SYN/ACK)給Client,表示對第一個SYN包的確認,并繼續握手操作.
注意: SYN/ACK包是僅SYN 和 ACK 標記為1的包.
如下圖紅框,三次握手的服務端給客戶端的響應SYN,ACK,Source為平臺的IP:192.168.102.241,Destination為我的教學平臺所在的IP:192.168.102.64
3. (Client) –> [ACK] –> (Server)
Client收到來自Server的SYN/ACK 包,Client會再向Server發一個確認包(ACK),通知Server連接已建立。至此,三次握手完成,一個TCP連接完成。
Note: ACK包就是僅ACK 標記設為1的TCP包. 需要注意的是當三此握手完成、連接建立以后,TCP連接的每個包都會設置ACK位。
如下圖紅框,三次握手的最后確認ACK,Source為我的教學平臺所在的IP:192.168.102.64 Destination為平臺的IP:192.168.102.241
到此為止,客戶端完成了與服務端進行數據傳輸的準備工作,類似人們見面后先進行握手后,接下來就進行正題交流了。
四次握手Four-way Handshake
四次握手用來關閉已建立的TCP連接,當客戶端和服務端完成了數據包的傳輸后,又客戶端或者服務端主動發起握手,
電腦資料
《三次握手ThreewayHandshake》(http://salifelink.com)。來進行連接的斷開。1. (Client) –> ACK/FIN –>(Server)
2. (Client) <– ACK <–(Server)
3. (Client) <– ACK/FIN <–(Server)
4. (Client) –> ACK –>(Server)
如下圖藍框為四次握手,首先的發起放時為平臺,IP:192.168.102.241,Destination為我的教學平臺所在的IP:192.168.102.64。接下來客戶端進行了ACK響應 ,緊接著自己也發了一個結束包。服務端對結束包進行響應。
注意: 由于TCP連接是雙向連接, 因此關閉連接需要在兩個方向上做。ACK/FIN 包(ACK 和FIN 標記設為1)通常被認為是FIN(終結)包.然而, 由于連接還沒有關閉, FIN包總是打上ACK標記. 沒有ACK標記而僅有FIN標記的包不是合法的包,并且通常被認為是惡意的。
連接復位Resetting a connection
四次握手不是關閉TCP連接的唯一方法. 有時,如果主機需要盡快關閉連接(或連接超時,端口或主機不可達),RST (Reset)包將被發送. 注意在,由于RST包不是TCP連接中的必須部分, 可以只發送RST包(即不帶ACK標記). 但在正常的TCP連接中RST包可以帶ACK確認標記
到目前為止,你已經看到了 SYN, ACK, FIN, 和RST 標記. 另外,還有PSH (Push) 和URG(Urgent)標記.
最常見的非法組合是SYN/FIN 包. 注意:由于 SYN包是用來初始化連接的, 它不可能和 FIN和RST標記一起出現. 這也是一個惡意攻擊.
由于現在大多數防火墻已知 SYN/FIN 包, 別的一些組合,例如SYN/FIN/PSH, SYN/FIN/RST, SYN/FIN/RST/PSH。很明顯,當網絡中出現這種包時,你的網絡肯定受到攻擊了。
別的已知的非法包有FIN (無ACK標記)和”NULL”包。如同早先討論的,由于ACK/FIN包的出現是為了關閉一個TCP連接,那么正常的FIN包總是帶有ACK 標記。”NULL”包就是沒有任何TCP標記的包(URG,ACK,PSH,RST,SYN,FIN都為0)。
到目前為止,正常的網絡活動下,TCP協議棧不可能產生帶有上面提到的任何一種標記組合的TCP包。當你發現這些不正常的包時,肯定有人對你的網絡不懷好意。
抓報分析問題實例: