Sunteți pe pagina 1din 1

Capitolul 29 - NFS: Network File System

Este o aplicatie ce permite accesul la fisiere unui client. NFS foloseste RPC:
Remote Procedure Call. Cand sistemul vrea sa acceseze un fisier ce se afla pe un
server NFS, acesta genereaza automat un apel RPC pentru accesarea fisierului.
In mod normal, aplicatiile functioneaza asfel: clientul trimite serverului o
comanda, iar serverul ii raspunde clientului. RPC functioneaza altfel. Un program
client este scris asfel incat el apeleaza functii in programul server.
RPC poate folosi UDP sau TCP. Un pachet RPC contine headerul IP si headerul UDP
standard, dupa care urmeaza datele. Acestea cuprind: 'transaction ID' (XID) permite
clientului sa faca match intre request si reply, variabila 'call' care indica daca
mesajul este un request sau reply, variabilele 'program number', 'version number',
'procedure number' indica procedura de pe server care este apelata. 'Credentials'
contine un ID si este folosit in cazul in care doar un anumit grup de clienti sunt
autorizati sa acceseze serverul. Dupa aceste variabile urmeaza parmetrii care sunt
trimisi functiei.
XDR: External Data Representation este modul satandard folosit pentru codarea
valorilor.
Programul RPC de pe server care contine procedurile ce pot fi apelate. Acesta aloca
cate un port temporar pentru fiecare procedura. Corespondenta dintre porturi si
proceduri este pastrata in registru numit 'port mapper'.
File handles - est un obiect folosit de client pentru a accesa un fisier sau
director de pe server. Serverul creeaza acest fisier si il trimite clientului,
clientul nu afla niciodata ce se afla in acest fisier.
NFS a fost great initial pentru a folosi UDP. Versiuni mai noi pot folosi si TCP.
Folosirea TCP este folosit pentru NFS in retele WAN.
Serverul NFS nu tine cont de fiecare client ce fisier acceseaza.
O procedura idempotenta este o procedura care returneaza acelasi rezultat
indiferent de cate ori este apelata. NSF are atat proceduri idempotente cat si
proceduri care schimba valoarea cand sunt apelate de mai multe ori. Din moment ce
NFS foloseste UDP si pachetele de raspuns se pot pierde, reapelarea unei proceduri
cand apare time-out, va intoarce alt rezultat. Asfel, se foloseste un cache care
stocheaza raspunsurile recente ale acestor proceduri, iar in cazul in care este
apelata o functie care isi schimba valoarea, raspunsul clientului va fi dat din
aceast cache.

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