587,TCP鏈接和HTTPs鏈接過程(面試點:TCP:第一次握手:Client將標志位SYN置為1影暴,隨機產(chǎn)生一個值seq=J错邦,并將該數(shù)據(jù)包發(fā)送給Server,Client進入SYN_SENT狀...

TCP連接

TCP基礎知識

TCP標志位

? ? SYN? 建立連接?
? ? ACK? 表示響應?
? ? FIN? 關閉連接

TCP連接傳輸數(shù)據(jù)

? ? seq 是隨機生成的一個數(shù)型宙。另一端收到后會返回ack(seq+1)數(shù)據(jù)讓發(fā)出端進行驗證
? ? ack ack就是收到的上一次另一端發(fā)送的seq+1的數(shù)據(jù)

TCP,可靠的數(shù)據(jù)傳輸協(xié)議撬呢。

一個TCP生命周期主要經(jīng)歷三個步驟
? ? 1建立連接
? ? ? ? 三次握手
? ? ? ? ? ? 1,client->server. SYN=1,seq=x
? ? ? ? ? ? 2,server->client. SYN=1,ACK=1,seq=y,ack=x+1
? ? ? ? ? ? 3,client->server. ACK=1,seq=x+1,ack=y+1
? ? 2傳輸數(shù)據(jù)
? ? ? ? 數(shù)據(jù)通信
? ? 3關閉連接
? ? ? ? 四次揮手
? ? ? ? ? ? 1,client->server. FIN=1,seq=x
? ? ? ? ? ? 2,server->client. ACK=1,ack=x+1,seq=y
? ? ? ? ? ? 3,server->client. FIN=1,ACK=1,seq=z,ack=x+1
? ? ? ? ? ? 4,client->server. ACK=1,seq=x+1,ack=z+1

第一次

第一次握手:建立連接時,客戶端發(fā)送syn包(seq=j)到服務器妆兑,并進入SYN_SENT狀態(tài)魂拦,等待服務器確認;SYN:同步序列編號(Synchronize Sequence Numbers)搁嗓。 [3]

第二次

第二次握手服務器收到syn包芯勘,必須確認客戶的SYN(ack=j+1),同時自己也發(fā)送一個SYN包(seq=k)腺逛,即SYN+ACK包荷愕,此時服務器進入SYN_RECV狀態(tài)。 [3]

第三次

第三次握手:客戶端收到服務器的SYN+ACK包棍矛,向服務器發(fā)送確認包ACK(ack=k+1)安疗,此包發(fā)送完畢,客戶端和服務器進入ESTABLISHED(TCP連接成功)狀態(tài)够委,完成三次握手荐类。 [3]

image.png

syn 表示建立鏈接
ack 表示響應
seq 是隨機生成的一個數(shù)。另一端收到后會返回ack(seq+1)數(shù)據(jù)讓發(fā)出端進行驗證
ack ack就是收到的上一次另一端發(fā)送的seq+1的數(shù)據(jù)

SYN-SENT -在發(fā)送連接請求后等待匹配的連接請求茁帽;
SYN-RECEIVED - 在收到和發(fā)送一個連接請求后等待對連接請求的確認玉罐;
ESTABLISHED- 代表一個打開的連接屈嗤,數(shù)據(jù)可以傳送給用戶;

第一次握手:Client將標志位SYN置為1吊输,隨機產(chǎn)生一個值seq=J饶号,并將該數(shù)據(jù)包發(fā)送給Server,Client進入SYN_SENT狀態(tài)璧亚,等待Server確認讨韭。

第二次握手:Server收到數(shù)據(jù)包后由標志位SYN=1知道Client請求建立連接,Server將標志位SYN和ACK都置為1癣蟋,ack=J+1,隨機產(chǎn)生一個值seq=K狰闪,并將該數(shù)據(jù)包發(fā)送給Client以確認連接請求疯搅,Server進入SYN_RCVD狀態(tài)。

第三次握手:Client收到確認后埋泵,檢查ack是否為J+1幔欧,ACK是否為1,如果正確則將標志位ACK置為1丽声,ack=K+1礁蔗,并將該數(shù)據(jù)包發(fā)送給Server,Server檢查ack是否為K+1雁社,ACK是否為1浴井,如果正確則連接建立成功,Client和Server進入ESTABLISHED狀態(tài)霉撵,完成三次握手磺浙,隨后Client與Server之間可以開始傳輸數(shù)據(jù)了。

https的原理
image.png

HTTPS在傳輸?shù)倪^程中會涉及到三個密鑰:

服務器端的公鑰和私鑰徒坡,用來進行非對稱加密

客戶端生成的隨機密鑰撕氧,用來進行對稱加密

一個HTTPS請求實際上包含了兩次HTTP傳輸,可以細分為8步喇完。
1.客戶端向服務器發(fā)起HTTPS請求伦泥,連接到服務器的443端口

