5

为什么TCP 三向握手在初始握手期间 acking 时会碰撞序列号?这有什么比让确认号等于序列号更好的呢?

建立连接

Client sends SYN,A
Server responds with SYN-ACK,A+1,B
Client confirms with ACK,B+1

怎么比

Client sends SYN,A
Server responds with SYN-ACK,A,B
Client confirms with ACK,B
4

1 回答 1

4

这是因为该ACK字段在ACK设置标志时意味着:

确认号(32 位)——如果设置了 ACK 标志,则该字段的值是接收器期望的下一个序列号。

如果它没有设置为(初始序列号+1),这将不一致地意味着既确认SYN(必须在此数据包中设置SYNACK标志)并说它再次期待该序列号(即尚未收到它)。

于 2011-07-24T05:00:41.913 回答