網(wǎng)絡(luò)七層協(xié)議的理解

網(wǎng)絡(luò)七層協(xié)議的理解
以下內(nèi)容轉(zhuǎn)載自https://www.cnblogs.com/carlos-mm/p/6297197.html诀浪,僅供學(xué)習(xí)使用秀鞭。

OSI七層模式簡單通俗理解


image.png

這個(gè)模型學(xué)了好多次噩翠,總是記不住。今天又看了一遍降允,發(fā)現(xiàn)用歷史推演的角度去看問題會(huì)更有邏輯嘹锁,更好記。本文不一定嚴(yán)謹(jǐn)阀湿,可能有錯(cuò)漏,主要是拋磚引玉瑰妄,幫助記性不好的人陷嘴。總體來說间坐,OSI模型是從底層往上層發(fā)展出來的灾挨。

這個(gè)模型推出的最開始,是是因?yàn)槊绹擞袃膳_(tái)機(jī)器之間進(jìn)行通信的需求竹宋。

需求1:

科學(xué)家要解決的第一個(gè)問題是劳澄,兩個(gè)硬件之間怎么通信。具體就是一臺(tái)發(fā)些比特流蜈七,然后另一臺(tái)能收到秒拔。

于是,科學(xué)家發(fā)明了物理層:

主要定義物理設(shè)備標(biāo)準(zhǔn)飒硅,如網(wǎng)線的接口類型砂缩、光纖的接口類型、各種傳輸介質(zhì)的傳輸速率等三娩。它的主要作用是傳輸比特流(就是由1庵芭、0轉(zhuǎn)化為電流強(qiáng)弱來進(jìn)行傳輸,到達(dá)目的地后在轉(zhuǎn)化為1雀监、0双吆,也就是我們常說的數(shù)模轉(zhuǎn)換與模數(shù)轉(zhuǎn)換)。這一層的數(shù)據(jù)叫做比特会前。

需求2:

現(xiàn)在通過電線我能發(fā)數(shù)據(jù)流了好乐,但是,我還希望通過無線電波回官,通過其它介質(zhì)來傳輸曹宴。然后我還要保證傳輸過去的比特流是正確的,要有糾錯(cuò)功能歉提。

于是笛坦,發(fā)明了數(shù)據(jù)鏈路層:

定義了如何讓格式化數(shù)據(jù)以進(jìn)行傳輸区转,以及如何讓控制對物理介質(zhì)的訪問。這一層通常還提供錯(cuò)誤檢測和糾正版扩,以確保數(shù)據(jù)的可靠傳輸废离。

需求3:

現(xiàn)在我能發(fā)正確的發(fā)比特流數(shù)據(jù)到另一臺(tái)計(jì)算機(jī)了,但是當(dāng)我發(fā)大量數(shù)據(jù)時(shí)候礁芦,可能需要好長時(shí)間蜻韭,例如一個(gè)視頻格式的,網(wǎng)絡(luò)會(huì)中斷好多次(事實(shí)上柿扣,即使有了物理層和數(shù)據(jù)鏈路層肖方,網(wǎng)絡(luò)還是經(jīng)常中斷,只是中斷的時(shí)間是毫秒級(jí)別的)未状。

那么俯画,我還須要保證傳輸大量文件時(shí)的準(zhǔn)確性。于是司草,我要對發(fā)出去的數(shù)據(jù)進(jìn)行封裝艰垂。就像發(fā)快遞一樣,一個(gè)個(gè)地發(fā)埋虹。

于是猜憎,先發(fā)明了傳輸層(傳輸層在OSI模型中,是在網(wǎng)絡(luò)層上面)

例如TCP搔课,是用于發(fā)大量數(shù)據(jù)的胰柑,我發(fā)了1萬個(gè)包出去,另一臺(tái)電腦就要告訴我是否接受到了1萬個(gè)包辣辫,如果缺了3個(gè)包旦事,就告訴我是第1001,234急灭,8888個(gè)包丟了姐浮,那我再發(fā)一次。這樣葬馋,就能保證對方把這個(gè)視頻完整接收了卖鲤。

