TCP連接建立的三次握手

hello牺弹,大家好腕侄,最近老大“生動形象”地給俺講了這個,那么就來look look订雾,它到底是個什么玩意兒肢预。

背景知識

大家最熟悉的internet是一張巨大的計算機網(wǎng)絡(luò)。家庭用戶端系統(tǒng)構(gòu)成小型家庭網(wǎng)絡(luò)洼哎,借助電話網(wǎng)絡(luò)烫映,有線電視網(wǎng)絡(luò)等接入?yún)^(qū)域或者本地ISP(服務(wù)提供商,Internet Service Provider)噩峦。企業(yè)網(wǎng)絡(luò)锭沟,校園網(wǎng)等建成一定的局域網(wǎng),再接入各區(qū)域或者本地ISP识补。

區(qū)域或本地ISP再與更大規(guī)模的國家級ISP互連族淮,國家級ISP再互連其他國家級ISP或全球性ISP,從而實現(xiàn)了全球所有ISP網(wǎng)絡(luò)的互連凭涂,進而實現(xiàn)全球性端系統(tǒng)的互連祝辣。

Internet中互相連接的端系統(tǒng),分組交換設(shè)備(它可以實現(xiàn)數(shù)據(jù)分組的接收和轉(zhuǎn)發(fā)切油,是構(gòu)成Internet的重要基礎(chǔ)蝙斜,最典型的就是路由器和交換機)或者其他的網(wǎng)絡(luò)設(shè)備在進行信息發(fā)送,接收或轉(zhuǎn)發(fā)的過程中澎胡,都會遵循一些規(guī)則或者約定孕荠,即網(wǎng)絡(luò)協(xié)議。

通信鏈路互連主機好網(wǎng)絡(luò)設(shè)備只是構(gòu)建計算機網(wǎng)絡(luò)的硬件基礎(chǔ)攻谁,僅僅有硬件還不足以完成通信實體間進行數(shù)據(jù)交換岛琼。就好像道路交通系統(tǒng),建好了路巢株,建好了路牌,綠地熙涤,這只是具備了交通系統(tǒng)的硬件條件阁苞,還必須有紅綠燈和交通標志及交通規(guī)則,路上行駛的人和車輛都需要遵循這些規(guī)則祠挫。計算機網(wǎng)絡(luò)中的實體也需要遵循一定的規(guī)則和約定那槽,即網(wǎng)絡(luò)協(xié)議。

我們經(jīng)常會聽到很多協(xié)議的技術(shù)性名詞等舔,比如http骚灸,tcp,ip慌植,udp甚牲,arp等等义郑,這些都是協(xié)議。

協(xié)議的三大要素:

(1)語法:語法定義我們之間交流交換信息的格式和結(jié)構(gòu)丈钙。

(2)語義:語義是定義我們之間交換的信息中哪些需要發(fā)送(或者包含哪些控制信息)非驮,還有這些信息的含義;以及針對不同含義的控制信息雏赦,該如何響應(yīng)劫笙。有的協(xié)議還需要進行差錯檢測,語義還可以定義采用什么差錯編碼星岗,及采取什么差錯處理機制等等填大。

(3)時序:定義了實體之間,交換信息的順序及如何匹配或者適應(yīng)對方的速度俏橘。

我抽象并實例了下:

我和另外一個人屬于不同的個體允华,我們都是獨一無二的。有一天我們需要交流:語法則定義我們該如何交流敷矫?同屬中國當(dāng)然使用chinese例获,不同國家不同人種呢,怎么交流曹仗。語義則定義了我們可以交流哪些內(nèi)容榨汤?這些內(nèi)容是什么意思?還是話里有話怎茫?我講這句話的含義是什么收壕?心情是好是壞?對方應(yīng)該怎么回復(fù)我轨蛤?比如我問你吃飯了嗎蜜宪,你可以回吃過了或者還沒吃,但是卻不能回答祥山,我在看電視圃验。我們交流的時候出現(xiàn)了問題如何解決?是什么原因?qū)е碌姆炫唬空Z言不通還是文化差異澳窑?該怎么解決?時序則定義了供常,我們交流的時候摊聋,誰先講?等等

傳輸控制協(xié)議之TCP

TCP(傳輸控制協(xié)議)是Internet的一個重要的傳輸層協(xié)議栈暇。應(yīng)用程序在使用TCP之前麻裁,必須先建立TCP連接;數(shù)據(jù)傳輸之后,必須釋放已經(jīng)建立的TCP連接煎源。TCP提供可靠的數(shù)據(jù)交付服務(wù)色迂,即通過TCP傳輸?shù)臄?shù)據(jù),是無差錯的薪夕,無丟失的脚草,無重復(fù)的且按序到達的。

TCP連接建立的“三次握手”

TCP連接建立必須經(jīng)過“三次握手”的過程原献。

當(dāng)客戶端需要去建立連接時馏慨,客戶端就會向服務(wù)器發(fā)送連接請求段。稱之為第一次握手姑隅。

一旦包含著客戶端的請求段包到達服務(wù)器端写隶,如同意連接,將發(fā)回確認報文段讲仰,稱之為第二次握手慕趴。

而在客戶端收到來自服務(wù)器的同意連接的報文段之后,會再次向服務(wù)器端發(fā)送確認報文段(第三次握手)鄙陡,這段報文是對服務(wù)器的同意連接報文段進行確認冕房。一旦完成“三次握手”,客戶端和服務(wù)器端就可以相互發(fā)送包含數(shù)據(jù)的報文段了趁矾。

