為了準確無誤地把數(shù)據(jù)送達目標處,TCP
協(xié)議采用了三次握手策略湖雹。用TCP
協(xié)議把數(shù)據(jù)包送出去后嗜桌,TCP
不會對傳送 后的情況置之不理,它一定會向?qū)Ψ酱_認是否成功送達好港。握手過程中使用了TCP
的標志:SYN
和ACK
愉镰。
- 發(fā)送端首先發(fā)送一個帶
SYN
標志的數(shù)據(jù)包給對方。 - 接收端收到后钧汹,回傳一個帶有
SYN
/ACK
標志的數(shù)據(jù)包以示傳達確認信息丈探。 - 最后,發(fā)送端再回傳一個帶
ACK
標志的數(shù)據(jù)包崭孤,代表“握手”結(jié)束类嗤。
若在握手過程中某個階段莫名中斷,TCP
協(xié)議會再次以相同的順序發(fā)送相同的數(shù)據(jù)包辨宠。
斷開一個TCP
鏈接需要“四次揮手”
- 第一次揮手:主動關閉方發(fā)送一個
FIN
,用來關閉主動方到被動關閉方的數(shù)據(jù)傳送货裹,也就是主動關閉方告訴被動關閉方:我已經(jīng)不 會再給你發(fā)數(shù)據(jù)了(當然嗤形,在FIN
包之前發(fā)送出去的數(shù)據(jù),如果沒有收到對應的ACK
確認報文弧圆,主動關閉方依然會重發(fā)這些數(shù)據(jù))赋兵,但是,此時主動關閉方還可 以接受數(shù)據(jù)搔预。 - 第二次揮手:被動關閉方收到
FIN
包后霹期,發(fā)送一個ACK
給對方,確認序號為收到序號+1(與SYN相同拯田,一個FIN
占用一個序號)历造。 - 第三次揮手:被動關閉方發(fā)送一個
FIN
,用來關閉被動關閉方到主動關閉方的數(shù)據(jù)傳送,也就是告訴主動關閉方吭产,我的數(shù)據(jù)也發(fā)送完了侣监,不會再給你發(fā)數(shù)據(jù)了。 - 第四次揮手:主動關閉方收到
FIN
后臣淤,發(fā)送一個ACK
給被動關閉方橄霉,確認序號為收到序號+1,至此邑蒋,完成四次揮手姓蜂。