例如UDP,是用于發(fā)送少量數(shù)據(jù)的畴嘶。我發(fā)20個(gè)包出去蛋逾,一般不會(huì)丟包,所以窗悯,我不管你收到多少個(gè)区匣。在多人互動(dòng)游戲,也經(jīng)常用UDP協(xié)議蒋院,因?yàn)橐话愣际呛唵蔚男畔⒖鞴常矣袕V播的需求莲绰。如果用TCP,效率就很低姑丑,因?yàn)樗鼤?huì)不停地告訴主機(jī)我收到了20個(gè)包蛤签,或者我收到了18個(gè)包,再發(fā)我兩個(gè)栅哀!如果同時(shí)有1萬臺(tái)計(jì)算機(jī)都這樣做震肮,那么用TCP反而會(huì)降低效率,還不如用UDP留拾,主機(jī)發(fā)出去就算了戳晌,丟幾個(gè)包你就卡一下,算了痴柔,下次再發(fā)包你再更新躬厌。

TCP協(xié)議是會(huì)綁定IP和端口的協(xié)議,下面會(huì)介紹IP協(xié)議竞帽。

需求4:

傳輸層只是解決了打包的問題。但是如果我有多臺(tái)計(jì)算機(jī)鸿捧,怎么找到我要發(fā)的那臺(tái)屹篓?或者,A要給F發(fā)信息匙奴,中間要經(jīng)過B堆巧,C,D,E泼菌,但是中間還有好多節(jié)點(diǎn)如K.J.Z.Y谍肤。我怎么選擇最佳路徑?這就是路由要做的事哗伯。

于是荒揣,發(fā)明了網(wǎng)絡(luò)層。即路由器焊刹,交換價(jià)那些具有尋址功能的設(shè)備所實(shí)現(xiàn)的功能系任。這一層定義的是IP地址,通過IP地址尋址虐块。所以產(chǎn)生了IP協(xié)議俩滥。

需求5:

現(xiàn)在我們已經(jīng)保證給正確的計(jì)算機(jī),發(fā)送正確的封裝過后的信息了贺奠。但是用戶級(jí)別的體驗(yàn)好不好霜旧?難道我每次都要調(diào)用TCP去打包,然后調(diào)用IP協(xié)議去找路由儡率,自己去發(fā)挂据?當(dāng)然不行以清,所以我們要建立一個(gè)自動(dòng)收發(fā)包,自動(dòng)尋址的功能棱貌。

于是玖媚,發(fā)明了會(huì)話層。會(huì)話層的作用就是建立和管理應(yīng)用程序之間的通信婚脱。

需求6:

現(xiàn)在我能保證應(yīng)用程序自動(dòng)收發(fā)包和尋址了今魔。但是我要用Linux給window發(fā)包,兩個(gè)系統(tǒng)語法不一致障贸,就像安裝包一樣错森,exe是不能在linux下用的,shell在window下也是不能直接運(yùn)行的篮洁。于是需要表示層(presentation)涩维,幫我們解決不同系統(tǒng)之間的通信語法問題。

需求7:

OK袁波,現(xiàn)在所有必要條件都準(zhǔn)備好了瓦阐,我們可以寫個(gè)android程序,web程序去實(shí)現(xiàn)需求把篷牌。

補(bǔ)充:

Socket:

這不是一個(gè)協(xié)議睡蟋,而是一個(gè)通信模型。其實(shí)它最初是伯克利加州分校軟件研究所枷颊,簡稱BSD發(fā)明的戳杀,主要用來一臺(tái)電腦的兩個(gè)進(jìn)程間通信,然后把它用到了兩臺(tái)電腦的進(jìn)程間通信夭苗。所以信卡,可以把它簡單理解為進(jìn)程間通信,不是什么高級(jí)的東西题造。主要做的事情不就是:

A發(fā)包:發(fā)請求包給某個(gè)已經(jīng)綁定的端口(所以我們經(jīng)常會(huì)訪問這樣的地址182.13.15.16:1235傍菇,1235就是端口);收到B的允許界赔;然后正式發(fā)送桥嗤;發(fā)送完了,告訴B要斷開鏈接仔蝌;收到斷開允許泛领,馬上斷開,然后發(fā)送已經(jīng)斷開信息給B敛惊。

