FTPОБМЕН НА ФАЙЛОВЕ ПО INTERNET - FTP

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 команди

Работата на FTP услугата се управлява от команди. Пълният списък е даден в Таблица 1 с тяхното тълкувание, като различните програмни реализации на FTP-клиенти включват по-голямата част от тях. Това зависи както от конкретната програмна реализация, така и от платформата (Unix, Linux, Windows 3.x, MacOS, VMS, Windows 95/98/NT), за която тя е реализирана. За всяка отделна програма активният списък от команди се извежда на екрана чрез команда ? или Help. Прякото използване на командите е възможно от команден ред. При някои реализации като WS_FTP за Windows и Fetch за Macintosh изпълнението на FTP командите е реализирано чрез диалогови екрани и бутони с цел улесняване работата на потребители, привикнали към интегрираната програмната среда на Windows или Macintosh.

FTP Команди - Таблица 1
 
Команда Съдържание
! изпълнява локална 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 услугата са възможни два вида трансфер на файлове:

Разширенията на файловете могат да се приемат като идентификатори на техния формат. В таблица 2 са изброени най-често срещаните символични имена на разширения за различни платформи, помощните програми за тяхната обработка и тълкувание на тези формати.

Таблица 2
 
Разширение
Програма
Коментар
.txt, .TXT Text Editor текстов файл без компресия
.doc, .DOC Text Editor, Word текстов файл или Word документ
.ps, .PS GhostView файл в Adobe postscript формат
pdf 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.

За Unix операционна система

.Z файл с Unix компресия и за да бъде декомпресиран се изпълнява командата:
 

    uncompress filename.Z

.gz файл с компресия, Unix версия на ZIP, за декомпресиране се изпълнява командата:
 

    gunzip filename.gz

За MSDOS операционна система

.zip или .ZIP е архивен файл създаден с PKZIP и може да се дезархивира с PKUNZIP или UNZIP при спазване на следния формат на команда:
 

    pkunzip -d filename.zip

Начинът на работа с другите дезархивиращи програми е сходен.

FTP сесия

Успешното провеждане на една FTP сесия изисква изпълнението на определена последователност от действия.

Първото действие е активиране на програмата, поддържаща протокола.
 

    ftp <Internet site>

където, <Internet site>е адресът на кореспондентската машина. Адресът може да бъде зададен като IP адрес или чрез символичното име на машината, например:
 

    ftp XX.XXX.XXX.XXX

или
 

    ftp XXXXXX

След натискане на клавиш >Enter от клавиатурата програмата прави опит да установи контакт с избраната машина. При нормална работа на мрежата и при възможност да се установи контакт не след дълго на екрана на клиента се появяват опознавателните редове на отдалечената машина. Следва разпознаване на клиента по установените в сървъра правила, например:
 

    Connected to XXXXXX
    Unix FTP Server (Version 5.01) Ready
    Name (pencho:user): anonymous
    Password: guest

Тук се въвежда име за потребител (Name) или Ctrl/C за прекъсване на връзката. Потребителското име е необходимо за да се открие процес за този потребител в машината. Официално регистрираните потребители използват своите потребителски имена за достъп до тази услуга в тази машина. За останалите е предвидено едно обобщено име, което е:
 

    anonymous

Анонимен или неизвестен съвсем не означава, че потребителя, търсещ достъп до файловата система на сървъра, остава такъв за него. Следващият въпрос е паролата за достъп (Password). Това предопределя същинските права на потребителя. Регистриран потребител добива предписаните му права, а външен потребител добива достъп до общите части на файловия сървър. В един FTP сървър като общи и достъпни за публиката се заделят определени части от файловото му пространство.
 

    guest

Един анонимен потребител може да се регистрира като гост в отговор на въпроса за парола на достъп (Password). Това отговаря на общите правила, дефинирани в самия FTP протокол. Голяма част от публичните или обществени FTP сървъри обаче изискват от потребителя идентификация с неговият E-Mail адрес. Общите правила за работа в Internet и колегиалното отношение в тази мрежова среда предполагат точната регистрация на всеки потребител. Така вместо guest за парола на достъп е препоръчително да се въвежда електронният адрес на потребителя, например:
 

    pencho@abv.bg

