【計算機網絡運輸層詳解】

文章目錄

  • 一、前言
  • 二、運輸層的功能
      • 1. 端到端通信
      • 2. 復用與分用
      • 3. 差錯檢測
      • 4. 流量控制
      • 5. 擁塞控制
  • 三、運輸層協議:TCP 和 UDP
    • 1. TCP:面向連接的可靠傳輸協議
    • 2. UDP:無連接的傳輸協議
  • 四、端口號與進程通信
      • 1. 端口號分類
      • 2. 端口通信模型
  • 五、流量控制與擁塞控制
      • 1. 流量控制
      • 2. 擁塞控制
  • 六、總結


一、前言

計算機網絡運輸層(Transport Layer)位于網絡層之上、應用層之下,在整個網絡協議棧中起著承上啟下的作用。它為應用進程提供端到端的數據傳輸服務,并確保數據能夠可靠或高效地傳送到目標主機。


二、運輸層的功能

1. 端到端通信

  • 網絡層負責主機之間的數據傳輸,但無法區分主機上的具體應用進程。
  • 運輸層通過端口號標識不同的進程,實現主機到主機之間的端到端通信。

2. 復用與分用

  • 復用:多個應用程序可以同時使用運輸層協議進行數據傳輸。
  • 分用:接收方將運輸層數據解析并分發到對應的應用程序。

3. 差錯檢測

  • 運輸層對數據進行校驗,保證數據在傳輸過程中沒有損壞。
  • 校驗和用于檢測數據在傳輸過程中是否出錯。

4. 流量控制

  • 防止發送方發送過多的數據,超過接收方的處理能力。
  • 避免數據溢出或丟失。

5. 擁塞控制

  • 防止網絡擁塞,確保網絡資源被合理利用。
  • 通過調整發送速率來適應當前網絡狀態。

三、運輸層協議:TCP 和 UDP

運輸層的兩大核心協議分別是:

  • TCP(Transmission Control Protocol):傳輸控制協議
  • UDP(User Datagram Protocol):用戶數據報協議

1. TCP:面向連接的可靠傳輸協議

TCP 提供可靠的數據傳輸服務,具有以下特性:

  • 面向連接:在數據傳輸前需要先建立連接(3次握手),數據傳輸結束后釋放連接(4次揮手)。
  • 可靠傳輸:數據包按序到達、無差錯、不丟失、不重復。
  • 流量控制:通過滑動窗口機制控制發送方的數據發送速率。
  • 擁塞控制:通過慢啟動、擁塞避免、快重傳等算法控制數據流量,防止網絡擁塞。

? TCP 報文格式

  0          4          8         16         24         32--------------------------------------------------------| 源端口號    | 目的端口號      | 序號(32位)                 |--------------------------------------------------------| 確認號(32位)                      |--------------------------------------------------------| 數據偏移(4位) | 保留(6位) | 標志位(6位)  | 窗口大小      |--------------------------------------------------------| 校驗和         | 緊急指針                      |--------------------------------------------------------| 可選字段(0-320位)                  |--------------------------------------------------------| 數據部分                              |--------------------------------------------------------
  • 源端口號和目的端口號:標識通信雙方進程。
  • 序號和確認號:保證數據的可靠性和有序性。
  • 標志位
    • ACK:確認標志。
    • SYN:同步標志,用于建立連接。
    • FIN:終止標志,用于斷開連接。
  • 窗口大小:用于流量控制。
  • 校驗和:檢測數據傳輸是否出錯。

? TCP 連接過程

  • 三次握手(建立連接)
    1. 客戶端發送 SYN 報文。
    2. 服務端返回 SYN + ACK 報文。
    3. 客戶端返回 ACK 報文,連接建立。
  • 四次揮手(釋放連接)
    1. 客戶端發送 FIN 請求斷開連接。
    2. 服務端返回 ACK 確認。
    3. 服務端發送 FIN 請求斷開。
    4. 客戶端返回 ACK,連接斷開。

2. UDP:無連接的傳輸協議

UDP 提供無連接的數據傳輸服務,具有以下特性:

  • 無連接:無需建立連接即可傳輸數據。
  • 不可靠傳輸:不保證數據有序、不丟失。
  • 速度快:開銷小,適合對實時性要求高的應用(如視頻會議、語音通話)。

? UDP 報文格式

  0          4          8         16         24         32--------------------------------------------------------| 源端口號    | 目的端口號      | 數據長度         | 校驗和      |--------------------------------------------------------| 數據部分(可變長)                                  |--------------------------------------------------------
  • 源端口號和目的端口號:標識通信進程。
  • 數據長度:數據部分的長度。
  • 校驗和:檢測數據是否損壞。
  • 數據部分:實際傳輸的數據。

? UDP 應用場景

  • 實時音視頻:如 VoIP、視頻通話。
  • 在線游戲:數據傳輸需要速度,不需要可靠性。
  • 廣播和多播:如 DHCP 協議。

