tc 介紹

目錄

1.背景

2. tc介紹

3. tc 丟包


1.背景

需要使用tc 構造丟包場景,注意tc 丟包不能確定丟棄的是否是payload 數據包,有可能丟棄 ack 包。

2. tc介紹

1. 無法正常使用
[root@pool-100-1-1-18 /]# 
[root@pool-100-1-1-18 /]# tc qdisc add dev swift1f0 root netem delay 500ms loss 40%
Error: Specified qdisc kind is unknown.
[root@pool-100-1-1-18 /]# 
[root@pool-100-1-1-18 /]# 
[root@pool-100-1-1-18 /]# tc -h
Usage:	tc [ OPTIONS ] OBJECT { COMMAND | help }tc [-force] -batch filename
where  OBJECT := { qdisc | class | filter | chain |action | monitor | exec }OPTIONS := { -V[ersion] | -s[tatistics] | -d[etails] | -r[aw] |-o[neline] | -j[son] | -p[retty] | -c[olor]-b[atch] [filename] | -n[etns] name | -N[umeric] |-nm | -nam[es] | { -cf | -conf } path-br[ief] }
[root@pool-100-1-1-18 /]# 2. 修復此問題
# 加載模塊
sudo modprobe sch_netem# 再次檢查是否加載成功
lsmod | grep sch_netem[root@pool-100-1-1-18 /]# 
[root@pool-100-1-1-18 /]# 
[root@pool-100-1-1-18 /]# lsmod |grep sch_netem      # 加載模塊
[root@pool-100-1-1-18 /]# 
[root@pool-100-1-1-18 /]# tc qdisc show
qdisc noqueue 0: dev lo root refcnt 2 
qdisc fq_codel 0: dev enp4s0 root refcnt 2 limit 10240p flows 1024 quantum 1514 target 5ms interval 100ms memory_limit 32Mb ecn drop_batch 64 
qdisc fq_codel 0: dev swift1f0 root refcnt 2 limit 10240p flows 1024 quantum 1514 target 5ms interval 100ms memory_limit 32Mb ecn drop_batch 64 
qdisc fq_codel 0: dev swift1f1 root refcnt 2 limit 10240p flows 1024 quantum 1514 target 5ms interval 100ms memory_limit 32Mb ecn drop_batch 64 
qdisc noqueue 0: dev virbr0 root refcnt 2 
[root@pool-100-1-1-18 /]# 
[root@pool-100-1-1-18 /]#  
[root@pool-100-1-1-18 /]# modprobe sch_netem       # 再次檢查是否加載成功
modprobe: FATAL: Module sch_netem not found in directory /lib/modules/4.18.0-553.6.1.el8.x86_64
[root@pool-100-1-1-18 /]# #  安裝 kernel-modules-extra(包含 sch_netem)
[root@pool-100-1-1-18 /]# 
[root@pool-100-1-1-18 /]# yum install kernel-modules-extra  
Repository extras is listed more than once in the configuration
Last metadata expiration check: 0:02:56 ago on Tue 05 Aug 2025 12:00:48 AM CST.
Dependencies resolved.
=========================================================================================================================================================Package                                     Architecture                  Version                                   Repository                     Size
=========================================================================================================================================================
Installing:kernel-modules-extra                        x86_64                        4.18.0-553.6.1.el8                        baseos                         11 MTransaction Summary
=========================================================================================================================================================
Install  1 PackageTotal download size: 11 M
Installed size: 687 k
Is this ok [y/N]: y
Downloading Packages:
kernel-modules-extra-4.18.0-553.6.1.el8.x86_64.rpm                                                                       2.8 MB/s |  11 MB     00:04    
---------------------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                                    2.8 MB/s |  11 MB     00:04     
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transactionPreparing        :                                                                                                                                 1/1 Installing       : kernel-modules-extra-4.18.0-553.6.1.el8.x86_64                                                                                  1/1 Running scriptlet: kernel-modules-extra-4.18.0-553.6.1.el8.x86_64                                                                                  1/1 Verifying        : kernel-modules-extra-4.18.0-553.6.1.el8.x86_64                                                                                  1/1 Installed:kernel-modules-extra-4.18.0-553.6.1.el8.x86_64                                                                                                         Complete!
[root@pool-100-1-1-18 /]# 
[root@pool-100-1-1-18 /]# 
[root@pool-100-1-1-18 /]# modprobe sch_netem   #  加載模塊
[root@pool-100-1-1-18 /]# 
[root@pool-100-1-1-18 /]# lsmod |grep sch_netem    # 再次檢查是否加載成功
sch_netem              24576  0
[root@pool-100-1-1-18 /]# 
[root@pool-100-1-1-18 /]# 
[root@pool-100-1-1-18 /]# 

