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>

Reply via email to