計算機網(wǎng)絡(luò)為何需要分層架構(gòu)?

多點頭發(fā)莫瞬,少點代碼

我是龍叔雄卷,一個分享互聯(lián)網(wǎng)技術(shù)和心路歷程的大叔

本文已經(jīng)收錄至我的GitHub,歡迎大家踴躍star 和 issues搓蚪。

https://github.com/midou-tech/articles

最近很忙,寫技術(shù)文章還是很花費時間的丁鹉。但是妒潭,就在前幾天出了一篇TCP粘包問題的文章 (TCP粘包,難道說這是一個偽命題揣钦?雳灾??)冯凹,反映不錯谎亩。本來計劃計算機網(wǎng)絡(luò)文章慢慢的出,現(xiàn)在看來必須的加快速度了宇姚。

image

龍叔在學習網(wǎng)絡(luò)的時候有這樣幾個疑惑:

  • 為什么需要抽象出五層模型出來匈庭?

  • 難道不是直接在網(wǎng)線(光纖傳輸)中傳輸數(shù)據(jù)就好了么?大不了到了端點用的是WIFI傳輸(無線信號)浑劳。

這兩個問題真的很困惑我嚎花,不知道大家有沒有這樣的疑惑?如果有的話呀洲,龍叔將為你答疑解惑。如果有其他的疑惑歡迎加我微信溝通 (公眾號回復(fù)【龍叔】即可獲得龍叔的聯(lián)系方式)啼止。

在回答問題之前我先帶你領(lǐng)略下使用最為廣泛的五層模型道逗,分別是哪五層?各層解決了什么問題献烦?

五層模型是哪五層滓窍?

網(wǎng)絡(luò)模型

左邊是OSI的七層模型,這模型很牛逼巩那。但是現(xiàn)在基本是存在教科書的啦吏夯,學習網(wǎng)絡(luò)的同學都是知道有這個模型,實際情況使用很少的即横。

右邊是TCP/IP五層分層模型噪生。分別是物理層(硬件)、數(shù)據(jù)鏈路層(網(wǎng)卡層)东囚、網(wǎng)絡(luò)層(互聯(lián)網(wǎng)層)跺嗽、傳輸層、應(yīng)用層。在日常工作中接觸最多的是上兩層桨嫁,偶爾會去觸碰網(wǎng)絡(luò)層植兰。數(shù)據(jù)鏈路層和物理層不是我們工作范圍。當然如果是一些專門的網(wǎng)絡(luò)安全部門璃吧,網(wǎng)管(不是網(wǎng)吧的網(wǎng)管)等崗位楣导,下面幾層就是非常熟悉的。

五層模型還是很清楚明了的畜挨,每層用到的重要協(xié)議都表示在圖中筒繁,還表示了操作系統(tǒng)的內(nèi)核工作范圍和用戶工作范圍。

各層解決了什么問題朦促?

應(yīng)用層:

應(yīng)用層是網(wǎng)絡(luò)體系架構(gòu)中的最高層膝晾。這意味著什么?想想就知道务冕,最高層就是要和人交互的層次嘛血当。

應(yīng)用層是計算機網(wǎng)絡(luò)與用戶交互的接口或者界面直接向用戶提供服務(wù)禀忆。

提供哪些服務(wù)呢臊旭?

這個...,就非常多了箩退,比如Web服務(wù)离熏、E-mail服務(wù)、DNS服務(wù)戴涝、DHCP服務(wù)滋戳、FTP服務(wù)等等。

所以很明了啥刻,應(yīng)用層解決的問題就是如何為用戶提供服務(wù)奸鸯,以及提供高效、可靠可帽、滿意的服務(wù)娄涩。如何解決這些問題也就是我們這些攻城獅存在的必要了,根據(jù)不同的業(yè)務(wù)場景用不同的方法解決這些問題映跟。例如使用多線程蓄拣、協(xié)程,高并發(fā)的web框架努隙,使用epoll處理模式球恤,分布式處理等等技術(shù)來解決提供高效、可靠剃法、滿意的服務(wù)碎捺。

