Описание команды NETSTAT (статистика активных подключений TCP). Обеспечение безопасности локальной сети


Рис. 19.12.

Чтобы вывести все активные подключения TCP и прослушиваемые компьютером порты TCP / UDP введите команду netstat ( рис. 19.13). Мы видим Локального адреса (это ваш ПК) прослушиваются 6 портов. Они нужны для поддержки сети. На двух портах мы видим режим ESTABLISHED - соединения установлены, т.е. сетевые службы работают (используются). Четыре порта используются в режиме TIME_WAIT - соединение ожидает разрыва.


Рис. 19.13.

Запустите на вашем ПК Интернет и зайдите, например на www.yandex.ru . Снова выполните команду netstat ( рис. 19.14). Как видим, добавилось несколько новых активных портов с их различными состояниями.


Рис. 19.14.

Команда netstat имеет следующие опции – табл. 10.1 .

Таблица 19.1. Ключи для команды netstat
Опция (ключ) Назначение
-a Показывать состояние всех сокетов; обычно сокеты, используемые серверными процессами, не показываются.
-A Показывать адреса любых управляющих блоков протокола, связанных с сокетами; используется для отладки.
-i Показывать состояние автоматически сконфигурированных (auto-configured) интерфейсов. Интерфейсы, статически сконфигурированные в системе, но не найденные во время загрузки, не показываются.
-n Показывать сетевые адреса как числа. netstat обычно показывает адреса как символы. Эту опцию можно использовать с любым форматом показа.
-r Показать таблицы маршрутизации. При использовании с опцией -s, показывает статистику маршрутизации.
-s Показать статистическую информацию по протоколам. При использовании с опцией -r, показывает статистику маршрутизации.
-f семейство_адресов Ограничить показ статистики или адресов управляющих блоков только указанным семейством_адресов, в качестве которого можно указывать:

inet Для семейства адресов AF_INET ,

или unix Для семейства адресов AF_UNIX .

-I интерфейс Выделить информацию об указанном интерфейсе в отдельный столбец; по умолчанию (для третьей формы команды) используется интерфейс с наибольшим объёмом переданной информации с момента последней перезагрузки системы. В качестве интерфейса можно указывать любой из интерфейсов, перечисленных в файле конфигурации системы, например, emd1 или lo0.
-p Отобразить идентификатор/название процесса создавшего сокет (-p, --programs display PID/Program name for sockets )

Программа NetStat Agent

Представьте ситуацию: ваше Интернет -соединение стало работать медленно, компьютер постоянно что-то качает из Сети. Вам поможет программа NetStat Agent . С ее помощью вы сможете найти причину проблемы и заблокировать ее. Иначе говоря, NetStat Agent - полезный набор инструментов для мониторинга Интернет соединений и диагностики сети. Программа позволяет отслеживать TCP и UDP соединения на ПК, закрывать нежелательные соединения, завершать процессы, обновлять и освобождать DHCP настройки адаптера, просматривать сетевую статистику для адаптеров и TCP / IP протоколов, а также строить графики для команд Ping и TraceRoute ( рис. 19.15).


Рис. 19.15.

В состав программы NetStat Agent вошли следующие утилиты:

  • NetStat - отслеживает TCP и UDP соединения ПК (при этом отображается географическое местоположение удаленного сервера и имя хоста).
  • IPConfig - отображает свойства сетевых адаптеров и конфигурацию сети.
  • Ping - позволяет проверить доступность хоста в сети.
  • TraceRoute - определяет маршрут между вашим компьютером и конечным хостом, сообщая все IP-адреса маршрутизаторов.
  • DNS Query - подключается к DNS серверу и находит всю информацию о домене (IP адрес сервера, MX-записи (Mail Exchange) и др.).
  • Route - отображает и позволяет изменять IP маршруты на ПК.
  • ARP - отслеживает ARP изменения в локальной таблице.
  • Whois - позволяет получить всю доступную информацию об IP-адресе или домене.
  • HTTP Checker - помогает проверить, доступны ли Ваши веб-сайты.
  • Statistics - показывает статистику сетевых интерфейсов и TCP/IP протоколов.

Сканер портов Nmap (Zenmap)

