面經-計算機網絡——OSI七層模型與TCP/IP四層模型的對比詳解

OSI七層模型與TCP/IP四層模型的對比詳解


一、圖示解析:分層封裝結構

你提供的圖清晰展示了網絡通信中從應用層到物理層的封裝過程,每一層都會對上層的數據加上自己的頭部信息(Header):

應用層:      應用數據
傳輸層:   TCP頭 + 應用數據
網絡層:   IP頭 + TCP頭 + 應用數據
鏈路層: 幀頭 + IP頭 + TCP頭 + 應用數據 + 幀尾

這一過程也叫做封裝(Encapsulation),反過來在接收端進行解封裝(Decapsulation)


二、OSI與TCP/IP模型結構

1. OSI七層模型

層級名稱功能簡述示例協議
7應用層提供用戶接口和網絡服務HTTP、FTP、DNS
6表示層數據編碼、加密、解密、壓縮JPEG、ASCII
5會話層建立、管理、終止會話RPC、NFS
4傳輸層提供端到端可靠或不可靠的傳輸TCP、UDP
3網絡層路由、邏輯尋址IP、ARP、ICMP
2數據鏈路層在物理層提供可靠傳輸,組幀、差錯檢測PPP、MAC、VLAN
1物理層比特傳輸、電壓、接頭類型等物理特性RJ45、光纖、CLOCK

2. TCP/IP四層模型

層級名稱功能簡述示例協議
4應用層綜合會話層、表示層、應用層,提供各種網絡服務HTTP、FTP、DNS、SMTP
3傳輸層提供端到端連接TCP、UDP
2網絡層選擇路由、邏輯尋址IP、ICMP、ARP
1網絡接口層物理設備驅動、幀傳輸以太網、幀中繼、PPP協議

3. 對應關系圖表

OSI模型TCP/IP模型
應用層 + 表示層 + 會話層應用層
傳輸層傳輸層
網絡層網絡層
數據鏈路層 + 物理層網絡接口層

三、典型網絡模型總結

  • OSI七層模型:理論清晰,教學中常用。
  • TCP/IP四層模型:實現主流,更貼近實際互聯網通信協議棧。

四、每層代表協議匯總

OSI七層模型協議示例:

  1. 物理層:CLOCK、RJ45、IEEE 802.3
  2. 數據鏈路層:MAC、VLAN、PPP
  3. 網絡層:IP、ARP、ICMP
  4. 傳輸層:TCP、UDP
  5. 會話層:RPC、NFS
  6. 表示層:JPEG、ASCII
  7. 應用層:FTP、HTTP、DNS

TCP/IP四層模型協議示例:

  1. 應用層:HTTP、FTP、SMTP、DNS
  2. 傳輸層:TCP、UDP
  3. 網絡層:IP、ICMP、ARP
  4. 網絡接口層:以太網協議、PPP、幀中繼

五、從百度搜索看網絡各層的作用

使用百度搜索,涉及的網絡層級如下:

網絡層級涉及協議功能
應用層HTTP、HTTPS、DNS提供服務(如網頁瀏覽、域名解析)
傳輸層TCP、UDP提供可靠或快速傳輸
網絡層IP、ARP、ICMP路由與地址解析
數據鏈路層MAC、以太網協議物理地址傳輸,組幀
物理層RJ45、光纖等比特級傳輸,電信號

示例流程:輸入baidu.com并訪問網頁

  1. DNS域名解析(應用層) → 瀏覽器要將URL解析為IP地址,DNS服務器使用UDP解析域名,DNS服 務器是基于UDP的,因此會用到UDP協議
  2. HTTP發起連接(應用層) → 使用TCP建立連接并發送請求,http協議報文格式上面已經提到。http生成一個get請求報文,將該報文傳給TCP層處理,所以還會用到TCP協議。如果采用https還會使用https協議先對http數據進行加密。
  3. IP尋址(網絡層) → 查找目標服務器的IP地址
  4. ARP解析MAC地址(網絡層 & 數據鏈路層) → 獲取本地網關MAC地址
  5. 以太網封裝(數據鏈路層) → 封裝幀數據,發送到物理層
  6. 比特傳輸(物理層) → 比特流通過電纜/光纖傳輸

六,TCP/IP數據鏈路層的交互過程是怎么樣的?

