本文由 簡悅 SimpRead 轉碼,
原文地址 https://www.zhihu.com/question/24002080/answer/150830722 車小胖安全
OSI 參考模型
OSI,是英文 Open System Interconnect 的縮寫,中文翻譯開放系統互聯,一個抽象七層模型,但其核心思想一點也不抽象,很是具體,其核心思想:網絡
1) 通訊兩端的主機可以理解對方的語言tcp
這是要求主機使用相同協議格式來發送數據模塊化
2) 但願通訊系統模塊化,每一個模塊提供標準接口工具
每一個模塊給和直接耦合的模塊提供標準化的流程接口,每一個模塊內部不管怎樣實現沒有硬性規定,但外在的接口必定是標準件,這樣耦合的模塊能夠無縫對接起來。編碼
這樣作的好處有:加密
(1) 因爲使用標準接口,每一個通訊模塊能夠獨立開發,增長自由度,提升生產效率翻譯
(2) 增長代碼的重複利用率,因爲通訊模塊的標準化的外在接口,應用程序能夠直接使用現成的通訊模塊,而無需從新編碼,這大大減輕了開發者的負擔,間接地提供了生產效率。3d
注: 一切比喻都是爲了方便理解,比喻不可能徹底恰當的表達全部內容。本篇文章只是爲了讓你們大概瞭解 OSI 七層模型中每一層的基本功能,實際的應用中涉及到的不止這點點。想要學精仍是要看書!!!(三個感嘆號) 固然,若是你喜歡個人文章,歡迎關注我,我會不按期的發佈一些通訊類的科普文章~blog
如下爲正文
咱們假設每一個個體就是一臺電腦,咱們生活中的物品就是電腦中保存的文件。咱們有一天想要與世界上其餘地方的人交換貨物,咱們會用什麼方法呢?
咱們首先會看咱們想要交換什麼樣的物品,若是是電子產品,可能會上蘇寧易購,若是是書本,可能會上當當網,若是是服裝褲子,可能會上淘寶或京東,若是是生活中的小玩意,可能會上鹹魚。這些電商平臺爲咱們交換貨物提供了專用的通道和規則,咱們稱這些平臺爲應用層。(應用層做用: 爲網絡用戶之間的通訊提供專用的程序和協議)
提供不一樣服務的電商平臺
假設咱們最終選擇在淘寶上賣給別人一個衣櫃。而衣櫃太大了不易郵遞,咱們要找木匠將衣櫃拆分紅一個個零部件,並封裝、打包,附上組裝說明書。對方在收到你的郵件後,也會找木匠按照說明書拆封、組裝,讓它從新成爲一個完整的衣櫃。木匠的拆分 / 組裝是爲了衣櫃更方便的傳輸,咱們稱木匠工做在表示層。(表示層做用: 提供數據壓縮、解壓、加密等服務,爲應用層提供語法選擇,語法轉換)
拆分衣櫃的木匠
木匠封裝好了物品,會讓客服在阿里旺旺中問一句:「您好,您肯定夠買了嗎?若是您肯定的話我就點確認下單,正式發貨了。」 若是對面此時點了退款,那就沒必要發貨了,若是對面回覆 「是」 或沒有回覆,那麼客服默認發貨。發貨的具體時間和數量是由客服決定的,客服能夠選擇當天所有發出去,也能夠選擇用兩天時間分批次發出去。固然,對面也能夠選擇接收物品的時間(咱們都有快遞到了不能去取的經歷)。而只有收件人在網上點擊 「確認接收」 後,整個購買流程纔會結束。客服的工做是確認訂單的開始 / 結束時間以及貨物的發送 / 接收數量的,咱們稱客服工做在會話層。(會話層做用: 創建、管理和終止表示層實體之間的會話鏈接)
確認收貨的頁面
以上,用戶購買流程結束了。剩下的是如何將貨物發送過去的問題。同理,在電腦中,前三步以後用戶的操做便結束了,剩下的是信息如何在網絡中傳遞的問題。所以,咱們把前三層叫作 OSI 模型中的上層結構。
那麼貨物要如何傳遞呢?那麼遠,客服確定不能本身去送,客服會聯繫快遞公司。若是是不能丟失的重要郵件,客服會選擇 EMS 郵寄;若是是要求速度的隔日達,客服可能會選擇順豐快遞。快遞公司的做用是保證你的貨物能被對方順利接收,快遞公司就是咱們常說的傳輸層,起到一個承上啓下的做用。(傳輸層做用: 爲會話層提供可靠的、無誤的數據傳輸) 傳輸層是 OSI 模型中的中間層。
提供不一樣服務的快遞公司
快遞公司收到了快件通知,會查看訂單上的地址信息:「發件地址: 北京市,收件地址: 上海市」。此時,分撥中心會根據地址選擇運輸路徑,計算途經哪幾個分撥中心能最快 / 路徑最短的將貨物送達。分撥中心根據地址信息提供路徑選擇,咱們說分撥中心工做在網絡層。(網絡層做用: 基於 IP 地址爲數據的傳輸進行網絡間的路由選擇)
北京到上海的路徑選擇
快遞公司收到快遞訂單後,會派快遞小哥到發件人所在地址,根據發件人的姓名和電話聯繫到發件人,取走貨物,送往當地分撥中心。同理,當貨物到達收件地的分撥中心後,當地的快遞小哥會根據收件人的姓名和電話聯繫到收件人,將貨物安全送達。快遞小哥是經過姓名和電話(至關於 Mac 地址)聯繫到我的的,咱們說快遞小哥工做在數據鏈路層。(數據鏈路層做用: 物理地址尋址,爲網絡層提供數據傳送服務)
快遞小哥
貨物運輸途中,都由司機大哥開不一樣的卡車、汽車、三輪車運送。咱們說司機大哥和交通工具們工做在物理層。(物理層做用: 爲數據傳輸提供物理媒體,進行數據的實際傳輸)
司機大哥和他的交通工具
從快遞公司接收貨物開始,後面的全部流程都是貨物在城市內 / 城市間的運輸過程。在網絡內也同樣,從傳輸層創建鏈接開始,後面的全部流程都是數據包在網絡內 / 網間的傳遞,與操做用戶自己再無關係。所以,咱們把後三層叫作 OSI 模型中的下層結構。
然而實際生活中,咱們每每不會分那麼細,老闆,木匠,客服的活每每一我的就作了。運輸過程也是同樣,快遞小哥常常客串司機的角色。
嘿嘿,想不到吧 都是我一我的哦
其實網絡中也是同樣。從電腦的角度來看,若是一臺電腦要給另外一臺電腦發送文件,它首先會查看發送內容,經過發送內容選擇發送平臺。好比發送郵件用 Email,發送圖片用 QQ。不一樣的應用程序有着不一樣的通訊協議(Email——SMTP,Web——Http,文件傳輸——Ftp 等),這些通訊協議都工做在應用層。
使用不一樣應用層協議的 APP
假設咱們決定用 QQ 發送一張圖片,咱們電腦會在傳送前先在後臺對這張圖片進行編碼、加密和壓縮,這一過程工做在表示層。
用 QQ 傳送文件時,咱們會被問到 「是否發送」,對面也會看到 「是否接收」。若是接收失敗,會告訴你發送失敗,問你是否重傳;接收成功後,也會有對話框告訴你發送成功。這些,都工做在會話層。
確認發送對話框
這邊肯定發送,那邊也肯定接收後,會經過 TCP/UDP 協議創建通道,保證傳輸的可靠性。TCP/UDP 協議工做在傳輸層。
文件在網絡傳輸過程當中,經過 IP 地址,由路由器選擇傳輸路徑,路由器工做在網絡層。
路由器
文件在網絡傳輸過程當中,在網內經過物理地址(Mac 地址)由交換機進行數據的傳送。交換機工做在數據鏈路層。
交換機
網線 / 光纖負責發送比特流,提供信息傳送的物理介質。
一樣,網絡中,咱們也能夠把前三層總結到一塊兒,稱爲應用層。把後兩層總結到一塊兒,稱爲數據鏈路接口層或網絡接口層。這樣,就把繁瑣的 OSI 七層結構轉化爲了精簡的 TCP/IP 四層結構。
總結: 應用層——電商平臺(應用軟件中對應的 SMTP,Http,Ftp 等應用層協議)
表示層——木匠(負責數據壓縮、編碼)
會話層——祕書(負責文件發送 / 接收)
傳輸層——快遞公司(EMS——TCP;順豐——UDP)
網絡層——分撥中興(路由器)
數據鏈路層——快遞小哥(交換機)
物理層——司機大哥和交通工具(網線 / 光纖)
不按期更新通訊基礎知識,力求用最生動的語言解釋本來枯燥抽象的概念
歡迎關注~~~
用戶買東西 -> tcp/ip 四層模型
以往文章: 如何跟小白解釋集線器,交換機和路由器的區別?(一切從帝國時代開始)——薛定諤不在家的回答
https://www.zhihu.com/answer/402261894
https://zhuanlan.zhihu.com/p/34131799
https://www.zhihu.com/question/24002080/answer/150830722