Nmap - популярный сканер портов, который обследует сеть и проводит аудит защиты. Использовался в фильме " Матрица : Перезагрузка" при взломе компьютера. Наша задача не взломать, а защитить ПК, поскольку одно и то же оружие можно использовать как для защиты, так и для нападения. Иначе говоря, сканером портов nmap можно определить открытые порты компьютера, а для безопасности сети пользователям рекомендуется закрыть доступ к этим портам с помощью брандмауэра ( рис. 19.16).


Рис. 19.16.

Обычно для того, чтобы просканировать все порты какого-либо компьютера в сети вводится команда nmap –p1-65535 IP-адрес_ компьютера или nmap –sV IP-адрес компьютера, а для сканирования сайта - команда nmap –sS –sV –O -P0 адрес сайта.

Монитор портов TCPView

TCPView - показывает все процессы, использующие Интернет -соединения. Запустив TCPView , можно узнать, какой порт открыт и какое приложение его использует, а при необходимости и немедленно разорвать соединение –

Всем привет ранее я начал рассказ про сетевые утилиты системного администратора в статье "Утилита pathping или как диагностировать проблему на маршруте до сайта. Сетевые утилиты 3 часть ", движемся дальше и разбираем еще одну утилиту netstat или, как определить какие порты слушает ваш компьютер. Данная программка, будет не заменимым инструментом в багаже софта, любого системного инженера, поможет ему провести быструю диагностику ситуации и обнаружить ряд всевозможных проблем с сервисами и их доступностью.

Команды netstat

Netstat - Отображение активных подключений TCP , портов, прослушиваемых компьютером, статистики Ethernet, таблицы маршрутизации IP, статистики IPv4 (для протоколов IP, ICMP, TCP и UDP) и IPv6 (для протоколов IPv6, ICMPv6, TCP через IPv6 и UDP через IPv6)

Представим ситуацию вы установили например MSM LSI утилиту для просмотра параметров RAID контроллера, запускаете утилиту, но ничего она не находит, потому что закрыт порт а какой вы не в курсе, и не всегда в инете можно быстро найти информацию об этом, для этого вы и может запустить netstat и посмотреть какой порт слушает ваш сервер с MSM процессом.

Открываем командную строку Windows и вводим netstat ?. У вас выскочит справка утилиты.

C:\Users\sem>netstat ?

Отображение статистики протокола и текущих сетевых подключений TCP/IP.

NETSTAT [-a] [-b] [-e] [-f] [-n] [-o] [-p протокол] [-r] [-s] [-x] [-t]
[интервал]

  • -a Отображение всех подключений и портов прослушивания.
  • -b Отображение исполняемого файла, участвующего в создании
  • каждого подключения или порта прослушивания. Иногда известные исполняемые файлы содержат множество независимых компонентов. Тогда отображается последовательность компонентов, участвующих в создании подключения или порта прослушивания. В этом случае имя исполняемого файла находится снизу в скобках , сверху находится вызванный им компонент, и так до тех пор, пока не достигнут TCP/IP. Заметьте, что такой подход может занять много времени и требует достаточных разрешений.
  • -e Отображение статистики Ethernet. Может применяться вместе с параметром -s.
  • -f Отображение полного имени домена () для внешних адресов.
  • -n Отображение адресов и номеров портов в числовом формате.
  • -o Отображение ИД процесса каждого подключения.
  • -p протокол Отображение подключений для протокола, задаваемых этим параметром. Допустимые значения: TCP, UDP, TCPv6 или UDPv6. Если используется вместе с параметром -s для отображения статистики по протоколам, допустимы следующие значения: IP, IPv6, ICMP, ICMPv6, TCP, TCPv6, UDP или UDPv6.
  • -r Отображение содержимого таблицы маршрутов.
  • -s Отображение статистики по протоколам. По умолчанию статистика отображается для протоколов IP, IPv6, ICMP, ICMPv6, TCP, TCPv6, UDP и UDPv6. Параметр -p позволяет указать подмножество выводимых данных.
  • -t Отображение состояния разгрузки для текущего подключения.
  • -x Отображение подключений, прослушивателей и общих конечных точек NetworkDirect.
  • -y Отображение шаблона подключений TCP для всех подключений. Не может использоваться вместе с другими параметрами. interval Повторное отображение выбранной статистики с паузой между отображениями, заданной интервалом в секундах. Чтобы прекратить повторное отображение статистики, нажмите клавиши CTRL+C. Если этот параметр опущен, netstat напечатает текущую информацию о конфигурации один раз.

