從阻抗匹配看擁塞控制

先來理解阻抗匹配,但我不按傳統方式解釋,因為傳統方案你要先理解如何定義阻抗,然后再學習什么是輸入阻抗和輸出阻抗,最后再看如何讓它們匹配,而讓它們匹配的目標僅僅是信號不反射,以最大能效被負載接收。

既然這樣,何不直接從信號反射以及如何讓它不反射入手。

于是我換一種方式解釋阻抗匹配。

假設一個非常良好的電路,它可以最佳(最逼近理想狀態,極端接近無損)的方式傳輸脈沖信號:
在這里插入圖片描述

現在拿掉 10 歐負載換成 100 歐負載,它對電壓推動的電流阻礙顯然更大(樸素的阻抗),會造成電容充電超過 5 V,接下來信號通過這段電路后,額外的 (m - 5)V 會觸發電容往回放電,而額外放點產生額外信號:
在這里插入圖片描述

反射的本質在于處處存在的電容(電路里的電容以及分布電容),因此我省略了處處存在的電感(電路里的電感以及分布電感)。解法也很直接,在前面串聯一個 90 歐電阻,或者在后面并聯一個滿足 1/x + 1/100 = 1/10 的電阻即可。

現在再來深入理解一下背后的成因就簡單了。電容有什么特殊的?

信號可看做變化的電壓,變化的電壓可對電容充電,而電容異步放電則產生新的變化的電壓,和信號疊加就污染了信號。變化導致的新變化被釋放與原變化疊加,而電容恰好可存儲電荷產生變化的電壓。解決方案就是讓負載把變化的電壓全部吸收而不被異步保存在電容里。

當電阻變化時必須小心翼翼處理電容和電阻的關系。處理好關系的電路就是阻抗匹配電路,意思是發出的信號恰好是負載完全吸收的,沒有反射,否則就要白白消耗掉能量,這部分能量恰好來自信號反射,反射的能量永遠只有負效應。這是一個自然律,屬于守恒律的一種體現,不可違背。

直流阻抗匹配可稱做電阻匹配,即兩個電阻相等時,功率最高。雖然無法從變化的電壓理解直接阻抗,但在微觀層面,兩個電阻不相等時,考慮分布電容和分布電感自感,它依然是電容充放電導致的信號反射導致。

有趣且稍微諷刺的是,在宏觀的網絡傳輸領域,對于廣域網,專家們采用了直流電阻匹配模型,卻完全沒有注意它的微觀結構,而對于 DCN,專家們采用了交流信號模型卻忽略 “阻抗匹配”。

在廣域網,buffer 被單獨考慮,就像一個直流回路的固定的電阻,雅各布森管道中,bdp = buffer,但實際上,它的作用應該是交流回路的電容,這個認知顛倒,是網絡擁塞和丟包重傳等復雜問題的根源。

一個大 buffer 后一個小 bw 端口,就像一個大電容后并聯一個小電阻,電容非常容易被過度充電后 “放電反射噪聲”,而人們對其視而不見的原因僅僅是因為數據包不會向前反射。

由于大電容放電受到到達信號和負載吸收的共同影響,放電時刻不確定,和 buffer 清空時刻不確定一樣,而 sender 重傳取決于 rtt,而 rtt 部分取決于 buffer,重傳流量確實是 buffer 的反射,而重傳流量與原始流量疊加在一起,對 buffer 進行無差別影響 “充放電”,形成一個閉環回路。而整個回路的傳輸能效取決于阻抗是否匹配,顯然按照上面的論述,廣域網的阻抗是不匹配的,因此傳輸效能很低。

遺憾的是,人們一開始就沒有向著阻抗匹配的方向(delay-based cc 有這個意思)去優化而選擇了 aimd,而 aimd 準確說并不是做擁塞控制的。

變化的變化產生新的變化疊加到原始變化,這是非常復雜的阻抗匹配問題,在 DCN,人們竟然敢以為 PFC 是方案而不是問題本身。簡單講,PFC 就是個故意的反射實例,任何數據只有被 receiver 接收后才算數,否則被阻滯在網絡中并不比丟掉它好,這兩種情況對于 receiver 而言都是沒收到。

人們一直試圖端到端區分擁塞丟包和隨機丟包或者試圖找一種算法直接檢測擁塞,如果擁塞,就意味著存在某種失配,調整 cwnd/pacing 是唯一應對。檢測到擁塞,就調整 “阻抗”,這是一種很自然的方式,減少電容電荷,避免反射。

此前我提到過,端到端由于信息精度存在上限,無法區分丟包類型,更別提擁塞檢測,但隨后我也提過,轉發節點的信息非常精確,它可通過 ECN 間接告訴 sender,然而還有更有效的方法,直接調整 buffer 或帶寬,連帶著調整 wred,這就是阻抗匹配的思路,要么sender 串個電阻,要么 receiver 并個電阻。

