RE: SCTP-over-UDP and port 9899

"Dan Wing" <dwing@cisco.com> Tue, 01 November 2011 21:56 UTC

Return-Path: <dwing@cisco.com>
X-Original-To: tsvwg@ietfa.amsl.com
Delivered-To: tsvwg@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id ADB481F0C42 for <tsvwg@ietfa.amsl.com>; Tue, 1 Nov 2011 14:56:45 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -106.599
X-Spam-Level:
X-Spam-Status: No, score=-106.599 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, RCVD_IN_DNSWL_MED=-4, USER_IN_WHITELIST=-100]
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 fQCDiYrkYcOW for <tsvwg@ietfa.amsl.com>; Tue, 1 Nov 2011 14:56:44 -0700 (PDT)
Received: from mtv-iport-2.cisco.com (mtv-iport-2.cisco.com [173.36.130.13]) by ietfa.amsl.com (Postfix) with ESMTP id DFFA41F0C36 for <tsvwg@ietf.org>; Tue, 1 Nov 2011 14:56:44 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=dwing@cisco.com; l=7039; q=dns/txt; s=iport; t=1320184605; x=1321394205; h=from:to:cc:references:in-reply-to:subject:date: message-id:mime-version:content-transfer-encoding; bh=I05LMRu+tz8Ymq5nWiDnxEW306DLMPC3qkm1ohlu+mU=; b=eaylUUafTek9k35f1v3o48qyh4CCf/3PojKq8SnAnQ4oDgq/oX1SXn3h AN743/ITqH1dk12m2n+sEz2e2rfSk6pLdc9GYB/wvHidGxfg2UcguLfjp GE86ecXYIhAjaXqPgisBAYynLFTp/r9POYII51ZQMewbQC5dB8hHiltZA 8=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: AskAADJqsE6rRDoH/2dsb2JhbABDmWyBa4xHgSuBBYFyAQEBAwEICgEXED8FBwEDAgkPAgQBAQEnBxkjCgkIAQEEEwsXh2AIlyABniaJBwSIBp4I
X-IronPort-AV: E=Sophos;i="4.69,440,1315180800"; d="scan'208";a="11748433"
Received: from mtv-core-2.cisco.com ([171.68.58.7]) by mtv-iport-2.cisco.com with ESMTP; 01 Nov 2011 21:56:44 +0000
Received: from dwingWS (dhcp-171-70-249-135.cisco.com [171.70.249.135]) by mtv-core-2.cisco.com (8.14.3/8.14.3) with ESMTP id pA1Lui8I015836; Tue, 1 Nov 2011 21:56:44 GMT
From: Dan Wing <dwing@cisco.com>
To: 'Michael Tuexen' <tuexen@fh-muenster.de>
References: <193601cc9809$2ffa6b50$8fef41f0$@com> <C2980D8C-6CBF-4077-985C-70F4BE09D7C0@fh-muenster.de> <1bbd01cc98ad$9099bb60$b1cd3220$@com> <FBB2B325-47B2-4EAF-AE52-5ED2233C1C57@fh-muenster.de> <1c0401cc98b9$e0bdab40$a23901c0$@com> <1E7B798E-8AE2-4E2E-829E-1E7075D2C74E@fh-muenster.de>
In-Reply-To: <1E7B798E-8AE2-4E2E-829E-1E7075D2C74E@fh-muenster.de>
Subject: RE: SCTP-over-UDP and port 9899
Date: Tue, 01 Nov 2011 14:56:44 -0700
Message-ID: <1df701cc98e1$25519970$6ff4cc50$@com>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
X-Mailer: Microsoft Office Outlook 12.0
Thread-Index: AcyY0LOOof3wPJk9S+W5Wf5gtBy2oAAD8Xgg
Content-Language: en-us
Cc: tsvwg@ietf.org, randall@lakerest.net
X-BeenThere: tsvwg@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: Transport Area Working Group <tsvwg.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tsvwg>, <mailto:tsvwg-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/tsvwg>
List-Post: <mailto:tsvwg@ietf.org>
List-Help: <mailto:tsvwg-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tsvwg>, <mailto:tsvwg-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 01 Nov 2011 21:56:45 -0000

