SACKs (Selective Acknowledgements, RFC 2018) allow a receiver to acknowledge non-consecutive data. This is particularly helpful on paths with a large RWIN / BDP. While SACK is now supported by most operating systems, it may have to be explicitly turned on by the system administrator.
For more technical details, see RFC 2018, or
Sally Floyd's SACK references.