Опубликован: 26.07.2011 | Уровень: для всех | Доступ: свободно
Лекция 7:

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

< Лекция 6 || Лекция 7: 12 || Лекция 8 >

Тестирование производительности сети с помощью утилиты iperf

Утилита iperf является простейшим средством для тестирования пропускной способности между двумя сетевыми узлами. Iperf представляет собой генератор TCP/UDP трафика и имеет клиент-серверную архитектуру [ 34 ] .

Для установки данной утилиты из репозиториев Debian:

# apt-get install iperf

Для тестирования сетевого соединения на одном из узлов iperf,следует запустить в режиме сервера (ключ -s ):

# iperf -s

а на другом — в режиме клиента (ключ -c с указанием адреса сервера):

$ iperf -c 192.168.1.12
$ iperf -c 192.168.1.12 
------------------------------------------------------------
Client connecting to 192.168.1.12, TCP port 5001
TCP window size: 16.0 KByte (default)
------------------------------------------------------------
[  3] local 192.168.1.3 port 51670 connected with 192.168.1.12 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.0 sec  85.4 MBytes  71.6 Mbits/sec
Листинг 7.4. Результат работы клиента iperf

По умолчанию iperf использует протокол TCP. Для использования протокола UDP следует указать ключ -u. Более подробную информацию о параметрах iperf можно получить в руководстве пользователя ( man iperf ).

Примечание. Результаты работы iperf могут зависеть не только от пропускной способности канала передачи. Например, производительности узла может быть недостаточно для генерации трафика, полностью нагружающего канал; во время тестирования канал может использоваться другими сетевыми приложениями; параметры стека TCP/IP на узле могут быть не настроены оптимально и т.д.

Протоколы прикладного уровня

Прикладные протоколы обеспечивают доступ к прикладным сетевым сервисам и службам. Сетевые службы предоставляют пользователям определенные информационные услуги и обычно имеют клиент-серверную архитектуру (реже распределенную). Клиент и сервер в рамках прикладного протокола обмениваются стандартными сообщениями (часто текстового формата) [ 7 ] .

Наиболее известные прикладные протоколы:

  • HTTP - протокол передачи гипертекста (основное средство передачи WEB-контента).
  • Почтовые протоколы SMTP (для отправки почтовых сообщений и взаимодействия почтовых серверов), POP3 и IMAP (для доступа к почтовым ящикам).
  • Протокол FTP (для обмена файлами).
  • DNS — протокол взаимодействия с серверами DNS и т.д.

Многие протоколы прикладного уровня имеют защищенные версии, позволяющие шифровать передаваемую информацию между клиентом и сервером, а также идентифицировать участников сетевого взаимодействия ( SSL и TLS ).

Для задачи диагностики прикладных протоколов полезна утилита telnet, которая обычно присутствует в современных дистрибутивах Linux и позволяет пользователю взаимодействовать с текст-ориентированными TCP -сервисами средствами интерфейса командной строки.

Примечание. Telnet — сетевой протокол, реализующий текстовый интерфейс взаимодействия поверх TCP/IP ; ранее применялся для получения удаленного доступа к интерфейсу командной строки; используется для реализации текст-ориентированных протоколов взаимодействия.

Установка утилиты telnet:

# apt-get install telnet

Основными параметрами telnet выступают имя или адрес сервера и порт.

# telnet 192.168.1.10 110
Trying 192.168.1.10...
Connected to 192.168.1.10
Escape character is '^]'.
+OK test.local Zimbra POP3 server ready
user testuser
+OK hello testuser, please enter your password
pass testpassword
+OK server ready
list
+OK 6 messages
1 4763
2 7581
3 3348
4 4449
5 2437
6 3350

quit
+OK test.local closing connection
Connection closed by foreign host.

В данном примере с помощью утилиты telnet осуществляется подключение по протоколу POP3 к почтовому серверу (192.168.1.10), слушающему на 110 порту. Клиент передает команды, завершая их переводом строки ( user, pass, list, quit ), а сервер каждую команду выполняет. Прикладной протокол POP3 используется клиентом для работы с почтовым ящиком на сервере; как видно из примера является диалоговым текст-ориентированным протоколом.

