ping альтернатива tcp?


12

Це звичайне завдання перевірити "якість" мережі - затримку, кількість випавших пакетів тощо. Але "ping" має ряд недоліків: - Він використовує ICMP. Багато провайдерів мають різні форми для трафіку ICMP та TCP, тому "ping" покаже затримку 10 мс, але TCP-з'єднання матимуть 1000 мс +. - Він надсилає дуже невелику кількість пакетів. За замовчуванням один пакет щосекунди. Оскільки протокол TCP толерує втрату пакетів (він може працювати дуже добре, якщо половина пакетів втрачено - це нормально), абсолютно незрозуміло, чи знищує з'єднання ping "30% втрата пакету" або якщо це абсолютно нормально.

Отже, чи є альтернатива ping, що використовує TCP-з'єднання замість ICMP та перевіряє якість інтернет-з'єднання?


Втрата пінг у% 30 - це смерть для будь-якого іншого зв'язку між цими адресами. % 10 - близько до смерті. % 1 - це, ймовірно, межа, перш ніж ви побачите серйозні проблеми.
Jonesome Reinstate Моніка

Відповіді:


14

Незалежно від того, що TCP може терпіти проблеми з втратою пакетів / упорядкуванням пакетів, втрата пінгу в розмірі 30% все ще є досить значною, якщо "населення" досить велике - тобто більше, ніж скажімо, 100 пінг.

Але щоб відповісти на питання, ви можете подивитися на nmap. Я впевнений, що приклади незабаром затопляться :)

Що ще важливіше, ви не хочете просто в обидва дні, ви дійсно хочете побачити продуктивність від вашої машини до сервера і назад при кожному (можливому) стрибку.

Це можна зробити, tracerouteоднак найчастіше зустрічається версія цього робиться за допомогою ICMP або UDP, але шукайте tcp traceroute- і починайте там.

Ось кілька цікавих інструментів, щоб спробувати, поки ви на цьому ...

Ось приклад із 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

Я годинами намагався знайти пакет, але я зовсім забув назву та більшу частину контексту. Дякуємо за посилання!
clee


3

Я особисто є великим шанувальником mtr ( http://www.bitwizard.nl/mtr/ ), mtr - клон мікроконтроля, заснований на ncurses, який може працювати як за допомогою icmp, так і udp. Він показує вам слабкі місця у вашому посиланні на певний хост і, таким чином, не нав'язливий.

Коли це дійсно стосується деяких тестів на завантаження, я б перейшов до iperf (який є клієнтом / сервером).


Крім того, є GTK варіант MTR для всіх, хто цікавиться
Кент Фредрік

2

Для Windows ви можете використовувати щось на кшталт tcping:
http://www.elifulkerson.com/projects/tcping.php

А для Linux краща утиліта, вже згадувалося, 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

1

Пакети ICMP, як правило, доставляються повільніше (якщо взагалі є різниця), тому що більшість мереж деприріозують їх, особливо пінг-пакети. Як правило, якщо ви бачите такі розбіжні результати у відповідях ICMP та TCP, проблема є або перевантаженим сервером, або специфічним формуванням TCP у брандмауері.

Ви повинні досліджувати traceroute -P tcp, tcptraceroute, lftі, звичайно ж telnet.


Визначте "повільніше". Ваша відповідь неправильна. Депріоритизовані пакети помітно не «сповільнюються», вони просто швидше відмовляються. Це призводить до того, що потік з’являється повільніше, оскільки для TCP, наприклад, це призводить до повторної передачі, але один пакет не сповільнюється, або, якщо він є, лише незначно. Зверніть увагу, що це вплине лише на повільні посилання, наприклад, кінцеві точки DSL; в самому Інтернеті відбувається занадто багато, щоб хтось не турбувався про фільтрування таких пакетів, якщо тільки вони не змушені.
niXar

1
Впевнений, сказати, що "повільніше" було ледачим, "швидше за все, кинути" точно. Це не так вже й рідко в мережі, просто налаштуйте деякі mtrна різні місця по мережі, і ви часто помітите, що різні мережі мають проблеми з доставкою пакетів ICMP в різних точках.
Alex J

1

Ви можете використовувати якусь програму QoS для вимірювання такого типу мережевих параметрів. Наприклад:

NetPerf (www.netperf.org/netperf/): Netperf - це орієнтир, який можна використовувати для вимірювання продуктивності багатьох різних типів мереж. Він забезпечує тести як на односредоточну пропускну здатність, так і на затримку в кінці. Середовища, які в даний час можна виміряти за допомогою netperf, включають:

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

АБО

IPerf (sourceforge.net/projects/iperf) Iperf був розроблений NLANR / DAST як сучасна альтернатива для вимірювання максимальної продуктивності пропускної здатності TCP та UDP. Iperf дозволяє налаштувати різні параметри та характеристики UDP. Iperf повідомляє пропускну здатність, затримку затримки, втрату дейтаграми.


1

перевірити hping, а потім поглянути на bing


hping - це добре, але він вимагає winpcap. Здається, pcap - єдиний спосіб, коли Windows можуть використовувати такі інструменти?
grigoryvp

Юк ... Не знав цього. Це скапує його на апаратному забезпеченні HP - програмне забезпечення для сумісного інтерфейсу HP використовує деякі бібліотеки winpcap. - Я це з'ясував під час спроби встановити провід.
Метью

1

TCP не може "терпіти" 50% втрат пакету. Він просто заглушиться з простої причини: він адаптує свою швидкість передачі, виходячи з втрати пакетів. Коли пакети втрачаються, вони розуміють, що вони означають перевантаженість. Якщо ви скинете 50% пакетів (скажімо, із випадковим правилом брандмауера) незалежно від трафіку, це буде постійно зменшувати пропускну здатність.

Крім того, я сумніваюся, що провайдери формують ICMP проти TCP. Дехто може це зробити, оскільки там є справді дурні люди, але це не має особливого сенсу. Більшість формуватиме ціле з'єднання, або воно «формуватиме себе» через перевантаженість. В будь-якому випадку пакети зазвичай скидаються випадковим чином.

Як говориться, ви можете пінг з TCP, але є кілька застережень. Перший - просто надіслати початковий пакет в TCP-з'єднанні, що спричинить відповідь від сервера з відкритим портом, але буде сприйматися як спроба з'єднання. В ідеалі ви могли б скористатися послугою "echo" (TCP-порт 7) ... але насправді ви не можете, тому що тепер вона деактивована скрізь. У будь-якому випадку, якщо ви зможете когось увімкнути для вас на машині, яку ви хочете протестувати, програма могла б використати це для перевірки часу навколо пакету всередині TCP-з'єднання.

Але, мабуть, на вашій машині встановлена ​​команда "трацепт"; він схожий на traceroute, але не використовує ні TCP, ні ICMP, але UDP. Для TCP є різні утиліти, ви можете спробувати hping .


0

Альтернативою ping можна скористатись "netstat"

Параметри: 1.netstat -antp 2.netstat -anup

-a = all, -n = Адреса та номер порту локального кінця сокета, -t = tcp, -p = програма

-u = udp.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.