握手過程主要使用tcp協議的標誌flag——syn和ack
傳送端:
將乙個標有syn(synchronize)的資料報傳送至接收端。
接收端:
接收到帶有syn的資料報後,返回乙個標有syn/ack(acknowledgement)的資料報
傳送端:收到後傳送標有ack的資料報,代表握手結束。
如果握手過程在某個階段莫名中斷,tcp協議會再次以相同的順序傳送相同的資料報。
tcp三次握手用於建立tcp連線(確保傳輸的可靠性)
在請求響應結束後,還有斷開tcp連線的過程:
伺服器:傳送fin至客戶端
客戶端:傳送ack表示確認
客戶端:傳送fin表示可以斷開了
伺服器:返回ack表示已經斷開。
三次握手的缺陷:syn攻擊(ddos攻擊)
通過網路服務所在埠傳送大量的偽造源位址的攻擊報文,可能造成目標伺服器中的半連線佇列被佔滿,從而阻止其他合法使用者進行訪問。攻擊者偽造位址傳送syn請求,而真是的ip會認為沒有傳送請求,不作回應,伺服器沒有收到回應,不知道(syn+ack)是否發生成功,預設情況下會重試5次,但即使這樣,也會大量消耗伺服器的記憶體和頻寬。而且如果偽造者在公網的話,很難追蹤ip。
TCP三次握手過程
幾個概念 ack 僅當ack 1時確認欄位才有效,當ack 0時確認字段無效,並且tcp規定,在連線建立後所有的傳送報文段都必須要把ack置為1 syn 同步序列號,用來發起乙個連線。當syn 1而ack 0時表明這是乙個請求報文段 若對方同意連線,則響應報文中syn 1,ack 1 tcp三次握手...
TCP三次握手過程
客戶端傳送乙個syn 1,ack 0標誌的資料報給服務端,請求進行連線,這裡完成了第一次握手 服務端收到請求並且允許連線的話,就會傳送乙個syn 1,ack 1標誌的資料報給客戶端,告訴它,可以通訊了,並且讓客戶端傳送乙個確定資料報,這是第二次完成握手 最後,客戶端傳送乙個syn 0,ack 1的資...
TCP三次握手過程
本次只是分析了三次握手,其他更具體的過程可以看看這篇文章,絕對大有收穫。開局一張圖 一目了然就沒必要看接下來的廢話了!第一次握手,建立連線。客戶端傳送連線請求報文段,將syn置1序號seq x。客戶端進入syn send狀態,等待伺服器進行確認。第二次握手 伺服器接收到syn報文段,對這個報文段進行...