主頁 >  其他 > 網路傳輸中的重要引數(1)

網路傳輸中的重要引數(1)

2023-06-09 08:00:51 其他

網路傳輸中的重要引數(1)

目前從事于音視頻流媒體領域的我,主要作業在傳輸層與應用層的交界處,研究如何針對流媒體場景實作高效而可靠的傳輸協議,作業兩年比較深刻的體會之一就是網路傳輸是個看似簡單清晰實則到處是坑的領域,本系列將首先對網路傳輸中重要的幾個引數進行梳理,討論各個引數的實際意義,以及各自常見的獲取方式,

理想的傳輸鏈路

在上層將需要傳輸的資料劃分為一個個小于MTU的資料包Packet后,在理想的傳輸鏈路中,發送端即按照上層Packet交付的順序,通過socket將資料按序交付給接收端,整個資料交付流程沒有延遲,沒有丟失,完全按序,

誰又不想擁有這樣完美的傳輸體驗呢?但現實往往比理想殘酷一些,在實際場景中,還有很多因素會影響傳輸體驗,其實這些因素是顯而易見且易于理解的,只是這里進行一下簡單的歸納與總結,

延時與RTT

無論在哪里,主機之間的資料傳輸都是通過下層各種各樣的物理資料鏈路實作的,基站、交換機與網橋等設備將一個個獨立的資料鏈路們相連,打通互聯網的每一個角落,既然信號在網路中進行物理傳輸,那自然需要時間,即端到端延時,為了明確端到端延時的概念,這里首先需要明確幾個概念,首先是傳播時延傳輸時延

傳播時延:是指電磁信號或光信號在傳輸介質中傳播一定的距離所花費的時間,即從發送端發送資料開始,到接收端收到資料(或者從接收端發送確認幀,到發送端收到確認幀),總共經歷的時間,

傳輸時延:是指結點在發送資料時使資料塊從結點進入到傳輸媒體所需的時間,即一個站點從開始發送資料幀到資料幀發送完畢(或者是接收站點接收一個資料幀的全部時間)所需要的全部時間,

通俗點解釋,傳播時延是信號在物理介質內傳播的時延,比如對于一個電磁波信號,在10km的距離傳輸1bit所需要的時間為10km/c,c即為光速,對應該時間也就是傳播時延,傳輸時延則為設備將一個Packet所有的bit推入網路所需要的時間(收端則為接收需要的時間),這個時長不受限于傳輸介質,而更受限于具體的設備性能,除了傳播時延與傳輸時延之外,端到端的傳輸還需要經歷端上設備以及傳輸路徑中各個節點的處理時延排隊時延,處理時延即設備檢查分組(這里只分組交換中的分組,簡單理解也可以當做Packet)的首部,差錯驗證等需要的時間,排隊時延則為資料在端上緩沖中等待被處理的時間,舉個簡單的例子,假設發端的發送速率\(v_{send}\)大于接收端的處理速率\(v_{recv}\),那么收端便會由于處理不過來到達的而外資料而將這些資料臨時快取起來處理,Packet在快取中等待的時間即為排隊時延,如果快取為0,排隊時延也自然為0,如果快取很大,排隊時延也會跟隨著增長,如果快取已滿,則會發生丟包,

綜上,傳播時延、傳輸時延、處理時延以及排隊時延共同組成了端到端時延,即資料(分組或Packet)從發送端到接收端總花費的時間,

\[端到端時延 = 傳播時延 + 傳輸時延 + 處理時延 + 排隊時延 \]

除了端到端時延之外,另外一個重要(也許更重要)的與時間相關的指標為RTT(Round-trip delay time,RTT),即往返時間/來回通信延遲,參考維基百科的定義:“在雙方通信中,發訊方的信號(Signal)傳播(Propagation)到收訊方的時間,加上收訊方回傳訊息到發訊方的時間”,可以簡單理解為發端到收端的端到端時延+收端到發端的端到端時延,由于現在基本所有的傳輸場景都支持雙向通信,且為了支持可靠傳輸,發端需要收端的反饋以確認資料是否成功到達,發送+反饋這樣一來一回的機制讓RTT引數在可靠傳輸協議的設計中占據重要的地位,在丟包恢復(ARQ)與流控(CC)等領域,RTT也起著重要作用,坑先挖好,日后再談,

\[RTT = 端到端時延_{s2r} + 端到端時延_{r2s} \]

