Skarby z krainy FTP

FTP (File Transfer Protocol) to usługa, która służy do transmisji plików między dwoma komputerami podłączonymi do Internetu. Jest to - obok telnetu i poczty elektronicznej - jedna z trzech podstawowych usług zaprojektowanych przez twórców pierwowzoru Internetu - sieci ARPANET, a zatem obecna jest ona w Internecie od samych jego początków.

Usługa ta pierwotnie pełnić miała rolę niezbędnego funkcjonalnego uzupełnienia telnetu. Wyobraźmy sobie bowiem sytuację, w której np. korzystamy za pośrednictwem telnetu z superkomputera dla wykonania jakichś skomplikowanych obliczeń. Musimy wówczas jakoś dostarczyć na ten superkomputer plik z danymi (nie wspominając już o pliku zawierającym sam program), a potem "ściągnąć" z niego na naszą lokalną maszynę plik zawierający wyniki. Niezbędną do tego celu usługą jest właśnie FTP.

To pierwotne zastosowanie usługi FTP szybko jednak zdominowane zostało przez inne: publiczne udostępnianie w sieci zbiorów plików, które każdy mógł przekopiować na swój komputer. Takie publiczne archiwa plików dostępnych przez FTP stały się rychło bardzo popularne i to one właśnie wpłynęły na ukształtowanie się charakteru Internetu takiego, jakim go znamy dziś - jako ogromnej skarbnicy powszechnie dostępnej informacji. Usługi takie jak gopher czy WWW nie powstałyby, gdyby nie była wcześniej znana idea publicznego, dostępnego dla każdego archiwum plików. W "dawnym" Internecie - tak obecnie często mówi się o sieci z okresu sprzed powstania WWW - to właśnie archiwa FTP były jedną z głównych atrakcji przyciągających użytkowników, a na "zapychanie" łączy "ściąganiem" plików z tych archiwów skarżono się zupełnie tak samo, jak obecnie na "zapychanie" łączy przez WWW... I dziś, mimo ogromnej popularności WWW, archiwa FTP nadal "trzymają się mocno" i są jednymi z najbardziej istotnych zasobów sieciowych - zmienił się tylko sposób korzystania z nich, gdyż obecnie pliki z archiwów FTP "ściąga" się przeważnie... właśnie za pośrednictwem przeglądarek WWW.

Zajmijmy się jednak na początek klasycznym, "pisanym z palca" FTP, wykorzystywanym, gdy znajdujemy się w trybie komend systemu operacyjnego - np. Unixa czy MS-DOS-u. Podobnie jak w przypadku telnetu, sposób wywołania klienta FTP jest identyczny w większości systemów:

ftp adres

Także i tutaj adres jest adresem domenowym lub IP docelowego komputera. Tak jak dla telnetu, po nawiązaniu połączenia wita nas komunikat, w którym serwer FTP na docelowym komputerze przedstawia się i prosi o podanie naszego identyfikatora i hasła. Wszystkie komputery, na których możliwa jest zdalna praca przez telnet, z reguły posiadają także serwer ftp, ale serwer ftp może być zainstalowany także w systemach nie obsługujących telnetu - nawet w MS-DOS-ie. W takich przypadkach lista identyfikatorów użytkowników oraz haseł ustalana jest w sposób dowolny przez osobę konfigurującą serwer ftp.

Jeżeli chcemy uzyskać poprzez FTP dostęp do naszych własnych plików na komputerze, na którym mamy konto (jak w opisanym na wstępie przykładzie z superkomputerem), podajemy oczywiście nasz "prawdziwy" identyfikator i hasło. Natomiast przy korzystaniu z publicznych archiwów FTP jako nazwę użytkownika podaje się anonymous (stąd powszechne w sieci określanie tej usługi mianem anonymous FTP), a jako hasło - własny adres poczty elektronicznej. Serwery anonymous ftp bardzo często zresztą informują o tym zaraz na wstępie, w specjalnej "czołówce" pojawiającej się jeszcze przed zadaniem pytania o identyfikator użytkownika, jak to można zobaczyć na rys.1.

Po zaakceptowaniu przez system naszego identyfikatora i hasła uzyskujemy zgłoszenie gotowości programu w postaci

ftp>

Zgłoszenie to sygnalizuje, iż program oczekuje na naszą komendę. Do dyspozycji mamy kilkanaście poleceń pozwalających m.in. przeglądać zawartości katalogów na zdalnym komputerze, zmieniać katalog bieżący, przesyłać plik z komputera zdalnego na lokalny lub w odwrotnym kierunku, a nawet tworzyć i kasować katalogi w zdalnym systemie (oczywiście o ile pozwalają na to nasze uprawnienia - jeżeli "zaeeftepowaliśmy" się jako anonymous, z reguły nie możemy dokonywać żadnych zmian na dysku zdalnego komputera, ale jeżeli rozpoczynając sesję podaliśmy nasz własny identyfikator i hasło, mamy te same uprawnienia, co przy normalnej pracy na swoim koncie, np. przez telnet).

