Sunteți pe pagina 1din 10

Protocolul FTP

Protocolul pentru transfer de fișiere (sau FTP, din engl. File Transfer Protocol)
este un protocol (set de reguli) utilizat pentru accesul la fișiere aflate
pe servere din rețele de calculatoare particulare sau din Internet. FTP este utilizat
începând de prin anul 1985 și actualmente este foarte răspândit. Numeroase servere de
FTP din toată lumea permit să se facă o conectare la ele de oriunde din Internet, și ca
fișierele plasate pe ele să fie apoi transferate (încărcate sau descărcate). Webul nu aduce
aici mari schimbări, ajută doar ca obținerea fișierelor să se realizeze mai ușor, având o
interfață mai prietenoasă decât aplicațiile (programele) de FTP. Este posibil să se
acceseze un fișier local prin adresa sa URL, ca și la o pagină de Web, fie utilizând
protocolul "file" (fișier), fie pur și simplu utilizând calea și numele fișierului. Această
abordare este similară utilizării protocolului FTP, dar nu necesită existența unui server.
Desigur funcționează numai pentru fișiere locale.

Scopurile protocolului FTP sunt :


 sa promoveze ideea de partajare de informatii organizate in fisiere(programe
sau/si date)
 sa incurajeze conexiunea implicita sau indirecta intre calculatoare aflate la
distanta ( prin intermediul programelor )
 sa protejeze utilizatorul de variatiile dintre diferitele sisteme de operare de pe
calculatoare diferite
 sa transfere date intre calculatoare diferite eficient si stabil
Acest protocol , desi poate fi folosit direct de utilizator la un terminal , este
proiectat in principal pentru a fi folosit de aplicatii.
Aceasta specificatie incearca sa satisfaca diversele nevoi de comunicare ale
utilizatorilor conectati la servere foarte mari , la servere mici , la calculatoare personale
sau a celor conectati la TAC cu un protocol simplu si usor implementat.
Istorie
Protocolul FTP a avut o evolutie lunga de-a lungul anilor. Sectiunea Appendix III este
o compilatie cronologica a diferitelor documente RFC legate de FTP de-a lungul
timpului .
Acestea includ si primul mecanism de transfer fisiere din 1971 dezvoltat pentru
implementarea pe masinile de la M.I.T. (RFC 114), plus comentarii si discutii
referitoare la
RFC 141.
RFC 172 furnizeaza un protocol orientat pe nivelul userului pentru transferul
fisierelor intre doua calculatoare ( inclusiv terminale IMPS ). O revizuire a acestui
document este RFC 265, iar in RFC 281 au fost propuse alte modificari . In ianuarie
1982 in RFC 294 a fost propusa folosirea conventiei "Set Data Type".
RFC 354 a inclocuit RFC 264 si 265. Protocolul FTP a fost redefinit ca un protocol
pentru transferul fisierelor intre calculatoare diferite din ARPANET, avand ca
principala functie transferarea eficienta si stabila a fiserelor intre calculatoare si care sa
permita folosirea usoara a metodelor de stocare la distanta.
RFC 385 a commentat erorile, a intarit unele idei si adaugiri la protocol, in timp
ce RFC 414 a adus un raport provind functionarea protocolului pe servere si pe
calculatoare personale. RFC 430, publicat in 1973 ( printre alte documente RFC ) a
prezentat alte sugestii. In cele din urma un document oficial a fost publicat sub numele
de RFC 454.
Incepand cu iulie 1973 au fost facute schimbari considerabile de la ultimele versiuni
ale protocolului, dar structura generala a ramas neschimbata. RFC 542 a fost publicat ca
noua specificatie "oficiala" pentru a reflecta aceste schimbari. Exista si alte documente
bazate pe specificatiile vechi care nu au fost reinnoite.
In 1974 RFC 607 si 614 au adus modificari si sugestii noi. RFC 624 a facut acelasi
lucru si el. In 1975, a fost publiat RFC 686, care a fost intitulat "Leaving Well Enough
Alone",a discutat diferentele intre toate versiunile anterioare ale specificatiei. RFC 691
a prezentat o revizuire minora a RFC 686 cu privire la tiparirea fisierelor.
Motivata de tranzitia de la NCP la TCP ca protocol de baza , FTP a renascut ca
pasareapheonix din toate eforturile din RFC 765 pentru folosirea protocolului TCP .
Editia curenta a specificatiei FTP isi propune sa corecteze unele erori minore din
documentatie, sa imbunatateasca documentarea unor caracteristici ale protocolului si a
adaugat alte comenzi optionale.
Functii pentru transferul de informatii
Fisierele pot fi transmise doar prin conexiunea de date. Conexiunea de control este
Folosita pentru transferul comenzilor, care descriu operatiile ce urmeaza sa fie
executate, Si raspunsurile la aceste comenzi ( vezi sectiunea raspunsuri la comenzi ftp ).
Exista Comenzi care se ocupa cu transferul informatiei intre host-uri. Printre
acestea amintim aici
De comanda mode care specifica felul in care bitii sunt transmisi, si comenzile
structure Si type care sunt folosite pentru a defini modul in care este reprezentata
informatia.
Transmiterea si reprezentarea sunt in mod normal independente dar transmisia de
tip "stream" Este dependenta de atributul structurii de fisiere si daca este folosita
transmisia "compressed" tipul octetului de umplere depinde de tipul reprezentarii.

