É uma tarefa comum verificar a 'qualidade' da rede - latência, número de pacotes descartados etc. Mas 'ping' tem várias desvantagens: - Ele usa ICMP. Muitos ISP têm modeladores diferentes para o tráfego ICMP e TCP, portanto, 'ping' mostrará latência de 10ms, mas as conexões TCP terão 1000ms +. - Envia uma quantidade muito pequena de pacotes. Por padrão, um pacote por segundo. Como o protocolo TCP tolera a perda de pacotes (ele pode funcionar muito bem com a perda de metade dos pacotes - é normal), não é absolutamente claro se a "30% de perda de pacotes" do ping está matando a conexão ou se é absolutamente normal.
Portanto, existe alguma alternativa para o ping que usa conexão TCP em vez do ICMP e verifica a qualidade da conexão com a Internet?
fonte
Respostas:
Independentemente do TCP poder tolerar problemas de perda de pacotes / pedidos de pacotes, uma perda de ping de 30% ainda é bastante significativa se a "população" for grande o suficiente - ou seja, mais do que 100 pings.
Mas, para responder à pergunta, você pode olhar para o nmap. Tenho certeza de que alguns exemplos virão em breve :)
Mais importante, porém, você não quer apenas um tempo de ida e volta, você realmente deseja ver o desempenho da sua máquina no servidor e voltar a cada salto possível.
Você pode fazer isso com
traceroute
- no entanto, a versão mais encontrada disso é feita usando ICMP ou UDP, mas procuretcp traceroute
- e comece por aí.Aqui estão algumas ferramentas divertidas para experimentar enquanto você está nisso ...
Aqui está um exemplo com
lft
...fonte
O Netcat Power Tools descreve como executar o TCP Ping com o netcat. Especificamente, todo pacote ACK não solicitado deve retornar o RST.
fonte
Pessoalmente, sou um grande fã do mtr ( http://www.bitwizard.nl/mtr/ ), o mtr é um clone de traceroute baseado em ncurses que pode funcionar usando o icmp e o udp. Ele mostra os pontos fracos no seu link para um determinado host e, dessa forma, não é invasivo.
Quando realmente se trata de alguns testes de carga, eu usava o iperf (que é cliente / servidor).
fonte
Para Windows, você pode usar algo como tcping:
http://www.elifulkerson.com/projects/tcping.php
E para Linux, o melhor utilitário já é mencionado
hping
.fonte
Os pacotes ICMP geralmente são entregues mais lentamente (se houver alguma diferença), porque a maioria das redes os desvaloriza, principalmente os pacotes de ping. Geralmente, se você estiver vendo resultados tão divergentes das respostas ICMP e TCP, o problema é um servidor sobrecarregado ou a configuração específica de TCP em um firewall ao longo do caminho.
Você deve investigar
traceroute -P tcp
,tcptraceroute
,lft
e, é clarotelnet
.fonte
mtr
em vários locais da rede e você perceberá com bastante frequência que várias redes têm problemas para entregar pacotes ICMP em vários pontos.Você pode usar algum aplicativo de QoS para medir esse tipo de parâmetros de rede. Por exemplo:
NetPerf (www.netperf.org/netperf/): O Netperf é uma referência que pode ser usada para medir o desempenho de muitos tipos diferentes de rede. Ele fornece testes para taxa de transferência unidirecitonal e latência de ponta a ponta. Os ambientes atualmente mensuráveis pelo netperf incluem:
OU
IPerf (sourceforge.net/projects/iperf) O Iperf foi desenvolvido pela NLANR / DAST como uma alternativa moderna para medir o desempenho máximo da largura de banda TCP e UDP. O Iperf permite o ajuste de vários parâmetros e características UDP. O Iperf relata largura de banda, atraso no jitter, perda de datagramas.
fonte
confira hping e depois dê uma olhada no bing
fonte
O TCP não pode "tolerar" 50% de perda de pacotes. Ele simplesmente trará uma parada, por uma razão simples: adapta sua velocidade de transmissão com base na perda de pacotes. Quando os pacotes são perdidos, entende-se que indicam congestionamento. Se você eliminar 50% dos pacotes (digamos, com uma regra aleatória de firewall de descarte) independentemente do tráfego, haverá uma disponibilidade cada vez menor da largura de banda.
Além disso, duvido que os ISPs moldem o ICMP vs o TCP. Alguns podem fazer, pois existem pessoas realmente estúpidas por aí, mas não faz muito sentido fazê-lo. A maioria moldará toda a conexão ou "se moldará" devido ao congestionamento. Em ambos os casos, os pacotes geralmente são descartados aleatoriamente.
Dito isto, você pode executar ping com o TCP, mas existem várias advertências. O primeiro é apenas enviar o pacote inicial em uma conexão TCP, o que provocará uma resposta de um servidor com uma porta aberta, mas será visto como uma tentativa de conexão. Idealmente, você poderia usar o serviço "eco" (porta TCP 7) ... mas na verdade não pode, porque agora está desativado por padrão em qualquer lugar. De qualquer forma, se você conseguir alguém para habilitá-lo na máquina que deseja testar, um programa poderá usá-lo para verificar o tempo de recuperação de pacotes dentro de uma conexão TCP.
Dito isto, você provavelmente tem o comando "tracepath" instalado em sua máquina; é semelhante ao traceroute, mas não usa TCP ou ICMP, mas UDP. Para o TCP, existem vários utilitários por aí, você pode tentar hping .
fonte
A alternativa ao ping, você pode usar 'netstat'
Opções: 1.netstat -antp 2.netstat -anup
-a = all, -n = Endereço e número da porta da extremidade local do soquete, -t = tcp, -p = program
-u = udp.
fonte