On Fri, Sep 05, 2008 at 01:45:13PM +0200, xerces8 (xerces8@xxxxxxxx) wrote: > Recently someone mentioned on this (or maybe other...) list a seldom used > technique of establishing a TCP connection without one host listening on a port, > but but acting as "clients" and connecting to the peers port. This is supported by userspace network stack, which was presented here, but I'm not sure that exactly unetstack was recommended to you. http://tservice.net.ru/~s0mbre/old/?section=projects&item=unetstack > My question: Can this be used to establish a TCP connection between two hosts that > are both behind a (P)NAT router ? > > (the idea being: NAT router lets outgoing connections thru, and in this case both > NAT router would see an "outgoing" connection) Depending on how NAT is implemented. Usually NAT software will only allow syn/ack packets before connection is established, and thus if one peer sends syn packet, and second one sends ack packet (without seeng ack first) it will work, but if second peer's NAT will send a reset packet before ack from the peer, first NAT can drop connection (as long as peer itself). > If yes, this would simplify the life of many users :-) It is not directly supported by unetstack, but you can simply extend its state machine to switch to different state without explicit packet receiving. -- Evgeniy Polyakov -- To unsubscribe from this list: send the line "unsubscribe linux-net" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html