Hello, this idea sounds great. An architecture that allows different transport mechanisms is really cool. I would also be interested in implementing the infrastructure as well as 3 transport types: UDP, UDPv6 - UDP over IPv6, and TCP (with pass-through support so you can run it on your web server's port and pass through until you see a magic string).
Greetings, Thomas On Wednesday 03 May 2006 19:23, Matthew Toseland wrote: > I propose an ambitious SoC project for whomever wants it (nextgens has > expressed an interest): > > Transport plugins. > > Firewall evasion, steganography, proper IPv6 support, and other good > things require transport plugins. > > The API can be fairly simple: > > boolean registerPacketPlugin(PacketTransportPlugin plugin, boolean > isLossy, long typicalLatency, boolean rendezvous) > > isLossy - if true, the transport is lossy; if false, we don't need to > layer retransmission over it. > typicalLatency - typical latency in millis (ballpark figure!) > rendezvous - if true, this is solely for purposes of sending a few > small messages to establish both sides' new IP addresses; it cannot > be used for bulk transfer. E.g. IM transports might be used for > rendezvous. > > boolean registerStreamPlugin(StreamTransportPlugin plugin, long > typicalLatency) > > PacketTransportPlugin and StreamTransportPlugin would then have simple > APIs for passing packets, or streams; the API will not involve packets. > > Node references would have multiple addresses: > > physical.udp=82.32.17.1:5001 > (UDP over IPv4) > physical.udp6=::::feff:6718:9018:1aa3 > (UDP over IPv6) > physical.tcp-magic=amphibian.dyndns.org:80/GET /freenet-hahahah > HTTP/1.0\n\n (TCP over IPv4, with passthrough support and a magic string) > physical.rendezvous.jabber=idiot-5618 at jabber.org > (Jabber rendezvous) > physical.cpip=The Barn, Nowhere Avenue, Nowhere, Yorkshire, UK > (Carrier pigeon) > physical.dlb=Hole in tree marked with a red stripe, Leigh Woods, Bristol, > UK (Dead-letter box) > > Obviously the last two options above will not be very useful in the near > future, however in the long term we may support such things. > > Initially I propose the following transport types: > UDP - as present. > UDPv6 - UDP over IPv6 > Some form of rendezvous transport over an IM protocol. > TCP (with pass-through support so you can run it on your web server's > port and pass through until you see a magic string) > > All of these would be immediately useful. -- Praktische Informatik IV, University of Mannheim A5,6, 68159 Mannheim, Germany Tel: +49 621 181 2615, Fax: +49 621 181 2601
