동료 코더없이 UDP를 보냅니다. 내가 libnetfilter_queue 모듈을 사용하여 내 나가는 트래픽을 모니터링하고 있습니다과 iptables에가 ipatbles를 지배 -I OUTPUT 1 -p 모든 -j는 11,220Linux 앱은 소켓
는 (자바에서 실행) Jitsi라는 특정 응용 프로그램은, --queue-NUM입니다 NFQUEUE 전에는 만나지 못한 이상한 행동을 보입니다 : NFQUEUE 패킷을 처리하는 모니터링 프로그램이 "/ proc/net/udp"및 "/ proc/net/udp6 "은 비어 있고,"/ proc/net/protocols "에는 UDP에 대한"소켓 "열이 있으며 0입니다. 그러나 UDP 패킷은 계속 전송됩니다. 그런 다음 1 분 정도 후에 "/ proc/net/udp"및 "/ proc/net/protocols"가 UDP 패킷에 대한 올바른 정보를 보여주기 시작합니다. 그리고 잠시 후 UDP 패킷이 전송되는 동안 정보가 없습니다.
내 유일한 결론은 응용 프로그램이 소켓을 만들지 않고 UDP 패킷을 보내거나 소켓을 생성 한 다음 삭제하여 (따라서 커널이 아무 것도 없다고 생각할 수 있도록) 그리고 여전히 일부를 사용하는 것입니다 외부로 패킷을 보내는 애매한 방법.
그런 행동에 대한 아이디어가있는 사람이 손을 댈 수 있습니까?
보낼 패킷마다 소켓을 열거 나 닫을 수 있습니까? 소켓 열을 이해하는 것은 소켓이 프로세스에 의해 열린 상태로 유지된다는 것입니다. Jitsi가 무언가를 보내는 순간에 프로토콜 데이터를 확인하지 않으면 소켓 수에 0이 표시됩니다. –
당신 말이 맞아요, 그들은 활동적인 과정을 위해 보여집니다. 내 응용 프로그램 검사/proc/* 패킷을받은 후 * 10msec, 타임 스탬프를 확인했습니다. (그러나 내 문제에 대한 해결책을 찾았습니다.) – abirvalg