Pliki do mnie!

Najpopularniejszą metodą przesyłania plików jest dołączanie ich do poczty elektronicznej. Cóż jednak poczniemy, gdy pojawi się konieczność “ściągnięcia” najnowszej wersji dużego pakietu, np. dystrybucji Linuksa? Warto sięgnąć w takich chwilach po narzędzia wyspecjalizowane w transmisji plików.

Przesyłanie plików pomiędzy oddalonymi od siebie komputerami jest jedną z podstawowych usług sieciowych, opartych na protokole TCP/IP. Można więc rzec, że temat istnieje dłużej niż sam Internet. Przeciętny zjadacz chleba często pobiera z Sieci pliki wskazane poprzez odsyłacze w dokumentach HTML, rzadziej wysyła jakieś dane, najczęściej dodając załączniki do poczty elektronicznej. Kłopoty pojawiają się w momencie, gdy wielkość danych przeznaczonych do przesłania trzeba liczyć w megabajtach. Połączenie z serwerem WWW może zostać zerwane, “megamaile” nie są mile widziane przez administratorów kont pocztowych. Warto wtedy przypomnieć sobie o starym, dobrym FTP.

Nie taki FTP straszny

Protokół transmisji plików (ang. File Transfer Protocol – FTP) jest jedną z usług sieciowych zdefiniowanych w warstwowym modelu TCP/IP, opisującym funkcje sieci komputerowych. FTP określa sposób przesyłania plików pomiędzy dwoma komputerami, bez konieczności uzyskiwania pełnego dostępu do zasobów komputera-odbiorcy. Nie oznacza to jednak, że połączenie z serwerem FTP omija autoryzację użytkownika na zdalnej maszynie. Wręcz przeciwnie, dostęp do poszczególnych plików i katalogów uzależniony jest od uprawnień posiadanych przez logującą się osobę. W zależności od ustawień serwera FTP uprawnienia użytkownika dotyczące dostępu do plików i katalogów mogą być takie same jak w systemie, na którym pracuje serwer, bądź ustalane osobno. Serwery FTP przeznaczone do użytku publicznego pozwalają jednak z reguły na uzyskanie anonimowego dostępu do określonych zasobów osobom posługującym się identyfikatorem “anonymous”.

Obciążenie komputera, na którym pracuje serwer FTP, przetwarzaniem jakichkolwiek danych jest minimalne (w porównaniu do innych usług sieciowych). Nie ma potrzeby uruchamiania na nim żadnych zadań, działanie demona FTP ogranicza się do odpowiadania na proste komendy wysyłane przez klienta oraz do sterowania transmisją wybranych plików. Polecenia FTP dotyczą trzech etapów współpracy z serwerem: nawiązania i zakończenia połączenia, ustawienia parametrów transmisji oraz wykonywania operacji na plikach, głównie kopiowania.

Protokół FTP wykorzystuje dwa porty TCP/IP jako niezależne kanały informacyjne: jeden służy do sterowania sesją, drugi do właściwego przesyłania plików.

Rozwiązaniem charakterystycznym dla protokołu FTP jest użycie dwóch niezależnych kanałów do komunikacji między serwerem a klientem: jednego do przekazywania poleceń sterujących (port 21), drugiego do transmisji danych. Domyślnym kanałem transmisyjnym jest port 20, faktycznie jednak klient wybiera (za pomocą komendy PORT) inny numer portu dla każdej nowej transmisji, co pozwala mu wykonywać kilka zadań jednocześnie.

Inną korzyścią, wynikającą z takiego rozwiązania, jest możliwość zorganizowania przez użytkownika klienta FTP bezpośredniej transmisji danych między dwoma serwerami (które dysponują z reguły lepszymi łączami). Jeśli więc mamy własne konto na jakimś bliskim serwerze FTP, to warto wykorzystać go w roli bufora.

Użytkownicy “ukryci” za firewallami mogą dość często napotykać na problemy przy współpracy z “zewnętrznymi” serwerami FTP. Jest to spowodowane wykorzystywaniem do transmisji plików różnych, zmieniających się numerów portów – firewall nie przepuszcza danych adresowanych do portów innych niż standardowo przypisane do poszczególnych usług sieciowych. Do rozwiązania tego problemu wystarcza z reguły wykonanie tzw. pasywnego otwarcia transmisji (klient wysyła komendę PASV zamiast PORT – patrz: słowniczek). W odpowiedzi serwer przekazuje informację o wybranym przez siebie numerze portu (nie jest to już więc numer nieznany), a następnie oczekuje na zainicjowanie transmisji. Problem w tym, że niektóre serwery FTP (np. popularny demon FTPD firmy HellSoft dla NetWare) nie umożliwiają pasywnego otwarcia. W tej sytuacji nawet najlepszy klient FTP nic nie pomoże.

Więcej, niż może przeglądarka