2.服務器端有一個密鑰對,即公鑰和私鑰锦溪,是用來進行非對稱加密使用的不脯,服務器端保存著私鑰,不能將其泄露海洼,公鑰可以發(fā)送給任何人跨新。

3.服務器將自己的公鑰發(fā)送給客戶端寸五。

4.客戶端收到服務器端的證書之后束昵,會對證書進行檢查,驗證其合法性,如果發(fā)現(xiàn)發(fā)現(xiàn)證書有問題减牺,那么HTTPS傳輸就無法繼續(xù)。嚴格的說积蔚,這里應該是驗證服務器發(fā)送的數(shù)字證書的合法性可免,關于客戶端如何驗證數(shù)字證書的合法性,下文會進行說明龙优。如果公鑰合格羊异,那么客戶端會生成一個隨機值,這個隨機值就是用于進行對稱加密的密鑰彤断,我們將該密鑰稱之為client key野舶,即客戶端密鑰,這樣在概念上和服務器端的密鑰容易進行區(qū)分宰衙。然后用服務器的公鑰對客戶端密鑰進行非對稱加密平道,這樣客戶端密鑰就變成密文了,至此供炼,HTTPS中的第一次HTTP請求結束一屋。

5.客戶端會發(fā)起HTTPS中的第二個HTTP請求,將加密之后的客戶端密鑰發(fā)送給服務器袋哼。

6.服務器接收到客戶端發(fā)來的密文之后冀墨,會用自己的私鑰對其進行非對稱解密,解密之后的明文就是客戶端密鑰涛贯,然后用客戶端密鑰對數(shù)據(jù)進行對稱加密诽嘉,這樣數(shù)據(jù)就變成了密文。

7.然后服務器將加密后的密文發(fā)送給客戶端疫蔓。

8.客戶端收到服務器發(fā)送來的密文含懊,用客戶端密鑰對其進行對稱解密,得到服務器發(fā)送的數(shù)據(jù)衅胀。這樣HTTPS中的第二個HTTP請求結束岔乔,整個HTTPS傳輸完成。

?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末滚躯,一起剝皮案震驚了整個濱河市雏门,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌掸掏,老刑警劉巖茁影,帶你破解...
    沈念sama閱讀 219,110評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異丧凤,居然都是意外死亡募闲,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,443評論 3 395
  • 文/潘曉璐 我一進店門愿待,熙熙樓的掌柜王于貴愁眉苦臉地迎上來浩螺,“玉大人靴患,你說我怎么就攤上這事∫觯” “怎么了鸳君?”我有些...
    開封第一講書人閱讀 165,474評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長患蹂。 經(jīng)常有香客問我或颊,道長,這世上最難降的妖魔是什么传于? 我笑而不...
    開封第一講書人閱讀 58,881評論 1 295
  • 正文 為了忘掉前任囱挑,我火速辦了婚禮,結果婚禮上格了,老公的妹妹穿的比我還像新娘看铆。我一直安慰自己,他們只是感情好盛末,可當我...
    茶點故事閱讀 67,902評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著否淤,像睡著了一般悄但。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上石抡,一...
    開封第一講書人閱讀 51,698評論 1 305
  • 那天檐嚣,我揣著相機與錄音,去河邊找鬼啰扛。 笑死嚎京,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的隐解。 我是一名探鬼主播鞍帝,決...
    沈念sama閱讀 40,418評論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼煞茫!你這毒婦竟也來了帕涌?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,332評論 0 276
  • 序言:老撾萬榮一對情侶失蹤续徽,失蹤者是張志新(化名)和其女友劉穎蚓曼,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體钦扭,經(jīng)...
    沈念sama閱讀 45,796評論 1 316
  • 正文 獨居荒郊野嶺守林人離奇死亡纫版,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,968評論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了客情。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片其弊。...
    茶點故事閱讀 40,110評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡癞己,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出瑞凑,到底是詐尸還是另有隱情末秃,我是刑警寧澤,帶...
    沈念sama閱讀 35,792評論 5 346
  • 正文 年R本政府宣布籽御,位于F島的核電站练慕,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏技掏。R本人自食惡果不足惜铃将,卻給世界環(huán)境...
    茶點故事閱讀 41,455評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望哑梳。 院中可真熱鬧劲阎,春花似錦、人聲如沸鸠真。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,003評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽吠卷。三九已至锡垄,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間祭隔,已是汗流浹背货岭。 一陣腳步聲響...
    開封第一講書人閱讀 33,130評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留疾渴,地道東北人千贯。 一個月前我還...
    沈念sama閱讀 48,348評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像搞坝,于是被迫代替她去往敵國和親搔谴。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,047評論 2 355

推薦閱讀更多精彩內(nèi)容