{{toc}}
При экслуатации локальной сети часто возникает необходимость измерения скорости передачи данных по ней. Приблизительную оценку скорости можно произвести простым расчетом, измерив время передачи файла известного размера с одного компьютера на другой. Полученная оценка будет неточной и этот метод довольно трудоемок и неудобен при необходимости большого количества замеров. Для более точного измерения имеется ряд программ, которые помимо очень точного измерения существенно облегчают собственно процесс измерений. Работают они по тому же принципу измерения времени передачи данных между двумя компьютерами и при работе с ними следует придерживаться нижеследующих рекомендаций.
===Общая методика измерений==
Для повышения точности измерений скорости передачи данных по локальной сети рекомендуется придерживаться следующих правил :
* Закрыть или остановить **все** программы, передающие данные по сети на обоих компьютерах.
* Закрыть или остановить максимум программ для обеспечения необходимых ресурсов процессора и памяти на обоих компьютерах.
* Обеспечить возможность прохождения тестовой информации по рабочим портам соответствующими разрешениями в настройках файрволов.
* Документировать полученные результаты.
----
===Программы измерители скорости сети==
====~NetCPS==
Консольная утилита, размер ((http://www.netchain.com/NetCPS/NetCPS.zip архива)) = 24 кБ , работает по порту TCP 4455, ((http://www.netchain.com/NetCPS/ Домашняя страница)).
Все опции программы можно посмотреть вызовом помощи ключом -h
%%(cmds)
F:\ZZVirtualPC\Shared\NetCPS>netcps -h
NetCPS 1.0 - donated into the Public Domain (almost) by Jarle Aase
THIS PROGRAM IS NOT LISENCED TO GOVERNMENTAL OR MILITARY USE.
Usage: netcps [options] [Remote host]
-Pn Port number. Default port is 4455
-server Server mode. (Default is client)
-mn Megabytes to transfer. Default is 100
Note: 'n' represents a number.
%%
Исполняемый файл запускается на компьютере-сервере с ключом **-s**
%%(cmds)
D:\NETCPS>netcps -s
NetCPS 1.0 - Entering server mode. Press ^C to quit
Waiting for new connection...
%%
Программа в режиме сервера становится в ожидание коннекта, отключение программы нажатием Ctrl+C.
На втором компьютере в консоли запускается тот же файл с IP-адресом сервера. Компьютеры связываются и начинается процесс передачи информации объемом 100 МБ по умолчанию, можно задать другой объем ключом -m(число МБ). Программа самостоятельно генерирует трафик, что исключает влияние скорости дисковых операций и уменьшает погрешность замера. Промежуточная информация индицируется на обоих компьютерах.
%%(cmds)
C:\Tools\NetCPS>netcps 192.168.1.22
NetCPS 1.0 - Entering client mode. Press ^C to quit
Connecting to 192.168.1.22 port 4455... Connected!
---> CPS 603136.00 KPS: 589.00 MPS: 0.58
Avrg CPS 599186.31 KPS: 585.14 MPS: 0.57
Peek CPS 998400.00 KPS: 975.00 MPS: 0.95
Done. 104857600 Kb transferred in 98.34 seconds.
%%
Как видно из итоговой строки, 100 МБ данных были переданы за 98,34 секунды, т.е со скоростью 1.066 МБайта/секунду. Это вполне нормальный результат для 10 Мегабитной сети.
!!(red)Программа не работает на компьютерах, находящихся в домене.!!
----
====PCATTCP==
Консольная утилита, размер ((http://www.pcausa.com/Utilities/ttcpzip.exe архива)) = 261 кБ , по умолчанию работает по порту TCP 5001 , ((http://www.pcausa.com/Utilities/pcattcp.htm Домашняя страница)).
Все опции программы можно посмотреть вызовом помощи ключом -h
%%(cmd)
D:\TOOLS>pcattcp -h
PCAUSA Test TCP Utility V2.01.01.08
Usage: pcattcp -t [-options] host [ < in ]
pcattcp -r [-options > out]
Common options:
-l ## length of bufs read from or written to network (default 8192)
-u use UDP instead of TCP
-p ## port number to send to or listen at (default 5001)
-s toggle sinkmode (enabled by default)
sinkmode enabled:
-t: source (transmit) fabricated pattern
-r: sink (discard) all received data
sinkmode disabled:
-t: reads data to be transmitted from stdin
-r: writes received data to stdout
-A align the start of buffers to this modulus (default 16384)
-O start buffers at this offset from the modulus (default 0)
-v verbose: print more statistics
-d set SO_DEBUG socket option
-b ## set socket buffer size (if supported)
-f X format for rate: k,K = kilo{bit,byte}; m,M = mega; g,G = giga
-c -t: send continuously
-r: accept multiple connections sequentially
-R concurrent TCP/UDP multithreaded receiver
Options specific to -t:
-n ## number of source bufs written to network (default 2048)
-D don't buffer TCP writes (sets TCP_NODELAY socket option)
-w ## milliseconds of delay before each write (default 0)
-L ## desired transmit data rate in bytes/second
Options specific to -r:
-B for -s, only output full blocks as specified by -l (for TAR)
-T "touch": access each byte as it's read
%%
Запуск серверной части программы производится ключом **-r** (receiver) :
%%(cmds)
D:\TOOLS>pcattcp -r
PCAUSA Test TCP Utility V2.01.01.08
TCP Receive Test
Local Host : org
**************
Listening...: On port 5001
%%
На втором компьютере надо выполнить команду с ключом **-t** (transmitter) :
%%(cmds)
D:\TOOLS>pcattcp -t 172.28.110.54
PCAUSA Test TCP Utility V2.01.01.08
TCP Transmit Test
Transmit : TCP -> 172.28.110.54:5001
Buffer Size : 8192; Alignment: 16384/0
TCP_NODELAY : DISABLED (0)
Connect : Connected to 172.28.110.54:5001
Send Mode : Send Pattern; Number of Buffers: 2048
Statistics : TCP -> 172.28.110.54:5001
16777216 bytes in 2.92 real seconds = 5607.12 KB/sec +++
numCalls: 2048; msec/call: 1.46; calls/sec: 700.89
%%
Программа согласно умолчальным настройкам отправит 16 МБ данных и выведет результаты измерения.
----
====Netspeed==
Консольная утилита, размер ((http://www.optimumx.com/download/NetSpeed.zip архива)) = 30 кБ , работает по порту TCP 7777, ((http://www.optimumx.com/ Домашняя страница)).
Все опции программы можно посмотреть вызовом программы без ключа :
%%(cmds)
D:\TOOLS>netspeed
Network Speed [Version 1.40]
Calculates the network speed (transfer rate) between two winsock hosts.
The syntax of this command is:
netspeed /H:host|/S[:n] [/P:n] [/M:n] [/C:y|n]
/H:host : Client mode, host=name/address of a machine waiting in server mode.
/S:n : Server mode, n=# of times to answer before exiting, default is 9999
/P:n : n=Port number, default is 7777. (Both client & server must match)
/M:n : n=Megabytes to transfer, default is 10. (Only valid in client mode)
/C:y,/C:n: y=The data sent will be compressible; n=Not compressible (default).
Copyright 1999-2002 Marty List, Marty@OptimumX.com
%%
Серверная часть программы запускается на компьютере-сервере с ключом **-s**
%%(cmds)
D:\TOOLS>netspeed /s
Network Speed - Initializing SERVER mode on port 7777...
Waiting for 9999 new connections on port 7777... (Press CTRL+C to cancel)
%%
Программа в режиме сервера становится в ожидание коннекта, отключение программы нажатием Ctrl+C.
На втором компьютере в консоли запускается тот же файл с ключом **/h:(IP-адрес сервера)**. Компьютеры связываются и начинается процесс передачи информации объемом 10 МБ по умолчанию, можно задать другой объем ключом **-M:n**(число МБ).
%%(cmds)
C:\>netspeed /h:192.168.1.2
Initializing CLIENT mode on port 7777... (Press CTRL+C to cancel)
-------------------------------------------------------------------------------
Sending 10MB to 192.168.1.2 09/27/2008 17:03:00
-------------------------------------------------------------------------------
Disconnected from host.
Transferred 10MB in 4.44 seconds.
Results: (Bps=Bytes, bps=bits)
Peak--> Bps: 2471513 KBps: 2414 MBps: 2.4 Kbps: 19309 Mbps: 18.86
Avg--> Bps: 2363787 KBps: 2308 MBps: 2.3 Kbps: 18467 Mbps: 18.03
-------------------------------------------------------------------------------
The command completed successfully.
%%
----
====iperf==
Консольная утилита, размер ((http://dast.nlanr.net/Projects/Iperf/iperf-1.7.0-win32.exe архива)) = 125 кБ , работает по порту TCP 5001, ((http://dast.nlanr.net/Projects/Iperf/ Домашняя страница)).
Все опции программы можно посмотреть вызовом программы с ключом **-h** :
%%(cmd)
C:\Temp>iperf -h
Usage: iperf [-s|-c host] [options]
iperf [-h|--help] [-v|--version]
Client/Server:
-f, --format [kmKM] format to report: Kbits, Mbits, KBytes, MBytes
-i, --interval # seconds between periodic bandwidth reports
-l, --len #[KM] length of buffer to read or write (default 8 KB)
-m, --print_mss print TCP maximum segment size (MTU - TCP/IP header)
-o, --output <filename> output the report or error message to this specifie
d file
-p, --port # server port to listen on/connect to
-u, --udp use UDP rather than TCP
-w, --window #[KM] TCP window size (socket buffer size)
-B, --bind <host> bind to <host>, an interface or multicast address
-C, --compatibility for use with older versions does not sent extra msgs
-M, --mss # set TCP maximum segment size (MTU - 40 bytes)
-N, --nodelay set TCP no delay, disabling Nagle's Algorithm
-V, --IPv6Version Set the domain to IPv6
Server specific:
-s, --server run in server mode
-D, --daemon run the server as a daemon
-R, --remove remove service in win32
Client specific:
-b, --bandwidth #[KM] for UDP, bandwidth to send at in bits/sec
(default 1 Mbit/sec, implies -u)
-c, --client <host> run in client mode, connecting to <host>
-d, --dualtest Do a bidirectional test simultaneously
-n, --num #[KM] number of bytes to transmit (instead of -t)
-r, --tradeoff Do a bidirectional test individually
-t, --time # time in seconds to transmit for (default 10 secs)
-F, --fileinput <name> input the data to be transmitted from a file
-I, --stdin input the data to be transmitted from stdin
-L, --listenport # port to recieve bidirectional tests back on
-P, --parallel # number of parallel client threads to run
-T, --ttl # time-to-live, for multicast (default 1)
Miscellaneous:
-h, --help print this message and quit
-v, --version print version information and quit
[KM] Indicates options that support a K or M suffix for kilo- or mega-
The TCP window size option can be set by the environment variable
TCP_WINDOW_SIZE. Most other options can be set by an environment variable
IPERF_<long option name>, such as IPERF_BANDWIDTH.
Report bugs to <dast@nlanr.net>
%%
Как видите, огромные возможности программы позволяют не только измерять скорость, но и проводить различные эксперименты изменяя параметры передачи.
Серверная часть программы запускается на компьютере-сервере (например 192.168.1.2) с ключом **-s**
%%(cmds)
C:\Temp>iperf -s
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 8.00 KByte (default)
------------------------------------------------------------
%%
На втором компьютере (192.168.1.1) в консоли запускается тот же файл с ключом **/с (IP-адрес сервера)**.
%%(cmds)
C:\Temp>iperf -c 192.168.1.2
------------------------------------------------------------
Client connecting to 192.168.1.2, TCP port 5001
TCP window size: 8.00 KByte (default)
------------------------------------------------------------
[1860] local 192.168.1.1 port 2274 connected with 192.168.1.2 port 5001
[ ID] Interval Transfer Bandwidth
[1860] 0.0-10.0 sec 54.0 MBytes 45.2 Mbits/sec
%%
Для этой программы разработана утилита оконного интерфейса ((http://www.softpedia.com/get/Network-Tools/Network-Testing/JPerf.shtml jperf)), требуется установленная Java. Запускается файлом jperf.bat, порт по умолчанию 5001. Принцип работы тот же : программа запускается на компьютере-сервере (например 10.0.0.1) а с другого следует указать адрес этого сервера и получить ответ такого вида -
<# <a href="http://wiki.compowiki.info/files/pics/jperf.png" target=_blank><img src="http://wiki.compowiki.info/files/pics/jperf.png" height=300 alt="jperf" title="jperf"></a> #>
----
====AIDA==
Основное назначение этой программы вовсе не измерение скорости, но она имеет плагин интересующий нас Network benchmark. Запускается плагин через меню - Plugin - AIDA32 - Network benchmark. Для серверной части выбирается положение **Master** и нажать Start. На клиентской стороне - **Slave** и указывается IP адрес мастера, после нажатия на Start начинается процесс замера. Результат выводится на график.
>>file:aida11.jpg<<
Бесплатная версия этой программы, увы, больше не развивается, однако, ее все еще можно скачать ((http://www.download.com/AIDA32/3000-2094_4-10129233.html здесь)), 3.2 МБ
----
Из этого неполного списка утилит каждый может выбрать подходящий инструмент. Обсудить статью приглашаю ((http://forum.compowiki.info/index.php?showtopic=701 на форум)).
((/Abram4 Abram4)) /27.09.2008 21:16/
----
Дополнительно :
[[http://forum.ru-board.com/topic.cgi?forum=8&topic=7077&start=40 Ru.Board - Скорость сети / Скорость интернета]]
[[http://www.thg.ru/network/gigabit_ethernet/print.html Gigabit Ethernet в домашней сети: переходить или нет?]]
[[http://bog.pp.ru/work/network_performance.html#pathrate Bog BOS: Производительность сети и её измерение: ping, traceroute, netperf, iperf, pathrate, pathload, abget]]
----
>>++**Прочитано {{hits}} раз**++<<