> -----Original Message-----
> From: Michael Tuexen [mailto:tuexen@fh-muenster.de]
> Sent: Tuesday, November 01, 2011 12:59 PM
> To: Dan Wing
> Cc: tsvwg@ietf.org; randall@lakerest.net
> Subject: Re: SCTP-over-UDP and port 9899
> 
> On Nov 1, 2011, at 6:15 PM, Dan Wing wrote:
> 
> >> -----Original Message-----
> >> From: Michael Tuexen [mailto:tuexen@fh-muenster.de]
> >> Sent: Tuesday, November 01, 2011 9:50 AM
> >> To: Dan Wing
> >> Cc: tsvwg@ietf.org; randall@lakerest.net
> >> Subject: Re: SCTP-over-UDP and port 9899
> >>
> >>
> >> On Nov 1, 2011, at 4:47 PM, Dan Wing wrote:
> >>
> >>>> -----Original Message-----
> >>>> From: tsvwg-bounces@ietf.org [mailto:tsvwg-bounces@ietf.org] On
> >> Behalf
> >>>> Of Michael Tuexen
> >>>> Sent: Monday, October 31, 2011 2:27 PM
> >>>> To: Dan Wing
> >>>> Cc: tsvwg@ietf.org; randall@lakerest.net
> >>>> Subject: Re: SCTP-over-UDP and port 9899
> >>>>
> >>>> On Oct 31, 2011, at 9:10 PM, Dan Wing wrote:
> >>>>
> >>>>> http://tools.ietf.org/html/draft-ietf-tsvwg-sctp-udp-encaps-01
> and
> >>>> its
> >>>>> predecessor both say:
> >>>>>
> >>>>> "When inserting the UDP header, the source port is 9899, the
> >>>>> destination port is the one stored for the destination address
> the
> >>>>> packet is sent to or 9899 if no destination address is stored."
> >>>>>
> >>>>> Why is it important to use a specific source port?  Does that not
> >>>>> cause difficulties if there are two (or more) instances of SCTP-
> >>>>> over-UDP applications running on the same host?  Does that not
> >>>>> cause difficulties, in implementation assumptions, if there are
> >>>>> two hosts behind the same NAPT and only one can get UDP/9899
> >>>>> forwarded to them?
> >>>> Hi Dan,
> >>>>
> >>>> for sending out the initial packet of an association, the source
> >>>> port is not important.
> >>>
> >>> Then can you strike "the source port is 9899" from the document?
> >>>
> >>>> The peer will send back the response to any
> >>>> port. But the destination port of the initial packet is important.
> >>>> It must be the same port the peer is accepting UDP packets. It
> >>>> can be any port, but then it needs to be negotiated somehow.
> >>>
> >>> Sure, of course.
> >>>
> >>> The 32-bit or 128-bit IP address is already negotiated.
> >>> Negotiating another 16 bits is not onerous.  It isn't easy
> >>> with DNS (because neither SRV records nor the ability to
> >>> update them is ubiquitous), but lots of protocols already
> >>> communicate IP address and port -- BitTorrent, Skype, SIP,
> >>> many others.
> >>>
> >>>> Since there is one registered port for SCTP/UDP, I used that.
> >>>> But you can use a different one, if negotiated. If you want to
> >>>> run two hosts as servers behind a NAT, you need different UDP
> >>>> ports. If they are clients, you don't.
> >>>>
> >>>>> In short, what is the benefit of using 9899 as the source port?
> >>>> It is more a default, if nothing else is known. In the socketAPI
> >>>> section the remote port is configurable. The local port (at
> >>>> least in the FreeBSD/MacOS X implementation) is a parameter
> >>>> controller by a sysctl variable. So (currently) a single
> >>>> host uses a single port number for all associations.
> >>>>
> >>>> Does this makes things clearer?
> >>>
> >>> Not especially, no.
> >>>
> >>> Let's look at, for example, SSH -- the SSH port is 22.   But
> >>> there is no need for the *source port* to be 22.  I'm trying
> >>> to understand why there is text mentioning anything about
> >>> the source port in draft-ietf-tsvwg-sctp-udp-encaps.
> >> OK, this is a good example. I want 9899 for SCTP/UDP be similar
> >> to 22 for SSH. But there is a difference. I want to support the
> >> case where I have one SCTP stack on a host and this stack uses
> >> a single UDP port number shared between all associations, no
> >> matter which side initiated them.
> >
> > But a major use-case for SCTP-over-UDP is when the application
> > itself has its own SCTP stack.  This is even mentioned in
> > your I-D.  For that use-case, the two applications cannot
> > achieve your desired goal.
> I agree.
> >
> >> I might not have made that
> >> clear. So it different from SSH where the server binds to a
> >> well known port (or not if otherwise negotiated), the client
> >> uses an arbitrary one. Do you have a suggestion for the wording?
> >
> > Yes, remove the wording saying 9899 is the source port.
> >
> > Suggest:
> >
> >  It can be advantageous for all SCTP-over-UDP traffic originated by a
> >  host to use the same source port (e.g., this reduces the number of
> >  mappings in firewalls and NATs, among other things).  It is possible
> >  to use the same UDP source port by using the SCTP header to
> >  demultiplex the incoming traffic (rather than demultiplexing solely
> >  on UDP port number). When SCTP-over-UDP is implemented by a shared
> >  library (e.g., a framework or by the OS itself), this optimization
> >  is possible.  When SCTP-over-UDP is implemented by an application,
> >  this optimization is usually not possible.
> OK. Thank you very much. What about the following changes:
> 
> Adding to the subsection 4.1 (Architectural Considerations):
> 
>    Each SCTP stack uses a single local UDP encapsulation port number as
>    the source port for all of its outgoing SCTP packets and as the
>    destination port for all its incoming SCTP packets.  The IANA
..........................................................^^^^^^^^
>    assinged value of 9989 MAY be used as this port number.  If there is
.....^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>    only a single SCTP implementation on a host (for example, a kernel
>    implementation being part of the operating system), using a single
>    UDP encapsulation port number per host can be advantageous (e.g.,
>    this reduces the number of mappings in firewalls and NATs, among
>    other things).  However, this is not possible if the SCTP stack is
>    implemented as part of an application.

Remove the suggestion that the IANA port be used as the source port.

> Changing the beginning of subsection 4.3 (Encapsulation Procedure):
> 
>    When inserting the UDP header, the source port is local UDP
>    encapsulation port number of the SCTP stack, the destination port is
>    the remote UDP encapsualtion port number stored for the destination
>    address the packet is sent to (see Section 4.1).
> 
> Does this address your issue completely? I just want to mention that it
> might be good to use the IANA assigned number when possible.

But it is equally good to let the source UDP port be chosen by 
the operating system -- same as with nearly everything else.

-d

> Best regards
> Michael
> >
> > -d
> >
> >
> >> Best regards
> >> Michael
> >>>
> >>> -d
> >>>
> >>>
> >>>> Best regards
> >>>> Michael
> >>>>>
> >>>>> -d
> >>>>>
> >>>>>
> >>>>>
> >>>
> >>>
> >
> >