統計復用網絡上的阻抗匹配本身只有統計意義,要拿 buffer 統計期望說話,任何瞬時度量對整體結果都無效,這是與電路的阻抗匹配完全不同的地方。但與此相關,這就是我一直質疑 bbr 的點,bbr 的推薦參數配置到底有多大的普遍性呢,它試圖以單流精確度量網絡的方法論是不是也是錯誤的呢?

最后看一個與電路類似的系統,人體循環系統,全靠時鐘滴答驅動,精確阻抗匹配。

從心臟泵出的血具有波動性,即心跳和脈搏,依靠這種波動動力將血液推到全身。進化幾乎完全避免了血液反射造成的能量損耗,方案很簡單,主干和分支截面積收斂比等于 1。隨著血管分支越來越多,血管越來越細,而越細的血管阻力越大,血流越慢,這正好可以讓血細胞安排各類氧氣,二氧化碳,營養物質在如此低速下上下車:
在這里插入圖片描述

網絡收斂比為 1,完全避免了擁塞(血栓容錯的彈性不考慮),值得注意的是,循環系統不以拓撲顯示差異,而以血管形態(長度和密度)顯示差異,比如不同器官的血管形態也不同,但無論如何,干線和分支的收斂比都是 1,最終某處分得的血量就是 C * l1/L1 * l2/L2 …

可見,三種形態的網絡,電路,互聯網/DCN,循環系統展示三種特別之處,但無論如何阻抗匹配的含義是一致的:減少流量的變化引起新的變化與原始流量疊加,這情況的后果就是能耗被白白浪費掉。

浙江溫州皮鞋濕,下雨進水不會胖。

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

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

相關文章

面試寶典之自我介紹

聽人勸、吃飽飯,奉勸各位小伙伴,不要訂閱該文所屬專欄。 如需要項目實戰或者是體系化資源,文末名片加V! 作者:哈哥撩編程,工作十余年, 從事過全棧研發、產品經理等工作,目前在公司擔任研發部門CTO。榮譽:2022年度博客之星Top4、2023年度超級個體得主、谷歌與亞馬遜開發…

Amazon CodeWhisperer 開箱初體驗

文章作者:Coder9527 科技的進步日新月異,正當人工智能發展如火如荼的時候,各大廠商在“解放”碼農的道路上不斷創造出各種 Coding 利器,今天在下就帶大家開箱體驗一個 Coding 利器: Amazon CodeWhisperer。 亞馬遜云科…

99基于matlab的小波分解和小波能量熵函數

基于matlab的小波分解和小波能量熵函數,通過GUI界面導入西儲大學軸承故障數據,以可視化的圖對結果進行展現。數據可更換自己的,程序已調通,可直接運行。 99小波分解和小波能量熵函數 (xiaohongshu.com)https://www.xiaohongshu.co…

【LeetCode每日一題合集】2023.11.27-2023.12.3 (?)

文章目錄 907. 子數組的最小值之和(單調棧貢獻法)1670. 設計前中后隊列?(設計數據結構)解法1——雙向鏈表解法2——兩個雙端隊列 2336. 無限集中的最小數字解法1——維護最小變量mn 和 哈希表維護已經去掉的數字解法2——維護原本…

二分查找|前綴和|滑動窗口|2302:統計得分小于 K 的子數組數目

作者推薦 貪心算法LeetCode2071:你可以安排的最多任務數目 本文涉及的基礎知識點 二分查找算法合集 題目 一個數組的 分數 定義為數組之和 乘以 數組的長度。 比方說,[1, 2, 3, 4, 5] 的分數為 (1 2 3 4 5) * 5 75 。 給你一個正整數數組 nums 和一個整數…

response應用及重定向和request轉發

請求和轉發: response說明一、response文件下載二、response驗證碼實現1.前置知識:2.具體實現:3.知識總結 三、response重定向四、request轉發五、重定向和轉發的區別 response說明 response是指HttpServletResponse,該響應有很多的應用&…

JavaScript 一些少見多怪的玩意

$$() [].forEach.call($$("*"), function (a) {a.style.outline "1px solid #" (~~(Math.random() * (1 << 24))).toString(16);}); 直接復制到控制臺&#xff0c;頁面效果就是頁面中不同的HTML結構被不同顏色的框圈著。 原理&#xff1a; $$函數…

力扣面試150題 | 輪轉數組

力扣面試150題 &#xff5c; 輪轉數組 題目描述解題思路代碼實現 題目描述 189.輪轉數組 給定一個整數數組 nums&#xff0c;將數組中的元素向右輪轉 k 個位置&#xff0c;其中 k 是非負數。 示例 1: 輸入: nums [1,2,3,4,5,6,7], k 3 輸出: [5,6,7,1,2,3,4] 解釋: 向右輪…

Kafka在微服務架構中的應用:實現高效通信與數據流動

