【網絡原理】TCP/IP協議五層模型

目錄

一. 協議的分層

二. OSI七層網絡協議

三. TCP/IP五層網絡協議

四. 網絡設備所在分層

五. 封裝

六. 分用

七. 傳輸中的封裝和分用

?八. 數據單位術語


一. 協議的分層

常見的分層為兩種OSI七層模型和TCP/IP五層模型

為什么要協議分層?

在網絡通信中,存在設計很多的細節和規則,如果這些規則依靠一個協議來說明,那么這個協議肯定會非常的復雜,如果把這一份協議根據某種要求分割成多個小份協議,為了讓這些小份協議更好的相互配合,于是就引出了協議分層(上層調用下層提供的功能,下層為上次提供服務)的概念

協議分層的好處

  • 上層協議直接調用下層協議提供的接口即可,不需要了解下層協議具體的實現細節
  • 某一層協議被替換掉后,不會對其他層造成影響

參考打電話,1.只需要會說漢語就可以打電話,不需要知道電話是如何工作的? 2.電話從無線電話變成有線電話,對你打電話沒有任何的影響

二. OSI七層網絡協議

?OSI七層網絡協議將網絡分為七層:應用層,表示層,會話層,傳輸層,網絡層,數據鏈路層,物理層

  • 應用層:提供應用程序之間的通信服務(電子郵件——電子郵件協議)
  • 表示層:負責數據的格式化和轉換
  • 會話層:負責建立、管理和終止會話
  • 傳輸層:負責數據(起點和終點)兩個節點之間的數據傳輸(端到端的傳輸)
  • 網絡層:負責起點和終點之間的道路(路徑規劃)
  • 數據鏈路層:負責兩個相鄰節點之間的通信
  • 物理層:負責在一條物理通信線路上傳輸比特

這是最初設計的七層網絡協議,后來在實施的過程中,發現太麻煩了,于是進行了簡化,現在最常用的是TCP/IP五層網絡協議

三. TCP/IP五層網絡協議

?TCP/IP五層網絡協議將網絡分為了五層:應用層,傳輸層,網絡層,數據鏈路層,物理層

  • 應用層:明白數據要用來干什么,實現什么功能 (安排數據在應用程序中如何使用)
  • 傳輸層:負責數據(起點和終點)兩個節點之間的數據傳輸(端到端的傳輸)
  • 網絡層:負責起點和終點之間的道路(路徑規劃)
  • 數據鏈路層:負責兩個相鄰節點之間的通信
  • 物理層:負責在一條物理通信線路上傳輸比特

對于程序員來說,下面四層已經被操作系統內核和硬件實現好了,程序員只需要關注傳輸層提供的接口調用和具體代碼要實現怎么樣的功能即可


四. 網絡設備所在分層

設備工作層級核心功能
中繼器、集線器物理層放大電信號、擴展物理傳輸距離,廣播信號
網橋、交換機數據鏈路層基于 MAC 地址轉發數據幀,隔離沖突域(網橋)或提供高效局域網通信(交換機)。
路由器網絡層基于 IP 地址路由數據包,連接不同網絡,選擇最優路徑。
負載均衡器傳輸層分配流量、提高系統可用性和性能,處理TCP/UDP數據段
網關應用層用于連接不同類型的網絡,處理應用層協議轉換

?事實上,很多的交換機和路由器功能更強大,更復雜,交換機具有路由器的一些功能(可以工作在網絡層),路由器也具有交換機的一些功能(可以工作在數據鏈路層)


五. 封裝

發送方發送數據,當數據從應用層傳遞到物理層時(從上到下),每一層都會在數據上添加自己的協議頭(或尾),形成新的數據單元。

1)應用層

  • 應用層使用應用層協議,將用戶的數據封裝成應用層數據單元
  • 應用程序調用操作系統提供的API,將這個數據單元交給傳輸層
  • 應用層主要使用的協議:HTTP協議,HTTPS協議,根據實際情況自己定義協議

2)傳輸層

  • 傳輸層使用傳輸層協議,將應用層數據單元添加TCP/UDP報頭封裝成TCP/UDP數據報
  • 下層(網絡層)提供API,傳輸層調用API將數據報傳給網絡層,這樣下層就可以處理這個數據
  • 傳輸層主要使用的協議:UDP協議和TCP協議