B收包:綁定端口和IP渊鞋;然后在這個(gè)端口監(jiān)聽;接收到A的請求,發(fā)允許給A锡宋,并做好接收準(zhǔn)備儡湾,主要就是清理緩存等待接收新數(shù)據(jù);然后正式接收执俩;接受到斷開請求徐钠,允許斷開;確認(rèn)斷開后役首,繼續(xù)監(jiān)聽其它請求尝丐。

可見,Socket其實(shí)就是I/O操作衡奥。Socket并不僅限于網(wǎng)絡(luò)通信爹袁。在網(wǎng)絡(luò)通信中,它涵蓋了網(wǎng)絡(luò)層矮固、傳輸層失息、會(huì)話層、表示層档址、應(yīng)用層——其實(shí)這都不需要記盹兢,因?yàn)镾ocket通信時(shí)候用到了IP和端口,僅這兩個(gè)就表明了它用到了網(wǎng)絡(luò)層和傳輸層守伸;而且它無視多臺(tái)電腦通信的系統(tǒng)差別蛤迎,所以它涉及了表示層;一般Socket都是基于一個(gè)應(yīng)用程序的含友,所以會(huì)涉及到會(huì)話層和應(yīng)用層。

二校辩、
http 和 webservice 都是基于TCP/IP協(xié)議的應(yīng)用層協(xié)議

webservice是基于http的soap協(xié)議傳輸數(shù)據(jù) webservice=soap=http+xml

socket是基于TCP/IP的傳輸協(xié)議窘问,是對TCP/IP協(xié)議的封裝

socket和TCP都是基于TCP/IP傳輸層協(xié)議

Restful是一種接口規(guī)范,而不是接口協(xié)議宜咒。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末惠赫,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子故黑,更是在濱河造成了極大的恐慌儿咱,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,183評(píng)論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件场晶,死亡現(xiàn)場離奇詭異混埠,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)诗轻,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,850評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門钳宪,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事吏颖∩μ澹” “怎么了?”我有些...
    開封第一講書人閱讀 168,766評(píng)論 0 361
  • 文/不壞的土叔 我叫張陵半醉,是天一觀的道長疚俱。 經(jīng)常有香客問我,道長缩多,這世上最難降的妖魔是什么呆奕? 我笑而不...
    開封第一講書人閱讀 59,854評(píng)論 1 299
  • 正文 為了忘掉前任,我火速辦了婚禮瞧壮,結(jié)果婚禮上登馒,老公的妹妹穿的比我還像新娘。我一直安慰自己咆槽,他們只是感情好陈轿,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,871評(píng)論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著秦忿,像睡著了一般麦射。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上灯谣,一...
    開封第一講書人閱讀 52,457評(píng)論 1 311
  • 那天潜秋,我揣著相機(jī)與錄音,去河邊找鬼胎许。 笑死峻呛,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的辜窑。 我是一名探鬼主播钩述,決...
    沈念sama閱讀 40,999評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼穆碎!你這毒婦竟也來了牙勘?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,914評(píng)論 0 277
  • 序言:老撾萬榮一對情侶失蹤所禀,失蹤者是張志新(化名)和其女友劉穎方面,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體色徘,經(jīng)...
    沈念sama閱讀 46,465評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡恭金,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,543評(píng)論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了褂策。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蔚叨。...
    茶點(diǎn)故事閱讀 40,675評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡床蜘,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出蔑水,到底是詐尸還是另有隱情邢锯,我是刑警寧澤,帶...
    沈念sama閱讀 36,354評(píng)論 5 351
  • 正文 年R本政府宣布搀别,位于F島的核電站丹擎,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏歇父。R本人自食惡果不足惜蒂培,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,029評(píng)論 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望榜苫。 院中可真熱鬧护戳,春花似錦、人聲如沸垂睬。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,514評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽驹饺。三九已至钳枕,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間赏壹,已是汗流浹背鱼炒。 一陣腳步聲響...
    開封第一講書人閱讀 33,616評(píng)論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留蝌借,地道東北人昔瞧。 一個(gè)月前我還...
    沈念sama閱讀 49,091評(píng)論 3 378
  • 正文 我出身青樓,卻偏偏與公主長得像菩佑,于是被迫代替她去往敵國和親自晰。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,685評(píng)論 2 360

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