5, 6, 7, 8 . FTP, TFTP, SFTP FTP устанавливает два соединения: управляющее и для передачи данных. SFTP – одно соединение. TFTP – условно одно соединение. FTP, SFTP использует на транспортном уровне TCP. TFTP – UDP. Ненадёжный протокол, не ориентированный на соединение. FTP Рис: модель FTP. File Transfer Protocol (букв. «протокол передачи файлов») — сетевой протокол, предназначенный для передачи файлов в компьютерных сетях. Протокол FTP позволяет подключаться к серверам FTP, просматривать содержимое каталогов и загружать файлы с сервера или на сервер, кроме того возможен режим передачи файлов между серверами (см. FXP). FTP является одним из старейших прикладных протоколов, появившимся задолго до HTTP в 1971 году. До начала 90-х годов на долю FTP приходилось около половины трафика в сети интернет. Этот протокол и сегодня широко используется для распространения программного обеспечения и доступа к удалённым хостам. Протокол не шифруется, при аутентификации передаёт логин и пароль открытым текстом. Изначально протокол предполагал встречное TCP-соединение от сервера к клиенту для передачи файла или содержимого каталога. Это делало невозможным общение с сервером, если клиент находится за IP NAT, кроме того, часто запрос соединения к клиенту блокируется файерволом. Чтобы этого избежать, было разработано расширение протокола FTP passive mode, когда соединение для передачи данных тоже происходит от клиента к серверу. Кроме того, этой проблемы можно избежать, если использовать прокси-сервер. Модель работы начнём с протокола FTP – использует модель клиент-сервер. На клиентской стороне – ПИ и интерфейс протокола пользователя. На стороне сервера – интерфейс протокола сервера. Последние два – для управления. Ещё соединение для передачи данных... Устанавливаются 4 опции, которые пользователь может при передаче данных: 1. Тип файла (локальный – старый тип файла, сейчас практически не используется, использовался, когда байт не был равен 8-ми битам (7 или 10, например); ASCII – текстовые данные – большинство компьютеров используют, BCD – на машинах мейнфреймовой системы – машина, которая использует ASCII, , бинарный – для передачи двоичной информации). 2. Формат файла. NoPrint – файл не содержит никаких форматирующих символов – большинство реализаций сейчас (в госах спрашивается), telnet – происходит управление вертикальным форматов, Fortran – ЯП, управляющие различные символы – означает, что первый символ управляющий является форматом строки – как правило, сейчас не используется.. 3. Режим передачи. 3 шт. Блочное, со сжатием (напр, {70 - это сжатые комменты - фигурная скобка, количество, символ) и потоковое. 4. Тип структуры. В учебном пособии не выделен с новой строки, студенты. (-: Это структура с записями и файловая структура. Если файловая структура используется, то конец файла отмечается закрытием соединения. Устанавливается NoPrint, файловая структура и потоковый режим передачи. Единственный выбор, который должен сделать пользователь – текстовый или двоичный режим передачи. Рассмотрим типичный сеанс FTP – состоит из 4-х стадий. 1. Программа FTP соединяется с FTP-сервером. 2. Пользователь регистрируется на сервере. Логин можно anonymus. В качестве пароля можно ввести адрес электронной почты. Любой(-: Главное, чтобы синтаксис соблюдался. Можно не anonymus – если не собираетесь ничего изменять. 3. Сервер и клиент. Обмениваются командами и сообщениями. 4. Закрывается FTP-соединение сервера. Официальный порт – 21. Есть активное и пассивное соединение. Активный сервер: клиент сообщает серверу свой IP и номер порта, куда сервер будет передавать данные. Команда PORT. С файрволом может не работать. Команда PASS – означает «я буду снимать данные сам». С 20-го порта снимает. Команды FTP Их более 30-ти. Три категории: 1. команды Контроля доступа передают информацию, которая идентифицирует пользователя или сообщает серверу, к каким каталогам программа-клиент хочет (USER, PASS, ...) есть параметр/нет параметра. PASS – надо вводить пароль... Указание дистанционной записи пользователя – нужно указать тот ресурс, к которому пользователь собирается осуществить доступ. 2. команды Передачи параметров позволяют устанавливать те опции, о которых мы говорили. Выбор каталога управления файлами. Команда описания типа, структуры, режима: A, E, 1, N, t, F - файл, R – запись. 3. команды Обслуживания (На госах именно LIST будет красным флажком... Когда будут вопросы по поводу классификации команд FTP, нужно обращать внимание на эту команду) PORT адрес, номер порта Коды ответа сервера Содержит 3 цифры. Очень важны первые (1-5). Важны вторые (0-5). Третья – фиг с нею. Первая цифра: 1. Команда предварительно успешно выполнена. 2. Команда выполнена. 3. Команда принята, но требуется дополнительная информация. 4. Команда будет отвергнута (предварительная информация). 5. Команда отвергнута. Вторая цифра: 1. Команда имеет неправильный синтаксис или эта команда не подлежит классификации. 2. Данные. 3. Соединение. 4. Относится к авторизации. 5. Не используется. 6. Тип файловой системы. TFTP (Trivial File Transfer Protocol) — простой протокол передачи файлов. Используется главным образом для первоначальной загрузки бездисковых рабочих станций. Протокол TFTP, в отличие от FTP, не содержит возможностей аутентификации (хотя возможна фильтрация по IP-адресу) и основан на транспортном протоколе UDP. Простой, используется для копирования между соответствующими компьютерами. Передаёт данные дейтаграммами, т.е. на транспортном уровне использует UDP. При реализации на другом стеке должен запускаться поверх службы доставки данных. Особенно полезен для инициализации сетевых устройств – маршрутизаторы, мосты, концентраторы. Характеристики: пересылка данных размером до 512 октет (байт), за исключением последнего блока. Указание для каждого блока простого 4-х байтового заголовка. Нумерация блоков идёт от 1. Поддержка пересылки двоичных и ASCII-октетов. Две функции: чтение и запись удалённых файлов. Отсутствие ограничений по аутентификации пользователей. Именно этот протокол стал протоколом для размещения ОС на бездисковых сетевых станциях. Сеанс TFTP обычно начинается запросом на чтение или на запись. Клиент начинает работу после получения порта, соответственно, посылая запрос на чтение или на запись на порт 69. Сервер идентифицирует различные номера портов клиентов и использует их для последующей пересылки данных. Обмен данными и ACK-пакетами. Каждый блок – 512... в TFTP существуют 5 типов элементов данных 1. Запрос на чтение; 2. Запрос на запись. 3. Данные 4. Подтверждение 5. Ошибка. Сообщение об ошибке указывает на события, подобные «файл не найден», «файл не открыт», «на диске нет места». Каждый заголовок начинается операционным кодом, который характеризует тип элемента. Подтверждение – всего два октета – 16 бит. Протокол SFTP SFTP расшифровывается как SSH File Transfer Protocol -- SSH-протокол для передачи файлов. Он предназначен для копирования и выполнения других операций с файлами поверх надёжного и безопасного соединения. Как правило, в качестве базового протокола, обеспечивающего соединение, и используется протокол SSH2, но это не обязательно. SFTP даёт возможность выполнять намного больше операций : например, докачивать после разрыва соединения или удалять файл на сервере. Существует заблуждение, что SFTP это просто обычный FTP, работающий поверх SSH. В действительности SFTP -- это новый протокол, разработанный с нуля. Ещё его иногда путают с Simple File Transfer Protocol. SFTP расшифровывается как SSH File Transfer Protocol и ничего общего с Simple File Transfer Protocol не имеет. Сам по себе протокол SFTP не обеспечивает безопасность работы; это делает нижележащих протокол. Как правило, SFTP используется в сочетании с протоколом SSH2 (он даже бы разработан той же рабочей группой). Можно использовать SFTP и с другими протоколами, например SSH1, но это сопряжено с дополнительными трудностями. При загрузке (upload) файлов наряду с данными на сервер могут копироваться и метаданные файла, в частности временные метки (timestamps), что при желании даёт возможность сохранить в загруженном на сервер файле время модификации неизменным. В настоящий момент протокол SFTP не принят в качестве официального стандарта Интернет. SFTP-протокол передачи файлов пользуется популярностью в тех случаях, если пользователю необходим чуть более гибкий и надежный протокол, чем TFTP и не такой сложный и громоздкий, как FTP. SFTP поддерживает механизмы идентификации пользователя, передачу файлов, просмотр каталогов, изменение текущего каталога, переименование и удаление файлов. В большинстве операций, которые пользователь проводит с удаленным FTP-сервером, этого сервиса вполне достаточно. SFTP может передавать 8-битный поток данных и использует, как TFTP, только один канал соединения - как для команд, так и для данных. В отличие от TFTP, SFTP работает поверх TCP, порт 115. Команды SFTP отправляются поочередно, после получения ответа обработки предшествующей команды. Все команды состоят из четырех ASCII- символов и символа пробела, который отделяет команду от аргументов. Ответ сервера состоит из кода ответа и текстового сообщения. Каждая команда и ответ должны заканчиваться символом <NULL> (‘\0’- то же, что и завершение строки в C). SFTP для управления передачей данных использует всего 11 основных команд и только 4 кода ответа (символы: "+” - успешно, "-” - ошибки, "!” - внимание, " ” - другое). Команда SFTP имеют почти тот же синтаксис и предназначение, что и аналогичные команды FTP.