2014-01-07 21 views

回答

1

这是平台依赖。在Unix中,如果积压队列已满,则传入的SYN将被删除。在其他平台中,这种情况会导致RST。

0

如果系统内存不足,可能会在系统内丢弃收到的SYN数据包。另一种情况是,如果服务器处理积压队列的速度很慢,那么它可能会达到高水位,并且任何新的recv SYN都将被丢弃。 backlog队列深度是通过linux中listen()调用的第二个参数设置的。 Linux套接字上的backlog参数的行为随Linux 2.2而改变。现在它指定了等待被接受的完全建立的套接字的队列长度,而不是不完整的连接请求的数量。不完整套接字队列的最大长度可以使用/ proc/sys/net/ipv4/tcp_max_syn_backlog来设置。 Linux上的默认值是128。较低的值可能会降低负载下的服务器响应时间。

+1

这几天默认值更像500。 Windows在这种情况下不会丢弃SYN,它会发出RST。 – EJP

+0

是的,我编辑它 –

相关问题