[OpenAFS] rxtcp, rxutcp
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
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?
PGP/GPG: 5C9F F366 C9CF 2145 E770 B1B8 EFB1 462D A146 C380