Cтруктура сетевого программного обеспечения в произвольном компьютере сети состоят из набора протоколов уровня приложений.

Рис.5.1. Примерная структура сетевого ПО


Сокращения, используемые в структуре программного обеспечения на рисунке 5.1 следующие:

HTTP – Hyper Text Transfer Protocol;

Telnet – Network Terminal Protocol – обеспечивает удалённый доступ через сеть;

FTP – File Transfer Protocol – используется для доставки файлов;

SMTP – Simple Mail Transfer Protocol – обеспечивает E-mail;

DNS – Domain Name Service – установление соответствия IP-адресов с именами сетевых устройств;

RIP – Routing Information Protocol – маршрутизатор – центральный элемент работы TCP/IP – сети;

NFS – Network File System – протокол позволяет распределять файлы по различным хостам сети.

HTTP, Telnet, FTP, SMTP – всегда используются пользователями, а о например RIP он даже не подозревает его существования. Это для администратора. Лежат на UDP, в отличие от FTP …

EGP – Exterior Gateway Protocol – другой протокол маршрутизации непосредственно использует IP

ARP – Address Resolution Protocol (IP → Ethernet-адрес)


Часть прикладных программ, таких как FTP или Telnet могут быть использованы, если пользователь знает адреса и характеристики сети.

Другие протоколы вроде RIP выполняются даже когда пользователь не подозревает об их существовании. Эти программы управляются только системным администратором.

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

Такие протоколы как FTP, HTTP непосредственно связаны с транспортным протоколом TCP, а протоколы RIP и DNS с UDP.


5.1. Telnet – протокол удалённого доступа

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

Формат команды установления связи:

>telnet имя_удалённого_компьютера [IP-адрес]

Например, выполним удаленное подключение к серверу nsc.ru:

>telnet nsc.ru

Trying …

Connect to nsc.ru

Login: alex

Password:

Last login: Mon April 14 14:54:35 from cyber_nt.neic.su

>


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

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

Программа-клиент выполнит следующие действия после набора команд telnet:

  • установить сетевое соединение с сервером посредством протокола TCP;
  • принять от пользователя входные данные;
  • преобразовать данные и передать их серверу;
  • принять от сервера входные данные;
  • переформатировать данные для отображения на экране.

Программа-сервер соответственно выполнит следующие функции:

  • ожидает запроса в стандартной форме;
  • обслуживает этот запрос;
  • посылает результаты обратно программе-клиенту;
  • ожидает следующий запрос.

Сервер TELNET использует порт номер 23. Клиент TELNET может получать услуги от сервера, если установит соединение с TCP-портом 23 на егомашине.

Основные команды, выполняемые при помощи программы telnet, являются команды программной оболочки, например:

cd имя – перейти в директорию с именем;

dir – отобразить содержимое текущей директории;

run имя – запустить в работу исполнительный файл;

exit – выход.


Так как с помощью команды telnet вы становитесь пользователем удалённого хоста, то может использовать все стандартные команды ОС установленные на этой машине. Например, если это UNIX, то может использовать ls, pwd и др.

Можно использовать программу telnet в роли другого клиента. В случае установления соединения через другой порт. Этот метод используется для отладки.

Например, можно зайти в собственную машину, как внешний клиент в обслуживание программы почты через порт 110 (110 – порт почтовой службы):

telnet cyber_nt 110.

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

Выход из программы telnet осуществляется командой quit.


5.2. FTP– протокол перемещения файлов

Протокол FTP (file transfer protocol) предназначен главным образом для приёма файла или группы файлов из удаленного компьютера и для передачи файла или группы файлов в удалённый компьютер. Сервер FTP использует порт номер 21. Клиент FTP может получать услуги от сервера, если установит соединение с TCP-портом 21 на егомашине.

Если оба компьютера используют язык протокола FTP, то не имеет значения, в каких ОС они работают.

Формат установления соединения:

>ftp имя_удалённого_компьютера [IP-адрес]

Например, выполним следующее

>ftp ftp.nsu.ru

Существует два вида доступа в удаленной машине:

