alternative au ping pour tcp?

12

C'est une tâche courante de vérifier la «qualité» du réseau - latence, nombre de paquets perdus, etc. Mais «ping» a un certain nombre d'inconvénients: - Il utilise ICMP. De nombreux FAI ont différents shapers pour le trafic ICMP et TCP, donc 'ping' affichera une latence de 10 ms, mais les connexions TCP connaîtront 1000 ms +. - Il envoie une très petite quantité de paquets. Par défaut, un paquet par seconde. Étant donné que le protocole TCP tolère la perte de paquets (il peut très bien fonctionner si des demi-paquets sont perdus - c'est normal), il n'est absolument pas clair si la "perte de 30% de paquets" de ping tue la connexion ou si c'est absolument normal.

Alors, existe-t-il une alternative au ping qui utilise une connexion TCP au lieu d'ICMP et vérifie la qualité de la connexion Internet?

grigoryvp
la source
La perte de ping de% 30 est la mort pour toute autre connexion entre ces adresses. % 10 est proche de la mort. % 1 est probablement la limite avant de voir de graves problèmes.
Jonesome Reinstate Monica

Réponses:

14

Indépendamment du fait que TCP peut tolérer des problèmes de perte / commande de paquets, une perte de ping de 30% est encore assez importante si la "population" est suffisamment grande - c'est-à-dire plus de 100 pings.

Mais pour répondre à la question, vous pouvez regarder nmap. Je suis sûr que des exemples arriveront bientôt :)

Plus important encore, vous ne voulez pas seulement un temps d'aller-retour, vous voulez vraiment voir les performances de votre machine vers le serveur et revenir à chaque saut (possible).

Vous pouvez le faire avec traceroute- cependant la version la plus courante de cela se fait en utilisant ICMP ou UDP, mais recherchez tcp traceroute- et commencez par là.

Voici quelques outils amusants à essayer pendant que vous y êtes ...

Voici un exemple avec lft...

 % lft -S 4.2.2.2

 Hop  LFT trace to vnsc-bak.sys.gtei.net (4.2.2.2):80/tcp
  1   ln-gateway.centergate.com (206.117.161.1) 0.5ms
  2   isi-acg.ln.net (130.152.136.1) 2.3ms
  3   isi-1-lngw2-atm.ln.net (130.152.180.21) 2.5ms
  4   gigabitethernet5-0.lsanca1-cr3.bbnplanet.net (4.24.4.249) 3.0ms
  5   p6-0.lsanca1-cr6.bbnplanet.net (4.24.4.2) 3.4ms
  6   p6-0.lsanca2-br1.bbnplanet.net (4.24.5.49) 3.3ms
  7   p15-0.snjpca1-br1.bbnplanet.net (4.24.5.58) 10.9ms
  8   so-3-0-0.mtvwca1-br1.bbnplanet.net (4.24.7.33) 11.1ms
  9   p7-0.mtvwca1-dc-dbe1.bbnplanet.net (4.24.9.166) 11.0ms
 10   vlan40.mtvwca1-dc1-dfa1-rc1.bbnplanet.net (128.11.193.67) 11.1ms
 **   [neglected] no reply packets received from TTLs 11 through 20
 **   [4.2-3 BSD bug] the next gateway may errantly reply with reused TTLs
 21   [target] vnsc-bak.sys.gtei.net (4.2.2.2) 11.2ms
Xerxès
la source
J'essaie de trouver des paketto depuis des heures, mais j'avais complètement oublié le nom et la plupart du contexte. Merci pour le lien!
clee
3

