在學習網絡的時候有這樣幾個疑惑:
為什么需要抽象出五層模型出來?
難道不是直接在網線(光纖傳輸)中傳輸數據就好了么?大不了到了端點用的是WIFI傳輸(無線信號)。
這兩個問題真的很困惑我,不知道大家有沒有這樣的疑惑?如果有的話,龍叔將為你答疑解惑。如果有其他的疑惑歡迎評論區留言
在回答問題之前我先帶你領略下使用最為廣泛的五層模型,分別是哪五層?各層解決了什么問題?
五層模型是哪五層?
網絡模型
左邊是OSI的七層模型,這模型很牛逼。但是現在基本是存在教科書的啦,學習網絡的同學都是知道有這個模型,實際情況使用很少的。
右邊是TCP/IP五層分層模型。分別是物理層(硬件)、數據鏈路層(網卡層)、網絡層(互聯網層)、傳輸層、應用層。在日常工作中接觸最多的是上兩層,偶爾會去觸碰網絡層。數據鏈路層和物理層不是我們工作范圍。當然如果是一些專門的網絡安全部門,網管(不是網吧的網管)等崗位,下面幾層就是非常熟悉的。
五層模型還是很清楚明了的,每層用到的重要協議都表示在圖中,還表示了操作系統的內核工作范圍和用戶工作范圍。
各層解決了什么問題?
應用層:
應用層是網絡體系架構中的最高層。這意味著什么?想想就知道,最高層就是要和人交互的層次嘛。
應用層是計算機網絡與用戶交互的接口或者界面,直接向用戶提供服務。
提供哪些服務呢?
這個…,就非常多了,比如Web服務、E-mail服務、DNS服務、DHCP服務、FTP服務等等。
所以很明了,應用層解決的問題就是如何為用戶提供服務,以及提供高效、可靠、滿意的服務。如何解決這些問題也就是我們這些攻城獅存在的必要了,根據不同的業務場景用不同的方法解決這些問題。例如使用多線程、協程,高并發的web框架,使用epoll處理模式,分布式處理等等技術來解決提供高效、可靠、滿意的服務。
總結下,應用層是為用戶提供服務接口或者界面,同時要解決服務的高效、可靠、滿意。
傳輸層
負責端到端的通信,是面向網絡通信的低三層和面向信息處理的高三層之間的中間一層,起到橋梁作用。很明顯了,傳輸層解決的問題就是端到端的傳輸問題。
看到這句話肯定很多人有疑問,先別說,繼續看(我知道有人會說,網絡層不是已經把數據轉發到對應的主機了么,為何還要傳輸層?)。
位于兩臺網絡主機間的真正數據通信主體不是這兩臺主機,而是兩臺主機中的各種網絡應用進程,也就是應用程序。一臺主機上有很多應用程序,很多應用程序都在進行網絡通信,這時候就必須使用到傳輸層的知識去解決了。
怎樣完成端到端的傳輸呢?
分為兩個步驟:一是虛擬傳輸連接的建立(此處仍僅針對面向連接的傳輸層協議),二是源端用戶數據沿著傳輸連接傳送到目的端。
在整個數據傳輸過程中,傳輸層服務需要完成以下8個方面的基本功能:傳輸層尋址、傳輸連接建立、數據傳輸、傳輸連接釋放、流量控制、擁塞控制、多路復用和解復用、崩潰恢復。
這里面每個功能都能細說一篇文章,這里就不一一展開了,后面會出系列的文章,所以點關注,不迷路。每個功能都是面試的考點,所以我后面一定會快速更新出來的。
總結下,傳輸層主要是為了解決端到端(這里的端到端指的是進程到進程)的通信,起到網絡通信橋梁作用。
網絡層
網絡層也被稱為中轉層,是網絡體系結構中非常重要的一層,在技術上又是非常復雜的一層,因為它既要解決不同網絡的節點間通信的路由和協議識別問題,又要通過路由選擇策略解決網絡擁塞問題,盡可能提高網絡通信的可靠性。
網絡層解決的主要問題是,從A主機把數據運送到B主機是走高速呢、飛機呢、還是火車呢或者是多種混合的方案呢。一句話就是,網絡層關注的是如何將分組從源端沿著網絡路徑傳送到目的端(這個端指的是主機不是應用程序)。
為了實現這個目標,網絡層必須知道通信子網的拓撲結構,并且在拓撲結構中選擇適當的路徑。同時網絡層還必須謹慎地選擇路由路徑,以避免發生某些通信線路和路由器負載過重,而其他線路和路由器空閑的情形。
總結下,網絡層主要是為了解決不同網絡之間數據傳輸和轉發問題。
數據鏈路層
物理層中也有許多規程或協議,但它們是用來構建物理傳輸線路、建立物理意義的網絡通信,不是用來控制數據傳輸的。
設計數據鏈路層的主要解決的問題就是在原始的、有差錯的物理傳輸線路的基礎上,采取差錯檢測、差錯控制與流量控制等方法,將有差錯的物理線路改進成邏輯上無差錯的數據鏈路,以便向它的上一層(網絡層)提供高質量的服務。一句話總結就是控制數據傳輸。
總結下,數據鏈路層是為了解決數據傳輸的控制作用。
物理層
物理層位于各計算機網絡體系結構的最底層,主要負責在物理介質上為數據鏈路層提供原始比特流傳輸的物理鏈接。
物理層解決的問題就是數據傳輸。上面的所有層都是封裝數據和管理,物理層是傳輸數據的唯一出口,所有數據到達物理層都會變成二進制的載波信號。
總結下,物理層就是真正傳輸數據。
為什么不是直接在物理線路中進行通信就行了?而是搞出這么多層網絡模型呢?
我覺得在學習計算機網絡時能思考這個問題的都是非常的人,比如龍叔我。
物理層是物理線路的抽象,物理層解決的主要問題傳輸就是數據傳輸,也是網絡通信中唯一的數據傳輸出口。其實物理層就相當于日常交通網絡中的各種道路,如公路、鐵路和航線,它們是我們出門旅行必須要依靠的基礎設施。
但是物理層不是針對具體的傳輸介質、設備和通信協議的,因為它們可以有許多種選擇(如傳輸介質中就可以有同軸電纜、雙絞線和光纖等),只要能實現物理層的某種功能就行了。不同的傳輸介質和設備選擇,必須要有對應的通信協議支持,而且這也決定了不同的選擇有不同的物理層性能。
就像路有好多種一樣,如有泥巴路、沙子路、水泥路、柏油馬路、普通鐵路、高速鐵路等,這些不同的路可以承載的重量和速率都不一樣。
傳輸介質不同,各種傳輸介質傳輸速率不同;所有人都在進行傳輸,怎么管理這些人;高鐵、航線不可能通到家門口;就算到了家門口怎么把這些數據完整交付給家中的某個人呢;
所以就必須抽象出這些層來解決這些問題。物理層專門做數據傳輸(好比基礎交通設施)、數據鏈路層制定傳輸規則(好比交通規則)、網絡層把各個交通線路連接起來(就好比各個交通樞紐站)、傳輸層是端到端的符數據通信(好比把快遞小哥把包裹移交到你的手里)、應用層負責提供服務(好比包裹到你手里了,你在享受包裹里面的禮物)。
是不是有些明白為啥需要抽象出多層了,是的。
想想都知道要是光有物理層那網絡通信沒法玩了,數據都是二進制,透明傳輸,數據還有可能亂序,丟數據,數據被篡改等等問題。
計算機網絡通信過程圖
本文講清楚了文章開頭的幾個疑惑,至于各層中詳細的功能和面試常考的點,篇幅有限,我和大家一起期待下一篇文章。關注我,精彩內容不錯過,微信搜索龍躍十二即可關注。
覺得本篇文章對你有幫助,非常感謝你能幫我點個贊,你的小小鼓勵會成為我創作的動力。
-
WIFI
+關注
關注
81文章
5290瀏覽量
203313 -
計算機網絡
+關注
關注
3文章
336瀏覽量
22123
發布評論請先 登錄
相關推薦
評論