Re: [AVT] Rtp session with multiple sender streams.

Magnus Westerlund <magnus.westerlund@ericsson.com> Tue, 10 July 2007 13:09 UTC

Return-path: <avt-bounces@ietf.org>
Received: from [127.0.0.1] (helo=stiedprmman1.va.neustar.com) by megatron.ietf.org with esmtp (Exim 4.43) id 1I8FTZ-0003dH-NL; Tue, 10 Jul 2007 09:09:57 -0400
Received: from [10.91.34.44] (helo=ietf-mx.ietf.org) by megatron.ietf.org with esmtp (Exim 4.43) id 1I8FTY-0003XM-4X for avt@ietf.org; Tue, 10 Jul 2007 09:09:56 -0400
Received: from mailgw4.ericsson.se ([193.180.251.62]) by ietf-mx.ietf.org with esmtp (Exim 4.43) id 1I8FTX-00041p-Az for avt@ietf.org; Tue, 10 Jul 2007 09:09:56 -0400
Received: from mailgw4.ericsson.se (unknown [127.0.0.1]) by mailgw4.ericsson.se (Symantec Mail Security) with ESMTP id 8A5CF216A1; Tue, 10 Jul 2007 15:09:54 +0200 (CEST)
X-AuditID: c1b4fb3e-b0034bb0000007e1-b1-469385227006
Received: from esealmw126.eemea.ericsson.se (unknown [153.88.254.123]) by mailgw4.ericsson.se (Symantec Mail Security) with ESMTP id 5BED921617; Tue, 10 Jul 2007 15:09:54 +0200 (CEST)
Received: from esealmw126.eemea.ericsson.se ([153.88.254.174]) by esealmw126.eemea.ericsson.se with Microsoft SMTPSVC(6.0.3790.1830); Tue, 10 Jul 2007 15:09:53 +0200
Received: from [147.214.30.247] ([147.214.30.247]) by esealmw126.eemea.ericsson.se with Microsoft SMTPSVC(6.0.3790.1830); Tue, 10 Jul 2007 15:09:53 +0200
Message-ID: <46938521.7080607@ericsson.com>
Date: Tue, 10 Jul 2007 15:09:53 +0200
From: Magnus Westerlund <magnus.westerlund@ericsson.com>
User-Agent: Thunderbird 2.0.0.4 (Windows/20070604)
MIME-Version: 1.0
To: Ivar <ivar@lumisoft.ee>
Subject: Re: [AVT] Rtp session with multiple sender streams.
References: <469254BA.2010802@lumisoft.ee> <46936D4C.6020800@ericsson.com> <469379E4.107@lumisoft.ee>
In-Reply-To: <469379E4.107@lumisoft.ee>
Content-Type: text/plain; charset="ISO-8859-1"; format="flowed"
Content-Transfer-Encoding: 7bit
X-OriginalArrivalTime: 10 Jul 2007 13:09:53.0681 (UTC) FILETIME=[9B025010:01C7C2F3]
X-Brightmail-Tracker: AAAAAA==
X-Spam-Score: 0.0 (/)
X-Scan-Signature: ec7c6dab5a62df223002ae71b5179d41
Cc: avt@ietf.org
X-BeenThere: avt@ietf.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: Audio/Video Transport Working Group <avt.ietf.org>
List-Unsubscribe: <https://www1.ietf.org/mailman/listinfo/avt>, <mailto:avt-request@ietf.org?subject=unsubscribe>
List-Post: <mailto:avt@ietf.org>
List-Help: <mailto:avt-request@ietf.org?subject=help>
List-Subscribe: <https://www1.ietf.org/mailman/listinfo/avt>, <mailto:avt-request@ietf.org?subject=subscribe>
Errors-To: avt-bounces@ietf.org

Hi,

I think you are a bit confused over the basics and I think the only 
reasonable approach to answer this is to have include a short tutorial 
over how things connects together. Then you can follow up with any 
remaining questions after having gone back and read RFC 3550 once more.

An RTP session consists of a SSRC (Sender Source) space. Each SSRC 
indicates an entity sending packets, either RTP and/or RTCP. Thus both 
senders and receivers need to have a SSRC (I call the joint group of 
senders and receivers for participants). For an host sending media, it 
might require multiple SSRCs to represent different sources of the 
media. Like from two different video cameras or microphones. Each media 
stream of RTP packets will indicate which SSRC it comes from.

RTCP is used for a number of different purposes and that is why each 
sent RTCP packet is a compound packet to allow for the necesary parts to 
be included. A media sender will send Sender Reports to incidicate that 
it is sending media and how that is progressing. A Receiver will send 
Receiver reports to indicate which RTP streams from which SSRC it is 
receiving. As media senders commonly also are media receivers the Sender 
Reports include the same receiver reporting as the receiver reports.

The CNAME (Canonical Name) exist to provide two features. 1) To provide 
a binding between different RTP sessions for media that should be 
synchronized. 2) To be an better unique identifier to detect collisions 
with than the SSRC itself. Thus each SSRC has its own unique CNAME in 
the session.

Everything in RTP and RTCP is built around that each entity doing 
something is identified with its SSRC. From that one can add additional 
information like the SDES information on a per SSRC basis. The receiver 
reporting provides information from each receiver on how they see the 
reception quality of all the sources seen.

I also think you can benefit from reviewing two drafts:

- The RTP topologies draft that will probably make you think a bit more 
about the different usages RTP can be applied in:
http://www.ietf.org/internet-drafts/draft-ietf-avt-topologies-05.txt

