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

[dcp] A new DCP Implementation



Folks,

I've been working on a DCCP implementation for research
purposes. Judging by the "release early and often" standard it is time
to share what I've got. (Judging by any other sane standard of quality
control it's far too early ;).

The implementation is for Linux - it runs at the kernel level directly
on top of IP. My patches are against version 2.4.18 - the patches are
licensed as GPL code.

http://www.ducksong.com:81/dccp/

There is a whole litany of things known to be done still - as well as
I'm sure many problems with the existing code. That notwithstanding,
what is there is pretty functional - socket(), bind(), accept(),
connect(), send(), recv(), and close() work and push data around the
network. Certainly there is enough for people to play with a little,
and maybe even (hopefully?) post patches against.

The code definitely takes a correctness before optimization approach -
and there is no doubt work to be done on the correctness front before
even pondering optimization. Be forewarned.

A partial list of things I have no support for (consider this a
 partial TODO list) ECN, Move Types, Poll(), buffered sends (send will
 block if congestion control dictates), variable recv buffer sizes,
 ccid 3, service names other than 0, sending/recving data on
 handshake, using timestamps for rtt samples.

There's also a security problem or two (I let you grow the ackvector
infinitely for example - bad idea in kernel space.)

but still, its a good start. Feedback is welcome.

-Patrick

_______________________________________________
dcp mailing list
dcp@ietf.org
https://www1.ietf.org/mailman/listinfo/dcp