漏桶算法與令牌桶算法

漏桶算法(Leaky Bucket)是網絡世界中流量整形(Traffic Shaping)或速率限制(Rate Limiting)時經常使用的一種算法,它的主要目的是控制數據注入到網絡的速率,平滑網絡上的突發流量。漏桶算法提供了一種機制,通過它,突發流量可以被整形以便為網絡提供一個穩定的流量。

?

  漏桶可以看作是一個帶有常量服務時間的單服務器隊列,如果漏桶(包緩存)溢出,那么數據包會被丟棄

  漏桶算法的基本內容如下:

  * 漏桶算法強制一個常量的輸出速率而不管輸入數據流的突發性。當輸入空閑時,該算法不執行任何動作;

  * 主機在每一個時間片向網絡注入一個數據包,因此產生了一致的數據流,平滑了突發的流量;

  * 當數據包具有相同尺寸的時候(例如ATM信元),每個時間片傳輸一個數據包的工作機制沒有任何問題。但對于可變包長,這種工作機制可能存在一點問題,此時,最好每個時間片傳輸固定數目的字節。例如:如果每個時間片傳輸1024字節,那么一個時間片允許傳輸一個1024字節的包,兩個512字節的包,或者四個 256字節的包;

  在概念上,漏桶算法可以作如下理解:

  * 到達的數據包(網絡層的PDU)被放置在底部具有漏孔的桶中(數據包緩存);

  * 漏桶最多可以排隊b個字節,漏桶的這個尺寸受限于有效的系統內存。如果數據包到達的時候漏桶已經滿了,那么數據包應被丟棄;

  * 數據包從漏桶中漏出,以常量速率(r字節/秒)注入網絡,因此平滑了突發流量。

  在流量整形中還存在另外一個流行的算法:令牌桶算法(Token Bucket)。有時人們將漏桶算法與令牌桶算法錯誤地混淆在一起。而實際上,這兩種算法具有截然不同的特性并且為截然不同的目的而使用。它們之間最主要的差別在于:漏桶算法能夠強行限制數據的傳輸速率,而令牌桶算法能夠在限制數據的平均傳輸速率的同時還允許某種程度的突發傳輸

  在某些情況下,漏桶算法不能夠有效地使用網絡資源。因為漏桶的漏出速率是固定的參數,所以,即使網絡中不存在資源沖突(沒有發生擁塞),漏桶算法也不能使某一個單獨的流突發到端口速率。因此,漏桶算法對于存在突發特性的流量來說缺乏效率。而令牌桶算法則能夠滿足這些具有突發特性的流量。通常,漏桶算法與令牌桶算法可以結合起來為網絡流量提供更大的控制。

?

  漏桶算法的應用實例:

  在ATM網絡的交換層,漏桶算法可以用來實現CBR業務。當數據流量超過協商速率一段時間后,漏桶(緩存)將會溢出。這時需要檢查每一個信元中的信元丟失優先級(CLP)字段,低優先級的信元將會被丟棄并被原始發送設備重新傳輸。

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

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

相關文章

java linux 調用32位so_Linux上TCP的幾個內核參數調優

Linux作為一個強大的操作系統,提供了一系列內核參數供我們進行調優。光TCP的調優參數就有50多個。在和線上問題斗智斗勇的過程中,筆者積累了一些在內網環境應該進行調優的參數。在此分享出來,希望對大家有所幫助。調優清單好了,在…

jquery中的選擇器

jquery選擇器 jquery用法思想 選擇某個網頁元素,然后對它進行某種操作 jquery選擇器 jquery選擇器可以快速地選擇元素,選擇規則和css樣式相同 基礎選擇器 //通過id來獲取元素 document.getElementById(); // $(#logo).css(border,solid 2px red); //…

【好文收藏】【持續更新】今天你機器學習了嗎

?數學建模常用模型23:馬爾可夫預測方法_HaLosec_Wei-CSDN博客_馬爾可夫模型預測法 ?simhash算法及原理簡介_lengye7的博客-CSDN博客_simhash ?👍使用機器學習構建簡單金融風控反欺詐模型(一)EDAXGBOOST - 知乎 Python機器學…

H.264碼率控制機制

H.264標準碼率控制算法步驟如下:1.計算當前幀的目標碼字,并將其限定到HRD的邊界中。2.通過線性模型(式4.5)預測當前幀中基本單元的MAD。 3.為未編碼基本單元分配碼字。4.通過二次R&a…

[dp]最長單調遞增子序列LIS

https://www.51nod.com/tutorial/course.html#!courseId12 解題關鍵: 如果將子序列按照長度由短到長排列,將他們的最大元素放在一起,形成新序列$B\left\{ {{b_1},{b_2}, \ldots \ldots ,{b_j}} \right\}$,則序列$B$滿足${b_1} &l…

jQuery中的元素操作

jQuery元素操作 通過jQuery可以操作控制元素的樣式,文本,屬性等 jquery樣式操作 css操作行內樣式 // 獲取div的樣式 $("div").css("width"); $("div").css("color");//設置div的樣式 $("div").css("width",&q…

