我要尋找的答案,在報價的最後一個問題如何獲得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)被張貼在鏈接的問題