On Mar 6 2008, Matthew Toseland wrote: >Proposed solution >============= > >All big messages are converted into streams. Small messages such as >FNPAccepted should remain as messages.
Can I make one last, futile appeal to use a stream-oriented transport layer rather than a message-oriented one? Advantages: * Makes it easier to copy TCP's good bits instead of reinventing the wheel * Well-defined interface between the transport layer and the FNP layer * Transport plugins won't break when FNP changes and vice versa * Transport layer problems like small MTU can be isolated from FNP * Makes it easier to write stego transports Disadvantages: * Packets can't be processed out of order We probably need to stick with UDP for firewall traversal, but in my opinion we should build a TCP-like layer on top of UDP. It's quite possible to send small messages over TCP with reasonable latency - SSH, Gnutella and Skype all do it. And it's no harder to multiplex multiple message streams over TCP than it is over UDP, considering that we have to share crypto and congestion-control state between the streams anyway. Cheers, Michael
