Кафедра ИСиТ УО ВГТУ
  • Специальности
    • Экономика электронного бизнеса
    • Информационные системы
    • Information Control Systems
  • Каталог
  • Сайт кафедры
  • Сервисы
    • GitLab
    • ownCloud
    • JupyterHub
    • JupyterHub 2
    • VNC
    • Soft
  1. ИСиТ
  2. Компьютерные сети
  3. Практика
  4. Лаб. работа “Протокол FTP”
  • ИСиТ
    • АОС
      • Теория
        • Введение в операционные системы
        • Управление памятью
        • Управление процессами
        • Система ввода-вывода
        • Информационная безопасность
        • Виртуализация
      • Практика
    • РВПсИПП
      • Теория
        • Настройка среды разработки для PHP
        • Разработка web-приложений на базе фреймворков
        • Основы Laravel
        • Шаблоны в Laravel
        • Модели и базы данных в Laravel
        • Формы и валидация в Laravel
        • Аутентификация и авторизация в Laravel
        • Создание REST API в Laravel
        • Работа с файлами и изображениями в Laravel
        • Тестирование и отладка в Laravel
        • Введение в фреймворк Symfony
        • Маршруты и контроллеры в Symfony
        • Шаблоны и Twig в Symfony
        • Формы и валидация в Symfony
        • Доступ к базам данных в Symfony
        • Аутентификация и авторизация в Symfony
        • Сервисы и зависимости в Symfony
        • Создание REST API в Symfony
        • Работа с файлами и медиа в Symfony
        • Сравнение и выбор фреймворка
        • Развертывание веб-приложения
      • Практика
        • Лаб. работа 1 “Создание нового приложения Laravel”
        • Лаб. работа 2 “Добавление главной страницы и базовых маршрутов”
        • Лаб. работа 3 “Создание моделей, миграций и сидеров”
        • Лаб. работа 4 “Создание индексных страниц и пагинация”
        • Лаб. работа 5 “Создание форм для работы с сущностями”
        • Лаб. работа 6 “Работа с файлами (эмуляция S3-хранилища)”
        • Лаб. работа “Создание маршрутов в Laravel”
        • Лаб. работа “Работа с базами данных в Laravel”
        • Лаб. работа “Работа с формами в Laravel”
        • Лаб. работа “Аутентификация и авторизация в Laravel”
        • Лаб. работа “Работа с файлами в Laravel”
        • Лаб. работа “Тестирование и оптимизация в Laravel”
        • Лаб. работа “Создание REST API в Laravel”
        • Лаб. работа “Основы Symfony”
        • Лаб. работа “Шаблоны и представления в Symfony”
        • Лаб. работа “Работа с базами данных в Symfony”
        • Лаб. работа “Фомы и аутентификация в Symfony”
        • Лаб. работа “Сервисы и зависимости в Symfony”
        • Лаб. работа “REST API в Symfony”
        • Лаб. работа “Работа с медиа контентом в Symfony”
        • Лаб. работа “Создание и развертывание проекта”
    • ПСП
      • Теория
        • Введение
        • Протокол HTTP
        • Программирование с использованием сокетов
        • Введение в PHP
        • Работа с базами данных в PHP
        • Объектно-ориентированные возможности PHP
        • Настройка среды разработки для PHP
        • Разработка web-приложений на базе фреймворков
      • Практика
        • Программное обеспечение
        • Регистрация в JupyterHub
        • Лаб. работа “Почтовые протоколы”
        • Лаб. работа “Протокол FTP”
        • Лаб. работа “Протокол HTTP”
        • Лаб. работа “Программирование сетевых приложений с использованием сокетов”
        • Лаб. работа “Основы PHP”
        • Лаб. работа “Массивы в PHP”
        • Лаб. работа “Создание веб-приложений с использованием Slim”
    • Компьютерные сети
      • Теория
        • Введение в компьютерные сети
        • Топологии сетей
        • Кодирование и мультиплексирование
        • Стеки протоколов
        • Адресация в компьютерных сетях
        • Система доменных имен (DNS)
        • Программирование с использованием сокетов
        • Введение в PHP
        • Протокол HTTP
        • Введение в компьютерные сети
      • Практика
        • Программное обеспечение
        • Регистрация в JupyterHub
        • Лаб. работа “Почтовые протоколы”
        • Лаб. работа “Протокол FTP”
        • Лаб. работа “Протокол HTTP”
        • Лаб. работа “Программирование сетевых приложений с использованием сокетов”
        • Лаб. работа “Основы PHP”
        • Лаб работа “Массивы в PHP”
    • РиОИИС
      • Теория
        • Классификация оптимизационных задач
        • Генетические алгоритмы
        • Системы массового обслуживания
        • Теория игр
        • Машинное обучение
        • Глубокое обучение (Deep learning)
        • Основы функционального программирования
        • Основы программирования на Haskell
        • Введение в логическое программирование
        • Инференция и рассуждения в логическом программировании
        • Разработка экспертных систем
        • Интеллектуальные системы и их архитектура
        • Веб-скрэйпинг
        • Сбор данных с открытых API
      • Практика
        • JupyterHub
        • Лаб. работа “Методы одномерной оптимизации”
        • Лаб. работа “Методы многомерной оптимизации”
        • Лаб. работа “Функции в Python”
        • Лаб. работа “Рекурсия в Python”
        • Лаб. работа “Итераторы в Python”
        • Лаб. работа “Генетические алгоритмы”
        • Лаб. работа “Haskell”
        • Лаб. работа “Логическое программирование”
        • Лаб. работа “Сбор данных с помощью веб-скрейпинга”
    • КСКР
      • Практика
        • Лаб. работа “Одномерные и двумерные массивы в C#”
        • Лаб. работа “Обращение матриц в C#”
    • Системное программирование
      • Теория
        • Управление памятью в Windows
        • Файловые операции в Windows
        • Управление процессами в Windows
        • Графический интерфейс Windows
        • ОС Unix
      • Практика
        • Лаб. работа “Работа с динамической памятью в Windows”
        • Лаб. работа “Операции с файлами в Windows”
        • Лаб. работа “Управление процессами в Windows”
        • Лаб. работа “Работа с виртуальной машиной Linux”
        • Лаб. работа “Язык командного энтерпритатора Shell”
        • Лаб. работа “Работа с файлами в Linux”
        • Лаб. работа “Работа с процессами в Linux”

