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