linux下使用TC模擬弱網絡環境

linux下使用TC模擬弱網絡環境

模擬延遲傳輸簡介

netem 與 tc: netem 是 Linux 2.6 及以上內核版本提供的一個網絡模擬功能模塊。該功能模塊可以用來在性能良好的局域網中,模擬出復雜的互聯網傳輸性能,諸如低帶寬、傳輸延遲、丟包等等情 況。使用 Linux 2.6 (或以上) 版本內核的很多發行版 Linux 都開啟了該內核功能,比如 Fedora、Ubuntu、Redhat、OpenSuse、CentOS、Debian 等等。 tc 是Linux 系統中的一個工具,全名為 traffic control(流量控制)。tc 可以用來控制 netem 的工作模式,也就是說,如果想使用 netem ,需要至少兩個條件,一個是內核中的 netem 功能被包含,另一個是要有 tc。

需要注意的是:本文介紹的流控只能控制發包動作,不能控制收包動作,同時,它直接對物理接口生效,如果控制了物理的 eth0,那么邏輯網卡(比如 eth0:1)也會受到影響,反之,如果您在邏輯網卡上做控制,該控制可能是無效的。(注:虛擬機中的多個網卡可以在虛擬機中視為多個物理網卡)。

tc qdisc add dev eth0 root netem delay 100ms
# 該命令將 eth0 網卡的傳輸設置為延遲 100 毫秒發送。
# 更真實的情況下,延遲值不會這么精確,會有一定的波動,我們可以用下面的情況來模擬出
  • 帶有波動性的延遲值:
tc qdisc add dev eth0 root netem delay 100ms 10ms
# 該命令將 eth0 網卡的傳輸設置為延遲 100ms ± 10ms (90 ~ 110 ms 之間的任意值)發送。

還可以更進一步加強這種波動的隨機性:

tc qdisc add dev eth0 root netem delay 100ms 10ms 30%
# 該命令將 eth0 網卡的傳輸設置為 100ms ,同時,大約有 30% 的包會延遲 ± 10ms 發送。示例:現在 ping 一下 216 機器:
# 可以看出數據明顯的波動性。
  • 模擬網絡丟包:
tc qdisc add dev eth0 root netem loss 1%
# 該命令將 eth0 網卡的傳輸設置為隨機丟掉 1% 的數據包。示例:在 216 上執行
tc qdisc add dev eth0 root netem loss 10%
# 顯示 16 個包只有 13 個收到了。也可以設置丟包的成功率:
tc qdisc add dev eth0 root netem loss 1% 30%
# 該命令將 eth0 網卡的傳輸設置為隨機丟掉 1% 的數據包,成功率為 30% 。
  • 刪除網卡上面的相關配置:將之前命令中的 add 改為 del 即可刪除配置:
tc qdisc del dev eth0 root netem #自己加的配置
# 該命令將 刪除 eth0 網卡的相關傳輸配置
  • 模擬包重復:
tc qdisc add dev eth0 root netem duplicate 1%
# 該命令將 eth0 網卡的傳輸設置為隨機產生 1% 的重復數據包 。6 模擬數據包損壞:
tc qdisc add dev eth0 root netem corrupt 0.2%
# 該命令將 eth0 網卡的傳輸設置為隨機產生 0.2% 的損壞的數據包。 (內核版本需在 2.6.16 以上)
  • 模擬數據包亂序:
tc qdisc change dev eth0 root netem delay 10ms reorder 25% 50%
# 該命令將 eth0 網卡的傳輸設置為:有 25% 的數據包(50%相關)會被立即發送
# 其他的延遲 10 秒。# 新版本中,如下命令也會在一定程度上打亂發包的次序:
tc qdisc add dev eth0 root netem delay 100ms 10ms
  • 查看已經配置的網絡條件:
tc qdisc show dev eth0
# 該命令將 查看并顯示 eth0 網卡的相關傳輸配置9
eg:
tc qdisc add dev ens32 root netem delay 2000ms 100ms 20%
tc qdisc del dev ens32 root netem delay 2000ms 100ms 20%
tc qdisc del dev ens32 root

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

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

相關文章

CDN 是什么 、CDN 引入

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。 CDN 的全稱是 Content Delivery Network,即內容分發網絡。 CDN的基本原理是廣泛采用各種緩存服務器,將這些緩存…

長壽的人會有的8個健康理念

長壽的人會有的8個健康理念。年輕的時候總是在揮霍身體健康,吸煙、喝酒沒有節制,到老了之后身體會出現各種問題。老年人如果想要身體健康、長壽的話,就要從日常生活習慣做起。下面小編就來介紹長壽的人會有的8個健康理念: 1、少…

Ubuntu下selenium+Chrome的安裝使用

Ubuntu下seleniumChrome的安裝使用 安裝 chrome 官網下載安裝包 sudo dpkg -i google-chrome-stable_current_amd64.deb whereis google-chrome 安裝selenium pip3 install selenium 下載chromedriver(火狐使用geckodriver)驅動 http://npm.taobao.org/mirrors/chromed…

shoot for用法

Look, there are people like Ross who need to shoot for the stars, with his museum, and his papers getting published.---《老友記》 而像羅斯這種人則追求卓越,博物館,發表論文。 爭取;為...而努力Were shooting this year for a 50% increase in…

