[Live-devel] [PATCH] Declare RTSP server's timeout
Warren Young
warren at etr-usa.com
Thu Aug 21 07:50:35 PDT 2008
Ross Finlayson wrote:
>>
>> I have a client here that doesn't send RTCP RR packets to the server.
>
> Your client is broken, because RTCP is a required part of the RTP/RTCP
> standard. It is not optional functionality.
RFC 3550, section 6.0: "[RTCP] SHOULD be used in all environments, but
particularly in the IP multicast environment."
I'm sure I don't need to tell you that "SHOULD" is standardese for
"optional". Plus, I'm doing unicast on relatively small private LANs.
RTCP RR solves problems that largely don't exist in my world.
Later, in section 6.2: "Turning off RTCP reception reports is NOT
RECOMMENDED... However, doing so may be appropriate for systems... that
don't require feedback on the quality of reception or liveness of
receivers and that have other means to avoid congestion."
That definitely applies to my situation. My world is K-12 schools,
where managed switches are considered high technology, capable of doing
anything such a small LAN needs. That's how you get QoS and congestion
control (VLANs) in my world. That just leaves alternate ways to
indicate liveness, which is the subject of this patch.
> I might end up changing
> the default "reclamationTestSeconds" value from 45 to 60
You might go slightly higher, to account for differences in
interpretation of time between client and server. Not just clock drift
and such, but also, how do you define time t=0? Is it the transmission
time of the first RTSP request, or from the time of receiving the first
RTP packet from the server, or somewhere between? There's usually a
couple of seconds difference between these two times. The first
keepalive could come in 62 seconds past the server's t=0. Every one
thereafter will be ~60 seconds apart.
> I won't be adding your patch to add the
> "timeout=" parameter, because that would be misleading.
What if the server decided to do this based on the User-Agent value? I
can make it check for my client, and send it only when it sees that it's
necessary.
Understand the tradeoff: we'd be adding this code to save 0.00004 Mbit/s
of network bandwidth. (~300 bytes every 60 seconds.)
More information about the live-devel
mailing list