計網_可靠傳輸ARQ機制

2024.09.04:網工老姜&beokayy網工學習筆記

第5節 可靠傳輸機制

  • 5.1 可靠傳輸
  • 5.2 ARQ機制、ARQ協議
  • 5.3 ARQ簡介(可靠傳輸)
    • 5.3.1 停止等待協議
      • (1)無差錯情況
      • (2)有差錯情況
        • 確認丟失
        • 確認遲到
    • 5.3.2 連續ARQ協議
      • (1)流水線傳輸
      • (2)滑動窗口
      • (3)累計確認
      • (4)后退N幀協議GBN
      • (5)選擇重傳協議SR
  • 5.4 信道利用率
  • 5.5 本章小結


注意數據鏈路層不是一定要實現可靠傳輸

5.1 可靠傳輸

通俗理解:發送端發送什么,接收端就接收什么

傳輸差錯除了可能發生的比特差錯,還可能存在在傳輸過程中失序、重復、丟失等差錯
在這里插入圖片描述
過去,OSI模型比較老,在當時那個時期就必須要求數據鏈路層必須向上提供一個可靠傳輸,因此在CRC檢測的基礎上,就增加了編號、確認、重傳

現在,計算機網絡并沒有強制數據鏈路層提供可靠傳輸。

  • 如果數據鏈路質量好,數據鏈路層就不使用可靠傳輸機制,相應的,如果數據鏈路層傳輸數據時出了差錯需要糾正,那么將由上層協議(如傳輸層TCP)來完成
  • 如果數據鏈路質量差,那還是需要數據鏈路層使用可靠傳輸機制的

5.2 ARQ機制、ARQ協議

ARQ機制:ARQ機制是一種通用的錯誤控制原理,用于在不可靠的通信信道中保證數據傳輸的可靠性。
在這里插入圖片描述
ARQ協議:ARQ協議是基于ARQ機制具體實現的通信規則和標準,定義了數據包格式、時序、狀態機等細節。

類比理解

  • ARQ機制 ≈ 交通規則中的“紅燈停、綠燈行”(通用原則)
  • ARQ協議 ≈ 某城市具體的交通信號燈時序方案(如綠燈持續30秒,黃燈3秒)

5.3 ARQ簡介(可靠傳輸)

面向連接?發送數據前打招呼,發送完數據后要反饋
無連接?廣場發廣告單,無需認識、無需反饋

ARQ協議,即自動重傳請求,是OSI模型中的(數據鏈路層)和(傳輸層)錯誤糾正協議之一,它通過使用(確認)和(重傳)這兩個機制,在不可靠的基礎上實現可靠的信息傳輸,是一種面向連接的協議

數據鏈路層的HDLC協議、傳輸層的TCP協議均使用了ARQ機制

采用確認和超時重傳兩種機制的可靠傳輸協議稱為自動重傳請求(ARQ)

  • 如果發送方在發送后一段時間內沒有收到確認幀,它通常會重新發送
  • 重傳的請求是自動進行的,接收方不需要請求發送方重傳某個出錯的分組

ARQ協議有3種:停止等待ARQ協議、連續ARQ協議(連續后退N幀協議、選擇重傳協議)


5.3.1 停止等待協議

在這里插入圖片描述
發送方每次只允許發送一個幀,接收方每接收一個幀都要反饋應答,表示可以接收下一個幀,發送方收到應答信號后才能發送下一個幀

(1)無差錯情況

做題目一般會忽略確認幀的發送時間,或者數據幀和確認幀都在考慮在內
在這里插入圖片描述
在這里插入圖片描述


(2)有差錯情況

在這里插入圖片描述

另一種設置:可靠傳輸協議中,也可以在有差錯的時候發送“否認報文NAK”給對方,這樣能讓發送方及時知道出了差錯。但是這樣的處理會讓協議復雜化,目前實用的可靠傳輸協議都不使用這種否認報文了

為了實現超時重傳,需要注意三點:

這里是引用
在這里插入圖片描述

  • 發送方發送完一個幀后,需要暫時保留已發送幀的副本供超時重傳時使用,只有收到確認后才能清除副本
  • 幀和確認幀都需要編號,這樣才能明確是哪一個發出去的幀收到了確認。編號是循環使用的,比如使用2bit來編號,范圍就只能是0~3,再增加一個號又會回到0
  • 超時計時器設置的重傳時間應比幀傳輸的RTT更長一些在這里插入圖片描述

確認丟失

在這里插入圖片描述


確認遲到

在這里插入圖片描述
丟掉后來的重復確認幀


