2017-12-09 50 views
0

エコーサーバlwIPの下でイーサネット通信を行っています。 DMAからホストにサンプルをイーサネットで取り込みたいと思います。システムは、UARTを介してサンプルをキャプチャします。lwIPエコーサーバのデータ送信エラー

ACKを待たずに、1500バイト以上の2つ以上のパッケージを送信するようにlwIPを設定することはできません。私のアプリケーションはパケットをクライアントに連続的に送ります。クライアントは遅延なくパケットを受信しますが、200ms後にACKを送信します(添付のwiresharkキャプチャイメージを参照)。 LWIPは、次のパケットを送信する前に常にACKパケットを待っています。私のlwIPは2つ以上のTCPセグメントしか送信できず、ACKを待つことができました。ネットワークの遅延により、パフォーマンスが低下します。

ACKパケットを待たずにLWIPにパケットを送信させる設定がありますか?提案はありますか?

enter image description here

答えて

0

あなたは、TCPの代わりにUDPを使用することについてどのように待ちたくない場合は? TCPはストリームプロトコルであり、すべてが到着し、順不同であることを保証します(エラーがない限り)。エコーは通常、注文に関する気にならない状況を考えさせます。特定のパケットがそれを作るかどうか、そしてどれくらいかかったかどうかだけです。

+0

ありがとうございます。数百万のサンプルをキャプチャする必要がある場合は、おそらくUDPを使用していくつかのサンプルを失うでしょう。あなたの提案は、UDPモードでエコーサーバーを使用することですか?敬具 – Charli