收到[FIN, ACK]后继续使用同一个连接
Continue to use the same connection after receiving [FIN, ACK]
我看到有些服务器会在通过发送 [FIN, ACK] 完成单个请求后停止连接
来自维基,
A connection can be "half-open", in which case one side has terminated its end, but the other has not. The side that has terminated can no longer send any data into the connection, but the other side can. The terminating side should continue reading the data until the other side terminates as well.
如果我想通过避免每个请求重复握手来加快请求速度。即使服务器终止,客户端是否有可能继续通信?服务器会不会有任何响应,或者服务器只是读取我的请求而不响应?
通常,当您终止 write 一半的 TCP 连接时,这意味着您已完成通信,您只需等待您的伙伴(无论是服务器、客户端或同等的对手)来完成它的传输。当您的搭档准备就绪时,他会终止他的 write 一半,然后关闭 TCP 连接。
因此,如果服务器已终止,您仍然可以可靠地发送数据,但无法接收任何结果。
如果您不想在 TCP 中进行任何握手,为什么不采用没有握手的协议呢?例如 UDP,尤其是当消息不是很重时。
我看到有些服务器会在通过发送 [FIN, ACK] 完成单个请求后停止连接
来自维基,
A connection can be "half-open", in which case one side has terminated its end, but the other has not. The side that has terminated can no longer send any data into the connection, but the other side can. The terminating side should continue reading the data until the other side terminates as well.
如果我想通过避免每个请求重复握手来加快请求速度。即使服务器终止,客户端是否有可能继续通信?服务器会不会有任何响应,或者服务器只是读取我的请求而不响应?
通常,当您终止 write 一半的 TCP 连接时,这意味着您已完成通信,您只需等待您的伙伴(无论是服务器、客户端或同等的对手)来完成它的传输。当您的搭档准备就绪时,他会终止他的 write 一半,然后关闭 TCP 连接。
因此,如果服务器已终止,您仍然可以可靠地发送数据,但无法接收任何结果。
如果您不想在 TCP 中进行任何握手,为什么不采用没有握手的协议呢?例如 UDP,尤其是当消息不是很重时。