Komendy FTP

Jeżeli nie znamy dokładnej nazwy i lokalizacji interesującego nas pliku lub plików, niewątpliwie pierwszą komendą, którą wydamy po nawiązaniu łączności z serwerem FTP, będzie komenda dir (zupełnie jak w MS-DOS-ie), pozwalająca wyświetlić zawartość aktualnego katalogu w zdalnym systemie. Większość komputerów osiągalnych przez FTP - podobnie jak w przypadku telnetu - pracuje pod różnymi odmianami systemu Unix (także w przypadku innych systemów operacyjnych serwery FTP zwykle wyświetlają zawartość katalogów w stylu zbliżonym do Unixowego), stąd też po wydaniu komendy dir zobaczymy odpowiedź wyglądającą mniej więcej tak:
ftp> dir
200 PORT command successful.
150 Opening ASCII mode data connection for /bin/ls.
total 2914
drwxr-xr-x   9 yskarock 3           1024 Mar 18 08:10 .
drwxr-xr-x   9 yskarock 3           1024 Mar 18 08:10 ..
drwxr-xr-x   2 ROOT     3           1024 Dec 13 16:12 bin
drwxr-xr-x   2 yskarock 3           1024 Dec 15 10:01 etc
drwxr-xr-x   2 yskarock 100         1024 Feb 29 17:36 lib
-rw-r--r--   1 yskarock 100       811627 Mar 18 08:09 ls-lR.Z
-rw-r--r--   1 yskarock 100       640446 Mar 18 08:09 ls-lR.gz
drwxr-xr-x   3 1100     100         1024 Feb 15 13:53 pc96
drwxr-xr-x   4 yskarock 3           1024 Mar 18 08:21 pub
drwxr-xr-x   3 1100     100         1024 Feb 15 13:54 supeur96
drwxr-xr-x   6 yskarock 100         1024 Mar  7 09:45 uploads
Transferred 677 bytes in 1 seconds (0.661 Kbytes/sec)
226 Transfer complete.
ftp>
Użytkownikom Unixa ten sposób przedstawienia zawartości katalogu jest dobrze znany; natomiast osoby mające do tej pory styczność jedynie z DOS-em i Windows mogą czuć się zdezorientowane dziwnymi napisami i liczbami występującymi na początku każdej linijki. Nie należy się nimi zbytnio przejmować; najpierw trzeba popatrzeć na koniec wiersza, gdzie znajduje się - jak nietrudno się domyślić - nazwa pliku bądź podkatalogu. Jest ona zapisana na końcu - odwrotnie niż w DOS-ie - ponieważ nazwy plików w Unixie mogą być praktycznie dowolnie długie. W kolejnych kolumnach od końca znajdujemy czas i datę utworzenia lub ostatniej modyfikacji pliku oraz jego wielkość. Z tajemniczych napisów na początku wiersza jest dla nas na dobrą sprawę istotny - jeżeli nie mamy nic do czynienia z Unixem i korzystamy tylko z anonymous ftp - jedynie pierwszy znak. Jeżeli jest to literka "d", dana nazwa oznacza podkatalog, a jeżeli minus - zwykły plik. Można spotkać jeszcze pozycje w katalogu mające jako pierwszy znak literkę "l" - są to tzw. łączniki symboliczne, czyli alternatywne nazwy dla innych plików lub katalogów. Czy dany łącznik odpowiada plikowi, czy katalogowi, można wywnioskować z podanej po nazwie takiego łącznika "rzeczywistej" nazwy, do której on prowadzi.

Do zmiany bieżącego katalogu w zdalnym komputerze służy w programie FTP komenda cd - również działająca podobnie jak jej odpowiednik w MS-DOS-ie. Nazwę bieżącego katalogu możemy zaś zawsze wyświetlić (jeżeli się "zgubimy") komendą pwd.

Podstawową komendą, za pomocą której możemy "ściągnąć" plik ze zdalnego do swojego komputera, jest komenda

get nazwa-pliku

Należy pamiętać, że w Unixie rozróżniane są duże i małe litery w nazwach plików, tak więc np. readme, Readme i README to trzy różne nazwy; nazwę pliku trzeba napisać dokładnie w takiej samej postaci, w jakiej wystąpiła na liście wyświetlonej przez komendę dir. Transmisję pliku w odwrotną stronę, czyli ze swojego komputera do zdalnego (o ile mamy prawo to robić) wykonuje się komendą

