06-01-2018 01:33 AM
Hi All,
We are trying to achieve data transfer around 34 MBps(MegaBytes per second) between flexrio(PXI 8880) and PC. But we couldn't achieve speed more than around 20 to 25 MBps. We use tcp read.vi in "standard" mode and are transferring in packets of size around 3MB per 100ms. Also the speed reduces further when the distance between the connection increases. Any ideas how to improve this?
06-01-2018 03:51 AM
"the speed reduces further when the distance between the connection increases."
Are you running this over wifi? Can you run a speed test between the two using another application (even just a windows file transfer of some larges files)?
06-01-2018
04:20 AM
- last edited on
05-14-2025
07:21 PM
by
Content Cleaner
As written above, you should benchmark your local network. Might be a problem with WIFI interferences...? Playing with the wifi channels might solve such problems...
Another thing which is not closely related to your issue, is to use Network Streams. Much better way to transmit data than the "simple" TCP VIs...
https://www.ni.com/docs/en-US/bundle/labview/page/streaming-data-between-applications.html
06-01-2018 05:13 AM - edited 06-01-2018 05:15 AM
Hi Michael and Blokk,
Thanks for your quick responses. The connection is made through LAN not wifi. The PC where we got 20-25 MBps was on the same network as the PXI. The PC in which we got around 10 MBps was in a different network connected through 4 routers. We need to increase the speed in both cases. Any way to achieve 34 MBps in the PC connected on the same network?
And Blokk, we tried network streams also. When benchmarked both network streams and TCP, TCP speed was better than the network streams.
06-01-2018 05:56 AM
Strange. Could you test the network speed using two PCs? So disconnect the FlexRIO from the network, and use a PC at that endpoint. In this way you can exclude possible issues in the FlexRIO. The next step depends on the benchmark result between the 2 PCs.
06-01-2018 07:32 AM
I would first try a direct connect between the PXI and the PC. If your code meets your speed requirements there, then you need to start looking at the network. If you are not meeting your speed requirements when directly connected, then we need to look at the code.
06-01-2018 08:37 AM
@Raj.LabviewArchitect wrote:
We are trying to achieve data transfer around 34 MBps(MegaBytes per second) between flexrio(PXI 8880) and PC.
I must confess I always get confused by Ethernet speed specifications. I know we have 100BaseT drops in our labs, with an option to have a Gigabit Drop (if we pay extra), but is that 100 million bits or 100 million bytes? According to the Web, Ethernet speed is in terms of bits per second, so 100BaseT lines can transfer (in principle) up to 12.5MBytes/second. You are getting twice that, but need three times this number.
So the first question (it seems to me) is to ask what is the slowest speed of the Ethernet connections between your two devices? I've seen plenty of PCs with 100BaseT network ports (hmm, what's the rating on this laptop of mine, about two years old? Well, a SpeedTest of my WiFi connection shows 50Mb (which I think is Mega-bits), and my Ethernet connection (not being used at present) seems to be GigaBit-capable). If it's a Network Card, get one rated at for a Gigabit. If it's a network Drop, try to get a Gigabit line, or use a direct connection (in lieu of worrying about crossover cables, I tend to use inexpensive switches that have 4 ports and "figure out the correct wiring" on-the-fly).
I admit to being quite confused by these conventions -- we do everything in Bytes except transfer speeds, which we seem to do in bits (possibly to "inflate by a factor of 8"). If I'm "off by a factor of 8" in my understanding here, I do apologize, but hope someone can add some clarity to this issue.
Bob "Bits or Bytes" Schor
06-01-2018 10:45 AM
@Bob_Schor wrote:
I must confess I always get confused by Ethernet speed specifications. I know we have 100BaseT drops in our labs, with an option to have a Gigabit Drop (if we pay extra), but is that 100 million bits or 100 million bytes?
The specs on the actual ports is in bits. Also keep in mind that those ratings are for the actual bus. The TCP/IP headers are not counted in there. So that will cut down on the transfer speed as well. Jumbo Packets can help that out. Or you could go with UDP, which has less overhead but you lose guaranteeing the data gets there.
@Bob_Schor wrote:
(hmm, what's the rating on this laptop of mine, about two years old?
For an Ethernet port, it is most likely 1Gb/s. Gigabit Ethernet has been around for quite a while now and it is hard to find cards that are actually 100MB/s. The standard allows for backwards compatibility, so there is no real reason (not even cost) to not go with the Gigabit. Some routers and switches you need to be careful of though.
06-01-2018 04:14 PM
The NICs on the PC maybe 1 Gb but the switches in the closets may still be 100 Mb. It depends on how quickly the IT structure is updated. We didn't get 1 Gb switches at my office until we moved buildings a few years ago. Some companies are very slow to upgrade their network infrastructure. In addition, the switches themselves could be configured tho throttle the traffic.As suggested, this needs to be benchmarked with a direct connection first to see if the speed issue is in the code or the PC or FlexRIO themselves. If it meets spec there, then there are lots of network variables that would need to be looked at, including what is the wiring rated at (Cat5, Cat5e, Cat6, etc).