我要寻找的答案,在报价的最后一个问题如何获得Android的TCP跟踪
这是响应this thread:
由于这些短消息(< MSS),我猜测栈可能正在实现Nagle的算法。服务器是否做了某种延迟的确认?如果可能的话,你应该捕获一个踪迹,看看是否有来自另一方的未决确认。 无论哪种情况,TCP_NODELAY都应该有所帮助。
(1)什么ACK代表不?我GOOGLE了它,但无法找到一个定义(2)我会给TCP_NODELAY,你和尼古拉建议一个镜头,并标记回答,如果它确实回答了这个问题。感谢你目前的帮助!
ACK是TCP确认。服务器可能会等待将它们捆绑在一起,而不是为每个段发送ACK。如果客户端实现了Nagle的算法,它会在发送包含< MSS的段之前等待ACK。在TCP跟踪中,您必须在TCP头中查找ACK编号,并将其与SEQ号码相关联,以查看是否发生了这种情况。或者你可以在这里发布一个捕获片段。
好吧,我更新的问题,以显示我的线程的run方法创建插座以及Java服务器。你会看到我有socketClient.setTcpNoDelay(true);在那里,但它没有解决它。该文档有它应该是socketClient.setTcpNoDelay(on);但之后我需要初始化。我有点困惑,我应该初始化“on”,以使socketClient.setTcpNoDelay(on);工作?
在问候了TCP跟踪,我该怎么办,从机器人(客户端)或计算机(服务器)的一面呢?和我在哪里/如何实施?它只是socketClient。 ?
附加信息:
- 我在Eclipse 01开发
- 我的TCP客户端(安卓)被张贴在链接的问题
- 我TCP服务器(JAVA)被张贴在链接的问题