FTP

Модель TCP/IP (RFC 1122)
Прикладний рівень
Транспортний рівень
Мережевий рівень
Канальний рівень
Цей шаблон:
  • переглянути
  • обговорити
  • редагувати

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. Установивши зв'язок з віддаленим комп'ютером, користувач може скопіювати файл з віддаленого комп'ютера на свій, або скопіювати файл зі свого комп'ютера на віддалений.

Історія

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

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

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

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

Опис

Типи даних

FTP має 4 типи даних для файлів[3]:

  • ASCII — файл у форматі ASCII. Символи нового рядка конвертуються при передаванні файлів між різними системами.
  • EBCDIC — аналогічно до попереднього, але в іншому кодуванні
  • IMAGE — передача бінарних файлів, не змінюючи байти
  • Local — для файлів в яких байти не є октетами

Команди

Команди ідентифікуються три або чотирилітерними кодами[4].

Цей розділ потребує доповнення.

Коди відповідей

Цей розділ потребує доповнення.

Див. також

Примітки

  1. Forouzan, B.A. (2000). TCP/IP: Protocol Suite (англ.) (вид. 1st). New Delhi, India: Tata McGraw-Hill Publishing Company Limited.
  2. а б Kozierok, Charles M. (2005). The TCP/IP Guide v3.0. Tcpipguide.com. Архів оригіналу за 11 січня 2021. Процитовано 8 січня 2021.
  3. Архівована копія. Архів оригіналу за 1 грудня 2021. Процитовано 1 грудня 2021.{{cite web}}: Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title (посилання)
  4. FTP Internal Protocol Commands and Command Groups 1 [Архівовано 1 грудня 2021 у Wayback Machine.], 2 [Архівовано 1 грудня 2021 у Wayback Machine.]

Посилання

  • RFC 697 (липень 1975) — команда CWD
  • RFC 959 (жовтень 1985) — File Transfer Protocol (Internet Standard)
  • RFC 1579 (лютий 1994) — Firewall-Friendly FTP (Informational)
  • RFC 1635 (Травень 1994) How to Use Anonymous FTP (Informational)
  • RFC 1639 (Червень 1994) FTP Operation Over Big Address Records (FOOBAR)
  • RFC 1738 (Грудень 1994) Uniform Resource Locators (URL)
  • RFC 2228 (Жовтень 1997) FTP Security Extensions (Proposed Standard)
  • RFC 2389 (Серпень 1998) (Proposed Standard) Feature negotiation mechanism for the File Transfer Protocol (Proposed Standard)
  • RFC 2428 (Вересень 1998) (Proposed Standard) Extensions for IPv6, NAT, and Extended passive mode (Proposed Standard)
  • RFC 2577 (Травень 1999) FTP Security Considerations (Informational)
  • RFC 2640 (Липень 1999) Internationalization of the File Transfer Protocol (Proposed Standard)
  • RFC 3659 (Березень 2007) Extensions to FTP (Proposed Standard)
  • RFC 5797 (Березень 2010) FTP Command and Extension Registry (Proposed Standard)
  • RFC 7151 (Березень 2014) File Transfer Protocol HOST Command for Virtual Hosts (Proposed Standard)
  • п
  • о
  • р
Загальні відомості
Логічна топологія
Фізична топологія
Зірка  · Шина‎  · Кільцева топологія мережі
Способи передавання
Протоколи
передавання даних
Передавання файлів  · FTP  · FTPmail · SFTP  · SCP  · BitTorrent
Мережа
передавання даних
Інше
  • п
  • о
  • р
Схеми URI
Офіційні
aaa: • aaas: • acap[en]: • cap: • cid: • crid[en]: • data[en]: • dav: • dict: • dns: • fax: • file[en]: • ftp: • go: • gopher: • h323: • http: • https: • im: • imap: • ldap: • mailto: • mid: • news: • nfs: • nntp: • pop: • pres: • rtsp: • sip: • sips: • snmp: • tel: • telnet: • urn: • wais: • xmpp:
Неофіційні
about:[en] • aim: • bolo: • btc: • bzr: • callto: • chrome: • cvs: • daap: • ed2k: • ed2kftp: • feed[en]: • fish: • git: • gizmoproject: • iax2: • irc: • ircs: • itms: • lastfm: • ldaps: • magnet: • mms: • msnim: • psyc: • rsync: • secondlife: • skype: • ssh: • svn: • sftp: • smb: • sms: • soldat: • steam: • unreal: • ut2004: • view-source[en]: • webcal: • xfire: • ymsgr:
Інтернет Це незавершена стаття про Інтернет.
Ви можете допомогти проєкту, виправивши або дописавши її.