]> Anycast TCP stream relaying
Sporgasse 6 Graz 8010 AT otti@wirdorange.org http://anytun.org/
General anytun Internet-Draft Anycast TCP relaying The anycast tunneling (anytun) protocol defines a protocol used for communication between unicast clients and anycast servers. It can be used for tunneling information between 2 clients over the servers or in relay mode to transmit data form the client over the servers to a third party not using the protocol and vice versa.
TCP is statefull, this is a big problem, because every anycast server has to know the tcp state. The TCP state has to be synced between the servers, that meens a lot of overhead. To keep this amount small and therefor make anycast TCP connections efficient some tricks MUST be used. This is considered to be a real hack, so it is not recommendid to use this mode unless it is really necessary. It might for instance be necessary to build connection trough special kind of NAT routers or firewalls.
The only way of fully supporting fragmentation would be to syncronise fragments between all anycast servers. This is considered to be to much overhead, so there are two non perfect solutions for this problems. Either fragmentation HAS TO be disabled or if not all fragments arrive at the same server the ip datagramm HAS TO be discarded. As routing changes are not expected to occure very frequently, the ip datagram will get retransmitted by TCP and all fragments will arrive at the new server.
It is nessarary to send tcp segments with a correct sequence number, that appear to come from the same host, in order to get a valid connecton to the client. Syncronisation of sequence numbers would mean to much overhead, so it hast to be provided by the relayed data. The relayed data from the anycast serveres point of view, consits of multible datastream, each directed from one client to anotherIn tunneling mode all anytun packets from the client
Most NAT routers need a tcp connection to transmit some packets once in while to stay open. In full anycast tcp mode anytun hast to predict the tcp state including the sequence number. Synconisation of the sequence number would be to much overhead, so a keep alive intervall is agreed. This interval is used to calculate the sequemce number.
&rfc3068; An Anycast Prefix for 6to4 Relay Routers