exemplu documentatie retele de calculatoare

5
Raport tehnic MyFileTransferProtocol(B) Bălean Alexandra Maria Anul II, grupa 3A Facultatea de Informatică, Universitatea Alexandru Ioan Cuza din Iași [email protected] http://students.info.uaic.ro/~alexandra.balean Abstract. Aplicația permite operațiuni de transfer de fișiere între server și clienți, precum și alte acțiuni cu fișierele/directoarele dintr-un sistem local de fișiere. (creare, redenumire, ștergere, etc). Keywords. MyFTP client-server

Upload: cezara-cocoi

Post on 29-Nov-2015

54 views

Category:

Documents


3 download

DESCRIPTION

exemplu documentatie retele de calculatoare proiect

TRANSCRIPT

Page 1: exemplu documentatie retele de calculatoare

Raport tehnic

MyFileTransferProtocol(B)

Bălean Alexandra Maria

Anul II, grupa 3A

Facultatea de Informatică, Universitatea Alexandru Ioan Cuza din Iași

[email protected]

http://students.info.uaic.ro/~alexandra.balean

Abstract. Aplicația permite operațiuni de transfer de fișiere între server și clienți, precum și alte acțiuni cu fișierele/directoarele dintr-un sistem local de fișiere. (creare, redenumire, ștergere, etc).

Keywords. MyFTP client-server

Page 2: exemplu documentatie retele de calculatoare

1 Introducere

Aplicația permite utilizatorului să realizeze transfer de fișiere/directoare între client și server (funcții de tipul send, receive), sau să aplice anumite funcții fișierelor/di-rectoarelor dintr-un sistem local de fișiere(creare, redenumire, ștergere, mutare, schimbarea directorului curent de lucru, afișarea conținutului directorului curent de lucru). Programul poate fi pornit din linia de comandă, cu anumite argumente. Uti-lizatorul va avea rol de client, și va trimite comenzi serverului, care le va verifica sintactic, apoi le va interpreta, executa și va trimite un răspuns înapoi clientului.

2 Tehnologii utilizate

Aplicația este realizată pe modelul client-server.Pentru ca clientul să se poată conecta la server, utilizatorul trebuie să se logheze cu un username și o parolă. Transmiterea parolei se va realiza în mod securizat, prin criptare. Procesele vor comunica între ele prin socket – uri, iar protocolul de comu-nicare folosit va fi TCP, deoarece acesta presupune o transmisie sigură și corectă a datelor, lucru absolut necesar în transferul de fișiere. Se va crea câte un proces-co-pil din procesul principal pentru fiecare client nou conectat, prin fork().Clientul trimite câte o comandă serverului (ex : send,receive,etc), iar server-ul îi verifică corectitudinea, o procesează, și trimite înapoi clientului un mesaj în care îi transmite dacă s-a realizat cu succes comanda dată. Clienții vor fi identificați prin IP și port.Limbajul folosit este C.

3 Arhitectura aplicației

Baza arhitecturii aplicației constă în trimiterea de comenzi de la client la server, efectuarea funcțiilor aferente de către server și transmiterea de mesaje de la server la client cu rezultatul comenzii date.Utilizatorul va putea realiza acțiuni de transfer de fișiere numai după autentificare (login). Pentru aceasta, va trebui să introducă o comandă de forma : login <user-name>. Se va verifica username-ul, iar dacă acesta are drept de acces (există în whitelist și nu există în blacklist), se va cere și parola, care se va transmite securi-zat, prin criptare. Momentan am implementat o formă de ”mascare” a parolei la in-troducerea ei de la tastatură, prin înlocuirea caracterelor scrise cu ”*”. Dacă parola

Page 3: exemplu documentatie retele de calculatoare

scrisă va fi cea menționată în fișierul cu datele utilizatorilor și va corespunde user-name-ului ales, utilizatorul va fi logat și liber să efectueze operațiuni de transfer. Comenzile scrise de clienți vor fi trimise printr-un socket spre server. Serverul va citi din socket, și va verifica sintaxa comenzii. Presupunând că aceasta este corectă, va extrage primul cuvânt din ea(ex. remove, create, etc), pentru a identifica tipul de operație pentru care este solicitat, și eventual următoarele cu-vinte din comandă le va folosi ca argumente sau opțiuni pentru execuție. Unele co-menzi scrise corect (cele executate asupra sistemului local de fișiere) vor putea fi executate cu ajutorul funcției execlp sau system, urmând a se asigura și un mesaj de transmis sau un cod de retur pentru a semnala eventualele erori ce apar.Rezultatul comenzii va fi scris din nou în socket, urmând ca clientul să îl citească.Clienții vor fi identificați prin IP și port, pentru ca serverul să trimită mesajul co-respunzător către clientul care l-a solicitat.

3.1 Procedura de logare :

while (!logged){ //bucla pana la logare cu succes

printf("<client>Trebuie sa va logati.\n");

printf("<client>Introduceti o comanda:");

scanf("%s",comm);

if(comm[0]=='l' && comm[1]=='o' && comm[2]=='g' && comm[3]=='i' && comm[4]=='n' && comm[5]==' ') /*ne conec-tam cu comanda de forma: login [username]*/

{ /*si abia apoi, daca userul exista, cerem parola*/

strcpy(username,comm+6); //aici avem username-ul

while(checkDbForUsers(username)==0){ //test username

printf("<client>User inexistent. Reincercati:");

scanf("%s",&username);

}

printf("<client>User OK. Introdu parola:");

while(c!=13) //bucla pana la Enter

Page 4: exemplu documentatie retele de calculatoare

{

c=getch();

i++;

password[i]=c;

printf("*"); //mascarea parolei

}

password[i++]='\0'; // aici avem parola

if(strstr(line,password)!=0) //pe linia pe care a ga-sit username-ul in fisier

logged=1;

else printf("Parola incorecta. Reintroduceti comanda de logare pentru a incerca din nou.\n");

}

4 Concluzii

Programul ar putea fi optimizat prin utilizarea unor baze de date SQL pentru stocarea datelor utilizatorilor. Comenzile ar putea fi extinse, adică s-ar putea implementa, de exemplu, funcționalități ca: montarea unor sisteme de fișiere, ()chmod(), stat, crearea unei comenzi de help, mai multe posibilități de a implementa aceeași funcție (ex. transfer fișiere – ASCII sau binar), bell - ca opțiune - care să asigure un anumit sunet când un transfer este terminat, etc.