網(wǎng)絡(luò)--三次握手

一. 體系結(jié)構(gòu)

由高到低

  1. OSI七層體系結(jié)構(gòu)
  • 應(yīng)用層
  • 表示層
  • 會話層
  • 運輸層
  • 網(wǎng)絡(luò)層
  • 數(shù)據(jù)鏈路層
  • 物理層
  1. TCP/IP四層體系結(jié)構(gòu)
  • 應(yīng)用層(各種應(yīng)用協(xié)議如TELNET, FTP, SMTP等)
  • 運輸層(TCP或者UDP
  • 網(wǎng)際層(IP
  • 網(wǎng)絡(luò)接口層(數(shù)據(jù)鏈路層罩缴,物理層)
  1. 五層協(xié)議的體系結(jié)構(gòu)
  • 應(yīng)用層
  • 運輸層
  • 網(wǎng)絡(luò)層
  • 數(shù)據(jù)鏈路層
  • 物理層

二. 各層介紹

1. 應(yīng)用層:

應(yīng)用層是體系結(jié)構(gòu)中的最高層晤碘,直接為用戶的應(yīng)用進(jìn)程(正在運行的程序)提供服務(wù) 。在因特網(wǎng)中的應(yīng)用層協(xié)議很多瓜饥,如支持萬維網(wǎng)應(yīng)用的HTTP協(xié)議,支持文件傳輸?shù)?strong>FTP協(xié)議浴骂,支持電子郵件的SMTP協(xié)議等等乓土。

2. 運輸層:

運輸層的任務(wù)是負(fù)責(zé)向兩個主機(jī)中進(jìn)程之間的通信提供服務(wù)。由于一個主機(jī)可同時運行多個進(jìn)程溯警,因此運輸層有復(fù)用分用的功能趣苏。復(fù)用就是多個應(yīng)用層進(jìn)程可以同時使用下面運輸層的服務(wù),分用則是運輸層把收到的信息分別交付給上面應(yīng)用層中的相應(yīng)的進(jìn)程梯轻。


運輸層主要使用兩種協(xié)議:

  • 傳輸控制協(xié)議 TCP(Transmission Control Protocol)----面向連接的食磕,數(shù)據(jù)傳輸?shù)膯挝皇?strong>報文段(segment),能夠提供可靠的交付
  • 用戶數(shù)據(jù)報協(xié)議 UDP(User Datagram Protocol)----無連接的喳挑,數(shù)據(jù)傳輸?shù)膯挝皇?strong>用戶數(shù)據(jù)報彬伦,不保證提供可靠的交付,只能“盡最大努力交付(best-effort delivery)“伊诵。
3. 網(wǎng)絡(luò)層:

網(wǎng)絡(luò)層負(fù)責(zé)為分組交換網(wǎng)上的不同主機(jī)提供通信服務(wù)单绑。在發(fā)送數(shù)據(jù)的時候,網(wǎng)絡(luò)層把運輸層產(chǎn)生的報文段或者用戶數(shù)據(jù)報封裝成分組進(jìn)行傳送曹宴。在TCP/IP體系中搂橙,由于網(wǎng)絡(luò)層使用IP協(xié)議,因此分組也叫IP數(shù)據(jù)報浙炼,或簡稱數(shù)據(jù)報份氧。


無論在哪一層傳送的數(shù)據(jù)單元,習(xí)慣上都可以籠統(tǒng)地用“分組”來表示
因特網(wǎng)是一個很大的互聯(lián)網(wǎng)弯屈,它由大量的異構(gòu)網(wǎng)絡(luò)通過路由器(router)相連接蜗帜。因特網(wǎng)主要的網(wǎng)絡(luò)層協(xié)議是無連接的網(wǎng)際協(xié)議IP和許多種路由選擇協(xié)議,所以因特網(wǎng)的網(wǎng)絡(luò)層也叫網(wǎng)際層或者IP層资厉。

4. 數(shù)據(jù)鏈路層:

