三次握手過程:
客戶端——發(fā)送帶有SYN標(biāo)志的數(shù)據(jù)包——服務(wù)端?一次握手?Client進(jìn)入syn_sent狀態(tài)
服務(wù)端——發(fā)送帶有SYN/ACK標(biāo)志的數(shù)據(jù)包——客戶端?二次握手?服務(wù)端進(jìn)入syn_rcvd
客戶端——發(fā)送帶有ACK標(biāo)志的數(shù)據(jù)包——服務(wù)端?三次握手?連接就進(jìn)入Established狀態(tài)
?為什么三次:
主要是為了建立可靠的通信信道襟衰,保證客戶端與服務(wù)端同時(shí)具備發(fā)送玉凯、接收數(shù)據(jù)的能力
?為什么兩次不行般此?
1钦购、防止已失效的請求報(bào)文又傳送到了服務(wù)端,建立了多余的鏈接踢代,浪費(fèi)資源
2、 兩次握手只能保證單向連接是暢通的耗啦。(為了實(shí)現(xiàn)可靠數(shù)據(jù)傳輸, TCP 協(xié)議的通信雙方机杜, 都必須維 護(hù)一個(gè)序列號帜讲, 以標(biāo)識發(fā)送出去的數(shù)據(jù)包中, 哪些是已經(jīng)被對方收到的椒拗。 三次握手的過程即是通信雙方 相互告知序列號起始值似将, 并確認(rèn)對方已經(jīng)收到了序列號起始值的必經(jīng)步驟;如果只是兩次握手蚀苛, 至多只有連接發(fā)起方的起始序列號能被確認(rèn)在验, 另一方選擇的序列號則得不到確認(rèn))