
第一層:物理層,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轉發數據呢