四、端口號與進程通信

1. 端口號分類

  • 0~1023:系統端口(知名端口)
    • 80:HTTP
    • 443:HTTPS
    • 22:SSH
  • 1024~49151:注冊端口
    • 分配給用戶程序或進程。
  • 49152~65535:動態或私有端口
    • 臨時端口號,供客戶機程序使用。

2. 端口通信模型

  • 服務器監聽指定端口,等待客戶端連接。
  • 客戶端通過指定端口向服務器發送數據。
  • 服務器和客戶端進行數據交互。

五、流量控制與擁塞控制

1. 流量控制

  • 滑動窗口機制
    • 發送方和接收方維護窗口。
    • 窗口大小決定發送方可發送的數據量。
    • 通過調整窗口大小實現流量控制。

? 示例

  • 發送方窗口大小為 4。
  • 每次發送 4 個數據包。
  • 接收方確認收到數據后,滑動窗口前移。

2. 擁塞控制

  • 慢啟動:初始發送速率較低,逐步增加。
  • 擁塞避免:防止發送速率增長過快。
  • 快重傳:在接收方連續接收到 3 個重復的 ACK 時,立即重傳數據。
  • 快恢復:在擁塞時減少窗口大小,不重置。

六、總結

運輸層在計算機網絡中負責主機之間的數據傳輸。它通過 TCP 和 UDP 提供可靠或高速的傳輸服務,同時通過流量控制與擁塞控制保障網絡穩定性。

? TCP 適合可靠性要求高的場景

  • 如文件傳輸、郵件、Web 瀏覽。

? UDP 適合實時性要求高的場景

  • 如視頻會議、語音通話、在線游戲。

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

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

相關文章

51單片機和STM32 入門分析

51單片機和STM32是嵌入式開發中兩種主流的微控制器,它們在架構、性能、應用場景等方面存在顯著差異。以下是兩者的對比分析及選擇建議: 1. 51單片機與STM32的定義與特點 51單片機 定義:基于Intel 8051內核的8位微控制器,結構簡單…

開源視覺語言模型MiniMax-VL-01:動態分辨率+4M超長文本,性能比肩GPT-4o

在人工智能領域,構建能夠像人類一樣理解、思考和行動的智能體(AI Agent)一直是研究人員的終極目標之一。而實現這一目標的關鍵在于模型是否具備足夠強大的感知能力、記憶能力和推理能力。近期,國內人工智能公司MiniMax重磅開源了其…

excel 列單元格合并(合并列相同行)