簡稱鏈路層厅缺。兩個主機(jī)之間的數(shù)據(jù)傳輸總是在一段一段的鏈路上傳送的,也就是說宴偿,在兩個相鄰結(jié)點之間(主機(jī)和路由器之間或者兩個路由器之間)傳送數(shù)據(jù)是直接傳送的(點對點)湘捎。這時就需要使用專門的鏈路層的協(xié)議。 在兩個相鄰結(jié)點之間傳送數(shù)據(jù)時窄刘,數(shù)據(jù)鏈路層把網(wǎng)絡(luò)層交下來的IP數(shù)據(jù)報組裝成(frame)窥妇,在兩個相鄰結(jié)點間的鏈路上“透明”的傳送中的數(shù)據(jù)。每一幀包括數(shù)據(jù)和必要的控制信息(如同步信息娩践、地址信息活翩、差錯控制等)烹骨。典型的幀長是幾百字節(jié)到一千多字節(jié)。


透明:某一個實際存在的事物看起來卻好像不存在一樣材泄。
在接收數(shù)據(jù)時沮焕,控制信息使接收端能夠知道一個幀從哪個比特開始和到哪個比特結(jié)束,還使接收端能夠檢測到所收到的幀中有無差錯拉宗,如發(fā)現(xiàn)錯誤峦树,數(shù)據(jù)鏈路層就簡單地丟棄這個出了差錯的幀,以免繼續(xù)浪費網(wǎng)絡(luò)資源旦事。如需改錯魁巩,則交給運輸層的TCP協(xié)議完成。

5. 物理層:

在物理層上傳輸數(shù)據(jù)的單位是比特族檬。物理層的任務(wù)就是透明地傳送比特流歪赢。


在因特網(wǎng)所使用的各種協(xié)議中,最重要的和最著名的就是TCPIP兩個協(xié)議〉チ希現(xiàn)在人們經(jīng)常提起的TCP/IP并不一定是單指TCPIP這兩個具體的協(xié)議埋凯,而是表示因特網(wǎng)所使用的整個TCP/IP協(xié)議族(Protocol suite)

三. TCP的運輸連接管理(三次握手)

TCP運輸連接的建立和釋放是每一次面向連接的通信中必不可少的過程。因此扫尖,運輸連接就有三個階段:連接建立白对、數(shù)據(jù)傳送和連接釋放。運輸連接的管理就是使運輸連接的建立和釋放都能正常地進(jìn)行换怖。


TCP建立連接的過程中要解決三個問題:

  • 要使每一方能夠確知對方的存在
  • 要允許雙方協(xié)商一些參數(shù)(如最大窗口值甩恼、是否使用窗口擴(kuò)大選項和時間戳選項以及服務(wù)質(zhì)量等)
  • 能夠?qū)嶓w資源(緩存大小、連接表中的項目等)進(jìn)行分配

TCP連接的建立采用客戶服務(wù)器方式沉颂。主動發(fā)起連接建立的應(yīng)用進(jìn)程叫做客戶(Client)条摸,被動等待連接建立的應(yīng)用程序叫做服務(wù)器(Server)。
假設(shè)主機(jī)A運行的是TCP客戶程序铸屉,主機(jī)B運行TCP服務(wù)器程序钉蒲。最初兩端的TCP進(jìn)程都處在CLOSED(關(guān)閉)狀態(tài)。
A主動打開連接彻坛,而B被動打開連接顷啼。
BTCP服務(wù)器進(jìn)程先創(chuàng)建傳輸控制塊TCB,準(zhǔn)備接受客戶進(jìn)程的連接請求昌屉。然后服務(wù)器就處于LISTEN(收聽)狀態(tài)钙蒙,等待客戶的連接請求,如有间驮,即作出反應(yīng)躬厌。

過程1.

