Esses contadores, em última instância, vêm do kernel e mapeiam para os contadores LINUX_MIB_LISTENOVERFLOWS
e LINUX_MIB_LISTENDROPS
. Você pode ver a partir da fonte de net / ipv4 / tcp_ipv4.c (tcp_v4_syn_recv_sock) em torno da linha # 1392 que quando LINUX_MIB_LISTENOVERFLOWS
é incrementado, LINUX_MIB_LISTENDROPS
também será incrementado, mas há condições de saída em que somente o último pode ser incrementado, então não é um bug que eles não combinam.
No mesmo arquivo, você pode ver que existe esse código:
1291 int tcp_v4_conn_request(struct sock *sk, struct sk_buff *skb)
1292 {
1293 /* Never answer to SYNs send to broadcast or multicast */
1294 if (skb_rtable(skb)->rt_flags & (RTCF_BROADCAST | RTCF_MULTICAST))
1295 goto drop;
1296
1297 return tcp_conn_request(&tcp_request_sock_ops,
1298 &tcp_request_sock_ipv4_ops, sk, skb);
1299
1300 drop:
1301 NET_INC_STATS_BH(sock_net(sk), LINUX_MIB_LISTENDROPS);
1302 return 0;
1303 }
Assim, você pode ver que pelo menos uma causa é um SYN para um endereço de broadcast ou multicast.