This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] 编译器/TM4C129XNCZAD:NDK 中的 TCP 窗口已满和 TCP 零窗口问题

Guru**** 2404245 points
Other Parts Discussed in Thread: TM4C129XNCZAD

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/923168/compiler-tm4c129xnczad-tcp-window-full-and-tcp-zero-window-issue-in-ndk

器件型号:TM4C129XNCZAD

工具/软件:TI C/C++编译器

您好!

我们使用的是 TI RTOS v2.16.01.14和 NDK v2.25.0.09。 器件是 TM4C129XNCZAD。 当具有 NDK v2.16.01..14 (作为客户端)的器件连接到服务器时、它会在 TCP Window Full (TCP 窗口已满)和 TCP Zero (TCP 零)窗口中收到以下消息。 我们将使用以下配置。 您能否建议如何避免 TI RTOS 和 NDK 中的 TCP Window Full 和 TCP Zero 窗口? 请建议任何有助于避免这些错误的配置。

global.pktNumFrameBufs=20;
global.memRawPageCount = 10;
global.ndkThreadStackSize = 1536;
global.lowTaskStackSize = 1280;
Global.normTaskStackSize = 1024;
global.highTaskStackSize = 5120;
tcp.transmitBufSize = 1024;
tcp.receiveBufSize = 1024;

ip.socketConnectTimeout = 6;

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    您会看到这一点、因为 TCP 套接字缓冲区大小(转换为窗口大小)太小(1024字节)。

    您可能从 SDK 附带的 TCP 回显示例中获得这些大小。 因此、您只需更新上面显示的配置代码即可增加这些代码。 例如、要增加到16K:

    tcp.transmitBufSize = 16384;
    tcp.receiveBufSize = 16384; 

    有关窗口全窗和零窗的更多信息、请参阅此处:

    osqa-ask.wireshark.org/.../relation-between-window-full-zero-window-and-push

    Steve