VUE : 雙重 for 循環寫法、table 解析任意 list 、萬能表格組件、解析一維數組、動態生成 table 所有數據

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。 1.需求: 我想要一個 table 組件能在實際調用時動態生成所有的 tr 、td 。 后端返回的只是一個 list , 前端頁…

安全離職妙招

高招的離職,不但有可能讓前老板幫你說好話,讓前同事成為你的啦啦隊,未來若有好機會,還會想到你,只要你學會克服離職流程中的五個尷尬情境。 情境一、離職怎么提? 口頭請辭,最先告知上司。 有…

字節內推~

大佬們有興趣來字節約飯么,下面是內推鏈接~ 社招內推鏈接:https://job.toutiao.com/s/LwpKWU8 校招內推鏈接:https://job.toutiao.com/s/LwsFw6g

使用編輯工具快速創建實體對象的方法

快速創建java類 (\w)\s(.) /** $2 */\nprivate String $1; search Mode 為 Reqular expression 轉載于:https://www.cnblogs.com/otways/p/11283303.html

超詳細 圖解 : IntelliJ IDEA 逆向生成 JAVA 實體類

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。 1.配置數據庫,,這里連接的是mysql。 2.填寫 連接數據庫的信息,填寫完成后可以點擊Test Connection,測試一下是否…

用面粉和醋洗頭 讓你的頭發黑亮又濃密

用面粉和醋洗頭發,別看這些最廉價、最普通的東西,卻能帶來意想不到的效果。調配這種洗頭液很簡單,取50~100克面粉,加入少許涼水調成稀面糊,倒入沸水中煮開,然后加入25~50克醋&#x…

leetcode練習——數組篇(1)(std::ios::sync_with_stdio(false);std::cin.tie(nullptr);)

題號1. 兩數之和: 給定一個整數數組 nums 和一個目標值 target,請你在該數組中找出和為目標值的那 兩個 整數,并返回他們的數組下標。 你可以假設每種輸入只會對應一個答案。但是,你不能重復利用這個數組中同樣的元素。 示例: …

intellij idea 中去除 @Autowired 注入對象帶來的紅色下劃線報錯提示

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。 PS: 有 2 種方法,第 2 種方法更簡單,在此謝謝好心友人的評論。 方法1: idea中通過Autow…

根據目標選擇減肥方法 少做無用功

不同的美體目標適合的減肥方法也是不同的,有些人想減去大部分體重,而有些人只是想讓身體曲線更柔美,這就要求有相應的減肥方法,對癥下藥,才會讓減肥少做無用功。 目標:我想穿上小一碼的衣服 建議&#x…

Coolite動態加載CheckboxGroup,無法在后臺中獲取

Coolite在后臺動態加載CheckboxGroup&#xff0c;頁面顯示都正常&#xff0c;但是在后臺去獲取選中的checkbox時&#xff0c;使用下方法&#xff1a; ///<summary>///獲取所選權限 ///</summary>///<returns></returns>privatestringGetPermiss…

基于java的數據結構學習——動態數組C++類模板(含拷貝構造,重載常見運算符)

之前實現了java的動態數組&#xff0c;試著寫了個C版的&#xff0c;同樣對時間復雜度振蕩進行了處理。純手打&#xff0c;代碼如下 &#xff1a; // // Created by PC-Saw on 2018/12/19. //#ifndef DATA_STRUCTURE_MYARRAY_H #define DATA_STRUCTURE_MYARRAY_H#include <i…

科目三考試過程詳解

科目三是考駕照的最后一項考試&#xff0c;所以考生在這關都很注意&#xff0c;但是有可能是由于過于緊張都難免會有些失誤&#xff0c;如果沒過的話&#xff0c;那也就意味著您拿照的時間又延長了另外還要交補考費。因此很多學員都想一次性把這項考試通過&#xff0c;那么我們…

圖解 IDEA 中 springboot 項目 MyBatis Generator 逆向生成實體類及 mapper 配置文件

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 一、準備工作&#xff1a; 1. 新建一個 配置文件&#xff1a;generatorConfig.xml 。 <?xml version"1.0" encoding&qu…

關于IIS 7.5 限制連接數與流量限制模塊

網頁中的視頻是用戶喜聞樂見的常見形式之一&#xff0c;并在主要的站點中中以某種形式&#xff08;產品視頻、教程視頻、理財場景、user generated content、消費報告等&#xff09;在更廣泛的應用。 其中的一個挑戰是把視頻加入到站點&#xff0c;雖然這并不花費很多代價。高質…

2014版學車考駕照精華攻略 總有一個你需要!趕緊收藏吧!!

新交規&#xff0c;新駕考&#xff0c;拿下本本&#xff0c;著實不容易。2013的你&#xff0c;是否已經踏上學車征程&#xff0c;為了順利拿到本本而苦于八方搜索&#xff0c;四處奔波&#xff0c;一心只為獲得有所幫助的經驗之談、簡單易懂的學車攻略呢&#xff1f;本著鋤強扶…

mybatis 逆向工程生成的 Example 類的使用

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 一.逆向工程 逆向工程可以針對單表自動生成 mybatis 執行所需要的代碼&#xff08;mapper.java,mapper.xml、po&#xff09;, 根據數據…