到此已加載成功,可以使用tc

3. tc 丟包

1. 查看當前規則[root@pool-100-1-1-18 /]# 
[root@pool-100-1-1-18 /]# tc qdisc show dev swift1f0
qdisc fq_codel 0: root refcnt 2 limit 10240p flows 1024 quantum 1514 target 5ms interval 100ms memory_limit 32Mb ecn drop_batch 64 
[root@pool-100-1-1-18 /]# 2.丟包規則
2.1 固定間隔丟包  
# tc qdisc add dev <網卡名> root netem gap 10 delay 5000ms  # 每10個包丟1個,其余延遲5s[root@pool-100-1-1-18 /]# tc qdisc add dev swift1f0 root netem delay 500ms loss 50%
[root@pool-100-1-1-18 /]# 3. 查看當前規則
[root@pool-100-1-1-18 /]# 
[root@pool-100-1-1-18 /]# tc qdisc show dev swift1f0
qdisc netem 8009: root refcnt 2 limit 1000 delay 500ms loss 50%
[root@pool-100-1-1-18 /]# 4. 查看統計信息
# 發包后查看統計信息[root@pool-100-1-1-18 /]# 
[root@pool-100-1-1-18 /]# 
[root@pool-100-1-1-18 /]# tc -s qdisc show dev swift1f0
qdisc netem 8009: root refcnt 2 limit 1000 delay 500ms loss 50%Sent 168 bytes 4 pkt (dropped 3, overlimits 0 requeues 0) backlog 0b 0p requeues 0
[root@pool-100-1-1-18 /]# 
[root@pool-100-1-1-18 /]# 5. 刪除丟包規則
[root@pool-100-1-1-18 /]# 
[root@pool-100-1-1-18 /]# tc qdisc del dev swift1f0 root
[root@pool-100-1-1-18 /]# 
[root@pool-100-1-1-18 /]# 
[root@pool-100-1-1-18 /]# 
[root@pool-100-1-1-18 /]# tc qdisc show dev swift1f0
qdisc fq_codel 0: root refcnt 2 limit 10240p flows 1024 quantum 1514 target 5ms interval 100ms memory_limit 32Mb ecn drop_batch 64 
[root@pool-100-1-1-18 /]# 
[root@pool-100-1-1-18 /]# 

到此tc 丟包已實現

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

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

相關文章

LabVIEW注冊表操作

?本文圍繞LabVIEW中操作Windows 注冊表的 4 個 VI 展開&#xff0c;介紹其功能、使用場景等并對比&#xff0c;助力工程師高效運用注冊表交互功能。各 VI 功能說明&#xff08;一&#xff09;Write the Key功能&#xff1a;創建新注冊表鍵&#xff0c;設置其值&#xff0c;隨后…

阿里云部署若依后,瀏覽器能正常訪問,但是apifox和小程序訪問后報錯鏈接被重置

項目場景&#xff1a;阿里云部署若依后瀏覽器能正常通過https訪問,但是在apifox和小程序調用接口的時候生報錯E問題描述apifox報錯&#xff1a;curl報錯&#xff1a;通過curl可以清楚的看到通過域名是能準確的訪問到IP地址的&#xff0c;說明這個DNS是沒有問題的&#xff0c;但…

