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. -- Matthew J Toseland - toad at amphibian.dyndns.org Freenet Project Official Codemonkey - http://freenetproject.org/ ICTHUS - Nothing is impossible. Our Boss says so. -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 189 bytes Desc: Digital signature URL: <https://emu.freenetproject.org/pipermail/tech/attachments/20060503/36a164fb/attachment.pgp>