Reprezentarea informatiei si stocarea ei


Informatia este transferata de pe un mediu de stocare de la un host catre un alt
mediu
De stocare pe alt host. Uneori este necesara realizarea unor anumite transformari
ale
Informatiei deoarece reprezentarea informatiei pe cele doua sisteme de operare este
diferita. De exemplu, NVT-ASCII are o reprezentare diferita in sisteme diferite.
Sistemele de tip DEC TOPS-20 stocheaza fisierele in format NVT-ASCII sub forma de
caractere ASCII de 7 biti, Aliniate la stanga in cuvinte de 36 de biti. Sistemele de tip
IBM Mainframe stocheaza Fisierele folosind codificare EBCDIC pe 8 biti. Cele de tip
Multics stocheaza fisierele
Folosind NVT-ASCII sub forma a 4 caractere de cate 9 biti in cuvinte de 36 biti.
Este Preferabila convertirea caracterelor in reprezentarea standard NVT-ASCII cand se
transmite
Text intre sisteme diferite. Host-urile care trimit si primesc vor trebui sa realizeze
Transformarile necesare intre reprezentarea standard a caracterelor si cea interna.
O problema diferita apare in reprezentare cand se transmite informatie in format
binar ( nu coduri de caracter ) intre host-uri diferite cu lungimi de cuvint diferite. Nu
este Intotdeauna clar felul in care cel care trimite informatia face acest lucru si nici felul
In care in care cel care o primeste o stocheaza. De exemplu, cand se trimit octeti de
32 De biti de la sisteme care au reprezentarea interna pe cuvinte de 32 de biti, pe
sisteme care
Reprezinata datele pe cuvinte de 36 biti, ar fi preferabil ( din motive de eficienta si
Utilitate ), ca informatia sa se pastreze sub forma de cuvinte de 32 biti aliniati la
Dreapta in cuvinte de 36 biti in sistemele care primesc datele. In orice caz, utilizatorul
Ar trebui sa aiba optiuni de specificare a formei de reprezentare a informatiei si functii
De transformare a formatului acesteia. Trebuie notat ca protocolul FTP permite
reprezentari Limitate a informatiei.
Transformarile dorite in afara celor specificate trebuie facute de utilizator sau de
aplicatie direct.
TIPURI DE INFORMATIE
Reprezentarile informatiei sunt utilizate in protocolul FTP de catre utilizator prin
specificarea tipului. Acest tip poate defini implicit ( cazul ASCII sau EBCDIC)
sau explicit ( cazul octetului Local ) o marime de interpretare care este interpretata ca
"marime logica".
Trebuie observat ca aceasta nu are nimic in comun cu marimea octetului folosita
pentru transmiterea informatiei prin conexiunea de date, matine numita "marime de
transfer", si cele doua nu trebuie confundate. De exemplu NVT-ASCII are marimea
logica de 8 biti. Daca tipul este
Local, atunci comanda TYPE are obligatoriu un al doilea parametru care specifica
marimea logica. Marimea de transfer este intotdeauna 8 bits.
Modelul protocolului FTP

Figura 1.Modelul utilizarii protocolului FTP