Je suis personnellement un grand fan de mtr ( http://www.bitwizard.nl/mtr/ ), mtr est un clone traceroute basé sur ncurses qui peut fonctionner à la fois avec icmp et udp. Il vous montre les points faibles de votre lien avec un certain hôte et n'est donc pas intrusif.

En ce qui concerne vraiment certains tests de charge, j'irais avec iperf (qui est client / serveur).

amo-ej1
la source
également, il existe une variante GTK de MTR pour toute personne intéressée
Kent Fredric
2

Pour Windows, vous pouvez utiliser quelque chose comme tcping:
http://www.elifulkerson.com/projects/tcping.php

Et pour Linux est le meilleur utilitaire, déjà mentionné, hping.

# hping -S -p 80 www.sunet.se
HPING www.sunet.se (eth0 192.36.171.155): S set, 40 headers + 0 data bytes
len=46 ip=192.36.171.155 ttl=59 DF id=0 sport=80 flags=SA seq=0 win=5840 rtt=0.7 ms
len=46 ip=192.36.171.155 ttl=59 DF id=0 sport=80 flags=SA seq=1 win=5840 rtt=0.7 ms
len=46 ip=192.36.171.155 ttl=59 DF id=0 sport=80 flags=SA seq=2 win=5840 rtt=0.6 ms
^C
--- www.sunet.se hping statistic ---
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max = 0.6/0.7/0.7 ms
Mattias Ahnberg
la source
1

Les paquets ICMP sont généralement livrés plus lentement (s'il y a une différence), car la plupart des réseaux les priorisent, en particulier les paquets ping. En général, si vous voyez des résultats aussi divergents des réponses ICMP et TCP, le problème est soit un serveur surchargé, soit une mise en forme TCP spécifique sur un pare-feu en cours de route.

Vous devez enquêter sur traceroute -P tcp, tcptraceroute, lftet bien sûr telnet.

Alex J
la source
Définissez «plus lent». Votre réponse est fausse. Les paquets dépourvus de priorité ne sont pas sensiblement "ralentis", ils sont juste plus susceptibles d'être abandonnés. Il en résulte que le flux semble plus lent, car pour TCP par exemple, il en résulte plus de retransmissions, mais un seul paquet n'est pas ralenti, ou s'il l'est, seulement de manière marginale. Notez que cela n'affecterait que les liaisons lentes, par exemple les points de terminaison DSL; sur Internet lui-même, il se passe trop de choses pour que quiconque se donne la peine de filtrer ces paquets, à moins qu'il ne soit obligé de le faire.
niXar
1
Bien sûr, dire "plus lent" était paresseux, "plus susceptible d'être abandonné" est exact. Ce n'est pas si rare sur le net non plus, il suffit d'en configurer quelques-uns mtrà divers emplacements sur le net et vous remarquerez assez souvent que divers réseaux ont des problèmes de livraison de paquets ICMP à différents points.
Alex J
1

Vous pouvez utiliser une application QoS pour mesurer ce type de paramètres réseau. Par exemple:

NetPerf (www.netperf.org/netperf/): Netperf est une référence qui peut être utilisée pour mesurer les performances de nombreux types de réseaux différents. Il fournit des tests pour le débit unidirecitonal et la latence de bout en bout. Les environnements actuellement mesurables par netperf comprennent:

* TCP and UDP via BSD Sockets for both IPv4 and IPv6
* DLPI
* Unix Domain Sockets
* SCTP for both IPv4 and IPv6 

OU

IPerf (sourceforge.net/projects/iperf) Iperf a été développé par NLANR / DAST comme une alternative moderne pour mesurer les performances maximales de la bande passante TCP et UDP. Iperf permet le réglage de divers paramètres et caractéristiques UDP. Iperf signale la bande passante, la gigue de retard, la perte de datagramme.


la source
1

consultez hping puis jetez un oeil à bing

Matthieu
la source
hping est bon, mais il nécessite winpcap. Semble PCAP est la seule façon dont Windows peut utiliser de tels outils?
grigoryvp
Beurk ... Je ne savais pas ça. Cela le supprime sur le matériel HP - le logiciel d'association d'interface HP semble utiliser certaines bibliothèques winpcap. - J'ai découvert cela lors de la tentative d'installation de Wireshark.
Matthew
1

TCP ne peut pas "tolérer" la perte de paquets de 50%. Il s'arrêtera tout simplement, pour une raison simple: il adapte sa vitesse de transmission en fonction de la perte de paquets. Lorsque des paquets sont perdus, ils sont censés indiquer une congestion. Si vous supprimez 50% des paquets (par exemple, avec une règle de pare-feu à suppression aléatoire ) quel que soit le trafic, la disponibilité de la bande passante diminuera.

De plus, je doute que les FAI façonnent ICMP vs TCP. Certains pourraient le faire, car il y a des gens vraiment stupides, mais cela n'a pas beaucoup de sens de le faire. La plupart façonneront l'ensemble de la connexion ou se "façonneront" à cause de la congestion. Dans les deux cas, les paquets sont généralement supprimés de manière aléatoire.

Cela étant dit, vous pouvez faire un ping avec TCP, mais il y a plusieurs mises en garde. La première consiste à simplement envoyer le paquet initial dans une connexion TCP, ce qui provoquera une réponse d'un serveur avec un port ouvert, mais sera considéré comme une tentative de connexion. Idéalement, vous pouvez utiliser le service "echo" (port TCP 7) ... mais en fait vous ne pouvez pas car il est désormais désactivé par défaut partout. Quoi qu'il en soit, si vous pouvez demander à quelqu'un de l'activer pour vous sur la machine que vous souhaitez tester, un programme pourrait l'utiliser pour vérifier le temps rond pour les paquets à l'intérieur d'une connexion TCP.

Cela étant dit, vous avez probablement installé la commande "tracepath" sur votre machine; il est similaire à traceroute mais n'utilise ni TCP ni ICMP, mais UDP. Pour TCP, il existe différents utilitaires, vous pouvez essayer hping .

niXar
la source
0

L'alternative au ping, vous pouvez utiliser 'netstat'

Options: 1.netstat -antp 2.netstat -anup

-a = tout, -n = adresse et numéro de port de l'extrémité locale du socket, -t = tcp, -p = programme

-u = udp.

chenille
la source