[Sip] Possible bug in "Non-INVITE Client Transaction" - 17.1.2.2

Iñaki Baz Castillo <ibc@aliax.net> Wed, 06 April 2011 16:34 UTC

Return-Path: <ibc@aliax.net>
X-Original-To: sip@core3.amsl.com
Delivered-To: sip@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id E0AC03A6823 for <sip@core3.amsl.com>; Wed, 6 Apr 2011 09:34:21 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.641
X-Spam-Level:
X-Spam-Status: No, score=-2.641 tagged_above=-999 required=5 tests=[AWL=0.036, BAYES_00=-2.599, FM_FORGED_GMAIL=0.622, MIME_8BIT_HEADER=0.3, RCVD_IN_DNSWL_LOW=-1]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 2jQwL5On4PAY for <sip@core3.amsl.com>; Wed, 6 Apr 2011 09:34:20 -0700 (PDT)
Received: from mail-qy0-f172.google.com (mail-qy0-f172.google.com [209.85.216.172]) by core3.amsl.com (Postfix) with ESMTP id A493D3A67CF for <sip@ietf.org>; Wed, 6 Apr 2011 09:34:20 -0700 (PDT)
Received: by qyk29 with SMTP id 29so2484938qyk.10 for <sip@ietf.org>; Wed, 06 Apr 2011 09:36:04 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.229.75.196 with SMTP id z4mr998251qcj.277.1302107764328; Wed, 06 Apr 2011 09:36:04 -0700 (PDT)
Received: by 10.229.35.72 with HTTP; Wed, 6 Apr 2011 09:36:03 -0700 (PDT)
Date: Wed, 06 Apr 2011 18:36:03 +0200
Message-ID: <BANLkTimgohzMAtinJutHfeDRETduGzjZvg@mail.gmail.com>
From: Iñaki Baz Castillo <ibc@aliax.net>
To: sip@ietf.org, sip-implementors@lists.cs.columbia.edu
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Subject: [Sip] Possible bug in "Non-INVITE Client Transaction" - 17.1.2.2
X-BeenThere: sip@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Session Initiation Protocol <sip.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/sip>, <mailto:sip-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/sip>
List-Post: <mailto:sip@ietf.org>
List-Help: <mailto:sip-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/sip>, <mailto:sip-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 06 Apr 2011 16:34:22 -0000

Hi, RFC 3261 section 17.1.2.2 states that:

   If an
   unreliable transport is in use, the client transaction MUST set timer
   E to fire in T1 seconds.  If timer E fires while still in this state,
   the timer is reset, but this time with a value of MIN(2*T1, T2).
   When the timer fires again, it is reset to a MIN(4*T1, T2).  This
   process continues so that retransmissions occur with an exponentially
   increasing interval that caps at T2.  The default value of T2 is 4s,
   and it represents the amount of time a non-INVITE server transaction
   will take to respond to a request, if it does not respond
   immediately.  For the default values of T1 and T2, this results in
   intervals of 500 ms, 1 s, 2 s, 4 s, 4 s, 4 s, etc.

I've calculated those intervals and can't get same values:

Timer E:
- Initially => T1 = 0.5s
- Fires    => MIN(2*T1, T2) = 1s
- Fires    => MIN(4*T1, T2) = 2s
- Fires    => MIN(4*T1, T2) = 2s
- Fires    => MIN(4*T1, T2) = 2s
...

So the resulting intervals are 500ms, 1s, 2s, 2s, 2s, 2s, etc.
In short, it's obvious that MIN(4*T1, T2) will always be 2 seconds! it
can never reach 4s.


IMHO the text should say:

   If timer E fires while still in this state,
   the timer is reset, but this time with a value of MIN(2*TIMER_E, T2).

And remove the line about "When the timer fires again, it is reset to
a MIN(4*T1, T2)

So we get:

Timer E:
- Initially => T1 = 0.5s
- Fires    => MIN(2*TIMER_E, T2) = 1s
- Fires    => MIN(2*TIMER_E, T2) = 2s
- Fires    => MIN(2*TIMER_E, T2) = 4s
- Fires    => MIN(2*TIMER_E, T2) = 4s

 Am I wrong? Thanks a lot.


PS: Sorry for the cross-posting, I don't know which maillist is better
to report it.


-- 
Iñaki Baz Castillo
<ibc@aliax.net>