總結(jié)下路鹰,應(yīng)用層是為用戶提供服務(wù)接口或者界面,同時要解決服務(wù)的高效收厨、可靠晋柱、滿意。

傳輸層

負責端到端的通信诵叁,是面向網(wǎng)絡(luò)通信的低三層和面向信息處理的高三層之間的中間一層雁竞,起到橋梁作用。很明顯了拧额,傳輸層解決的問題就是端到端的傳輸問題碑诉。

看到這句話肯定很多人有疑問,先別說侥锦,繼續(xù)看(我知道有人會說进栽,網(wǎng)絡(luò)層不是已經(jīng)把數(shù)據(jù)轉(zhuǎn)發(fā)到對應(yīng)的主機了么,為何還要傳輸層恭垦?)快毛。

位于兩臺網(wǎng)絡(luò)主機間的真正數(shù)據(jù)通信主體不是這兩臺主機,而是兩臺主機中的各種網(wǎng)絡(luò)應(yīng)用進程番挺,也就是應(yīng)用程序唠帝。一臺主機上有很多應(yīng)用程序,很多應(yīng)用程序都在進行網(wǎng)絡(luò)通信玄柏,這時候就必須使用到傳輸層的知識去解決了襟衰。

怎樣完成端到端的傳輸呢?

分為兩個步驟:一是虛擬傳輸連接的建立(此處仍僅針對面向連接的傳輸層協(xié)議)粪摘,二是源端用戶數(shù)據(jù)沿著傳輸連接傳送到目的端瀑晒。

在整個數(shù)據(jù)傳輸過程中,傳輸層服務(wù)需要完成以下8個方面的基本功能:傳輸層尋址徘意、傳輸連接建立瑰妄、數(shù)據(jù)傳輸、傳輸連接釋放映砖、流量控制、擁塞控制灾挨、多路復(fù)用和解復(fù)用邑退、崩潰恢復(fù)。

這里面每個功能都能細說一篇文章劳澄,這里就不一一展開了地技,后面會出系列的文章,所以點關(guān)注秒拔,不迷路莫矗。每個功能都是面試的考點,所以我后面一定會快速更新出來的。

image

總結(jié)下作谚,傳輸層主要是為了解決端到端(這里的端到端指的是進程到進程)的通信三娩,起到網(wǎng)絡(luò)通信橋梁作用。

網(wǎng)絡(luò)層

網(wǎng)絡(luò)層也被稱為中轉(zhuǎn)層妹懒,是網(wǎng)絡(luò)體系結(jié)構(gòu)中非常重要的一層雀监,在技術(shù)上又是非常復(fù)雜的一層,因為它既要解決不同網(wǎng)絡(luò)的節(jié)點間通信的路由和協(xié)議識別問題眨唬,又要通過路由選擇策略解決網(wǎng)絡(luò)擁塞問題会前,盡可能提高網(wǎng)絡(luò)通信的可靠性。

網(wǎng)絡(luò)層解決的主要問題是匾竿,從A主機把數(shù)據(jù)運送到B主機是走高速呢瓦宜、飛機呢、還是火車呢或者是多種混合的方案呢岭妖。一句話就是临庇,網(wǎng)絡(luò)層關(guān)注的是如何將分組從源端沿著網(wǎng)絡(luò)路徑傳送到目的端(這個端指的是主機不是應(yīng)用程序)。

為了實現(xiàn)這個目標区转,網(wǎng)絡(luò)層必須知道通信子網(wǎng)的拓撲結(jié)構(gòu)苔巨,并且在拓撲結(jié)構(gòu)中選擇適當?shù)穆窂健M瑫r網(wǎng)絡(luò)層還必須謹慎地選擇路由路徑废离,以避免發(fā)生某些通信線路和路由器負載過重侄泽,而其他線路和路由器空閑的情形。

總結(jié)下蜻韭,網(wǎng)絡(luò)層主要是為了解決不同網(wǎng)絡(luò)之間數(shù)據(jù)傳輸和轉(zhuǎn)發(fā)問題悼尾。