指針結構體函數-事實上能夠這樣具體理解

今天一大早登了下QQ空間,看到本科的一個學弟發表一篇日志。寫關于西電微軟俱樂部面試題的解答,寫的非常不 錯。我也一下子起興了,由于我以前也是被指針困惑非常久。搞不清頭緒,本科到研究生。我也筆試面試不下二十次 了。每次面試…

【python畢業設計】Django框架實現學生信息管理系統

Django框架實現學生信息管理系統 演示視頻:Django學生信息管理系統_騰訊視頻 演示界面內容如下 總體概括 注冊流程 首先進行輸入用戶名(郵箱)、密碼以及驗證碼,輸入完之后點擊注冊按鈕。如果輸入的不正確,提示錯誤信…

python中continue只結束本次循環_循環(while,break,continue),轉義字符

Apple iPhone 11 (A2223) 128GB 黑色 移動聯通電信4G手機 雙卡雙待 4999元包郵 去購買 >01. 程序的三大流程 在程序開發中,一共有三種流程方式: 順序 —— 從上向下,順序執行代碼 分支 —— 根據條件判斷,決定執行代碼的 分支 …

碼率控制技術原理

引起編碼器的輸出比特碼率波動的原因主要有兩個。首先,數字視頻信號中包含了大量的時域和空域冗余,編碼器的主要任務就是去除這些冗余。由于時間冗余和空間冗余是隨機的,從而造成編碼器輸出比特率波動。另一個原因是變長編碼,變長…

python如何安裝pip

pip的安裝操作 pip簡介 pip 是一個現代的,通用的 Python 包管理工具。提供了對Python 包的查找、下載、安裝、卸載的功能。 環境搭建 安裝pip首先要安裝python,可以參考python安裝教程 安裝完python后,可以在cmd中輸入pip list 測試一下pip是否默認附帶著安裝,若…

【排序算法】python 十大經典排序算法(全網最詳)

排序算法可以分為內部排序和外部排序,內部排序是數據記錄在內存中進行排序,而外部排序是因排序的數據很大,一次不能容納全部的排序記錄,在排序過程中需要訪問外存。常見的內部排序算法有:插入排序、希爾排序、選擇排序…

最新海康攝像機、NVR、流媒體服務器、回放取流RTSP地址規則說明

本文檔主要介紹海康威視設備預覽、回放、流媒體取流的RTSP URL和IE直接預覽、回放的HTTP URL。RTSP為取流協議,取到碼流后需要解碼顯示,可以通過VLC播放器進行測試,IE等瀏覽器網頁不支持RTSP協議直接取流預覽或者回放。網頁上需要跳過登錄界面…

pug模板引擎(原jade)

前面的話 為什么要引入pug,pug有什么特別之處呢?有一些嵌套層次較深的頁面,可能會出現巢狀嵌套,如下圖所示 在后期維護和修改時,一不小心少了一個尖括號,或者某個標簽的開始和閉合沒有對應上,就…

python安裝環境傻瓜式安裝_前后端分離——前端開發環境傻瓜式一步到位 nodejs ruby python nginx 安裝搭建配置...

前端開發環境一步到位 一、準備工作 nodejs安裝 安裝:next->next.... Ruby安裝 安裝:next->next.... 需要配置到path:將安裝目錄復制到環境變量中,跟jdk環境變量配置一樣。 注意下一步:Python安裝 安裝&#xff…

【Python】Python學到什么程度可以面試工作?------持續更新 ...

前言: 從事python學習,有爬蟲、web后臺、深度學習相關經驗, 坐標北京歡迎騷擾。 本答案力求簡潔和直擊重點,代碼部分使用Python3,更詳細的解釋請Google,回答有誤請務必提醒答主,我將及時改正。…

H.264的碼率控制算法

H.264的碼率控制算法采用了多種技術,其中包括自適應基本單元層(Adaptive Basic Unit Layer)、流量往返模型(Fluid Traffic Model)、線性MAD模型、二次率失真模型等。并且采用了分層碼率控制策略,共分為三層:GOP層、幀層和基本單元…

消息中間件Client模塊劃分

上圖是之間討論確定的系統架構(后續內容會按照這個架構來敘述),其中: 客戶端包含Producer和Consumer兩大塊 客戶端需要和NameServer交互來獲取元數據 客戶端需要和Broker交互來讀寫消息 Client模塊劃分 1. 網絡模塊 第一個仍然是…

詳解HashMap數據結構實現

HashMap的設計是由數組加鏈表的符合數據結構,在這里用自己的語言以及結合源碼去總結一下,如果有不對的地方希望評論指正,先拱手謝謝。 HashMap是日常中非常常用的一種數據結構,我們要想深入了解學習任何一門技術,都是要…

java web開發學習手冊_Java 人必備學習手冊開發下載!

今天給大家分享一套 5000 頁的 Java 學習手冊,新鮮出爐!此手冊內容專注 Java技術,包括 JavaWeb,SSM,Linux,Spring Boot,MyBatis,MySQL,Nginx,Git,…