
Estou usando o Ubuntu 14.04 via Virtual Box em um host do Windows 7. A NIC é um adaptador USB para Ethernet.
Oman
para tcpdumpafirma o que pode causar "pacotes descartados pelo kernel", mas não declara o que causa "pacotes descartados pela interface".
Alguém pode esclarecer por que a interface pode estar descartando pacotes? Ou como posso descobrir o motivo da queda dos pacotes?
Responder1
Como você apontou, não há nada na documentação sobre o contador "pacotes descartados pela interface". Portanto, precisamos de alguma pesquisa no código-fonte.
Decódigo fonte do tcpdump, o contador de queda da interface é extraído de stats.ps_ifdrop
:
if (stats.ps_ifdrop != 0) {
if (!verbose)
fputs(", ", stderr);
else
putc('\n', stderr);
(void)fprintf(stderr, "%u packet%s dropped by interface\n",
stats.ps_ifdrop, PLURAL_SUFFIX(stats.ps_ifdrop));
ps_ifdrop
number of packets dropped by the network interface or its driver.
E a partir docódigo fonte libpcap:
* "ps_ifdrop" is supported. It will return the number
* of drops the interface reports in /proc/net/dev,
* if that is available.
Então oO contador tcpdump "pacotes descartados pela interface" corresponde aos pacotes registrados como descartados /proc/net/dev
durante a tcpdump
captura.
O significado dos /proc/dev/net
campos é explicadoaqui
Para entender melhor as quedas, começaria observando as seguintes estatísticas:
ethtool -S <interface>
grep '' /sys/class/net/<interface>/statistics/*
Responder2
Em geral, isso ocorre porque o computador está muito ocupado para lidar com o pacote recebido e a interface não tem onde colocá-lo. O driver pode não ter fornecido buffers para a interface, a interrupção pode estar bloqueada por muito tempo, sérios problemas de falta de recursos como esse.
Isso não acontece mais, pois a implementação do sistema operacional e o desempenho do hardware melhoraram, mas era um problema real nos primeiros dias, quando (por exemplo) uma unidade de disco poderia ocupar o barramento de memória ou o sistema operacional precisava fornecer a interface um buffer como parte do atendimento à interrupção de recepção (design de hardware ruim).