Pat*_*ter 5 java sockets macos duplicates
情况如下:我有一个Java应用程序,它通过TCP与具有TCP堆栈的微控制器通信.控制器上的堆栈工作正常,我可以解决这个问题.
问题是:当我终止与Controller的连接时,我只是使用socket.close()并且连接终止,没问题.在我的Mac上,这也有效,但是当我检查Wireshark时,会有常规的终止过程[FIN,ACK]- [ACK]但后面跟着一个[TCP Dup ACK]数据包,因为Wireshark声称属于我的[FIN,ACK]数据包.这只发生在Mac上,并且不会发生在我的Mac或我的上网本上的VM上的Windows机器上...
我是否可以使用任何调整来不让这个Dup-ACK数据包被传输?它实际上通过声称关闭的会话仍然处于活动状态并且在连接到控制器10次后,堆栈中没有更多空间来接受新连接,从而使控制器中的堆栈猛然抬起.
如果有人能给我一个暗示,我真的很感激!
实际上,我建议您与 MCU 的 tcp/ip 堆栈供应商联系。
虽然您可能能够调整这台特定的 Mac,但您必须更永久地修复此问题。而且市场上有足够多的 Mac,你迟早要处理它。
| 归档时间: |
|
| 查看次数: |
652 次 |
| 最近记录: |