Re: Service codes

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Mark

The original DCCP draft did not use traditional ports at all; instead
the client allocated a 32-bit connection identifier that served to
uniquely identify the connection, and the server listen on a socket
bound only to a service code.  This solution is unambiguous; the
Service Code is the only identifier for a listening socket at the
server side, and the DCCP client would have to include a service code
in the request or there would be no way for the request to reach the
listening application.  However it suffered from the downside of being
sufficiently different from existing protocols that we were concerned
that it would hinder the use of DCCP through NATs.

This is not the ONLY problem with the 32-bit connection identifier. A 32-bit connection identifier, identified by application name, means that a server could not run more than one server for the same application. E.g. an experimental server on port 8000 in addition to a deployment server on port 80. It is useful to have the additional indirection allowed by ports. THIS was the killer argument that convinced you to put ports back in. (Oh: You mention it below, I see!)

I don't really agree with the MUST enforcement in the rest of the document. Enforcing these MUSTs increases the mandatory burden on implementers for no immediately pressing reason. (There are 6 service codes registered at the moment, and 3 well known ports! We are a long way from a collision.) If the intent is to shift the Service Code into the equivalent of the "struct sockaddr *" specified at bind() time, away from a socket option, I agree with that intention, but one could encourage that without the MUSTs.

This I definitely disagree with:

  IANA should allocate well-known DCCP ports on demand to anyone to
  applies, without requiring a specification or additional
  justification.  Each well-known port request MUST be for a specific
  registered DCCP service code.  IANA should use an allocation policy
  that attempts to minimize server port collisions, but it is expected
  that the same well-known port will sometimes be allocated to more
than one service code.

* If you read the IANA Considerations section you will see that the parts you want are already there, e.g., multiple registrations of the same port with different service codes, service code specification as part of registration with MUST. So what problem are you solving?

* IANA really, really, really wanted DCCP port number registration policies to mesh well (i.e., be basically equivalent to) TCP/UDP policies. We had to revise 4340 several times to make that happen. I agree with IANA in this case and see no need to change the policy to something subtly different.

Eddie


[Index of Archives]     [Linux Kernel Development]     [Linux DCCP]     [IETF Annouce]     [Linux Networking]     [Git]     [Security]     [Linux Assembly]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [DDR & Rambus]

  Powered by Linux