Standalone Network Emulator Tool
NEWT (Network Emulator for Windows Toolkit) is a software-based emulator which can emulate the behavior of both wired and wireless networks using a reliable physical link, such as an Ethernet. A variety of network attributes are incorporated into the NEWT emulation model, including round-trip time across the network (latency), the amount of available bandwidth, queuing behavior, packet loss, reordering of packets, and error propagations. NEWT also provides flexibility in filtering network packets based on IP addresses or protocols such as TCP, UDP, and ICMP.
NEWT (Network Emulation for Windows Toolkit) is a fabulous network emulator tool that allows you to simulate different network conditions, and include ports, protocols and interface filters. This tool is now part of Games for Windows LIVE SDK and XBOX XDK.
Unfortunately for lots of IT professionals out there, these SDKs are not generally available, so they have to engage with networking guys, their knowledge and their devices and networks to perform tests related to how well or bad their infrastructures work under different network conditions.
The good news is that driver portion of NEWT was transfered to Visual Studio 2010 Team to support the new load testing features, so then it became possible to develop NEWT-like tool. Lonny Kruger posted about how to build a sample standalone network emulator source code for Visual Studio 2010 Beta 1 in those days. Later, Ivan Neganov posted a similar solution, already compiled for everyone to use, this time for Visual Studio 2010 Beta 2.
The issue I find myself is that both of posts mean that you have to install/use Visual Studio 2010 to be able to run network emulation. This is how I do it know with this tool, just for those ITPro non-developer guys out there:
1.- Download Visual Studio 2010 RC and extract files from vs_setup.msi. To do so you can use your favorite MSI extraction tool, or just install it in a VM or such a thing. You will need just a few files out of it.
3.- Grab and install Visual C++ 2010 RC runtime installers needed by network emulation driver for your platform from VS 2010 bits, located at %ProgramFiles%\Microsoft SDKs\Windows\v7.0A\Bootstrapper\Packages\vcredist_x86\ and %ProgramFiles%\Microsoft SDKs\Windows\v7.0A\Bootstrapper\Packages\vcredist_x64\.
4.- Grab and install network emulation driver from VS2010 bits. You can find them both for x86 and x64 at %ProgramFiles%\Microsoft Visual Studio 10.0\Common7\IDE\PrivateAssemblies\NetworkEmulation\x86\ and %ProgramFiles%\Microsoft Visual Studio 10.0\Common7\IDE\PrivateAssemblies\NetworkEmulation\x64\. Install network emulator driver (NDIS6 for Vista/2008/W7/2008R2, NDIS5 for XP/2003) for your platform. Just in case you do not remember how, here are the screenshots:
5.- Get Ivan Negalov's Stand-Alone Network Emulator bits from http://neganov.blogspot.com/2010/01/stand-alone-network-emulator-for-vs2010.html
6.- Grab the updated DLLs from VS2010 RC bits and overwrite the ones included in Ivan Negalov’s package (Beta 2 files):
- %ProgramFiles%\Microsoft Visual Studio 10.0\Common7\IDE\PrivateAssemblies\Microsoft.VisualStudio.QualityTools.NetworkEmulation.dll
- %ProgramFiles%\Microsoft Visual Studio 10.0\Common7\IDE\PrivateAssemblies\DataCollectors\x86\Microsoft.VisualStudio.QualityTools.NetworkEmulationAPI.dll or %ProgramFiles%\Microsoft Visual Studio 10.0\Common7\IDE\PrivateAssemblies\DataCollectors\x64\Microsoft.VisualStudio.QualityTools.NetworkEmulationAPI.dll, depending on your platform.
Now you have your own neat and simple Network Emulation Tool!