2013-06-18 10 views
1

커널에서 특정 TCP 연결의 혼잡 윈도우를 추적하려고합니다. 가장 쉬운 방법은 printk 또는 printf을 사용하고 커널에서 snd_cwnd이라고 가정하는 해당 변수를 인쇄하는 것입니다.Linux 커널의 특정 TCP 연결 추적 혼잡 윈도우

더 많은 표준 방법이 있습니까? 이상적으로, 나는 중요한 TCP 매개 변수가 특정 TCP 연결에 대해 어떻게 변하는 지 관찰하고 싶습니다.

답변

0

printk를 사용하면 특정 데이터를 덤프하는 것이 옳습니다. 실제로 printk이 최선의 방법입니다.

특정 TCP 연결의 매개 변수를 관찰하려면 netfilter 후킹의 도움을 받으십시오. netfilter 커널 모듈 (http://fcns.eu/2010/02/15/netfilter-hooks/)을 사용하면 특정 연결을 추적하고 원하는 모든 tcp 패킷을 확인할 수 있습니다.

0

저속 전송을 사용하는 경우에만 printk을 사용할 수 있습니다. 빠른 전송을 사용하면 이러한 매개 변수의 변경 횟수가 많아지며 printk에서 사용하는 dmesg 버퍼가 오버플로됩니다. 과거에는 이러한 매개 변수가 변경되었을 때 커널과 사용자 공간간에 relayfs 버퍼를 사용하는 몇 가지 코드를 해킹했습니다. 요즘에는 정보를 효율적으로 얻는 데 유용한 시스템 탭이 있습니다.