升級 Elasticsearch 到新的 AWS Java SDK

作者&#xff1a;來自 Elastic David Turner, Dianna Hohensee Elasticsearch 使用官方的 AWS Java SDK 集成了某些 Amazon Web Services (AWS) 功能。這些集成最早在近 10 年前發布的 Elasticsearch 2.0 版本中引入。 最近&#xff0c;AWS 宣布 Elasticsearch 過去十年使用的…

從0到1學習微服務項目黑馬頭條day01-《APP端登錄功能實現》

個人主頁&#xff1a;VON文章所屬專欄&#xff1a;黑馬頭條個人唯一微信&#xff1a;微信 有一起學習微服務的小伙伴可以加作者微信&#xff1a;單擊即可添加 目錄 一、前言 二、項目概述 1、技術棧 2、項目引入 三、改造項目 1、創建heima-leadnews-user 2、創建實體…

Renesas Electronics RZ/V2N 評估套件

簡介Renesas Electronics RZ/V2N評估套件采用RZ/V2N中檔嵌入式AI微處理器 (MPU) 為嵌入式人工智能 (AI) 應用提供全面的開發平臺。該評估套件包括兩塊板&#xff1a;主板 (RTK0EF0186C02000BJ)&#xff0c;緊湊的153mm x 100mm外形尺寸和RTK0EF0168B00000BJ擴展板。其核心是RZ/…

使用PHP與Apache實現服務器端文件管理

引言 作為前端開發者&#xff0c;你可能經常需要與服務器文件系統交互。本文將詳細介紹如何通過PHP配合Apache實現服務器端文件管理功能。即使你沒有任何PHP經驗&#xff0c;也能按照本教程實現完整解決方案&#xff01; 系統準備 PHP下載與安裝 訪問PHP官網下載頁面 選擇與…

在Word和WPS文字中如何輸入漢字的偏旁部首

如何在Word和WPS文字中輸入偏旁部首&#xff1f;許多輸入法會把常見的偏旁部首直接放到詞庫&#xff0c;對于詞庫中沒有的可以試試這個方法&#xff1a;先輸入一個有這個偏旁部首的字&#xff0c;盡量簡單一點的&#xff0c;然后選中這個字插入-符號-其他符號。滾動到這個偏旁部…

day44 力扣1143.最長公共子序列 力扣1035.不相交的線 力扣53. 最大子序和 力扣392.判斷子序列

最長公共子序列 給定兩個字符串 text1 和 text2&#xff0c;返回這兩個字符串的最長 公共子序列 的長度。如果不存在 公共子序列 &#xff0c;返回 0 。 一個字符串的 子序列 是指這樣一個新的字符串&#xff1a;它是由原字符串在不改變字符的相對順序的情況下刪除某些字符&…

應用7:用小白量化智能體金融模塊做一個股票選股工具

應用7&#xff1a;用小白量化智能體金融模塊做一個股票選股工具 【小白量化智能體】包含有豐富的金融模塊。可以讓智能體寫各種金融量化工具。 我用讓小白量化智能體寫一個股票選股工具。 我們給【小白量化智能體】一個程序生成話術。 幫我寫一個 選股 的應用程序&#xff0c;要…

Qt Frameless Widget跨平臺無邊框窗口

Qt開發的窗口程序&#xff0c;它的標題欄樣式是無法修改的&#xff0c;這個是系統來控制&#xff0c;程序可以調整標題&#xff0c;圖標等&#xff0c;但是各個系統可能表現不一致&#xff0c;比如說標題&#xff0c;window10下在標題欄最左邊&#xff0c;而UOS則在中間&#x…

使用 IntelliJ IDEA + Spring JdbcTemplate 操作 MySQL 指南

使用 IntelliJ IDEA Spring JdbcTemplate 操作 MySQL 完全指南 一、開發環境搭建&#xff08;基于 IDEA&#xff09; 1. 創建 Spring Boot 項目 打開 IDEA → New Project → Spring Initializr選擇&#xff1a; Project SDK: Java 17依賴項&#xff1a;Spring Web, Spring…

