FTP (File Transfer Protocol) е Internet услуга за прехвърляне на файлове в ASCII или BINARY формат между два компютъра, свързани в мрежата. Услугата се обслужва от свой протокол като надстройка на TCP/IP протоколите. FTP е много полезно средство особено за пренасяне на файлове или програмни китове с голям обем. Ако в рамките на една сграда или комплекс има достъп до Internet или до негова подмрежа, то става възможно, значително по-лесно да се ползват ресурсите на другите участници в мрежата, независимо от техните платформи. Например едно сканирано цветно изображение формира файл с голям обем и неговото пренасяне в друг компютър за допълнителна обработка или разпечатване се извършва за секунди по FTP протокол. Търсене и копиране на драйвери за видео контролери, скенери, принтери, модули за обновяване на лицензирани програмни продукти (Patches), различни помощни програми, обучаващи програми, описания, документация, стандарти, звукови файлове, видео клипове, анимация, игри и още много други неща могат да се извличат по този протокол.
Осъществяване на FTP връзка между два компютъра в
Internet мрежата и провеждане на сесия изисква изпълнението на определена
последователност от действия от страна на клиента (FTP Client) в процеса
на установяване на връзка и извличане на информация от файловия сървър (FTP
Server) на кореспондентския компютър. Тези действия предполагат познаването
на едно не голямо множество от команди за този протокол. Познаването на
основните команди е препоръчително дори и в случаите, в които се използват
програмни надстройки от меню или диалогов тип. Изпълняваните действия по време
на една FTP сесия е добре да се познават, с което се гарантира правилното
и преди всичко колегиалното използване на възможностите на тази услуга. За тези
неща ще стане дума и малко по-нататък.
FTP услугата се основава на взаимодействието по
Интернет на един FTP клиент, който влиза в контакт по FTP протокол
с FTP сървър. Клиенски приложения се предлагат за всички компютърни
платформи във вид на freeware, shareware или comercialeware.
Приложенията реализиращи FTP Server са относително по-малко на брой, покриват всички компютърни платформи и се
предлагат във вид на freeware, shareware или
comercialeware.
Работата на FTP услугата се управлява от команди. Пълният списък е даден в Таблица 1 с тяхното тълкувание, като различните програмни реализации на FTP-клиенти включват по-голямата част от тях. Това зависи както от конкретната програмна реализация, така и от платформата (Unix, Linux, Windows 3.x, MacOS, VMS, Windows 95/98/NT), за която тя е реализирана. За всяка отделна програма активният списък от команди се извежда на екрана чрез команда ? или Help. Прякото използване на командите е възможно от команден ред. При някои реализации като WS_FTP за Windows и Fetch за Macintosh изпълнението на FTP командите е реализирано чрез диалогови екрани и бутони с цел улесняване работата на потребители, привикнали към интегрираната програмната среда на Windows или Macintosh.
Команда | Съдържание |
! | изпълнява локална shell команда |
? | извежда на екрана помощна информация (help) |
$ | изпълнява ftp макрос |
abort | анулиране на текущата операция |
ascii | установява ascii (текстов) режим на файловия трансфер |
bget | извлича файл в binary формат |
bput | прехвърля файл в binary формат |
bell | звуков сигнал за край на извличане или прехвърляне на файл |
binary | установява binary режим на файловия трансфер |
bye | прекратява връзката и изход от ftp услугата |
case | установява имената на файловете в локалната машина в режим - малки букви |
cd | смяна на текущата директория в отдалечената машина |
chdirup | връща в коренната директория на отдалечената машина |
cdup | смяна на директория до корена в отдалечената машина |
commandfile | изпълнение на ftp команди от локален файл |
delete | изтрива файл в отдалечената машина |
dir | извежда съдържанието на директория в отдалечената машина |
disconnect | прекратява връзката |
form | установява форматиран трансфер на файлове |
file | установява структуриран трансфер на файлове |
get | извлича файл от отдалечената машина |
glob | включва/изключва употребата на wildcard символи (*.*) |
hash | отпечатва символа "#" за всеки изпратен или получен пакет |
help | извежда помощни съобщения за всяка ftp команда |
iteractive | активира потвърждение при команди mget, mput, mdelete - еквивалентно на prompt on |
lcd | смяна на текущата директория в локалната машина |
login | отваря процес в отдалечената машина |
ls | извежда съкратена форма на съдържанието на директория в отдалечената машина (Unix формат) |
mdelete | изтрива файлове в отдалечената машина |
mget | извлича група файлове от отдалечената машина |
mdir | извежда съдържанието на множество директории от отдалечената машина |
mkdir | създава поддиректория в отдалечената машина |
mput | прехвърля група файлове в отдалечената машина |
nobell | изключва звуковия сигнал при край на операция |
nohash | потиска извеждането на "#" за всеки обменен пакет |
noiteractive | изключва потвърждение при команди mget, mput, mdelete - еквивалентно на prompt off |
nmap | включва/изключва транслирането на името на файл |
ntrans | включва/изключва конвертирането на името на файл |
open | начало на комуникация с отдалечен компютър |
prompt | активира потвърждение за всяка входно-изходна операция от отдалечената машина |
proxy | изпълнение на ftp команда във вторична връзка (през proxy сървър) |
put | прехвърля файл в отдалечената машина |
pwd | извежда текущата пътека в отдалечената машина |
quit | затваря връзката и изход от ftp |
quiet | потиска извеждането на статистика по време на обмен |
quote | изпраща управляващ низ в отдалечената машина |
record | установява обменяните файлови структури в тип RECORD |
recv | копира файл от отдалечената машина в локалната |
reget | въстановява извличането на файл след прекъсване (зависи от възможностите на сървъра) |
remotehelp | извежда списъка от FTP команди на отдалечената машина |
rename | смяна името на файл в отдалечената машина |
rget | извлича файл от отдалечена машина позаписно |
rput | прехвърля файл на отдалечена машина позаписно |
rmdir | изтрива директория в отдалечена машина |
runique | следи за уникални имена при трансфер на файлове в локалната машина |
send | синоним на put |
site | изпраща името на област като параметър |
show | извежда текущия статус на ftp |
structure | установява позаписен трансфер на файлове |
sunique | следи за уникални имена при трансфер в отдалечената машина |
socket_size | определя размера на сокет-буфер |
tenex | установява трансфера на файлове в тип tenex |
trace | активира проследяването на входно-изходните пакети |
type | установява типа на файловия трансфер |
unix | установява тип Unix система |
user | данни за потребител - име и парола |
verbose | извежда данни за сървъра и обменената информация |
vget | извлича файл по RMS структура от отдалечената машина (VAX-VMS) |
vmode | установява файлов обмен по RMS структура (VAX-VMS) |
vms | установява тип система VMS (VAX) |
vput | прехвърля файл в отдалечена машина по RMS структура (VAX-VMS) |
Файловете в FTP сървърите по принцип са общодостъпни и съставляват част от т.н. Public Domaine. Това означава, че те могат свободно да бъдат копирани. Файловете са записани в различни формати, но все пак на базата на три основни правила:
При FTP услугата са възможни два вида трансфер на файлове:
|
|
|
.txt, .TXT | Text Editor | текстов файл без компресия |
.doc, .DOC | Text Editor, Word | текстов файл или Word документ |
.ps, .PS | GhostView | файл в Adobe postscript формат |
Acroread | файл в Adobe pdf формат | |
.Z | uncompress | стандартна Unix компресия на файл |
.gz | gunzip | Unix компресия gunzip на файл |
.shar | unshar, sh | ASCII файл в Unix |
.tar | tar | стандартен, многотомен Unix архив |
.uue | uudecode, uuencode | кодиране/декодиране в 8 битов код |
.tar.Z | tar+uncompress | архив с компресия Unix |
.tar.gz | tar+gunzip | архив с компресия Unix |
.exe | self-extract-archive | архив с компресия за PC - MSDOS |
.arc | ARC602.EXE | архив с компресия за PC - MSDOS |
.lha | LHA255B.EXE | архив с компресия за PC - MSDOS |
.lzh | LH113C.EXE | архив с компресия за PC - MSDOS |
.zip | PKZ204G.EXE | архив с компресия за PC - MSDOS |
.zoo | ZOO210.EXE | архив с компресия за PC - MSDOS |
.Hqx | BinHex4.0 | компресиран формат за MacOS |
.cpt | Compact Prol.34 | компресиран формат за MacOS |
.pit | PackIt3.1.3 | компресиран формат за MacOS |
.sit | StuffItLite307 | компресиран формат за MacOS |
.Bin | MacBinary | компресиран формат за MacOS |
.sea | self-extract-archive | компресиран формат за MacOS |
Програмите от втората колона на таблицата обработват архивните файлове с или без компресия и се използват както за тяхното създаване, така и за тяхното разпакетиране (дезархивиране, декомпресия).
Unix операционната система стандартно поддържа програма за компресия, архивиране и кодиране. Програмата gunzip е достъпна за копиране от множество FTP-сървъри. Ghostview е надстройка в Xwindow (Unix), съществува версия и за Microsoft Windows с Ghostscript интерпретатор.
За MS-DOS операционна система съществува богат набор от архивиращи програми, повечето от тях са freeware или shareware и са достъпни за копиране от множество FTP-сървъри. За Windows съществува приложение за обработка на архивни файлове, включващо и възможност за разпакетиране на файлове във формат.tar и .gz - WinZip.
.Z файл с Unix компресия и за да бъде
декомпресиран се изпълнява командата:
|
.gz файл с компресия, Unix версия на ZIP, за
декомпресиране се изпълнява командата:
|
.zip или .ZIP е архивен файл създаден с
PKZIP и може да се дезархивира с PKUNZIP или UNZIP при спазване на следния
формат на команда:
|
Начинът на работа с другите дезархивиращи програми е сходен.
Успешното провеждане на една FTP сесия изисква изпълнението на определена последователност от действия.
Първото действие е активиране на програмата, поддържаща
протокола.
|
където, <Internet site>е адресът на
кореспондентската машина. Адресът може да бъде зададен като IP адрес или
чрез символичното име на машината, например:
|
или
|
След натискане на клавиш >Enter от
клавиатурата програмата прави опит да установи контакт с избраната машина. При
нормална работа на мрежата и при възможност да се установи контакт не след дълго
на екрана на клиента се появяват опознавателните редове на отдалечената машина.
Следва разпознаване на клиента по установените в сървъра правила, например:
Unix FTP Server (Version 5.01) Ready Name (pencho:user): anonymous Password: guest |
Тук се въвежда име за потребител (Name)
или Ctrl/C за прекъсване на връзката. Потребителското име е необходимо за да се
открие процес за този потребител в машината. Официално регистрираните
потребители използват своите потребителски имена за достъп до тази услуга в тази
машина. За останалите е предвидено едно обобщено име, което е:
|
Анонимен или неизвестен съвсем не означава, че потребителя,
търсещ достъп до файловата система на сървъра, остава такъв за него. Следващият
въпрос е паролата за достъп (Password). Това предопределя
същинските права на потребителя. Регистриран потребител добива предписаните му
права, а външен потребител добива достъп до общите части на файловия сървър. В
един FTP сървър като общи и достъпни за публиката се заделят определени части от
файловото му пространство.
|
Един анонимен потребител може да се регистрира като гост в
отговор на въпроса за парола на достъп (Password). Това отговаря на
общите правила, дефинирани в самия FTP протокол. Голяма част от публичните или
обществени FTP сървъри обаче изискват от потребителя идентификация с неговият
E-Mail адрес. Общите правила за работа в Internet и колегиалното
отношение в тази мрежова среда предполагат точната регистрация на всеки
потребител. Така вместо guest за парола на достъп е препоръчително да се
въвежда електронният адрес на потребителя, например:
|
Всяка изпълнена от страна на потребителя операция се регистрира
в FTP сървъра и представлява своеобразен протокол за неговите действия. Така
всеки опит за неправомерни действия се регистрира веднага.
Remote system type is UNIX. Using binary mode to transfer files. ftp> |
Този финален акорд от въвеждащия протокол напомня на
потребителя, че му е осигурен достъп с определени ограничения. Отсрещната
операционна система е UNIX и установения като текущ тип трансфер на файлове е
Binary.
|
Въведената команда >dir извежда на екрана на локалния
компютър съдържанието на текущата директория в отдалечената машина в пълен
формат.
150 Opening ASCII mode data connection for /bin/ls. total 2636 -rw-rw-r-- 1 0 31 4444 Mar 3 11:34 README -rw-rw-r-- 1 0 31 160384 Mar 3 11:39 INDEX dr-xr-xr-x 2 0 1 512 Feb 8 1995 bin dr--r--r-- 2 0 1 512 Feb 8 11:06 etc drwxrwsr-x 5 13 22 512 Mar 19 12:19 map drwxr-xr-x 25 1016 31 512 Apr 2 15:01 info-mac drwxrwsr-x 13 0 20 1024 Mar 4 12:20 pub drwxr-xr-x 2 1077 20 512 Feb 21 13:05 user 226 ASCII Transfer complete 549 bytes received in 0.33 seconds (1.90 Kbytes/sec) ftp> |
В средата на Unix операционна система резултатът от изпълнението на команда " >dir" може да бъде този, показан по-горе. Съдържанието на отделните колони се нуждае от обяснение. Преобладаващата част от FTP сървърите са базирани на Unix машини и файловата им структура обикновено е сходна. Различията се отнасят предимно до предмета и обема на съхранявана информация. По-нататък ще стане дума за имената на някои по-известни FTP сървъри, както и за информацията, която те съхраняват по рубрики.
На един ред от този списък е поместена информация за характера
на файла или директорията, правата за достъп, собственика или създателя, обема в
байтове, датата на последна модификация, името на файла или директорията в
последната колона. В първа колона буква "d" означава директория, следващите
букви определят възможностите за четене, запис, изтриване или изпълнение.
Първият файл в списъка с наименование README нормално съдържа обяснения за
сървъра, правата за достъп, e_mail адрес за кореспонденция, големината му е 4444
байта, последната му модификация е направена 3 март в 11:34 часа. При липса на
информация за годината се приема текущата. За минали години, тя е записана на
мястото на часа. За да се прочете съдържанието на този файл трябва да се
“изтегли” в локалната машина. Файлът с наименование INDEX обикновено съдържа
каталога на директория /pub. От неговото съдържание потребителят може да
се ориентира за поддържаните рубрики в FTP-сървъра. Директорията /bin е
създадена на 8 февруари 1995. Командата за изтегляне на файл е следната:
|
Трябва да се има предвид, че употребата на малки или големи букви има значение и името на файла при всяка FTP команда да се изписва по начина, по който то е записано.
Копирането на файла README е съпроводено със съответен
протокол:
150 Opening BINARY mode data connection for README (4444 bytes) 226 Transfer complete. 4444 bytes received in 1.17 seconds (3.8 Kbytes/s) ftp> |
Прехвърлянето на файла README с дължина 4444 байта е завършило за 1.17 секунди със средна скорост на обмен 3.8 килобайта в секунда.
Тази информация е особено ценна за да се провери, дали дължината на файла в байтове в сървъра отговаря на броя прехвърлени байтове в машината на потребителя. Данните за средната скорост на трансфер са информация за моментната пропускателна възможност на мрежата. При по-ниски скорости и най-вече под 1Kbyte/s прехвърлянето на големи файлове става почти невъзможно, а и не е желателно в такъв момент допълнително да се натоварва мрежата. Често във файла README се споменават подходящите часове за контакт със сървъра. Като общо правило, трябва да се избягва FTP услугата от отдалечени сървъри в работните часове на деня.
За трансфер на група от файлове, отговарящи на определено
условие се прилагат команди за многократно четене или запис (mget,
mput):
|
Всички файлове с разширение .TXT в текущата директория
на сървъра ще бъдат прехвърлени един след друг в машината на потребителя. При
активен prompt за копирането на всеки файл ще се иска потвърждение.
Дезактивирането на това условие става с изпълнение на команда
prompt. Активирането
му става с повторно изпълнение на същата команда:
Interactive mode off |
Ако избраният за трансфер файл не е текстов, то трябва изрично
да се установи Binary режим на трансфер. Повечето сървъри
разполагат с FTP продукт, автоматично определящ типа на прехвърляния файл, но
внимание, това не винаги е така. Ако един чисто текстов файл е
прехвърлен по Binary mode това не е фатално. Появяват се проблеми
с неговото четене на екран от някои редактори поради записването му в Unix
формат, загубва се символа <CR>. Прехвърлянето на архивен или изпълним
файл по ASCII mode прави файла неизползваем! Установяването на
един от двата режима се извършва с командите BINARY или ASCII, например:
200 Type set to I |
Процесът на прехвърляне на един файл може да бъде маркиран и
проследяван стъпка по стъпка, което в повечето случаи е удобно и показва
моментната скорост на обмен по мрежата. Маркировка се установява с команда
hash. Прехвърлянето в потребителския компютър на определено
количество байтове се маркира със знак “#” на екрана. В зависимост от
настройките на софтуера, маркировка се извежда на всеки 1024, 2048 или 8192
байта.
Hash mark printing On (8192 bytes/hash mark) |
Да предположим, че в директория /virus се намира
последната версия на популярната антивирусна програма f-prot. Програмата
се разпространява в zip архив и името на архива се променя с промяната на
версията на програмата f-prot. За да се копират всички налични версии на
архива трябва да се изпълни следната последователност от команди. С цифров код
отпред е даден отговора на отсрещната система при нормално изпълнение на всяко
действие:
250 CWD command successful ftp> mget fp*.zip 200 PORT command successful. 150 Binary data connection for fp-222.zip (621988 bytes). ########################################################## ################# 226 Binary Transfer complete 621988 bytes received in 285.21 seconds (2.07 Kbytes/sec) ftp> |
От изведения на екран протокол става ясно, че копираният архив е един с име fp-222.zip, което отговаря на версия 222 на програмата f-prot. С това задачата е изпълнена.
Смяна на директория с връщане една стъпка назад се извършва
чрез командата:
250 CWD command successful |
Смяна на директория с връщане в корена на дървото се извършва
чрез командата:.
250 CWD command successful |
За прекратяване на връзката със сървъра се издава следната
команда:
221 Goodbye. |
Доброто “възпитание” в Internet изисква да се освободи връзката след като работата е свършена. Така не се натоварва излишно мрежата и се дава възможност на други да се възползват от услугите на FTP-сървъра. Повечето FTP-сървъри имат установено време за time-out (900s), след изтичането му връзката се затваря автоматично. Може да се укаже, че достъпът до определен сървър е ограничен по брой клиенти в даден момент. Във всички случаи е препоръчително FTP услугата за отдалечени сървъри да се ползва в извън работните часове. Това, разбира се е много относително, като се имат предвид часовите разлики в различните континенти. В този смисъл, като че ли няма такъв часови интервал. За територията на България практиката показва, че ранните часове на деня са най-подходящи.
Достъп до FTP сървър може да се осъществи и с помощта на Web
браузър, като в полето Location се изпише команда на един
ред:
|
където,
Назад |