TCP四次揮手的過(guò)程:
理解:
TCP是雙向通訊協(xié)議讯私,客戶(hù)端發(fā)送FIN到服務(wù)端,告訴服務(wù)端斤寇,客戶(hù)端不會(huì)再發(fā)送數(shù)據(jù)了,但是服務(wù)端還有消息未發(fā)送完畢牙寞,為防止客戶(hù)端消息等待莫秆,服務(wù)端會(huì)首先發(fā)送ACK確認(rèn)字符到客戶(hù)端,并關(guān)閉消息接收服務(wù)镊屎。但是服務(wù)端會(huì)將剩余消息發(fā)送完畢,然后發(fā)送FIN到客戶(hù)端连锯,告訴客戶(hù)端不會(huì)再發(fā)送消息用狱,然后客戶(hù)端會(huì)回復(fù)ACK表示收到,并關(guān)閉服務(wù)齿拂,當(dāng)服務(wù)端收到ACK后,驗(yàn)證正常則會(huì)關(guān)閉所有的服務(wù)吗购,TCP連接中斷完畢砸狞。
為什么建立連接是三次握手,而關(guān)閉連接卻是四次揮手呢刀森?
這是因?yàn)榉?wù)端在LISTEN狀態(tài)下,收到客戶(hù)端發(fā)送的斷開(kāi)連接的FIN報(bào)文后埠偿,可能會(huì)有數(shù)據(jù)未發(fā)送完成榜晦,需要繼續(xù)發(fā)送,因此不能將確認(rèn)消息和請(qǐng)求關(guān)閉消息同時(shí)發(fā)送抖剿,而是會(huì)先關(guān)閉接收服務(wù)回復(fù)確認(rèn)消息朽寞,然后繼續(xù)發(fā)送未完消息到客戶(hù)端脑融,直到發(fā)送結(jié)束缩宜,再發(fā)送請(qǐng)求關(guān)閉消息.