[tor-dev] Onioncat and Prop224

grarpamp grarpamp at gmail.com
Wed Sep 28 23:23:42 UTC 2016

On Wed, Sep 28, 2016 at 11:30 AM, dawuud <dawuud at riseup.net> wrote:
> Are you aware of Tahoe-LAFS?

Don't know if they are, or if they are here, all we have is their short post.

If they just need an insert and retrieve filestore for small user
bases, there are lots of choices. If they need the more global
and random on demand distribution properties, and even mutually
co-interested long term storage nature of bittorrent, that's harder.

Today people can use onioncat to escape IPv4 address space limitations,
provide UDP transport, provide configuration free on demand any node to
any node IP network semantics for use by existing applications.
Mass bittorrent / bitcoin / p2p apps over a private network such as
HS / eep happen to typically need and match that.

> Yes but then you are suggesting TCP on top of TCP via TCP/IPv6/onion/TCP.

Onioncat is only one extra encapsulation layer. Of course if you run tcp
app over onioncat instead of udp app, you have to think about that too.
But being the top layer, onioncat itself does not have losses, ie any losses
come up from below.... clearnet --> tor --> ocat --> user.

> Do you know what happens when you get packet loss with that protocol layer cake?
> Cascading retransmissions. Non-optimal, meaning shitty.

For certain applications, expecially bulk background transport, it's actually
quite useable in practice. And people do use voice / video / irc / ssh over
hidden / eep services... of course there are non-optimal systemic issues
there. People will use what they can [tolerate].

> You might be able to
> partially solve this by using a lossy queueing Tun device/application but that
> just makes me cringe.

That's pretty far beyond anywhere tor network design is
going anytime soon.

Buffering for reordering datagrams into a queue, maybe partially if the
user doesn't mind possible additional latency. Lossy... not in tcp layers.

Maybe in ideal world user would supply requirements as ifconfig
request to network, each interface providing different set, user
binds apps to interfaces as needed.
Sliders latency / bandwidth / loss - maybe represented as single
app type config param: voice, irc, bulk, torrent, network tolerant - or
by list of app names.
Or network would monitor and adapt to users traffic.

More information about the tor-dev mailing list