Pegue a perda de pacotes sem usar o ICMP no FreeBSD

0

É possível de alguma forma detectar a perda de pacotes sem usar o protocolo ICMP (ping; fping etc) para evitar a geração de tráfego de rede adicional usando utilitários padrão como o netstat etc?

    
por user54 02.03.2017 / 09:45

3 respostas

3

Não tenho certeza se isso vale para o FreeBSD, mas no Linux, você pode verificar se há retransmissões TCP, potencialmente como uma porcentagem dos pacotes gerais vistos em um determinado período de tempo.

No linux, isso seria algo parecido com:

> cat /proc/net/tcp sl local_address rem_address st tx_queue rx_queue tr tm->when retrnsmt uid timeout inode
0: 00000000:0014 00000000:0000 09 00000000:00000000 00:00000000 00000000 0 0 30111 1 0000000000000000 100 0 0 10 0

Veja também esta pergunta para outras ideias e para uma resposta baseada em netstat: link .

A resposta que você precisa é de JoelK : netstat -s | grep retransmitted

    
por 02.03.2017 / 10:09
2

A resposta de iwaseatenbyagrue é uma boa resposta (eu inventei isso), mas ela sofre de um simples defeito, ie ele retorna global estatísticas de perda de pacotes, enquanto ping (e mtr , uma ferramenta combinada traceroute / ping ) são locais para comunicações: em outras palavras, eles detalharão perda de pacotes em uma comunicação específica, não na média de todas as comunicações que você recebeu no passado.

O Wireshark , uma ferramenta comum de análise de pacotes disponível em todos os sistemas operacionais, pode ajudá-lo a estabelecer a perda de pacotes por conexão. A base disso é o fato de que pacotes TCP (mas não pacotes UDP) carregam um número seqüencial (embora o número do primeiro pacote seja determinado de maneira indireta para contornar uma certa classe de ataques), o que torna possível solicitar um envio repetido sempre que um pacote é descartado antes de atingir o destino pretendido.

Para fazer isso funcionar no Wireshark, Estatísticas - > Estatísticas de conversação e selecione a conversa (= o host remoto) para o qual você deseja estabelecer a taxa de perda de pacotes na guia TCP. Então você obterá o throughput (pacotes por segundo de remoto para local e vice-versa) imediatamente. Se, em vez disso, você quiser a taxa de perda de pacotes, ao escolher a conversa, adicione o seguinte filtro e tcp.analysis.lost_segment , e veja quantos pacotes são descartados verificando, na barra de status, quantos os pacotes correspondem ao filtro.

Deve haver um zilhão de fontes on-line sobre como fazer isso, eu encontrei este vídeo do Youtube simples e claro , mas realmente googling wireshark perda de pacotes trará muitas páginas com bons conselhos.

    
por 02.03.2017 / 15:02
1

Você pode usar MTR programa com -u opção que usa datagramas em vez de ICMP ECHO ou opção -T que usa pacotes TCP SYN.

Se você não quer gerar nenhum tráfego extra e apenas quer obter estatísticas acumuladas sobre pacotes perdidos em um passado, então você pode obter estatísticas do sistema operacional FreeBSD, de colunas marcadas como err executando:

netstat -idb -I <interface_name>

Você receberá algo assim:

# netstat -idb -I em0
Name    Mtu Network       Address              Ipkts Ierrs     Ibytes    Opkts Oerrs     Obytes  Coll Drop
em0    1500 <Link#1>      00:11:22:33:44:55 110031161     0 2708056139 176396459     0  366893484     0    0
em0    1500 192.168.24.0  mxmail            107582221     - 1545164761 177078111     - 2870208791     -    -
    
por 02.03.2017 / 10:55