TCP连接建立的三路握手如下图所示。
以下哪些陈述是正确的?
(S1) 丢失来自服务器的 SYN + ACK 将不会建立连接
(S2) 来自客户端的 ACK 丢失无法建立连接
(S3) 服务器在状态机中移动 LISTEN → SYN_RCVD → SYN_SENT → ESTABLISHED 不丢包(S4) 服务器在没有丢包的情况下在状态机中移动 LISTEN → SYN_RCVD → ESTABLISHED。
(A)仅 S2 和 S3
(B) S1 和 S4
(C) S1 和 S3
(D) S2 和 S4答案:(乙)
说明:在三向握手之前,客户端和服务器都处于关闭状态,开始发送或接收客户端和服务器都进入监听状态。
脚步:
1) 客户端发送 SYN 数据包,服务器将接收该数据包。
2)服务端会发送SYN+ACK包来建立客户端的连接。现在客户端已准备好发送数据。
3) 然后客户端将向服务器发送 ACK 数据包,当服务器收到此数据包时,服务器也将处于建立状态。
丢失 SYN + ACK 不会导致 Client 建立连接,从而无法向服务器发送数据。
虽然客户端的 ACK 不是必需的,因为如果客户端立即发送数据包,它将被视为对服务器的确认。
该解释由Abhishek Kumar 提供。
这个问题的测验