數(shù)據(jù)鏈路層

物理層中也有許多規(guī)程或協(xié)議,但它們是用來構(gòu)建物理傳輸線路肖方、建立物理意義的網(wǎng)絡(luò)通信闺魏,不是用來控制數(shù)據(jù)傳輸?shù)摹?/p>

設(shè)計數(shù)據(jù)鏈路層的主要解決的問題就是在原始的、有差錯的物理傳輸線路的基礎(chǔ)上俯画,采取差錯檢測析桥、差錯控制與流量控制等方法,將有差錯的物理線路改進成邏輯上無差錯的數(shù)據(jù)鏈路艰垂,以便向它的上一層(網(wǎng)絡(luò)層)提供高質(zhì)量的服務(wù)泡仗。一句話總結(jié)就是 控制數(shù)據(jù)傳輸。

總結(jié)下猜憎,數(shù)據(jù)鏈路層是為了解決數(shù)據(jù)傳輸?shù)目刂谱饔谩?/p>

物理層

物理層位于各計算機網(wǎng)絡(luò)體系結(jié)構(gòu)的最底層娩怎,主要負責在物理介質(zhì)上為數(shù)據(jù)鏈路層提供原始比特流傳輸?shù)?strong>物理鏈接。

物理層解決的問題就是數(shù)據(jù)傳輸胰柑。上面的所有層都是封裝數(shù)據(jù)和管理截亦,物理層是傳輸數(shù)據(jù)的唯一出口爬泥,所有數(shù)據(jù)到達物理層都會變成二進制的載波信號。

總結(jié)下崩瓤,物理層就是真正傳輸數(shù)據(jù)袍啡。

為什么不是直接在物理線路中進行通信就行了?而是搞出這么多層網(wǎng)絡(luò)模型呢谷遂?

我覺得在學習計算機網(wǎng)絡(luò)時能思考這個問題的都是非常????的人葬馋,比如龍叔我??。

物理層是物理線路的抽象肾扰,物理層解決的主要問題傳輸就是數(shù)據(jù)傳輸畴嘶,也是網(wǎng)絡(luò)通信中唯一的數(shù)據(jù)傳輸出口。其實物理層就相當于日常交通網(wǎng)絡(luò)中的各種道路集晚,如公路窗悯、鐵路和航線,它們是我們出門旅行必須要依靠的基礎(chǔ)設(shè)施偷拔。

但是物理層不是針對具體的傳輸介質(zhì)蒋院、設(shè)備和通信協(xié)議的,因為它們可以有許多種選擇(如傳輸介質(zhì)中就可以有同軸電纜莲绰、雙絞線和光纖等)欺旧,只要能實現(xiàn)物理層的某種功能就行了。不同的傳輸介質(zhì)和設(shè)備選擇蛤签,必須要有對應(yīng)的通信協(xié)議支持辞友,而且這也決定了不同的選擇有不同的物理層性能。

就像路有好多種一樣震肮,如有泥巴路称龙、沙子路、水泥路戳晌、柏油馬路鲫尊、普通鐵路、高速鐵路等沦偎,這些不同的路可以承載的重量和速率都不一樣疫向。

傳輸介質(zhì)不同,各種傳輸介質(zhì)傳輸速率不同豪嚎;所有人都在進行傳輸鸿捧,怎么管理這些人;高鐵疙渣、航線不可能通到家門口;就算到了家門口怎么把這些數(shù)據(jù)完整交付給家中的某個人呢堆巧;

所以就必須抽象出這些層來解決這些問題妄荔。物理層專門做數(shù)據(jù)傳輸(好比基礎(chǔ)交通設(shè)施)泼菌、數(shù)據(jù)鏈路層制定傳輸規(guī)則(好比交通規(guī)則)、網(wǎng)絡(luò)層把各個交通線路連接起來(就好比各個交通樞紐站)啦租、傳輸層是端到端的符數(shù)據(jù)通信(好比把快遞小哥把包裹移交到你的手里)哗伯、應(yīng)用層負責提供服務(wù)(好比包裹到你手里了,你在享受包裹里面的禮物)篷角。

