限制下载和上传速度
把一个应用限制在每秒若干 KB,它就不会超过这个速度。上下两个方向是分开设置的,所以你可以给它飞快的下载和糟糕的上传,这正是大多数家庭和移动网络的真实样子。
在窗口中
- 把进程设为你的应用。
- 填写下载、上传或两者,单位为 KB/s。某个字段保持为 0,就表示不限制该方向。
- 点击开始。
BeanNetworkTester.exe --down 128 --up 32 --target myapp.exe --duration 120
这些数字意味着什么
| KB/s | 约合 | 它是什么 |
|---|---|---|
| 6 | 56 kbit/s | 拨号调制解调器。即“56k 调制解调器”配置方案。 |
| 128 | 1 Mbit/s | 机上 Wi-Fi、拥挤的酒店、信号差的移动网络。 |
| 1024 | 8 Mbit/s | 普通的家庭宽带。够看一路视频流。 |
| 12800 | 100 Mbit/s | 如今的一条普通固定宽带。 |
是千字节,不是千比特,所以要乘以八,才能与网络服务商宣传的数字比较。同时限制两个方向,才会让连接像一个糟糕的热点,而不只是下载慢。
队列和限速同样重要
限速需要一个地方来存放暂时放不下的数据包。这就是缓冲区设置,单位为毫秒,它的行为就像超市收银台前的队伍:
- 短队列意味着线路一满,数据包就被丢掉。你的应用会看到丢包,并迅速作出反应。
- 长队列意味着什么都不会丢,但一切都要等待。你的应用看到的是连接越来越慢,而不是失败,这正是拥塞的家庭网络的效果,也是下载进行时视频通话会变差的原因。
“拥塞的家庭网络(缓冲膨胀)”配置方案正是如此:限速加上长队列。试试同样的速度配短队列和长队列,观察应用的表现有多大差别。
需要预期的一点
限速运行时,被丢弃数据包的计数可能一直为零。这不是 bug:限速首先是让数据包等待,只有队列真的满了才会丢弃。把缓冲区设小一点,丢包就会出现。