FTP punon përmesTCP-së.[1] Sipas parazgjedhjes lidhetportin 21 për lidhje hyrëse nga klientë FTP. Një lidhje në këtë port nga klienti FTP formon rrjedhën kontrolluese përmes së cilës barten udhëzimet nga klienti FTP tek serveri FTP dhe në raste edhe anasjelltas. FTP përdor "out-of-band control", që do të thotë se përdorë një lidhje tjetra për kontrollin dhe të dhënat. Rrjedhimisht, në mënyrë që transferi të zhvillohet, kërkohet një lidhje tjetër, e cila quhet "data stream" apo rrjedha e të dhënave. Varësisht nga mënyra e transferit, procesi i përgatitjes së data stream ndryshon. Porti 21 për kontrollim (ose program), porti 20 për të dhënat.
Nëmënyrën aktive, klienti FTP hap njëport dinamik, ia dërgon serverit FTP numrin e portit dinamik mbi të cilin po funksionon përmes "control stream" dhe pret një lidhje nga serveri. Kur serveri FTP fillon lidhjen e të dhënave me klientin FTP, ai lidh portin burimor me portin 20 në server.
Për të përdorur mënyrën aktive, klienti dërgon një PORT komandë, me IP-në dhe portin si argument. Formati për IP dhe port është "h1, h2, h3, h4, p1, p2". Secila fushë është një paraqitje decimale 8 bitëshe e IP-së host, e përndjekur nga një port i përzgjedhur i të dhënave. Për shembull, një klient me IP 192.168.0.1, duke "dëgjuar" mbi portin 49154 për lidhjen e të dhënave do të dërgojë komandën "PORT 192,168,0,1,192,2". Fushat e porteve duhet të interpretohen si p1×256 + p2 = port, ose, në këtë rast, 192×256 + 2 = 49154.
Nëmënyrën pasive, serveri FTP hap një port dinamik, ia dërgon klientit FTP IP adresën e serverit për t'u lidhur dhe portin në të cilin po dëgjon (një vlerë 16-bitëshe e thyer në një bajt të lartë dhe të ulët, siç shpjegohet më lartë) përmes "control stream" dhe pret një lidhje nga klienti FTP. Në këtë rast, klienti lidh portin burimor të lidhjes në një port dinamik
Për të përdorur mënyrën pasive, klienti dërgon komandënPASV ndaj së cilës serveri do të përgjigjej me diçka si "227 Entering Passive Mode (127,0,0,1,192,52)". Sintaksa e adresës IP dhe portit janë të njëjta me argumentin e PORT komandës.
Nëmënyrën e zgjeruar pasive, serveri funksionon njëjtë si në mënyrën pasive por transmeton vetëm numrin e portit (jo të thyer në bajta të lartë dhe të ulët) dhe klienti pandeh se po lidhet me adresën e njëjtë IP që ishte lidhur më parë. Mënyra e zgjeruar pasive ishte shtuar ngaRFC 2428 në shtator 1998.
Derisa transferohen të dhënat përmesdata stream, control stream qëndron pa vepruar. Kjo mund të shkaktojë probleme me transfera të mëdhaja mefirewall të cilat ndalin seancat pas periudhave të gjata të qëndrimit në këtë mënyrë të control stream. Derisa skedat mund të transferohen me sukses, seanca control mund të çlidhet nga firewall, duke shkaktuar ndonjë error.
Protokolli FTP përkrah vazhdimin e shkarkimeve të ndërprera duke përdorur komandën REST. Klienti bart numrin e bajtëve që tanimë ka pranuar si argument tek komanda REST dhe ri-fillon transferin. Në disa klientë të linjave udhëzuese (command-line clients) për shembull, ekziston një komandë shpesh e injoruar por mjaft e dobishme, "reget" (që do të thotë "merr përsëri") që do t'i mundësojë një komande "get" të ndërprerë të vazhdojë, duke shpresuar deri në përfundim, pas një ndërprerjeje të komunikimit.
Vazhdimi i ngarkimeve, sidoqoftë, nuk është kaq i lehtë. Megjithëse protokolli FTP përkrah komandën APPE për të shtuar të dhëna te një skede (fajlli) në server, klienti nuk e di pozicionin e saktë në të cilin u ndërpre transferi. Ai duhet të gjejë madhësinë e skedës në një mënyrë tjetër, për shembull përmes një liste direktorie ose duke përdorur komandën SIZE.
Në mënyrën ASCII, vazhdimi i transferit mund të shkaktojë problem të shumta nëse klienti dhe serveri përdorin karaktere kompjuterikeend of line të ndryshme nga njëra tjetra.
Qëllimet e FTP-së janë, siç përshkruhen ngaRFC-ja e saj:
- Promovimi i shpërndarjes së skedave (programve kompjuterike dhe/ose të dhënave).
- Frymëzimi i përdorimit direkt apo indirekt tëremote computer (kompjuterëve nga largësia).
- Mbrojtja e një përdoruesi nga variacionet e sistemeve të ruajtjes së skedave meshostëve të ndryshëm.
- Transferimi i të dhënave në mënyrë të besueshme dhe efikase.