Subject: [MMUSIC] Question about RTSP proxy

From: "Y.J. Gu" <[email-masked]>
Date: Tue, 11 Aug 2009 14:04:20 +0800

Hi all,
In RTSP 2.0, it is permitted to transmit several client requests in one
Transport Connection. 
I think this may introduce new problems when RTSP proxy is intervened, and
existing RTSP can not deal with the scenario correctly.
The following is an example. To display the figure correctly, please
maximize this email window.
   Suppose that client A and client B wants to join different multicast
groups on the same server.
   +----------+                      +--------------+
+--------+ 
   | Client A |                       | RTSP proxy|
| Server |
   +----------+                      +--------------+
+--------+
        |                                              |
|
        |    +----------+                        |
|
        |    | Client B |                         |
|
        |    +----------+                        |
|
        |         |                                    |
|
        |         |    Setup                       |
| 
        |==================>  |
|
        |         |                                    |
|
        |         |                                    |      Setup
|
        |         |
|====================> |
        |         |                                    |
|  
        |         |    Setup                       |
|
        |         |*****************>|
|
        |         |                                   |      Setup
|
        |         |
|************************> |
        |         |                                   |
|
        |         |                                   |
|
        |         |
|<=====================|
        |         |                                   | 200 OK
(SessionID=12345678)|
        |         |
|<************************ |
        |         |                                   | 200 OK
(SessionID=23456789)| 
        |         |                    ?????????|
|
        |         |                                   |
|

                          Fig.2  Multicast 

   The interactive messages are listed as following.
 
   Session issued by Client A:
   C->P: SETUP rtsp://live.example.com/concert/audio RTSP/2.0
         CSeq: 111
         Transport: RTP/AVP;multicast
 
   P->S: SETUP rtsp://live.example.com/concert/audio RTSP/2.0
         CSeq: 333
         Transport: RTP/AVP;multicast
   Session issued by Client A:
   C->P: SETUP rtsp://live.example.com/anotherconcert/audio RTSP/2.0
         CSeq: 222
         Transport: RTP/AVP;multicast
   P->S: SETUP rtsp://live.example.com/anotherconcert/audio RTSP/2.0
         CSeq: 444
         Transport: RTP/AVP;multicast

   Proxy will receive the following responses from server:
   S->P: RTSP/2.0 200 OK
         CSeq: 333
         Server: PhonyServer/1.0
         Date: Thu, 23 Jan 2009 15:35:06 GMT
         Transport: RTP/AVP;multicast;
              dest_addr="224.2.0.1:3456"/"224.2.0.1:3457";ttl=16
         Session: 12345678
   S->P: RTSP/2.0 200 OK
         CSeq: 444
         Server: PhonyServer/1.0
         Date: Thu, 23 Jan 2009 15:35:06 GMT
         Transport: RTP/AVP;multicast;
              dest_addr="224.2.0.2:1234"/"224.2.0.2:1235";ttl=16
         Session: 23456789
 
In this case, RTSP proxy can not distinguish the responses, then it may
respond client with wrong message and induce client to join a wrong
mutlicast group. 
 
Do anybody think this is an possible trap/deficiency, and RTSP should try to
resolve?
Thanks.

Regards

Yingjie Gu

---

From: Jamie Gordon <[email-masked]>
Date: Wed, 12 Aug 2009 11:36:52 -0700

On 8/10/2009 11:04 PM, Y.J. Gu wrote:
> I think this may introduce new problems when RTSP proxy is 
> intervened, and existing RTSP can not deal with the scenario correctly.

This has not changed from RTSP 1.0, and even some existing clients will
do similar, for instance when streaming multiple separate contents which
it is syncing via smil. The RTSP sequence number applies to the RTSP
session on which it is carried. A proxy must handle any associated
sequence number mapping between client connections and server
connections.

>               dest_addr="224.2.0.2:1234"/"224.2.0.2:1235";ttl=16

This is not correct. If the proxy is using the same RTSP proxy<->server
connection for multiple client<->proxy connections, it must resequence
and internally track the associations. It can't just blindly pass
through the sequence numbers from it's client connections, those are
clearly not correct. So if Client A and Client B send

CA -> P:
SETUP rtsp://live.example.com/concert/audio RTSP/2.0
CSeq: 111
Transport: RTP/AVP;multicast

CB->P:
SETUP rtsp://live.example.com/anotherconcert/audio RTSP/2.0
CSeq: 222
Transport: RTP/AVP;multicast

The proxy must then send to the server

P->S:
SETUP rtsp://live.example.com/concert/audio RTSP/2.0
CSeq: 1
Transport: RTP/AVP;multicast

SETUP rtsp://live.example.com/anotherconcert/audio RTSP/2.0
CSeq: 2
Transport: RTP/AVP;multicast

and store the mappings [Client A CSeq 111 -> Server CSeq 1] and
[Client B CSeq 222 -> Server CSeq 2]

and when it receives the responses it certainly knows the correct
response for each client. Similarly if the proxy is not in pure pass
through mode and is actually handling some requests and/or inserting
some requests, it would need to adjust sequence numbers appropriately
between server and client.

Thanks,
Jamie

> In this case, RTSP proxy can not distinguish the responses, then it 
> may respond client with wrong message and induce client to join a 
> wrong mutlicast group.
>  
> Do anybody think this is an possible trap/deficiency, and RTSP should 
> try to resolve?
> Thanks.
>  
> 
> Regards
> 
> Yingjie Gu
> 
>  
> 
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> mmusic mailing list
> [email-masked]
> https://www.ietf.org/mailman/listinfo/mmusic

---

From: "Y.J. Gu" <[email-masked]>
Date: Thu, 13 Aug 2009 09:25:07 +0800

Hi Jamie, see in line please.

Regards

Yingjie Gu

> -----Original Message-----
> From: Jamie Gordon [mailto:[email-masked]] 
> Sent: Thursday, August 13, 2009 2:37 AM
> To: Y.J. Gu
> Cc: [email-masked]
> Subject: Re: [MMUSIC] Question about RTSP proxy
> 
> > In RTSP 2.0, it is permitted to transmit several client requests in 
> > one Transport Connection.
> intervened, 
> > and existing RTSP can not deal with the scenario correctly.
> This has not changed from RTSP 1.0, and even some existing 
> clients will do similar, for instance when streaming multiple 
> separate contents which it is syncing via smil. The RTSP 
> sequence number applies to the RTSP session on which it is 
> carried. A proxy must handle any associated sequence number 
> mapping between client connections and server connections.
> 
> So for your example:
> 
> >  
> This is not correct. If the proxy is using the same RTSP 
> proxy<->server connection for multiple client<->proxy 
> connections, it must resequence and internally track the 
> associations. It can't just blindly pass through the sequence 
> numbers from it's client connections, those are clearly not 
> correct. So if Client A and Client B send
> 
> CA -> P:

Welll, I do resequence the client CSeq to proxy CSeq, 
For client A, CSeq is from 111 to 333
For client B, CSeq is from 222 to 444
And yes of course the proxy will store the mapping as you said. 

> and store the mappings [Client A CSeq 111 -> Server CSeq 1] 
> and [Client B CSeq 222 -> Server CSeq 2]
> 
> and when it receives the responses it certainly knows the 
> correct response for each client. Similarly if the proxy is 
> not in pure pass through mode and is actually handling some 
> requests and/or inserting some requests, it would need to 
> adjust sequence numbers appropriately between server and client.

RTSP surely can distinguish the response by CSeq. I gave other problem
statement in my following email, please check them.