RE: SCTP-over-UDP and port 9899

"Dan Wing" <dwing@cisco.com> Tue, 01 November 2011 22:46 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 291F111E80BE for <tsvwg@ietfa.amsl.com>; Tue, 1 Nov 2011 15:46:19 -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 hHpZU2fzeXEa for <tsvwg@ietfa.amsl.com>; Tue, 1 Nov 2011 15:46:18 -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 476A711E814A for <tsvwg@ietf.org>; Tue, 1 Nov 2011 15:46:18 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=dwing@cisco.com; l=8721; q=dns/txt; s=iport; t=1320187578; x=1321397178; h=from:to:cc:references:in-reply-to:subject:date: message-id:mime-version:content-transfer-encoding; bh=EvefdsFIyjR3lk4To74/4xptG9U5fTE7BAOxPG0NL4U=; b=HZ4aG66mChxA5ALmK7tCuvhpXoKD+QBi2DEBFhsaGTtQGBdo03TGdu+7 /bETrTPwES4dpuwEjHDzC7JmVJeGhQZE+QdEcbB4Hp+W4feDecPVokRwZ X2253hBvx+cU54rZ4+7WHFaRcX3rmmBAEMC03osb15DYlCh407HvUjlYA o=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: AskAAE12sE6rRDoG/2dsb2JhbABDmWyBa4xHgSuBBYFyAQEBAwEICgEXED8FBwEDAgkPAgQBAQEnBxkjCgkIAQEEEwsXh2AIlyoBniaJBwSIBp4I
X-IronPort-AV: E=Sophos;i="4.69,440,1315180800"; d="scan'208";a="11760181"
Received: from mtv-core-1.cisco.com ([171.68.58.6]) by mtv-iport-2.cisco.com with ESMTP; 01 Nov 2011 22:46:18 +0000
Received: from dwingWS (dhcp-171-70-249-135.cisco.com [171.70.249.135]) by mtv-core-1.cisco.com (8.14.3/8.14.3) with ESMTP id pA1MkHen023844; Tue, 1 Nov 2011 22:46:17 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> <1df701cc98e1$25519970$6ff4cc50$@com> <6D907808-5797-47D7-AA92-F5B0C1EADB71@fh-muenster.de>
In-Reply-To: <6D907808-5797-47D7-AA92-F5B0C1EADB71@fh-muenster.de>
Subject: RE: SCTP-over-UDP and port 9899
Date: Tue, 01 Nov 2011 15:46:17 -0700
Message-ID: <1e8301cc98e8$11713c10$3453b430$@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: AcyY5SrOB/gKV9WJSyywLXWD/EWmkgAAsF8Q
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 22:46:19 -0000

> -----Original Message-----
> From: tsvwg-bounces@ietf.org [mailto:tsvwg-bounces@ietf.org] On Behalf
> Of Michael Tuexen
> Sent: Tuesday, November 01, 2011 3:25 PM
> To: Dan Wing
> Cc: tsvwg@ietf.org; randall@lakerest.net
> Subject: Re: SCTP-over-UDP and port 9899
> 
> On Nov 1, 2011, at 10:56 PM, Dan Wing wrote:
> 
> >> -----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.
> I do understand your point. However:
> 
> RFC 4253 (SSH) states:
> 
> When used over TCP/IP, the server normally listens for connections on
> port 22.
> 
> RFC 2616 (HTTP) states:
> HTTP communication usually takes place over TCP/IP connections. The
> default port is TCP 80 [19], but other ports can be used.
> 
> Please note that the local UDP encapsulation port is the destination
> port of the received packets. Similar to 80 for HTTP and 22 for SSH.
> Since we have an IANA assigned port, I would like to encourage
> people to use it when possible. I guess this is OK, or isn't it?

For the server, yes, that's okay.  That is what IANA-registered
default ports are all about.

> That is why I used a MAY. But I'm open to use any other formulation.
> Do you have a suggestion?

Yes -- be silent about the source port.  Say nothing in the
document about the source port.

-d


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