Prijeđi na sadržaj

FTP

Izvor: Wikipedija
Pojmovi Internet protokola (IP)
5. Aplikacijski sloj

DHCPDNSFTPHTTPIMAP4IRCMIMEPOP3SIPSMTPSNMPSSHTELNETTLS/SSLBGPRPCRTPRTCPSDPSOAP

4. Prijenosni sloj

TCPUDPDCCPSCTP

3. Mrežni sloj

IP (IPv4IPv6) • ARPICMPIGMPRSVPIGPRARP

2. Podatkovni sloj

ATMBluetoothDTMEthernetFDDIFrame relayGPRSModemiPPPWi-Fi

1. Fizički sloj

Bluetooth RFFizički Ethernet nivoISDNModemiRS232SONET/SDHUSBWi-Fi

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 uspiješno obavljena, datoteka koja je zahtijevana ili poruka o grešci.

FTP komande

[uredi | uredi kod]

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

HELP zahtjev 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 zahtijeva 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] promjena tekućeg direktorijuma na udaljenom sistemu
LCD [ime direktorijuma na klijentu] promjena 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 smjesta. Poslata datoteka se smješta u tekući direktorijum na udaljenom računaru.
GET [ime udaljene datoteke] zahtjev za prenos udaljene datoteke na lokalni računar. Datoteka se smješ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 uvijek 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 kŏd odgovora. Kodovi su određeni FTP standardom i koriste se radi brže razmjene 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 uspiješno i kako da nastavi rad.

Arhitektura FTP sesije

[uredi | uredi kod]

FTP sesija se zapravo sastoji od dvije sesije: sesije za transfer (DTP - engl. Data Transfer Process) i kontrolne sesije (PI - engl. Protocol Interpreter). Kontrolna sesija se pokreće prva i šalje zahtjev za uspostavljanje veze udaljenom računaru. Nakon provjere identiteta i uspostavljanja dvosmijerne 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 kojem FTP server očekuje konekcije je po standardu uvijek 21.

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

FTP klijenti

[uredi | uredi kod]

Programi koji implementiraju FTP protokol i dozvoljavaju krajnjem korisniku da uspostavi konekciju i vrši razmjenu 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 zahtjeve. 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 | uredi kod]
  • 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 prenešenom sadržaju. Razna proširenja FTP-a rješavaju ovaj problem ubacivajuć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 zahtjev. 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 rješava koristeći pasivni režim rada.
  • Moguće su zloupotrebe u FTP ugrađenih mogućnosti za preusmjeravanje sadržaja da bi se sadržaj preusmjerio 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 provjeri 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 odsječak, ali čak i tada je neophodno da ih klijent eksplicitno zatraži. U nedostatku takvih metoda, provjera kompletnosti se najčešće odvija nezavisno od FTP protokola.
  • Pri prenosu datoteka, ne prenose se i dodatni podaci poput datuma kreiranja, poslednje izmjene isl. Po prijemu, datoteci se dodjeljuju trenutni datum i vrijeme. 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 | uredi kod]

Vanjske veze

[uredi | uredi kod]

Povezano

[uredi | uredi kod]