FTP (engl. File transfer protocol – protokol za prenos datoteka) je najčešće korišćen protokol za prenos podataka između dva računara na mreži. FTP koristi TCP/IP za mrežnu komunikaciju, što omogućava da bude pouzdan i sesijski orijentisan.

FTP veza se uspostavlja na zahtjev klijentskog računara prema serverskom računaru. Klijentski računar mora da posjeduje program koji implementira FTP protokol (tzv. FTP klijent), a serverski računar mora da posjeduje program koji prihvata konekcije na standardnom FTP portu i takođe razumije komande protokola FTP (tzv. FTP server ili FTP demon). Kada se veza uspostavi, klijentski program šalje korisničke komande serverskom programu, koji ih obavlja i šalje odgovor. Taj odgovor može biti poruka da je komanda uspješno obavljena, datoteka koja je zahtijevana ili poruka o grešci.

FTP komande uredi

Slede najčešće korišćene komande protokola FTP:

HELP zahtev za spisak svih podržanih komandi
OPEN [ime serverskog računara] komanda kojom FTP klijent uspostavlja konekciju sa FTP serverom
USER [ime korisnika koji se prijavljuje na sistem] komanda kojom se korisnik predstavlja udaljenom sistemu i zahteva pristup. Korisnik može dati svoje korisničko ime ukoliko je registrovan na udaljenom sistemu, ili standardno ime anonymous za pristup javnom direktorijumu FTP servera, ako ga ima.
PASS [lozinka predstavljenog korisnika na udaljenom sistemu] ukoliko se koristi korisničko ime anonymous, lozinka predstavlja imejl-adresu korisnika; u suprotnom se zadaje lozinka korisnika na tom sistemu.
QUIT prekidanje FTP konekcije. Može se koristiti i ekvivalentna komanda BYE.
LS [ime* udaljenog direktorijuma/datoteke ili bez argumenata] sa zadatim imenom udaljenog direktorijuma, ovo je zahtjev za spisak datoteka i poddirektorijuma u tom direktorijumu. Ukoliko se ne zada nijedan argument, podrazumijeva se tekući direktorijum. Ukoliko se zada ime datoteke, kao odgovor se šalje isto to ime (time možemo da potvrdimo postojanje neke datoteke).
CD [ime direktorijuma na udaljenom računaru] promena tekućeg direktorijuma na udaljenom sistemu
LCD [ime direktorijuma na klijentu] promena tekućeg direktorijuma na klijentu.
PUT [ime lokalne datoteke] komanda za slanje lokalne datoteke na udaljeni sistem. Ukoliko je ime datoteke ispravno zadato, transakcija počinje smesta. Poslata datoteka se smešta u tekući direktorijum na udaljenom računaru.
GET [ime udaljene datoteke] zahtev za prenos udaljene datoteke na lokalni računar. Datoteka se smešta u tekući direktorijum lokalnog računara.
DELETE [ime udaljene datoteke] komanda za brisanje datoteke na udaljenom računaru
RENAME [ime udaljene datoteke] komanda za preimenovanje datoteke na udaljenom računaru
RMDIR [ime udaljenog direktorijuma] brisanje udaljenog direktorijuma. Direktorijum se na ovaj način može obrisati samo ako je prazan.
MKDIR [ime novog udaljenog direktorijuma] komanda za kreiranje novog direktorijuma na udaljenom računaru.
PWD komanda za dobijanje apsolutne staze do tekućeg direktorijuma na udaljenom računaru

*ime se uvek može zadati kao samo ime direktorijuma ili datoteke, ali i kao kompletna staza do istog, relativna ili apsolutna.

Kada FTP klijent uputi komandu FTP serveru, FTP server odgovara trocifrenim brojem, koji predstavlja kod odgovora. Kodovi su određeni FTP standardom i koriste se radi brže razmene podataka, a klijentski programi najčešće interpretiraju ovu poruku za korisnika na jezik razumljiv ljudima. Na osnovu odgovora korisnik zna da li se komanda izvršila uspešno i kako da nastavi rad.

