Networking 在何种情况下,tcp接收器接收到有效的syn段,但仍然没有syn ack?

Networking 在何种情况下,tcp接收器接收到有效的syn段,但仍然没有syn ack?,networking,tcp,Networking,Tcp,在何种情况下,TCP接收器接收到有效的SYN段,但仍不会发送SYN-ACK段作为响应?这取决于平台。在Unix中,如果待办事项队列已满,将丢弃传入的SYN。在其他平台中,这种情况会导致RST。如果系统内存不足,则接收到的SYN数据包可以在系统内丢弃。另一种情况是,如果服务器处理待办事项队列的速度慢,那么它可能会达到一个高水位线,任何新的recv SYN都将被丢弃。backlog队列深度是在linux中通过listen()调用中的第二个参数设置的。TCP套接字上backlog参数的行为随Linux

在何种情况下,TCP接收器接收到有效的SYN段,但仍不会发送SYN-ACK段作为响应?

这取决于平台。在Unix中,如果待办事项队列已满,将丢弃传入的SYN。在其他平台中,这种情况会导致RST。

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

目前的默认值大约为500。在这种情况下,Windows不会删除SYN,而是发出RST。