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.

[参考译文] CC3120MOD:TCP 客户端 Rx 缓冲区长度

Guru**** 2393725 points
Other Parts Discussed in Thread: CC3120MOD

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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/997442/cc3120mod-tcp-client-rx-buffer-length

器件型号:CC3120MOD

您好!

根据 API 文档  

sl_Recv 的参数"len"的范围为1-16000个字节。

这是否意味着 CC3120MOD 的内部缓冲器支持在从主机 MCU 接收后读取的16000字节?

现在、我们接收到1500字节、它可以正常工作。 我们将把数据包增加到大约2500字节。

是否需要接收1个以上的数据包(从 CC3120MOD 到主机 MCU 的2个事务)、还是可以用一个数据包接收2500字节?

此致、

Ilian

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

    在数据流套接字中、NWP 缓冲接收到的字节而不是数据包。

    因此、从应用角度来看、您是否获得1个或更多数据包中的数据无关紧要(Wi-Fi 的典型 MTU 为~1500B)。

    NWP 中的存储器资源 有限、并且存储器在使用的套接字之间进行分配。  每个套接字的缓冲区可根据系统用例进行减少 、但理论上您可以调用 sl_Recv 以获得16000个字节(如果缓冲区已满)。 BTW。 当缓冲区已满时、NWP 不 会在 套接字上接收额外的数据包-直到主机从缓冲区中读取数据。 这将导致重新传输并降低 TCP 数据流的速度(因此您可能应该读取较小的数据块以防止这种情况)。  

    在大多数情况下、不会有16K 的等待时间、因此您可能不应该为接收分配如此大的缓冲区。  

    读取2500B 而不是1500B 应该是正常的。

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

    您好、Kobi、

    感谢您的回答!

    此致、

    Ilian