計算機網絡學習(六)——UDP

一、UDP

UDP(User Datagram Protocol,用戶數據報協議)是傳輸層的一種協議,和 TCP 并列。與 TCP 不同,UDP 是無連接、不可靠、面向報文的協議,它的設計目標是追求更快的數據傳輸速度和更小的開銷

UDP 為應用程序提供盡最大努力交付(best-effort delivery)的數據傳輸服務,它不保證:

  • 數據可靠送達;
  • 數據到達順序正確;
  • 數據不被重復。

核心特點:

特性說明
無連接不進行握手,通信前無需建立連接
不可靠不重傳、無確認、無流量控制
面向報文每個UDP報文獨立,不進行分段重組
支持多播廣播可用于局域網廣播或多播通信
開銷小速度快頭部僅8字節,傳輸效率高

注:

  • UDP和TCP,都屬于傳輸層協議

二、UDP 報文結構(僅 8 字節頭部)

參考書——計算機網絡 (第8版)- 謝希仁。

用戶數據報UDP有兩個字段: 數據字段和首部字段
首部字段很簡單, 只有8個字節, 由4個字段組成, 每個字段的長度都是2字節。
各字段意義如下:

  1. 源端口:源端口號。在需要對方回信時選用,不需要時可用全0 。
  2. 目的端口:目的端口號。這在終點交付報文時必須使用。
  3. 長度:UDP用戶數據報的長度, 其最小值是8(僅有首部)。
  4. 檢驗和:檢測UDP用戶數據報在傳輸中是否有錯。有錯就丟棄。

在這里插入圖片描述
注:

  • 相比 TCP 的復雜報頭(20 字節起),UDP 簡潔快速。

三、UDP vs TCP

