Jump to content

    

Нужна утилита для измерения производительности сети

Добрый день! Есть ли готовая утилита, или набор утилит, чтобы отправить произвольный объём данных на некий сокет на сервере, там на сервере этот трафик будет "завёрнут" (отправлен) назад. Утилита должна принять его, сравнить с тем, чтоотправил, и вычислить скорость. Посоветовался с местными "линуксоидами", запугали меня тем, что нужно писать скрипт. Я в этом не ориентируюсь, мне уж проще написать прогу на си. Но желательно именно иметь готовую утилитку.

Спасибо!

P.S. Можно и другую утилитку. Пусть просто возвращает принятый трафик назад. Тогда прогу на сервере поправлю для расчёт скорости.

Share this post


Link to post
Share on other sites

ping -f -s 10000

 Число - размер пакета.

Вот Вам скрипт.

Share this post


Link to post
Share on other sites

Почитайте документацию на Iperf, Iperf3 + в сети полно примеров их использования.

Share this post


Link to post
Share on other sites
57 minutes ago, Tanya said:

ping -f -s 10000

 Число - размер пакета.

Вот Вам скрипт.

Скорость оно не расчитывает. А правильность принятия этих 10000 байт проверяет, вы не в курсе?

Share this post


Link to post
Share on other sites

Еще клевая hping3, позволяет засыпать трилиардами пакетов канал, дабы проверить производительность пер-пакет.

Намного производительнее классик-пинг'а

Edited by shodan_x

Share this post


Link to post
Share on other sites
5 часов назад, haker_fox сказал:

Добрый день! Есть ли готовая утилита, или набор утилит, чтобы отправить произвольный объём данных на некий сокет на сервере, там на сервере этот трафик будет "завёрнут" (отправлен) назад.

Хоть терминологию немного подучите что-ль...

"некий сокет на сервере" - понятие бессмысленное, так как сокет - это уже установленное соединение между двумя TCP-портами. Пока не подключились к порту на сервере, никакого сокета нет.

Цитата

Утилита должна принять его, сравнить с тем, чтоотправил, и вычислить скорость.

Скорость чего нужна? Передачи данных в TCP-сокете? Приёма данных в TCP-сокете? Задержка передача-приём? ....?

Для коннекта на произвольный TCP-порт есть куча утилит. Под винду например есть "NetView", он содержит в себе много чего. Есть ещё "TCP/UDP Net Assistant" - он тоже позволяет коннектитьтся на произвольный TCP-порт (или использовать отправку UDP).

Цитата

P.S. Можно и другую утилитку. Пусть просто возвращает принятый трафик назад. Тогда прогу на сервере поправлю для расчёт скорости.

:wacko2:  Так вам нужна прога на TCP-сервере, которая будет заворачивать траффик назад или где? Или на клиенте, которая будет коннектиться к TCP-серверу, а потом делать эхо всех данных, отправляемых сервером в сокет?

Вообще ничего не понятно... Постарайтесь осмысленно сформулировать задачу.

 

2 часа назад, Tanya сказал:

ping -f -s 10000

 Число - размер пакета.

Разве? А в моей винде это совсем другое:

Использование: ping [-t] [-a] [-n число] [-l размер] [-f] [-i TTL] [-v TOS]
               [-r число] [-s число] [[-j списокУзлов] | [-k списокУзлов]]
               [-w таймаут] конечноеИмя
Параметры:
    -t               Отправка пакетов на указанный узел до команды прерывания.
                     Для вывода статистики и продолжения нажмите
                     <Ctrl>+<Break>, для прекращения - <Ctrl>+<C>.
    -a               Определение адресов по именам узлов.
    -n число         Число отправляемых запросов.
    -l размер        Размер буфера отправки.
    -f               Установка флага, запрещающего фрагментацию пакета.
    -i TTL           Задание срока жизни пакета (поле "Time To Live").
    -v TOS           Задание типа службы (поле "Type Of Service").
    -r число         Запись маршрута для указанного числа переходов.
    -s число         Штамп времени для указанного числа переходов.
    -j списокУзлов   Свободный выбор маршрута по списку узлов.
    -k списокУзлов   Жесткий выбор маршрута по списку узлов.
    -w таймаут       Таймаут каждого ответа в миллисекундах.

 

Share this post


Link to post
Share on other sites

Вопрос был про ###nix. 

В Windows все самобытно.

Share this post


Link to post
Share on other sites
29 minutes ago, jcxz said:

Хоть терминологию немного подучите что-ль...

@jcxz, без обид, но вы хоть иногда смотрите, что комментируете. Все кто в теме, ответили адекватно. А-то нравоучения у вас уже нормой становятся.

Кстати, из вики (не авторитет, знаю)

Quote

Для взаимодействия между машинами с помощью стека протоколов TCP/IP используются адреса и порты. Адрес представляет собой 32-битную структуру для протокола IPv4, 128-битную для IPv6. Номер порта — целое число в диапазоне от 0 до 65535 (для протокола TCP).

Эта пара определяет сокет («гнездо», соответствующее адресу и порту).

29 minutes ago, jcxz said:

Под винду например есть "NetView"

 

