FTP
FTP (RFC-959) забезпечує файловий обмін між віддаленими користувачами. Протокол FTP формувався багато років. Перші реалізації в МТИ відносяться до 1971. (RFC 114 і 141). RFC 172 розглядає протокол, орієнтований на користувача, і призначений для передачі файлів між ЕОМ. Пізніше в документах RFC 265 і RFC 281 протокол був удосконалений. Помітній переробці протокол піддався в 1973, і остаточний вигдяд він знайшов у 1985 році. Таким чином, даний протокол є одним з найстарших. Для реалізації обміну між двома персональними ЕОМ у межах мережі (програмні пакети PCTCP, і т.д.) можна резидентно завантажити FTPSRV або іншу еквівалентну програму. Також як і у випадку TELNET необхідна ідентифікація, але багато депозитаріїв допускають анонімний вхід (ім'я користувача ANONYMOUS, RFC-1635), що не вимагає слова пропуску (пароля) або допускає уведення вашої поштової адреси замість нього
Робота FTP на користувацькому рівні містить кілька етапів:
- 1. Ідентифікація (введення імені-ідентифікатора і пароля).
- 2. Вибір каталогу.
- 3. Визначення режиму обміну (поблочний, потоковий, ASCII або двійковий).
- 4. Виконання команд обміну (get, mget, dir, mdel, mput або put).
- 5. Завершення процедури (quit або close).
FTP досить незвичайна процедура, тому що підтримує два логічні зв'язки між ЕОМ. Один зв'язок служить для віддаленого доступу і використовує протокол Telnet. Інший зв'язок призначений для обміну даними. Сервер робить операцію passive open для порту 21 і чекає з'єднання з клієнтом. Клієнт здійснює операцію active open для порту 21. Канал залишається активним до завершення процедури FTP. TOS (тип IP-сервісу) відповідає мінімуму затримки, тому що цей канал використовується для ручного введення команд. Канал для передачі даних (TCP) формується щораз для пересилання файлів. Канал відкривається перед початком пересилання і закривається по коду end_of_file (кінець файлу). IP-тип сервісу (TOS) у цьому випадку орієнтований на максимальну пропускну здатність.
Кінцевий користувач взаємодіє з протокольним інтерпретатором, у задачі якого входить керування обміном інформацією між користувачем і файловою системою, як місцевої, так і вилученої. Схема взаємодії різних частин Internet при роботі FTP зображена на мал. нижче
Спочатку по запиту клієнта формується канал керування, що надалі використовується для передачі команд від клієнта і відгуків від сервера. Інформаційний канал формується сервером по команді клієнта, він не повинний існувати постійно протягом усієї FTP-сесії і може формуватися і ліквідуватися в міру необхідності. Канал керування може бути закритий тільки після завершення інформаційного обміну. Для каналу керування використовується протокол Telnet. Після того як керуючий канал сформований, клієнт може посилати по ньому команди. Сервер сприймає, інтерпретує ці команди і передає відгуки.
Можлива й інша схема взаємодії, коли з ініціативи клієнта здійснюється файловий обмін між двома ЕОМ, жодна з яких не є машиною клієнта.
На фазі завдання режиму обміну надаються наступні можливості: - Команда Block зберігає структуру логічних записів файлу. - Команда Stream встановлює режим, при якому не виробляється пересилання контрольної інформації для блоків. Це найбільш швидкий режим обміну, він працює за замовчуванням. - Команда TYPE може задати режими обміну IMAGE, ASCII або EBCDIC. З них ASCII - використовується за замовчуванням. Режим EBCDIC застосовується для обмінів між ЕОМ, що працюють з набором символів EBCDIC. Режим IMAGE припускає обмін 8-бітними байтами, використовується для передачі двійкової (а не текстової) інформації. Структурно інформація може передаватися у вигляді файлів (структура за замовчуванням), у вигляді послідовності записів (застосовно для текстових файлів ASCII або EBCDIC) або посторінково (остання структура не відноситься до числа що рекомендуються).
Для копіювання файлу з віддаленого сервера використовується команда GET, для копіювання групи файлів - MGET, в останньому випадку застосовуються символи замінники, наприклад, MGET *.txt (або RFC-18*.txt, при цьому копіюються файли з RFC-1800.txt до RFC-1899.txt, якщо такі існують у поточному каталозі). Аналогом команди GET в якійсь мірі є команда DIR (ls), тільки вона переносить вміст каталогу, що для деяких операційних систем еквівалентно. При використанні модифікації mget виявляйте обережність - ви можете заблокувати телекомунікаційний канал тривалим копіюванням. Для запису файлу у віддалений сервер застосовується команда PUT. При операціях обміну звичайно використовується поточний каталог локальної ЕОМ. У вашому розпорядженні завжди мається можливість поміняти місцевий каталог за допомогою команди LCD або її аналога. Будь-яка команда обміну виконується в кілька етапів:
- Формування каналу під керуванням клієнта, тому що саме клієнт видав команду get, dir, put і т.д.
- Клієнт вибирає довільний номер порту на своєї ЕОМ і здійснює процедуру passive open для цього порту.
- Клієнт посилає номер порту серверу по каналу керування (порт 21), використовуючи команду PORT. Можна обійтися і без команди PORT (використовується той же порт, що й у командному каналі), але це збільшує затримки і з цієї причини не рекомендується.
- Сервер одержує номер порту по каналу керування і видає команду active open у зазначений порт Еом-клієнта. Сервер для каналу даних завжди використовує порт із номером 20.