3次握手

Win*_*ute 1 tcp

这是它的工作原理吗?

1. Client sends syn to server.
2. Server responds with syn ack.
3. Client responds with ack.
Run Code Online (Sandbox Code Playgroud)

如果服务器只用 syn 或 ack 响应会发生什么?如果服务器根本没有响应会发生什么?如果客户端不响应 ack 会发生什么?

use*_*686 7

这是它的工作原理吗?

是的。


如果服务器只用 syn 响应会发生什么

RFC 793第 3.4 节描述了同时启动,RFC 1122第 4.2.2.10 节也涵盖了同步启动。

如果两个 TCP 同时启动该过程,该过程也有效。当同时尝试发生时,每个 TCP 都会收到一个“SYN”段,它在发送“SYN”后不携带确认。


还是只用ack?

我不完全确定,但我认为 RST 被发回并且连接终止。


如果服务器根本没有响应会发生什么?

如果客户端不响应 ack 会发生什么?

当没有收到响应时,客户端保持 SYN-SENT(服务器 - SYN-RECEIVED)状态并最终超时。


总的来说,RFC 793“传输控制协议”是一个很好的资源。

另请参阅RFC 1122“Internet 主机要求 - 通信层”