gpt4 book ai didi

c# - 以太网端口上的 throttle 带宽

转载 作者:太空狗 更新时间:2023-10-29 23:46:54 28 4
gpt4 key购买 nike

我正在编写一个在服务器上运行的应用程序,我需要能够为每个以太网端口设置最大带宽(最多有 6 个端口)。

显然我可以限制我的应用程序使用的带宽,但我还没有找到任何关于限制计算机上实际以太网端口带宽的信息。

这是否需要通过创建一个驱动程序来监控所有端口来完成?谁能指出我正确的方向?

最佳答案

如果您可以访问 Linux 机器,那么做这样的事情很容易。事实上,您可以添加各种网络障碍以使其变得有趣。

只需安装两 block 网卡并设置 netem 来调 throttle 量。 (即线路中的 netem blip,增加延迟、抖动、带宽速率等损伤)

这是我用来测试我的 Android 音频流应用程序性能的脚本,方法是将 android 流量传递到 Linux box(其中一个接口(interface)连接到 wifi AP)。

Added: By testing the performance of my App, I mean how would the App behave on a 4G network while driving (i.e. a lot of Jitter). Or a use case in home with Wi-Fi; what if everyone in the home decides to stream HD videos simultaneously (i.e. bandwidth contention, with a lot of packet loss).

#!/bin/bash

ORIGINAL_PATH=$PATH

#echo $ORIGINAL_PATH

export PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/game"

#echo $PATH
CTOSINTERFACE=eth1 # EGRESS interface on Bridge, facing the SERVER
STOCINTERFACE=eth0 # EGGRES interface on Bridge, facing the CLIENT

# Client To Server
CDELAY=$1
CJITTER=$2
CLOSS=$3
CDUPLICATE=$4
CCORRUPT=$5
CREORDER=$6

# Server to Client
SDELAY=$7
SJITTER=$8
SLOSS=$9
SDUPLICATE=$10
SCORRUPT=$11
SREORDER=$12

# Clear Latency/Loss/Jitter
/sbin/tc qdisc del root dev $CTOSINTERFACE 2>/dev/null
/sbin/tc qdisc del root dev $STOCINTERFACE 2>/dev/null


# Client to Server Impairments (on Bridge)
qdisc add dev $CTOSINTERFACE root netem delay ${CDELAY}ms ${CJITTER}ms loss $CLOSS% duplicate ${CDUPLICATE}% corrupt ${CCORRUPT} reorder ${CREORDER}% limit 10000000 2>&1 >/dev/null
qdisc add dev $STOCINTERFACE root netem delay ${SDELAY}ms ${SJITTER}ms loss $SLOSS% duplicate ${SDUPLICATE}% corrupt ${SCORRUPT} reorder ${SREORDER}% limit 10000000 2>&1 >/dev/null

#$PATH=$ORIGINAL_PATH
export PATH=$ORIGINAL_PATH
#echo $PATH

并将脚本称为

#sudo impare_network.sh 100 20 30 0 0 0 0 0 0 0 0 0 0

这会在上行链路(客户端到服务器)上增加 100 毫秒的延迟,20% 的抖动(使用正态分布),30% 的数据包丢失。

关于c# - 以太网端口上的 throttle 带宽,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13920490/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com