Давайте посмотрим интересные ключи утилиты netstat. Первое что вводим

и у нас на экране появится статистика сетевых пакетов ethernet.

Если добавим ключ -s то получим статистику по протоколам.

Очень полезно посмотреть все что слушает ваш хост для этого пишем

Вывод команды содержит Тип протокола либо TCP либо UDP, локальный адрес с портом который слушается и внешний адрес с портом и состояние действия.

Для полного понимания информации, предоставляемой этой командой, необходимо понять принципы установки соединения в протоколе TCP/IP. Вот основные этапы процесса установки соединения TCP/IP:

1. При попытке установить соединение клиент отправляет сообщение SYN серверу.

2. Сервер отвечает собственным сообщением SYN и подтверждением (ACK).

3. После этого клиент отправляет сообщение ACK обратно на сервер, завершая процесс установки соединения.

Процесс разрыва соединения состоит из следующих этапов:

1. Клиент сообщает "Я закончил", отправляя сообщение FIN серверу. На этом этапе клиент только принимает данные от сервера, но сам ничего не отправляет.

2. После этого сервер отправляет сообщение ACK и отправляет собственное сообщение FIN клиенту.

3. После этого клиент отправляет сообщение ACK серверу, подтверждая запрос сервера FIN.

4. При получении сообщения ACK от клиента сервер закрывает соединение.

Понимание этапов процесса установки и разрыва соединения позволяет более прозрачно интерпретировать состояния соединений в выводе команды netstat. Соединения в списке могут находиться в следующих состояниях.

  • CLOSE_WAIT - указывает на пассивную фазу закрытия соединения, которая начинается после получения сервером сообщения FIN от клиента.
  • CLOSED - соединение прервано и закрыто сервером.
  • ESTABLISHED - клиент установил соединение с сервером, получив от сервера сообщение SYN.
  • FIN_WAIT_1 - клиент инициировал закрытие соединения (отправил сообщение FIN).
  • FIN_WAIT_2 - клиент получил сообщения ACK и FIN от сервера.
  • LAST_ACK - сервер отправил сообщение FIN клиенту.
  • LISTEN - сервер готов принимать входящие соединения.
  • SYN_RECEIVED - сервер получил сообщение SYN от клиента и отправил ему ответ.
  • TIMED_WAIT - клиент отправил сообщение FIN серверу и ожидает ответа на это сообщение.
  • YN_SEND - указанное соединение активно и открыто.

Если добавить ключ -f то будут разрешаться имена удаленных внешних ресурсов

Данная статья будет, в какой-то мере, посвящена безопасности. У меня недавно возникла мысль, а как проверить, какие приложение используют интернет соединение, куда может утекать трафик, через какие адреса идет соединение и многое другое. Есть пользователи, которые также задаются этим вопросом.

Допустим у вас есть точка доступа, к которой подключены только вы, но вы замечаете, что скорость соединения какая-то низкая, звоните провайдеру, они отмечают, что все нормально или что-то подобное. А вдруг к вашей сети кто-то подключен? Можно попробовать с помощью методов из этой статьи узнать, какие программы, которые требуют Интернет-соединения он использует. А вообще, вы можете использовать эти методы, как душе угодно.

Ну что, давайте анализировать?

Команда netstat для анализа сетевой активности

Этот способ без использования всяких программ, нам лишь понадобится командная строка. В Windows есть специальная утилита netstat, которая занимается анализом сетей, давайте использовать ее.

Желательно, чтобы командная строка была запущена от имени администратора. В Windows 10 можно нажать на меню Пуск правой кнопкой мыши и выбрать соответствующий пункт.

В командной строке вводим команду netstat и видим много интересной информации:


Мы видим соединения, в том числе, их порты, адреса, соединения активные и ожидающиеся. Это конечно круто, но нам этого мало. Нам бы узнать, какая программа использует сеть, для этого вместе с командной netstat можно использовать параметр –b, тогда команда будет выглядеть так:

netstat –b

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


Это не единственный параметр в этой команде, для отображения полного списка введите команду netstat –h .


Но, как показывает практика, многие утилиты командной строки не дают той информации, которой хотелось бы видеть, да и не так это удобно. В качестве альтернативы мы будем использовать стороннее программное обеспечение – TCPView.

