Nets2010 (1131259), страница 57
Текст из файла (страница 57)
Для этого пользователь сначала устанавливает управляющие соединения с двумя FTP-серверами, а затем устанавливает между ними канал передачи данных. В этом случае управляющая информация передается через модуль «User-PI», но данные транслируются через канал «Server1-DTP» - «Server2-DTP».
Алгоритм работы FTP-схемы, изображенной на рисунке 7-100, выглядит следующим образом:
-
Пользователь «User-PI» указал серверу «Server1-PI» работать в пассивном режиме, после чего сервер «Server1-PI» отправил пользователю «User-PI» адрес и номер порта (N), который он будет слушать.
-
«User-PI» назначил сервер «Server2-PI» активным участником соединения и указал ему передавать данные на хост «Server1-PI» на порт (N).
-
«User-PI» подал серверу «Server1-PI» команду «сохранить поступившие данные в таком-то файле», а серверу «Server2-PI» - «передать содержание такого-то файла».
-
Между серверами «Server1-DTP» и «Server2-DTP» образуется поток данных, который управляется клиентским хостом.
Основу передачи данных FTP составляет механизм установления соединения между соответствующими портами и механизм выбора параметров передачи. Каждый участник FTP-соединения должен поддерживать 21 порт передачи данных по умолчанию. По умолчанию «User-DTP» использует тот же порт, что и для передачи команд (обозначим его «U»), а «Server-DTP» использует порт номер (L-1), где L-управляющий порт. Однако, как правило, участниками соединения используются порты передачи данных, выбранные для них «User-PI», поскольку из управляющих процессов, участвующих в соединении, только он может изменить порты передачи данных как у «User-DTP», так и у «Server-DTP».
Пассивная сторона соединения должна до того, как будет подана команда начать передачу, слушать свой порт передачи данных. Активная сторона, подающая команду к началу передачи, определяет направление перемещения данных.
После того как соединение установлено, между «Server-DTP» и «User-DTP» начинается передача. Одновременно по каналу «Server-PI» - «User-PI» передаются уведомления о получении данных. Протокол FTP требует, чтобы управляющее соединение было открыто, пока по каналу обмена данными идет передача. Сессия FTP считается закрытой только после закрытия управляющего соединения.
Как правило, сервер FTP ответственен за открытие и закрытие канала передачи данных. Сервер FTP должен самостоятельно закрыть канал передачи данных в следующих случаях:
-
Сервер закончил передачу данных в формате, который требует закрытия соединения.
-
Сервер получил от пользователя команду прервать соединение.
-
Пользователь изменил параметры порта передачи данных.
-
Было закрыто управляющее соединение.
-
Возникли ошибки, при которых невозможно возобновить передачу данных.
FTP-протокол имеет двух «младших братьев»: TFTP - Trivial FTP и SFTP - Simple FTP.
7.5.2. Протокол TFTP
TFTP-протокол - это простейший протокол передачи файлов. Он работает поверх транспортного протокола UDP и обеспечивает выполнение только самых элементарных операций передачи файлов, а именно, записи и чтения файлов. TFTP был разработан как простой и легкий в применении протокол. Он не позволяет вызывать список каталога и не имеет никаких средств аутентификации, но может передавать 8-битную информацию в соответствии со всеми интернет-стандартами.
Поскольку передача данных осуществляется поверх UDP, протокол TFTP реализует собственные методы надежной доставки данных - пакеты подтверждения, нумерация блоков данных и пакетов подтверждения и т.п. Все это очень похоже на упрощенный вариант эмуляции протокола TCP.
TFTP работает лишь с пятью командами:
-
Read request (RRQ) - запрос на чтение
-
Write request (WRQ) - запрос на запись
-
Data (DATA) - пакет данных
-
Acknowledgment (ACK) - подтверждение
-
Error (ERROR) - ошибка
Процесс передачи данных начинается с поступления от клиента TFTP на сервер запроса на чтение или запись файла. Соединение устанавливается после получения подтверждения готовности на один из запросов, либо на запись - WRQ, либо на чтение - RRQ.
При открытии соединения каждая из сторон выбирает (случайным образом) уникальный идентификатор - TID, который используется в UDP как порт соединения. Каждый пересылаемый пакет ассоциирован с двумя TID, соответствующими каждой стороне соединения. Первоначальный запрос отправляется инициатором TFTP-соединения на UDP-порт (порт инициализации), в котором указывается порт соединения. Дальнейший обмен уже происходит через порты, выбранные участниками передачи данных.
Если сервер разрешает запрос, соединение открывается и указанный файл передается (блоками по 512 байт). Каждый пакет передаваемых данных содержит один блок (512 байт) передаваемых данных и номер блока в передаваемом потоке. Поступление каждого блока на хост назначения должно быть подтверждено пакетом АСК (подтверждение) с номером поступившего блока. Только после получения пакета подтверждения будет отправлен следующий пакет данных.
Если длина пакета менее 512 байт, это служит сигналом для закрытия канала связи. В случае потери пакета при передаче через некоторый промежуток времени сервер отправит этот пакет данных повторно.
Три типа ситуаций порождают отправку ошибочных пакетов:
-
Не подтвержден запрос, например, не был найден файл, нет прав доступа, и др.
-
Неправильный формат пакета, например, не был найден файл, нет прав доступа, и др.
-
Потерян доступ к требуемому ресурсу.
При большом количестве сообщений об ошибках соединение может быть закрыто по инициативе одной из сторон.
7.5.3. Протокол SFTP
SFTP-протокол передачи файлов пользуется популярностью в тех случаях, если пользователю необходим чуть более гибкий и надежный протокол, чем TFTP, и не такой сложный и громоздкий, как FTP.
SFTP поддерживает механизмы идентификации пользователя, передачу файлов, просмотр каталогов, изменение текущего каталога, переименование и удаление файлов. В большинстве операций, которые пользователь проводит с удаленным FTP-сервером, этого сервиса вполне достаточно. SFTP может передавать 8-битный поток данных и использует, подобно TFTP, только один канал соединения - как для команд, так и для данных. В отличие от TFTP, SFTP работает поверх TCP, порт 115.
Команды SFTP отправляются поочередно, после получения ответа обработки предшествующей команды. Все команды состоят из четырех ASCII-символов и символа пробела, который отделяет команду от аргументов. Ответ сервера состоит из кода ответа и текстового сообщения.
Команды SFTP имеют почти тот же синтаксис и предназначение, что и аналогичные команды FTP.
67. Служба управления сетью: организация, протокол SNMP, структура базы данных MIB
Когда Интернет стал охватывать большие территории, потребовались адекватные средства для управления сетью. Под словом «управление» в данном случае мы будем понимать возможность оперативно получать информацию о каждом устройстве в сети: о его работоспособности, состоянии, истории его функционирования. Позднее на понятии управления в сети мы остановимся подробнее. В 1990 году была опубликована первая версия протокола Simple Network Management Protocol (SNMP v.1). Эта версия описана в RFC 1155 и RFC 1157. В этих документах было описано систематическое наблюдение за сетью (какая информация могла накапливаться, как и где) и управление ею (как и какие параметры работы устройств сети можно было менять). Этот протокол получил широкое распространение и был реализован практически во всех устройствах, используемых в сетях.
Опыт использования протокола SNMP v.1 выявил ряд недостатков. Например, в первой версии недостаточно были проработаны вопросы безопасности. При опросе устройств явно указывался пароль, глядя на который, устройство аутентифицировало запрашивающее устройство. Во второй версии протокола SNMP v.2 (RFC 1441-1452) была введена криптографическая защита механизма аутентификации. Далее будет кратко описана именно вторая версия протокола SNMP.
Предполагается, что сеть состоит из четырех категорий компонентов:
-
Станции управления
-
Управляемые устройства
-
Управляющая информация
-
Протокол управления
Рисунок 7-29. Устройство модели управления SNMP
Модель управления, принятая в протоколе SNMP, показана на рисунке 7-29. Управление сетью осуществляют станции управления. Это компьютеры, на которых выполняются процессы, собирающие и накапливающие информацию об управляемых устройствах в сети. Сбор этой информации происходит по запросу от управляющей станции управляемому устройству. Запросы, передача и другие действия выполняются с помощью команд протокола SNMP.
На управляемых устройствах работают специальные SNMP-агенты (далее для краткости просто «агенты»), которые выполняют команды, передаваемые с помощью SNMP-протокола, фиксируют определенный набор параметров функционирования управляемого устройства. Управляемым устройством может быть маршрутизатор, мост, рабочая станция, устройство печати – любое устройство, где может работать SNMP-агент. Каждый агент поддерживает локальную базу данных MIB (Management Information Base), где хранится информация о состоянии агента, история его функционирования и переменные, характеризующие работу устройства, где функционирует агент.
SMI – структура управляющей информации.
В сети используется аппаратура сотен различных производителей. Естественно агент должен формировать данные о функционировании управляемого устройства в некотором унифицированном виде, например, по составу, способу представления независимо от того, кто изготовил это устройство.
В соответствии с терминологией, принятой в стандарте протокола SNMP, переменную, в которой агент накапливает информацию, будем называть объектом. Все объекты собраны в группы, определяемые стандартом, а группы – в модули. Чтобы все объекты имели единые правила идентификации, поступают следующим образом. Строят дерево стандарта, в котором отражают иерархию понятий, используемых в стандарте. Это дерево стандарта является поддеревом дерева стандартов.
На первом ярусе этого дерева расположены названия организаций, имеющих право выпускать международные стандарты – это ISO и МКТТ (теперь МСТ – международный союз телекоммуникаций). Есть в этом дереве и место для Интернета – ярус 4. На последнем ярусе указаны группы. В скобках рядом с именем каждой группы указано количество объектов в группе. Объекты имеют тип, определяемый через Object Identifier. Все объекты в этом дереве могут быть заданы указанием пути в дереве.
SMI в определенном смысле представляет собой язык для определения структур данных, представляющих объекты в базе данных MIB. В таблице 7-31 указаны типы данных, используемые для определения объектов, отслеживаемых протоколом SNMP.
Таблица 7-31. Типы данных, используемых при мониторинге SNMP
Имя | Тип | Байт | Значение |
INTEGER | Числовой | 4 | Целое число (32 бита в текущих реализациях) |
Counter32 | Числовой | 4 | Беззнаковый 32-битный счетчик с переносом на новую строку |
Gauge32 | Числовой | 4 | Беззнаковое значение без перехода на новую строку |
Integer32 | Числовой | 4 | 32 бита, даже на 64-битном процессоре |
UInteger32 | Числовой | 4 | Как у Integer32, но беззнаковый |
Counter64 | Числовой | 8 | 64-битный счетчик |
TimeTicks | Числовой | 4 | В сотых долях секунды с определенного начала отсчета |
BIT STRING | Строка | 4 | Битовое отображение от 1 до 32 бит |
OCTET STRING | Строка | ≥0 | Строка бит переменной длины |
Opaque | Строка | ≥0 | Устарел; используется только для совместимости с ранними версиями |
OBJECT ID | Строка | >0 | Список целых чисел |
IpAddress | Строка | 4 | Десятичный интернет-адрес с разделительными точками |
NsapAddress | Строка | <22 | NSAP-адрес OSI |
MIB - База управляющей информации.
Коллекцию объектов, которыми можно управлять с помощью протокола SNMP, определяет база MIB. Все объекты этой базы сгруппированы в 10 групп, которые соответствуют 10 узлам, смежных узлу mib-2 в дереве на рисунке 7-30. Эти группы показаны в таблице 7-32.
Таблица 7-32. Группы объектов базы MIB-II
Группа | Кол-во объектов | Описание |
System | 7 | Название, местоположение и описание оборудования |
Interfaces | 23 | Сетевые интерфейсы и их измеряемый трафик |
AT | 3 | Трансляция адреса |
IP | 42 | Статистика IP-пакета |
ICMP | 26 | Статистика полученных ICMP-сообщений |
TCP | 19 | Алгоритмы, параметры и статистика ICMP |
UDP | 6 | Статистика трафика UDP |
EGP | 20 | Статистика трафика протокола EGP |
Transmission | 0 | Зарезервировано для обусловленных средой MIB |
SNMP | 29 | Статистика трафика SNMP |
Группа System состоит из семи простых переменных (таблиц в этой группе нет). В таблице 7-33 приведены их имена, типы данных и описания.