Всяка изпълнена от страна на потребителя операция се регистрира в FTP сървъра и представлява своеобразен протокол за неговите действия. Така всеки опит за неправомерни действия се регистрира веднага.
 

    230 Guest connection accepted. Restrictions apply.
    Remote system type is UNIX.
    Using binary mode to transfer files.
    ftp>

Този финален акорд от въвеждащия протокол напомня на потребителя, че му е осигурен достъп с определени ограничения. Отсрещната операционна система е UNIX и установения като текущ тип трансфер на файлове е Binary.
 

    ftp> dir

Въведената команда >dir извежда на екрана на локалния компютър съдържанието на текущата директория в отдалечената машина в пълен формат.
 

    200 PORT command successful 
    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> get README

Трябва да се има предвид, че употребата на малки или големи букви има значение и името на файла при всяка FTP команда да се изписва по начина, по който то е записано.

Копирането на файла README е съпроводено със съответен протокол:
 
    200 PORT command successful.
    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):
 

    ftp> mget *.txt

Всички файлове с разширение .TXT в текущата директория на сървъра ще бъдат прехвърлени един след друг в машината на потребителя. При активен prompt за копирането на всеки файл ще се иска потвърждение. Дезактивирането на това условие става с изпълнение на команда prompt. Активирането му става с повторно изпълнение на същата команда:
 

    ftp> prompt
    Interactive mode off

Ако избраният за трансфер файл не е текстов, то трябва изрично да се установи Binary режим на трансфер. Повечето сървъри разполагат с FTP продукт, автоматично определящ типа на прехвърляния файл, но внимание, това не винаги е така. Ако един чисто текстов файл е прехвърлен по Binary mode това не е фатално. Появяват се проблеми с неговото четене на екран от някои редактори поради записването му в Unix формат, загубва се символа <CR>. Прехвърлянето на архивен или изпълним файл по ASCII mode прави файла неизползваем! Установяването на един от двата режима се извършва с командите BINARY или ASCII, например:
 

    ftp> binary
    200 Type set to I

Процесът на прехвърляне на един файл може да бъде маркиран и проследяван стъпка по стъпка, което в повечето случаи е удобно и показва моментната скорост на обмен по мрежата. Маркировка се установява с команда hash. Прехвърлянето в потребителския компютър на определено количество байтове се маркира със знак “#” на екрана. В зависимост от настройките на софтуера, маркировка се извежда на всеки 1024, 2048 или 8192 байта.
 

    ftp> hash
    Hash mark printing On (8192 bytes/hash mark)

Да предположим, че в директория /virus се намира последната версия на популярната антивирусна програма f-prot. Програмата се разпространява в zip архив и името на архива се променя с промяната на версията на програмата f-prot. За да се копират всички налични версии на архива трябва да се изпълни следната последователност от команди. С цифров код отпред е даден отговора на отсрещната система при нормално изпълнение на всяко действие:
 

    ftp> cd pub/msdos/virus
    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. С това задачата е изпълнена.

Смяна на директория с връщане една стъпка назад се извършва чрез командата:
 

    ftp> cd ..
    250 CWD command successful

Смяна на директория с връщане в корена на дървото се извършва чрез командата:.
 

    ftp> cdup
    250 CWD command successful

За прекратяване на връзката със сървъра се издава следната команда:
 

    ftp> bye
    221 Goodbye.

Доброто “възпитание” в Internet изисква да се освободи връзката след като работата е свършена. Така не се натоварва излишно мрежата и се дава възможност на други да се възползват от услугите на FTP-сървъра. Повечето FTP-сървъри имат установено време за time-out (900s), след изтичането му връзката се затваря автоматично. Може да се укаже, че достъпът до определен сървър е ограничен по брой клиенти в даден момент. Във всички случаи е препоръчително FTP услугата за отдалечени сървъри да се ползва в извън работните часове. Това, разбира се е много относително, като се имат предвид часовите разлики в различните континенти. В този смисъл, като че ли няма такъв часови интервал. За територията на България практиката показва, че ранните часове на деня са най-подходящи.

Достъп до FTP сървър може да се осъществи и с помощта на Web браузър, като в полето Location се изпише команда на един ред:
 

    ftp://username:password@Internet_Address:port

където,


Назад

Обратно в ISDN+Компютри