Problem: LAN speed for TCP is more then 100 times slower then expected. Why?
Because Windows implemented it's own "smart" algorithms instead of following RFCs. I found out (the hard way) that starting from Vista, the TCP regulations were disregarded by Microsoft, resulting in unpredictable side effects like speed limitations for high speed Internet, or total collapse of the transfer speed, like in this case.
Long story short, what slow down the transfer between the oscilloscope and the PC is a Microsoft algorithm that alter RWIN (TCP Receive WINdow) size in a proprietary way, with heuristic algorithms that override network settings, and no way to really tweak the parameter.
Sollution: Use Linux.
I will post some benchmarks after cleaning the Python code.
.
LATER EDIT: It has been passed a year and a half, and now I couldn't reproduce the slow transfer any more. WireShark shows now the transfer time for the first 250 000 bytes is about the same:
Debian80
transfer time = 0.066444
win10
transfer time = 0.067693
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.
I had similar problem. For me it was pyvisa using VXI11 instead of raw TCP connection.
VXI11 implementation is pretty slow on Rigol DS1054Z. Using a path of “TCPIP::scope::5555::SOCKET” for raw TCP connection works much faster. Though I had to also set “read_termination = ‘\n’, write_termination = ‘\n'” for it to work.
With VXI11, downloading 1Mpoints took 54 seconds. With raw TCP it only took 2 seconds.
Are you sure? yes | no