- Лабораторная работа: Утилиты командной строки Windows для работы с сетью
- Лабораторная работа: Утилиты командной строки Windows для работы с сетью
- Подготовительная часть
- Утилита ipconfig
- Утилита ping
- Утилита tracert
- Утилита route
- Утилита arp
- Утилита netstat
- Утилита telnet
- Утилиты командной строки Windows для работы с сетью
- Содержание
- Теория
- Утилита ipconfig
- Утилита ping
- Утилита tracert
- Утилита pathping
- Утилита arp
- Утилита netstat
- Подготовительная часть В начало
Лабораторная работа: Утилиты командной строки Windows для работы с сетью
Лабораторная работа: Утилиты командной строки Windows для работы с сетью
Подготовительная часть
Для проведения данной лабораторной работы необходим компьютер под управлением операционной системы Microsoft Windows 2000, XP или более старшей версии.
Все команды будут выполняться в командном интерпретаторе. Для его запуска необходимо нажать кнопку «Пуск» и выбрать раздел «Выполнить…». В строке ввода указать имя команды:
и нажать кнопку “Ok”. Откроется окно интерпретатора. Команды вводятся с клавиатуры, завершаются вводом “Enter”. Предыдущие команды можно вызвать для редактирования и последующего выполнения с помощью курсорной клавиши «Вверх».
Утилита ipconfig
Данная программа предназначена для получения информации о настройках протокола TCP/IP сетевых интерфейсов ОС Windows. Для получения краткой информации о настройках необходимо выполнить команду ipconfig без параметров.
Выполните команду ipconfig и запишите информацию об IP-адресе, маске сети и шлюзе по умолчанию для сетевого адаптера.
Для получения подробной информации о настройках TCP/IP необходимо выполнить команду ipconfig с ключом /all, т. е. ipconfig /all
Выполните команду ipcofig /all и запишите информацию об аппаратном адресе сетевой карты, списке DNS-серверов сетевого подключения.
Утилита ping
Данная программа предназначена для проверки доступности удаленного узла по сети. Для этого используется служебный протокол ICMP. С локальной машины на удаленный узел посылается запрос с кодом “echo-request” и в течение некоторого времени локальная машина ожидает ответа “echo-reply”. Если такой ответ не получен, то причин может быть несколько:
1) если получено диагностическое сообщение по протоколу ICMP, то необходимо проанализировать это сообщение (например, требуется фрагментация пакета);
2) если ничего не получено, то удаленный узел не отвечает на запрос (не включен или на узле ответ блокирует брандмауэр), либо время прохождения пакетов по линии связи больше чем время ожидания ответа – в этом случае следует увеличить время ожидания.
В простейшем случае в качестве аргумента команде необходимо указать имя узла (DNS-имя или NetBIOS-имя) или IP-адрес узла, например: ping 10.20.30.40
Проверьте доступность по сети шлюза по умолчанию и любого соседнего компьютера.
Среди дополнительных опций команда ping принимает флаг –f, который запрещает фрагментацию IP-пакетов. Так как сетевой уровень абстрагируется от используемой технологии канального уровня, то необходим механизм, с помощью которого можно передавать блоки данных произвольной длины через различные транспортные сети с их собственными технологиями канального уровня, которые имеют разные ограничения на размер кадра (MTU). В случае если пакет данных плюс служебные заголовки превышает размер кадра, то пакет разбивается на фрагменты, которые уже могут быть переданы в кадрах канального уровня. На конечном узле фрагменты собираются в единый пакет данных.
Вторая опция команды – это флаг —l, после которого через пробел указывается цифра – размер буфера, который будет посылаться на удаленный узел в пакете ICMP. Используя совместно ключи — l и — f можно выяснить максимальный размер блока данных, помещенного в IP-пакет, который еще иначе называется MSS (максимальный размер сегмента). MSS будет равен длине блока данных + длина ICMP заголовка, который равен 8 байт в случае команды ping. Размер стандартного заголовка IP-пакета равен 20 байт. Таким образом MTU = “размер буфера команды ping” + 8 + 20.
Экспериментально выясните максимальный размер кадра канального уровня (MTU) в сети ВГУЭС. Для этого необходимо посылать пакеты различной длины при установленном флаге запрета фрагментации. В качестве удаленного узла можно выбрать адрес шлюза по умолчанию или адрес любого соседнего компьютера. Начните с начального значения размера буфера 1500.
Еще один флаг команды – это флаг —a, который позволяет получить имя DNS по адресу компьютера (как правило IP-адресу).
Определите DNS-имя любого соседнего компьютера по его IP-адресу.
Следующий флаг команды – это флаг —i, который позволяет задать TTL – «время жизни» посылаемых пакетов. Для решения проблем наличия петель в маршрутизации и, соответственно, бесконечной циркуляции IP-пакетов в сети, каждый посылаемый пакет имеет поле TTL, которое содержит некоторое целое число. Это число уменьшается на единицу при каждом прохождении пакета маршрутизаторов. В тот момент, когда значение TTL станет равным 0, такой пакет отбрасывается, а отправителю по протоколу ICMP отправляется уведомление о том, что пакет отброшен из-за нулевого TTL. По рекомендации RFC 1700 начальное значение TTL должно быть 64. Таким образом, это обеспечивает прохождение пакетом до 63 промежуточных маршрутизаторов. Различные операционные системы могут выбирать начальное значение TTL по-разному.
Приходящее уведомление о нулевом значении TTL помимо всего прочего содержит и IP-адрес маршрутизатора, на котором произошло обнуление TTL. Таким образом, посылая пакеты с начальным TTL = 1 и увеличивая TTL на единицу, можно получить список всех маршрутизаторов на пути следования пакета от отправителя к получателю.
Определите список маршрутизаторов на пути следования пакетов от локального компьютера до адреса 192.168.100.1 и до адреса www. *****.
Утилита tracert
Данная утилита автоматизирует рассмотренный ранее процесс получения промежуточных маршрутизаторов с помощью утилиты ping. В простейшем случае в качестве аргумента команде необходимо указать имя узла (DNS-имя или NetBIOS-имя) или IP-адрес узла, например: tracert 10.20.30.40
Определите список маршрутизаторов на пути следования пакетов от локального компьютера до адреса 192.168.47.1 и до адреса mail. *****.
По умолчанию tracert выполняет преобразование полученных IP-адресов маршрутизаторов в символьные имена DNS. Это замедляет работу tracert, поэтому если преобразование не требуется, то можно указать ключ –d
Определите список маршрутизаторов на пути следования пакетов от локального компьютера до адреса 192.168.47.1 и до адреса mail. ***** без преобразования IP-адресов в имена DNS.
Утилита route
Утилита route позволяет получить/изменять таблицу маршрутизации локального компьютера. Для того чтобы получить таблицу маршрутизации, необходимо выполнить команду route с параметром print, т. е. route print
Получите таблицу маршрутизации локального компьютера.
Для внесения изменений в таблицу маршрутизации используются параметры add и delete.
Утилита arp
Данная утилита позволяет получить таблицу соответствия IP-адресов и MAC-адресов. В связи с тем, что сетевой уровень вводит свою систему адресов, уникальных в пределах все составной сети, то необходим механизм, с помощью которого можно преобразовывать IP-адреса в аппаратные адреса канального уровня, используемой транспортной сети.
В случае если IP-адрес назначения находится в подсети, подключенной напрямую к одному из сетевых интерфейсов компьютера (т. е. не используя шлюз), то отправитель может отправить пакет данных «напрямую. Для этого отправитель посылает в соответствующий сетевой интерфейс (согласно таблице маршрутизации) широковещательный запрос по протоколу ARP, содержащий следующие данные:
Тот компьютер, который владеет искомым IP-адресом, отвечает на запрос. При этом результат опроса, т. е. MAC-адрес конечного компьютера, сохраняется в таблице ARP отправителя в течение некоторого времени, после которого запись удаляется. Конечный компьютер так же сохраняет в своей таблице ARP соответствие IP-адреса и MAC-адресе отправителя.
Если же удаленный узел достижим через шлюз, то пакет передается ему, и он принимает решение о методе доставке конечному узлу. В этом случае ARP запрос будет послан для выяснения аппаратного адреса шлюза.
Для получения таблицы ARP, необходимо запустить команду arp с ключом — a, т. е. arp —a
Получите таблицу ARP локального компьютера.
Команда arp также позволяет выполнять модификацию таблицы маршрутизации с помощью ключей — s и — d (добавление и удаление соответственно).
Утилита netstat
Если запустить команду netstat без параметров, то можно получить список активных TCP соединений между локальным и удаленными компьютерами. В колонке «состояние» отображается статус TCP-соединения.
Получите список активных TCP-соединений локального компьютера.
По умолчанию netstat выполняет преобразование полученных IP-адресов в символьные имена DNS и номера портов в название сетевых служб. Это замедляет работу netstat, поэтому если преобразование не требуется, то можно указать ключ –n
Получите список активных TCP-соединений локального компьютера без преобразования IP-адресов в символьные имена DNS.
Если указать ключ —a, то в списке соединений будут указаны также и прослушиваемые компьютером порты TCP и UDP.
Получите список прослушиваемых компьютером портов TCP и UDP с и без преобразования IP-адресов в символьные имена DNS.
Утилита netstat в операционной системе Windows XP и старше поддерживает ключ —o, с помощью которого можно получить название/идентификатор процесса, создавшего/прослушивающего соединение.
Утилита telnet
Данная программа изначально была предназначена для реализации сеансов удаленного терминала с компьютером по сети по протоколу telnet. В качестве «побочного» эффекта утилиты можно отметить ее способность проверять прослушиваемые порту протокола TCP. Формат выполнения команды следующий:
Хост – это удаленный компьютер, порт – это номер TCP-порта.
Вот значения номеров портов широко известных сетевых служб:
Утилиты командной строки Windows для работы с сетью
Цель работы: Научиться применять сетевые утилиты командной строки Windows.
Содержание
Теория
Утилитами называются сравнительно небольшие программы, предназначенные для решения каких-либо узкоспециализированных задач. В данной работе рассматриваются утилиты операционной системы Windows, используемые для диагностики сетевых подключений. Обзор утилит мы совместим с изучением основ теории компьютерных сетей.
Утилита ipconfig
Для связи с сетью компьютеры оснащаются сетевыми интерфейсами , к которым относятся Ethernet платы, Wi-Fi и WiMAX модули. Указанные интерфейсы должны иметь IP адреса. Пример такого адреса – 192.168.0.1. Компьютер может иметь не одну плату, а две или три, и каждая из них будет иметь свой IP адрес. Если имеется WiMAX модуль, то и он будет иметь свой IP адрес. Таким образом, компьютер может иметь несколько адресов. Адреса необходимы для организации пересылки сообщений по сети. Адреса должны быть уникальными, т.е. неповторяющимися. Ведь если в сети находятся два компьютера с одинаковыми адресами, то кому из них будет адресовано сообщение с указанным адресом? Отметим также, что IP адреса разбиты на две категории: приватные и публичные. Приватные адреса имеют силу лишь для своей локальной сети и в глобальной сети они не видны. Примером такого адреса является 192.168.0.1. Существуют сотни тысяч, а может быть, миллионы локальных сетей, в которых встречаются компьютеры с одинаковыми приватными адресами, и они никак не конфликтуют между собой из-за совпадения адресов. Публичные же адреса уникальны для всей глобальной сети.
Компьютеры образуют сети, которые также имеют свои адреса. Например, компьютер с адресом 192.168.0.1 находится в сети с адресом 192.168.0.0. У адреса сети и адреса компьютера, как видим, совпадают первые три числа. Сколько же на самом деле должно совпадать чисел определяет так называемая маска подсети. Для нашего примера эта маска имеет вид 255.255.255.0. Такое значение маски чаще всего и встречается в локальных сетях. Более подробно об IP адресации и, соответственно, о маске подсети будет изложено в теоретической части данного курса.
Сами компьютерные сети не изолированы друг от друга. Для связи их между собой используются специализированные компьютеры, называемые маршрутизаторами . Такие сетевые устройства имеют как минимум два сетевых интерфейса, один из которых принадлежит одной сети, другой же является частью второй сети. Маршрутизатор, перенаправляя сообщения с одного своего интерфейса на другой, обеспечивает межсетевой трафик. Если маршрутизатор имеет три платы, то он будет находиться на границе трех сетей. Широкое распространение получили двухточечные сети, которые образуют два маршрутизатора, соединенные общим кабелем. Интерфейсы обеих маршрутизаторов, присоединенные к разным концам одного кабеля, должны иметь адреса, относящиеся к одной и той же сети. Более часто встречаются тупиковые сети. Такие сети связаны лишь с одним маршрутизатором (отсюда и название сети — тупиковая). Компьютеры, находящиеся в такой сети, отправляют сообщения, адресованные в другие сети, на интерфейс этого маршрутизатора. Компьютеры, следовательно, должны знать адрес интерфейса маршрутизатора своей сети. Такой адрес носит название основной шлюз . Маршрутизатор полученные от компьютеров тупиковой сети сообщения перенаправляет дальше, передавая их своим соседям-маршрутизаторам по двухточечным каналам связи. Таким образом, сообщение последовательно перемещается по следующим сетям: тупиковая сеть, двухточечная сеть 1, двухточечная сеть 2, . двухточечная сеть N, тупиковая сеть. Если же маршрут перемещения изучать по узлам, то он будет таким: компьютер (отправитель сообщения), маршрутизатор 1, маршрутизатор 2, …, маршрутизатор N-1, компьютер (получатель сообщения).
Подытоживая вышесказанное, отметим, что таким образом для настройки сетевого интерфейса компьютера необходимо назначить ему IP адрес, маску подсети и указать основной шлюз.
Программа ipconfig предназначена для получения информации о настройках сетевых интерфейсов. Выполняется данная утилита в окне командной строки. Для этого необходимо нажать кнопку Пуск и выбрать пункт «Выполнить…». Далее следует ввести cmd и нажать Enter. В открывшемся окне командной строки
следует ввести команду ipconfig и нажать Enter. Пример результата выполнения данной утилиты:
C:\Users\Анатолий> ipconfig Настройка протокола IP для Windows Ethernet adapter Сетевое подключение Bluetooth: Состояние среды. . . . . . . . : Среда передачи недоступна. Адаптер беспроводной локальной сети Беспроводное сетевое соединение: DNS-суффикс подключения . . . . . : Home Ethernet adapter Подключение по локальной сети: Состояние среды. . . . . . . . : Среда передачи недоступна. Состояние среды. . . . . . . . : Среда передачи недоступна. Туннельный адаптер Подключение по локальной сети* 3: Состояние среды. . . . . . . . : Среда передачи недоступна. Состояние среды. . . . . . . . : Среда передачи недоступна. Туннельный адаптер isatap.Home: Состояние среды. . . . . . . . : Среда передачи недоступна. |
В данном примере команда выполнялась на ноутбуке. Связь с «внешним миром» осуществлена с помощью беспроводной сети. IP адрес интерфейса ноутбука — 192.168.0.206, маска — 255.255.255.0, шлюз — 192.168.0.10. Интерфейсы ноутбука и маршрутизатора находятся в одной сети 192.168.0.0. Сетевой кабель не подключен (по Ethernet адаптеру среда передачи недоступна).
Утилита ping
Компьютеры и другие узлы сети помимо IP адресов имеют так называемые доменные адреса. Такие адреса удобны пользователям сети, так как они легче запоминаются. К примеру доменный адрес mаil.ru запомнить намного проще чем его IP аналог в виде 94.100.180.70. За соответствие доменных и IP адресов отвечает DNS служба. Когда с компьютера исходит запрос на какой-либо сетевой ресурс по его доменному адресу, то DNS служба позволяет определить соответствующий этому ресурсу IP адрес.
Утилита ping позволяет проверить доступность какого-либо удаленного узла по сети. С этой целью на указанный узел отправляется сообщение в виде запроса, и утилита переходит в режим ожидания прихода ответного сообщения. По истечении некоторого времени посылается повторное сообщение. По результатам обмена сообщениями выводится статистика о качестве связи между двумя узлами. Для пингования удаленного узла можно использовать либо его IP адрес, либо его доменное имя.
Команда ping 127.0.0.1 позволяет проверить настройку самого сетевого интерфейса. Адрес 127.0.0.1 является служебным и узлам сети не назначается. DNS аналог этого адреса: localhost. Сетевой интерфейс при использовании данного адреса пингует сам себя
ping 127.0.0.1 Обмен пакетами с 127.0.0.1 по с 32 байтами данных: |
В рассмотренном случае сетевой интерфейс настроен без ошибок, потери отсутствуют. Параметр TTL переводится как «время жизни» (time to life). Его создает узел, отправляющий в сеть свое сообщение. Маршрутизаторы, передавая данное сообщение из одной сети в другую, убавляют TTL на единицу. Если на каком-то маршрутизаторе TTL будет убавлено до нуля, то сообщение будет уничтожено. Маршрутизатор, удаливший из сети сообщение, извещает об этом отправителя, указывая свой адрес.
Второй вариант использования ping – это проверка состояния тупиковой сети, в которой находится сам узел. С этой целью пингуется основной шлюз:
ping 192.168.0.10 Обмен пакетами с 192.168.0.10 по с 32 байтами данных: Статистика Ping для 192.168.0.10: |
В данном примере маршрутизатор доступен. Он в свои ответные сообщения помещает TTL (64) отличное от TTL (128) сетевого интерфейса компьютера.
Для проверки доступности удаленного хоста, как правило, применяются доменные адреса:
ping esstu.ru Обмен пакетами с esstu.ru [212.0.68.2] с 32 байтами данных: Статистика Ping для 212.0.68.2: |
Удаленный узел доступен. В данном случае мы видим, что DNS служба определила IP адрес узла в виде 212.0.68.2.
Утилита имеет несколько опций, из которых рассмотрим лишь одну: -i, позволяющую задать значение TTL:
ping -i 1 esstu.ru Обмен пакетами с esstu.ru [212.0.68.2] с 32 байтами данных: Статистика Ping для 212.0.68.2: |
Здесь TTL был принят равным 1 и сообщение с пингом было уничтожено на шлюзе (192.168.0.10). В следующем примере TTL=2
ping -i 2 esstu.ru Обмен пакетами с esstu.ru [212.0.68.2] с 32 байтами данных: Статистика Ping для 212.0.68.2: |
На этот раз сообщение дошло до маршрутизатора (192.168.1.1), который был вторым за шлюзом. Так, постепенно меняя значение TTL, можно получить список всех маршрутизаторов, находящихся между компьютером и удаленным узлом 212.0.68.2.
Утилита tracert
Эта утилита, последовательно применяя пинг с увеличивающимся TTL, позволяет получить список промежуточных маршрутизаторов:
tracert esstu.ru Трассировка маршрута к esstu.ru [212.0.68.2] 1 1 ms 1 ms 1 msWRT54GL [192.168.0.10] Трассировка завершена. |
Между двумя узлами в данном случае находится 7 маршрутизаторов. Трансляция сетевых адресов (NAT) реализуется на маршрутизаторе с адресом 192.168.1.1. Пояснение: Данный адрес является приватным и он назначен ближнему интерфейсу роутера. Дальний его интерфейс имеет публичный адрес, так как он находится в одной сети с интерфейсом следующего маршрутизатора (213.228.116.203). Следовательно на данном роутере настроен NAT, позволяющий подменять в сообщениях приватные адреса публичными.
Утилита pathping
Утилита pathping сочетает в себе черты команд ping и tracert, позволяя получить дополнительную информацию, которую не обеспечивают две последние. Команда определяет процент потерь сообщений на всех переходах, выявляя самые медленные и ненадежные участки маршрута.
pathping esstu.ru Трассировка маршрута к esstu.ru [212.0.68.2] с максимальным числом прыжков 30: 0 EXPHOME.Home [192.168.0.206] 1 WRT54GL [192.168.0.10] 2 Broadcom.Home [192.168.1.1] 3 ULND-BRAS3.sib.ip.rostelecom.ru [213.228.116.203] 4 213.228.114.27 5 core-gi-0-2.burnet.ru [212.0.64.90] 6 ws-70-71.burnet.ru [212.0.70.71] 7 86.110.127.129 8 212.0.68.2 Подсчет статистики за: 200 сек. . Трассировка завершена. |
В настройках некоторых маршрутизаторов может стоять запрет на выдачу ответа на пришедший пинг. В данном примере маршрутизатор с подобной настройкой имеет адрес 86.110.127.129. Попытка отправить пинг на этот адрес убеждает нас в справедливости этого утверждения:
ping 86.110.127.129 Обмен пакетами с 86.110.127.129 по с 32 байтами данных: Превышен интервал ожидания для запроса. Превышен интервал ожидания для запроса. Превышен интервал ожидания для запроса. Превышен интервал ожидания для запроса. Статистика Ping для 86.110.127.129: |
Утилита arp
Сетевые интерфейсы, такие как Ethernet, Wi-Fi и WiMAX, имеют вшитые в их микросхемы адреса. Пример подобного адреса: 70-F3-95-A6-FE-0C. Эти адреса, называемые аппаратными, физическими или MAC , должны добавляться к сообщениям, прежде чем они будут переданы через сеть. Не все сети используют такие адреса, но в тупиковых они, как правило, применяются. Узел, собирающийся отправить сообщение M другому узлу , должен предварительно узнать MAC адрес получателя сообщения. Для решения данной проблемы узел применяет технологию ARP . Как работает ARP? Узел отправляет ARP запрос всем узлам своей сети. В запрос узел «вкладывает» IP адрес получателя сообщения M . На запрос отвечает лишь тот, у кого требуемый IP адрес. В своем ответе он сообщает свой MAC адрес. И лишь после этого первый узел ему сможет отправить свое сообщение M . В данном случае мы рассмотрели перессылку сообщения M , относящегося к внутрисетевому трафику. Если же оба узла находятся в разных сетях, то узел должен своё сообщение перенаправить маршрутизатору своей сети. Это означает, что к сообщению должен быть добавлен MAC адрес сетевого интерфейса маршрутизатора. В таком случае, ARP запрос узла адресуется маршрутизатору. Таким образом, основной шлюз, указываемый при настройке сетевой платы узла, необходим для определения MAC адреса интерфейса маршрутизатора. Для уменьшения ARP трафика компьютеры в течении некоторого времени хранят в своей памяти таблицу с IP и MAC адресами тех устройств, с которыми они в последнее время обменивались сообщениями.
Утилита arp позволяет получить таблицу соответствия IP адресов и MAC-адресов . Ниже приведен вывод, полученный командой arp, выполненной с ключом –a
В данном случае мы видим, что основной шлюз (192.168.0.10) имеет MAC адрес 20-aa-4b-2a-d5-21.
Утилита netstat
Когда мы говорим: «компьютеры обмениваются сообщениями», то это не совсем точное утверждение. На самом деле обмен происходит между сетевыми приложениями. В оперативной памяти компьютера одновременно могут находиться и выполняться несколько программ, получающих сообщения из сети или отправляющие их в сеть. Как же сообщения, приходящие из сети в компьютер, распределяются между этими приложениями? На этот случай в сообщениях предусмотрены дополнительные адреса, называемые портами . Здесь уместно привести аналогию с обычной почтовой корреспонденцией. Для того чтобы письмо было доставлено в многоквартирный дом (компьютер), на конверте письма указывается номер дома (IP адрес компьютера). Затем письма необходимо разложить по почтовым ящикам согласно номерам квартир. Номер квартиры, присутствующий на конверте письма, и есть аналог портов. Далее жильцы (т.е. сетевые приложения) забирают эти письма (сообщения).
Распределение потока сообщений, приходящих из сети на компьютер, по разным портам называется демультиплексированием. И, напротив, сбор сообщений от разных приложений в единый поток и отправляемый в сеть называется мультиплексированием.
Когда приложение хочет обменяться сообщениями с другим удаленным приложением, оно должно знать не только IP адрес компьютера данного приложения, но и номер порта, которое то приложение использует. Эта связка из двух адресов (IP адрес и порт) называется сокетом . Как же приложение, собирающее отправить свое сообщение, выясняет номер порта, используемое адресатом? Здесь следует упомянуть про клиент-серверную архитектуру, применяемую в сетевых технологиях. Одно из приложений является сервером, получающим запросы от клиентов, обрабатывающим их и отправляющим клиенту результаты обработки запросов. Клиенты же являются инициаторами соединения между ними и сервером, отправляя серверу свои запросы. При разработке подобных сетевых приложений программисты заранее определяют номера портов, которые их сервера будут использовать. Клиенты, соответственно, при своих запросах на сервер должны использовать этот порт. Сервер, будучи запущенным, должен постоянно находиться в оперативной памяти своего компьютера, ожидая прихода из сети сообщений от клиентов на «прослушиваемый» им порт.
Возможны конфликтные ситуации, вызванные применением одного и того же порта разными серверными программами. Если запускаемый сервер обнаружит, что его порт использует другое приложение, то он не сможет выполнять свои функции в своем обычном режиме. В то же время другой сервер, занимающий этот порт, будет получать сообщения от чужих клиентов, что может приводить к ошибкам его исполнения. Следовательно, важно распределять порты таким образом, чтобы серверные программы не конфликтовали между собой из-за совпадения используемых ими портов. За распределение портов отвечает организация IANA (Internet Assigned Numbers Authority, Администрация адресного пространства Интернет).
Таким образом, оба приложения (клиент и сервер) устанавливают между собой соединение, используя два сокета. Сокеты можно условно представить в виде двух розеток, соединенных между собой неким виртуальным каналом связи. Когда одно приложение «помещает» в сокет свое сообщение, то оно доставляется на другой конец канала — на второй сокет, и попадает, таким образом, другому приложению.
Команда netstat позволяет получить список сокетов. Ниже приведен вывод этой команды, полученный c использованием опций -a, -n и -o.
Cокеты обозначаются в виде IP_адрес:порт (с двоеточием между адресами). Например, 192.168.0.206:54842. Виртуальный канал связи, существующий между двумя сетевыми приложениями, обозначен парой сокетов . Например, 192.168.0.206:54842 и 64.4.23.171:40013. Первый сокет открыт на компьютере, другой на удаленном узле. Адрес в виде 0.0.0.0 означает любые IP адреса. Если в качестве номера порта присутствует 0, то это означает любые значения портов. В колонке «Состояние» отображается состояние соединения :
- LISTENING – ожидание подключения;
- ESTABLISHED– соединение установлено, идет обмен сообщениями;
- TIME_WAIT–время ответа превышено.
Первый тип состояния (LISTENING) означает, что сетевое приложение ждет установления соединения по определенному порту. Например, сокет 0.0.0.0:443 означает, что какое-то удаленное приложение может отправить на компьютер сообщение на порт 443 с целью установить виртуальное соединение.
В последней колонке (PID) выводятся номера процессов. Под процессами понимаются приложения. Из вывода мы видим, что процесс 2944 ждет подключения по портам 80, 443 и 61741. Как выше было сказано, какая-то программа с другого узла может отправить запрос на установление соединения с процессом 2944. Такая программа своё сообщение может адресовать на любой из указанных трех портов. Чтобы выяснить, какая программа запущена под видом процесса 2944, вызовем диспетчер задач (Ctrl+Alt+Delete). В окне диспетчера перейдем на вкладку Процессы и войдем в меню Вид. Далее выберем строчку Выбрать столбцы и активируем чекбокс ИД процесса (PID). Щелкнем по OK. Затем отсортируем таблицу по столбцу ИД процесса (PID), щелкнув по его названию. Находим запись, соответствующую процессу 2944.
В данном случае мы видим, что этим процессом является сетевое приложение Skype. Приведенный выше вывод netstat показывает, что данная программа поддерживает связь с шестью удаленными skype приложениями других пользователей. Для каждого соединения был создан отдельный сокет.
Подготовительная часть В начало
Все команды выполняются в окне командной строки и дублируются с помощью пакетного файла. Правила запуска окна командной строки были рассмотрены выше (рис. 1). Отметим лишь, что команды в окне вводятся с клавиатуры и выполняются нажатием на клавишу Enter. Предыдущие команды можно вызвать для редактирования и повторного выполнения с помощью клавиши Стрелка вверх. Скриншоты окна помещайте в файл отчета со всеми необходимыми комментариями.
Рассмотрим приемы работы с пакетным файлом. Для этого Вам потребуется специализированный текстовый редактор PSPad. С помощью поисковых машин Интернета (Google, Яндекс и т.п.) найдите сайт разработчика данного редактора. Скачайте дистрибутив редактора и инсталлируйте его на своем компьютере. Также рекомендуется с данного сайта скачать русификатор, который следует распаковать в папку Lang.
Запустите PSPad и в его окне выполните команду Файл/Новый. Выберите тип файла MS-DOS Batch (второй вариант Windows Shell Script ). В созданный файл введите строку текста ipconfig > 1.txt
Сохраните файл на рабочий стол под именем script. На рабочем столе файл имеет вид
Для его выполнения выполните двойной щелчок по нему мышью. На рабочем столе появится новый файл в виде
Для открытия файла 1.txt следует вернуться в окно PSPad. В меню Формат PSPad’а выберите OEM и затем откройте файл 1.txt (Файл/Открыть…). Важно соблюдать порядок действий: вначале выбирать OEM и после открывать файл. Из данного файла некоторые фрагменты вывода можно скопировать в файл отчета по лабораторной работе.
Поменяйте строку в скрипте на ipconfig /all > 2.txt
Красный уголок у названия скрипта предупреждает, что файл был изменен, но не сохранен. Сохраните файл. Уголок должен исчезнуть. При выполнении команды ipconfig /all вывод будет помещен в текстовый файл 2.txt. Запустите с рабочего стола скрипт и просмотрите в PSPad’е содержимое файла 2.txt.