прикладний рівень
Служба FTP. Протокол FTP. протокол TFTP
служба FTP
З лужба FTP призначена для обміну файлами і побудована за технологією "клієнт-сервер". Взаємодія клієнта і сервера здійснюється за протоколом FTP (File Transfer Protocol - протокол передачі файлів).
Клієнт посилає запити серверу, приймає і передає файли.
Сервер обробляє запити клієнта, передає і приймає файли.
Взаємодія клієнта і сервера по протоколу FTP
FTP-клієнт - це програмний інтерфейс користувача, який реалізує протокол передачі файлів FTP. Ця програма дозволяє користувачеві передавати файли між двома комп'ютерами, пов'язаними між собою локальною (LAN) або глобальної (WAN) мережею. При цьому комп'ютерні платформи можуть бути різних типів.
FTP-сервери, як правило, доступні тільки для зареєстрованих користувачів і вимагають при підключенні:
ввести код (login - вхідний ім'я)
і пароля (password).
ftp://ftp.ware.ru/pub/win/internet/ftp/dl.zip
означає "зв'язатися з FTP-сервером з правами для анонімних користувачів, перейти в каталог pub, далі в каталог win, каталог internet, каталог ftp і взяти файл dl.zip".
протокол FTP
Протокол FTP (File Transfer Protocol - протокол передачі файлів) використовується службою FTP для передачі файлів, безпосередньо взаємодіє з протоколом транспортного рівня TCP.
Перший стандарт - RFC-114 (File Transfer Protocol A.K. Bhushan Apr-10-1971).
Остання версія - RFC-959 (File Transfer Protocol J. Postel, J.K. Reynolds Oct-01-1985).
FTP відрізняється від інших додатків тим, що він використовує два TCP з'єднання для передачі файлу:- Керуюче з'єднання - з'єднання для посилки команд сервера і отримання відповідей від нього.
Для організації такого з'єднання використовується протокол Telnet. Telnet-з'єднання встановлюється в один крок - посилка запиту і очікування відповіді, отримання якого свідчить про можливість передачі команд FTP.
Канал управління існує протягом усього FTP-сесії і закривається після завершення інформаційного обміну.
Передача файлів після встановленого Telnet-з'єднання здійснюється через логічне з'єднання, організовується протоколом TCP, який перевіряє доступність портів, закріплених за FTP.
Канал даних формується і ліквідується в міру необхідності.
Протокол FTP передбачає два можливих режими встановлення зв'язку для обміну файлами:- активний режим;
- пасивний режим.
активний режим
Дії клієнта та сервера:- Клієнт встановлює зв'язок і посилає з нестандартного порту N (N> тисячу двадцять чотири) запит на 21 порт сервера;
- Сервер посилає відповідь на порт N клієнта;
- Сервер встановлює зв'язок для передачі даних по порту 20 на порт клієнта N + 1.
Приклад встановлення зв'язку для обміну файлами в активному режимі
Активний режим вигідний для FTP-сервера, але шкідливий для клієнта. Так як FTP сервер намагається з'єднатися з випадковим високим (за номером) портом на клієнті, то таке з'єднання може бути блоковано брандмауером на стороні клієнта.
пасивний режим
Дії клієнта та сервера- Клієнт встановлює зв'язок і надсилає запит (повідомляє, що треба працювати в пасивному режимі) на 21 порт сервера з нестандартного порту N (N> 1024);
- Сервер призначає нестандартний порт P для каналу даних (P> 1024) і посилає на порт N клієнта відповідь, в якому повідомляє номер порту P;
- Клієнт встановлює зв'язок для передачі даних по порту N + 1 на порт сервера P.
Приклад встановлення зв'язку для обміну файлами в пасивному режимі
Пасивний режим вигідний для клієнта, але шкідливий для FTP-сервера. Клієнт буде робити два з'єднання до сервера, при цьому друге буде до випадкового високому порту. Таке з'єднання може бути блоковано брандмауером на стороні сервера.
Схема з'єднання по протоколу FTP в активному режимі
Робота FTP на призначеному для користувача рівні при передачі файлів містить кілька етапів:- Ідентифікація (введення імені-ідентифікатора і пароля);
- Вибір каталогу;
- Визначення режиму обміну:
- передача файлів в текстовому вигляді;
- передача файлів в бінарному вигляді;
- Виконання команд обміну;
- Завершення роботи.
Протокол FTP визначає запит-відповідь спосіб взаємодії між програмою-клієнтом і програмою-сервером.
Список команд для роботи з FTP-сервером (FTP-клієнт реалізований на ЕОМ з ОС Windows) наведено в дод. 8.1.
Приклад сеансів роботи з FTP-сервером pds.sut.ru наведено в дод. 8.2.
протокол TFTP
Іноді для передачі файлів використовується спрощений протокол TFTP (Trivial File Transfer Protocol - найпростіший протокол передачі файлів). Він працює поверх транспортного протоколу UDP. Обмін здійснюється в стартстопном режимі (з підтвердженням доставки кожного переданого інформаційного блоку) пакетами стандартної довжини (512 байт) з заголовком (4 байта). Контроль помилок не виконується. Пакет вважається прийнятим, якщо на нього отримано підтвердження, в іншому випадку виконується одноразова повторна передача.
Для початку обміну клієнт випадковим чином вибирає унікальний ідентифікатор TID (номер порту) і видає на сервер запит на читання (RRQ) або запис (WRQ) файлу. Запит відправляється на UDP-порт 69 (порт ініціалізації). Сервер також випадковим чином вибирають номер порту (унікальний ідентифікатор TID) і видає клієнтові підтвердження готовності (ACK). Потім починається передача файлу (команда DATA, блок даних, номер блоку, ...). З'єднання закривається після передачі пакета, що має довжину менше 512 байт, і при отриманні пакету ERROR.
Команди протоколу TFTP:- Read request (RRQ) - запит на читання файлу;
- Write request (WRQ) - запит на запис файлу;
- Data (DATA) - пакет даних;
- Acknowledgment (ACK) - підтвердження;
- Error (ERROR) - помилка.
Зазвичай TFTP використовується при завантаженні ОС в бездискові робочі станції і для завантаження конфігураційних файлів в маршрутизатор.
Завдання режиму передачі файлів в двійковому форматі.
В цьому режимі файл передається в незмінному вигляді по байтах