從憤怒的小鳥來看Unity武器拖尾的特效優化

目錄 前言 素材下載 介紹 官方文檔 不添加拖尾的效果 添加拖尾 代碼控制拖尾生成 拖尾排序問題 效果 修改拖尾高度和存活時間 效果 待機時無拖尾 效果 參考 前言 在游戲開發過程中&#xff0c;我們經常需要為武器添加拖尾特效&#xff0c;效果如下所示 Unity 自…

Web開發模式 前端渲染 后端渲染 身份認證

Web 開發模式 # 目前主流的Web 開發模式 兩種 一、基于 服務器端渲染 的傳統 Web開發模式 二、基于 前后端分離 的新型 Web開發模式# 服務端渲染的優缺點# 優點&#xff1a;1. 前端耗時少因為服務端負責動態生成 HTML內容&#xff0c;瀏覽器&#xff08;包括手…

C++ WonderTrader 源碼分析之浮點數處理

介紹 在WonderTrader的文件decimal.h中封裝了一些用于浮點數&#xff08;double&#xff09;處理的工具函數&#xff0c;主要目的是解決浮點數精度誤差帶來的比較問題&#xff0c;以及進行一些常用運算&#xff08;四舍五入、比較、取模等&#xff09;。下面我們逐行詳細解釋每…

指針——練習

sizeof和strlensizeofsizeof是用來計算變量所占內存空間大小的&#xff0c;單位是字節&#xff0c;如果操作數是類型&#xff0c;計算的是使用類型創建的變量所占內存空間的大小。sizeof只關注占用內存空間的大小&#xff0c;不在乎內存中存放什么數據。我們來看一下這個代碼&a…

華為云 Flexus 部署 coze-studio

華為云 Flexus 部署 coze-studio 一、前置 主機和程序&#xff1a;云主機&#xff08;Flexus L ubuntu&#xff09; coze-studio 部署方式&#xff1a;docker&#xff08;提前裝好的&#xff09; 字節跳動開源AI智能體開發平臺Coze&#xff0c;具備極低的硬件門檻——2核CPU…

Linux系統編程Day7 -- 基于Linux系統知識的第一個程序

往期內容回顧 自動化構建工具-make/Makefile gcc/g編譯及鏈接 Vim工具的使用 Linux常用工具&#xff08;yum與vim&#xff09; ?????? Linux系統編程Day4-- Shell與權限 編寫第一個Linux程序 今天我們要利用我們所學到的Linux語言來編譯第一個Linux程序&#xff0c;在進行…

安卓264和265編碼器回調編碼數據寫入.265或者.264文件、查看編碼數據是否正確、轉換為Mp4文件、查看Mp4文件信息等方法合集

一、寫入文件 1、變量定義 private FileOutputStream m265FileOutputStream null; private File m265File null; private static final String HEVC_265_FILE_NAME "output.265"; // 或 .265 private static final String AVC_264_FILE_NAME "output.264&qu…

如何打造一支AI時代下的IT團隊,為企業戰略目標快速賦能

執行摘要 在當前AI技術迅猛發展的背景下&#xff0c;中國中小企業正面臨著前所未有的數字化轉型機遇與挑戰。據最新調研顯示&#xff0c;2025年全球AI市場規模將突破5000億美元&#xff0c;而中國AI應用占比已達35%。與此同時&#xff0c;AI領域人才缺口高達1000萬人&#xff0…

機器學習-LinearRegression

1、 關鍵數學知識點&#xff1a; 邊緣概率密度 聯合密度對非關注變量積分&#xff1a;fX(x)∫fX,Y(x,y)dyf_X(x)∫f_{X,Y}(x,y)dyfX?(x)∫fX,Y?(x,y)dy&#xff1b; 條件概率密度 切片 fX∣Y(x∣y)fX,Y(x,y)/fY(y)f_{X|Y}(x|y)f_{X,Y}(x,y)/f_Y(y)fX∣Y?(x∣y)fX,Y?(x,y)…