網絡層等在數據鏈路層用MAC地址作為通信目標,數據包到達網絡層等往數據鏈路層發送的時候,首先回去ARP緩存表去查找ip對應的MAC地址,如果查到了,就將此ip對應的MAC地址封裝到鏈路層數據包的包頭。如果緩存中沒有找到,則會發起一個廣播,who is ip xxx tell ip xxxx,所有收到廣播的機器看到這個ip是不是自己的,如果是自己的,則以單播的形式將自己的mac地址回復給請求機器。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/79358.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/79358.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/79358.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

React Native本地存儲方案總結

1. AsyncStorage(鍵值對存儲) 適用場景:簡單鍵值對存儲(如用戶配置、Token、緩存數據)。特點:異步、輕量、API 簡單,但性能一般,不推薦存儲大量數據。安裝:npm install …

Arduino程序函數詳解與實際案例

一、Arduino程序的核心架構與函數解析 Arduino程序的核心由兩個函數構成:setup() 和 loop()。這兩個函數是所有Arduino代碼的骨架,它們的合理使用決定了程序的結構和功能。 1.1 setup() 函數:初始化階段 setup() 函數在程序啟動時僅執行一次,用于完成初始化配置,例如設置…

【Unity】使用Socket建立客戶端和服務端并進行通信的例子

