爲了準確無誤的吧數據送達目標處,TCP協議採用握手策略。用TCP協議把數據包送出去後,TCP不會對傳送後的狀況置之不理,它必定會向對方確認是否成功送達 。握手過程當中使用了TCP的標誌:SYN和ACK。spa
發送端首先送一個帶SYN標誌的數據包給對方。就收端收到後,回傳一個帶有SYN/ACK標誌的數據包以示傳達確認信息。blog
最後,發送端再回傳一個帶ACK標誌的數據包,表明「握手」結束。im
若在握手過程當中某個階段莫名中斷,TCP協議會再次以相同的順序發送相同的數據包。數據
斷開一個TCP鏈接則須要「四次揮手」:協議
第一次揮手:主動關閉放發送一個FIN,用來關閉主動方到被動方的數據傳送,也就是主動關閉方告訴關閉方:我已經不會再發數據了(固然,在fin包以前發送出去的數據,若是沒有收到對應的ack確認報文,主動關閉方依然會重發這些數據),可是,此時主動關閉方還能夠接受數據。img
第二次揮手:被動關閉方收到FIN包後,發送一個ACK給對方,確認序號爲收到序號+1(與SYN相同,一個FIN佔用一個序號)。co
第三次揮手:被動關閉方發送一個FIN,應來關閉被動關閉到主動關閉方的數據傳送,也就是告訴主動關閉方,個人數據也發送完了,不會再給你發送數據了。ps
第四次握手:主動關閉方收到FIN後,發送一個ACK給被動關閉方,確認序號爲收到序號+1,至此,完成四次揮手。
簡述: