Don Cohen wrote:

> Why do you think that's better than simply forwarding packets with
> sequence/ack# translation?  Surely it's less efficient.  And it raises
> questions about how much data to buffer between the two and how that
> can be controlled.

Because there is no good way to know the servers TCP options before you have 
opened the TCP connection to the server, and you do not want to open the TCP 
connection to the server before the client has acknowledged the connection...

Adjusting the sequence numbers is the simple part of the picture. Does not 
worry me.. this is what the NAT engine is doing.

What worries me is

  * Window scaling
  * Timestamp
  * ECN

and a number of other end-to-end TCP options that depend on correct 
negotiation during SYN.

Sure, window scaling and ECN can be set by configuration if you know your 
server, but there is no good way to deal with the timestamp option short of 
forcibly filter it out entirely from the TCP stream.

Regards
Henrik

Reply via email to