On Feb 20, 2017, at 08:10, Joe Touch <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.
<https://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml
<https://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml>>
p2. Port zero is a System Port, so the process for assigning its IANA
registration is RFC 6335, section 8.1.2, which says:
o Ports in the System Ports range (0-1023) are also available for
assignment through IANA. Because the System Ports range is both
the smallest and the most densely assigned, the requirements for
new assignments are more strict than those for the User Ports
range, and will only be granted under the "IETF Review" or "IESG
Approval" procedures [RFC5226 <https://tools.ietf.org/html/rfc5226>].
A request for a System Port
number MUST document *both* why using a port number from the
Dynamic Ports range is unsuitable *and* why using a port number
from the User Ports range is unsuitable for that application.
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.
p4. Port zero is not reserved for DCCP by RFC 4340, so port zero remains
Unassigned there at this point.
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.
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, but my hunch is the
need for that draft isn’t very strong (considering the intent declared in RFC
2553 to keep POSIX as the standard API for IPv6 applications) and that getting
the language right would not be worth the hassle.
--james woodyatt <jhw(_at_)google(_dot_)com <mailto:jhw(_at_)google(_dot_)com>>