http協議:二 (5) 常說的“四層”和“七層”到底是什么?“五層”“六層”哪去了?


 

第一層:物理層,TCP/IP 里無對應;

第二層:數據鏈路層,對應 TCP/IP 的鏈接層;

第三層:網絡層,對應 TCP/IP 的網際層;

第四層:傳輸層,對應 TCP/IP 的傳輸層;

第五、六、七層:統一對應到 TCP/IP 的應用層。

 OSI 的分層模型在四層以上分的太細,而 TCP/IP 實際應用時的會話管理、編碼轉換、壓縮等和具體應用經常聯系的很緊密,很難分開。例如,HTTP 協議就同時包含了連接管理和數據格式定義。

 

“四層負載均衡”就是指工作在傳輸層上,基於 TCP/IP 協議的特性,例如 IP 地址、端口號等實現對后端服務器的負載均衡。

“七層負載均衡”就是指工作在應用層上,看到的是 HTTP 協議,解析 HTTP 報文里的 URI、主機名、資源類型等數據,再用適當的策略轉發給后端服務器。

 

TCP/IP 分為四層,核心是二層的 IP 和三層的 TCP,HTTP 在第四層;

OSI 分為七層,基本對應 TCP/IP,TCP 在第四層,HTTP 在第七層;

OSI 可以映射到 TCP/IP,但這期間一、五、六層消失了;

日常交流的時候我們通常使用 OSI 模型,用四層、七層等術語;

 

HTTP 利用 TCP/IP 協議棧逐層打包再拆包,實現了數據傳輸,但下面的細節並不可見。

有一個辨別四層和七層比較好的(但不是絕對的)小竅門,“兩個凡是”:凡是由操作系統負責處理的就是四層或四層以下,否則,凡是需要由應用程序(也就是你自己寫代碼)負責處理的就是七層

Unix的域套接字可以認為是在osi的第五層

1、鏈接層 link layer ,負責在底層網絡上發送原始數據包,使用MAC地址來標記網絡上的設備,所以也叫MAC層
2、網際層 internet layer,IP協議所在層,在鏈接層的基礎上,用IP地址取代MAC地址,把許多局域/廣域網連接成虛擬的巨大網絡,在這個網絡里找設備時只要把IP地址再翻譯成MAC地址就可以
3、傳輸層 transport layer,TCP、UDP協議所在層,這個層次協議的職責是保證數據在IP地址標記的兩點之間可靠地傳輸。
4、TCP和UDP區別:
    TCP 有狀態 需要先建立連接才能發送數據 保證數據不丟失不重復 數據是連續的字節流,有先后順序
    UDP 無狀態 不需要先建立連接也可以發送數據 不保證數據一定會發送到對方 數據是分散的小數據包,順序發、亂序收
5、應用層 application layer,Telnet、SSH、FTP、SMTP、HTTP
6、MAC層的傳輸單位是幀(frame),IP層的傳輸單位是包(packet),TCP層的傳輸單位是段(segment),HTTP的傳輸單位是消息或報文(message)。統稱為數據包

問題

解釋一下“二層轉發”“三層路由”嗎?

二層轉發:二層應該指數據鏈路層,工作在二層的設備,通過查找到目標MAC地址,進行數據轉發
三層路由:三層應該指網絡層,工作在三層的設備,通過解析數據包頭信息,找到目標IP地址,轉發數據

 

DNS 協議位於哪一層呢?

應用層

 

你認為 CDN 工作在那一層呢?

應用層

 

ip層可以找到對方的ip 並路由,為什么還要用到mac轉發數據呢


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM