主题中讨论的其他器件:TDA2、 AM3357
工具/软件:TI-RTOS
您好!
请在以下链接中找到有关我的产品描述的更多信息。
是否有任何选项可配置 TI NDK 以支持 ACK 数据包的背负方法?
此致
巴拉
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.
工具/软件:TI-RTOS
您好!
请在以下链接中找到有关我的产品描述的更多信息。
是否有任何选项可配置 TI NDK 以支持 ACK 数据包的背负方法?
此致
巴拉
您好 Steve、
总的想法是不要禁用 ACK 数据包、而是应将 ACK 数据包附加到 Modbus 数据包响应中。
请查看下面的 Modbus 通信图。 由于 Modbus TCP 查询将始终包含响应数据包、因此 ACK 数据包可附加到响应数据包、而响应数据包 ACK 将附加到下一个 Modbus 查询数据包。 这可以一直持续到套接字结束。 如果我们这样做、我们希望网络堆栈带宽能够减少并提高 Modbus 事务速率。
请注意、我的第三方 Modbus 库不支持 TCP ACK 数据包、只有它会响应 Modbus 查询。
此致
巴拉
您好 Steve、
[引用用户="Steven Connell"]
在此函数中、您可以看到 ACK 数据包将设置 TF_ACKNOW 或 TF_DELACK 标志:
//在543行附近
if (pt->t_FLAGS &(tf_ACKNOW|tf_DELACK))
TCPS.SndAcks++;//发送 Peek ACKS */
因此、您可以在类似的 if 语句中使用这些标志来过滤掉实际发送 ACK 数据包的调用、IPTxPackag()在第697行附近。[/quot]正如您建议的、我们在 tcpout.c 的第697行中进行了如下修改。
/*发送数据包*/
if (pt->t_FLAGS &(tf_ACKNOW|tf_DELACK))
错误= IPTxPack( pPkt,
SockGetOptionFlags(pt->hSock)& FLG_IPTX_SOSUPPORTED );
但我们仍会单独获取 ACK 数据包。 请查看下面的 Wireshark 捕获。
请建议我们如何延迟 NDK 中的 ACK 数据包?
此致
巴拉