<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: DonislawDev</title>
    <description>The latest articles on DEV Community by DonislawDev (@donislawdev).</description>
    <link>https://dev.to/donislawdev</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4147384%2F0d2600f2-29f7-4fce-bc55-71e5ce349e2f.webp</url>
      <title>DEV Community: DonislawDev</title>
      <link>https://dev.to/donislawdev</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/donislawdev"/>
    <language>en</language>
    <item>
      <title>How to Simulate a Bad Internet Connection on Windows: Test Latency, Packet Loss &amp; Jitter</title>
      <dc:creator>DonislawDev</dc:creator>
      <pubDate>Mon, 28 Sep 2026 15:42:21 +0000</pubDate>
      <link>https://dev.to/donislawdev/how-to-simulate-a-bad-internet-connection-on-windows-test-latency-packet-loss-jitter-2m9d</link>
      <guid>https://dev.to/donislawdev/how-to-simulate-a-bad-internet-connection-on-windows-test-latency-packet-loss-jitter-2m9d</guid>
      <description>&lt;p&gt;Hello, if you want to test your Windows app in poor network conditions, you can use "&lt;a href="https://github.com/donislawdev/BeanNetworkTester" rel="noopener noreferrer"&gt;Bean Network Tester&lt;/a&gt;." All things from this post can be done from the GUI or CLI, the tool is open source, 100% free for commercial use.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. &lt;strong&gt;Instalation&lt;/strong&gt;.
&lt;/h2&gt;

&lt;p&gt;You can get the .msi or .zip from &lt;a href="https://github.com/donislawdev/BeanNetworkTester" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt; (&lt;strong&gt;please give it a star&lt;/strong&gt;)&lt;/p&gt;

&lt;p&gt;Or install it from package managears:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;winget install -e --id DonislawDev.BeanNetworkTester&lt;/p&gt;

&lt;p&gt;choco install bean-network-tester&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;*To use the app, you will need admin rights&lt;/p&gt;

&lt;h2&gt;
  
  
  2. How to Simulate LTE/3G network or crowded WiFI + more
&lt;/h2&gt;

&lt;p&gt;By design Bean Network Tester will target "ALL NETWORK TRAFFIC", so be sure to set a specific target. The fastest setup is:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Select the "Profile" that you wish to use&lt;/li&gt;
&lt;li&gt;Write "Target process"&lt;/li&gt;
&lt;li&gt;Click the "Start" Button&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Femsgmi3y3urdsypd1br7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Femsgmi3y3urdsypd1br7.png" alt=" " width="800" height="998"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This way you can easily test your app in few clicks, each profile comes with own stats like: "Loss, Losses in a row (burst), Latency, Jitter    Download,Upload limit" and more.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fny02yzaccsimmp0p0p74.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fny02yzaccsimmp0p0p74.png" alt=" " width="391" height="444"&gt;&lt;/a&gt; You can see the full list of profile stats and CLI parameters &lt;a href="https://beannetworktester.donislawdev.com/reference/" rel="noopener noreferrer"&gt;here&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Tip:You can also target by IP or ports: &lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fn929kn2p1cv7bjvkaw67.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fn929kn2p1cv7bjvkaw67.png" alt=" " width="799" height="143"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  3.More "advanced" use
&lt;/h2&gt;

&lt;p&gt;The app comes with premade profiles, but you can create your own profiles or settings files, you can experiemnt with with tons of things, let's say you want to check how the app will behave during TCP_Sync drop or TCP_reset:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fbjwc7z1zebnzr6zapaqk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fbjwc7z1zebnzr6zapaqk.png" alt=" " width="798" height="180"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This way you can customize the app for your own testing and share the profiles with your team&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Scenarios system
&lt;/h2&gt;

&lt;p&gt;At the bottom of the app, you can see the "scenarios":&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fgaul6g6s5nhrbp5869ax.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fgaul6g6s5nhrbp5869ax.png" alt=" " width="797" height="142"&gt;&lt;/a&gt;&lt;br&gt;
there are few premade scenarios (click "Load Scenario...")&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fqiyl9e4gbz128x0u4cn3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fqiyl9e4gbz128x0u4cn3.png" alt=" " width="355" height="352"&gt;&lt;/a&gt;&lt;br&gt;
They are just .json files that you can add or edit:&lt;br&gt;
"{&lt;br&gt;
&lt;code&gt;"loop": true,&lt;br&gt;
  "steps": [&lt;br&gt;
    { "at": 0,  "settings": { "filter": "udp", "dst_port": "53", "latency": 10, "jitter": 5 } },&lt;br&gt;
    { "at": 15, "settings": { "loss": 25, "latency": 200, "jitter": 200 } },&lt;br&gt;
    { "at": 35, "settings": { "loss": 60, "latency": 750, "jitter": 500 } },&lt;br&gt;
    { "at": 55, "settings": { "loss": 100 } },&lt;br&gt;
    { "at": 68, "settings": { "loss": 10, "latency": 100, "jitter": 80 } },&lt;br&gt;
    { "at": 85, "settings": { "loss": 0, "latency": 10, "jitter": 5 } }&lt;br&gt;
  ]&lt;br&gt;
}&lt;/code&gt;&lt;br&gt;
"&lt;br&gt;
You can also create your own scenarios, let's say at 90 second, we would like to reset_tcp, we could just add:&lt;br&gt;
"&lt;code&gt;{ "at": 90, "action": "reset_tcp" },&lt;/code&gt;"&lt;/p&gt;

&lt;h2&gt;
  
  
  5. END
&lt;/h2&gt;

&lt;p&gt;The tool is a lot more advanced, You can see all network options &lt;a href="https://beannetworktester.donislawdev.com/reference/" rel="noopener noreferrer"&gt;here&lt;/a&gt;, but that's not all, because the app comes with a few useful things. There is a "connections" tab in which you can see download/upload stats, packets, and connections.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fdpvcmug205eh81nrm5b8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fdpvcmug205eh81nrm5b8.png" alt=" " width="800" height="667"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And there is a "tools" tab in which you can check which ports are being used + active connections without running the packet capture:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Foi67q7n5nsp9xnkm1ehm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Foi67q7n5nsp9xnkm1ehm.png" alt=" " width="800" height="922"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In this post, I didn't get into the technical details of burst, tcp/udp or WinDivert which is used in Bean Network Tester, it's mostly a quick start, but if you want to use the app in more "advanced" cases, then it's always an good thing to know a few things about networking.&lt;/p&gt;

&lt;p&gt;*I'm the author of the tool&lt;/p&gt;

</description>
      <category>networking</category>
      <category>testing</category>
      <category>opensource</category>
      <category>tools</category>
    </item>
  </channel>
</rss>
