2017-03-31 6 views
0

Ich benutze lwip ontop von FreeRTOS, um Daten an einen Server zu senden. Ich versuche den Datenfluss zu maximieren. Ich stimme mehrere Parameter in "lwipopts.h", aber ich erhalte immer ACK nach dem Senden von zwei Paketen. Danke für die Hilfelwip FreeRTOS TCP-Fenster

NB: einfacher Echo-Server (auf Linux & Fenster) gived das gleiche Ergebnis mit hohen beworbenen TCP_Window Größe

+0

Haben Sie TCP_SND_BUF konfiguriert? Dadurch wird die Anzahl der gepufferten Sendedaten begrenzt, einschließlich der Anzahl der Infight-Daten. Selbst wenn der Empfänger ein großes Fenster ankündigt, sendet LwIP nicht mehr als unverpackte Daten im Wert von TCP_SND_BUF. –

Antwort

0

Haben Sie die TCP_NODELAY Option in Ihrem Sende-Socket versuchen?

+0

Bereits erledigt, verwende ich Delayed Ack mit anderen Optimierungen, habe aber nur 50MB/s mit vollständig dedizierter Bandbreite erreicht. – SOFuser

+0

Ok. Um den Durchsatz zu maximieren, sollte TCP_NODELAY nicht gesetzt sein, glaube ich. Eine weitere zu überprüfende Sache wäre, dass lwIP in keinem der Pools der Speicher ausgeht (dh Aufrufe von memp_malloc()). Es gibt Debug-Makros, die Sie aktivieren können, um das zu erfassen. – stathisv