到這里耙册,會有一個疑問,為什么TCP不采用二次握手建立連接毫捣,而一定要通過三次握手建立連接呢详拙?之所以是三次,是為了確保連接雙方彼此都完全清楚對方目前所處的狀態(tài)(比如初始的序列號或者接收窗口的大新)饶辙,從而保證穩(wěn)定,可靠的連接斑粱。三次握手建立連接還可以預(yù)防 過期的弃揽,失效的連接信息或者請求到達對方那之后建立了無效的連接。

因為網(wǎng)絡(luò)傳輸中存在數(shù)據(jù)的丟失则北,假如采用二次握手建立連接:在第一次連接請求到達之后蹋宦,第二次握手控制端可能丟失,這樣主動發(fā)起連接的一方就沒有收到第二次握手控制段咒锻,則無法建立連接。但是接收連接的一方可能認為連接已經(jīng)建立守屉,就會出現(xiàn)無效連接惑艇。

抽象出來理解就是:

客戶端需要和服務(wù)器連接。第一次握手則是發(fā)出連接請求,但此時客戶端并不知道服務(wù)器的初始狀態(tài)滨巴。第二次握手則是在服務(wù)器收到請求之后思灌,發(fā)出了同意信息返回給客戶端。這時如果第二次握手響應(yīng)信息控制段在傳輸?shù)倪^程中丟失(不要問為什么第一次握手不會出現(xiàn)丟失信息恭取,因為假如丟失了泰偿,后面也不會有任何故事了。蜈垮。耗跛。)假如采用二次握手連接的方式,這時第二次握手段丟失了攒发,客戶端沒有收到信息调塌,狀態(tài)隨時可能發(fā)生改變,連接時不穩(wěn)定的惠猿,服務(wù)器以為客戶端是正常的羔砾,就開始發(fā)送數(shù)據(jù),是極其不安全和不穩(wěn)定的偶妖,會出現(xiàn)差錯姜凄。而當(dāng)客戶端收到第二次握手的信息之后,知道經(jīng)過了同意可以連接趾访,并且服務(wù)器的狀態(tài)是正常的态秧,可以連接,那么此時我的狀態(tài)也是穩(wěn)定的腹缩,我需要再服務(wù)器那邊知道屿聋,我此時的狀態(tài)是穩(wěn)定的,完全可以進行數(shù)據(jù)傳輸和連接藏鹊,那么再將客戶端確認連接的通知發(fā)送給服務(wù)器端润讥,服務(wù)器端收到第三次握手的信息之后,方可進行完全的盘寡,安全的信息連接和傳輸楚殿。

今天的學(xué)習(xí)到這里結(jié)束了,只是很淺顯的進行了介紹竿痰,計算機世界的知識無窮無盡脆粥,窮其一生,也無法窺探其真實影涉。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末变隔,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子蟹倾,更是在濱河造成了極大的恐慌匣缘,老刑警劉巖猖闪,帶你破解...
    沈念sama閱讀 206,723評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異肌厨,居然都是意外死亡培慌,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,485評論 2 382
  • 文/潘曉璐 我一進店門柑爸,熙熙樓的掌柜王于貴愁眉苦臉地迎上來吵护,“玉大人,你說我怎么就攤上這事表鳍∠诙” “怎么了?”我有些...
    開封第一講書人閱讀 152,998評論 0 344
  • 文/不壞的土叔 我叫張陵进胯,是天一觀的道長用爪。 經(jīng)常有香客問我,道長胁镐,這世上最難降的妖魔是什么偎血? 我笑而不...
    開封第一講書人閱讀 55,323評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮盯漂,結(jié)果婚禮上颇玷,老公的妹妹穿的比我還像新娘。我一直安慰自己就缆,他們只是感情好帖渠,可當(dāng)我...
    茶點故事閱讀 64,355評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著竭宰,像睡著了一般空郊。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上切揭,一...
    開封第一講書人閱讀 49,079評論 1 285
  • 那天狞甚,我揣著相機與錄音,去河邊找鬼廓旬。 笑死哼审,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的孕豹。 我是一名探鬼主播涩盾,決...
    沈念sama閱讀 38,389評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼励背!你這毒婦竟也來了春霍?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,019評論 0 259
  • 序言:老撾萬榮一對情侶失蹤叶眉,失蹤者是張志新(化名)和其女友劉穎址儒,沒想到半個月后籍胯,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,519評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡离福,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,971評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了炼蛤。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片妖爷。...
    茶點故事閱讀 38,100評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖理朋,靈堂內(nèi)的尸體忽然破棺而出絮识,到底是詐尸還是另有隱情,我是刑警寧澤嗽上,帶...
    沈念sama閱讀 33,738評論 4 324
  • 正文 年R本政府宣布次舌,位于F島的核電站,受9級特大地震影響兽愤,放射性物質(zhì)發(fā)生泄漏彼念。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,293評論 3 307
  • 文/蒙蒙 一浅萧、第九天 我趴在偏房一處隱蔽的房頂上張望逐沙。 院中可真熱鬧,春花似錦洼畅、人聲如沸吩案。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,289評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽徘郭。三九已至,卻和暖如春丧肴,著一層夾襖步出監(jiān)牢的瞬間残揉,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,517評論 1 262
  • 我被黑心中介騙來泰國打工闪湾, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留冲甘,地道東北人。 一個月前我還...
    沈念sama閱讀 45,547評論 2 354
  • 正文 我出身青樓途样,卻偏偏與公主長得像江醇,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子何暇,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,834評論 2 345

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