Quando o tcpdump "descarta" pacotes, é porque ele não tem espaço de buffer suficiente para acompanhar os pacotes que chegam da rede.
A diferença entre os pacotes capturados e recebidos pode ser devido a implementações do sistema operacional ou tcpdump, ou mais comumente devido ao abortar o processo com ^ C.
Definir o tamanho do buffer por pacote com "s0" tem como consequência configurá-lo como 64 KB por man tcpdump
; normalmente no máximo configuro-o como 1500 se estiver usando -X para ver o pacote inteiro, e se usar apenas o tcpdump para assistir cabeçalhos até menos do que isso é necessário - 160 bytes que é o tamanho dos cabeçalhos IPv4.
Normalmente, trabalhar com a tela também é mais lento, se precisar de velocidade, eu direcionaria a saída para um arquivo se você não precisa assisti-lo em tempo real.
Do man "tcpdump":
"Note that taking larger snapshots both increases the amount of time it takes to process packets and, effectively, decreases the amount of packet buffering. This may cause packets to be lost. You should limit snaplen to the smallest number that will capture the protocol information you're interested in."