2010-08-21 2 views
0

리눅스 PC에서 실행되는 바이너리 응용 프로그램이 제공됩니다. Nagle의 알고리즘을 사용할 수 없는지를 결정할 수 있습니까?응용 프로그램이 Nagle의 알고리즘을 비활성화했는지 여부를 알 수 있습니까?

한 가지 방법은 wireshark의 출력을 시간차에 따라 볼 수 있습니다. wireshark 출력에서 ​​찾을 수있는 확실한 방법을 알려주시겠습니까?

더 직접적인 방법이 있습니까? tcp_nodelay 옵션을 설정하는 시스템 호출을 추적 할 수 있습니까?

대상 응용 프로그램은 웹 서버, 응용 프로그램 서버, 데이터베이스 수신기 또는 다른 서버 프로세스가 될 수 있습니다.

답변

2

가장 직접적인 방법은 setsockopt 시스템 호출을 추적하는 것입니다.

외부에서 보면 Nagle을 사용할 수 없게되고 나쁜 동작을 보일 때만 알 수 있습니다 (작은 조각을 빠르게 보냅니다). Nagle을 비활성화하고 잘 동작하면 외부에서 알 수 없습니다.

+1

setsockopt 호출을 효과적으로 추적하는 방법에 대한 대답은 http://stackoverflow.com/questions/1618051/see-socket-options-on-existing-sockets-created-by-other-apps를 참조하십시오. – nos

+0

나는 간단한 방법이 있었으면 좋겠다. 아마도 나는 strace로 플레이 할 것이고, 그것이 작동하지 않는다면, 나는 위의 포스트에서 설명 된 옵션을 시도 할 것이다. 감사 –