Посмотрите определения для пакетов RTP и RTCP в RFC 3550 :
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|V=2|P|X| CC |M| PT | sequence number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| timestamp |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| synchronization source (SSRC) identifier |
+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
| contributing source (CSRC) identifiers |
| .... |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Я не буду воспроизводить легенду для всего вышеперечисленного - она довольно длинная - но взгляните на Раздел 5.1 .
Имея это в виду, вы увидите, что вы мало что можете сделать, чтобы определить, содержит ли a пакет RTP / RTCP. Лучше всего было бы понюхать, как предлагали другие авторы, переговоры о медиа потоке. Вторым наилучшим вариантом будет сопоставление шаблонов по последовательности пакетов: первые два бита будут равны 10, затем следующие два бита будут постоянными, затем биты 9–15 будут постоянными, затем 16 -> 31 с увеличением и и так далее.