網路是七層、五層還是四層?
你大體上有這麼兩種選擇:
應用程式包辦一切。程式把應用層的資料,按某種編碼轉化為二進位制資料,然後程式去操控網路卡,
把二進位制資料傳送到網路上。
這期間,通訊的連線方式、傳輸的可靠性、速度和效率的保證等等,都需要這個程式去實現。
然後下次開發另外一個應用的時候,就把上面這些活,再幹一遍。
應用程式、作業系統、網路裝置等環節各自分工。
應用程式只負責實現應用層的業務邏輯,作業系統負責連線的建立、處理網路擁塞和丟包亂序、最佳化網路讀寫速度等等,
然後把資料交給網路卡,後者和交換機等裝置做好聯動,負責二進位制資料在物理線路上的傳送和接收。
那麼顯然,第一種大包大攬的方式,實現難度太大、耦合度太高,怎麼看都是一個“反面典型”。
所以,我們應該選擇第二種,也就是分層的方式去實現。
你有沒有發現,其實這個思路,跟程式設計的思想是類似的。
在程式設計中,我們需要把一些邏輯抽象為函式或者物件,以實現更好的解耦和複用。
在網路世界裡也是如此,每一層幹好自己的分內事,那麼所有的層次配合起來工作的時候,就顯得有條不紊了。
說到具體的分層模型,你應該會想到兩種比較有名的方案。
對,它們就是 OSI 的七層模型,和 TCP/IP 的四層 / 五層模型。
這兩種模型的最大區別,就是前者在傳輸層和應用層之間,還有會話層和表示層,而後者沒有。
我們來看一下示意圖:
那在這裡,你可能還會想:這兩種模型哪種用得最多,或者說,哪種更合理呢?
其實我覺得倒不用過於糾結在“誰比誰更好”這個點上,如果我們理解了每一層的作用, 那麼就不會被表象上的層級所束縛了。
事實上,兩種分法都有可取之處。
一般來說,七層模型在我們工作當中談論得更多些。比如,我的同事會找過來說“你幫我 建一個七層規則吧”。
這裡的七層,就是指應用層,他說的“七層規則”呢,可能是 HTTP 路由規則,比如把符合某種條件的 HTTP 請求,
分流到某個特定的後端叢集。
還有一些場景,也是比較適合用七層模型來解釋的。比如,TLS 雖然在 TCP 之上,按 TCP/IP 模型就要被歸入應用層。
但事實上,在 HTTPS 的場景下,HTTP 協議就是執行在 TLS 協議之上的,那麼是不是把 HTTP 和 TLS 分到不同的層次更合適呢?正好在七層模型 裡,第五層和第六層,可以分別代表 TLS 的會話保持功能和資料加解密這種表示層的功 能。
不過,會話層和表示層的協議確實比較少。
從控制模型複雜度的角度來看,如果把這兩層 都合併到應用層,那麼模型倒是比較簡單,也適合入門學習的。
所以從這一點上看, TCP/IP 模型也有可取之處。 這裡你可能稍有疑問,為什麼 TCP/IP 還有四層和五層模型這兩種說法呢?
其實五層模型就 是 OSI 的前四層,加上一個應用層。
這樣的話,這個五層模型跟 OSI 七層模型,差異就比四層模型又縮小了一點。
所以,你現在應該明白了,兩種分層模型的最大差異,其實還是在會話層和表示層上面。
第一到第四層,已經基本統一了。
而它們的最高層,雖然一個叫第七層,一個叫第四層或 者第五層,表面上雖然並不一致,但實際上都可以用“應用層”來代替。
這樣既避免了可 能的誤解,也更加準確地表示了這一層的具體用途。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29990276/viewspace-2917372/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 網路的四層五層七層網路
- 計算機網路的七層結構、五層結構和四層結構計算機網路
- 網路七層模型(四層模型)及其區別模型
- 網路七層模型與四層模型區別模型
- 網路知識梳理--OSI七層網路與TCP/IP五層網路架構及二層/三層網路TCP架構
- OSI七層與TCP/IP五層網路架構詳解TCP架構
- 網路七層協議之物理層協議
- 七層網路模型模型
- 計算機網路基礎-三種網路模型(OSI七層模型 TPC/IP四層模型 五層模型)的關係計算機網路模型
- 強人工智慧基本問題:神經網路分層還是不分層人工智慧神經網路
- OSI七層模型與TCP/IP五層模型TCP
- OSI七層網路模型模型
- 網路七層協議協議
- 四層/七層負載均衡裝置(-)負載
- 四層反向代理和七層反向代理
- OSI 七層模型與 TCP IP 五層模型模型TCP
- OSI七層模型與TCP/IP五層模型模型TCP
- 深入分析四層/七層閘道器
- 9、如何理解應用層、傳輸層、網路層、鏈路層、物理層
- 四層和七層負載均衡的區別負載
- 四層與七層負載均衡的區別負載
- 三層網路結構(核心層、匯聚層 、接入層)
- OSI七層網路協議 、TCP協議TCP
- 大白話聊OSI七層模型和TCP/IP四層模型模型TCP
- 第四章 網路層
- 計算機網路七層協議計算機網路協議
- OSI七層網路結構詳解
- 網路世界的脊柱——OSI七層模型模型
- 你是網路推廣的哪個層次?
- 網路七層結構是幹啥的? 看這篇文章就夠了
- 【知識分享】四層負載均衡和七層負載均衡負載
- 簡述OSI七個層次與TCP/IP四個層次TCP
- 2013/11/22工作隨筆-快取是放在Model層還是放在Controller層快取Controller
- Service 層異常拋到 Controller 層處理還是直接處理?Controller
- 計算機網路(四)傳輸層計算機網路
- 請簡述OSI七層網路模型有哪些層及各自的含義?模型
- Dubbo系列之 (七)網路層那些事(2)
- 請問一下:這種實現應該放在EJB層還是WEB層Web