[OpenAFS] rxtcp, rxutcp
Adam Megacz
megacz@cs.berkeley.edu
Thu, 30 Mar 2006 00:57:30 -0800
Wow, NATs have been giving me a spectacular headache lately. Turning
on TCP support on the KDC resolved all the issues with kinit, but
long-term I'm starting to realize that I just can't rely on UDP as the
only connectivity method... support out there is just too lousy.
There's a real need for a "fallback" connectivity method that works
behind even the lamest NATs (without regard for performance).
I checked out the rxtcp branch, and I'd like to give it a try, but I
couldn't exactly find any documentation. Any pointers on how to try
it out? I realize it's not ready for prime time yet. If I just
compile it up and install it does it listen for both rxudp and rxtcp
connections? How does the client decide which to use when initiating
a connection?
Lastly, has anybody considered running the raw "rxudp" protocol with
TCP headers wrapped around it ("Unreliable TCP" or "rxutcp")? Nearly
ever NAT I've seen is stateless aside from connection mappings; as
long as you send the proper SYN/ACK/SYN+ACK handshake to set up a
mapping the NAT doesn't care what the packets you send after that look
like (as long as they have TCP headers). Specifically, you can throw
TCP's ack/retransmission algorithm right out the window -- just ignore
it completely. I think a bunch of the P2P filesharing programs do this.
Seems like this would be a really easy hack to get through NATs until
we have an officially supported rxtcp. Anybody see any immediate
barriers to this working?
- a
--
PGP/GPG: 5C9F F366 C9CF 2145 E770 B1B8 EFB1 462D A146 C380