In diagrama din Figura 1, interpretorul protocolului pe partea de client initiaza
conexiunea de control . Conexiunea de control urmeaza protocolul Telnet. La
comenzile utilizatorului sunt generate comenzi standard de interpretorul protocolului de
pe partea de client si transmise procesului corespunzator de pe partea de server prin
intermediul conexiunii de control.( Utilizatorul poate stabili o conexiune de control
directa cu serverul FTP, de la un terminal TAC si poate denera comenzi FTP standard
independent,trecand peste procesul FTP client.) Raspunsuri standard la aceste comenzi
sunt transmise de catre interpretorul protocolului pe partea de server catre
corespondentul lui pe partea de client prin conexiunea de control.
Comenzi FTP specifica parametrii pentru conexiunea de date ( portul, modul de
transfer, tipul de reprezentare si structura ) si tipul operatiilor specifice sistemului de
operare ( send,retrieve, append,delete,etc). Procesul client DTP sau cel care indeplineste
functia sa trebuie sa asculte la portul specific, si serverul initiaza conexiunea de date si
conexiunea de transfer in concordanta cu parametrii specificati.
Trebuie specificat faptul ca portul de date nu trebuie sa fie pe aceeasi masina cu
cea care initiaza comenzile FTP prin conexiunea de control, dar clientul sau procesul
FTP client trebuie sa se asigure ca asculta portul corespunzator.
Trebuie specificat de asemenea faptul ca legatura de date poate fi folosita pentru
trimiterea simultana si primirea simultana de informatii. Alta situatie este cea in care
utilizatorul doreste sa transfer informatii intre doua host-uri, care sunt diferite amandoua
de calcultatorul utilizatorului. Acesta realizeaza o conexiune intre cele doua host-uri .
Astfel, controlul infomratiei este transferat interpretorului protocolului pe parte de
client dar informatia este transferata intre procesele de transfer server.
Protocolul POP
Protocolul POP (Post Office Protocol) functioneaza foarte asemanator cu
protocolul SMTP (descris pe larg in articolul din luna martie 2001). In prezent exista
doua versiuni de POP: POP2 si POP3. Cu toate ca suntem tentati, la prima vedere, sa
credem ca POP3 este o revizuire (imbunatatire) o protocolului POP2, cele doua
protocoale sunt total diferite, folosind chiar porturi de comunicatie diferite. POP2 este
mult mai apropiat de SMTP decat POP3, comenzile si structura lor fiind mult mai
apropiate de comenzile SMTP.
Protocolul POP3 defineste trei stadii distincte prin care poate trece o sesiune de
lucru: autorizare, tranzactie si actualizare. In starea de autorizare clientul trebuie sa se
autentifice pe server (nume utilizator + parola). Daca aceasta etapa s-a incheiat cu
succes, serverul deschide cutia postala a clientului si sesiunea trece in starea de
tranzactie. In aceasta stare, clientul poate cere serverului sa-I ofere anumite date (o lista
a mesajelor) sau sa efectueze o anumita actiune (preluarea mesajelor).
Cand serverul termina de executat comenzile clientului, sesiunea POP3 intra in
starea actualizare si conexiunea se inchide. Prezentam mai jos comenzile POP3 necesare
pentru o implementare minimala a acestui protocol pe Internet.
Poate deveni costisitor (sau imposibil) să menţii un computer conectat la o reţea
pentru o perioadă mai mare de timp (nodul duce lipsă de resursa cunoscută ca
“conectivitate”). Rolul acestui protocol este de a permite utilizatorilor să îşi aducă
mesajele de pe calculatorul server (care are rolul de oficiu poştal) pe propriul calculator.
Protocolul POP3 defineşte un limbaj de comunicare între procesul care cere
informaţiile (client) şi procesul care execută comenzile şi transmite mesajele cerute de
către client (server).
POP3 este, alături de IMAP, unul din protocoalele utilizate de un calculator
gazdă pentru recepţionarea poştei electronice (e-mail). Acest protocol este cel mai
utilizat protocol pentru extragerea mesajelor unui utilizator de pe un calculator server
care îi gestionează căsuţa poştală.
Primul set de specificaţii pentru acest protocol a fost documentat în RFC 1081, de
către M. Rose, în 1988. Actualul set de specificaţii este RFC 1939. De obicei, portul
TCP standard pentru protocolul POP3 este 110.
Recepţionarea unui e-mail presupune ca utilizatorul căruia îi este destinat mesajul
să pornească aplicaţia client pentru serviciul de poştă electronică şi să îi specifice
acesteia să extragă de pe calculatorul server (care are rolul de oficiu poştal) noile mesaje
asociate casuţei sale poştale.
Principalele facilităţile oferite de către acest protocol sunt:
 extrageriea mesajelor de pe calculatorul server;
 ştergerea mesajelor (care au fost sau nu recepţionate) de pe calculatorul server;
 posibilitate utilizării versiunii securizate, POPS3, care criptează informaţiile
