ietf
[Top] [All Lists]

Re: Purpose of Port 0.

2017-02-21 14:26:10
Hi James,


On 2/21/2017 12:05 PM, james woodyatt wrote:
On Feb 20, 2017, at 08:10, Joe Touch <touch(_at_)isi(_dot_)edu
<mailto:touch(_at_)isi(_dot_)edu>> wrote:

There is no IANA registry for source ports, nor should there be.
Ports in the incoming first-contact are swapped, as indicated in RFCs
768 and 793. Source ports indicate "who to call back", and "0" is
indicated in UDP (RFC768) as "nobody" and TCP (RFC793)

p1. Port zero is currently Unassigned for the SCTP and DCCP standard
transports and all the other non-standard transports listed in the
Protocol Numbers registry.

Per RFC6335, there is one registry for all transport port numbers.
"RESERVED" in that registry applies to all transports.

p2. Port zero is a System Port, so the process for assigning its IANA
registration is RFC 6335, section 8.1.2, which says:
Agreed.

p3. Port zero is already reserved for SCTP by RFC 4960. IANA just
needs to correct its registry to show that port zero is Assigned.
Per section 14.5, SCTP uses the existing transport port registry. It
lists a set of assignments starting at port 9, but does not request
assignment of 0.

Section 3.1 prohibits the use of 0 as either source or destination port,
but that's not an assignment. That's a prohibition, and not indicated as
a reservation in the IANA Considerations (Sec 14).

p4. Port zero is not reserved for DCCP by RFC 4340, so port zero
remains Unassigned there at this point.

It remains RESERVED (as per the ports registry) but potentially
assignable to DCCP.

p5. Port zero is already reserved in their respective RFCs for a few
of the non-standard transports listed in the Protocol Numbers
registry, but being non-standard transports, there’s no way to assign
them for those protocols under the procedure in RFC 6335.

"RESERVED" would involve IANA Considerations, and that act would have
resulted in their being recorded in the IANA registry.

Prohibitions within the protocol do not result in IANA actions.

I’m guessing the POSIX community could attempt to write an Internet
Draft that expressly assigned port zero across all known and unknown
transport protocols to the “unspecified service number” semantic that
it uses,

IMO, an RFC that needs an API to pass the value "unspecified" should
indicate just that. It would be far out of scope for an RFC to indicate
the *value* passed in an API to indicate that parameter.

Joe
<Prev in Thread] Current Thread [Next in Thread>