摘要

The TCP Selective ACK (SACK) is used to notify information on the sequence space of the receiving buffer to the sender. By definition of RFC 2018, however, each SACK block has to be described by the two 32-bit unsigned integers, which may introduce significant extra load in the reverse ACK path when TCP connection is error-prone. Moreover, due to the 40-byte limitation of TCP option field, the available option space may not be sufficient to report all of the sequence blocks when the errors occur in a sudden burst. This may result in the unnecessary spurious retransmissions while the reverse SACK path is severely congested. To overcome such shortcomings, we propose a segment-based TCP SACK scheme in this paper. Both the theoretical analysis and simulation results show that the proposed scheme not only can significantly reduce the SACK overhead but also can avoid the unwanted spurious retransmissions in some specific error-prone scenarios.