使用Fiddler模拟网络速度

问题描述 投票:0回答:3

我正在使用Fiddler,想要模拟不同的网络速度

是否有任何已发布的数据可供我使用延迟值来模拟不同的速度?

以下是 Fiddler 模拟 56kb 调制解调器速度的默认代码。

if (m_SimulateModem) {
    // Delay sends by 300ms per KB uploaded.
    oSession["request-trickle-delay"] = "300"; 
    // Delay receives by 150ms per KB downloaded.
    oSession["response-trickle-delay"] = "150"; 
}

我想要 256kbps、512kbps、1Mbps 等的延迟值...

fiddler
3个回答
48
投票

这只是一道数学题。

假设内容立即可用(例如,您从自动回复器中播放内容),则唯一的延迟由 request-trickle-delayresponse-trickle-delay 标志控制。

每秒有1000毫秒。

因此,如果您想将连接控制为每秒 1 兆字节,则需要使用 1 毫秒的延迟。如果您想将其门控到每秒512千字节,则使用2毫秒的延迟。对于每秒 256 千字节,请使用 4 毫秒的延迟。

请记住,带宽通常以每秒而不是每秒字节来衡量。因此,如果您的目标是以每秒位数 为单位进行测量,则将每个值乘以 8


38
投票

我对 EricLaw 推荐的请求滴流延迟和响应滴流延迟进行了更改。 我使用 SpeedTest.Net 来验证我所做的更改。 他们并不完美匹配。 例如,我预计如果将 Trickle Delay 值设置为 8,我将获得 1 Mbps 的下载速度,但实际上只有 2.05 Mbps。 根据 EricLaw 的回答,至少我能够识别出一种模式。 谢谢埃里克。

每次更改 Fiddler CustomerRule.js 文件后,我都会重新启用“模拟调制解调器速度”。 仅供参考,当您对 CustomerRule.js 文件进行更改时,“模拟调制解调器速度”将被禁用。所以您必须重新启用该设置。

我添加了一些来自 SpeedTest.net 的结果图像。

以下是每次设置更改的结果:

enter image description here

Fiddler 设置

enter image description here

这里我将 request-trickle-delay 和 response-trickle-delay 设置为 16。如您所见,我收到了 1.03 Mbps

enter image description here

这里我将 request-trickle-delay 和 response-trickle-delay 设置为 32。如您所见,我收到了 0.52 Mbps

enter image description here


2
投票

旧帖子,但我想在这里添加一些信息,以使 Fiddler 节流更加用户友好。我们将在规则下创建一个新菜单,并提供一系列调制解调器速度可供选择。

单击规则 -> 自定义规则选项

Customize Rules menu option (CTRL+R)

搜索

m_SimulateModem
的声明,如下所示:

public static var m_SimulateModem: Boolean

并将其替换为

RulesString

    // Cause Fiddler Classic to delay HTTP traffic to simulate typical modem conditions
    public static RulesString("Simulate &Modem Speeds", true) 
    BindPref("fiddlerscript.ephemeral.ModemSpeed")
    RulesStringValue(0,"5&6 kbps", "56")
    RulesStringValue(1,"&128 kbps", "128")
    RulesStringValue(2,"&256 kbps", "256")
    RulesStringValue(3,"&512 kbps", "512")
    RulesStringValue(4,"1 &mbps", "1m")
    var m_SimulateModem: String = null;

再次搜索规则中的

m_SimulateModem
,我们正在寻找应用trickle的
if
语句。删除
if
块并将其替换为以下 case 语句:

switch (m_SimulateModem) {

    case "56": // 56kbps
        oSession["request-trickle-delay"] = "760"; 
        oSession["response-trickle-delay"] = "440";         
        break;
    
    case "128": // 128kbps
        oSession["request-trickle-delay"] = "380"; 
        oSession["response-trickle-delay"] = "220";             
        break;
    
    case "256": // 256kbps
        oSession["request-trickle-delay"] = "190"; 
        oSession["response-trickle-delay"] = "110";         
        break;
    
    case "512": // 512kbps
        oSession["request-trickle-delay"] = "95"; 
        oSession["response-trickle-delay"] = "55";          
        break;
    
    case "1m": // 1 mbps
        oSession["request-trickle-delay"] = "46"; 
        oSession["response-trickle-delay"] = "27";          
        break;
    
    case null:          
    default:
        break;
}

保存您的规则文件。您现在可以在

Rules -> Simulate modem speeds
下找到一个包含各种限制选项的选项:

Throttling speeds to 512kbps

这些数字已使用速度测试进行调整,以接近现实生活中所需的速度。

Speed Test showing 512kbps throttling

奖励积分:尝试以 56kbps 的速度浏览您最喜爱的互联网网站。

© www.soinside.com 2019 - 2024. All rights reserved.