[xiph-rtp] header caching and chaining

Phil Kerr phil at plus24.com
Sun Feb 6 17:18:35 PST 2005


Hi Ralph,

Ralph Giles wrote:

>Derf raised the question of CRC32 cache collisions on irc today and I'm 
>afraid he as a point.
>
>The idea was to CRC32 hash the info+setup headers, and include that in 
>every packet to identify the associated decoder setup. Since this ident 
>is generated in a well defined way from the stream headers, clients 
>could cache the results and avoid having to do an out-of-band retrieval 
>for headers it's already seen. It also makes it easy to verify correct 
>retrieval of the headers before use.
>  
>
This is the plus side using this mechanism.

>The problem is that the risk of a collision causing the decoder to use 
>the wrong set of headers. If you believe in deterministically correct 
>software, that's bad, and even if you don't the probability with a 32 
>bit value is high enough to occur occasionally in practice.
>  
>
I think Derf was talking about Theora, not Vorbis, but from what I 
gathered he listed the maximum permutations for all the config fields.  
In practice there will be a large number of permutations that will never 
be seen.

When the idea came up for using a CRC32 field there seemed to be no real 
objections to it, perhaps we should find out what the frequency of hash 
collisions are in real-life?

>So, the only way around this is to not cache the headers. We could just 
>say that, but doing so breaks the broadcast use case where play-time 
>retrieval isn't an option.
>  
>
This is a solution, but does it harm functionality too much?

>The other thing we can do is just make it an arbitrary number and say 
>that the sender and receiver MUST negotiate a mapping between the ident 
>and the decoder setup out of band, and just leave it out of the scope of 
>the RTP mapping (beyond the in-band transmission option anyway.) This 
>should work fine for the SDP uri and so on.
>  
>
If there is no caching then this will work as there only needs to be a 
unique ident for each file for the session life.  How do you ensure that 
the arbitrary numbers are unique?  Would ov_serialnumber be unique enough?

-P

>Thoughts?
>
> -r
>_______________________________________________
>xiph-rtp mailing list
>xiph-rtp at xiph.org
>http://lists.xiph.org/mailman/listinfo/xiph-rtp
>
>  
>



More information about the xiph-rtp mailing list