???ATCP客戶進(jìn)程也是首先創(chuàng)建傳輸控制模塊TCB,然后向B發(fā)出連接請求報文段竞帽,——>首部中的同步位 SYN = 1烤咧,同時選擇一個初始序號 seq = x偏陪,——>TCP客戶進(jìn)入SYN-SENT(同步以發(fā)送)狀態(tài)。
:TCP規(guī)定煮嫌,SYN報文段(即SYN = 1的報文段)不能攜帶數(shù)據(jù),但要消耗掉一個序號抱虐。

過程2.

???B收到連接請求報文段后昌阿,如同意建立連接,則向A發(fā)送確認(rèn)恳邀。——>在確認(rèn)報文段中把SYN位和ACK位都置1懦冰,確認(rèn)號是ack = x+1,同時也為自己選擇一個初始序號seq = y谣沸。(:該確認(rèn)報文段也不能攜帶數(shù)據(jù)刷钢,但同樣要消耗掉一個序號。)——>這時乳附,TCP服務(wù)器進(jìn)程進(jìn)入SYN-RCVD(同步收到)狀態(tài)内地。

過程3.

???TCP客戶進(jìn)程收到B的確認(rèn)后,還要向B給出確認(rèn)赋除。——>確認(rèn)報文段的ACK置1阱缓,確認(rèn)號ack = y+1,而自己的序號seq = x + 1(:TCP規(guī)定举农,ACK報文段可以攜帶數(shù)據(jù)荆针,但如果不攜帶數(shù)據(jù)則不消耗序號,在這種情況下颁糟,下一個數(shù)據(jù)報文段的序號仍是seq = x +1航背。)——>這時,TCP連接已經(jīng)建立棱貌,A進(jìn)入ESTABLISHED(已建立連接)狀態(tài)玖媚。
???當(dāng)B收到A的確認(rèn)后也進(jìn)入ESTABLISHED狀態(tài)。

上面給出的連接建立過程叫做三次握手(three-way handshake)键畴,或三次聯(lián)絡(luò)最盅。

問題:

為什么客戶主機(jī)A還要發(fā)送一次確認(rèn)呢?