29 minutes ago, jcxz said:

А в моей винде это совсем другое:

Вопрос для ОС linux был.

Share this post


Link to post
Share on other sites
24 минуты назад, haker_fox сказал:

@jcxz, без обид, но вы хоть иногда смотрите, что комментируете. Все кто в теме, ответили адекватно.

Все кто ответили, сказали про ICMP-протокол. Им можно померить только задержку передачи/приёма ICMP-кадра. Данные ICMP-протоколом обычно никто не отправляет. Разве что в каких-то случаях создания туннелей для обхода файрволлов. И 10000 байт в ICMP вы не отправите, а только в размере не более одного MTU (обычно <=1460 байт).

И задержка - это не скорость всё-таки.

35 минут назад, haker_fox сказал:

А-то нравоучения у вас уже нормой становятся.

Вы что-то часто обижаетесь, на пустом месте. Такое ощущение что просто желаете обидеться по любому поводу.... Без обид.

Это не нравоучения, а замечание.

33 минуты назад, haker_fox сказал:

Кстати, из вики (не авторитет, знаю)

Вот поэтому я писал уточнить про какой протокол был вопрос, потому что в TCP под сокетом имеют в виду нечто другое.

А то может быть вы вообще под сокетом понимаете разъём куда провод втыкается.  :smile:

Share this post


Link to post
Share on other sites
7 hours ago, haker_fox said:

P.S. Можно и другую утилитку. Пусть просто возвращает принятый трафик назад. Тогда прогу на сервере поправлю для расчёт скорости.

Реально непонятно что тут относится к линуксу.
Сервер линуксовый куда данные шлют? 
Или какая-то ваша плата работает под линуксом и шлет данные и под нее  надо писать скрипт?

Iperf не занимается пересылкой данных, он лишь тупо отправляет или принимает блоки данных с содержимым счетчика.
Эт не будет тестом двустороннего обмена. эт будет тест обмена в одну сторону.  
Тут надо определиться какого рода обмен вы хотите тестировать.  
   

Share this post


Link to post
Share on other sites
3 hours ago, jcxz said:

Все кто ответили, сказали про ICMP-протокол

Ну почему же... Iperf генерирует не только ICMP-пакеты.

3 hours ago, jcxz said:

И 10000 байт в ICMP вы не отправите,

Я знаю это, но ответ @Tanya я даже и не заметил, т.к. пинг не рассматриваю в качестве тестилки.

3 hours ago, jcxz said:

Вы что-то часто обижаетесь, на пустом месте. Такое ощущение что просто желаете обидеться по любому поводу.... Без обид.

Вы правы, мне кажется, что я просто "за..трах...ся" от всевозможного сорта работ, которые выполняю, и любой ответ не по мне меня раздражает. Господа модераторы, извините за это...

3 hours ago, jcxz said:

Вот поэтому я писал уточнить про какой протокол был вопрос, потому что в TCP под сокетом имеют в виду нечто другое.

Протокол TCP.

3 hours ago, jcxz said:

А то может быть вы вообще под сокетом понимаете разъём куда провод втыкается. 

Ну нет... не это, точно:blum:

3 hours ago, AlexandrY said:

Тут надо определиться какого рода обмен вы хотите тестировать. 

Хорошо. Есть плата с LPC4337. На ней крутится FreeRTOS + lwIP. Есть Ethernet на плате. Нужно протестировать максимальную скорость обмена по этому порту. Я пока иду в таком направлении: поднял одну задачу, которая ждёт соединения через TCP-протокол на некотором порте. Как только соединение установлено, задача зацикливается и ждёт данных. Принятые данные она отправляет назад. Нужна какая-то прога для линукса (обязательно для линукса), которая подключится к плате, и будет гнать в неё трафик (произвольный). Измерять скорость передачи данных. Среднюю. Вот как-то так.

Если я иду неправлиьным путём (а я могу, ибо  в сетях пока я только начинающий), то буду рад услышать совет, как это сделать. Зачем мне вообще это надо, прошу не спрашивать. Это задание моего начальника... И мне это хочется сделать по-быстрее. Я пока пошёл на написание своей софтинки под линукс, которая делает нужное. Но очень надеюсь, что есть готовая утилитка.

Теперь я более ясно выразился, что мне нужно?-:)

Share this post


Link to post
Share on other sites
4 hours ago, jcxz said:

И 10000 байт в ICMP вы не отправите, а только в размере не более одного MTU (обычно <=1460 байт)

Quote

xxx@w02-debian:~$ ping -s 10000 192.168.2.13
PING 192.168.2.13 (192.168.2.13) 10000(10028) bytes of data.
10008 bytes from 192.168.2.13: icmp_seq=1 ttl=128 time=0.791 ms
10008 bytes from 192.168.2.13: icmp_seq=2 ttl=128 time=0.621 ms
10008 bytes from 192.168.2.13: icmp_seq=3 ttl=128 time=0.625 ms

 

Share this post


Link to post
Share on other sites
1 minute ago, aaarrr said:

xxx@w02-debian:~$ ping -s 10000 192.168.2.13

Прикольно! А в убунте валится.. странно. Ну да ладно)

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now