- авторизованный, когда у вас есть доступ (имя пользователя или пароль);

- анонимный, когда вы подключаетесь как гость; при этом используется в качестве имени слово anonimous, а в качестве пороля можете указать свой e-mail.

Реализация FTP процедур состоит из выполнения команд FTP и передачи данных. Данные занимают в среднем 40% всего сетевого трафика, в то время как команды только 4%.

FTP позволяет переслать данные в файлах, либо как двоичную информацию, либо как ASCII (то есть текст).

FTP так же позволяет вести поиск файла на удалённой машине, то есть переходить из директории в директорию и просматривать содержимое этих директорий, файлов.

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


Рассмотрим основные команды, используемые в FTP:

Таблица 5.1.

В большинстве реализаций ftp имеет 70-80 команд, естественно, что приведённый список является сокращённым.

Все команды ftp является UNIX-подобными, следовательно, если даже вы вошли в ftp-сервер в DOS, то всё равно выполняете по правилам UNIX, то есть путь прописываете

ftp>cd h:/public/ibm/ms_dos, а не h:\public\ibn\ms.dos. Иначе это будет ошибка.


5.3. Программы анализа сети netstat, ping, traceroute

5.3.1. Команда netstat

Команда netstat выдаёт различную информацию о состоянии сети. Она используется во всех системах (UNIX, OS/2, WinNT, Win95) и используется для:

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

Утилита netstat позволяет отслеживать процесс соединения с удалёнными системами, отображать статистику протокола по данному соединению. Позволяет получать IP-адреса для систем, соединение с которыми было осуществлено по доменным именам. Ниже приводится синтаксис для вызова утилиты:

  • a отображать информацию обо всех соединениях и портах. По умолчанию эта информация не отображается.
  • e отображению статистики Ethernet. Целесообразно использовать эту опцию совместно с -s (см. ниже).
  • p отображает соединение для протокола, указанного в качестве параметра соединения. Протокол может принимать значения tcp и udp. В случае использования этой опции совместно с -s дополнительно можно указывать протокол IP.
  • n эта опция приводит к отображению статистики протоколов. По умолчанию отображается статистика для протоколов tcp, udp, ICMP, IP.

Можно указать интервал в секундах обновления выдаваемой netstat информации. Остановка вывода информации на экран по Ctrl+C. Если не указать значение интервала, то утилита выведет требуемую информацию только один раз.

Для определения адреса IP удалённого компьютера используется утилита netstat с опцией –n.

Программа netstat без аргументов выдаёт информацию о состоянии активных портов TCP и UDP.

Аргументы:

-a информация о всех (и не активных гнёздах);

-i статическая информация о сетевых устройствах;

netstat –i (аналог ipconfig);

etho – информация о сетевой(ых) карте(ах) IP-адресах;

-c непрерывно (каждую секунду) выдаёт информацию о состоянии системы, пока работа программы не была прервана;

-n выдаёт IP-адреса локальных и удалённых систем;

-o – информацию о количестве повторно переданных байтив и состоянии таймера;

-r выдаёт хранящийся в ядре таблицы маршрут;

-t – только о TCP-гнёздах, включая;

-u – UDP гнездах;

-v – о версии;

-p <имя протокола> – IP, TCP, UDP, ICMP.

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

Команда netstat –r –n 3 – выдаёт таблицу маршрутизации ядра с интервалом 3 секунды. Например, в результате netstat –r –n на машине 194.226.178.27:

Таблица 7.4.

Непрерывный режим работы программы netstat особенно эффективен при выслеживании источника ошибок.

Команда netstat –s выдаёт содержимое счётчиков, разбросанных по сетевым программам. В выходной информации есть разделы, относящиеся к различным протоколам: IP, ICMP, TCP и UDP. Например, выделить статистическую информацию о конкретном протоколе. Вы можете с помощью опции –s –p <имя протокола>.

Например, netstat –s –p.

При этом на экране или в файле, если вы запишите, информация выглядит следующим образом:

5.3.2. Трассировка или отслеживание IP пакетов

- производится с помощью команды traceroute, разработанной для системы UNIX. В Windows эта команда включена под именем tracert.

