Note: This has been moved to the question.
I like to help find something in my application due to low data transfer rate.
I have 12 embedded systems and a Linux server. I embedded system send data to server on TCP over Ethernet link through a switch. The following is a TCP stream graph which is made of wirehark capture from traffic from a board.
As you can see, data The transfer takes approximately 5.8 mbit / s to about 0.25 seconds. It's as fast as I can expect that the embedded system should go. After this, the transfer is delayed showing the closeup of the following article:
A ladder-shaped curve below the ACK label shows how much data has been done by the server at any time. The RWIN with the respective curve label shows how much space will be in buffers on DATPC. Sent small vertical segment actual packets are sent.
At point A, the server sends the data as quickly as it is sent to, but again no accence is sent by the server for a period of 23ms. The embedded system is allowed to send up to RWIN without waiting for ACK, but it does not do this because it needs to keep data sent around a solid (as long as they need to be revised) and send buffer space limited .
Then, on point B, all the data received are ACCD once and sends the resume for the normal escoding and 2.5ms before another break.
WAHARC Capture was made from a separate PC which was connected to a port on the switch that all the data was shown and the embedded system on which it was connected was received on the port.
The Linux server runs a Java application that stores data and disk on them. It does not show any signs of maximizing the CPU. The operating system is with Ubuntu Server 12.04 default network settings.
I can see that I can get the benefit of sending more buffer space in the embedded system to match the amount of window space received in the Linux server, but it does not seem to be a limiting factor.
My questions are:
- The reason for stopping the Linux server can be ACK though it clearly receives everything properly Is able to?
- How can I go about debugging it?
No comments:
Post a Comment