1、使用TCP_DEFER_ACCEPT时,内核并不马上把已经建立成功的TCP连接通过accept()返回对应的fd。而是当TCP连接上有数据接收到后,再通过accept()返回fd。这样的好处是,可以立即使用recv接收一次数据,减少了一次epoll_wait()等待,适当提升一点点性能;
2、在linux3.9及以上的版本,linux内核支持SO_REUSEPORT。这样多个socket可以绑定同一个端口。普通的网络服务程序使用accept()获取不同的TCP/udp连接的FD。其使用方法一是使用一个线程负责accept()接收连接并分发给不同的工作线程。这样到导致线程切换,影响其性能。方法二是每个工作线程均accept(),会出现惊群问题,需要采用锁来解决accept()资源的问题,其性能影响是锁。支持SO_REUSEPORT后,上面两个方法的性能损耗可以得到解决,内核根据当前TCP连接的源目的IP和端口(4-TUPLE)进行HASH计算,从而选择不同的socket。