累积确认(ACK) 最初的TCP被设计成累积确认接收段。接收方通告下一个预期接收的字节,忽略所有失序段。这有时称为积极累积确认(positive cumulative acknowledgment)或ACK。积极这个词表示不为丢弃、丢失或被破坏的段提供反馈。
选择性确认(SACK)越来越多的实现加入了另外一种称为选择性确认(selective acknowledgment)或SACK的确认类型。SACK并不替代ACK,但它向发送方报告额外的信息。SACK报告失序字节块,也报告重复字节即接收了一次以上的字节块,然而,因为TCP头部没有为加入这种类型的信息做准备,SACK以一种TCP头部末端选项的形式实现。
前有选择性重传SR,后有选择性确认SACK。
比较好奇这里说的“忽略失序段”是什么意思,去网上找了找没找出个所以然。但是找到了NACK(简称NAK),用来表示“确认收到了数据,但是该数据存在一小段错误”,不过NACK就和TCP没啥关系了,TCP是基于ACK的。