현재 IP를 통해 텔레콤 응용 프로그램을 테스트하고 있습니다. Raw Socket을 열고 원격 측에서 메시지를받습니다 (msgrate @ 750 + msgs/IP를 제외한 약 180 바이트의 두 번째 크기).원시 소켓 수신 버퍼
Raw 소켓 위에 SCTP (TCP처럼)라는 레이어가 있으며,이 레이어는 모든 패킷을 잃어 버렸음을 나타냅니다. 이제 우리는 수신 노드에서 Wireshark를 실행 중이며 Wireshark에서 해당 패킷을 볼 수 있습니다.
소켓의 수신 버퍼가 작아서 IP (?)가 메시지를 삭제하게됩니다. 그러나 IP Pegs (netstat -sv)는 삭제 된 패킷이 없음을 보여줍니다. 성공적으로 소켓 수신 대기열을 40000으로 설정하려고했습니다.
IP 레이어를 구성해야하는 경우 어떤 옵션이 있는지, 또는 설정해야하는 특정 소켓 옵션이 있는지에 관해서는 필자가 어떤 조언을 주시면 감사하겠습니다.
문제가 해결되었습니다. 큐에있는 옥텟을 0으로 구분하고 페이로드 0으로 IP 헤더를 구별하는 것에 대해 추가 한 질문과 관련하여 새로운 질문을 만들어야합니다. 실제로 –
을 분석 한 후 실제로 ioctl (FIONREAD)을 호출하면 대기중인 바이트 수는 너무 많은 시스템 호출입니다. 버퍼 크기를 우리가 기대하는 최대 값으로 설정하여 recv (UDP/Raw 패킷의 경우)를 수행하도록 코드를 변경했습니다. 그렇게함으로써 페이로드 0 시나리오의 IP 헤더에 대해 더 이상 걱정할 필요가 없습니다. 그래도 도와 줘서 고마워. 그것은 올바른 방향으로 생각하고 있어요. –