Re: [MMUSIC] WGLC: draft-ietf-mmusic-ice-15.txt

Magnus Westerlund <magnus.westerlund@ericsson.com> Fri, 13 April 2007 12:14 UTC

Return-path: <mmusic-bounces@ietf.org>
Received: from [127.0.0.1] (helo=stiedprmman1.va.neustar.com) by megatron.ietf.org with esmtp (Exim 4.43) id 1HcKfP-0005QB-QH; Fri, 13 Apr 2007 08:14:15 -0400
Received: from [10.91.34.44] (helo=ietf-mx.ietf.org) by megatron.ietf.org with esmtp (Exim 4.43) id 1HcKfP-0005Q6-A6 for mmusic@ietf.org; Fri, 13 Apr 2007 08:14:15 -0400
Received: from mailgw4.ericsson.se ([193.180.251.62]) by ietf-mx.ietf.org with esmtp (Exim 4.43) id 1HcKfN-0001Tj-8n for mmusic@ietf.org; Fri, 13 Apr 2007 08:14:15 -0400
Received: from mailgw4.ericsson.se (unknown [127.0.0.1]) by mailgw4.ericsson.se (Symantec Mail Security) with ESMTP id 9FA0221658; Fri, 13 Apr 2007 14:14:12 +0200 (CEST)
X-AuditID: c1b4fb3e-ae9ecbb0000061ca-5c-461f74141623
Received: from esealmw128.eemea.ericsson.se (unknown [153.88.254.121]) by mailgw4.ericsson.se (Symantec Mail Security) with ESMTP id 7F03021625; Fri, 13 Apr 2007 14:14:12 +0200 (CEST)
Received: from esealmw126.eemea.ericsson.se ([153.88.254.170]) by esealmw128.eemea.ericsson.se with Microsoft SMTPSVC(6.0.3790.1830); Fri, 13 Apr 2007 14:14:12 +0200
Received: from [147.214.30.247] ([147.214.30.247]) by esealmw126.eemea.ericsson.se with Microsoft SMTPSVC(6.0.3790.1830); Fri, 13 Apr 2007 14:14:11 +0200
Message-ID: <461F7413.5020805@ericsson.com>
Date: Fri, 13 Apr 2007 14:14:11 +0200
From: Magnus Westerlund <magnus.westerlund@ericsson.com>
User-Agent: Thunderbird 1.5.0.10 (Windows/20070221)
MIME-Version: 1.0
To: Jonathan Rosenberg <jdrosen@cisco.com>
Subject: Re: [MMUSIC] WGLC: draft-ietf-mmusic-ice-15.txt
References: <CD6CE349CFD30D40BF5E13B3E0D8480402403232@srvxchg.cablelabs.com>
In-Reply-To: <CD6CE349CFD30D40BF5E13B3E0D8480402403232@srvxchg.cablelabs.com>
Content-Type: text/plain; charset="ISO-8859-1"; format="flowed"
Content-Transfer-Encoding: 7bit
X-OriginalArrivalTime: 13 Apr 2007 12:14:11.0812 (UTC) FILETIME=[3EBF9240:01C77DC5]
X-Brightmail-Tracker: AAAAAA==
X-Spam-Score: 0.0 (/)
X-Scan-Signature: 20f22c03b5c66958bff5ef54fcda6e48
Cc: mmusic@ietf.org, Lars Eggert <lars.eggert@nokia.com>
X-BeenThere: mmusic@ietf.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: Multiparty Multimedia Session Control Working Group <mmusic.ietf.org>
List-Unsubscribe: <https://www1.ietf.org/mailman/listinfo/mmusic>, <mailto:mmusic-request@ietf.org?subject=unsubscribe>
List-Post: <mailto:mmusic@ietf.org>
List-Help: <mailto:mmusic-request@ietf.org?subject=help>
List-Subscribe: <https://www1.ietf.org/mailman/listinfo/mmusic>, <mailto:mmusic-request@ietf.org?subject=subscribe>
Errors-To: mmusic-bounces@ietf.org

Hi,

I have reviewed the draft and have some comments. I will start with all 
the real issues. Then I a also have some nits. But let me say that I am 
impressed how good this document has become.

Issues:

I1. Section 7.2.1.1: Why isn't this section applicable for lite 
implementation. If there exist possibilities that the two peer in case 
of full implementations are confused about their roles, why can't a full 
peer be similar confused and think it is talking to a controlling full 
when it in reality talks to a lite. I have a hard time determining if 
that can happen at all or not when you think two full peers can be 
confused about their roles. It seems a simple fix to tell a lite server 
to always do tiebreaking as the loosing side.

I2. Section 7.2.1.1, first bullet:
   "o  If neither ICE-CONTROLLING or ICE-CONTROLLED are present in the
       request, there is no conflict."

When does this happen? To my understanding all ICE peers sending 
connectivity checks will indicate if they are controlling or controlled.

I3. Section 7.2.1.4:

       *  If the state of that pair is Waiting or Frozen, its state is
          changed to In-Progress and a check for that pair is performed
          immediately.  This is called a triggered check.