3)網絡層

  • ?網絡層使用IP協議,將TCP/UDP數據報添加IP報頭并封裝成IP數據包
  • 下層(數據鏈路層)提供API,網絡層調用下層API將IP數據包傳給下層,這樣數據鏈路層就可以處理數據
  • 網絡層主要使用的協議:IP協議

4)數據鏈路層

  • ?數據鏈路層使用以太網協議,將IP數據報添加以太網幀頭和幀尾并封裝成以太網數據幀
  • 下層(物理層)提供API,數據鏈路層調用API將以太網數據幀傳給下層,這樣物理層可以處理數據
  • 數據鏈路層主要使用的協議:以太網協議

5)物理層?

  • ?將以太網數據幀,二進制結構的數據轉換成光信號/電信號/電磁波,然后進行發送?

添加報頭的過程就是封裝,報頭雖然起不到保護數據的操作,但是可以承載一些關鍵信息用來轉發數據信息??

上述這些一系列的操作,數據從你的電腦發送了出去(剛出家門),具體路上怎么走的,我們不管,假設數據到接收端了,數據怎么處理,處理的過程就是分用

六. 分用

1)物理層

  • ?將接受到的光信號/電信號/電磁波信號,這些物理信號轉換成數字信號(二進制信號)
  • 調用上層協議提供的API,將這些數據傳輸給上層, 這樣數據鏈路層就可以處理數據

2)數據鏈路層

  • 得到下層傳來的二進制數據,根據以太網協議,按照以太網數據幀的格式對二進制數據進行解析,去除幀頭和幀尾,取出其中的載荷部分
  • 通過調用上層(網絡層)提供的API,將載荷部分交給上層協議,網絡層就可以處理數據

3)網絡層

  • 得到下層傳來的IP數據包,根據IP協議,按照IP數據包的格式進行解析,去除IP報頭,取出載荷部分
  • 通過調用上層(傳輸層)提供的API,將載荷部分交給上層,傳輸層就可以處理數據

4)傳輸層

????

  • ?得到下層傳來的UDP數據報,根據UDP協議,按照UDP數據報的格式進行解析,去除UDP報頭,取出其中的載荷部分
  • 通過調用上層(應用層)提供的API,將載荷部分交給上層,應用層就可以處理數據

5)應用層

  • ?得到下層傳來的數據,按照應用層協議,根據對應的格式來解析數據,得到這些數據后,根據自己要實現的功能來處理這些數據

七. 傳輸中的封裝和分用

在現實情況中,兩臺主機一般不是通過網線直連的?,而是通過一系列的交換機或者路由器進行網絡傳輸

  • 在經過交換機或者路由器的過程中,也需要進行封裝和分用的過程
  • 在封裝和分用的過程中,得到載荷部分和關鍵信息
  • 由于網絡設備的不同,導致分層的程度也不同

1)交換機

?如果是交換機,則封裝分用到數據鏈路層

  1. 物理層得到光電信號,將光電信號轉換成二進制數據,交給數據鏈路層
  2. 交換機的數據鏈路層會對得到太網數據幀進行解析,

(1)取出載荷部分(2)解析幀頭中的關鍵信息

根據幀頭中的關鍵信息,決定數據往哪里發送,再進一步構建出新的以太網數據幀

?將這個新的以太網數據幀通過物理層發送出去

2)路由器?

?如果是路由器,則封裝分用到網絡層

  1. 物理層得到光電信號,將光電信號轉換成二進制數據,交給數據鏈路層
  2. 數據鏈路層得到以太網數據幀,根據數據幀拿到載荷,將載荷(IP數據包)交給網絡層
  3. 網絡層得到IP數據包,網絡層將會對IP數據包進行解析

(1)取出載荷部分(2)解析幀頭中的關鍵信息

根據報頭中的關鍵信息,決定數據往哪里發送,再進一步構建出新的IP數據包

將這個新的IP數據包交給數據鏈路層(加上幀頭幀尾),再交給物理層(二進制數據轉換成光電信號)繼續傳輸