put nazwa-pliku

Zarówno przy transmisji pliku komendą get, jak i put można zmienić nazwę transmitowanego pliku. Czasami jest to konieczne: np. pewne nazwy plików z Unixa nie dadzą się przenieść do systemu MS-DOS. W takim przypadku w komendzie get bądź put podajemy po nazwie przesyłanego pliku nową nazwę, jaka mam mu zostać nadana, np.

get gzip-1.2.4.tar.gz gzip124.tgz

Aby przetransmitować naraz większą ilość plików o nazwie pasującej do jakiegoś wzorca, np. wszystkie pliki z rozszerzeniem .txt, używamy odpowiednio komend mget i mput, np.

mget *.txt

Komendy te standardowo przy każdym kolejnym pliku pytają o to, czy chcemy go transmitować, czy też nie. Jeżeli chcemy przetransmitować wszystkie pliki bez pytania, trzeba przed użyciem komendy mget lub mput wydać komendę prompt, która wyłącza to zachowanie. Ponowne użycie komendy prompt włącza pytanie z powrotem.

Tekstowo i binarnie

Najczęstszym problemem początkujących użytkowników FTP jest sytuacja, w której pracowicie ściągnięte z serwera na drugim końcu świata pliki, zawierające np. interesujące oprogramowanie, okazują się być całkowicie niezdatne do użytku. Przyczyną takiego stanu rzeczy jest użycie nieprawidłowego trybu transmisji.

FTP może transmitować pliki w dwu trybach: tekstowym i binarnym. Rozróżnienie to jest podyktowane tym, że w różnych systemach operacyjnych w różny sposób zaznaczane są miejsca przejścia do nowego wiersza w plikach tekstowych. W Unixie np. znakiem końca wiersza jest znak LF (o kodzie ASCII 10), podczas gdy w MS-DOS-ie - para występujących bezpośrednio po sobie znaków CR (ASCII 13) i LF. W jeszcze innych systemach, takich jak np. IBM VM czy VAX VMS, w których każdemu plikowi towarzyszy tzw. metryczka, opisująca jego format, przejście do nowego wiersza w ogóle nie jest w żaden sposób zaznaczone w samym pliku, a właśnie w owej metryczce. Przy transmisji w trybie tekstowym dokonuje się automatycznego przekodowania znaków końca wiersza, tak aby przesłany plik w obydwu systemach "wyglądał" identycznie (co oczywiście wcale nie musi oznaczać - i w większości przypadków właśnie nie oznacza - identycznej co do bajta zawartości pliku). Niejako "przy okazji" podczas transmisji w trybie tekstowym może się dokonywać także zamiana samych kodów znaków, gdy łączące się ze sobą komputery pracują w różnych standardach kodowania - np. kod ASCII w MS-DOS-ie i kod EBCDIC w IBM VM.

"Pułapką" na początkujących użytkowników FTP jest fakt, że to właśnie tryb tekstowy jest przyjmowany jako domyślny po nawiązaniu połączenia (z wyjątkiem przypadku, gdy łączą się ze sobą dwa Unixy - wtedy domyślnym jest tryb binarny, ale w tym przypadku między trybem tekstowym i binarnym praktycznie nie ma różnicy). Jeżeli transmitujemy oprogramowanie, plik graficzny, dźwiękowy, lub cokolwiek innego co nie jest "czystym" tekstem, konwersje dokonywane przez FTP spowodują zniekształcenie pliku - na ogół nie nadaje się on już do użytku. Przed przesłaniem takich plików musimy najpierw zmienić tryb transmisji na binarny, w którym plik przesyłany jest bez żadnych zmian. Dokonujemy tego komendą

bin

zaś ponowne przejście do trybu tekstowego uzyskujemy za pomocą polecenia

ascii

Komend, których można używać podczas sesji ftp, jest jeszcze więcej, ale wymienione tutaj w zupełności wystarczają do większości zastosowań. Czy o czymś zapomnieliśmy? Aha! Trzeba oczywiście wiedzieć, jak zakończyć połączenie; dokonuje się tego komendą quit.

Myszą wygodniej

