By default the PPG is configured with the tw_recycle setting enabled:
[root@ppg2 ~]# awk '/# Added by Gemini Mobile/,/recycle/' /etc/sysctl.conf# Added by Gemini Mobile 'factory' framework:##net.ipv4.tcp_tw_recycle = 1
This allows the fast reuse of connections in the TIME-WAIT queue. As an extra check it rejects the connection if a SYN packet arrives with timestamp (TSVal) smaller than the last known timestamp from this peer. This check is additional to the PAWS protection, but it only works if the TSVal values of the packets received from the same IP address are monotonically increasing.
This requirement is not met when the MMSC is behind NAT. The man page is also clear that this causes problems with NAT:
tcp_tw_recycle (Boolean; default: disabled; since Linux 2.4) Enable fast recycling of TIME_WAIT sockets. Enabling this option is not recommended since this causes problems when working with NAT (Network Address Translation).
Because reuse of connections in the TIME-WAIT state may be needed for a high rate of requests, the tw_reuse option should be set:
tcp_tw_reuse (Boolean; default: disabled; since Linux 2.4.19/2.6) Allow to reuse TIME_WAIT sockets for new connections when it is safe from protocol viewpoint. It should not be changed without advice/request of technical experts.