proposal: unstable l2 mode

folkert folkert at vanheusden.com
Wed Apr 17 21:07:31 CEST 2013


Hi,

I propose a configuration file change to the files containing the public
key and the setting for a host:

	unstable_network_connection=true/false (enables the following
settings)

	unc_backlog_size=x  (where x is in MB)
	unc_backlog_n=z     (where z is number of packets)

	unc_resent_interval=y   (where y is n seconds, e.g 1.1)
	unc_backoff_multi=b     (with what factor to multiply y each y
interval when the other end still not confirms any packets)

	unc_giveup_time=a   (in seconds)

This could enable a mode where each packet must be confirmed by the
other side.
This is usefull in unstable connections. For example when you're
connected via umts and you experience cell take-overs. This happens
while driving in a car/train. In that case you will see loads of dropped
packets and also packets in a completely different order (I've seen
sequence numbers going like 1 5 3 4 9 7 8 10 12 13 etc).
Of course a vpn-connection would need to use UDP for this to be usefull.

While not a packet is not confirmed, it is resend each y seconds until
it is confirmed.
A maximum of z packets are stored or a maximum of xMB packets are
stored, whatever is the smallest: then older packets are discarded.
Whenever we've been retrying sending a packet for longer than 'a'
seconds, then it is discarded.

Preferably 'y' should be less then half of the maximum tcp-no-response
timeout but that can be determined later.
Value 'a' can be set to the maximum tcp-no-response timeout (or less).
Making these values configurable makes it possible to tune them for
specific protocols which are transported over the vpn. If it is possible
to auto-tune these settings: even better!


Folkert van Heusden

-- 
Feeling generous? -> http://www.vanheusden.com/wishlist.php
----------------------------------------------------------------------
Phone: +31-6-41278122, PGP-key: 1F28D8AE, www.vanheusden.com


More information about the tinc mailing list