transmise între procesul client şi procesul server, pentru a preveni astfel
interceptarea acestora.
Comunicaţia între procesul client şi procesul server se efectuează astfel: clientul
trimite o comandă server-ului, acesta o execută şi returnează clientului un cod numeric
(în funcţie de care se va putea apoi analiza dacă respectiva comandă a fost executată sau
nu corect).
Starea AUTHORIZATION si starea TRANSACTION
Odată ce conexiunea TCP a fost deschisă de un client POP3, serverul POP3 emite
o linie de salut. Acesta poate fi orice răspuns pozitiv. Un exemplu poate fi:
S: +OK POP3 server ready
Sesiunea POP3 este acum în starea de AUTHORIZATION. Clientul trebuie acum
să se identifice şi să se autentifice serverului POP3. Două mecanisme posibile pentru
aceasta sunt combinaţia comenzilor USER şi PASS şi comanda APOP. Mecanisme
suplimenatare de autentificare sunt descrise în RFC 1734. Cât timp există mai multe
mecansime de autentificare acestea sunt cerute de toate serverele POP3, un server POP3
trebuie să suporte, bineînţeles, cel puţin unul din aceste mecanisme.
Odată ce serverul POP3 a fost determinat complet, utilizarea oricărei comenzi de
autentificare a clientului, ar trebui să-i dea acces la maildrop-ul potrivit; serverulPOP3
dobândeşte acces exclusiv pentru blocarea maildrop-ului, fiind necesară prevenirea
modificării şi ştergerii mesajelor înainte ca sesiunea să intre în starea UPDATE. Dacă
blocajul este dobândit cu succes, serverul POP3 răspunde cu un indicator de stare
pozitiv.
Sesiunea POP3 intră acum în starea TRANSACTION, cu nici un mesaj marcat
pentru ştergere (în aceasta stare, clientul poate emite orice comenda POP3, eventual si
în mod repetat. Este posibil ca clientul sa emita comanda QUIT şi sesiunea POP3 intre
în starea de UPDATE.)
Dacă maildrop-ul nu a putut fi deschis din diferite motive (ex. blocajul nu a putut
fi realizat, clientul nu are acces la maildrop, sau maildrop-ul nu poate fi citit), serverul
POP3 răspunde cu un indicator de stare negativ. (Dacă s-a realizat blocajul şi serverul
POP3 intenţionează să răspundă cu un indicator de stare negativ, atunci el trebuie să se
deblocheze înainte de respingerea comenzii).
După returnarea negativă a indicatorului de stare, serverul poate închide
conexiunea. Dacă serverul nu închide conexiunea, clientul poate emite fie o nouă
comandă de autenficare şi să pornească din nou, fie poate emite comanda QUIT.

După ce serverul POP3 a deschis maildrop-ul, este asociat un număr fiecărui


mesaj şi se notează mărimea fiecărui mesaj în octeţi. Primului mesaj din maildrop îi este
asociat numărul de mesaj “1”, celui de-al doilea “2” şi aşa mai departe, astfel încât celui
de-al n-lea mesaj îi este asociat numărul de mesaj “n”. În POP3 comenzile şi
răspunsurile, toate numerele de mesaje şi mărimea mesajelor sunt exprimate în baza 10
(decimal).

Comenzi POP3
Comenzile POP3 constau din codul comenzii format din patru litere şi urmat
opţional de un parametru. Acestea sunt case-insensitive (adică pot fi scrise atât cu litere
mici cât şi cu majuscule) si reprezintă o combinaţie de prescurtări de cuvinte specifice
din limba engleză.

Principalele comenzi definite de protocolul POP3 sunt:


USER <utilizator> - specifică procesului server numele utilizatorului pentru care să
deschidă căsuţa poştală;
PASS <parola> - trimite procesului server parola contului de utilizator asociată cu
contul de utilizator specificat la comanda precedentă;
LIST [<numar_mesaj>] – cere procesului server să listeze toate mesajele utilizatorului;
RETR <numar_mesaj> - cere procesului server să listeze conţinutul mesajului cu
numărul de identificare specificat de parametrul <numar_mesaj>;
DELE <numar_mesaj> - şterge mesajul cu numărul specificat de parametrul
<numar_mesaj>;
QUIT - închide canalul de comunicaţie dintre client şi server;
STAT – cere procesului server să afişeze informaţii statistice despre căsuţa poştală a
utilizatorului curent (şi numărul de mesaje din căsuţa poştală şi dimensiunea totală a
acestora);
LAST – cere procesului server să afişeze numărul de identificare al ultimului mesaj
venit în căsuţa poştală;
TOP <numar_mesaj> <numar_linii> – specifică procesului server să listeze din mesajul
cu numarul de identificare specificat de parametrul <numar_mesaj> primele
<numar_linii> de conţinut;
RSET – resetează starea mesajelor din căsuţa poştală (refăcând mesajele şterse).

