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

Reply via email to