?八. 數據單位術語

?常見的單位有:包(packet)段(segment)報(datagram)幀(frame)

?IP數據包,TCP數據段,UDP數據報,以太網數據幀


?點贊的寶子今晚自動觸發「躺贏錦鯉」buff!

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

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

相關文章

科技快訊 | 阿里云百煉MCP服務上線;英偉達官宣:CUDA 工具鏈將全面原生支持 Python

李飛飛團隊最新AI報告:中美模型性能差距近乎持平 4月8日,斯坦福大學以人為本人工智能研究所發布《2025年人工智能指數報告》。報告顯示,2023年AI性能顯著提升,AI應用加速,投資增長,中美AI模型差距縮小。報告…

貓咪如廁檢測與分類識別系統系列【三】融合yolov11目標檢測

? 前情提要 家里養了三只貓咪,其中一只布偶貓經常出入廁所。但因為平時忙于學業,沒法時刻關注牠的行為。我知道貓咪的如廁頻率和時長與健康狀況密切相關,頻繁如廁可能是泌尿問題,停留過久也可能是便秘或不適。為了更科學地了解牠…

2025年燃氣證書:傳承與發展的行業紐帶

回溯歷史長河,能源的利用與人類文明的發展息息相關。從遠古時期的鉆木取火,到如今廣泛應用的燃氣能源,每一次能源的變革都推動著社會的巨大進步。而在現代燃氣行業蓬勃發展的背后,燃氣從業人員資格證書正扮演著傳承與發展的重要紐…

在Ubuntu下進行單片機開發是否需要關閉Secure Boot

