Networking TCP重复确认是否确认接收到正确的数据包?

Networking TCP重复确认是否确认接收到正确的数据包?,networking,tcp,Networking,Tcp,如下所示,在步骤7,当接收器向发送器发送ACK(16)而正确的ACK为(18)时,发送器是否将其作为分组(17)的ACK?如果没有,我们是否需要将SEQ:17重新传输到SEQ:19 Sender Receiver 1: SEQ:15 -> 2: SEQ:16 -> (dropped) 3: SEQ:17 -> 4: SEQ:18 -> 5: SEQ:19 -> 6:

如下所示,在步骤7,当接收器向发送器发送ACK(16)而正确的ACK为(18)时,发送器是否将其作为分组(17)的ACK?如果没有,我们是否需要将SEQ:17重新传输到SEQ:19

Sender              Receiver

1: SEQ:15       ->
2: SEQ:16       ->  (dropped)
3: SEQ:17       ->
4: SEQ:18       ->
5: SEQ:19       ->
6:              <-     ACK:16       (for SEQ:15 packet)
7:              <-     ACK:16   (for SEQ:17 packet) 
8:              <-     ACK:16
9:              <-     ACK:16
10: SEQ:16      ->  
发送方-接收方
1:SEQ:15->
2:SEQ:16->(已删除)
3:SEQ:17->
4:SEQ:18->
5:SEQ:19->

6:当然不是。它把它作为16岁及之前的所有人的确认

把它当作是对某件事的确认,在确认之后再确认是没有意义的


任何未确认的数据都应该重新传输。

那么,从SEQ:17到SEQ:19也应该重新传输吗?这似乎不对。据我所知,在SEQ:16重传之后,接收器将确认保存的最高SEQ,在这种情况下,它将是ACK:20(对于SEQ:19数据包)。我说得对吗?