那曲檬骨新材料有限公司

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀(guān)看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Linux下的流量控制原理

我快閉嘴 ? 來(lái)源:奇妙的Linux世界 ? 作者:陳少文 ? 2022-09-07 09:10 ? 次閱讀

	

1. Linux 下的流量控制原理

通過(guò)對(duì)包的排隊(duì),我們可以控制數(shù)據(jù)包的發(fā)送方式。這種控制,稱(chēng)之為數(shù)據(jù)整形,shape the data,包括對(duì)數(shù)據(jù)的以下操作:

  • 增加延時(shí)
  • 丟包
  • 重新排列
  • 重復(fù)、損壞
  • 速率控制

qdisc-class-filter 結(jié)構(gòu)下,對(duì)流量進(jìn)行控制需要進(jìn)行三個(gè)步驟:

  • 創(chuàng)建 qdisc 隊(duì)列

上面提到 Linux 是通過(guò)包的排隊(duì)進(jìn)行流量的控制,那么首先得有一個(gè)隊(duì)列。

  • 創(chuàng)建 class 分類(lèi)

class 實(shí)際上,就是劃分流量策略分類(lèi)。比如劃分兩檔流量限速 10MBps、20MBbs。

  • 創(chuàng)建 filter 過(guò)濾

雖然創(chuàng)建了 class 分類(lèi),但是并沒(méi)有將任何的 IP、Port 綁定到 class 上,此時(shí)并不會(huì)有控制作用。還需要?jiǎng)?chuàng)建 filter 將指定的 IP、Port 綁定到 class 上,才能使流量控制 class 生效于資源。

TC 是 Linux 下提供的流量控制工具,也是 Cilium/eBPF 等網(wǎng)絡(luò)組件的核心基礎(chǔ)設(shè)施之一。

2. 限制指定 IP、Port 對(duì)本機(jī)的訪(fǎng)問(wèn)速度

2.1 查看網(wǎng)卡

ifconfig

eth0:flags=4163mtu1500
inet1.1.1.1netmask255.255.254.0broadcast1.1.1.1
inet61:11prefixlen64scopeid0x20
ether111:1txqueuelen1000(Ethernet)
RXpackets2980910bytes2662352343(2.4GiB)
RXerrors0dropped0overruns0frame0
TXpackets1475969bytes122254809(116.5MiB)
TXerrors0dropped0overruns0carrier0collisions0

2.2 配置 qdisc-class-filter

  • 創(chuàng)建 qdisc 根隊(duì)列
tcqdiscadddeveth0roothandle1:htbdefault1
  • 創(chuàng)建第一級(jí) class 綁定所有帶寬資源

注意這里的單位是 6 MBps,也就是 48 Mbps

tcclassadddeveth0parent1:0classid1:1htbrate6MBpsburst15k
  • 創(chuàng)建子分類(lèi) class

可以創(chuàng)建多個(gè)子分類(lèi),對(duì)資源的流量進(jìn)行精細(xì)化管理。

tcclassadddeveth0parent1:1classid1:10htbrate6MBpsceil10MBpsburst15k

這里 ceil 設(shè)置的是上限,正常情況下限速為 6MBps,但網(wǎng)絡(luò)空閑時(shí),可以達(dá)到 10 MBps。

  • 創(chuàng)建過(guò)濾器 filter,限制 IP
tcfilteradddeveth0protocolipparent1:0prio1u32matchipdst1.2.3.3flowid1:10

這里對(duì) 1.2.3.4 進(jìn)行限制帶寬為 1:10,也就是 6MBps。當(dāng)然,你也可以直接給網(wǎng)段 1.2.0.0/16 加 class 策略。

2.3 查看并清理配置

  • 查看 class 配置
tcclassshowdeveth0

classhtb1:10parent1:1leaf10:prio0rate48Mbitceil80Mbitburst15Kbcburst1600b
classhtb1:1rootrate48Mbitceil48Mbitburst15Kbcburst1590b
  • 查看 filter 配置
tcfiltershowdeveth0

filterparent1:protocolippref1u32chain0
filterparent1:protocolippref1u32chain0fh800:htdivisor1
filterparent1:protocolippref1u32chain0fh800::800order2048keyht800bkt0flowid1:10not_in_hw
match01020303/ffffffffat16
  • 清理全部配置
tcqdiscdeldeveth0root

3. 限制本機(jī)對(duì)指定 IP、Port 的訪(fǎng)問(wèn)速度

由于排隊(duì)規(guī)則主要是基于出口方向,不能對(duì)入口方向的流量(Ingress)進(jìn)行限制。因此,我們需要將流量重定向到 ifb 設(shè)備上,再對(duì) ifb 的出口流量(Egress)進(jìn)行限制,以最終達(dá)到控制的目的。

3.1 啟用虛擬網(wǎng)卡

  • 將在 ifb 設(shè)備
modprobeifbnumifbs=1
  • 啟用 ifb0 虛擬設(shè)備
