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

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

FTP — стандартна програма, яка працює за протоколом TCP, яка завжди поставляється з операційною системою. Її початкове призначення — передача файлів між різними комп'ютерами, які працюють у мережах TCP/IP: на одному з комп'ютерів працює програма-сервер, на іншому — програма-клієнт, запущена користувачем, яка з'єднується з сервером і передає або отримує файли через FTP-сервіс. Все це розглядається з припущенням, що користувач зареєстрований на сервері та використовує логін та пароль на цьому комп'ютері.

Ця риса послужила причиною того, що програми FTP стали частиною окремого сервісу Інтернету. Справа в тому, що доволі часто сервер FTP налаштовується таким чином, що з'єднатися з ним можна не тільки під своїм ім'ям, але й під умовним іменем anonymous — анонім. У такому випадку для користувача стає доступною не вся файлова система комп'ютера, а лише деякий набір файлів на сервері, які складають вміст серверу anonymous FTP — публічного файлового архіву. Отже, якщо користувач хоче надати у вільне користування файли з інформацією, програмами і т. і., то йому достатньо організувати на власному комп'ютері, включеному в Інтернет, сервер anonymous FTP. Створення такого серверу — процес доволі простий, програми-клієнти FTP вельми розповсюджені, — тому сьогодні публічні файлові архіви організовані в основному як сервери anonymous FTP. Перелік інформації, яка міститься на таких серверах, включає всі аспекти життя: від звичайних текстів до мультимедіа.

Не зважаючи на розповсюдженість, у FTP є багато недоліків. Програми-клієнти FTP не завжди зручні і прості у користуванні. Користувач не завжди може зрозуміти який файл перед ним, чи той що необхідно, чи ні. Окрім того, не існує простого і універсального засобу для пошуку на серверах anonymous FTP, — хоча для цього і існує спеціальний сервіс archie, але це незалежна програма, вона не універсальна і не завжди її можна ефективно застосовувати. Програми FTP доволі старі і деякі їхні особливості, які були потрібні в часи їхнього створення, не зовсім зрозумілі і потрібні зараз. Наприклад, для передачі файлів існує два режими — двійковий та текстовий, і, якщо користувач неправильно обрав режим передачі, то файл, який необхідно передати, може бути пошкодженим. Опис файлів на сервері видається у форматі операційної системи серверу, а список файлів операційної системи UNIX не завжди з розумінням сприймається користувачами DOS. Сервери FTP нецентралізовані, — звідси випливають ще деякі проблеми. Але незважаючи на все це, сервери anonymous FTP сьогодні — це стандартний шлях організації публічних файлових архівів в Інтернеті.

FTP — сервіс прямого доступу, який вимагає повноцінного підключення до Інтернету, але є можливість доступу і через електронну пошту — існують сервери, які пересилають за допомогою електронної пошти файли з будь-яких серверів anonymous FTP. Проте цей шлях отримання інформації - досить незручний, оскільки такі сервери можуть бути сильно завантажені і запит доволі довго чекатиме своєї черги. Крім того, великі файли при пересилці діляться сервером на частини обмеженого обсягу і, якщо одна з частин загубиться і буде пересланою із пошкодженнями, то весь файл стане непридатним.

Схема FTP

FTP служба побудована за добре відомою схемою "клієнт-сервер". Клієнт (браузер, Windows Commander, NetVampir ...) посилає запити серверу і приймає файли. Сервер FTP (vsftpd, IIS ...) опрацьовує запити клієнта на отримання файла.  

Взаємодія клієнта і сервера по протоколу FTP.gif

Взаємодія клієнт і сервера за протоколом FTP. Служба FTP базується на двох стандартах: URL (Universal Resource Locator) - універсальний спосіб адресації ресурсів у мережі; FTP (File Transfer Protocol) - протокол передачі файлів.

Протокол FTP

File Transfer Protocol - протокол передачі файлів, протокол високого рівня (а саме, рівня додатків). Використовується службою FTP для передачі файлів.
Перший стандарт - RFC114 (File Transfer Protocol AK Bhushan Apr-10-1971).
Остання версія - RFC959 (File Transfer Protocol J. Postel, JK Reynolds Oct-01-1985).
FTP відрізняється від інших програм тим, що він використовує два TCP з'єднання для передачі файлу. Керуюче з'єднання - з'єднання для посилки команд серверу й одержання відповідей від нього. Для каналу керування використовується протокол Telnet.
З'єднання даних - з'єднання для передачі файлів.
1 Керуюче з'єднання - з'єднання для посилки команд серверу й одержання відповідей від нього. Для каналу керування використовується протокол Telnet.
2 З'єднання даних - з'єднання для передачі файлів


Файл:Схема двох каналів зєднання по протоколу FTP.gif
Схема двох каналів зєднання по протоколу FTP


В старих версіях для передачі даних використовувався тільки 20-й порт (активний режим), у сучасних версіях FTP-серверів порт для каналу даних може призначатися сервером з нестандартних (N> 1024) портів (пасивний режим).
Протокол FTP визначає запит-відповідь спосіб взаємодії між програмою-клієнтом і програмою-сервером.
Робота FTP на рівні користувача містить кілька етапів:
1.Ідентифікація (логуватись).
2.Вибір каталогу.
3.Визначення режиму обміну (поблочно, потоковий, ascii або двійковий).
4.Виконання команд обміну (get, mget, dir, mdel, mput або put).
5.Завершення процедури (quit або close).

Різниця роботи пасивного режиму та активного

Активний режим

Дії сервера і клієнта:
1.Клієнт встановлює зв'язок і надсилає запит на 21 порт сервера з порту N (N> 1024)
2.Сервер посилає відповідь на порт N (N> 1024) клієнта
3.Сервер встановлює зв'язок для передачі даних по порту 20 на порт клієнта N +1

Файл:Активний режим FTP.gif
Активний режим FTP


Пасивний режим

Дії сервера і клієнта:
1.Клієнт встановлює зв'язок і надсилає запит (повідомляє, що треба працювати в пасивному режимі) на 21 порт сервера з порту N (N> 1024)
2.Сервер посилає відповідь і повідомляє номер порту для каналу даних P (P> 1024) на порт N (N> 1024) клієнта
3.Клієнт встановлює зв'язок для передачі даних по порту N +1 на порт сервера P (P> 1024)

Файл:Активний режим FTP.gif
Активний режим FTP

Див. також

Посилання