Traceroute позволяет выявлять последовательность шлюзов, через которую проходит IP – пакет на пути к пункту назначения. Синтаксис команды:

Traceroute <имя машины>; для UNIX

Tracert <имя машины>; для Windows

Имя машины может быть задано в символьной или числовой форме. Выходная информация – простой список машин, начиная с первого шлюза и кончая пунктом назначения. Например, проследим путь до Московского государственного университета:

5.3.3 Ping – диагностика соединений

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

По умолчанию Ping отправляет четыре пакета данных. Можно указать произвольное число пакетов, или отправлять пакеты непрерывно до завершения выполнение команды по Ctrl+C.

Синтаксис утилиты ping:

Ping [-t] [-a] [-n count] [-1 size] [-f] [-I TTL] [-v TOS]

Опции утилиты ping:

-t. При указании этой опции посылка пакетов данных удалённому хост-компьютеру осуществляется до тех пор пока работа утилиты не будет прервана пользователем с помощью ввода Ctrl + C.

-n count. По умолчанию Ping отправляет удалённому хост-компьютеру четыре пакета данных протокола ICMP. С помощью данной опции можно указать произвольное число пакетов count.

-1 size. Опция –1 используется для изменения размера пакетов данных.


5.4. Протокол ARP

Протокол ARP (Address Resolution Protocol) – адресный протокол используемый для отображения IP-адресов в Ethernet-адреса. Отображение выполняется только для отправляемых IP-пакетов, так как только в момент отправки создаются заголовки IP и Ethernet.

ARP-таблица для преобразования адресов

Преобразование адресов выполняется путем поиска в таблице. Эта таблица, называемая ARP-таблицей, хранится в памяти и содержит строки для каждого узла сети. В двух столбцах содержатся IP- и Ethernet-адреса.Если требуется преобразовать IP-адрес в Ethernet-адрес, то ищется запись с соответствующим IP-адресом. Ниже приведен пример упрощенной ARP-таблицы.

Табл.7.5. Пример ARP-таблицы

Принято, чтобы все байты 4-байтного IP-адреса записывать десятичными числами, разделенными точками. При записи 6-байтного Ethernet-адреса каждый байт указывается в 16-ричной системе и отделяется двоеточием. ARP-таблица необходима потому, что IP-адреса и Ethernet-адреса выбираются независимо, и нет какого-либо алгоритма для преобразования одного в другой. IP-адрес выбирает менеджер сети с учетом положения машины в сети Internet. Если машину перемещают в другую часть сети Internet, то ее IP-адрес должен быть изменен. Ethernet-адрес выбирает производитель сетевого интерфейсного оборудования из выделенного для него по лицензииадресного пространства. Когда у машины заменяется плата сетевого адаптера, то меняется и ее Ethernet-адрес

Порядок преобразования адресов

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

Запросы и ответы протокола ARP

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

1) По сети передается широковещательный ARP-запрос.

2) Исходящий IP-пакет ставится в очередь.

Каждый сетевой адаптер принимает широковещательные передачи. Вседрайверы Ethernet проверяют поле типа в принятом Ethernet-кадре и передают ARP-пакеты модулю ARP. ARP-запрос можно интерпретировать так: "Если ваш IP-адрес совпадает с указанным, то сообщите мне ваш Ethernet-адрес".Пакет ARP-запроса выглядит примерно как в таблице 5.2.

Таблица 5.2.

Каждый модуль ARP проверяет поле искомого IP-адреса в полученном ARP-пакете и, если адрес совпадает с его собственным IP-адресом, то посылает ответ прямо по Ethernet-адресу отправителя запроса. Пакет с ARP-ответом показан в таблице 5.3.

Таблица 5.3.

Этот ответ получает машина, сделавшая ARP-запрос. Драйвер этой машины проверяет поле типа в Ethernet-кадре и передает ARP-пакет модулю ARP. Модуль ARP анализирует ARP-пакет и добавляет запись в свою ARP-таблицу.Обновленная ARP-таблица после обработки ответа выглядит на таблице 5.4.

Таблица 5.4.