Используя telnet можно работать с такими текст-ориентированными протоколами как HTTP, POP3, SMTP и т. д. Можно также просто проверять наличие службы на данном порту без знания непосредственно синтаксиса протокола.

Ключевые термины

Порт — номер, используемый для идентификации канала передачи приложения, работающего по данному протоколу транспортного уровня.

Сокетоконечная точка канала связи, с помощью которой приложение может использовать сетевое подключение (пара IP-адрес:порт однозначно определяющая сетевой процесс).

ТСP (Transmission Control Protocol) — протокол транспортного уровня с установлением соединения, управлением потоком передачи и гарантированной доставкой данных.

UDP (User Datagram Protocol) — протокол транспортного уровня без установления соединения и не гарантирующий доставку.

Сегменты — единицы передачи протокола TCP.

Датаграммы — единицы передачи протокола UDP.

Клиент-серверная архитектура — подход к организации информационной системы, при котором сетевая нагрузка распределены между сервером (поставщиком услуг) клиентом (потребителем услуг).

HTTP (HyperText Transfer Protocol) - прикладной протокол передачи WEB-контента.

SMTP (Simple Mail Transfer Protocol) — прикладной почтовый протокол, используемый для отправки сообщений электронной почты и взаимодействия серверов электронной почты друг с другом.

POP3 (Post Office Protocol Version 3) — прикладной почтовый протокол, используемый программой-клиентом электронной почты для получения корреспонденции с сервера.

IMAP (Internet Message Access Protocol) — протокол прикладного уровня для доступа к электронной почте с расширенными возможностями.

FTP (File Transfer Protocol) — прикладной протокол, используемый для передачи файлов

SSL (Secure Sockets Layer) - криптографический протокол обеспечивающий защищенное соединение между клиентом и сервером.

TLS (Transport Layer Security) — открытая версия протокола SSL.

Краткие итоги

  1. Протоколы транспортного уровня реализуют разделение потоков данных между приложениями на одном компьютере с помощью портов. Нумерации портов различных протоколов транспортного уровня не пересекаются. Номера портов записываются в заголовок единицы передачи соответствующего транспортного протокола.
  2. Поверх IP используются два транспортных протокола: TCP (для надежной доставки) и UDP (для " быстрой" доставки).
  3. Утилиты ss и netstat позволяют получить различную информацию об активных сетевых соединениях и открытых портах.
  4. Утилита IPTraf позволяет в " режиме реального времени" получать информацию о работе сети и взаимодействии систем друг с другом.
  5. Для тестирования полосы пропускания канала связи между двумя системами можно использовать утилиту iperf.
  6. Большинство протоколов прикладного уровня являются текст-ориентированными (взаимодействующие системы обмениваются текстовыми сообщениями друг с другом).

Упражнения

  1. (требуется Windows -совместимая ОС). Используя утилиту netstat Windows определите, какие TCP и UDP -порты открыты на Вашем компьютере.
  2. В среде VirtualBox запустите две виртуальные машины с установленным Debian GNU\Linux с одной сетевой картой у каждой, настроенной на тип сетевого подключения "Внутренняя сеть". Установите на виртуальных машинах IP-адреса из одной подсети. Используя утилиту iperf, протестируйте пропускную способность виртуальной сети VirtualBox.
  3. Некоторая сетевая TCP -служба не запускается в системе с Linux.

Укажите более вероятную причину:

  1. Описание порта, который использует служба, отсутствует в файле /etc/services.
  2. Порт занят другим приложением.
< Лекция 6 || Лекция 7: 12 || Лекция 8 >
Нияз Сабиров
Нияз Сабиров

Здравствуйте. А уточните, пожалуйста, по какой причине стоимость изменилась? Была стоимость в 1 рубль, стала в 9900 рублей.

Елена Сапегова
Елена Сапегова

для получения диплома нужно ли кроме теоретической части еще и практическую делать? написание самого диплома требуется?

Сергей Пархоменко
Сергей Пархоменко
Россия, Ростов-на-Дону, ЮФУ (ДГТУ), 2008