FTP

(Перенаправлено з Ftp)

FTP (англ. File Transfer Protocol, укр. протокол передавання файлів) — стандартний мережевий протокол прикладного рівня призначений для пересилання файлів між клієнтом та сервером в комп'ютерній мережі.

Клієнт та сервер створюють окремі канали для передачі даних та обміну командами[1]. Можлива автентифікація клієнтів із використанням відкритого тексту, зазвичай це ім'я користувача (логін) та пароль. Також сервер може бути налаштований для роботи без автентифікації користувачів (так звані «анонімні сеанси»).

Для захисту даних (а також процесу автентифікації) використовують побудований на основі SSL/TLS варіант FTPS, або розширення протоколу SSH — SSH File Transfer Protocol (SFTP).

Перші FTP-клієнти були створені ще до появи графічного інтерфейсу користувача в операційних системах і тому мали інтерфейс командного рядка. Проте, такі клієнти досі є складовою сучасних операційних систем сімейства Windows, UNIX-подібних та операційних систем на основі Linux[2]. Відтоді було створено численні версії FTP клієнтів, підтримка протоколу була вбудована в різноманітні утиліти, сервери, пристрої, тощо.

Загальна інформаціяРедагувати

Протокол передавання файлів (англ. File Transfer Protocol, FTP) дає можливість абоненту обмінюватися двійковими і текстовими файлами з будь-яким комп'ютером мережі, що підтримує протокол FTP. Установивши зв'язок з віддаленим комп'ютером, користувач може скопіювати файл з віддаленого комп'ютера на свій, або скопіювати файл зі свого комп'ютера на віддалений.

При розгляді FTP як сервісу Інтернет мають на увазі не просто протокол, а саме сервіс — доступ до файлів, які знаходяться у файлових архівах.

ІсторіяРедагувати

Перша реалізація протоколу (1971 р.) передбачала обмін між клієнтом і сервером повідомленнями, що складаються з заголовка (72 біт) і даних змінної довжини. Тема повідомлення містила у собі запит до FTP-сервера або відповідь від нього, тип і довжину переданих даних. Як дані передавалися параметри запиту (наприклад, шлях і ім'я файлу), інформація від сервера (наприклад, список файлів у каталозі) і самі файли. Таким чином, команди і дані передавалися по одному і тому ж каналу.

У 1972 р. протокол був повністю змінений, і прийняв вигляд, близький до сучасного. Команди з параметрами від клієнта та відповіді сервера передаються по TELNET-з'єднанню (канал керування), для передавання власне даних створюється окреме з'єднання (канал даних).

Наступні редакції додали можливість роботи в пасивному режимі, пересилання файлів між FTP-серверами, ввели команди отримання інформації, зміни поточного каталогу, створення і видалення каталогів, збереження файлів під унікальним ім'ям. Деякий час існували команди для пересилання електронної пошти через FTP, проте згодом їх виключили з протоколу.

У 1980 р. FTP-протокол став використовувати TCP. Остання редакція протоколу випущена в 1985 р. У 1997 р. з'явилося доповнення до протоколу, що дозволяє шифрувати і підписувати інформацію в каналі керування і каналі даних. У 1999 р. випущено додаток, присвячений інтернаціоналізації протоколу, яке рекомендує використовувати кодування UTF-8 для команд і відповідей сервера і визначає нову команду LANG, що встановлює мову відповідей.

ДіїРедагувати

  • RETR — ім'я файлу (взяти файл)
  • STOR — ім'я файлу (передати файл)
  • REST — маркер (для докачки вже частково скаченного файлу — зазвичай вказується зсув у байтах)
  • DELE — ім'я файлу, що видаляється
  • RMD — ім'я директорії, що видаляється
  • MKD — ім'я створюваної директорії
  • PWD — у відповіді вказати ім'я поточної директорії
  • LIST [ім'я директорії або файлу] — передати по з'єднанню даних список імен файлів в директорії або інформацію про фото
  • SYST — відповідь повинен містити тип ОС сервера і ін корисну інформацію
  • STAT — відповідь містити інформацію про поточний стан сервера; якщо команда видана в процесі передачі файлу і передуватиме посилкою сигналів telnet-а IP і Synch, то відповідь д. містити інформацію про стан пересилання
  • STAT ім'я файлу — відповідь повинна містити інформацію про фото{що?}
  • HELP [ім'я команди] — опис роботи даної команди
  • NOOP — порожня команда

Деякі типи данихРедагувати

Коди поверненняРедагувати

При виконанні FTP система повертає трехразрядного десяткові коди-помилки, які дозволяють судити про коректність обміну. Видача коду супроводжується текстом-коментарем. Перша цифра може приймати значення від 1 до 5.

Перша цифра:

1yz — попередній позитивну відповідь: команда прийнята, але не завершена

2yz — дія успішно завершено

3yz — команда прийнята, сервер чекає додаткову інформацію

4yz — тимчасова невдача, повторити через деякий час

5yz — фатальна помилка

Друга цифра: x0z — синтаксис

x1z — відповідь на запит інформації

x2z — відповідь відноситься до стану керуючого з'єднання або з'єднання даних

x3z — аутентифікація та облік

x4z — сенс не визначений

x5z — стан файлової системи сервера

Деякі коди відповідейРедагувати

ПриміткиРедагувати

  1. Forouzan, B.A. (2000). TCP/IP: Protocol Suite (en) (вид. 1st). New Delhi, India: Tata McGraw-Hill Publishing Company Limited. 
  2. Kozierok, Charles M. (2005). The TCP/IP Guide v3.0. Tcpipguide.com. 

Див. такожРедагувати

ПосиланняРедагувати

  • Первісна специфікація FTP RFC 959
  • Розширення безпеки RFC 2228
  • Інтернаціоналізація FTP RFC 2640
  • Розширення NAT-PT для підтримки FTP RFC 2766
  • Шифрування KEA і SKIPJACK RFC 2773
  • Розширення команд FTP RFC 3659
  • Реєстр команд та розширень FTP RFC 5797