Kopiowanie plików z serwera WWW odbywa się na innej zasadzie niż w przypadku FTP. Przede wszystkim protokół HTTP zazwyczaj nie dokonuje autoryzacji użytkownika, również przesyłanie plików zwykle możliwe jest tylko w jednym kierunku, czyli od serwera do klienta. Protokół ten nie został stworzony z myślą o przeglądaniu katalogów i plików na serwerze ani kopiowaniu katalogów wraz z całą zawartością.

Menedżer pobierania plików i klient FTP działają na innych zasadach, reprezentują dwie różne grupy programów. Które z nich skuteczniej pomagają “ściągać” zbiory z Internetu?

Większość użytkowników Internetu byłaby usatysfakcjonowana możliwością “ściągnięcia” pliku bezpośrednio ze strony WWW, gdyby odbywało się to zawsze szybko i bez zacięć. Rzeczywistość jednak nie jest tak różowa. Dlatego też z przychylnym przyjęciem spotkały się programy uzupełniające w tym zakresie możliwości przeglądarek WWW, przeznaczone głównie do kopiowania z serwerów wybranych zbiorów. Aplikacje takie, nazywane menedżerami pobierania plików, wyposażone są w wiele pomysłowych funkcji. Szczególne znaczenie ma możliwość przygotowania listy plików do pobrania w momencie, który najbardziej odpowiada użytkownikowi, oraz wznowienie (o ile serwer na to pozwala) przerwanej transmisji w miejscu, gdzie nastąpiła katastrofa. Czas ładowania pliku można znacznie skrócić, dzieląc zbiór na kilka części kopiowanych jednocześnie. Ciekawych pomysłów wciąż przybywa, kolejne wersje aplikacji są coraz bogatsze.

Przyszłość FTP

Żywotność protokołu FTP jest imponująca, jednak konieczne już jest uaktualnienie istniejącej specyfikacji. Przykładem może być dokument RFC2428, opisujący rozszerzenie FTP o obsługę adresów IPv6 poprzez wprowadzenie nowych poleceń EPRT oraz EPSV w miejsce PORT i PASV. Może się zrodzić pytanie, czy warto jeszcze tworzyć oprogramowanie wykorzystujące jedną z najstarszych, wcale nie najłatwiejszych w użyciu usług sieciowych.

Zadaniem, w którym FTP wciąż nie daje się wyręczyć, jest zapewnienie użytkownikowi pełnego dostępu do plików przechowywanych na odległej maszynie. Za przykład wykorzystania takiego dostępu służyć może uaktualnianie z domu własnego serwisu WWW, zainstalowanego na serwerze, co najczęściej możliwe jest tylko za pomocą protokołu FTP. Chodzi tu co prawda o operację odwrotną do “ściągania” plików z sieci, niemniej istotną.

Wszystko zależy od naszych potrzeb: klasyczny klient FTP lepiej nadaje się do przeglądania zawartości serwerów FTP, a menedżer współpracujący z przeglądarką skutecznie wspomoże nas, gdy pobieramy pliki z witryn WWW.

Można zaryzykować stwierdzenie, że przyszłość narzędzi usprawniających pobieranie plików z Internetu należy do aplikacji inteligentnie wykorzystujących możliwości obu protokołów, tj. HTTP i FTP. Widać to wyraźnie na przykładzie aktualnych wersji popularnych menedżerów pobierania plików, które mają najczęściej wbudowane funkcje klienta FTP.

Plik poproszę

Klasyczne klienty FTP oraz menedżery pobierania plików to narzędzia pracujące na nieco odmiennych zasadach. Widać to zwłaszcza po bliższym przyjrzeniu się funkcjom udostępnianym przez aplikacje należące do poszczególnych grup. Ścisła integracja z przeglądarkami WWW, rozbudowane terminarze zadań przy jednoczesnym braku książek adresowych czy też możliwości poruszania się po drzewie katalogów – to charakterystyczne cechy menedżerów pobierania plików. W ich najnowszych wersjach widać jednak wyraźnie, iż ewoluują one w kierunku rozwiązań kompletnych, umożliwiających także wygodną obsługę plików, niezależnie od wykorzystywanego protokołu. Nikogo nie powinna więc zaskakiwać obecność przedstawiciela tej grupy programów w pierwszej piątce testowanych aplikacji. Z kolei nowoczesne klienty FTP wzbogacone są o wiele funkcji, znacznie wykraczających poza samo wykonywanie standardowych komend protokołu.

Info
Grupy dyskusyjne
Uwagi i komentarze do artykułu:
#
Pytania techniczne:
#
Internet:
Dokumenty RFC:
#
Artykuły poruszające tematykę FTP:
http://www.standards.nhsia.nhs.uk/spg/step/stepdocs/H232-4.htm
http://cr.yp.to/ftp.html
Opis usługi ftpmail:
http://www.csdl.tamu.edu/~cchung/cpsc689/ftpmail/ftpmtoc.html
Serwisy udostępniające aplikacje FTP:
http://www.davecentral.com/
http://www.tucows.com/
http://www.inet.com.pl/FREEwarehome/
Na CHIP-CD w kategorii Internet | Klienty FTP znajdują się testowane programy, arkusz z wynikami testów oraz zestaw dokumentów RFC
Więcej:bezcatnews