I naively expected that after receiving the" duplicate ack" signalling a
packet dropped,
LwIP would immediately re-transmit the dropped packet.
Instead there is a 1.5 second pause (see Wireshark trace below).
Why is that?
Sorry if that's a dumb question; I'm a newbie with this...
Thanks,
Best Regards, Dave
PS: Might this be related to the pauses seen by UAZ ?
I'm also using FreeRTOS but with preemption enabled (unlike UAZ).
Test application uses sockets interface as follows:
const int testCnt = 1000;
const int linesPerCycle = 3;
static const TickType_t xDelay = 1 / portTICK_PERIOD_MS; /*
Block for xx ms. */
static char testData[] =
"xxx123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456\n\r";
char saveMe = testData[4];
TickType_t startTick = xTaskGetTickCount();
uint32_t elapsedTicks;
for(int i=0; i<testCnt; i++) {
sprintf(testData,"%03d", i);
testData[4] = saveMe; // replace terminating 0 written by
sprintf
for(int j=0; j<linesPerCycle; j++) _send(user->socketFD,
testData, sizeof(testData));
// Delay to simulate desired throughput, but try not to
fall behind...
elapsedTicks = xTaskGetTickCount()-startTick;
if(elapsedTicks > i+1) continue; // skip delay if we've got
behind
vTaskDelay( xDelay ); // may delay for a lot longer than
requested, for example delayed by processing in LwIP thread...
};
char buf[96];
sprintf(buf,"Elapsed ticks=%lu for %d lines (%f msec per line,
using %d-line sets)\n\r", elapsedTicks, linesPerCycle*testCnt,
((float)elapsedTicks)/(linesPerCycle*testCnt), linesPerCycle);
_send(user->socketFD, buf, strlen(buf));
return;
On 2/26/2019 6:45 PM, Dave Nadler wrote:
I figured out how to get the wireshark trace,
but how to get the wireshark GUI to output the summary below in text
baffles me, hope the pic is OK:
Everything is going swimmingly until 4316.
I don't understand the meaning of "previous segment not captured" here
- something got dropped.
And then it takes a second to get going again.
Any pointers appreciated!
Thanks,
Best Regards, Dave
On 2/20/2019 1:45 AM, Johan Borkhuis wrote:
Dave,
First thing would be to sniff the network using Wireshark, and see
what happens there when the traffic pauses.
This would usually give a good indication on what did happen.
Regards,
Johan
On 2019-02-20 00:15, Dave Nadler wrote:
Hi - Newbie here trying to do some basic throughput tests.
LwIP 2.1.2 on FreeRTOS 9, ST32F429, IPv4, TCP.
I want to see how much I can consistently push through the stack.
Made a simple test server (sockets API) which repeatedly outputs
101-character lines.
I access the server via PuTTY raw mode on Winbloze over a local
network.
I can usually send 3 lines per msec for a second (3000 lines in 1
second), but...
Sometimes, I get ~ 1-second pauses (as seen in Putty or TeraTerm).
How should I go about understanding where the pauses come from?
Thanks in advance for any hints,
Best Regards, Dave
--
Dave Nadler, USA East Coast voice (978) 263-0097, d...@nadler.com,
Skype Dave.Nadler1
_______________________________________________
lwip-users mailing list
lwip-users@nongnu.org
https://lists.nongnu.org/mailman/listinfo/lwip-users
--
Dave Nadler, USA East Coast voice (978) 263-0097, d...@nadler.com, Skype
Dave.Nadler1
_______________________________________________
lwip-users mailing list
lwip-users@nongnu.org
https://lists.nongnu.org/mailman/listinfo/lwip-users