Мониторинг сетевой активности с помощью TCPView

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

Итак, утилита TCPView занимается мониторингом сетей и показывает в виде списка все подключенные к сети программы, порты, адреса и соединения.


В принципе тут все предельно ясно, но некоторые пункты программы я поясню:

  • Столбец Process , ясное дело, показывает название программы или процесса.
  • Столбец PID указывает на идентификатор подключенного к сети процесса.
  • Столбец Protocol указывает на протокол процесса.
  • Столбец Local adress – локальный адрес процесса данного компьютера.
  • Столбец Local port – локальный порт.
  • Столбец Remote adress указывает на адрес, к которому подключена программа.
  • Столбец State – указывает на состояние соединения.
  • Там, где указано Sent Packets и Rcvd Packets указывает на отправленное и полученное количество пакетов, тоже самое и со столбцами Bytes .

Еще с помощью программы можно нажать на процесс правой кнопкой мыши и завершить его, либо посмотреть, где он находится.

Названия адреса, как показано на изображении ниже можно преобразовать в локальный адрес, для этого нужно нажать горячие клавиши Ctrl+R .



С другими параметрами тоже произойдет изменение – с протоколами и доменами.

Если вы увидите строки разного цвета, например, зеленого, то это означает запуск нового соединения, если покажется красный цвет, то соединение завершено.

Вот и все основные настройки программы, там еще есть мелки параметры, типа настройки шрифта и сохранения списка соединения.

Если вам понравилась эта программа, то обязательно используйте ее. Опытные пользователи точно найдут для каких целей применить ее.

    Команда NETSTAT предназначена для получения сведений о состоянии сетевых соединений и слушаемых на данном компьютере портах TCP и UDP, а также, для отображения статистических данных по сетевым интерфейсам и протоколам.

Формат командной строки:

NETSTAT [-a] [-b] [-e] [-f] [-n] [-o] [-p протокол] [-r] [-s] [-t] [интервал]

Параметры командной строки:

-a - Отображение всех подключений и ожидающих портов.
-b - Отображение исполняемого файла, участвующего в создании каждого подключения, или ожидающего порта. Иногда известные исполняемые файлы содержат множественные независимые компоненты. Тогда отображается последовательность компонентов, участвующих в создании подключения, либо ожидающий порт. В этом случае имя исполняемого файла находится снизу в скобках , сверху - компонент, который им вызывается, и так до тех пор, пока не достигается TCP/IP. Заметьте, что такой подход может занять много времени и требует достаточных разрешений.
-e - Отображение статистики Ethernet. Может применяться вместе с параметром -s.
-f - Отображение полного имени домена (FQDN) для внешних адресов.
-n - Отображение адресов и номеров портов в числовом формате.
-o - Отображение кода (ID) процесса каждого подключения.
-p протокол - Отображение подключений для протокола, задаваемых этим параметром. Допустимые значения: TCP, UDP, TCPv6 или UDPv6. Используется вместе с параметром -s для отображения статистики по протоколам. Допустимые значения: IP, IPv6, ICMP, ICMPv6, TCP, TCPv6, UDP или UDPv6.
-r - Отображение содержимого таблицы маршрутов.
-s - Отображение статистики протокола. По умолчанию статистика отображается для протоколов IP, IPv6, ICMP, ICMPv6, TCP, TCPv6, UDP и UDPv6. Параметр -p позволяет указать подмножество выводимых данных.
-t - Отображение текущего подключения в состоянии переноса нагрузки с процессора на сетевой адаптер при передаче данных ("offload").
-v - Подробный вывод информации, если это возможно.
интервал - Повторный вывод статистических данных через указанный интервал в секундах. Для прекращения вывода данных нажмите клавиши CTRL+C. Если параметр не задан, сведения о текущей конфигурации выводятся один раз.

На практике, утилиту netstat.exe удобно использовать в цепочке с командами постраничного вывода (more ), перенаправления стандартного вывода в файл ( > ) и поиска текста в результатах вывода (find ).

netstat -a | more - отобразить все соединения в постраничном режиме вывода на экран.

netstat -a -n| more - то же, что и в предыдущем примере, но с отображением номеров портов и IP-адресов в числовом формате. В отличие от предыдущего примера, команда netstat с параметром -t отрабатывает намного быстрее.