5.3.2 連續ARQ協議

在這里插入圖片描述

(1)流水線傳輸

在這里插入圖片描述

(2)滑動窗口

為了搞懂剩下的兩種連續ARQ協議,我們需要引入滑動窗口的概念
在這里插入圖片描述

在這里插入圖片描述

滑動窗口機制特點

  • 發送方只有收到一幀的確認,才能將窗口劃過該幀
  • 接收方只有收到一幀并發送確認,才能將窗口劃過該幀
  • 當接收窗口大小為1時,可以保證按序接收
  • 數據鏈路層的滑動窗口大小不變,而傳輸層的滑動窗口大小可變
    在這里插入圖片描述

(3)累計確認

在這里插入圖片描述


(4)后退N幀協議GBN

在這里插入圖片描述


(5)選擇重傳協議SR

在這里插入圖片描述


5.4 信道利用率

在這里插入圖片描述

在這里插入圖片描述

發送周期指的是發送方去發送分組(一般化,信道利用率的問題也不只是在數據鏈路層出現,每層的PDU不一樣,統稱分組)到它收到第一個確認分組的時間

  • 信道利用率
  • 有效數據傳輸速率 = 有效數據長度 / 發送周期
  • 信道吞吐率 = 信道利用率 * 發送方發送速率(數據傳輸速率)

5.5 本章小結

在這里插入圖片描述

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

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

相關文章

華為eNSP:多區域集成IS-IS

一、什么是多區域集成IS-IS? 多區域集成IS-IS是一種基于中間系統到中間系統(IS-IS)協議優化的網絡架構設計,通過多區域協同、路徑優化和擴展性增強實現高效路由管理,其核心特征如下: 1、分布式架構與多區…

自定義Dockerfile,發布springboot項目

(1) 上傳jar包 把hello項目打成一個可執行的jar包 hello-1.0-SNAPSHOT.jar,把這個jar包上傳到linux中 (2) 創建文件,文件名my_hello(就是一個Dockerfile),內容如下 #1.定義父鏡像(定義當前工程依賴的環境):…

vscode源代碼管理Tab-文件右側標志(M、A 等)的含義

Git 常用標志(M、A 等)的含義 在 VSCode 的源代碼管理(Source Control)標簽頁中,文件右側顯示的 Monaco 裝飾徽章(Badge)(如 M、A 等),本質上是對 Git 文件狀態標志 的可視化呈現。…

基于 vue-flow 實現可視化流程圖

vue-flow 是一個基于 Vue.js 的強大且靈活的可視化流程圖庫,它允許開發者輕松創建交互式的流程圖、工作流圖、節點圖等。 主要特點 易于使用 :提供了簡潔的 API 和組件,開發者可以快速上手并創建復雜的流程圖。高度可定制 :支持…

【愚公系列】《Manus極簡入門》015-時間管理顧問:“商業時間規劃大師”

🌟【技術大咖愚公搬代碼:全棧專家的成長之路,你關注的寶藏博主在這里!】🌟 📣開發者圈持續輸出高質量干貨的"愚公精神"踐行者——全網百萬開發者都在追更的頂級技術博主! &#x1f…

OpenRouter:輕松集成多家AI大模型的統一接口平臺指南

想象一下,你已經在系統中集成了 OpenAI API,但現在你希望通過 Google Gemini 和 Anthropic API 擴展能力。你會為每個服務商單獨創建和管理賬戶,使用不同的 SDK,讓代碼變得更加復雜嗎?還是更傾向于只用一行代碼就能訪問…

iOS啟動優化:從原理到實踐

前言 在iOS應用開發中,啟動速度是影響用戶體驗的重要因素之一。研究表明,啟動時間每增加1秒,用戶留存率就會下降約7%。本文將深入探討iOS啟動優化的各個方面,從底層原理到具體實踐,幫助開發者打造更快的應用啟動體驗。…

洛谷 P1850 [NOIP 2016 提高組] 換教室

題目傳送門 前言 終于自己想出概率期望 d p dp dp 的狀態了,但是依舊沒能相對轉移方程。(招笑) 暴力 這題部分分和特殊情況分給的挺多的,所以先拿部分分。 一、思路 先跑一邊 F l o y d Floyd Floyd 最短路求出兩點間最短距…

基于Springboot+Vue3.0的前后端分離的個人旅游足跡可視化平臺