代碼 首先自定義注解CellMerge,用于標記哪些屬性需要合并,哪個是主鍵**(這里做了一個優化,可以標記多個主鍵)** import org.dromara.common.excel.core.CellMergeStrategy;import java.lang.annotation.*;/*** excel…

flowable適配達夢7 (2.1)

經過第一版的問題解決,后端項目可以啟動,前端頁面也集成進去。 前端在流程設計頁面報錯 之后發現主要是組件中modelerStore這個值沒有 解決方法:在data增加對象 給component/process/designer.vue 中涉及到的每個子組件傳入 :modelerStore“modeler…

Prometheus Exporter系列-Mysql_Exporter一鍵部署

新項目舊項目都需要給研發配置mysql監控,這里mysql監控對應aws 阿里云 騰訊云 華為云的云mysql產品或開源自建mysql。 exporter安裝雖然簡單,經常手動操作不免讓人心煩,一鍵完成省去繁瑣的常規操作。 配置信息對的情況下測試多次都可以正常安…

2025年移動端開發性能優化實踐與趨勢分析

啟動速度優化 本質:縮短首次可見幀渲染時間。 方法: iOS:利用Core ML本地模型輕量化部署,減少云端等待。Android:強制啟用SplashScreen API,通過setKeepOnScreenCondition控制動畫時長。冷啟動需將耗時操…

【MySQL篇】DEPENDENT SUBQUERY(依賴性子查詢)優化:從百秒到秒級響應的四種優化辦法

💫《博主介紹》:?又是一天沒白過,我是奈斯,從事IT領域? 💫《擅長領域》:??擅長阿里云AnalyticDB for MySQL(分布式數據倉庫)、Oracle、MySQL、Linux、prometheus監控;并對SQLserver、NoSQL(…

全文 - MLIR Toy Tutorial Chapter 1: Toy Language and AST

Toy 語言 本教程,將會借助一個玩具語言來講解,這個語言我們稱其為 Toy。Toy 是一個基于張量的語言,它允許你定義函數,執行一些數學計算,并且打印結果。做這樣的設定,是因為我們希望讓教程保持簡明&#xff…

排序復習_代碼純享

頭文件 #pragma once #include<iostream> #include<vector> #include<utility> using std::vector; using std::cout; using std::cin; using std::endl; using std::swap;//插入排序 //1、直接插入排序&#xff08;穩定&#xff09; void InsertSort(vecto…

CSS語言的雙向鏈表

CSS語言的雙向鏈表 引言 在計算機科學中&#xff0c;數據結構是一個極為重要的概念&#xff0c;而鏈表則是最常見的數據結構之一。鏈表可以分為單向鏈表和雙向鏈表&#xff0c;其中雙向鏈表因其靈活性和高效性而受到廣泛應用。在前端開發的領域&#xff0c;尤其是CSS&#xf…

簡單理解機器學習中top_k、top_p、temperature三個參數的作用

AI系列文章&#xff1a; AWS AI認證考試中經常提及幾個重要的工具介紹 簡單理解機器學習中top_k、top_p、temperature三個參數的作用 用Deepseek Kimi 快速生成高質量的ppt 在機器學習中&#xff0c;top_k、top_p 和 temperature 是用于控制生成模型&#xff08;如語言模型…

紅寶書第十三講:詳解JavaScript核心對象:Array、Object、Date、RegExp

紅寶書第十三講&#xff1a;詳解JavaScript核心對象&#xff1a;Array、Object、Date、RegExp 資料取自《JavaScript高級程序設計&#xff08;第5版&#xff09;》。 查看總目錄&#xff1a;紅寶書學習大綱 一、Object&#xff1a;萬物皆對象的“盒子” Object是JavaScript中…

昆侖技術重構AI大模型落地范式,長期作“加法”迎來國產生態化“拐點”

作者 | 曾響鈴 文 | 響鈴說 DeepSeek的爆火&#xff0c;在業內迅速掀起了一場國產化的變革。“國產大模型國產算力”軟硬協同的范式正在被重構&#xff0c;AI產業國產化的含金量持續提升&#xff0c;越來越多的企業在這一趨勢下加速走上數智化轉型路徑。 其中&#xff0c;以…

原開源鴻蒙倉庫停止更新

2月24日&#xff0c;gitee 上的開源鴻蒙組織&#xff0c;所有代碼停止更新&#xff0c;查看代碼倉顯示已關閉&#xff0c;不少小伙伴以為停止更新了&#xff0c;發生了什么&#xff1f; 原因很簡單&#xff0c;所有代碼倉遷移至 Gitcode&#xff0c;至于為什么改用 Gitcode&…

Spring Boot框架中常用注解

以下是Spring Boot框架中常用注解的詳細說明&#xff0c;包括名稱、用途、用法、使用位置及擴展示例&#xff0c;按功能模塊分類整理&#xff1a; 一、核心啟動與配置注解 1. SpringBootApplication 用途&#xff1a;主啟動類注解&#xff0c;整合了 Configuration、EnableAu…

Azure Delta Lake、Databricks和Event Hubs實現實時欺詐檢測

設計Azure云架構方案實現Azure Delta Lake和Azure Databricks&#xff0c;結合 Azure Event Hubs/Kafka 攝入實時數據&#xff0c;通過 Delta Lake 實現 Exactly-Once 語義&#xff0c;實時欺詐檢測&#xff08;流數據寫入 Delta Lake&#xff0c;批處理模型實時更新&#xff0…

車載以太網網絡測試 -23【TCPUDP通信示例】

1 摘要 在車載通信場景中&#xff0c;TCP以及UDP的通信可以用于多種應用&#xff0c;例如車輛狀態監控、遠程控制、數據采集等。以下是詳細的代碼示例&#xff0c;展示了如何使用Python實現簡單的TCP客戶端與服務端通信以及簡單的UDP客戶端與服務端通信&#xff0c;并模擬了車…

SpringBoot大學生競賽管理系統設計與實現

一個用于管理大學生競賽報名、信息查詢與競賽管理的系統&#xff0c;采用了現代化的SpringBoot框架進行開發。該系統的主要功能包括學生信息管理、教師信息管理、競賽報名審核、競賽信息管理等模塊&#xff0c;適用于學校或教育機構進行競賽活動的組織與管理。系統界面簡潔&…

深入解析libsunrpc:構建分布式系統的核心RPC庫

深入解析libsunrpc&#xff1a;構建分布式系統的核心RPC庫 引言 在分布式系統開發中&#xff0c;遠程過程調用&#xff08;Remote Procedure Call, RPC&#xff09; 是連接不同節點、實現跨網絡服務調用的關鍵技術。作為SUN公司開源的經典RPC實現&#xff0c;libsunrpc 憑借其…

MinIO搭建部署

1、命令行安裝 訪問monio官網下載應用程序 # wget https://dl.min.io/server/minio/release/linux-amd64/archive/minio-20250228095516.0.0-1.x86_64.rpm -O minio.rpm # sudo dnf install minio.rpm # mkdir ~/minio # minio server ~/minio --console-address :90012、dock…