netstat -a -f | more - то же, что и в предыдущем примере, но с отображением полных DNS-имен узлов, участвующих в соединениии.

netstat -a > C:\netstatall.txt - отобразить все соединения с записью результатов в файл C:\netstatall.txt.

netstat -a | find /I "LISTENING" - отобразить все соединения со статусом LISTENING, т.е. отобразить список сетевых интерфейсов и портов, ожидающих входящие соединения ("слушаемых" портов). Ключ /I в команде find указывает, что при поиске текста, не нужно учитывать регистр символов.

netstat -a | find /I "listening" > C:\listening.txt - отобразить все соединения со статусом LISTENING с записью результатов в файл C:\listening.txt.

Пример отображаемой информации:

Активные подключения

Имя - название протокола.

Локальный адрес - локальный IP-адрес участвующий в соединении или связанный со службой, ожидающей входящие соединения (слушающей порт). Если в качестве адреса отображается 0.0.0.0 , то это означает - "любой адрес", т.е в соединении могут использоваться все IP-адреса существующие на данном компьютере. Адрес 127.0.0.1 - это петлевой интерфейс, используемый в качестве средства IP протокола для взаимодействия между процессами без реальной передачи данных.

Внешний адрес Внешний IP-адрес, участвующий в создании соединения.

Состояние - состояние соединения. Состояние Listening говорит о том, что строка состояния отображает информацию о сетевой службе, ожидающей входящие соединения по соответствующему протоколу на адрес и порт, отображаемые в колонке "Локальный адрес ". Состояние ESTABLISHED указывает на активное соединение. В колонке "Состояние" для соединений по протоколу TCP может отображаться текущий этап TCP-сессии определяемый по обработке значений флагов в заголовке TCP - пакета (Syn, Ask, Fin ...). Возможные состояния:

CLOSE_WAIT - ожидание закрытия соединения.
CLOSED - соединение закрыто.
ESTABLISHED - соединение установлено.
LISTENING - ожидается соединение (слушается порт)
TIME_WAIT - превышение времени ответа.

Имя программного модуля, связанного с данным соединением отображается, если задан параметр -b в командной строке при запуске netstat.exe.

netstat -a -b - получить список всех сетевых соединений и связанных с ними программ.

TCP 192.168.0.3:3389 89.22.52.11:5779 ESTABLISHED
CryptSvc

В данном примере отображается информация о соединении, в создании которого участвуют программные компоненты CryptSvc и svchost.exe .

netstat -ab - параметры командной строки можно объединять. Параметр -ab эквивалентен -a -b

netstat -e - получить статистические данные для обмена по протоколу Ethernet. Отображается суммарные значения принятых и полученных байт для всех сетевых адаптеров Ethernet.

Статистика интерфейса

netstat -e -v - кроме суммарной статистики, отображается информация об обмене данными через отдельные сетевые интерфейсы.

netstat -e -s - дополнительно к статистике Ethernet, отображается статистика для протоколов IP , ICMP , TCP , UDP

Статистика интерфейса

Статистика IPv4

Получено пакетов
Получено ошибок в заголовках
Получено ошибок в адресах
Направлено датаграмм

Отброшено полученных пакетов

Запросов на вывод
Отброшено маршрутов
Отброшено выходных пакетов

Требуется сборка
Успешная сборка
Сбоев при сборке


Создано фрагментов
= 10877781
= 0
= 27307
= 0
= 0
= 448
= 11384479
= 11919871
= 0
= 1517
= 6
= 0
= 0
= 0
= 5918
= 0
= 11836

Статистика IPv6

Получено пакетов
Получено ошибок в заголовках
Получено ошибок в адресах
Направлено датаграмм
Получено неизвестных протоколов
Отброшено полученных пакетов
Доставлено полученных пакетов
Запросов на вывод
Отброшено маршрутов
Отброшено выходных пакетов
Выходных пакетов без маршрута
Требуется сборка
Успешная сборка
Сбоев при сборке
Успешно фрагментировано датаграмм
Сбоев при фрагментации датаграмм
Создано фрагментов
= 0
= 0
= 0
= 0
= 0
= 0
= 391
= 921
= 0
= 0
= 14
= 0
= 0
= 0
= 0
= 0
= 0

Статистика ICMPv4

ICMPv6 Статистика

Статистика TCP для IPv4