Oczywiście opisany powyżej sposób pracy z "klasycznym" klientem FTP wydaje się już anachroniczny dzisiaj, w dobie wszechobecnych środowisk graficznych. Dla systemów takich jak MS-Windows, Macintosh czy Unixowe X-Window powstały dziesiątki aplikacji upraszczających procedurę transmisji pliku przez FTP do kliknięcia myszą na wybranej nazwie z wyświetlanej przez program listy; wygląd ekranu jednego z takich programów - WS_FTP dla MS-Windows - możemy zobaczyć na rys.2. Z usługi FTP można również bardzo wygodnie korzystać za pomocą przeglądarki WWW (rys.3), ten sposób ma jednak pewne ograniczenia: na ogół przeglądarki nie umożliwiają skorzystania z innego konta niż anonymous, jak również obsługiwana jest jedynie operacja "get", czyli "ściąganie" plików ze zdalnego komputera, nie ma natomiast obsługi transmisji w odwrotną stronę, czyli "put". Klasycznego FTP nie należy jednak wyrzucać, gdyż zarówno zautomatyzowane klienty graficzne takie jak WS_FTP, jak i przeglądarki WWW nie dają sobie rady z sytuacjami nietypowymi: dziwnymi komunikatami błędów podczas prób łączenia się z serwerem FTP, "egzotycznymi" systemami akceptującymi nietypowe komendy (np. zawartość niektórych archiwów FTP można przeszukiwać używając komendy site find) czy koniecznością użycia funkcji wykraczających poza standardowe menu klienta graficznego, jak np. akceptowana przez wiele serwerów komenda reget, pozwalająca "dociągnąć" resztę pliku po przerwanej transmisji. W takich sytuacjach stare, "pisane z palca" FTP jest mimo swojej niewygody niezastąpione.

A teraz do archiwum

Jak to już zostało powiedziane, najczęstszym zastosowaniem usługi ftp jest anonymous ftp, czyli korzystanie z publicznych archiwów plików. W archiwach tych znaleźć można mnóstwo prawdziwych skarbów: różnego rodzaju publikacje (artykuły, książki, wiersze, teksty piosenek itp.), najrozmaitsze pliki graficzne i dźwiękowe, a przede wszystkim gigabajty różnorakiego oprogramowania na wszelkie typy komputerów, rozpowszechnianego na zasadach public domain, freeware lub shareware.

Większość ważniejszych archiwów anonymous ftp zorganizowanych jest w podobny sposób. Po zalogowaniu się jako anonymous znajdujemy się na ogół w katalogu głównym (tak naprawdę, nie jest to rzeczywisty katalog główny systemu plików komputera, z którym się połączyliśmy, lecz pozorny, stworzony wyłącznie na użytek anonymous ftp - tzw. fake root directory). Właściwe archiwum znajduje się z reguły w podkatalogu o nazwie pub. Każdy katalog zawiera zwykle plik o nazwie README lub podobnej, zawierający informacje o zawartości tego katalogu. Zawiera też na ogół plik index.txt (lub o podobnej nazwie, np. 00-index.txt), w którym znajduje się spis wszystkich plików z danego katalogu wraz z opisami. Niektóre z archiwów anonymous ftp pozwalają nie tylko na pobieranie plików, ale także na pozostawianie - w wydzielonym podkatalogu - własnych plików, które po sprawdzeniu przez administratora archiwum mogą być - o ile zostaną uznane za interesujące dla ogółu użytkowników - dołączone do ogólnych zasobów. Katalog przeznaczony na "wstawianie" własnych plików nazywa się zwykle upload lub incoming; obowiązuje zasada, że o każdym umieszczanym tam pliku należy zawiadomić administratora archiwum, wysyłając pocztą elektroniczną list na adres wskazany w odpowiednim komunikacie.

Pliki w archiwach anonymous ftp przechowywane są na ogół w postaci skompresowanej. Przemawia za tym kilka względów: mniejsza zajętość przestrzeni dyskowej, krótszy czas transmisji oraz możliwość spakowania całego pakietu np. oprogramowania, mogącego składać się nawet z kilkudziesięciu plików, w jeden plik skompresowany, którym manipulować jest niewątpliwie znacznie wygodniej niż kilkudziesięcioma osobnymi plikami. Stosowane są przy tym różne sposoby kompresji, które można rozpoznać po rozszerzeniach nazw plików.

Pliki przeznaczone dla MS-DOS-u z reguły zapisane są w popularnych formatach .zip i .arj. Programy do rozpakowywania takich plików - PKZIP i ARJ - posiada chyba każdy użytkownik PC; jeżeli jednak ktoś by ich nie miał, można je także "ściągnąć" przez anonymous ftp, np. z najsłynniejszego chyba archiwum Simtel: ftp.cyf-kr.edu.pl, katalog /pub/mirror/Simtel.Net/msdos/arcers. Zdarzają się także bardziej "egzotyczne" formaty plików, jak np. .lzh (program LHA lub LHARC) .zoo (program ZOO) albo .rar (program RAR), bądź przestarzałe jak .arc (programy ARC lub PKARC). Odpowiednie programy rozpakowujące również można znaleźć we wspomnianym archiwum Simtel. Aby uniknąć problemu "jajka i kury", programy te mają postać samorozpakowującego archiwum - pliku .exe, który po uruchomieniu sam wypakowuje z siebie wszystkie pliki składające się na pakiet.

