抱歉格式不正确。但是第7帧,我不明白为什么要重新启动TCP重传。我的理解是,当没有及时返回ACK并且发送假设发生丢包并重新发送所有内容时,重新发送。没有返回什么ACK导致了这个?
TCP: 57190 > 6007 [PSH, ACK] Seq=1 Ack=1 Win=64162 Len=200
TCP: 57190 > 6007 [PSH, ACK] Seq=201 Ack=1 Win=64162 Len=200
TCP: 57190 > 6007 [PSH, ACK] Seq=401 Ack=1 Win=64162 Len=200
TCP: 57190 > 6007 [PSH, ACK] Seq=601 Ack=1 Win=64162 Len=62
TCP: 6007 > 57190 [ACK] Seq=1 Ack=4294966897 Win=64240 Len=0 SLE=1 SRE=601
TCP: [TCP Dup ACK 5#1] 6007 > 57190 [ACK] Seq=1 Ack=4294966897 Win=64240 Len=0 SLE=1 SRE=663
TCP: [TCP Retransmission] 57190 > 6007 [PSH, ACK] Seq=4294966897 Ack=1 Win=64162 Len=1062
TCP: 6007 > 57190 [ACK] Seq=1 Ack=663 Win=63178 Len=0 SLE=1 SRE=663
TCP: 6007 > 57190 [PSH, ACK] Seq=1 Ack=663 Win=63178 Len=78
TCP: 57190 > 6007 [ACK] Seq=663 Ack=79 Win=64084 Len=0
谢谢, 凯尔
答案 0 :(得分:1)
在TCP
receiver
回复其预期的下一个数据包的ACK#
。如果该数据包由sender
发送但在网络中丢失且receiver
收到它所期望的数据包旁边的数据包,则会导致receiver
发送另一个ACK
接下来预期的数据包ACK#
(在这种情况下,丢失的数据包)。收到第二个副本sender
后,ACK
知道接收方没有收到该特定的有效载荷(必定已经丢失)并重新发送它。