常見的RTT獲取方法依賴于ACK確認機制,即收端接受到資料包后,會像發端回復一個ACK告知該資料包已經被成功接受,ACK的內容一般是資料包的序號Seq,具體跟隨使用的傳輸協議而定,在發端收到ACK后,便能夠根據資料包發送的時間與ACK接收的時間對RTT進行采樣與估計,假設資料包的Seq為k即有RTT采樣值為

\[RTT_{samp}^k = t_{recvAck}^k - t_{send}^k - ACKdelay^k \]

這里\(t_{recvAck}^k\)為該包收到ACK的時間,\(t_{send}^k\)為該包發送的時間,\(ACKdelay^k\)為收端的處理時延,即接收到包到發送ACK的時間,在獲取采樣值之后,我們便可以利用各種各樣的濾波方法對RTT值進行預測估計了,比較常用的是指數加權移動平均法EWMA(TCP使用的方案),計算復雜度低,易于實作,效果也不錯,這里不再展開,貼個鏈接:https://www.cnblogs.com/keye/p/14958351.html,

丟包率

上學的時候我們的教材是經典的《計算機網路-自頂向下方法》,我記著原文寫的“如果將網路傳輸領域最重要的10個問題拿出來,可靠傳輸是第一位的有力候選者”(肯定有出入,懶得回去驗證了),為什么可靠傳輸這么重要,因為他能夠保證傳輸層之上各個應用的正常作業,為用戶正常的互聯網產品體驗提供保障,為什么可靠傳輸這么困難,因為它面向的是底層未知的傳輸鏈路,面對隨時可能發生的各種情況導致的丟包,

丟包的種類有很多,根據資料鏈路的不同發生的形式也不同,在共享介質的網路里可能會發生多個終端間的沖突(感興趣的可以了解下CSMA相關的協議),在非共享介質下也可能由于鏈路中節點的處理錯誤或是上面提到的快取已滿而導致的丟包,anyway,對于發端而言,相對可以簡單的把丟包分為兩類:隨機丟包擁塞丟包,擁塞丟包即為在鏈路擁塞,收端快取滿時候,新到達的資料包由于無處快取而被丟失導致的丟包,隨機丟包即除了擁塞丟包之外的其他(手動狗頭),

發端能夠準確的識別丟包型別與丟包強度對于發端高效利用帶寬有著重要的意義,這里先不對如何利用進行展開,主要關注丟包強度,一般我們使用丟包率lossRate來描述這一特性,丟包率的定義為“傳輸中所丟失資料包數量占所發送資料組的比率”,理解起來比較簡單直白,即一段時間內,記發端發送的包數個數為n,其中收到ACK的個數為m,\(\frac{n-m}{m}\)即為簡單的丟包率估計,需要注意的是對于那些剛剛發送的包,一般不納入統計,因為這些包可能未發生丟包,只是還沒有收到ACK,上一節提到,包往返的時間是RTT,或許取now-RTT直接的一段時間進行丟包率的采樣是更好的選擇,采樣伴隨著誤差,在得到丟包率的采樣后,不同的策略也同樣可以通過濾波手段進一步估計網路中實際的丟包表現,進一步決定策略的調整與適配,

小結

本文簡單梳理了網路傳輸中RTT與丟包率兩個引數的定義(物理意義)與常見的獲取收端,在人均百兆帶寬的今天,丟包率和RTT就能夠很大程度上對網路畫像進行有效的描述,后續的ARQ與CC等可靠傳輸策略也離不開對于這兩個引數的理解與應用,


本文來自博客園,轉載請注明原文鏈接:https://www.cnblogs.com/mapleumr/p/17464980.html

本文著作權歸作者和博客園共有,歡迎轉載,但未經作者同意必須在文章頁面給出原文連接,否則保留追究法律責任的權利,

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/554699.html

標籤:其他

上一篇:k8s~RKE的方式升級Rancher集群

下一篇:返回列表

