Tcp協議的特點:1)面向連接 2)可靠傳輸:數據保證能發生過去,而且數據準確 3)流式服務
Tcp連接過程(三次握手:客戶端發起)
注:標識符 SYN:建立聯機 ACK:確認機制 FIN:結束 RST(reset重置) URG(urgent緊急)
問題:1)爲什麼TCP協議能保證可靠傳輸?
因爲TCP協議有超時重傳機制:如果客戶端沒有回覆ACK服務器會連續不斷的一直髮送,保證了數據的可靠性。
2)爲什麼TCP鏈接的過程是三次揮手不是兩次或者四次?
如果是兩次:兩次之後完成的鏈接不安全。SYN可能沒有發生過去就斷網了。
如果是四次:ACK只確認SYN,確認有效數據(客戶端和服務器同時發生鏈接請求,有可能發生四次揮手)
3)爲什麼TCP斷開連接的過程是四次不是三次?
斷開的過程如果是三次:因爲連接過程中,當客戶端給服務器發送SYN後,服務器可以將ACK+SYN一起發生,ACK是用來應答的,SYN是用來同步的。
斷開連接的過程中,客戶端給服務器發送FIN之後,服務器很可能不會立即關閉,先回復ACK給客戶端,告訴客戶端FIN我收到了,等我所有的報文處理完了,
我就發送FIN給你。
4)TIME_WAIT存在的意義?
a 可靠的終止TCP鏈接,要確保最後一個ACK發送出去。
b 保證遲來的數據能被識別並且丟棄掉。