Re: New draft :draft-ietf-dccp-serv-codes-01.txt

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

 



Gorry,

Gorry Fairhurst wrote:
"Applications/protocols that provide version negotiation or indication in the protocol operating over DCCP do not require a new server port for each new protocol version. New versions of such applications/protocols SHOULD continue to use the same Service Code. If the application developers feel that the new version provides significant new capabilities (e.g. that will change the behavior of middleboxes), they MAY allocate a new Service Code associated with the same or a different set of well-known ports. If the new Service Code is associated with well-known ports, the DCCP Well-Known Ports registry MUST also be updated to include the new Service Code value."

Sounds good.

=> "Use of a Service Code value, instead of binding a service to a
   particular publicly-known port number, permits a larger number of
   concurrent connections for a particular service. For example, this
   may be useful for applications where servers need to handle very
   large numbers of simultaneous open ports to the same service."
==> This is misleading. A new connection can only be accepted if BOTH
the Service Code AND the Destination Port match.
True.
I propose:
"The more flexible use of server ports can offer benefit to applications where servers need to handle very large numbers of simultaneous open ports to the same service."

Good!

=> "A Service Code of zero MUST only be accepted for servers that
   have no associated Service Code or are explicitly associated with the
   Service Code value of zero."
==> Delete "have no associated Service Code or". As RFC4340 and this draft state, every socket has at least one service code. An implementation may choose to supply a default of zero, of course, but that still associates a service code with the app
 >
On this we seem to be all at cross-purposes. My take is that RFC4340 says this is "permanently reserved (it represents the absence of a meaningful Service Code)".

Do we NEED to revise RFC4340 to allow use at all? and if so why?

RFC4340 doesn't prevent use. RFC4340 reserves two ranges of Service Codes: (1) the single service code SC=0, and (2) the range SC=1056964608 to SC=1073741823 (the Private Use range). These "reserved" codes are not allocated by the normal process, but they can still be used in the normal way.

Here's what RFC4340 means

- Service Code SC=0 means "no application info provided". It can be used in Requests and socket identification. It acts like any other Service Code; it must match exactly and is not a wildcard, etc.

- Service Code SC=xFFFFFFFF is INVALID. Sockets should be prevented from using this SC; any Request with this SC is dropped. The Invalid Service Code is provided so implementations can use a special four-byte value to indicate "no valid service code". They can't use 0 because 0 IS a valid service code, meaning "no application info provided".



I am now suggesting: "This document clarifies section 19.8 of RFC 4340:
"Implementations MUST NOT permit applications to listen with a Service Code of zero"."

Disagree.

That is MUST reject connection using the reserved service code (zero), and MUST NOT permit applications to listen to this Service Code.

Disagree. We have SC=xFFFFFFFF for that. SC=0 is for "no application info provided".

5.1

=> I would cut this section. I disagree with it. In particular I do not think we should recommend a change in the way OSes allocate DCCP port numbers.

Could you say more?

I think that's really all I had to say. I see no reason to recommend a change in the way OSes allocate DCCP port numbers. I think changing this procedure from TCP/UDP/SCTP to DCCP, especially when they all share a port numbers registry, asks for confusion, with no corresponding gain of usability except something theoretical/religious.

6

=> It does not make sense to allocate a single PERF service code for a number of different and incompatible applications ("e.g., iperf, ttcp, etc."). This allocation should be dropped or made more specific.

Well, yes and no. I can see why one would comment so from the host-side, the tools need different servers, hence different service codes.

I can see why this was suggested as a way to identify performance tests in the network and let such applications transit middlebox interfaces. Inventing a separate treatment for each perf test seems annoying.

The rationale cited to me is that SC=RTPV covers many different codecs that do alsorts of different things and are used by a range of incompatible applications. They all however carry video over RTP. So, is there a case for all test applications that try to measure performance be allowed to call them selves "SC=PERF". If not, why not?

RTP has common headers, I believe. So a middlebox can DTRT with an RTPV service code; based on the service code the middlebox can parse the contents, to first order. That for me is what service codes fundamentally mean. If the headers fundamentally differ, so should the service code. If middleboxes can't use the service code to differentiate parsers, what good is it for?

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