標籤雲
其他(160641) Python(38218) JavaScript(25485) Java(18210) C(15237) 區塊鏈(8270) C#(7972) AI(7469) 爪哇(7425) MySQL(7238) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5873) 数组(5741) R(5409) Linux(5347) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4588) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2435) ASP.NET(2404) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) .NET技术(1984) 功能(1967) HtmlCss(1956) Web開發(1951) C++(1933) python-3.x(1918) 弹簧靴(1913) xml(1889) PostgreSQL(1880) .NETCore(1863) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 網路傳輸中的重要引數(1)

    # 網路傳輸中的重要引數(1) 目前從事于音視頻流媒體領域的我,主要作業在傳輸層與應用層的交界處,研究如何針對流媒體場景實作高效而可靠的傳輸協議。作業兩年比較深刻的體會之一就是網路傳輸是個看似簡單清晰實則到處是坑的領域,本系列將首先對網路傳輸中重要的幾個引數進行梳理,討論各個引數的實際意義,以及各自 ......

    uj5u.com 2023-06-09 08:00:51 more
  • k8s~RKE的方式升級Rancher集群

    # kubectl安裝 在主機或者遠程訪問的筆記本上安裝kubectl命令列工具 rancher-cluster.yml(RKE組態檔) 通過RKE創建kubernetes集群,需要預先設定rancher-cluster.yml組態檔,通過這個組態檔安裝kubernetes集群,同時可以指定 ......

    uj5u.com 2023-06-09 08:00:44 more
  • 【技識訓累】演算法中的動態規劃【一】

    博客推行版本更新,成果積累制度,已經寫過的博客還會再次更新,不斷地琢磨,高質量高數量都是要追求的,工匠精神是學習必不可少的精神。因此,大家有何建議歡迎在評論區踴躍發言,你們的支持是我最大的動力,你們敢投,我就敢肝 ......

    uj5u.com 2023-06-09 08:00:36 more
  • 10.1. Java性能調優

    Java性能調優是一個復雜且重要的主題,它涉及到了JVM、垃圾收集器、記憶體管理、多執行緒、代碼優化等多個方面。在本節中,我們將對Java性能調優的基本概念和方法進行簡要介紹。 #### 10.1.1. 理解性能指標 在進行性能調優之前,我們首先需要了解主要的性能指標。以下是一些常見的性能指標: 1. ......

    uj5u.com 2023-06-09 08:00:30 more
  • EndNote參考文獻格式Output Styles界面介紹

    本文對**EndNote**軟體修改論文參考文獻**參考格式**的界面與各選項引數加以詳細介紹。 利用**EndNote**軟體進行論文參考文獻的插入可以說是非常方便;但其亦具有一個問題,就是對中文文獻的支持不太友好;之前也用過**NoteExpress**,這一國產軟體對于中文參考文獻的支持性很好 ......

    uj5u.com 2023-06-09 07:59:53 more
  • 現在公司都不缺人了?軟體測驗作業經歷3年,居然被坑了?防不勝防!

    大概介紹一下個人情況,女,本科,三年多測驗作業經驗,懂python,會寫腳本,會selenium,會性能,然而到今天都沒有收到一份offer!從年后就開始準備簡歷,年后上班的第一天就開始投,開始只是投了一些官網已久的崗位,并沒有收到面試邀請,得到的都是不匹配的反饋,一度懷疑是不是簡歷寫的不好,后來大... ......

    uj5u.com 2023-06-09 07:59:21 more
  • 代碼自動生成,給程式員帶來的是“春天”還是“寒冬”?

    **[CodeGeeX](https://codegeex.cn/)**受邀參與由AI大模型領域的青年中堅力量組織的思辨活動。在計算機編程領域,基于大模型能力的代碼生成工具,探討給程式員帶來的各種機會與挑戰。近期**[CodeGeeX](https://codegeex.cn/)** 2.0大版本上 ......

    uj5u.com 2023-06-09 07:59:09 more
  • 代碼自動生成,給程式員帶來的是“春天”還是“寒冬”?

    **[CodeGeeX](https://codegeex.cn/)**受邀參與由AI大模型領域的青年中堅力量組織的思辨活動。在計算機編程領域,基于大模型能力的代碼生成工具,探討給程式員帶來的各種機會與挑戰。近期**[CodeGeeX](https://codegeex.cn/)** 2.0大版本上 ......

    uj5u.com 2023-06-09 07:58:42 more
  • 讀改變未來的九大演算法筆記07_搜索引擎

    ![](https://img2023.cnblogs.com/blog/3076680/202306/3076680-20230608202206563-1748213850.png) # 1. 車庫軼事 ## 1.1. 1939年 ### 1.1.1. 戴夫·休利特(Dave Hewlett) ......

    uj5u.com 2023-06-09 07:56:45 more
  • 【技識訓累】演算法中的貪心演算法【一】

    博客推行版本更新,成果積累制度,已經寫過的博客還會再次更新,不斷地琢磨,高質量高數量都是要追求的,工匠精神是學習必不可少的精神。因此,大家有何建議歡迎在評論區踴躍發言,你們的支持是我最大的動力,你們敢投,我就敢肝 ......

    uj5u.com 2023-06-09 07:56:38 more