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