Re: Service codes

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

 



On 7/26/07, Gorry Fairhurst <gorry@xxxxxxxxxxxxxx> wrote:
On 25/7/07 12:32, "Mark Handley" <M.Handley@xxxxxxxxxxxx> wrote:

> OK, here's a draft draft on the issue.  I think this is in keeping
> with your mail, but provides background too, and I think changes how
> IANA allocates DCCP ports.  Comments?  Flames?
>
> Shall I turn this into a proper draft, or is there disagreement on this?
>
> Cheers,
> Mark

Thanks for the text. The SC draft can be cleaned-up a lot on the basis of
this and the discussions from this IETF.

The history gives a useful summary of how things evolved, and seems
consistent with my recollections. I'll rewrite with this and what you said
at the Mic in the meeting.

I think this is a superset of what I said at the Mic.  At least that's
the intent.

My understanding was that the section on "Sockets, Ports and Service Codes"
reflected what was written in SC draft - although I'd be keen to rework the
text.

Probably - when I started out I wasn't clear whether I was writing a
separate draft, or text for the existing draft or what.  In the end I
effectively wrote a new draft, so it does duplicate information you've
already got, but that was necessary for it to present a reasonably
complete and coherent picture.

I also started out to write something that was Informational, and
ended up with something that would need to be standards-track.  That
was a surprise, but I think that's how it is.

   " or example DTLS
   connections and unencrypted connections for the same application will
   normally use different service codes to distinguish them, but as it is
   the same application, it makes sense to use the same port."
- seems OK (if the receiver OS supports this).

You then say:
 "The
  requirement on the host stack would be that the service code of the
  incoming connection request can be made available to the application,
  so that the application can correctly process the data without
  requiring some application-specific method to distinguish the two
  types of data."

And

 "A DCCP implementation SHOULD provide a way for the
  application accepting the connection to discover the service code
  used in the DCCP-Request packet."

- Are you suggesting that after the socket has been opened, the application
THEN should call down to the protocol control block to figure out what SC
was received?

Yes.  Actually I'm not specifying an API, but merely functionality
that such an API needs to provide.  You could for example provide this
information in the upcall that indicated an incoming connection if you
have such an API.  The protocol spec shouldn't fixate on a sockets
API, so I tried to avoid using the term socket where I could.

- or the API requires the application to associate a single SC with EACH
listening socket?

If you could have multiple listening sockets on the same app bound to
the same port with different service codes, then this would also
satisfy the API requirements, as above.  But it's not perhaps the
simplest API.

Again, we need to conceptually separate APIs and protocol
requirements.  This is about protocol requirements.  I was trying to
avoid discussing sockets.  Perhaps we really have two drafts here:

- mine or one based on it that discusses protocol behaviour (standards track)

- a second that discusses how sockets implement this behaviour (informational)

Mixing the two up would be a bad idea because sockets are not required
to implement DCCP (and perhaps aren't even a good API for DCCP).

"We revise RFC 4340 as follows:

  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. "
- I need to think on this.

Yes, this is more radical - basically saying you can get a well-known
port *trivially* easily rather changes the concept of a well-known
port.  As does expecting collisions.  But that is the inevitable
consequence of service codes if they are to solve the problem they're
intended to solve.

- Mark


[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