TCP(Transmission Control Protocol)網絡傳輸控制協議,是一種面向連接的、可靠的、基于字節流的傳輸層通信協議,數據傳輸前建立連接的工作要經過“三次握手”,數據傳輸后斷開連接的工作要經過“四次揮手”。
工作過程
從圖上可以得出6個標志位,分別是:
1)、SYN(synchronous):建立聯機;
3)、PSH(push):傳輸;
4)、FIN(finish):結束;
5)、RST(reset):重置;
6)、URG(urgent):緊急。
三次握手:
(1)、第一次握手:Client將標志位SYN置為1,并將該數據包發送給Server,Client進入SYN_SENT狀態,等待Server確認;
(2)、第二次握手:Server收到數據包后由標志位SYN=1知道Client請求建立連接,Server將標志位SYN和ACK都置為1,并將該數據包發送給Client以確認連接請求,Server進入SYN_RCVD狀態;
(3)、第三次握手:Client收到確認后,檢查ACK是否為1,如果正確則將標志位ACK置為1,并將該數據包發送給Server,Server檢查ACK是否為1,如果正確則連接建立成功,Client和Server進入ESTABLISHED狀態,完成三次握手,隨后Client與Server之間可以開始傳輸數據了。
附加(SYN網絡攻擊):
原理:
在三次握手過程中,Server發送SYN-ACK之后,收到Client的ACK之前的TCP連接稱為半連接(half-open connect),此時Server處于SYN_RCVD狀態,當收到ACK后,Server轉入ESTABLISHED狀態。SYN攻擊就是Client在短時間內偽造大量不存在的IP地址,并向Server不斷地發送SYN包,Server回復確認包,并等待Client的確認,由于源地址是不存在的,因此,Server需要不斷重發直至超時,這些偽造的SYN包將產時間占用未連接隊列,導致正常的SYN請求因為隊列滿而被丟棄,從而引起網絡堵塞甚至系統癱瘓。
檢測:
SYN攻擊時一種典型的DDOS攻擊,檢測SYN攻擊的方式非常簡單,即當Server上有大量半連接狀態且源IP地址是隨機的,則可以斷定遭到SYN攻擊了。windows下打開cmd,輸入命令:”netstat -n -p TCP“,查看是否有大量的”SYN_RECEIVED“狀態。
四次揮手:
(1)、第一次揮手:Client發送一個FIN,用來關閉Client到Server的數據傳送,Client進入FIN_WAIT_1狀態;
(2)、第二次揮手:Server收到FIN后,發送一個ACK給Client,Server進入CLOSE_WAIT狀態;
(3)、第三次揮手:Server發送一個FIN,用來關閉Server到Client的數據傳送,Server進入LAST_ACK狀態;
(4)、第四次揮手:Client收到FIN后,Client進入TIME_WAIT狀態,接著發送一個ACK給Server,Server進入CLOSED狀態。
-
通信協議
+關注
關注
28文章
915瀏覽量
40442 -
TCP
+關注
關注
8文章
1378瀏覽量
79306 -
TCPIP
+關注
關注
1文章
56瀏覽量
22797
發布評論請先 登錄
相關推薦
評論