iplinksetdevifb0up

3.2 配置 qdisc-class-filter

  • 添加 qdisc
tcqdiscadddeveth0handleffff:ingress
  • 重定向網(wǎng)卡流量到 ifb0
tcfilteradddeveth0parentffff:protocolipu32matchu3200actionmirredegressredirectdevifb0
  • 添加 class 和 filter
tcqdiscadddevifb0roothandle1:htbdefault10
tcclassadddevifb0parent1:0classid1:1htbrate6Mbps
tcclassadddevifb0parent1:1classid1:10htbrate6Mbps
tcfilteradddevifb0parent1:0protocolipprio16u32matchipdst1.2.3.4flowid1:10

3.3 查看并清理配置

  • 下面是限速本機(jī)對(duì)指定 IP 訪(fǎng)問(wèn)的監(jiān)控圖

7e175268-2e3d-11ed-ba43-dac502259ad0.png

進(jìn)入的流量被限制在 6 MBps 以下,而出去的流量不被限制。

  • 查看 class 配置
tcclassshowdevifb0

classhtb1:10parent1:1prio0rate48Mbitceil48Mbitburst1590bcburst1590b
classhtb1:1rootrate48Mbitceil48Mbitburst1590bcburst1590b
  • 查看 filter 配置
tcfiltershowdevifb0

filterparent1:protocolippref16u32chain0
filterparent1:protocolippref16u32chain0fh800:htdivisor1
filterparent1:protocolippref16u32chain0fh800::800order2048keyht800bkt0flowid1:10not_in_hw
match01020304/ffffffffat16
  • 清理全部配置
tcqdiscdeldeveth0ingress
tcqdiscdeldevifb0root
modprobe-rifb

審核編輯:湯梓紅


聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀(guān)點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11345

    瀏覽量

    210397
  • 流量控制
    +關(guān)注

    關(guān)注

    0

    文章

    27

    瀏覽量

    9675

原文標(biāo)題:如何在 Linux 下使用 TC 優(yōu)雅的實(shí)現(xiàn)網(wǎng)絡(luò)限流