1. Secure Boot的作用 功能:Secure Boot是UEFI的安全功能,旨在阻止未經驗證的驅動或操作系統啟動,防止惡意軟件篡改引導過程。 影響范圍:它主要限制的是操作系統啟動階段加載的內核級驅動(如顯卡驅動、虛擬化模塊&…

國達陶瓷重磅推出陶瓷羅馬柱外墻整裝尖端新產品“冠巖臻石”

近日,記者在佛山國達建材有限公司(以下簡稱國達陶瓷)董事長楊建平處了解到,該公司重磅推出的“冠巖臻石”新產品,是屬于陶瓷羅馬柱外墻整裝產品中的尖端產品。新產品自面市之后,深受高端用戶的青睞與認可。…

【分享】Ftrans文件擺渡系統:既保障傳輸安全,又提供強集成支持

【分享】Ftrans文件擺渡系統:既保障傳輸安全,又提供強集成支持! 在數字化浪潮中,企業對數據安全愈發重視,網絡隔離成為保護核心數據的關鍵防線,比如隔離成研發網-辦公網、生產網-測試網、內網-外網等。網絡…

實驗一 字符串匹配實驗

一、實驗目的 1.熟悉匯編語言編程環境和DEBUG調試程序的使用。 2.掌握鍵盤輸入字符串的方法和分支程序的設計。 二、實驗內容 編程實現:從鍵盤分別輸入兩個字符串,然后進行比較,若兩個字符串的長度…

添加登錄和注冊功能

先寫前端再寫后端 前提&#xff1a;ideavue3mybatisspringBoot3前后端分離實現對一張表的增刪改查&#xff08;完整代碼版&#xff09;-CSDN博客 項目地址 1.添加一個Login.vue視圖 <template><div class"login_container"><div class"login…

【Windows】系統安全移除移動存儲設備指南:告別「設備被占用」彈窗

Windows系統安全移除移動存儲設備指南&#xff1a;告別「設備被占用」彈窗 解決移動硬盤和U盤正在被占用無法彈出 一、問題背景 使用Windows系統時&#xff0c;經常遇到移動硬盤/U盤彈出失敗提示「設備正在使用中」&#xff0c;即使已關閉所有可見程序。本文將系統梳理已驗證…

Springboot下載文件, 文件名中文是亂碼, 空格變加號

默認把文件名放上去, 中文會亂碼, 文件名種有空格, 就會被截斷 public void download(HttpServletResponse response){// 文件名先進行url編碼, 避免亂碼問題// 把用%20進行替換fileName URLEncoder.encode(fileName, "UTF-8").replace("", "%20&qu…

MySQL 超詳細安裝教程與常見問題解決方案

一、MySQL 安裝教程 1. Windows 系統安裝&#xff08;以 MySQL 8.0 為例&#xff09; 步驟 1&#xff1a;下載 MySQL Installer 訪問 MySQL 官網下載頁面。 選擇 Windows (x86, 64-bit), MSI Installer&#xff08;推薦使用完整版 mysql-installer-web-community-8.0.xx.xx.…

【cuda學習日記】5.2.1 共享內存額外篇

共享內存(Shared Memory) 1.是一種低延遲、高帶寬的片上內存 2.由同一個Block內的所有線程共享 3.生命周期與Block相同 4.訪問速度比全局內存快約100倍 Block(線程塊) 1.GPU執行的基本單位&#xff0c;包含一組線程 2.多個Block組成Grid(網格) 3.Block內的線程可以通過共享內存…

[250411] Meta 發布 Llama 4 系列 AI 模型 | Rust 1.86 引入重大語言特性

目錄 Llama 4 家族登場&#xff1a;開啟原生多模態 AI 創新新紀元Rust 1.86.0 版本發布亮點主要新特性與改進其他重要信息 Llama 4 家族登場&#xff1a;開啟原生多模態 AI 創新新紀元 Meta AI 近日發布了其最新、最先進的 Llama 4 系列人工智能模型&#xff0c;標志著 AI 技術…

ArrayList 和 數組 的區別

定義與本質 數組&#xff1a;是 Java 語言內置的數據結構&#xff0c;是存儲相同類型元素的連續內存空間。它是一個基本的語言特性&#xff0c;在內存中是一塊連續的區域。ArrayList&#xff1a;是 Java 集合框架中的一個類&#xff0c;屬于動態數組。它是基于數組實現的&#…

??FireCrawl?爬蟲工具?, Craw4ai

?FireCrawl?是一款開源的AI爬蟲工具&#xff0c;專門用于Web數據提取&#xff0c;并將其轉換為Markdown格式或其他結構化數據。FireCrawl特別適合處理使用JavaScript動態生成的網站&#xff0c;能夠自動抓取網站及其所有可訪問的子頁面內容&#xff0c;并將其轉換為適合大語言…

通信原理-非線性調制

今天給大家帶來的是關于通信原理中非線性調制的內容,一起來看看吧&#xff01;&#xff01;&#xff01; 1.角度調制 2.FM與PM的區別 3.單音調制FM 4.窄帶調頻 5.寬帶調頻 5.1FM信號的頻譜 5.2FM信號的帶寬 5.3FM信號的功率分配 6.FM信號的產生與解調 6.1FM信號的產生 6.2FM…

文心一言開發指南03——千帆大模型平臺產品優勢

版權聲明 本文原創作者&#xff1a;谷哥的小弟作者博客地址&#xff1a;http://blog.csdn.net/lfdfhl 千帆大模型平臺作為百度智能云推出的企業級大模型一站式平臺&#xff0c;具有顯著的產品優勢。千帆大模型平臺以其基礎強大、流程完善、運行穩定和安全可靠的產品優勢成為企…

mysql DQL

一.基本查詢 1.查詢多個字段 2.查看所有字段 3.設置別名 4.去除重復記錄 二.條件查詢 1.大于小于等于 2.查詢 身份證為空的 沒有所以沒有記錄 3.在15到20這個區間范圍內 4.or/in 或者 4.like 匹配 &#xff08;_匹配單個字符 %匹配多個字符&#xff09; 查詢員工信…

關于 軟件開發模型 的分類、核心特點及詳細對比分析,涵蓋傳統模型、迭代模型、敏捷模型等主流類型

以下是關于 軟件開發模型 的分類、核心特點及詳細對比分析&#xff0c;涵蓋傳統模型、迭代模型、敏捷模型等主流類型&#xff1a; 一、軟件開發模型分類及核心特點 1. 瀑布模型&#xff08;Waterfall Model&#xff09; 核心特點&#xff1a; 線性階段劃分&#xff1a;需求分…