Здравствуйте. А уточните, пожалуйста, по какой причине стоимость изменилась? Была стоимость в 1 рубль, стала в 9900 рублей. |
Транспортный и прикладной уровни модели сетевого взаимодействия.
Содержание:
- Основы транспортного уровня
- Просмотр информации о текущих соединениях и открытых портах в Linux
- Мониторинг сетевых соединений с помощью утилиты IPTraf
- Тестирование производительности сети с помощью утилиты iperf
- Протоколы прикладного уровня
Основы транспортного уровня
Протоколы транспортного уровня [ 7 ] [ 30 ] реализуют разделение потоков данных между приложениями на одном компьютере, таким образом, что несколько приложений могут использовать одно и то же сетевое подключение. Разделение осуществляется с помощью портов ( числовых номеров ). Другими словами, для данного транспортного протокола на данном IP-адресе приложение резервирует порт для сетевого взаимодействия (другое приложение этот порт уже не может использовать). Нумерации портов различных протоколов транспортного уровня не пересекаются.
Взаимодействие между приложениями осуществляется посредством сокетов ( пара IP-адрес:порт ): на каждом из взаимодействующих узлов создается сокет, с которым связаны входной и выходной потоки для передачи данных (рис 7.1).
Информация об используемых портах записывается в заголовок единицы передачи протокола транспортного уровня.
В качестве транспорта для IP используются два протокола:
- Протокол TCP (Transmission Control Protocol) — протокол транспортного уровня с установлением соединения, управлением потоком передачи и гарантированной доставкой данных. Единицы передачи обычно называются сегментами.
- Протокол UDP (User Datagram Protocol) — протокол транспортного уровня без установления соединения (не гарантирует доставку датаграмм — единиц передачи).
За наиболее популярными сетевыми службами номера портов закреплены стандартные значения. В Linux данная информация находится в файле /etc/services (пример 7.1).
$ cat /etc/services | grep "^http\|^ssh\|^www\|^pop3\|^smtp\|^ftp" ftp-data 20/tcp ftp 21/tcp ssh 22/tcp # SSH Remote Login Protocol ssh 22/udp smtp 25/tcp mail www 80/tcp http # WorldWideWeb HTTP www 80/udp # HyperText Transfer Protocol pop3 110/tcp pop-3 # POP version 3 pop3 110/udp pop-3 https 443/tcp # http protocol over TLS/SSL https 443/udp ftps-data 989/tcp # FTP over SSL (data) ftps 990/tcp pop3s 995/tcp # POP-3 over SSL pop3s 995/udp http-alt 8080/tcp webcache # WWW caching service http-alt 8080/udp # WWW caching serviceЛистинг 7.1. Фрагмент файла /etc/services
Содержимое файла /etc/services имеет рекомендательный характер, т. е. администратор системы может использовать нестандартные значения портов для сетевых служб. В Linux порты младше 1024 могут быть задействованы только суперпользователем. Для клиентских подключений используются порты со старшими номерами, выбираемые случайно из незанятых.
Максимальное количество портов, которое может использовать протокол определяется размером соответствующих полей в заголовке транспортного уровня (16 бит для TCP и UDP ).
Просмотр информации о текущих соединениях и открытых портах в Linux
Для получения информации о работе транспортного уровня на узле можно использовать утилиту ss из пакета iproute2 или утилиту netstat.
# ss -4antu Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port udp UNCONN 0 0 *:67 *:* tcp LISTEN 0 128 *:22 *:* tcp ESTAB 0 0 192.168.1.1:55469 192.168.1.10:22 tcp ESTAB 0 0 192.168.56.102:22 192.168.56.1:50405Листинг 7.2. Использование ss для вывода информации о текущих соединениях и открытых портах
В данном примере локальный порт UDP/67 используется некоторой службой на всех IP-адресах узла (первая строка); локальный порт TCP/22 ожидает ( LISTEN ) подключений на всех IP-адресах (вторая строка); с удаленного адреса 192.168.56.1 установлено соединение ( ESTAB ) со службой, использующей локальный порт TCP/22 (последняя строка); с локальной системы также установлено клиентское подключение с удаленной службой на узле 192.168.1.10, использующей удаленный порт TCP/22 (третья строка).
Ключ -4 указывает выводить сведения по протоколу IPv4, -a — выводить всю информацию, -n -выводить узлы и порты в числовом виде; -t — протокол TCP, -u — протокол UDP. Для того, чтобы узнать какие процессы используют сетевые соединения в команде ss следует использовать ключ -p. Ключ -l отображает только слушающие порты. Более подробную информацию о команде ss можно получить на странице руководства ( man ss ).
# netstat -4antu Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN tcp 0 0 192.168.1.1:55469 192.168.1.10:22 ESTABLISHED tcp 0 0 192.168.56.102:22 192.168.56.1:50405 ESTABLISHED udp 0 0 0.0.0.0:67 0.0.0.0:*Листинг 7.3. Использование netstat для вывода информации о текущих соединениях и открытых портах
Используемые в данном примере ключи netstat аналогичны ключам ss в предыдущем примере. Более подробную информацию о команде netstat можно получить на странице руководства ( man netstat ).
Мониторинг сетевых соединений с помощью утилиты IPTraf
Утилита IPTraf представляет собой интерактивное средство отображения постоянно обновляемой сетевой статистики с текстовым интерфейсом на основе библиотеки ncurses [ 31 ] . IPTraf способна отображать различные данные, включая информацию по TCP, счетчики UDP и ICMP, загрузку сети Ethernet, статистику узла и т. д.
Для установки IPTraf из стандартных репозиториев Debian можно использовать команду:
# apt-get install iptraf
Для использования IPTraf необходимы полномочия суперпользователя. IPTraf запускается в интерактивном режиме. После приветственного сообщения при нажатии любой клавиши открывается меню, в котором можно выбрать режим просмотра статистики, установить фильтры или изменить настройки программы.
Доступны следующие режимы просмотра:
- Мoнитор IP-трафика ( IP Traffic Monitor ). Для выбранного интерфейса (всех интерфейсов) включает списки TCP -соединений и статистику по ним, а также монитор UDP -датаграмм.
- Общая статистика интерфейсов ( General interface statistics ). Для каждого интерфейса отображает статистику пакетов.
- Детальная статистика интерфейса ( Detailed interface statistics ). Для выбранного интерфейса отображает количество переданных и полученных единиц передачи (IP-пакетов, TCP -сегментов и UDP -датаграмм и прочих) и объем данных в байтах, а также текущую скорость передачи пакетов и байт, объемы широковещательного трафика и количество ошибок в IP-пакетах.
- Статистический анализ ( Statistical breakdowns ). Для данного интерфейса отображает распределение трафика по размеру пакетов или распределение трафика по портам.
- Монитор станции локальной сети ( LAN station monitor ). Для выбранного интерфейса (всех интерфейсов) показывает статистику уровня сетевых интерфейсов.
Соответствующий режим отображения может быть установлен с помощью параметров, передаваемых IPTraf при старте. Например, для показа детальной статистики интерфейса eth0 (рис 7.2) следует использовать ключ -d:
# iptraf -d eth0
Подробную информацию о ключах можно получить из руководства пользователя ( man iptraf ).