LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

TCP package lost

I am not sure if it has the tcp package lost. The incoming data rate is over 100M.

 

Is there a way to check if there is tcp lost, since some waveform is joint by 2 wave together.

 

Any suggestion

Untitled.png

0 Kudos
Message 1 of 9
(3,390 Views)

What are the units of 100M (MBytes/sec, Mbits/day, A million waveforms/month?). A data "rate" needs a time unit!

Or are you simply quoting the plain network speed specification?

 

Since you are erasing all errors, you might not know if an error occurred?

 

Can you show us some actual code instead (attach a VI instead of a picture).

Does the receiving end know exactly how much data to expect?

Is the sending partner also a LabVIEW program or something else?

How large are the transmission?

What is the definition of a "package"? (TCP "packets" are defined on a much lower level, you have no control over it)

Is the transmission in short bursts or sutained over long periods?

 

Message 2 of 9
(3,383 Views)

It is around 200Mbit/second and higher. It will keeping sending. The other side is fpga.

 

Need to find out where the package is lost, in fpga, tcp or LV.

 

0 Kudos
Message 3 of 9
(3,367 Views)

TCP Read with Immediate mode will not read any packages but will return as soon as there is any data present (even a single byte) or the timeout expired. In your case that means your code ends up returning always immediately with a fraction of the 100000 bytes you asked for, resulting in the Read function retrieving MANY small chunks of data from the TCP data buffer. That is certainly not the way to maintain a fast data transfer of around 25MB/s, but even when waiting for the full 100000 bytes to arrive, which would be at most after 4ms, you will likely tax the CPU immensely. Also what FPGA hardware are you using? Unless you are using one of the 908x chassis I don't think there is any cRIO hardware with a network interface working at higher speeds than 100Mbit/s and that is raw data, not netto user data.

Rolf Kalbermatter
My Blog
Message 4 of 9
(3,356 Views)

Thanks a lot, I am not sure how big is the tcp stack or buffer for windows, or can I set it bigger.

 

I will try to change my setting.

0 Kudos
Message 5 of 9
(3,320 Views)

If I set to every read interval of 1ms, then every read should read back max 1Gbit/1000/8=125000.

0 Kudos
Message 6 of 9
(3,317 Views)

Did you change the mode yet?

Message 7 of 9
(3,306 Views)

So you have a cRIO 908x module???

 

And 1GBit is the maximum raw network troughput. In practise TCP has a certain overhead for the IP and TCP frames. Also the collision detection retry nature of Ethernet will NEVER allow to reach the full raw throughput of the network but slow down the actual throughput considerebly if your network reaches a certain saturation. Typically any attempt above 70 to 80 % of the maximum throughput will in fact slow down your network transfer to less than that due to many collision/retry attempts. And this throughput is shared by any party on the network, so if you don't happen to use a single cable between your computer and your FPGA target, your data will have to compete with everyone else on that network.

 

All in all, you have provided to little information so far and are likely trying to do something that is physically almost impossible with  your hardware.

Rolf Kalbermatter
My Blog
Message 8 of 9
(3,300 Views)

The fpga is 3rd party. It may also has a fibre output later.

0 Kudos
Message 9 of 9
(3,286 Views)