Formatul Mesajului
Toate mesajele transmise în timpul sesiunii POP3 sunt sumate conform
standardului pentru formatul textelor mesajelor pentru Internet RFC 822. Este important
de observat că numărarea octetului pentru un mesaj de pe un server gazdă poate diferi
de numărarea octetului asignat mesajului datorită convenţiilor locale pentru desemnarea
sfârşitului de linie (end-of-line). De obicei, în timpul stării de AUTHORIZATION a
unei sesiuni POP3, serverul POP3 poate calcula mărimea fiecărui mesaj în octeţi când
deschide maildrop-ul. De exemplu, dacă serverul gazdă POP3 numără fiecare apariţie a
acestui caracter ca doi octeţi. Acele linii din mesaj care încep cu octetul terminal nu au
nevoie (şi nu trebuie) numărate de doua ori, deoarece clientul POP3 va şterge toate
caracterele de terminale când primeşte un răspuns multi-linie.

Modul de recepţionare a unui mesaj


Pentru a testa comenzile implementate in protocolul POP3 şi a simula un dialog
dintre un proces client POP3 şi un proces server POP3 se poate utilizat aplicaţia telnet.
Simularea presupune:
- conectarea la calculatorul serverul;
- autentificarea clientului POP3;
- istarea sumară a mesajelor din căsuţa poştală;
- listarea conţinutului unui mesaj;
- ştergerea unui mesaj;
- închiderea conexiunii.
Comenzile şi mesajele schimbate de procesul client şi procesul server pentru
simulare sunt:
C:\telnet mail.com 110
+OK POP3 mail.com v2000.69mdk server ready
USER nume_user
+OK User name accepted, password please
PASS parola_user
+OK Mailbox open, 1 messages
lLIST
+OK Mailbox scan listing follows
1 478
.
RETR 1
+OK 478 octets
Return-Path: <expeditor@mail.com>
Delivered-To: destinatar@mail.com
Received: from pc_client (gigel [192.168.2.1])
by webmail.home (Postfix) with SMTP id 27A43C31F
for <destinatar@mail.com>; Thu, 15 Jan 2004
Message-Id: <20040115173850.27F245C31F@mail.com>
Date: Thu, 15 Jan 2004 12:38:50 -0500 (EST)
From: expeditor@webmail.home
To: undisclosed-recipients:;
Status:
acesta este corpul mesajului
scris pe mai multe linii
.
DELE 1
+OK Message deleted
QUIT
+OK Sayonara
POP3 vs. IMAP

Diferenta majora dintre POP3 si IMAP consta in faptul ca: in cazul utilizarii POP3
mesajele se descarca pe calculator si nu vor mai rezida pe server, eliberand spatiul iar in
cazul utilizarii IMAP mesajele vor fi citite direct de pe server, putand fi sterse in orice
moment.

POP3 IMAP

Avantaje POP3:
Avantaje IMAP:
mesajele sunt descarcate local, si pot fi
adecvat pentru mobilitate. Mesajele si folderele
citite offline (util in cazul unei
sunt accesibile de pe orice PC conectat la internet,
conexiuni dial-up)
atâta timp cât nu sunt şterse
este foarte popular, exista o sumedenie
mesajele nu sunt descarcate complet local; puteţi
de programe ce pot fi utilizate cu POP3
alege ce descărcaţi şi ce nu
Dezavantaje POP3:
Dezavantaje IMAP:
inadecvat pentru un utilizator mobil sau
necesita o conexiune internet relativ bună pentru o
mai multi utilizatori ai aceeasi casute
utilizare rapidă. Apar întarzieri la accesarea
postale. Fiindca mesajele sunt
folderelor şi mesajelor.
descărcate local si sterse de pe server,
mesajele vor exista doar pe acel la pastrarea mesajelor pe server, căsuţa poştală se
calculator ce le-a descarcat. poate umple relativ repede cu mesaje, ceea ce
poate duce la pierderea mesajelor ce nu mai încap
majoritatea clientilor POP3 descarca
în căsuţă.
toate mesajele complet, ceea ce face
(Este indicat să nu stocaţi mesajele citite pe server
dificila operatia cand aveti mesaje
pentru eliberarea spaţiului)
numeroase si mari.

S-ar putea să vă placă și