I tried to run an iperf test between two windows 7 laptops with one hosting a ad-hoc network. Specifically I wanted to see whether I could see a visible difference in throughput between the built in PCI card and a USB wifi adapter.
Unfortunately under both conditions I managed to see a total speed of 2.5 Mbps only.
Is Windows throttling my UDP bandwidth in some way or is iperf 2 not compatible with Windows 7?
I tested on a windows 7 to windows 10 PC as well and saw the same issue.
A wireshark trace shows almost no retries and most of the packets appear to be using 58.5 and above n rates.
However it appeared that data was being sent in bursts
This image shows the graph of packets sent
I couldn't find any information on this. I will try using iperf 3 in the meantime and also test the performace via a standard AP and update this question.
This is a screenshot of the cmd prompt
Thanks in Advance!
Update: Iperf3 showed much higher speeds. 60 Mbps or so. I'll probably need to read up on the differences between the two softwares. I don't really understand why this difference exists.
Related
I am using iPerf to try and test the Wi-Fi performance on my router. I have set up two computers, a HP Zbook (Client) and a Macbook Pro (Server), to demonstrate this connection. The client is connected directly to the router via LAN and the server is connected to the router via Wi-Fi.
My iPerf script sets the TCP window size and sends data for certain time limits from the client to the server. The output on my server goes up to an expected throughput for a few seconds and down to a very low throughput for a few seconds at relatively constant intervals for all Wi-Fi configurations on my router (various bands, 802.11 protocols and channel bandwidths) as well as in noisy and clean environments. Can anyone suggest a possible reason for this? Is this how the Wi-Fi protocol works? Or is this a problem with iPerf?
The iperf version on the client is iperf3 v3.0.11 (windows 64 bit) and iperf3 v3.0.1 (mac osx).
Client OS: Windows 10
Server OS: Mac OS X El Capitan v 10.11.5
I have ran a TCP test as well as two UDP tests (with bandwidth set to 1.05Mbps and 150Mbps) and attached the output screenshots. Wi-Fi config: 802.11ac, 40MHz, 5GHz
jPerf depiction of my iPerf script for a 180 second test case on 5GHz, 80MHz, 802.11ac
Testing screenshots: https://imageshack.com/a/SktM/1
Please include the iperf output for both client and server and use interval reports (-i). Also, include iperf -v and the operating system information. Also, make a run with UDP and capture the reports on both client and server. If you're using Linux on the client and iperf 2.0.9, the -e (enhanced reports) can provide even more information.
Wi-Fi throughput problems are like somebody having a fever in an Emergency Room. There are many different factors that have to be looked at.
Bob
I am trying to connect 2 kinect sensors to my notebook. I know that I have to have at least 2 separate USB 2.0 controllers. According to tis website: LINK I have the same settings as in the picture. So I think that connecting 2 kinect sensors should be possible for me. I have 3 regular USB2 ports and one combined with e-SATA. So I have 4 ports to connect USB devices. However, when I try to connect 2 Kinect sensors (each time into different ports), I am always getting error message on one device (in windows device manager):
This device cannot start. (Code 10)
Can anyone help me please? I do not have any other computer and dont want to buy new just because USB controllers. I thing there has to be a way to do this. Thank you
can you please get a schematic of your notebook's motherboard and double check how your 3 ports are connected to the 2 controllers you mention. Hopefully 1 out of the 3 ports will be connected to a different controller from other 2 ports.
Does your notebook allow you to connect an express card to it ? Perhaps you could get an additional port this way.
With a custom built PC and a PCI Express USB expansion card we've got 3 kinects connected at the same time for an art-installation/robotics project.
I remember though at the time getting 2 Kinects running at the same time on my old 2008 macbook with no problems. Note that this was with either the libfreenect and OpenNI drivers, since the Kinect SDK driver doesn't work on osx.
Also, since you're using the Kinect SDK, I'm guessing you are using either Kinect for Windows (v1 if you will) or Kinect for Xbox360 and not the Kinect 2 for Windows since the current Alpha release of the SDK currently only allows a single sensor.
Update
Had a quick look here:
although couldn't easily find the schematics. My guess is two USB ports are connected to the same controller and the 3rd USB port might(don't take my word for it, check the manufacturers specs) be connected to a separate usb controller, in which case connecting one kinect to one side of your laptop and the other kinect to the port on the opposite should work. Make sure you see both sensors in Device Manager(run devmgmt.msc).
Also, just to double check your sensors as well, try connecting one, running a demo/test, then disconnecting and using a second sensor on the same port.
If both sensors work individually work on the same port, test them also on the usb port on the opposite side. You just want to make sure neither the sensors nor your ports are faulty. Lastly, if your hardware looks fine (power is good, sensors and ports are good), double check your code and me sure you don't accidentally open the same sensor twice or any other mistake that might be easy to miss.
If you have a friend you can either borrow another laptop for a short time just to test that would also be good. You can also try getting an USB Express Cardâ„¢ card for your laptop. Although a long shot, you could try to disable other usb devices on your laptop, leaving as much bandwidth available to the ports as possible. You should be able to do this either from Device Manager or your potentially from BIOS settings.
I have learned SharpPcap to capturing packet from a particular network interface. The following code is used to get all network interfaces on local machine:
foreach (PcapDevice dev in CaptureDeviceList.Instance)
Console.WriteLine(dev.ToString());
but when I plug my usp 3G modem and run the above program, the list returned does not contain a line for the usp 3G modem.
How do I apply the packet capture on this 3G modem?
EDIT: I have found one way of doing this. I would love it if someone has something better, because this does require a commercial product. CommView from Tamosoft allows you to capture Verizon Aircard packets. (Can't speak to anything else...)
CommView by Tamosoft
They have a free version which you can use to test with (it only captures every other packet). It's about $250.
Previous Answer
# Chris Morgan
Unfortunately, modems are seen a PPP connections, which are not supported on Windows XP, Windows Vista, or Windows 7 at the network adapter level. Therefore, winPCap, Wireshark, etc, will not see the traffic.
See Question #5 of the FAQ:
WinpCap FAQ
version: erlang R13B
Hi all,
how can I increase the amount of ssl ports/handles that my network server is able to create on Windows?
On linux I was able to successful create about 1000 connections using:
-env ERL_MAX_PORTS 80000 -P 268435456
and changing the maximum open fd's using ulimit.
On windows apparently there is no effect using the same configuration, and sadly the number of open connections are VERY small (about 30, and it opens 6 handles for each one). I've noticed that the shell starts two other children processes, inet_gethost.exe and ssl_esock.exe. If these are the ones that I have to increase the port count, how do I do that?
Thanks,
According to this, in Windows NT
the maximum number of sockets
supported by a particular Windows
Sockets supplier is
implementation-specific. An
application should make no assumptions
about the availability of a certain
number of sockets.
According to this, you should redefine the value of FD_SETSIZE.
It also suggests to have a look to WSADATA.iMaxSockets.
Simplified, I have an application where data is intended to flow over the internet between two servers. Ideally, I'd like to test at what point the software ceases to function. At what lowerbound limit (bandwidth, latency, dropped packets) do things stop working to test the reliability of the software.
What I thought I would do was the following:
Setup up 3 machines (VMware instances)
Install the 2 applications on two of the servers.
Setup up the 3rd server to sit between the two machines by doing some sort of magic with Routing and Remote Access on Windows 2003
Install either Traffic Shaper XP or NetLimiter to limit the bandwidth
Run something like TMnetSim Network Simulator to simulate a bad connection.
Does this sound like a good idea or are there easier/better ways of doing this? I'm not that comfortable on Linux and my team mates are even less so.
WANem does exactly this. We have used it both in a virtual machine on the desktop and on a dedicated old pc and it worked great. It can simulate all sorts of broken connectivity.
FreeBSDs ipfw has provisions to simulate links with a given bandwith, latency or error rate. You could use that FreeBSD machine as your machine "in the middle" in your above setup.
You probably can also run at least one of the endpoints on the same machine if you want to reduce the amount of servers involved.
Someone actually packaged up the settings and whatnot necessary for the FreeBSD solution to this problem and they call it DUMMYNET.
It simulates/enforces queue and bandwidth limitations, delays, packet losses, and multipath effects. It also implements a variant of Weighted Fair Queueing called WF2Q+. It can be used on user's workstations, or on FreeBSD machines acting as routers or bridges.
It can simulate exactly what you want, and its free and will boot onto commodity hardware. They even have a canned install of it that is small enough to put on a floppy disk (!) that you can download at that link.
Maybe it is time to learn a bit about Linux because adding a 50ms delay on every outgoing packet can be done in typing just one line:
tc qdisc add dev eth0 root netem delay 50ms
For more see the Linux Traffic Control HOWTO
We had a similar requirement some ten years ago - I'll see if I can recall how we managed it.
If I remember, we wrote a socket proxy program which was controlled by inetd on a UNIX box. This socket would accept connections from a client and open equivalent sessions through to the server. It would then loop, passing messages in both directions.
The way we achieved WAN characteristics was to introduce random delays (with upper and lower limits) in both the connection establishment and the passing of data once the link was up.
It also had the feature to drop the link occasionally as WAN links were less reliable for us than local traffic.
I recall we had to make it threaded to stop the delays from affecting reverse traffic on the link.
There is a very good (and free) Microsoft solution for that, we use it for quite some time and it works great, it can very easily simulate every thing(packet loss, low bandwidth, disconnection, latency....)
This is the best solution i found for a windows environment
More information and a download link can be found here: MARCO blog post
this product has gone some evolution and it is now integrated into visual studio as part of the automation testing, but i found the use of the standalone(that is quite hard to find, so keep a local copy) to work much better. keep in mind that you need at least two computers(or VMs) since you need to pass through a network adapter in order for the application to work its magic.