70 likes | 87 Views
TCP Behavior draft-modadugu-nat-tcp-00. Nagendra Modadugu nagendra@cs.stanford.edu. Incoming SYN. Issue: Binding created on observing outgoing SYN Other side tries TCP simultaneous-open: Also sends a SYN Binding has already been created, does NAT allow incoming SYN? Recommendation: Yes
E N D
TCP Behaviordraft-modadugu-nat-tcp-00 Nagendra Modadugu nagendra@cs.stanford.edu
Incoming SYN • Issue: • Binding created on observing outgoing SYN • Other side tries TCP simultaneous-open: • Also sends a SYN • Binding has already been created, does NAT allow incoming SYN? • Recommendation: • Yes • Also, NAT should be capable of tracking simultaneous-open handshake
RST Behavior • Issue: • External interface sees inbound SYN on unbound port • Typical OS responds with RST • NAT responding with RST means simultaneous-open doesn’t work • Recommendation: • Silent treatment of such inbound SYNs • Many (> 64%) NATs already demonstrate this behavior
Premature Binding Expiry • Issue: • TCP connection goes idle for extended period • Releasing binding means that open connection gets dropped • Thoughts? • How many applications affected? • Affected applications can implement SO_KEEPALIVE • NAT implements TCP keep-alive • Recommendation • No active participation by NAT
Timers • Three timers: • Connecting (before handshake completion), Established (measures liveness), Closing • Timer values: • Problems with mimicing standard TCP values? • Pick max values across various OS’s? • Thoughts?
Port Assignment (general behavior) • Issue: • To Preserve or Not Preserve port numbers • Desired port may be unavailable • Discussion: • Secondary port assignment scheme required anyway • Recommending one way or another not much value? • Recommendation: • Leave unspecified • Application developers cannot depend on port preservation anyway
Bad Behavior • Any bad behavior not covered by current recommendations? • Other behavioral aspects needing consideration?