web-dev-qa-db-fra.com

Ping alternative pour TCP?

C'est une tâche commune de vérifier la "qualité" du réseau - la latence, le nombre de paquets abandonnés, etc. Mais "Ping" a un certain nombre d'inconvénients: - Il utilise ICMP. Beaucoup de FAI a des formes différentes pour ICMP et TCP _ Trafic, de sorte que "Ping" montrera la latence 10 ms, mais TCP Les connexions vont faire l'expérience de 1000 ms +. - Il envoie une très petite quantité de paquets. Par défaut, un paquet chaque seconde. Etant donné que TCP protocole tolère la perte de paquets (il peut fonctionner très bien, les demi-paquets sont perdus - il est normal), il n'est absolument pas clair si le "30% de perte de paquets" de Ping est absolument normal ou s'il est absolument normal.

Donc, est-ce une alternative pour ping qui utilise la connexion TCP au lieu d'ICMP et vérifie la qualité de la connexion Internet?

12
grigoryvp

Quel que soit le fait que TCP= peut tolérer des problèmes de perte de paquets/paquets, une perte de ping de 30% est toujours assez significative si la "population" est suffisamment grande - c'est-à-dire plus que dire que 100 pings.

Mais pour répondre à la question, vous pouvez regarder NMAP. Je suis sûr que des exemples viendront inonder sous peu :)

Plus important encore, vous ne voulez pas simplement une heure de voyage, vous souhaitez vraiment voir la performance de votre machine au serveur et à votre retour à chaque saut (possible).

Vous pouvez le faire avec traceroute - Cependant, la version la plus couramment trouvée de ceci est réalisée à l'aide de ICMP ou UDP, mais recherchez tcp traceroute - et commencer là.

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

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
14
Xerxes

Netcat Power Tools Décrit comment faire TCP Ping avec NetCat. Plus précisément, chaque paquet ACK non sollicité doit renvoyer à la TVD.

4
shapr

Je suis personnellement un gros fan de MTR (- http://www.bitwizard.nl/mtr/ ), MTR est un clone Traceroute basé sur des nCurs qui peut fonctionner à la fois à la fois ICMP et UDP. Cela vous montre les points faibles de votre lien avec un certain hôte et est de cette manière non intrusive.

Lorsqu'il s'agit vraiment de tests de charge, j'irais avec iperf (qui est client/serveur).

3
amo-ej1

Pour les fenêtres, vous pouvez utiliser quelque chose comme TCPPing:
[.____] http://www.éléulkerson.com/projects/tcping.php

Et pour Linux, le meilleur utilitaire est 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
2
Mattias Ahnberg

Les paquets ICMP sont généralement livrés plus lentement (s'il y a une différence du tout), car la plupart des réseaux les dépêchent, en particulier des paquets Ping. Généralement, si vous voyez de tels résultats divergents à partir d'ICMP et TCP réponses, le problème est soit un serveur surchargé, soit spécifique TCP Façage à un pare-feu en cours de route .

Vous devriez enquêter traceroute -P tcp, tcptraceroute, lft et bien sûr telnet.

1
Alex J

Vous pouvez utiliser une application QoS pour mesurer ce type de paramètres de 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éseautage. Il fournit des tests pour un débit unidirecitonal et une latence de bout en bout. Les environnements actuellement mesurables par NetPerf incluent:

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

OR

iperf (sourceforge.net/projects/iperf) iperf a été développé par NLANR/DAST comme une alternative moderne pour mesurer maximum TCP et UDP. IPERF permet au réglage de divers paramètres et caractéristiques UDP. IPERF rapporte la bande passante, retarder la gigue, la perte de datagramme.

1
Roberto

vérifiez HP puis jeter un oeil sur bing

1
Matthew

TCP ne peut pas "tolérer" 50% de perte de paquets. Il va simplement accrocher à une halte, pour une raison simple: elle adapte sa vitesse de transmission en fonction de la perte de paquets. Lorsque des paquets sont perdus, ils sont compris pour indiquer la congestion. Si vous déposez 50% des paquets (par exemple, avec un aléatoire Règle de pare-feu abandonnée) Indépendamment du trafic, il verra une disponibilité de la bande passante réduite.

De plus, je doute des ISPS Shape ICMP VS TCP. Certains risquent de faire, car il y a des gens vraiment stupides là-bas, mais cela n'a pas beaucoup de sens de le faire. La plupart formeront toute la connexion ou "se dessinera" à cause de la congestion. Dans les deux cas, les paquets sont généralement tombés au hasard.

Cela étant dit, vous pouvez ping avec TCP, mais il y a plusieurs mises en garde. Le premier consiste simplement d'envoyer le paquet initial dans A TCP, qui suscitera une réponse d'un serveur avec un port ouvert, mais sera considéré comme une tentative de connexion. Idéalement, vous pourriez utiliser le Service "Echo" (Port TCP 7) ... mais en fait, vous ne pouvez pas parce que c'est maintenant désactivé par défaut partout. Quoi qu'il en soit, si vous pouvez obtenir quelqu'un pour vous permettre pour vous sur la machine que vous souhaitez tester, un programme pourrait utiliser que pour vérifier le temps autour des paquets à l'intérieur d'un TCP connexion.

Cela étant dit, vous avez probablement la commande "TracePath" installé sur votre machine; Il est similaire à Traceroute mais n'utilise ni =TCP ou ICMP, mais UDP. Pour TCP Il existe divers services utilitaires, vous pouvez essayer HPER .

1
niXar

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

Options: 1.NetStat -antTP 2.NetStat -anup

-A = Tout, -N = adresse et numéro de port de l'extrémité locale de la prise, -T = TCP, -P = programme

-u = udp.

0
Caterpillar