首页 > 其他分享 >网络流量控制神器:深入理解 `tc` 命令及其实际应用

网络流量控制神器:深入理解 `tc` 命令及其实际应用

时间:2025-01-09 14:01:13浏览次数:3  
标签:qdisc 限速 网络 流量 网络流量 神器 tc

网络流量控制神器:深入理解 tc 命令及其实际应用

在现代互联网环境中,网络流量管理对系统稳定性和性能优化至关重要。作为 Linux 系统中强大的流量控制工具,tc(Traffic Control)为我们提供了对流量排队、限速、优先级管理等功能的全面控制。无论是开发测试还是生产环境下的性能调优,tc 都是网络工程师和 SRE 必备的工具之一。

本文将通过通俗易懂的讲解,介绍 tc 命令的基本概念、主要功能以及实际案例,帮助你快速上手。


一、什么是 tc 命令?

tc 是 Linux 内核中 Traffic Control 子系统的一部分,它可以通过 队列规则(Queueing Discipline, qdisc)分类器(Classifier) 来管理网络接口的出站流量。tc 的主要作用包括:

  1. 流量限速:限制某个网络接口或特定流量的上传/下载速度。
  2. 带宽管理:分配带宽优先级,保障关键业务的网络性能。
  3. 模拟网络环境:在测试环境中模拟丢包、延迟等网络异常。
  4. 流量统计:分析和统计网络流量的行为。

二、tc 的基本结构

tc 的核心是基于三个组件进行流量控制的:

  1. qdisc(队列规则):决定流量如何排队、发送和丢弃。常见的 qdisc 类型有:
    • pfifo_fast(默认队列):先入先出,简单高效。
    • htb(Hierarchical Token Bucket):层级令牌桶,常用于限速。
    • netem:用于网络延迟、丢包等异常模拟。
    • fq_codel:解决网络缓冲区膨胀问题。
  2. clas

标签:qdisc,限速,网络,流量,网络流量,神器,tc
From: https://blog.csdn.net/weixin_42587823/article/details/145032247

相关文章

  • Linux TCP连接数查询
    netstat-anput2统计连接数2.1统计80端口的连接数netstat-nat|grep-i"80"|wc-l2.2统计总连接数netstat-nat|wc-l2.3统计已连接上的,状态为establishednetstat-na|grepESTABLISHED|wc-l3统计所有请求状态及数量netstat-an|awk'/^tcp/{++S[$NF]}END{for......
  • 检测相邻递增子数组 II - LeetCode 3350 解题思路与代码解析
    检测相邻递增子数组II-LeetCode3350解题思路与代码解析在本篇博客中,我们将深入解析一道中等难度的算法题——检测相邻递增子数组II。通过这道题,我们将学习如何高效地处理数组中的递增子数组问题,并理解解决该问题的最佳策略。题目描述给定一个由n个整数组成的数组......
  • wx.getConnectedBluetoothDevices
    wx.getConnectedBluetoothDevices(Objectobject)基础库1.1.0开始支持,低版本需做兼容处理。以Promise风格调用:支持小程序插件:支持,需要小程序基础库版本不低于1.9.6微信鸿蒙OS版:支持相关文档:蓝牙介绍功能描述根据主服务UUID获取已连接的蓝牙设备。参数......
  • Switch Transformers: 通过简单高效的稀疏性扩展到万亿参数模型
    摘要在深度学习中,模型通常为所有输入重用相同的参数。专家混合(MixtureofExperts,MoE)模型则不同,它为每个输入示例选择不同的参数。结果是一个稀疏激活的模型——具有惊人的参数数量——但计算成本恒定。然而,尽管MoE取得了一些显著的成功,但其广泛采用仍受到复杂性、通信......
  • Spring 中的 @RestController 注解详解
    @RestController 是SpringMVC中常用的注解,通常用于构建 RESTfulWeb服务。它是 @Controller 和 @ResponseBody 的组合,简化了开发RESTful接口的流程。本文将详细介绍 @RestController 的使用场景、原理以及具体案例。1. @RestController 的作用@RestControl......
  • wx.getChannelsLiveInfo
    wx.getChannelsLiveInfo(Objectobject)基础库2.15.0开始支持,低版本需做兼容处理。以Promise风格调用:不支持小程序插件:不支持微信Windows版:支持微信Mac版:支持微信鸿蒙OS版:支持相关文档:视频号直播功能描述获取视频号直播信息参数Objectobject......
  • wx.getChannelsShareKey
    wx.getChannelsShareKey(Objectobject)基础库2.22.1开始支持,低版本需做兼容处理。以Promise风格调用:不支持小程序插件:不支持微信鸿蒙OS版:支持功能描述获取视频号直播卡片/视频卡片的分享来源,仅当卡片携带了分享信息、同时用户已授权该小程序获取视频号分享信息......
  • wx.getChannelsLiveNoticeInfo
    wx.getChannelsLiveNoticeInfo(Objectobject)基础库2.19.0开始支持,低版本需做兼容处理。以Promise风格调用:不支持小程序插件:不支持微信Windows版:支持微信Mac版:支持微信鸿蒙OS版:支持相关文档:视频号直播功能描述获取视频号直播预告信息参数Objecto......
  • A/B 系统之 bootctl 工具
    A/B系统之bootctl工具分别介绍了调试动态分区和虚拟A/B分区最常用的工具snapshotctl和dmctl,这一篇介绍bootctl(bootcontrol),一个专门用于设置BootControlHAL接口的工具。这个工具最常用的地方就是在Android系统命令行下用来检查A/B系统的槽位状态以及切换系统......
  • C# 使用心跳机制实现 TCP 客户端自动重连
    C#使用心跳机制实现TCP客户端自动重连简介一、心跳机制二、实现步骤1.创建TCP客户端2.实现心跳检测3.自动重连机制4.启动客户端和心跳检测三、注意事项简介在网络编程中,维持客户端与服务器之间的稳定连接是一项挑战,尤其是在不稳定的网络环境下。TCP连接......