I am a bit concerned with the immediately part here. I do understand 
that the check should happen as soon as possible. However by stepping 
away from the pacing in these replies you further increases the 
burstiness of the connectivity checks. To be slightly more conservative. 
Why not simply bump the triggered checks to the top of the queue. The 
alternative I see if you like to keep the quick response (and potential 
bunching together of response and the triggered check request) is to 
delay the next scheduled check an extra Ta interval. That way the 
triggered check does not increase the consumed bit-rate.

I4. Section 10.
"Examples of formats which readily meet this
    goal are RTP No-Op [31] and RTP comfort noise [25]."

I would argue that RTP comfort noise does not readily meet it. It works 
in some cases, like for an audio stream where the peers both support it. 
Two solutions, a) remove comfort noise as an example. b) clarify the 
main limitations.

I5. Section 15.1:

There are a number of cases where one uses 1* in the ABNF. Can these 
please be changed to a upper limit on the number of characters. With the 
current definition I could use a 5000 digit long priority number from 
parsing perspective. This is likely to lead to overflow. In the case of 
priority as this is limited to 2^32-1 as largest number then using 
1*10DIGIT seems to be without risk. I guess that also component-ID and 
foundation can be limited to a reasonable upper limit. Making it easier 
to separate the cases of potentially valid numbers and plain errors. 
This comment also applies to section 15.4 and the password and ufrag 
definitions.

I6. Pacing of connectivity checks. I need to think a bit more about this 
and how ICE relates to the UDP usage guidelines 
(http://www.ietf.org/internet-drafts/draft-eggert-tsvwg-udp-guidelines-02.txt) 
we are working on getting accepted in the transport area. Ice with the 
current parameters are rather aggressive in its bandwidth usage in worst 
case. I understand in most cases it would not consume close to as much.

The biggest problem with this bloody protocol is its purpose resulting 
in that basically all STUN request packets could be dropped by NAT 
filtering rather than congestion. Or it could be the other way around. 
We have no way of knowing. This also causes the connectivity checks 
themselves some problem. As all checks easily can congest themselves 
thus causing worse performance then the correct rate limited sending 
would have. I think we need to at least consider putting some further 
limitation or adaptation of the pacing timers in some cases. At least 
when you have knowledge about link speeds.

I know we have had quite some discussion on this topic earlier and the 
algorithm has clearly been made to try as few checks as possible thanks 
to the freezing of some checklist etc. But in my current role I need to 
take this even more serious than before.

NITS:

N1. Section 2.6, third paragraph: Last sentence starts with what appears 
with an stray "A".

N2. Figure 4 and 5. Lack of directional arrows for the requests from L.

N3. section 5.7.1, page 30, first paragraph:
"As another example, the
    offerer can multiplex RTP and RTCP on the same port and signals it
    can do that in the SDP through some new attribute."

I think an informative reference to the RTP and RTCP MUXing draft 
(draft-ietf-avt-rtp-and-rtcp-mux-04) is needed in this sentence to make 
it clear what is being talked about.

N4. Section 5.7.2, second paragraph: "Where O-P>A-P?1:0 is an expression 
whose value is 1 if O-P is greater than A-P, and 0 otherwise." As the 
(O-P) part isn't used in the above formula, maybe using the actual 
(O>A?1:0) is better in this context.

N5. Section 7.1: Isn't "STUN Client Procedures" a better section title 
than "Client Procedures"? Similar for 7.2.

N6. Section 8.1.1:
"This check will succeed (since the previous did), causing
    the nominated flag of that and only that pair to be set."

I think this sentence is more correct if you change "will" to "should" 
or "is expected to". There are no guarantees that something else causes 
a failure of the path.

N7. Section 12.1.1:
   "With this optimization, provisional responses containing an SDP
    answer that begins ICE processing for one or more media streams can
    be sent reliably without RFC 3264."

Isn't the reference to RFC 3264 wrong? Shouldn't it be to RFC 3262?

N8. Section 16. The line breaks in the SDP example are bad and looks 
strange.

N9. The following references needs update:

   == Outdated reference: A later version (-03) exists of
      draft-ietf-behave-turn-02

   == Outdated reference: A later version (-01) exists of
      draft-ietf-sip-ice-option-tag-00

   == Outdated reference: A later version (-01) exists of
      draft-ietf-avt-rtp-no-op-00

   == Outdated reference: A later version (-08) exists of
      draft-ietf-sip-outbound-07

N10. Section B.2
Use of 192.168.1.1 and 10.0.1.1 as end-host addresses. As these 
addresses usually will be assigned the gateway/NAT in respective network 
isn't using them for end-host a bad choice.

N11. Section B.8:
"That section
    requires that the type preference for peer reflexive candidates
    always be lower than server reflexive. "

I think "lower" is supposed to be "higher".


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
----------------------------------------------------------------------

_______________________________________________
mmusic mailing list
mmusic@ietf.org
https://www1.ietf.org/mailman/listinfo/mmusic