Socket服務端: using System; using System.Collections.Generic; using System.Net; using System.Net.Sockets; using System.Text; using System.Threading; public class SocketServer { public static Socket listenSocket;//監聽Socket public static List<Socket>…

Qt connect第五個參數

在 Qt 中&#xff0c;QObject::connect 函數的第五個參數用于指定 連接類型&#xff08;Qt::ConnectionType&#xff09;&#xff0c;它決定了信號與槽之間的通信方式。以下是各枚舉值的詳解及使用場景&#xff1a; 1. Qt::AutoConnection&#xff08;默認值&#xff09; 行為…

【2025域適應科研日報】

本筆記主要為了記錄自己的科研日報&#xff0c;前段時間剛開始想寫的初衷也是為了自己的思考不跑偏&#xff0c;但是有幾天又沒有堅持下來&#xff0c;看到一位學長的文章&#xff0c;發現這種形式還是很有必要的&#xff0c;所以自己也打算堅持記錄下來&#xff0c;由于還正在…

XrayR啟動失敗

公司要用服務器之間進行數據加密&#xff0c;這里用的XrayR 我使用的Centos 7。 我這里使用一鍵腳本安裝后&#xff0c;/etc/XrayR目錄下沒有配置文件。 解決方案 XrayR安裝時&#xff0c;系統沒有unzip工具&#xff0c;也是會安裝失敗的&#xff0c;因為Centos7已經停止維…

鴻蒙文件上傳-從前端到后端詳解,對比jq請求和鴻蒙arkts請求區別,對比new FormData()和鴻蒙arktsrequest.uploadFile

需要權限&#xff1a;ohos.permission.INTERNET 1.nodejs自定義書寫上傳后端接口 傳輸過來的數據放在files?.image下 router.post(/upload,(req, res) > {var form new multiparty.Form();form.uploadDirpublic/images/uploads; //上傳圖片保存的地址(目錄必須存在)fo…

編寫教育網站后端頁面筆記

callbacktitle.html 對應表: 對應的功能: 控制器層數據: 頁面沒有寫內容 chapter.html 對應表: questionbank ,intofloortime,questionBank,title,didtitles,option,answer,analyse 對應的功能:問題反饋頁面 控制器層數據(控制器類): ChapterQuestionbankTitle c…

日常開發小Tips:后端返回帶顏色的字段給前端

一般來說&#xff0c;展示給用戶的字體格式&#xff0c;都是由前端控制&#xff0c;展現給用戶&#xff1b; 但是當要表示某些字段的數據為異常數據&#xff0c;或者將一些關鍵信息以不同顏色的形式呈現給用戶時&#xff0c;而前端又不好判斷&#xff0c;那么就可以由后端來控…

用spring-boot-maven-plugin打包成單個jar有哪些缺點優化方案

Spring Boot 的 Fat JAR&#xff08;通過 spring-boot-maven-plugin 打包&#xff09;雖然簡化了部署&#xff0c;但也存在一些潛在缺點&#xff0c;需根據場景權衡&#xff1a; 1. 啟動速度較慢 原因&#xff1a; Fat JAR 需要在啟動時解壓并加載所有依賴的 JAR 文件到類路徑…

Flowable7.x學習筆記(十五)動態指定用戶分配參數啟動工作流程

前言 得益于之前我們的基礎工程準備&#xff0c;我們終于可以正式啟動工作流程了&#xff0c;在啟動之前我們需要分配一下每個用戶任務的用戶信息&#xff0c;其中有三個選擇&#xff1a;【辦理人】/【候選組】/【候選用戶】&#xff0c;我們需要將系統中的用戶ID填入作為固定參…

力扣hot100——98.驗證二叉搜索樹

題目鏈接&#xff1a;98. 驗證二叉搜索樹 - 力扣&#xff08;LeetCode&#xff09; 首先列舉一個錯誤代碼 class Solution { public:bool isValidBST(TreeNode* root) {if(rootnullptr) return true;if(root->right){if(root->right->val<root->val) return f…

數據結構學習之順序表

在C語言學習到一定階段之后&#xff0c;接下來我們就進入到了數據結構的部分內容。 目錄 數據結構與線性表 順序表 順序表分類&#xff1a; 接下來我們要寫一段代碼實現動態順序表。 首先我們需要準備三個文件&#xff1a; 1.接下來我們要定義一個數據表 2.當創建號我們的…

C# wpf

學習網址&#xff1a;控件的父類們 - WPF中文網 - 從小白到大佬 控件的父類&#xff1a; 由此我們可以得出結論&#xff0c;控件的父類們(準確的說&#xff0c;應該叫父類的父類的父類)&#xff0c;至少有如下幾個類型&#xff1a; DispatcherObjectDependencyObjectVisualU…

JavaEE-多線程實戰02

接上 多線程編程實戰01 第三個多線程程序 package thread.test;//定義了一個叫MyThread3的類&#xff0c;實現了Runable接口,所以它必須重寫run()方法 class MyThread3 implements Runnable {Overridepublic void run() {//線程執行的具體內容//進入一個無限循環&#xff0c;…

【無報錯,親測有效】如何在Windows和Linux系統中查看MySQL版本

如何在Windows和Linux系統中查看MySQL版本 MySQL作為最流行的開源關系型數據庫管理系統之一&#xff0c;了解如何查看其版本信息對于開發者和數據庫管理員來說是常用的一個基本操作。本文將詳細介紹在Windows和Linux系統中查看MySQL版本的方法。 文章目錄 如何在Windows和Linu…

數字智慧方案5961丨智慧能源與運維云平臺解決方案(52頁PPT)(文末有下載方式)

詳細資料請看本解讀文章的最后內容。 資料解讀&#xff1a;智慧能源與運維云平臺解決方案 在當今數字化時代&#xff0c;能源管理與設備運維的智能化、高效化成為企業發展的關鍵。智慧能源與運維云平臺解決方案應運而生&#xff0c;為企業提供了全面且先進的能源管理和運維手段…

Qt指南針

Qt寫的指南針demo. 運行結果 滑動調整指針角度 實現代碼 h文件 #ifndef COMPASS_H #define COMPASS_H#include <QWidget> #include <QColor>class Compass : public QWidget {Q_OBJECT// 可自定義屬性Q_PROPERTY(QColor backgroundColor READ backgroundColor WRI…

北大新媒體運營黃金提示詞 | 北大Deepseek系列第七彈《DeepSeek與新媒體運營》,13所大學系列一站下載

今天大師兄給大家推薦的是北京大學Deepseek系列第七彈《DeepSeek與新媒體運營》。 本文檔系統介紹了DeepSeek模型在新媒體運營中的應用&#xff0c;技術原理、實踐案例及行業挑戰。 適用人群&#xff1a;新媒體運營人員、AI研究者、企業決策者。 思維導圖 napkin生成 《老…

2025年真實面試問題匯總(一)

Spingboot中如何實現有些類是否加載 在 Spring Boot 中可以通過 條件化配置&#xff08;Conditional Configuration&#xff09; 來控制某些類是否加載。Spring Boot 提供了一系列 Conditional 注解&#xff0c;允許根據特定條件動態決定 Bean 或配置類是否生效。以下是常見的…