Статистика TCP для IPv6

Статистика UDP для IPv4

Статистика UDP для IPv6

netstat -s -p icmp - получить статистику только по протоколу ICMP

Пример отображаемых статистических данных:

Статистика ICMPv4

Для циклического опроса состояния сетевых соединений используется запуск программы с указанием интервала вывода статистических данных в секундах.

netstat -e 3 - отображать статистику по Ethernet с интервалом 3 секунды.

netstat –f 10 - каждые 10 секунд отображать статистику сетевых соединений с использованием полных DNS-имен узлов.

netstat -n 5 | find /i "Established" - каждые 5 секунд отображать статистику по установленным соединениям.

Лабораторная работа № 03-005

Сетевая утилита netstat. Принципы работы и использование.

Утилита отображает активные и прослушиваемые порты TCP, статистики Ethernet, таблицы маршрутизации IP, статистики IPv4 (для протоколов IP, ICMP, TCP и UDP) и IPv6 (для протоколов IPv6, ICMPv6, TCP через IPv6 и UDP через IPv6). Запущенная без параметров, команда netstat отображает активные подключения TCP.

Синтаксис:

netstat [-a ] [-e ] [-n ] [-o ] [-p протокол ] [-r ] [-s ] [интервал ].

Параметры:

-a вывод всех активных подключений TCP и прослушиваемых компьютером портов TCP и UDP;

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

-e вывод статистики Ethernet, например количества отправленных и принятых байтов и пакетов. Этот параметр может комбинироваться с ключом -s ;

-n вывод активных подключений TCP с отображением адресов и номеров портов в числовом формате без попыток определения имен;

-o вывод активных подключений TCP и включение кода процесса (PID) для каждого подключения. Код процесса позволяет найти приложение на вкладке Процессы диспетчера задач Windows. Этот параметр может комбинироваться с ключами -a , -n и -p ;

-p протокол вывод подключений для протокола, указанного параметром протокол . В этом случае параметр протокол может принимать значения tcp , udp , tcpv6 или udpv6 . Если данный параметр используется с ключом -s для вывода статистики по протоколу, параметр протокол может иметь значение tcp , udp , icmp , ip , tcpv6 , udpv6 , icmpv6 или ipv6 ;

-r вывод содержимого таблицы маршрутизации IP. Эта команда эквивалентна команде route print ;

-s вывод статистики по протоколу. По умолчанию выводится статистика для протоколов TCP, UDP, ICMP и IP. Если установлен протокол IPv6 для Windows XP, отображается статистика для протоколов TCP через IPv6, UDP через IPv6, ICMPv6 и IPv6. Параметр -p может использоваться для указания набора протоколов;

- v используется вместе с параметром b для отображения последовательности программных компонент, участвующих в создании сокета

интервал задаёт обновление выбранных данных с интервалом, определенным параметром интервал (в секундах). Нажатие клавиш CTRL+C останавливает обновление. Если этот параметр пропущен, netstat выводит выбранные данные только один раз.

/? о тображение справки в командной строке.

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

Обслуживание коммуникационных потребностей прикладных процессов осуществляет транспортный уровень стека протоколов, реализуемый программно в ядре операционной системы, в виде отдельного пользовательского процесса или в форме библиотечного модуля, загружаемого сетевым приложением. Пакеты, поступающие на транспортный уровень, организуются операционной системой в виде множества очередей к точкам входа различных прикладных процессов. В терминологии TCP/IP такие системные очереди называются портами . Порт - это программное понятие, которое используется клиентом или сервером для посылки или приема сообщений; порт идентифицируется 16-битовым числом. Таким образом, адресом назначения, который используется транспортным объектом, является идентификатор (номер) порта прикладной службы. Номер порта в совокупности с номером сети и номером конечного узла однозначно определяют прикладной процесс в сети. Этот набор идентифицирующих параметров имеет название сокет (socket) .

Назначение номеров портов прикладным процессам осуществляется либо централизованно , если эти процессы представляют собой популярные общедоступные службы (например, номер 21 закреплен за службой удаленного доступа к файлам FTP, a 23 - за службой удаленного управления telnet), либо локально для тех служб, которые еще не стали столь распространенными, чтобы закреплять за ними стандартные (зарезервированные) номера. Централизованное присвоение службам номеров портов выполняется организацией Internet Assigned Numbers Authority (IANA) . Эти номера затем закрепляются и опубликовываются в стандартах Internet .

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