- The HOW TO write RTP payload formats that contain some of the basic 
concepts written in somewhat other terms than what is written in RFC 3550.
http://www.ietf.org/internet-drafts/draft-ietf-avt-rtp-howto-02.txt

You could also consider buying Colin Perkins book "RTP: Audio and Video 
for the Internet" that explains most aspects of RTP.

Best Regards

Magnus

Ivar skrev:
> 
> Thakns for the answer.
> 
> But i need some more confirmations, before i get the whole picture.
> (I have most RTP implementation done (packets parsing,interval 
> calculation,...), but i can't relate some object dependencies)
> 
>  >Each source needs to send its own RTCP compound packets with an SR for 
> itself an containing reports on all the other sources it currently 
> receives data from.
> Ok dummy question what is source ? If RTP sesion has 2 sending streams 
> and receives data from xxx count of sources, then we have 3 sources (2 
> sending source and 1 receiving source) ?
> Does RTP session may have only 1 receiver SSRC what will be added to RR 
> reports ?
> Has each sending source has own CNAME ?
> 
> The problem is can't relate source,participant relation ship.
> The confusing parts are like:
>    Each source needs to send its own RTCP compound packets
>    and now
>    As each session participant sends its own compound packets
> Even the term participant is some how confusing, like participant may 
> have multiple streams, may be in multiple sessions, ... .
> I have readed rfc 3550 over and over during 2 weeks,  i can't get such 
> simple stuff.
> 
> I need to idea of this simple case:
> SSRC are just exmples, in realife randoms.
> 
> RTP_Session
>    SendStreams
>       SendStream1  SSRC   = 1 (source in your term if i get right)
>       SendStream2  SSRSC = 2
> 
>    ReceiveStreams - Receive streams is like receiver and has SSRC = 3 
> .... ?
>      ReceiveStream1 SSRC = 100 (source in your term if i get right)
>      ReceiveStream2 SSRC = 101
> 
> Now RTCP interval reaches, Both sending streams has sent data.
> What actually happnes what we must compose here ?
> 
> 2 x SR ?
> RR 1 -  SSRC = 1
> ... no report blocks
> RR 2 -  SSRC = 2
> ... no report blocks
> 
> Ok probably RR
> SSRC = 3
> report block 1
> SSRC = 100
> ... report block data
> report block 2
> SSRC = 101
> ... report block data
> 
> now SDES ... ?
> 
> 
> Thanks
> 
> 
> Magnus Westerlund wrote:
>> Ivar skrev:
>>> Hi,
>>>
>>> RFC 3550 3. says that session may have multiple sending streams, but 
>>> all must have it's own SSRC.
>>>
>>> Now for example session is receiver and there are 2 sending streams, 
>>> how compound RTCP packet is composed ?
>>> Has 2 SR reports if both sender streams have sent data, has 1 SR if 
>>> only 1 stream sent data ? (each SR report has reported sender stream 
>>> SSRC)
>>
>> Each source needs to send its own RTCP compound packets with an SR for 
>> itself an containing reports on all the other sources it currently 
>> receives data from. To avoid throwing off any quality report user, 
>> also SSRCs co-located in the same host needs to include report blocks 
>> on each other.
>>
>>> And what SSRC is used for RR, if there are more than 31 remote 
>>> senders or no local RTP sent during last RTCP interval? 
>>
>> All senders or receivers have their own SSRC. That is always used as 
>> reporting the source of the RR. The content of the report block is 
>> round-robined in case there are more than 31 active sources.
>>
>> (generate local receiver SSRC for that ?)
>>
>> Not certain what you mean with this. But if you mean that a receiver 
>> that isn't sending media, it still needs to have an SSRC. Any sender 
>> or receiver do need to have an SSRC. The only one that can live 
>> without an SSRC is a completely passive receiver, i.e. do not send 
>> RTCP or RTP.
>>
>>
>>> Also how all this affects SDES, because there are more than 1 SSRC 
>>> for RTP session ?
>>
>> As each session participant sends its own compound packets they shall 
>> include the SDES CNAME item for themselves. In addition mixers may 
>> include SDES items from contributing sources.
>>
>>> (One of the SSRC will send all sdes items, other SSRCs only 
>>> CNAME(which will map SSRC to participant))
>>
>> Well this is allowed but doesn't make much sense. As the SDES item 
>> describe the indicated SSRC, and says nothing about the others. No 
>> assumption can really be made with the possible exception between 
>> different media streams and for the SSRCs in the different sessions 
>> that indicate the same CNAME value.
>>
>> Cheers
>>
>> Magnus Westerlund
>>
>> IETF Transport Area Director & TSVWG Chair
>> ----------------------------------------------------------------------
>> Multimedia Technologies, Ericsson Research EAB/TVM/M
>> ----------------------------------------------------------------------
>> Ericsson AB                | Phone +46 8 4048287
>> Torshamsgatan 23           | Fax   +46 8 7575550
>> S-164 80 Stockholm, Sweden | mailto: magnus.westerlund@ericsson.com
>> ----------------------------------------------------------------------
> 
> 


-- 

Magnus Westerlund

IETF Transport Area Director & TSVWG Chair
----------------------------------------------------------------------
Multimedia Technologies, Ericsson Research EAB/TVM/M
----------------------------------------------------------------------
Ericsson AB                | Phone +46 8 4048287
Torshamsgatan 23           | Fax   +46 8 7575550
S-164 80 Stockholm, Sweden | mailto: magnus.westerlund@ericsson.com
----------------------------------------------------------------------

_______________________________________________
Audio/Video Transport Working Group
avt@ietf.org
https://www1.ietf.org/mailman/listinfo/avt