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

Reply via email to