Re: [rtcweb] [MMUSIC] Is bundle just a port override?

"Mo Zanaty (mzanaty)" <mzanaty@cisco.com> Tue, 19 March 2013 18:43 UTC

Return-Path: <mzanaty@cisco.com>
X-Original-To: rtcweb@ietfa.amsl.com
Delivered-To: rtcweb@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id E3DD821F8498; Tue, 19 Mar 2013 11:43:54 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -8.399
X-Spam-Level:
X-Spam-Status: No, score=-8.399 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, J_BACKHAIR_55=1, J_CHICKENPOX_14=0.6, J_CHICKENPOX_15=0.6, RCVD_IN_DNSWL_HI=-8]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id LJzQW5AwoxXy; Tue, 19 Mar 2013 11:43:53 -0700 (PDT)
Received: from rcdn-iport-5.cisco.com (rcdn-iport-5.cisco.com [173.37.86.76]) by ietfa.amsl.com (Postfix) with ESMTP id 9052621F8319; Tue, 19 Mar 2013 11:43:53 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=7765; q=dns/txt; s=iport; t=1363718633; x=1364928233; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=XyEM/tkGHiyeWeJdUVa+jPcbKOH6atmXnYQoJ7FZHRk=; b=SrD4vtfbTHoH57j5WlcXmwsj32snaZEf+eHat0s01PEj2GbxMgIjsWcV rd5walROPzzUX+HTbePQUSKRZK4rqvJN9OLzV4Jn0IK5E9Y0PPJXinUFJ 5rKgjTFfVhAlpf0rAnzMt234m+hcCv8csauq0eOO7MjcbiAik/wUVDsPi c=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: AgIFAGWwSFGtJXHA/2dsb2JhbABDxRuBWhZ0giQBAQEDAQEBASQTNAsFBwQCAQgOAwQBAQEKFAkHJwsUCQgBAQQOBQgTh3MGDLFwkBWNXn8mCwcGgllhA5ILhXOPY4MKgWoJFwQa
X-IronPort-AV: E=Sophos;i="4.84,873,1355097600"; d="scan'208";a="189200903"
Received: from rcdn-core2-5.cisco.com ([173.37.113.192]) by rcdn-iport-5.cisco.com with ESMTP; 19 Mar 2013 18:43:53 +0000
Received: from xhc-rcd-x11.cisco.com (xhc-rcd-x11.cisco.com [173.37.183.85]) by rcdn-core2-5.cisco.com (8.14.5/8.14.5) with ESMTP id r2JIhqZ4023736 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=FAIL); Tue, 19 Mar 2013 18:43:52 GMT
Received: from xmb-rcd-x14.cisco.com ([169.254.4.51]) by xhc-rcd-x11.cisco.com ([173.37.183.85]) with mapi id 14.02.0318.004; Tue, 19 Mar 2013 13:43:52 -0500
From: "Mo Zanaty (mzanaty)" <mzanaty@cisco.com>
To: Emil Ivov <emcho@jitsi.org>
Thread-Topic: [MMUSIC] Is bundle just a port override?
Thread-Index: Ac4kHg5Y6RAUfNpKQfaYxrqiVMYCTQAjG6gAAAGCK8AADz+6gAAJ0yXg
Date: Tue, 19 Mar 2013 18:43:52 +0000
Message-ID: <3879D71E758A7E4AA99A35DD8D41D3D90F69476F@xmb-rcd-x14.cisco.com>
References: <3879D71E758A7E4AA99A35DD8D41D3D90F6942C3@xmb-rcd-x14.cisco.com> <514829CE.4010004@alvestrand.no> <3879D71E758A7E4AA99A35DD8D41D3D90F694591@xmb-rcd-x14.cisco.com> <51489A43.3030109@jitsi.org>
In-Reply-To: <51489A43.3030109@jitsi.org>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [10.82.239.88]
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
Cc: "rtcweb@ietf.org" <rtcweb@ietf.org>, "mmusic@ietf.org" <mmusic@ietf.org>
Subject: Re: [rtcweb] [MMUSIC] Is bundle just a port override?
X-BeenThere: rtcweb@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: Real-Time Communication in WEB-browsers working group list <rtcweb.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/rtcweb>, <mailto:rtcweb-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/rtcweb>
List-Post: <mailto:rtcweb@ietf.org>
List-Help: <mailto:rtcweb-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/rtcweb>, <mailto:rtcweb-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 19 Mar 2013 18:43:55 -0000

