##tcp udp協議
由於傳輸的時候可能出現掉包,順序不一致,速度慢等情況,在不同的需求下使用不同的協議進行傳輸。
uag:緊急指標標誌
ack:確認序號標誌
psh:push標誌
rst:重置連線標誌
syn:同步序號,用於建立連線過程
fin:finish標誌,用於釋放連線
一次完整的tcp通訊包括:建立連線、資料傳輸、關閉連線
第一次握手客戶端通過向伺服器端傳送乙個syn(reserved 中的 syn)=1,seq(sequence number)=x來建立乙個主動開啟。
第二次握手
伺服器端應當為乙個合法的syn回送乙個syn/ack=1,seq=y,ack=x+1。
第三次握手
最後,客戶端再傳送乙個ack=1,seq=x+1,ack=y+1。這樣就完成了三路握手,並進入了連線建立狀態。
三次握手的意義:tcp通過三次握手建立可靠的(確保收到)的全雙工通訊,並且同步連線雙方的序列號和確認號並交換 tcp 視窗大小資訊。
安全隱患:syn攻擊 伺服器接收到連線請求(syn=x),將此資訊加入未連線佇列,並傳送請求包給客戶(syn=y,ack=x+1),
此時進入syn_recv狀態。當伺服器未收到客戶端的確認包時,重發請求包,一直到超時
(linux預設重發6次總共63秒), 才將此條目從未連線佇列刪除。引起網路堵塞甚至系統癱瘓。針對syn flood防範
syn佇列滿後,通過tcp_syncookies引數回發syn cookie 若為正常連線client會回發syn
cookie,建立連線
第一次揮手:出現大量close_wait狀態,伺服器忙於讀寫,沒有及時關閉連線client向server傳送乙個fin,用來關閉client到server的資料傳送,client進入fin_wait_1狀態
第二次揮手
server收到fin後,傳送乙個ack給client,確認序號為收到的序號+1,server進入close_wait 狀態
第三次揮手
server傳送乙個fin,用來關閉server到client的資料傳送,server進入last_ack狀態
第四次揮手
client收到fin後,client進入time_wait狀態,接著傳送乙個ack給server,確認序號為收到序號+1
server進入closed狀態,完成四次揮手,
client端需要再等待2msl保證對方收到傳送後closed
**,釋放資源**
配置,處理請求的執行緒配置
保證tcp的可靠性
保證tcp的流控特性
TCP三次握手協議
摘自 syn攻擊原理以及防範技術 tcp握手協議 在tcp ip協議中,tcp協議提供可靠的連線服務,採用三次握手建立乙個連線。第一次握手 建立連線時,客戶端傳送syn包 syn j 到伺服器,並進入syn send狀態,等待伺服器確認 第二次握手 伺服器收到syn包,必須確認客戶的syn ack ...
TCP三次握手協議
在tcp ip協議中,tcp協議提供可靠的連線服務,採用三次握手建立乙個連線。第一次握手 建立連線時,客戶端傳送syn包 syn j 到伺服器,並進入syn send狀態,等待伺服器確認 第二次握手 伺服器收到syn包,必須確認客戶的syn ack j 1 同時自己也傳送乙個syn包 syn k 即...
TCP協議三次握手
第一次握手 客戶端傳送syn包 syn j 到伺服器,並進入syn send狀態,等待伺服器確認 第二次握手 伺服器收到syn包,必須確認客戶的syn ack j 1 同時自己也傳送乙個syn包 syn k 即syn ack包,此時伺服器進入 syn recv 狀態 第三次握手 客戶端 收到伺服器的...