Учебно-методические материалы для студентов кафедры АСОИУ

Учебные программы » Сетевые технологии » Лабораторный практикум

Сетевые сервисы. Понятие сетевого порта. Контроль состояния портов

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

Цель работы: Ознакомиться с основыми сетевыми сервисами и связанными с ними портами. Научиться использовать команду netstat для контроля за состоянием локальных портов.

Задания к выполнению

  1. Запустить netstat в режиме непрерывного вывода. Перенаправить вывод в файл out.txt
  2. Инициировать сетевую активность(открыть несколько веб-сайтов, ftp-узлов, запустить торрент-клиент, клиент IM (например ICQ) и т.п.)
  3. Закрыть соединения
  4. Завершить работу netstat
  5. По данным файла out.txt определить:
    • Какие ip-адреса у серверов, к которым были обращения
    • К каким сервисам были подключения (номера портов и названия сервисов)
    • Какие клиентские порты были задействованы
    • Какие приложения (и их компоненты) были задействованы
    • Общая статистика по транспортным протоколам

Методические указания

Сетевые сервисы и порты приложений

Сетевой порт - это предопределенная приложением или процессом точка подключения сетевых приложений, предоставленная операционной системой узла. Порт связан с сетевым адресом хоста (пример явного указания порта: 192.168.0.1:3128) и используемым протоколом взаимодействия.

В стеке TCP/IP понятие порта возникает на транспортном уровне, где порт представлен в виде 16-битного числа (номера порта). Протоколы TCP и UDP используют номера портов для идентификации компонентов сетевого приложения в рамках локального хоста. В клиент-серверной модели порты используются для мультиплексирования клиентских подключений.

IANA (Internet Assigned Numbers Authority) представляет список сетевых портов, который входит в поставку современных операционных систем в виде текстового файла services (/etc/services). В нем хранится информация о всех зарегистрированных в IANA службах internet, назначенных им номерах портов и типах сетевых протоколов. Фрагмент этого файла приведен в листинге 1. Подробности - в man 5 services.

Листинг 1. Фрагмент файла services

# http://www.iana.org/assignments/port-numbers
# See also: services(5), http://www.sethwklein.net/projects/iana-etc/
http             80/tcp    # World Wide Web HTTP
http             80/udp    # World Wide Web HTTP
www-http         80/tcp    # World Wide Web HTTP
www-http         80/udp    # World Wide Web HTTP
http             80/sctp   # HTTP
http-mgmt       280/tcp    # http-mgmt
http-mgmt       280/udp    # http-mgmt
https           443/tcp    # http protocol over TLS/SSL
https           443/udp    # http protocol over TLS/SSL
https           443/sctp   # HTTPS

Команда netstat

Команда netstat позволяет получить различную информацию о состоянии сетевой подсистемы хоста: статистику сетевых интерфейсов, данные о маршрутизации и сведения о сетевых соединениях. Команда netstat поддерживается всеми операционными системами, использующими стек TCP/IP, но в каждой конкретной реализации могут использоваться разные наборы опций. Список поддерживаемых опций можно получить командой netstat --help (см. листинг).

aag@stilo:~>  netstat --help
Использование: netstat [-veenNcCF] [<Af>] -r netstat {-V|--version|-h|--help}
       netstat [-vnNcaeol] [<Socket> ...]
       netstat { [-veenNac] -i | [-cnNe] -M | -s }

	-r, --route 	отобразить таблицу маршрутизации
	-i, --interfaces 	отобразить таблицу интерфейсов
	-g, --groups 	отобразить членства в мултикаст группах
	-s, --statistics 	отобразить сетевую статистику (как SNMP)
	-M, --masquerade 	отобразить замаскированные соединения

	-v, --verbose 	более детальный вывод
	-n, --numeric 	не преобразовывать адреса в имена
		--numeric-hosts 	не преобразовывать адреса в имена компьютеров
		--numeric-ports 	не преобразовывать номера портов в имена
		--numeric-users 	не преобразовывать в имена пользователей
	-N, --symbolic 	преобразовать имена устройств
	-e, --extend 	отображать другую/больше информации
	-p, --programs 	отображать номер процесса программы/имя программы для сокетов
	-c, --continuous 	непрерывный вывод

	-l, --listening 	отображать прослушиваемые сокеты сервера
	-a, --all, --listening 	отобразить все сокеты (по умолчанию - в статусе connected)
	-o, -timers 	отобразить таймеры
	-F, -fib 	отобразить информацию форвардинга базы (по умолчанию)
	-C, --cache 	отобразить кэш маршрутизации вместо FIB

	<Socket>={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx --netrom
	<AF>=Use '-6|-4' or '-A <af>' or '--<af>'; по умолчанию: inet
	Список возможный адресных семейств (которые поддерживают маршрутизацию):
		inet (DARPA Internet) inet6 (IPv6) ax25 (AMPR AX.25)
		netrom (AMPR NET/ROM) ipx (Novell IPX) ddp (Appletalk DDP)
		x25 (CCITT X.25)

Чаще всего команда netstat применяется для решения таких задач, как:

  • проверка состояния сетевых соединений;
  • анализ информации о конфигурации интерфейсов;
  • изучение таблицы маршрутизации;
  • получение статистики о различных сетевых протоколах.

Пример использования netstat для получения информации об открытых соединениях по протоколу tcp (см. ключи опции Socket):

aag@stilo:~> netstat -t
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 4stud-new.asoi:www-http localhost:37092         TIME_WAIT
tcp        0      0 aag.asoiu:56574         192.168.3.1:ndl-aas     ESTABLISHED
tcp        0      0 aag.asoiu:56552         192.168.3.1:ndl-aas     ESTABLISHED
tcp        0      0 4stud.asoiu:www-http	localhost:37094         TIME_WAIT
tcp        0      0 4stud.asoiu:www-http	localhost:37095         TIME_WAIT
tcp        0      0 4stud.asoiu:www-http	localhost:37093         TIME_WAIT
tcp        0      0 4stud.asoiu:www-http	localhost:37090         TIME_WAIT
tcp        0      0 4stud.asoiu:www-http	localhost:37091         TIME_WAIT
tcp        0      0 aag.asoiu:56576         192.168.3.1:ndl-aas     ESTABLISHED
tcp        0      0 aag.asoiu:56578         192.168.3.1:ndl-aas     ESTABLISHED

Подробное описание см. например «Linux Programmer's Manual» (man 8 netstat).

Контрольные вопросы

Анатольев А.Г., 09.10.2012

Постоянный адрес этой страницы:

↑ В начало страницы