文章目錄 0、前言1、前端開發1.1 登錄注冊頁面1.2 首頁1.3 足跡管理1.3.1 足跡列表1.3.2 添加足跡1.4 個人中心1.4.1 足跡成就1.4.2 個人信息1.4.3 我的計劃2、后端開發2.1 用戶接口開發2.2 足跡點接口2.3 旅游計劃接口3、完整代碼資料下載0、前言 項目亮點: 前端用戶權限動態…

大數據應用開發與實戰(1)

一、Matplotlib 基礎認知 功能特性:是 Python 強大的繪圖庫,能將數據以多樣化的圖表形式呈現,涵蓋靜態、動態和交互式圖表,支持多種輸出格式,滿足不同場景下的數據可視化需求。 二Matplotlib Pyplott 函數繪圖技巧&a…

神經網絡的基本概念與深度解析——基于生物機制的仿生建模與工程實現

廣義上講,神經網絡是泛指生物神經網絡與人工神經網絡這兩個方面。所謂生物神經網絡是指由中樞神經系統(腦和脊髓)及周圍神經系統(感覺神經、運動神經、交感神經、副交感神經等)所構成的錯綜復雜的神經網絡,…

Linux53 百度網盤運行(下載devtoolset11后仍提示stdc++3.0.29缺失 計劃用docker容器隔離運行,計劃后續再看)

算了 放棄 都用到docker了 計劃先看看系統服務后續再研究吧 百度網盤運行(下載devtoolset11后仍提示stdc3.0.29缺失 計劃用docker容器隔離運行 但是由于系統服務未扎實,計劃后續再看 重新下了el7的版本 剛才已啟動成功 單輸入xlock不啟動 切換用戶也不啟動 …

高維亞空間超頻物質變壓縮技術 第27次CCF-CSP計算機軟件能力認證

很經典的dp問題: 設dp數組為f[i]前i個黃金的最小成本 遞推公式就是遍歷之前0-j的dp[j] 再加上后面這一段的成本取min 而計算后面的成本需要段體積 使用前綴和儲存體積即可 注意題目限制條件每段最大m需要遞增 所以遇到某些問題需要continue 每段內編號最大的黃…

里氏替換原則(LSP)

太好了,現在我們來講解 SOLID 中非常核心的 LSP:里氏替換原則(Liskov Substitution Principle)。 我會一步步講清楚: 什么是 LSP?為什么重要?優劣分析Python 正反例子清晰的結構圖&#xff08…

skynet.socket.limit 使用詳解

目錄 核心作用方法定義使用場景場景 1:限制接收緩沖區(防御大包攻擊)場景 2:動態調整限制(應對不同負載) 底層機制注意事項完整示例:帶流量控制的 Echo 服務總結 在 Skynet 框架中,s…

算法每日一題 | 入門-順序結構-數字反轉

數字反轉 題目描述 輸入一個不小于 且小于 ,同時包括小數點后一位的一個浮點數,例如 ,要求把這個數字翻轉過來,變成 并輸出。 輸入格式 一行一個浮點數 輸出格式 一行一個浮點數 輸入輸出樣例 #1 輸入 #1 123.4輸出 #1 …

數據庫數據去重常用方式

數據庫數據去重是一個常見的操作,常用的方式包擇包括: 使用 DISTINCT 關鍵字:在查詢數據時,可以使用 SELECT DISTINCT 來去除結果集中的重復數據。 使用 GROUP BY 語句:可以使用 GROUP BY 子句來對結果進行分組&#…

快樂數(簡單)

代碼&#xff1a; import java.util.HashSet; import java.util.Set;class Solution {public boolean isHappy(int n) {Set<Integer> seen new HashSet<>();while (n ! 1 && !seen.contains(n)) {seen.add(n);n getNext(n);}return n 1;}private int g…

Linux操作系統從入門到實戰(五)詳細講解Linux權限概念

Linux操作系統從入門到實戰&#xff08;五&#xff09;詳細講解Linux權限概念 前言一、Linux中兩種用戶1.1 超級用戶&#xff08;root&#xff09;1.2 普通用戶1.3 切換用戶命令 二、Linux權限管理2.1 文件訪問者的分類&#xff1a;誰能訪問文件&#xff1f;2.2 文件類型2.3 基…

91.首次使用Maui的體驗與建議 C#例子 Maui例子

最近我開始接觸Maui&#xff0c;記錄一下我的首次使用體驗&#xff0c;希望能給大家提供一些參考。 安裝與創建項目 首次接觸Maui&#xff0c;其實遇到了不少疑惑。首先&#xff0c;通過Visual Studio的安裝器安裝Maui開發環境。安裝過程還算順利&#xff0c;但需要注意的是&…