???主要是為了防止已失效的連接請求報文段突然又傳送到了服務(wù)器主機(jī)B
???假定A發(fā)出連接請求起惕,但因連接請求報文丟失而未收到確認(rèn)涡贱,于是A再重傳一次連接請求,后來收到了確認(rèn)惹想,建立了連接问词,數(shù)據(jù)傳輸完畢后就釋放了連接。這個過程中嘀粱,A共發(fā)送了兩個請求報文段激挪,其中第一個丟失辰狡,第二個到達(dá)了B
???于是就可能有“已失效的連接請求報文段產(chǎn)生”:假定一種異常的情況垄分,即A發(fā)出的第一個連接請求報文段并沒有丟失宛篇,而是在某些網(wǎng)絡(luò)結(jié)點長時間的滯留了,以致延誤到第二個請求報文段連接釋放以后的某個時間才到達(dá)B薄湿。本來這是一個已失效的報文段叫倍。但B收到此失效的連接請求報文段后,就誤以為A又一次發(fā)出了一次新的連接請求豺瘤,于是就向A發(fā)送確認(rèn)報文段吆倦,同意建立連接請求。假如不采用三次握手坐求,那么只要B發(fā)出確認(rèn)蚕泽,新的連接就建立了。
???由于現(xiàn)在A并沒有發(fā)出建立連接的請求桥嗤,所以不會理睬B的確認(rèn)须妻,也不會向B發(fā)送數(shù)據(jù),但是B卻以為新的運輸連接已經(jīng)建立了砸逊,并一直等待A發(fā)來數(shù)據(jù)璧南。于是,B的許多資源就這樣被白白浪費了师逸。
???采用三次握手司倚,A 不會向 B 的確認(rèn)發(fā)出確認(rèn),B由于收不到確認(rèn)篓像,就知道A并沒有要求要建立連接动知。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市员辩,隨后出現(xiàn)的幾起案子盒粮,更是在濱河造成了極大的恐慌,老刑警劉巖奠滑,帶你破解...
    沈念sama閱讀 211,884評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件丹皱,死亡現(xiàn)場離奇詭異,居然都是意外死亡宋税,警方通過查閱死者的電腦和手機(jī)摊崭,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,347評論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來杰赛,“玉大人呢簸,你說我怎么就攤上這事。” “怎么了根时?”我有些...
    開封第一講書人閱讀 157,435評論 0 348
  • 文/不壞的土叔 我叫張陵瘦赫,是天一觀的道長。 經(jīng)常有香客問我蛤迎,道長确虱,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,509評論 1 284
  • 正文 為了忘掉前任忘苛,我火速辦了婚禮蝉娜,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘扎唾。我一直安慰自己,他們只是感情好南缓,可當(dāng)我...
    茶點故事閱讀 65,611評論 6 386
  • 文/花漫 我一把揭開白布胸遇。 她就那樣靜靜地躺著,像睡著了一般汉形。 火紅的嫁衣襯著肌膚如雪纸镊。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,837評論 1 290
  • 那天概疆,我揣著相機(jī)與錄音逗威,去河邊找鬼。 笑死岔冀,一個胖子當(dāng)著我的面吹牛凯旭,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播使套,決...
    沈念sama閱讀 38,987評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼罐呼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了侦高?” 一聲冷哼從身側(cè)響起嫉柴,我...
    開封第一講書人閱讀 37,730評論 0 267
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎奉呛,沒想到半個月后计螺,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,194評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡瞧壮,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,525評論 2 327
  • 正文 我和宋清朗相戀三年登馒,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片馁痴。...
    茶點故事閱讀 38,664評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡谊娇,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情济欢,我是刑警寧澤赠堵,帶...
    沈念sama閱讀 34,334評論 4 330
  • 正文 年R本政府宣布,位于F島的核電站法褥,受9級特大地震影響茫叭,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜半等,卻給世界環(huán)境...
    茶點故事閱讀 39,944評論 3 313
  • 文/蒙蒙 一揍愁、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧杀饵,春花似錦莽囤、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,764評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至谜悟,卻和暖如春话肖,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背葡幸。 一陣腳步聲響...
    開封第一講書人閱讀 31,997評論 1 266
  • 我被黑心中介騙來泰國打工最筒, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人蔚叨。 一個月前我還...
    沈念sama閱讀 46,389評論 2 360
  • 正文 我出身青樓床蜘,卻偏偏與公主長得像,于是被迫代替她去往敵國和親缅叠。 傳聞我的和親對象是個殘疾皇子悄泥,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,554評論 2 349

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

  • 本書結(jié)構(gòu)是自頂向下的,所以請按下列順序閱讀: 1.計算機(jī)網(wǎng)絡(luò)自頂向下--應(yīng)用層2.計算機(jī)網(wǎng)絡(luò)自頂向下--運輸層3....
    牛富貴兒閱讀 2,734評論 0 3
  • 個人認(rèn)為肤粱,Goodboy1881先生的TCP /IP 協(xié)議詳解學(xué)習(xí)博客系列博客是一部非常精彩的學(xué)習(xí)筆記弹囚,這雖然只是...
    貳零壹柒_fc10閱讀 5,051評論 0 8
  • 1.這篇文章不是本人原創(chuàng)的,只是個人為了對這部分知識做一個整理和系統(tǒng)的輸出而編輯成的领曼,在此鄭重地向本文所引用文章的...
    SOMCENT閱讀 13,051評論 6 174
  • 18.1 引言 TCP是一個面向連接的協(xié)議鸥鹉。無論哪一方向另一方發(fā)送數(shù)據(jù)之前,都必須先在雙方之間建立一條連接庶骄。本章將...
    張芳濤閱讀 3,347評論 0 13
  • 天空中毁渗,是一片白云夾雜著烏云,抬頭单刁,想起兒時灸异,我還是反穿著解放牌球鞋,扎著羊角辮的小女孩兒,我仰著脖子肺樟,坐在院子里...
    諾游閱讀 287評論 0 1