【问题标题】:Will TCP Server retransmit SYN+ACK if Client is not reachable?如果 Client 不可达,TCP Server 会重传 SYN+ACK 吗?
【发布时间】:2018-07-27 04:37:17
【问题描述】:

假设TCP客户端(A)向TCP Sever(B)发送SYN,TCP客户端断开网络的场景,这里TCP Server会处于SYN-RCVD状态,TCP Server怎么知道Client不可达??

TCP Server 会重传 SYN+ACK 吗?

(如果是,服务器将重传多少次SYN+ACK??

如果否,服务器将保持 SYN-RCVD 状态多长时间?

【问题讨论】:

  • 'Disconnected' 在这里没有任何意义。客户端正在尝试连接。还没有可以断开的连接。它可以断开连接的唯一方法是停止尝试连接。 SYN/ACK 将被重试几次,受慢启动和所有其余部分的影响,就像任何其他 TCP 段一样。离题。
  • 'Closed' 没有比'disconnect' 更多的意义。在建立连接之前没有要关闭的 TCP 客户端。可能你的意思是“走了”。还是离题了。
  • @EJP 我怀疑在重试几次后 TCP-Server 会进入 CLOSED 状态还是处于 LISTEN 状态??
  • 在您的实际问题中没有一个字出现。监听端口将保持在 LISTEN 状态。由初始 SYN 创建的半连接将被丢弃并完全消失。
  • @EJP 你能告诉我 TCP SERVER 什么时候会进入 CLOSED 状态吗??

标签: networking tcp tcpclient tcpserver


【解决方案1】:

TCP Server 会重传 SYN+ACK 吗??

是的

Server 会重传多少次 SYN+ACK??

取决于操作系统配置。

在 Linux 中:
/proc/sys/net/ipv4/tcp_synack_retries

在 Windows 中:HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\TcpMaxConnectResponseRetransmissions

服务器将保持 SYN-RCVD 状态多长时间?

直到最后一次重传 SYN-ACK 超时。 通常超过 3 分钟。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-03-04
    • 1970-01-01
    • 2013-07-05
    • 1970-01-01
    • 1970-01-01
    • 2012-10-26
    • 2017-10-12
    • 2021-07-21
    相关资源
    最近更新 更多