比較項UDPTCP
是否連接無連接(無需握手面向連接(三次握手
是否可靠不可靠(無確認、無重傳)可靠(確認、重傳、排序)
數據結構面向報文面向字節流
報文大小最多 65,535 字節(通常小于 MTU)不限,但需拆分
頭部開銷小(8 字節)大(20 字節起)
傳輸速度相對較慢
應用場景實時通信、多播、DNS、視頻等HTTP、SSH、文件傳輸、數據庫等

四、UDP 實現可靠性的方法(由應用層補充)

雖然 UDP 不可靠,但很多應用通過在應用層設計可靠機制來實現“可靠UDP”:

技術手段說明
應用層ACK確認對關鍵數據加ACK機制
序列號機制檢測亂序或重傳
超時重傳定時檢測未確認數據重新發送
FEC 前向糾錯通過冗余數據修復丟失內容
QUIC 協議Google開發的基于UDP的可靠協議

五、UDP 常配合的協議

UDP 是傳輸層協議,很多高層協議基于它:

協議描述
DNS域名解析協議,UDP端口53
DHCP動態主機配置協議,UDP端口 67/68
SNMP網絡管理協議,UDP端口 161/162
TFTP簡單文件傳輸協議,UDP端口 69
RTP/RTCP實時音視頻協議

六、典型應用場景

場景使用說明
視頻/音頻通話容忍部分丟包,優先保證低延遲(如 WebRTC)
網絡游戲游戲位置、狀態頻繁更新,丟幾個包不影響體驗
DNS 查詢請求簡單、短小、允許偶爾失敗再重試
實時監控安防攝像頭、遠程傳感器數據流
廣播/多播如局域網設備發現、直播推流

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

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

相關文章

vue3文本超出三行顯示省略號,點擊查看更多顯示全部文本

只有一行時&#xff08;不顯示展開按鈕&#xff09;&#xff1a; 話不多說&#xff0c;上碼 ~template <el-col :span"24"><el-form-item :label"$t(warningOrgNames_)"><div class"content-box" ref"contanierRef"…

手寫Tomcat(一)

一、Tomcat簡介 Tomcat 服務器是一個免費的開放源代碼的Web應用服務器&#xff0c;屬于輕量級應用服務器&#xff0c;在中小型系統和并發訪問用戶不是很多的場合下被普遍使用&#xff0c;是開發和調試JSP 程序的首選。 1.1 Tomcat基本架構 Servlet接口文件中定義的方法有以下…

第三節_PySide6中Qt Designer 的基礎使用_上篇

文章目錄 前言一、Qt Designer簡介1.什么是 Qt Designer&#xff1f;2.核心功能3.核心優勢 二、Qt Designer界面介紹1.主窗口的創建2.窗口五大區域的簡單介紹 三、界面布局 Layout1.窗口布局方式介紹2.UI布局技巧概述3.UI布局實戰應用 總結 前言 第二節_PySide6項目創建流程介…

行列式的線性性質(僅限于單一行的加法拆分)

當然可以&#xff0c;以下是經過排版優化后的內容&#xff0c;保持了原始內容不變&#xff0c;僅調整了格式以提升可讀性&#xff1a; 行列式的線性性質&#xff08;加法拆分&#xff09; 這個性質說的是&#xff1a;如果行列式的某一行&#xff08;或某一列&#xff09;的所有…

Git使用說明

配置Git 確定已經安裝了Git, 通過以下的命令配置全局的郵箱和用戶名 git config --global user.email "your@xx.com" git config --global user.name "yourname" 初始化本地倉庫 首先,打開終端并切換到存放你代碼的項目目錄。接著執行以下命令,將該…

【后端高階面經:緩存篇】36、如何保證Redis分布式鎖的高可用和高性能?

一、分布式鎖核心挑戰:從單機到分布式的跨越 (一)分布式鎖的本質需求 互斥性:同一時刻僅一個客戶端持有鎖容錯性:節點故障時鎖仍有效(避免單點)原子性:加鎖/釋放鎖操作原子完成可重入性:支持同一客戶端多次獲取同一把鎖(二)Redis天然優勢 單線程模型保證操作原子性…

【后端高階面經:MongoDB篇】40、怎么優化MongoDB的查詢性能?

一、索引優化&#xff1a;構建高效查詢的基石 &#xff08;一&#xff09;索引類型與適用場景 1. 五大核心索引類型 索引類型適用場景示例代碼性能影響單字段索引單條件查詢&#xff08;如用戶ID、狀態字段&#xff09;db.users.createIndex({ user_id: 1 })低復合索引多條件…

Linux wget 常用命令詳解

目錄 1.1 工具定位 基礎下載示例 二、高效下載參數詳解 2.1 下載控制類 2.2 文件管理類 2.3 網絡優化類 三、高級應用場景 3.1 遞歸下載與整站鏡像 3.2 自動化下載實踐 3.3 安全下載配置 四、參數速查手冊 4.1 常用參數匯總 1.1 工具定位 基礎下載語法 wget [選項…

Pytorch中文文本分類

本文為&#x1f517;365天深度學習訓練營內部文章 原作者&#xff1a;K同學啊 將對中文文本進行分類&#xff0c;示例如下&#xff1a; 文本分類流程圖 1.加載數據 import time import pandas as pd import torch from torch.utils.data import DataLoader, random_split impo…

13.「極簡」扣子(coze)教程 | 小程序UI設計進階(三)讓界面動起來,實操講透“聚焦”事件

前一期大師兄介紹了扣子平臺組件的兩種狀態“禁用”和“加載”。這兩種方法使控件可以通過簡單設置表示出更多的運行狀態。今天大師兄將詳細介紹控件的一種事件“聚焦”。 扣子&#xff08;coze&#xff09;編程 「極簡」扣子(coze)教程 | 小程序UI設計進階 II&#xff01;讓…

劍指offer11_矩陣中的路徑

矩陣中的路徑 請設計一個函數&#xff0c;用來判斷在一個矩陣中是否存在一條路徑包含的字符按訪問順序連在一起恰好為給定字符串。 路徑可以從矩陣中的任意一個格子開始&#xff0c;每一步可以在矩陣中向左&#xff0c;向右&#xff0c;向上&#xff0c;向下移動一個格子。 如…

騰訊2025年校招筆試真題手撕(三)

一、題目 今天正在進行賽車車隊選拔&#xff0c;每一輛賽車都有一個不可以改變的速度。現在需要選取速度差距在10以內的車隊&#xff08;車隊中速度的最大值減去最小值不大于10&#xff09;&#xff0c;用于迎賓。車隊的選拔按照的是人越多越好的原則&#xff0c;給出n輛車的速…

《三維點如何映射到圖像像素?——相機投影模型詳解》

引言 以三維投影介紹大多比較分散&#xff0c;不少小伙伴再面對諸多的坐標系轉換中容易弄混&#xff0c;特別是再寫代碼的時候可能搞錯&#xff0c;所有這篇文章幫大家完整的梳理3D視覺中的投影變換的全流程&#xff0c;一文弄清楚這個過程&#xff0c;幫助大家搞清坐標系轉換…

Ini配置文件讀寫,增加備注功能

1.增加備注項寫入 例: #節點備注 [A] #項備注 bbb1 ccc2 [B] bbb1 IniConfig2 ic new IniConfig2(); //首次寫入 if (!ic.CanRead()) { ic.AddSectionReMarke("A", "節點備注"); ic.SetValue("A&qu…

OpenHarmony 5.0中狀態欄添加以太網狀態欄圖標以及功能實現

目錄 1.前置條件 2.方案 1.前置條件 首先以太網接口是有問題的,如下按照如下流程將以太網接口進行修復 OpenHarmony 以太網卡熱插拔事件接口無效-CSDN博客 然后上述的接口可以了就可以通過這個接口獲取以太網是否連接狀態 要注意wifi連接的干擾和預置虛擬網口干擾 2.方案…

RNN GRU LSTM 模型理解

一、RNN 1. 在RNN中&#xff0c; 2. RNN是一個序列模型&#xff0c;與非序列模型不同&#xff0c;序列中的元素互相影響&#xff1a; 是由 計算得來的。 在前向傳播中&#xff1a; 用于計算 和 用于計算 和 因此&#xff0c;當進行反向鏈式法則求導時候&#xf…

多路徑傳輸(比如 MPTCP)控制實時突發

實時突發很難控制&#xff0c;因為 “實時” 和 “突發” 相互斥。實時要求避免排隊&#xff0c;而突發必然要排隊&#xff0c;最終的解決方案都指向找一個公說公有理&#xff0c;婆說婆有理的中間點&#xff0c;這并沒解決問題&#xff0c;只是權衡了問題。 這種局部解決問題的…

函數式編程思想詳解

函數式編程思想詳解 1. 核心概念 不可變數據 (Immutable Data) 數據一旦創建&#xff0c;不可修改。任何操作均生成新數據&#xff0c;而非修改原數據。 優點&#xff1a;避免副作用&#xff0c;提升并發安全&#xff0c;簡化調試。 Java實現&#xff1a;使用final字段、不可變…

iOS 主要版本發布歷史

截至 2025 年 5 月&#xff0c;iOS 的最新正式版本是 iOS 18&#xff0c;于 2024 年 9 月 16 日 正式發布。此前的 iOS 17 于 2023 年 9 月 18 日 發布&#xff0c;并在 2024 年被 iOS 18 取代。(維基百科) &#x1f4f1; iOS 主要版本發布歷史 以下是 iOS 各主要版本的發布日…

矩陣詳解:線性代數在AI大模型中的核心支柱

&#x1f9d1; 博主簡介&#xff1a;CSDN博客專家、CSDN平臺優質創作者&#xff0c;高級開發工程師&#xff0c;數學專業&#xff0c;10年以上C/C, C#, Java等多種編程語言開發經驗&#xff0c;擁有高級工程師證書&#xff1b;擅長C/C、C#等開發語言&#xff0c;熟悉Java常用開…