Arhitektura FTP sesije uredi

FTP sesija se zapravo sastoji od dve sesije: sesije za transfer (DTP - engl. Data Transfer Process) i kontrolne sesije (PI - engl. Protocol Interpreter). Kontrolna sesija se pokreće prva i šalje zahtev za uspostavljanje veze udaljenom računaru. Nakon provere identiteta i uspostavljanja dvosmerne veze, klijent je u mogućnosti da šalje komande za obavljanje različitih zadataka.

Uspostavljanje TCP/IP veze se vrši sa porta izabranog metodom slučajnog izbora, a port na kom FTP server očekuje konekcije je po standardu uvek 21.

Kada klijent napravi zahtev za prenos podataka, tada se aktivira sesija za transfer koja vrši sam prenos. Za to vrieme kontrolna sesija mora ostati aktivna kako bi se komande i poruke mogle razmenjivati između klijentskog i serverskog računara.

FTP klijenti uredi

Programi koji implementiraju FTP protokol i dozvoljavaju krajnjem korisniku da uspostavi konekciju i vrši razmenu datoteka sa udaljenim računarima se zovu FTP klijenti. U početku razvoja Internet tehnologije, ovi programi su bili vrlo prosti i dozvoljavali su samo direktan unos FTP komandi. Vremenom uz razvoj grafičkih interfejsa ovi programi su postali komforniji za rad i krajnji korisnik ne mora da zna komande da bi koristio protokol, nego sistemom prozora i menija zadaje zahteve. Na tržištu se nalazi mnoštvo komercijalnih kao i besplatnih programa, a najčešće dolaze i uz sam operativni sistem.

Kritike uredi

  • I lozinke i sadržaji datoteka se prenose bez šifrovanja, bajt po bajt, te mogu biti presretnuti i iskorišćeni za neovlašćen pristup serveru i samom prenesenom sadržaju. Razna proširenja FTP-a rešavaju ovaj problem ubacujući međuslojeve za šifrovanje koristeći algoritme poput SSL-a ili TLS-a.
  • Protokol koristi više konekcija u jednoj transakciji, jednu za kontrolnu sesiju, po jednu za svaki zahtev. Ovo otežava rad administratorima zaduženim za kontrolu zaštitnog zida.
  • U aktivnom režimu rada, klijent odabira proizvoljan port za komunikaciju sa serverom, što takođe otežava rad zaštitnog zida koji propušta sadržaj samo na određenim portovima. Ovaj problem se najčešće rešava koristeći pasivni režim rada.
  • Moguće su zloupotrebe u FTP ugrađenih mogućnosti za preusmeravanje sadržaja da bi se sadržaj preusmerio na neki drugi računar.
  • FTP ima velike zastoje u radu zbog velikog broja komandi potrebnih za početak transakcije.
  • Ne postoji kontrola integriteta podataka - ako se transakcija prekine iz nekog razloga, primalac nema način da proveri da li je primljeni sadržaj kompletan. Određeni serveri sadrže proširenja koja uz sadržaj šalju i MD5 sumu (koristeći komandu SITE MD5) ili CRC odsečak, ali čak i tada je neophodno da ih klijent eksplicitno zatraži. U nedostatku takvih metoda, provera kompletnosti se najčešće odvija nezavisno od FTP protokola.
  • Pri prenosu datoteka, ne prenose se i dodatni podaci poput datuma kreiranja, poslednje izmjene i sl. Po prijemu, datoteci se dodeljuju trenutni datum i vreme. Proširenja FTP-a, poput SFTP-a, dozvoljavaju i prenos ovakvih atributa. Trenutno je u planu da se proširenjem standarda FTP-a uključe i ovakve mogućnosti, ali većina popularnih klijenata i servera za FTP to još uvijek ne podržava.

Literatura uredi

  • Brian Komar, 1999., „TCP/IP“, Kompjuter biblioteka. -year=-

Spoljašnje veze uredi

Vidi još uredi