Содержание

  • Протокол FTP
  • Описание команд протокола FTP
  • Работа с FTP сервером
  • Задания:
  1. ИСиТ
  2. Компьютерные сети
  3. Практика
  4. Лаб. работа “Протокол FTP”

Лаб. работа “Протокол FTP”

Компьютерные сети
Практика
Автор

Бизюк Андрей

Дата публикации

29 февраля 2024 г.

Протокол FTP

FTP (File Transfer Protocol – протокол передачи файлов) – это один из первых и всё ещё широко используемых сервисов Internet. Первые спецификации FTP относятся к 1971 году. С тех пор FTP претерпел множество модификаций и значительно расширил свои возможности. FTP может использоваться как в программах пользователей, так и в виде специальной утилиты операционной системы.

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

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

FTP поддерживает сразу два канала соединения – канал передачи команд (и статусов их обработки) и канал передачи данных.

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

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

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

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

Описание команд протокола FTP

USER пользователь – ввести идентификатор пользователя для работы с файловой системой.

PASS пароль – команда должна следовать непосредственно за командой USER и содержит пароль пользователя.

PASV – перевести FTP-сервер в пассивный режим. В ответ на эту команду сервер возвращает шесть десятичных чисел, определяющих порт, по которому будет осуществляться передача данных. Номер порта вычисляется по формуле :

(пятое число)*256 + (шестое число).

Перед передачей данных клиент должен установить ещё одно соединение с этим портом сервера.

CWD путь – указать путь каталога удалённой файловой системы, в котором желает работать пользователь.

PWD – возвращает строку с текущим каталогом удалённой файловой системы.

LIST [путь] – по каналу передачи данных возвращает содержимое текущего [указанного] каталога удалённой файловой системы. Перед вводом этой команды необходимо установить ещё одно соединение с FTP-сервером, указав порт, полученный по команде PASV.

RETR [путь]файл – команда указывает FTP-серверу передать указанный файл по каналу передачи данных. Перед вводом этой команды необходимо установить ещё одно соединение с FTP-сервером, указав порт, полученный по команде PASV. После передачи файла сервер прекращает соединение.

STOR [путь]файл – сохранить данные в виде файла на FTP-сервере. Перед вводом этой команды необходимо установить ещё одно соединение с FTP-сервером, указав порт, полученный по команде PASV. Все данные, передаваемые по этому соединению, сохраняются на FTP-сервере в файле с указанным именем. Для окончания передачи данных необходимо закрыть соединение.

RNFR [путь]СтароеИмя – переименовать указанный файл.

RNTO [путь]НовоеИмя – команда должна следовать непосредственно за командой RNFR и задаёт новое имя файла.

DELE [путь]файл – удалить указанный файл.

MKD [путь] – создать каталог

RMD [путь] – удалить пустой каталог

QUIT – закончить FTP-сессию

Работа с FTP сервером

Работа с FTP сервером может проходить как в текстовом (командном) режиме так и в графическом. Для работы в текстовом режиме требуется специальная программа – терминальный клиент. Примерами таких программ могут являться TELNET (стандартная программа в большинстве ОС), PuTTY (имеет ряд дополнительных возможностей), Netcat и другие.

В графическом режиме не требуется вводить команды. Работа с файлами и каталогами похожа на работу с файлами и каталогами на локальном диске. Для работы в графическом режиме можно использовать Проводник Windows, Internet Explorer, Total Commander и т.д. 

Для начала работы с сервером, нужно установить к нему подключение. Для этого нужно знать IP-адрес сервера или его DNS-имя, а также порт для подключения (чаще всего 21).

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

220 FTP server ready
..
331 Password request
..
150 Ok
..
421 Err

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

Промежуточным звеном между терминальной программой и графическим клиентом можно считать стандартную утилиту Windows (и других ОС) под названием FTP. Работа с ней также проходит в текстовом режиме, но у неё свой собственный список команд. Эта утилита является оболочкой для стандартных команд FTP. При работе с ней не требуется устанавливать дополнительных соединений (это происходит автоматически). Получаемые данные имеют вид, более понятный для человека.

Задания:

  1. Изучить краткое описание протокола FTP.

  2. С помощью программы PuTTY или Netcat подключиться к FTP-серверу, используя имя пользователя studN (где N - номер рабочего места) и пароль stud. (адрес сервера 192.168.11.119, порт 21)

  3. Получить список файлов и каталогов в каталоге /pub FTP-сервера.

  4. Получить файл readme из каталога /pub.

  5. Создать в каталоге /pub новый каталог (название содержит фамилию латинскими буквами)

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

  7. Удостовериться, что файл создан, и проверить его содержимое.

  8. Переименовать файл в example2.

  9. Удалить ранее созданный каталог.

  10. Изучить утилиту FTP. Повторить пункты 3-10 с помощью этой утилиты.

  11. Повторить пункты 3-10 с помощью проводника Windows (для подключения, в строке адреса ввести ftp://192.168.11.119:21)

Наверх
Лаб. работа “Почтовые протоколы”
Лаб. работа “Протокол HTTP”