是不是有些明白為啥需要抽象出多層了焊刹,是的。

想想都知道要是光有物理層那網(wǎng)絡(luò)通信沒法玩了恳蹲,數(shù)據(jù)都是二進制虐块,透明傳輸,數(shù)據(jù)還有可能亂序嘉蕾,丟數(shù)據(jù)贺奠,數(shù)據(jù)被篡改等等問題。

計算機網(wǎng)絡(luò)通信過程圖

image

本文講清楚了文章開頭的幾個疑惑错忱,至于各層中詳細的功能和面試忱苈剩考的點,篇幅有限以清,我和大家一起期待下一篇文章儿普。關(guān)注我,精彩內(nèi)容不錯過掷倔,微信搜索 龍躍十二 即可關(guān)注眉孩。

覺得本篇文章對你有幫助,非常感謝你能幫我點個贊今魔,你的小小鼓勵會成為我創(chuàng)作的動力勺像。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市错森,隨后出現(xiàn)的幾起案子吟宦,更是在濱河造成了極大的恐慌,老刑警劉巖涩维,帶你破解...
    沈念sama閱讀 221,430評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件殃姓,死亡現(xiàn)場離奇詭異,居然都是意外死亡瓦阐,警方通過查閱死者的電腦和手機蜗侈,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,406評論 3 398
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來睡蟋,“玉大人踏幻,你說我怎么就攤上這事〈辽保” “怎么了该面?”我有些...
    開封第一講書人閱讀 167,834評論 0 360
  • 文/不壞的土叔 我叫張陵夭苗,是天一觀的道長。 經(jīng)常有香客問我隔缀,道長题造,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,543評論 1 296
  • 正文 為了忘掉前任猾瘸,我火速辦了婚禮界赔,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘牵触。我一直安慰自己淮悼,他們只是感情好,可當我...
    茶點故事閱讀 68,547評論 6 397
  • 文/花漫 我一把揭開白布荒吏。 她就那樣靜靜地躺著敛惊,像睡著了一般。 火紅的嫁衣襯著肌膚如雪绰更。 梳的紋絲不亂的頭發(fā)上瞧挤,一...
    開封第一講書人閱讀 52,196評論 1 308
  • 那天,我揣著相機與錄音儡湾,去河邊找鬼特恬。 笑死,一個胖子當著我的面吹牛徐钠,可吹牛的內(nèi)容都是我干的癌刽。 我是一名探鬼主播,決...
    沈念sama閱讀 40,776評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼尝丐,長吁一口氣:“原來是場噩夢啊……” “哼显拜!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起爹袁,我...
    開封第一講書人閱讀 39,671評論 0 276
  • 序言:老撾萬榮一對情侶失蹤远荠,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后失息,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體譬淳,經(jīng)...
    沈念sama閱讀 46,221評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,303評論 3 340
  • 正文 我和宋清朗相戀三年盹兢,在試婚紗的時候發(fā)現(xiàn)自己被綠了邻梆。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,444評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡绎秒,死狀恐怖浦妄,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤剂娄,帶...
    沈念sama閱讀 36,134評論 5 350
  • 正文 年R本政府宣布窘问,位于F島的核電站,受9級特大地震影響宜咒,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜把鉴,卻給世界環(huán)境...
    茶點故事閱讀 41,810評論 3 333
  • 文/蒙蒙 一故黑、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧庭砍,春花似錦场晶、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,285評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至揭北,卻和暖如春扳炬,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背搔体。 一陣腳步聲響...
    開封第一講書人閱讀 33,399評論 1 272
  • 我被黑心中介騙來泰國打工恨樟, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人疚俱。 一個月前我還...
    沈念sama閱讀 48,837評論 3 376
  • 正文 我出身青樓劝术,卻偏偏與公主長得像,于是被迫代替她去往敵國和親呆奕。 傳聞我的和親對象是個殘疾皇子养晋,可洞房花燭夜當晚...
    茶點故事閱讀 45,455評論 2 359

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