Hi Emil,

Those drafts use the SDP grouping framework (a=group:BUNDLE/TOGETHER), which I think is unnecessary complexity and ambiguity for something which can be solved in a much simpler and clearer way with a single attribute: a=port <port>. (Or, if we want to warn humans about RTP muxing, then name it a=rtp-mux:<port>, but machines won't care about the name, and their RTP implementations already know how to deal with muxing if they use this attribute, so stronger warnings are unnecessary.)

Regarding the concern about non-use of the discarded RTP ports confusing SBCs, see this part of my original message [with clarifications], which is what the current bundle draft also suggests:

> Either end can re-offer without lies about ports on the m-line after
> confirming the peer is not confused by muxing, if they want to avoid
> confusing intermediaries [that may monitor the unused ports].

To summarize the (long) history of RTP mux / bundle problems and solutions:

1. We want to multiplex everything on one port: audio/video/RTP/RTCP/SCTP.

2. But we hit a red light in RTP, which says we SHOULD NOT multiplex on the same port using PT/SSRC, so drafts were written to relax the restrictions. (Note that RFC 3550 RTP also says MUST NOT multiplex RTP and RTCP, so RFC 5761 a=rtcp-mux was written. We should continue to remove obsolete and unnecessary restrictions in old specs.)

3. With a green light from RTP, we now turn to SDP to signal the same port on multiple m-lines.

4. We hit a red light in SDP since this is technically undefined behavior, so we fear legacy peers or intermediaries will choke on it.

5. We lie about our desired ports on the m-line, using unique ports to avoid confusing legacy peers or intermediaries.

6. We signal our truly desired ports in some way outside the m-line.

7. If the peer understands 6, it signals back in some way, and we think we're good to mux.

8. We hit a red light in intermediaries that monitor ports but don't understand 6/7, so we re-offer with the actually used ports (not lies) in the m-line to avoid confusing them.

I'm just asking why 6/7 decided to use complex grouping semantics instead of a simple attribute. Was a simple port override attribute already considered and dismissed? Or just overlooked?

Cheers,
Mo

-----Original Message-----
From: Emil Ivov [mailto:emcho@jitsi.org] 
Sent: Tuesday, March 19, 2013 1:03 PM
To: Mo Zanaty (mzanaty)
Cc: Harald Alvestrand; rtcweb@ietf.org; mmusic@ietf.org
Subject: Re: [MMUSIC] Is bundle just a port override?

Hey Mo,

On 19.03.13, 16:28, Mo Zanaty (mzanaty) wrote:
> I understand the RTP session rules, but they are a matter for AVTCORE,
> and several drafts already detail the RTP considerations for
> multiplexing streams, of potentially different media types, over the
> same port (using plain RTP not SHIM). Bundle does not need to solve that
> (solved) problem, it just needs to signal which port(s) to use. If we
> feel we should signal some sort of human-level warning about RTP mux
> rules when signaling ports, the attribute can be named a=rtp-mux:<port>
> instead of a=port <port>.
> 
>  
> 
> I don't see how any grouping semantics help with any of the rules.
> Actually, I think grouping semantics hurt, not just due to complexity,
> but also due to ambiguity about which attributes are inherited or
> overridden from other m-blocks. Keeping all the m-block attributes
> independent seems simpler and clearer. If an attribute needs to be
> consistent across m-blocks, repeating it seems simpler and clearer than
> inheritance/override rules across m-blocks. (Of course, if all m-blocks
> need the same attribute, it can be defined at session level instead of
> repeating in all media levels.)
> 
>  
> 
> In my simple (perhaps too simple) mind, all we're trying to do in bundle
> is temporarily lie on the m-line port to avoid confusing
> peers/intermediaries. In the process, I think we have confused ourselves
> about what is truly needed to accomplish this deception. Or maybe I'm
> the only one confused...

In your original mail you seemed to be suggesting something similar to:

http://tools.ietf.org/html/draft-nandakumar-rtcweb-sdp-00

(Sometimes referred to Cundle for Cullen's Bundle)

or this

http://tools.ietf.org/html/draft-alvestrand-one-rtp-01

(Also known as One RTP)

Both would start by offering multiple ports and fall back to a single
port if bundling is supported.

The concern that has been expressed with them is that in case of
bundling, non-use of the discarded RTP ports would cause some SBCs to
believe that there's a problem with the session which may lead to the
SBC tearing down the call.

Hope this helps,
Emil

> 
>  
> 
> Mo
> 
>  
> 
> *From:*Harald Alvestrand [mailto:harald@alvestrand.no]
> *Sent:* Tuesday, March 19, 2013 5:03 AM
> *To:* Mo Zanaty (mzanaty)
> *Cc:* mmusic@ietf.org; rtcweb@ietf.org
> *Subject:* Re: [MMUSIC] Is bundle just a port override?
> 
>  
> 
> On 03/19/2013 05:19 AM, Mo Zanaty (mzanaty) wrote:
> 
>     Does bundle imply anything beyond a simple port override of the
>     m-line port? If not, then why not just directly signal the port
>     override in an attribute without any grouping semantics?
> 
> 
> No, it's not just a port override.
> 
> BUNDLE shoves things into the same RTP session, which means that one has
> to obey the rules for being in the same RTP session:
> - Security done consistently
> - RTCP-mux done consistently
> - No SSRC collision
> - No payload type collision
> So it's a good deal more than just a port override.
> 
> Magnus argued in favour of a solution that inserted a multiplex layer,
> so that one could use the same ports but still have stuff in different
> RTP sessions, but that did not appeal to many.
> 
> 
>  
> 
> Offer to mux audio and video on the same port:
> 
> m=audio 10000 RTP/AVP 0
> 
> m=video 10002 RTP/AVP 31
> 
> a=port 10000
> 
> i=I really want 10000, but lied on the m-line for fear of confusing you.
> Confused yet?
> 
>  
> 
> Answer supports the port override attribute and agrees to mux audio and
> video:
> 
> m=audio 40000 RTP/AVP 0
> 
> m=video 40000 RTP/AVP 31
> 
> a=port 40000
> 
> ...so audio and video ports are 10000<->40000.
> 
>  
> 
> Answer supports the port override attribute but doesn't want to demux on
> his end:
> 
> m=audio 40000 RTP/AVP 0
> 
> m=video 40002 RTP/AVP 31
> 
> a=port 40002
> 
> ...so audio ports are 10000<->40000 and video ports are 10000<->40002.
> 
>  
> 
> Answer doesn't support the port override attribute, or doesn't want
> either end to mux:
> 
> m=audio 40000 RTP/AVP 0
> 
> m=video 40002 RTP/AVP 31
> 
> ...so audio ports are 10000<->40000 and video ports are 10002<->40002.
> 
>  
> 
> Either end can re-offer without lies about ports on the m-line after
> confirming the peer is not confused by muxing, if they want to avoid
> confusing intermediaries.
> 
>  
> 
> Has this approach been tried yet? Dismissed?
> 
>  
> 
> Mo
> 
>  
> 
> 
> 
> 
> _______________________________________________
> 
> mmusic mailing list
> 
> mmusic@ietf.org <mailto:mmusic@ietf.org>
> 
> https://www.ietf.org/mailman/listinfo/mmusic
> 
>  
> 
> 
> 
> _______________________________________________
> mmusic mailing list
> mmusic@ietf.org
> https://www.ietf.org/mailman/listinfo/mmusic
> 

-- 
https://jitsi.org