Tcp 什么';s连续丢弃SYN数据包时的最大重试次数?

Tcp 什么';s连续丢弃SYN数据包时的最大重试次数?,tcp,Tcp,有一款产品(未命名)存在特殊的功能/问题。 如果超载,它将丢弃新的SYN数据包。对某些人来说,这似乎并非不合理。对其他人来说,这似乎是不可想象的。尽管如此 在放弃之前,上行TCP客户端将重试发送SYN多少次?这个数字是基于RFC或标准,还是仅仅是行业标准 SCTP和INIT呢 默认的TCP连接超时(这是您问题的基本主题)取决于客户端的平台,大约一分钟。这被编码到connect()系统调用中,根据实现情况,使用8,16,32秒的超时进行3次重试。TCP堆栈在返回到connect()函数之前也可能会

有一款产品(未命名)存在特殊的功能/问题。 如果超载,它将丢弃新的SYN数据包。对某些人来说,这似乎并非不合理。对其他人来说,这似乎是不可想象的。尽管如此

在放弃之前,上行TCP客户端将重试发送SYN多少次?这个数字是基于RFC或标准,还是仅仅是行业标准

SCTP和INIT呢

  • 默认的TCP连接超时(这是您问题的基本主题)取决于客户端的平台,大约一分钟。这被编码到
    connect()
    系统调用中,根据实现情况,使用8,16,32秒的超时进行3次重试。TCP堆栈在返回到
    connect()
    函数之前也可能会进行自己的重试,因此在最终的
    econtimeout之前可能会进行多次尝试。

  • 平台在过载情况下丢弃SYN数据包没有什么错。Unix已经做了30年了,所以现在不可能突然成为一个问题。这是一个平台行动,而不是产品行动,所以你提到的秘密未命名产品不是罪魁祸首,除非它是一个操作系统。我不明白为什么不能在这里命名


  • TCP通常使用超时,而不是重试限制。具体细节取决于实现。这个问题似乎与主题无关,因为它与编程无关。感谢您提供有关超时与重试限制的信息。这很有用。我也听到你说这不是关于编程的。这是一个真实的说法。我想这是关于TCP/SCTP堆栈中的堆栈。谢谢你的回复。谢谢EJP。这是非常有用的。通过四处搜索,我注意到Linux上还有一个名为net.ipv4.tcp_syn_retries的sysctl参数,它似乎驱动了这种行为。