微服務架構的興起帶來了分布式系統的復雜性&#xff0c;而Kafka作為一款強大的分布式消息系統&#xff0c;為微服務之間的通信和數據流動提供了理想的解決方案。本文將深入探討Kafka在微服務架構中的應用&#xff0c;并通過豐富的示例代碼&#xff0c;幫助大家更全面地理解和應…

PaddleClas學習3——使用PPLCNet模型對車輛朝向進行識別(c++)

使用PPLCNet模型對車輛朝向進行識別 1 準備環境2 準備模型2.1 模型導出2.2 修改配置文件3 編譯3.1 使用CMake生成項目文件3.2 編譯3.3 執行3.4 添加后處理程序3.4.1 postprocess.h3.4.2 postprocess.cpp3.4.3 在cls.h中添加函數聲明3.4.4 在cls.cpp中添加函數定義3.4.5 在main.…

時間序列預測 — VMD-LSTM實現單變量多步光伏預測(Tensorflow):單變量轉為多變量

目錄 1 數據處理 1.1 導入庫文件 1.2 導入數據集 1.3 缺失值分析 2 VMD經驗模態分解 3 構造訓練數據 4 LSTM模型訓練 5 預測 1 數據處理 1.1 導入庫文件 import time import datetime import pandas as pd import numpy as np import matplotlib.pyplot as plt f…

優化算法 學習記錄

文章目錄 相關資料 優化算法梯度下降學習率牛頓法 隨機梯度下降小批量隨機梯度下降動量法動量法解決上述問題 AdaGrad 算法RMSProp算法Adam學習率調度器余弦學習率調度預熱 相關資料 李沐 動手學深度學習 優化算法 優化算法使我們能夠繼續更新模型參數&#xff0c;并使損失函…

Elasticsearch:使用 Elasticsearch 向量搜索及 RAG 來實現 Chatbot

Elasticsearch 的向量搜索為我們的語義搜索提供了可能。而在人工智能的動態格局中&#xff0c;檢索增強生成&#xff08;Retrieval Augmented Generation - RAG&#xff09;已經成為游戲規則的改變者&#xff0c;徹底改變了我們生成文本和與文本交互的方式。 RAG 使用大型語言模…

Android TextView 超出省略失效 解決方法

解決方法 我是在使用 ConstraintLayout 嵌套 LinearLayout 水平方向&#xff0c;TextView 又使用layout_weight&#xff08;權重&#xff09;情況下出現這種問題&#xff0c;最后將layout_width從 0dp 改為 1dp 得以解決。 <androidx.constraintlayout.widget.ConstraintLa…

MongoDB的刪除文檔、查詢文檔語句

本文主要介紹MongoDB的刪除文檔、查詢文檔命令語句。 目錄 MongoDB刪除文檔MongoDB查詢文檔 MongoDB刪除文檔 MongoDB是一種基于文檔的NoSQL數據庫&#xff0c;它使用BSON格式存儲文檔。刪除文檔是MongoDB數據庫中的常見操作之一。 下面是MongoDB刪除文檔的詳細介紹和示例&am…

當年為什么選擇計算機?

確切的來說不是遠的計算機&#xff0c;高考那會計算機很熱門&#xff0c;根本考不上&#xff01;學習了一個和計算機關系很密切的專業&#xff0c;編程搞得好&#xff0c;才能找到好工作&#xff0c;才能有飯吃&#xff01;記得當年我還跑去武漢大學的計算機課堂和人家一起聽課…

導入自定義模塊出現紅色波浪線,但是能正常執行

問題描述&#xff1a; 導入自己定義的模塊時&#xff0c;出現紅色波浪線&#xff0c;可以繼續執行 解決&#xff1a; 在存放當前執行文件的文件夾右鍵&#xff0c;然后將其設置為sources root即可 結果&#xff1a;

基于深度學習yolov5實現安全帽人體識別工地安全識別系統-反光衣識別系統

歡迎大家點贊、收藏、關注、評論啦 &#xff0c;由于篇幅有限&#xff0c;只展示了部分核心代碼。 文章目錄 一項目簡介 二、功能三、系統四. 總結 一項目簡介 實現安全帽人體識別工地安全識別系統需要使用深度學習技術&#xff0c;特別是YOLOv5算法。下面是對基于YOLOv5實現安…

帶你真正理解web地圖切片規則

很多時候我們即使做完了項目還是對切片規則一知半解&#xff0c;只知道照著例子寫代碼&#xff0c;不理解WMTSCapabilities文件中參數的具體含義&#xff0c;也無法理解切片規則是如何產生的&#xff0c;不知道經緯度切圖和平面切圖的差別是啥&#xff0c;等等種種疑問&#xf…

Leetcode 39 組合總和

題意理解&#xff1a; 一個 無重復元素 的整數數組 candidates 和一個目標整數 target 從candidates 取數字&#xff0c;使其和 target &#xff0c;有多少種組合&#xff08;candidates 中的 同一個 數字可以 無限制重復被選取&#xff09; 這道題和之前一道組合的區別&am…