文章出處:【微信號(hào):良許Linux,微信公眾號(hào):良許Linux】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    ATM流量控制器IP核的設(shè)計(jì)和實(shí)現(xiàn)

      ATM異步傳遞方式是建立在電路交換和分組交換基礎(chǔ)上的一種面向連接的快速分組交換技術(shù),它采用定長(zhǎng)分組作為傳輸和交換的單位,并具有端到端QOS保證、完善的流量控制和擁塞控制,以及較好的技術(shù)綜合能力等
    發(fā)表于 09-27 11:54

    韓國(guó)MKP質(zhì)量流量控制

    韓國(guó)MKP質(zhì)量流量控制器韓國(guó)MKP質(zhì)量流量控制器吳經(jīng)理 1324.6675.433 /0755-26998458 工作Q:1139878854 地址:深圳市南山區(qū)科技園南海大道4050號(hào)MKP致力于
    發(fā)表于 03-27 16:40

    韓國(guó)MKP流量計(jì) VIC-D220質(zhì)量流量控制

    `韓國(guó)MKP質(zhì)量流量計(jì)VIC-D220質(zhì)量流量控制器MKP質(zhì)量流量控制器(Mass Flow Controller) 深圳市現(xiàn)代豪方儀器儀表科技有限公司吳經(jīng)理:135.3421.8343工作Q
    發(fā)表于 12-06 15:15

    MKP TSC-D230流量控制

    MKP TSC-D230流量控制器MKP TSC-D230流量控制器供應(yīng)韓國(guó)MKP氣體質(zhì)量流量計(jì)吳經(jīng)理 132.4667.5433 /0755-26998458 工作Q:1139878854 MKP
    發(fā)表于 01-15 10:08

    VIC-D145 MKP流量控制

    VIC-D145 MKP流量控制器 VIC-D145 MKP流量控制器供應(yīng)韓國(guó)MKP氣體質(zhì)量流量計(jì)--中國(guó)總代理吳經(jīng)理 ***工作Q:1139878854 MKP氣體流量計(jì) VIC-D
    發(fā)表于 03-10 11:56

    MKP TSC-230 質(zhì)量流量控制

    MKP TSC-230 質(zhì)量流量控制器MKP TSC-230 質(zhì)量流量控制器供應(yīng)韓國(guó)MKP氣體質(zhì)量流量計(jì)---中國(guó)總代-吳經(jīng)理(***工作Q: 1139878854地址:深圳市南山區(qū)科技園南海大道
    發(fā)表于 03-30 15:17

    TSC-210質(zhì)量流量控制

    TSC-210質(zhì)量流量控制器TSC-210質(zhì)量流量控制器詳詢(xún)請(qǐng)致電 吳經(jīng)理: ***工作Q: 1139878854MKP型號(hào)質(zhì)量流量控制器VIC-D210,VIC-D220,VIC-D240
    發(fā)表于 07-22 10:36

    什么是數(shù)據(jù)通信的信息流量控制

    什么是數(shù)據(jù)通信的信息流量控制 流量控制是網(wǎng)絡(luò)技術(shù)中的一個(gè)重要課題,此處以ATM網(wǎng)絡(luò)為例對(duì)流量控制的各個(gè)問(wèn)題進(jìn)行說(shuō)明。ATM網(wǎng)絡(luò)
    發(fā)表于 03-18 14:35 ?735次閱讀

    什么是ATM流量控制和擁塞控制

    什么是ATM流量控制和擁塞控制 流量控制是網(wǎng)絡(luò)技術(shù)中的一個(gè)重要課題,此處以ATM網(wǎng)絡(luò)為例對(duì)流量控制的各個(gè)問(wèn)題進(jìn)行說(shuō)明。ATM網(wǎng)絡(luò)能夠?qū)Σ煌瑯I(yè)務(wù)
    發(fā)表于 04-06 16:04 ?2775次閱讀

    SpaceWire總線(xiàn)的流量控制機(jī)制研究

    SpaceWire總線(xiàn)的流量控制機(jī)制研究_趙云富
    發(fā)表于 01-03 18:00 ?0次下載

    基于LabVIEW的總流量控制理論的仿真應(yīng)用

    基于LabVIEW的總流量控制理論的仿真應(yīng)用
    發(fā)表于 02-07 18:01 ?26次下載

    分組交換網(wǎng)流量控制的類(lèi)型_分組交換網(wǎng)流量控制的方式

    指網(wǎng)內(nèi)相鄰兩節(jié)點(diǎn)之間的流量控制,使之維持一個(gè)均勻的流量,避免局部地區(qū)的阻塞。
    的頭像 發(fā)表于 09-13 16:45 ?2915次閱讀

    流量控制閥的工作原理

    流量控制閥是在一定壓力差下,依靠節(jié)流口液阻的改變大小來(lái)控制節(jié)流口流量,從而調(diào)節(jié)執(zhí)行元件的運(yùn)動(dòng)速度。主要包括節(jié)流閥、調(diào)速閥、溢流節(jié)流閥和分流集流閥等。 流量控制閥的工作原理: 數(shù)顯
    的頭像 發(fā)表于 08-08 21:41 ?1.4w次閱讀

    如何在Linux使用TC優(yōu)雅的實(shí)現(xiàn)網(wǎng)絡(luò)限流

    TC 是 Linux 提供的流量控制工具,也是 Cilium/eBPF 等網(wǎng)絡(luò)組件的核心基礎(chǔ)設(shè)施之一。
    發(fā)表于 12-26 10:06 ?816次閱讀

    啤酒機(jī)如何實(shí)現(xiàn)液體流量控制

    啤酒機(jī)是現(xiàn)代家庭和餐飲場(chǎng)所中越來(lái)越受歡迎的設(shè)備,它可以方便地提供各種風(fēng)味的啤酒。流量控制是啤酒機(jī)制作啤酒過(guò)程中的重要環(huán)節(jié)之一,而流量計(jì)則是實(shí)現(xiàn)這一控制的關(guān)鍵部件。本文將介紹啤酒機(jī)如何通過(guò)流量
    的頭像 發(fā)表于 11-02 14:29 ?542次閱讀
    啤酒機(jī)如何實(shí)現(xiàn)液體<b class='flag-5'>流量控制</b>
    大发888娱乐场东南网| 百家乐官网闲9点| 百家乐游戏机说明书| 龙都棋牌下载| 网上百家乐官网有哪些玩法| 圣保罗百家乐的玩法技巧和规则 | 富易堂百家乐官网娱乐城| 真人百家乐视频赌博| 慈利县| 百家乐视频麻将游戏| 淘金盈国际线上娱乐| 百家乐游戏机说明书| 百家乐官网实战玩法| 百家乐白菜价| 百家乐官网投注打三断| 澳门百家乐几副牌| 澳门百家乐官网真人娱乐场 | 百家乐官网折叠桌| 机械手百家乐的玩法技巧和规则| 百家乐官网足球投注网哪个平台网址测速最好| 百家乐破解仪| 百家乐官网视频游戏道具| 百家乐赌博租| 百家乐官网游乐园| 大发888第一在线| 做生意人的风水| 能赢钱的棋牌游戏| 永利高百家乐信誉| 百家乐官网国际娱乐城| 新濠百家乐娱乐城| 英皇百家乐官网的玩法技巧和规则| 济州岛娱乐场小伊| 玩百家乐都是什么人| 竞咪百家乐官网的玩法技巧和规则| 大发888游戏怎么玩| 博彩百家乐规则| 澳门百家乐官网网址多少| 百家乐娱乐分析软件v4.0| 澳门百家乐官网介绍| 大发888娱乐场118| 真钱百家乐开户试玩|