루프백 인터페이스를 통한 UDP 사용 시 패킷 재정렬 및 ​​복제

루프백 인터페이스를 통한 UDP 사용 시 패킷 재정렬 및 ​​복제

우리는 UDP 패킷이 lo를 통해 전송될 때 재정렬되고 반복되는 것을 볼 수 있습니다. 헤더에 고유한 시퀀스 번호가 있는 MPEG 전송 스트림을 전송하기 때문에 이를 알 수 있습니다. 트래픽을 RTP로 보내고 이 지점까지 이렇게 재정렬된 패킷을 보면 알 수도 있습니다. 이는 잠재적인 것과 관련이 있을 수 있습니다.이것문제는 네트워크를 통해 데이터를 전송하는 코드를 사용하고 있기 때문에 쓰기를 많이 수행하지는 않지만 패킷이 1500바이트 프레임에 적합하다는 것입니다.

기본 권장 구성(우리 lo에는 rx 대기열이 하나만 있음)을 사용하여 RFS 구성을 시도했지만 별 차이가 없는 것 같습니다. 이는 자체 UDP/RTP 코드이든 srt-live-transmit과 같은 애플리케이션이든 관계없이 발생하는 것 같습니다(FFMPEG를 테스트하지는 않았지만 비슷하게 동작할 수 있습니다).

이는 Redhat 8.3(커널 4.18.0-240.15.1.el8_3)에 있습니다.

답변1

RPS를 활성화해 보십시오:

cat /sys/devices/virtual/workqueue/cpumask > /sys/class/net/lo/queues/rx-0/rps_cpus

패킷 재정렬이 예상되지만 RPS는 수정 사항이며 앞으로도 계속 작동해야 합니다. https://lore.kernel.org/netdev/[이메일 보호됨]/

관련 정보