2010-08-21 101 views
0

給定一個在Linux PC上運行的二進制應用程序。是否有可能確定它是否禁用了Nagle的算法。是否可以告訴應用程序是否禁用了Nagle的算法?

一種方法可能是在wireshark中查看輸出並取決於時間差異。你能告訴我一個從wireshark輸出中找到它的可靠方法嗎?

有沒有更直接的方法?我可以跟蹤設置tcp_nodelay選項的系統調用嗎?

目標應用程序可能是Web服務器,應用程序服務器,數據庫偵聽器或任何其他服務器進程。

回答

2

最直接的方法是跟蹤setsockopt系統調用。

從外部看,只有當它禁用Nagle並且行爲不好(快速發送大量小碎片)時才能注意到。如果它禁用Nagle並表現良好,則不能從外部通知。

+1

請參閱此處的答案http://stackoverflow.com/questions/1618051/see-socket-options-on-existing-sockets-created-by-other-apps瞭解如何有效跟蹤setsockopt調用。 – nos 2010-08-21 14:58:58

+0

我希望有一個簡單的方法。大概我會玩strace,如果這樣做不成功,我會嘗試在上面的帖子中解釋的選項。謝謝 – 2010-08-21 17:42:42

相關問題