Oprogramowanie dla Unixa na ogół spakowane jest standardowymi, obecnymi w każdym systemie Unix programami do tworzenia archiwów - tar i compress. Ponieważ tar jedynie łączy kilka plików w jeden nie kompresując ich, compress zaś kompresuje, ale tylko pojedynczy plik, niezbędne jest zastosowanie obu tych programów łącznie. Stąd też dla utworzonych w ten sposób plików charakterystyczne jest podwójne rozszerzenie .tar.Z (duże Z - pamiętajmy o tym, że Unix rozróżnia duże i małe litery!). Ostatnio coraz częściej w miejsce programu compress stosowany jest lepiej kompresujący gzip; ponieważ nie jest on standardowym wyposażeniem Unixa, trzeba go sobie ściągnąć z jakiegokolwiek archiwum ftp zawierającego oprogramowanie GNU, np. z ftp://sunsite.icm.edu.pl/pub/gnu/gzip-1.2.4.tar. Pliki skompresowane gzip'em mają rozszerzenie .gz zamiast .Z; tak więc plik utworzony za pomocą tar'a i gzip'a będzie miał nazwę zakończoną na .tar.gz. Rozszerzenia ".tar.Z" i ".tar.gz" bywają też czasami skracane do postaci ".taz" i ".tgz" (szczególnie, gdy pliki z tymi rozszerzeniami trzeba przetransmitować do DOS-u).

Czasami może zajść konieczność rozpakowania plików utworzonych narzędziami Unixowymi pod MS-DOS-em: może to mieć miejsce np. w przypadku plików tekstowych, takich jak książki czy artykuły, które najczęściej są również skompresowane compress'em czy gzip'em. Dostępne są w tym celu DOS-owskie wersje programów takich jak tar, compress czy gzip; można je znaleźć także we wspomnianym już archiwum Simtel: compress i gzip w katalogu /pub/mirror/Simtel.Net/msdos/compress, zaś tar - w /pub/mirror/Simtel.Net/msdos/arcers.

Archiwów FTP na świecie jest bardzo wiele, nie wszystkie jednak są jednakowo ważne. Wiele z nich przechowuje po prostu kopie plików "ściągniętych" z innych, większych archiwów. Do tych największych i najważniejszych zaliczają się: Simtel - największy chyba na świecie zbiór oprogramowania dla MS-DOS-u; CICA - analogicznie, ale dla MS-Windows; Hobbes - dla OS/2; archiwum oprogramowania GNU - znakomitych, nowoczesnych narzędzi Unixowych; archiwum Linuxa (darmowej wersji Unixa na komputery PC) i jeszcze kilkanaście innych. Większość z tych największych archiwów w celu zminimalizowania obciążenia sieci posiada swoje tzw. mirrory, czyli wierne, uaktualniane na bieżąco kopie, na wielu innych serwerach na świecie. Największym zbiorem mirrorów w Polsce, zawierającym kopie prawie wszystkich najważniejszych światowych archiwów, jest obecnie komputer o adresie sunsite.icm.edu.pl. Można na nim znaleźć mnóstwo prawdziwych ftp-owych "skarbów".

Pisząc o serwerach anonymous ftp nie sposób nie wspomnieć o ściśle związanym z nimi i często wykorzystywanym narzędziu, jakim jest archie - system umożliwiający odnalezienie poszukiwanego pliku w dowolnym archiwum ftp na świecie, jeżeli tylko znamy jego (pliku, nie archiwum) nazwę. Szczegółowy opis tej usługi zamieszczony był w numerze 2/95 "Internetu".


Jarosław Rafa 1996. Tekst udostępniony na licencji Creative Commons (uznanie autorstwa - użycie niekomercyjne - bez utworów zależnych). Kliknij tutaj, aby dowiedzieć się, co to oznacza i co możesz z tym tekstem zrobić. W razie jakichkolwiek wątpliwości licencyjnych bądź w celu uzyskania zgody na rozpowszechnianie wykraczające poza warunki licencji proszę o kontakt e-mailem: raj@ap.krakow.pl.

Wersja HTML opracowana 26.04.96, ostatnia aktualizacja adresów 20.01.97


Powrót do wykazu artykułów o Internecie Statystyka