TCP三次握手分析

微信圖片_20190425152657.png

為什么要進(jìn)行三次握手?
第一次握手是客戶端向服務(wù)端發(fā)消息,詢問(wèn)你有沒(méi)有接收消息的能力?確保消息能準(zhǔn)確發(fā)送出去,告訴服務(wù)端我有寫(xiě)的能力;第二次握手是指服務(wù)端向客戶端回消息,標(biāo)明我收到了消息并且能給你反饋,也就是服務(wù)端有讀和寫(xiě)的能力;第三次握手是客戶端給服務(wù)端發(fā)消息確認(rèn)建立連接,是告訴服務(wù)端我不僅有寫(xiě)的能力,而且我也有讀的能力,咱們可以放心通訊了。

前三步TCP連接即三次握手的過(guò)程:
第一次握手?jǐn)?shù)據(jù)包:客戶端發(fā)送一個(gè)TCP,標(biāo)志位為SYN,序列號(hào)為0,代表客戶端請(qǐng)求建立連接。
第二次握手?jǐn)?shù)據(jù)包:服務(wù)器發(fā)回確信信息包,標(biāo)志位為SYN,ACK,將確認(rèn)序號(hào)設(shè)置為請(qǐng)求信號(hào)加1,即0+1=1。
第三次握手?jǐn)?shù)據(jù)包:客戶端再次發(fā)送確認(rèn)包(ACK),標(biāo)志位為SYN、ACK的序號(hào)都為1。
至此三次握手建立成功。
從第四步是SSL/TLS建立的過(guò)程:
1、ClientHello:這條消息將客戶端的功能和首選項(xiàng)傳送給服務(wù)器。包含客戶端支持的SSL的指定版本、加密組件(Cipher Suite)列表(所使用的加密算法及密鑰長(zhǎng)度等)。
2、ServerHello:消息將服務(wù)器選擇的連接參數(shù)傳送回客戶端。將ClientHello發(fā)送過(guò)來(lái)的信息通過(guò)篩選,選擇同一的加密組件等信息。目的是統(tǒng)一雙方的加密套件。
3、Certificate:服務(wù)將證書(shū)回傳客戶端。
4、ServerKeyExchange:消息的目的是攜帶密鑰交換的額外數(shù)據(jù)。消息內(nèi)容對(duì)于不同的協(xié)商算法套件都會(huì)存在差異。在某些場(chǎng)景中,服務(wù)器不需要發(fā)送任何內(nèi)容,在這些場(chǎng)景中就不需要發(fā)送ServerKeyExchange消息。
5、ServerHelloDone:消息表明服務(wù)器已經(jīng)將所有預(yù)計(jì)的握手消息發(fā)送完畢。在此之后,服務(wù)器會(huì)等待客戶端發(fā)送消息。
6、ClientKeyExchange:消息攜帶客戶端為密鑰交換提供的所有信息。這個(gè)消息受協(xié)商的密碼套件的影響,內(nèi)容隨著不同的協(xié)商密碼套件而不同。
7、ChangeCipherSpec:消息表明發(fā)送端已取得用以生成連接參數(shù)的足夠信息,已生成加密密鑰,并且將切換到加密模式。客戶端和服務(wù)器在條件成熟時(shí)都會(huì)發(fā)送這個(gè)消息。注意:ChangeCipherSpec不屬于握手消息,它是另一種協(xié)議,只有一條消息,作為它的子協(xié)議進(jìn)行實(shí)現(xiàn)。
8、Encrypted handshake message:這個(gè)報(bào)文的目的就是告訴對(duì)端自己在整個(gè)握手過(guò)程中收到了什么數(shù)據(jù),發(fā)送了什么數(shù)據(jù)。來(lái)保證中間沒(méi)人篡改報(bào)文。其次,這個(gè)報(bào)文作用就是確認(rèn)秘鑰的正確性。因?yàn)镋ncrypted handshake message是使用對(duì)稱(chēng)秘鑰進(jìn)行加密的第一個(gè)報(bào)文,如果這個(gè)報(bào)文加解密校驗(yàn)成功,那么就說(shuō)明對(duì)稱(chēng)秘鑰是正確的。

建立成功后就是一些https的請(qǐng)求,最后FIN表示斷開(kāi)連接。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容