[SOLVED] A painfully slow LAN on Windows and a wasted weekend.

A project log for Driverless Rigol DS1054Z screen capture over LAN

Capture the display of a Rigol DS1000Z series oscilloscope by LAN only, using LXI SCPI commands. No USB, no VISA, no IVI and no Rigol drivers required

rogeorgeRoGeorge 06/01/2015 at 23:091 Comment

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:

transfer time = 0.066444

transfer time = 0.067693


Petteri Aimonen wrote 12/05/2023 at 08:32 point

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