In typical TCP-based communication, acknowledgments are cumulative. TCP only acknowledges segments received that are contiguous with previously acknowledged segments. Noncontiguous segmentssegments received out of sequenceare not explicitly acknowledged. TCP requires that segments be received and acknowledged within a brief time period, or else the missing segment and all subsequent segments that follow it must be retransmitted.
Selective acknowledgments are recent TCP options that allow the receiver to selectively notify and request that a sender resend only data that is actually missing. This results in smaller amounts of data that require retransmission and better use of network bandwidth.
For more information about selective acknowledgments, see RFC 2018, "TCP Selective Acknowledgment Options."