(一)連接
Tcp的三次握手的目的:是客戶端和服務端相互確認是否有接受和發(fā)送的能力梆靖,
第一次握手,客戶點給服務端發(fā)個x暇番;(客戶端不知道服務端的任何能力思喊,服務端知道客戶端有發(fā)送的能力),
第二次握手舆乔,服務端給客戶端發(fā)個x+1和y ;(此時客戶端知道服務端有發(fā)送和接受的能力剂公,服務端不知道客戶端有沒有接受的能力)
第三次握手,客服端給服務端發(fā)送x+1和y+1,(此時服務端知道了客戶端有接受的能力颜武,建立連接完成)
為什么不是兩次握手和4次握手,因為兩次握手服務端無法確認客戶端有接受的能力鳞上,4次握手,雙方都確認了有接受和發(fā)送的能力唾糯,再次發(fā)送就多余了移怯。
(二)容錯
如何保證數據安全的
當客戶端發(fā)送1这难,2,3脐帝,4糖权,5的時候,服務端連續(xù)收到1疚顷,2禁偎,3沒有收到4,所以服務端會給客戶端發(fā)送4笆檀,客戶端收到4之后酗洒,會重新發(fā)送4枷遂,從而保證了數據安全。
(三)斷開
TCP 關閉4次握手
四次握手的目的是相互確認數據發(fā)完了酒唉,
第一次握手痪伦,客戶端告訴服務端“發(fā)完了”
第二次握手雹锣,服務端告訴客戶端“等著” 蕊爵,客戶端進入等待流程涣达,此時有兩種情況
? ? 1 服務端收到新的數據度苔,服務端會問客戶端要下一個數據
? ? 2 服務端沒有收到新的數據寇窑,等待3Ms(一個報文傳輸是這么長)
第三次握手,服務端告訴客戶端關閉甩骏。(服務端關閉)客戶端等3Ms
第四次握手:客戶端再次發(fā)送給服務端饮笛,沒有相應论熙,確認斷開∨Ч睿客戶端斷開。