有两个问题咨询一下哈: 1.我觉得红黑树耗费更多一些吧,因为要存储孩子节点的信息和颜色信息,哈希表的话只需要存键值对 2.半连接队列满了之后不一定会丢弃,因为服务端可能开启syn_cookies功能,服务器会根据当前状态计算出一个cookie值,并将其放到第二次握手中发出,当收到第三次握手的时候,用这个cookie值进行验证,成功后放到全连接队列。如果没有开启,这个时候客户端就会感知到,也就是connect调用失败。然后就是全连接队列,正常来说,全连接队列满了之后,连接会默认丢弃,这个时候客户端肯定是ENSTABLISH状态(因为第三次握手已经发送成功了),所以不会感知到,但是后续发送的请求都会超时,如果超时重传没有达到最大次数的时候,也就是客户端没有关闭连接,如果全连接队列有空闲位置,仍然可以通过这些请求建立连接。(第三次握手ACK标志位是1,并且是可以携带数据的)