Инициирующий соединение клиент, прежде чем пытаться установить соединение с удаленным сервером-приложением, запрашивает у своей ОС номер свободного порта. Порты с номерами 0 -1023 принято называть привилегированными, они практически все зарезервированы и не выделяются клиентским процессам. Это не означает, что не существует закрепленных номеров портов с большими номерами, но они используются гораздо реже и будучи свободными на данном хосте, вполне могут предоставляться в распоряжение программы-клиента.

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

TCP (Transmission Control Protocol) предоставляет основанный на соединении надежный сервис потока байтов. Он применяется в тех случаях, когда требуется гарантированная доставка сообщений. Он использует контрольные суммы пакетов для проверки их целостности и освобождает прикладные процессы от необходимости таймаутов и повторных передач для обеспечения надежности.

Термин "основанный на соединении" (connection-oriented) означает, что два приложения, использующие TCP (как правило, это клиент и сервер), должны установить TCP соединение друг с другом, после чего у них появляется возможность обмениваться данными.

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

Этапы, необходимые для установки и разрыва TCP соединения, могут быть представ-

лены в виде модели, имеющей 11 возможных состояний:

Состояние Описание

CLOSED Закрыто. Соединение не является активным и не находится в процессе установки

LISTEN Ожидание. Сервер ожидает входящего запроса

SYN RCVD Прибыл запрос соединения. Ожидание подтверждения

SYN SENT Запрос соединения послан. Приложение начало открывать соединение

ESTABLISHED Установлено. Нормальное состояние передачи данных

FINWAIT 1 Приложение сообщило, что ему больше нечего передавать

FINWAIT 2 Другая сторона согласна разорвать соединение

TIMED WAIT Ожидание, пока в сети не исчезнут все пакеты

CLOSING Обе стороны попытались одновременно закрыть соединение

CLOSE WAIT Другая сторона инициировала разъединение

LAST АСК Ожидание, пока в сети не исчезнут все пакеты

В каждом из этих состояний могут происходить разрешенные и запрещенные события. В ответ на какое-либо разрешенное событие может осуществляться определенное действие. При возникновении запрещенных событий сообщается об ошибке.

Каждое соединение начинается в состоянии CLOSED (закрытое). Оно может выйти из этого состояния, предпринимая либо активную (CONNECT), либо пассивную (LISTEN) попытку открыть соединение. Если противоположная сторона осуществляет противоположные действия, соединение устанавливается и переходит в состояние ESTABLISHED. Инициатором разрыва соединения может выступить любая сторона. По завершении процесса разъединения соединение возвращается в состояние CLOSED.

Вопросы для самопроверки

    Порт как элемент адресации транспортного уровня. Сокет.

    Локально и централизованно назначаемые порты.

    Основные протоколы транспортного уровня стека TCP/IP. Их краткая характеристика.

    Сопоставление сетевых подключений с процессами, функционирующими на компьютере.

    Параметры утилиты netstat.

Необходимое оборудование

IBM PC - совместимая ЭВМ с лицензионной операционной системой Windows, подключение к локальной сети, выход в интернет.

Задания

Перед началом выполнения заданий перезагрузите компьютер и не запускайте никаких приложений.

1. Воспользовавшись командой netstat просмотрите статистику работы Ethernet - подключения.

2. Воспользовавшись командой netstat просмотрите статистику работы сетевых протоколов.

3. Воспользовавшись командой netstat просмотрите статистику работы протокола ICMP (в выводе должны присутствовать данные только по этому протоколу).

4. Командой netstat просмотрите список всех подключений TCP и прослушиваемых портов UDP.

5. Запустите браузер и установите соединение с любым сайтом. Повторите предыдущее задания и прокомментируйте результат.

6. С помощью команды netstat определите любые 5 процессов, прослушивающих UDP порты. Укажите наименование процессов и номера прослушиваемых портов.

6. С помощью команды netstat определите активные TCP – подключения, номера их портов и имена исполняемых файлов приложений, использующих эти подключения.

Отчет о выполнении работы представьте в печатной или электронной форме с представлением копий экранов работы утилиты.

  • Сергей Савенков

    какой то “куцый” обзор… как будто спешили куда то