В даний час, коли популярність World Wide Web достатньо велика, об'єм трафіку, що передається по мережі Internet по протоколу FTP займає тим не менш перше місце, дещо випереджуючи об'єм трафіку по протоколу HTTP. У цьому світлі організація файлових архівів в рамках технології TCP / IP є вкрай актуальним завданням.
Архіви використовують для вирішення різних завдань, однак найбільш популярними в мережі є вільно доступні архіви або такі архіви, доступ до яких дозволений за анонімним ідентифікатором користувача. Таким чином ці архіви можна використовувати в якості:
- колекції вільно розповсюджуваного програмного забезпечення;
- колекції програм для бета-тестування;
- колекції нормативних і регламентних документів;
- і т.п.
FTP-архів можна використовувати і в якості архіву комерційного програмного забезпечення, яке використовується в компанії, тільки в цьому випадку такий архів не повинен дозволяти анонімного доступу до зберігаються в ньому ресурсів.
В даний час всю систему взаємодії компонентів FTP-обміну можна представити у вигляді схеми представленої на малюнку 4.1.
На цій схемі показано два важливих технологічних моменти: по-перше, доступ до архіву можна здійснювати не тільки зі спеціалізованої програми-клієнта, а й з універсального броузера, наприклад Netscape Communicator або Microsoft Internet Explorer, а по-друге, для пошуку інформації в FTP -архівах можна скористатися програмою Archie.
Мал. 4.1. Схема взаємодії компонентів FTP-обміну
При цьому слід чітко розуміти, що Archie та FTP - це абсолютно різні технології. У більшості випадків доступ до Archie-сервера користувачі здійснюють з Archie-клієнта, який знаходиться на тій же машині, що і сервер, тобто спочатку користувач по Telnet заходить як користувач Archie, а потім використовує програму-клієнт (зазвичай вона запускається в якості оболонки) для доступу до Archie сервера.
Протокол FTP (File Transfer Protocol)
FTP (File Transfer Protocol або "Протокол Передачі фото") - один з найстаріших протоколів в Internet і входить в його стандарти. Обмін даними в FTP проходить по TCP-каналу. Побудований обмін за технологією "клієнт-сервер". На малюнку 4.2 зображена модель протоколу.
Мал. 4.2. модель протоколу
В FTP з'єднання ініціюється інтерпретатором протоколу користувача. Управління обміном здійснюється по каналу керування в стандарті протоколу TELNET. Команди FTP генеруються інтерпретатором протоколу користувача і передаються на сервер. Відповіді сервера відправляються користувачеві також по каналу керування. У загальному випадку користувач має можливість встановити контакт з інтерпретатором протоколу сервера та відмінними від інтерпретатора користувача засобами.
Команди FTP визначають параметри каналу передачі даних і самого процесу передачі. Вони також визначають і характер роботи з віддаленої та локальної файловими системами.
Сесія управління ініціалізує канал передачі даних. При організації каналу передачі даних послідовність дій інша, відмінна від організації каналу управління. У цьому випадку сервер ініціює обмін даними у відповідності з параметрами, узгодженими в сесії керування.
Канал даних встановлюється для того ж host'а, що і канал управління, через який ведеться настройка каналу даних. Канал даних може бути використаний як для прийому, так і для передачі даних.
Можлива ситуація, коли дані можуть передаватися на третю машину. У цьому випадку користувач організовує канал керування з двома серверами і організовує прямий канал даних між ними. Команди управління йдуть через користувача, а дані безпосередньо між серверами (малюнок 4.3).
Канал управління повинен бути відкритий при передачі даних між машинами. У разі його закриття передача даних припиняється.
Мал. 4.3. З'єднання з двома різними серверами і передача даних між ними
. Режими обміну даними
У протоколі велика увага приділяється різним способам обміну даними між машинами різних архітектур. Дійсно, чого тільки немає в Internet, від персоналок і Mac'ов до суперкомп'ютерів. Всі вони мають різну довжину слова та багато різний порядок бітів в слові. Крім цього, різні файлові системи працюють з різною організацією даних, яка виражається в понятті методу доступу.
У загальному випадку, з точки зору FTP, обмін може бути потоковий або блоковий, з кодуванням в проміжні формати або без неї, текстовий або двійковий. При текстовому обміні всі дані перетворюються в ASCII і в цьому виді передаються по мережі. Виняток становлять тільки дані IBM mainframe, які за замовчуванням передаються в EBCDIC, якщо обидві взаємодіючі машини IBM. Двійкові дані передаються послідовністю бітів або піддаються певним перетворенням в процесі сеансу управління. Зазвичай, при потокової передачі даних за одну сесію передається один файл даних, а при блоковому способі за одну сесію можна передати кілька файлів.
Описавши в загальних рисах протокол обміну, можна перейти до опису засобів обміну по протоколу FTP. Практично для будь-якої платформи і операційного середовища існують як сервери, так і клієнти. Нижче описуються стандартні сервер і клієнт Unix-подібних систем.
Програмне забезпечення доступу до FTP-архівів
Для роботи з Ftp-архівами необхідно наступне програмне забезпечення: сервер, клієнт і пошукова програма. Сервер забезпечує доступ до ресурсів архіву з будь-якої точки мережі, клієнт забезпечує доступ користувача до будь-якого архіву в мережі, а пошукова система забезпечує навігацію у всьому безлічі архівів мережі.
У різних операційних системах ці компоненти Ftp-обміну змінюються як за формою, так і за можливостями, але деякі загальні принципи залишаються, крім цього, програми, орієнтовані на інтерфейс командного рядка, здебільшого залишаються незмінними в різних операційних середовищах.
Сервер протоколу - програма ftpd
Команда ftpd призначена для обслуговування запитів на обмін інформацією по протоколу FTP. Сервер зазвичай стартує в момент завантаження комп'ютера. Синтаксис запуску сервера наступний:
ftpd [-d] [-1] [-t timeout]- d - опція налагодження;
- 1 - опція автоматичної ідентифікації користувача;
- t - час пасивного очікування команд користувача.
Кожен сервер має свій опис команд, яке можна отримати по команді help. Автоматична ідентифікація користувачів здійснюється за допомогою файлу / etc / passwd. Пароль користувача не повинен бути порожнім.
Програма обміну файлами - ftp
FTP - це інтерфейс користувача при обміні файлами по однойменному протоколу. Програма встановлює канал керування з віддаленим сервером і очікує команд користувача. Ідентифікатор віддаленого сервера вказується або аргументом програми, або в команді інтерфейсу open.
Якщо команда ftp працює з користувачем і очікує його команд, то на екрані відображається запрошення "ftp>".
ftp [-v] [- d] [- i] [- n] [host]- v - придушує відповіді сервера і статистику передачі даних;
- n - управляє режимом ідентифікації користувача. Якщо вказано цей ключ, то спочатку перевіряється файл .netrc;
- i - вимикає підтвердження передачі файлу при масовому копіюванні файлів;
- d - включає режим налагодження;
- g - відключає прозорість передачі імен.
В рамках даного курсу немає можливості перерахувати всі команди ftp, тому зупинимося тільки на найнеобхідніших.
Першою такою командою є команда open. За цією командою відкривається сеанс роботи з віддаленим сервером:
Після видачі такої команди підуть запити ідентифікації користувача. Зареєструвати користувача можна і по команді user.
ftp> user anonymous
У цьому випадку користувач може отримати Багатоколоночних звіт із зазначенням типів файлів. Однак не всі сервери відпрацьовують цю комбінацію.
Так як в процесі прийому-передачі беруть участь дві машини, то крім навігації в віддаленої файлової системи потрібна ще навігація в локальній файловій системі. Для цієї мети служить команда lcd (локальна cd). Крім цього користувач може видати і будь-яку команду локальної оболонки, якщо передуватиме її символом "!":
За цією командою буде видано ім'я поточної директорії на локальній машині.
І, нарешті, найважливішими є команди прийому / передачі даних get. put. mget. mput і bin. За командам get і put можна прийняти або передати один файл:
ftp> get README.TXT
Команди mget, mput призначені для прийому / передачі набору файлів:
З прикладу видно, що в останньому випадку застосовується маска "*". Зазвичай при передачі груп файлів для кожного файлу запитується підтвердження. Для того, щоб уникнути цього перед прийомом / передачею, слід видати команду prompt. Остання перемикає режим запиту підтвердження і при повторному використанні цієї команди стан запиту підтвердження відновлюється. Іншою корисною командою є команда hash.
Для виходу з ftp слід виконати команду quit.
Пошук в FTP-архівах - програма Archie
В даний час доступ по FTP-протоколу здійснюється з безлічі мультипротокольних інтерфейсів (наприклад, Mosaic чи Netscape) або графічних ftp-оболонок типу ftptool для X-Window. Всі вони набагато зручніше і простіше у використанні, але і споживають набагато більше ресурсів.
Цікаво, що FTP-сервер є навіть для MS-DOS (пакет NCSA Telbin), не кажучи про багатозадачних середовищах. Однак пошук потрібного FTP-сервера в Internet - завдання складне і трудомістка. Для її полегшення існує спеціальний засіб - Archie. Archie був розроблений в Університеті McGill в Канаді. Завдання Archie - сканувати FTP-архіви на предмет наявності в них необхідних файлів. Працювати з Archie можна через telnet-сесію, через локального клієнта або по електронній пошті. Для роботи по telnet слід відкрити telnet-сесію, у відповідь на login ввести слово "archie":
telnet archie.mcgill.ca login: archie. archie>
Після появи запрошення "archie>" слід поцікавитися можливостями сервера, ввівши команду "help".
При роботі через локального клієнта вводять просто:
і у відповідь отримують список архівів, де є файл "gnuplot.tar.gz". Слід взяти до уваги, що різні модифікації клієнтів (особливо графічні) можуть значно відрізнятися по синтаксису один від одного.
Спасибі, виручили! Зроби паузу, студент, ось розважся: Віктора в групі звали Вієм, тому що викладач на лекції, коли той звично в нахабну спав сидячи на першому ряду столів, сказав одногрупникам: «Підніміть йому повіки». До речі, анекдот узятий з chatanekdotov.ru