为什么TCP三次握手在初始握手期间执行时会碰到序列号?这比仅仅保留确认号等于序列号更好吗?
建立连接
Client sends SYN,A
Server responds with SYN-ACK,A+1,B
Client confirms with ACK,B+1
Run Code Online (Sandbox Code Playgroud)
怎么比这更好
Client sends SYN,A
Server responds with SYN-ACK,A,B
Client confirms with ACK,B
Run Code Online (Sandbox Code Playgroud)
这是因为设置标志ACK时该字段的含义是:ACK
\n\n\n确认号(32 位)\xe2\x80\x93 如果设置了 ACK 标志,则该字段的值是接收方期望的下一个序列号。
\n
如果它没有设置为(初始序列号+1),则这将不一致地意味着既确认SYN(必须在该数据包中设置SYN和ACK标志)又表示它再次期待该序列号(即尚未收到它)。