2012-08-07 43 views
0

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

回答

2

我不知道,如果標題涉及到你的問題問。

如果我們堅持標題:「如何讓Android的TCP跟蹤」,您可以使用軟件,如http://www.wireshark.org/

將它安裝在您的開發機器上,並確保您的開發設備或仿真器使用開發機器的互聯網連接。

這就是你如何得到tcp trace最簡單的方法(imho)