William Stallings Data and Computer Communications Curs 12 Chapter 19 Aplicatii distribuite
Gestionarea retelelor- SNMP SNMP (Simple Network Management Protocol) Retelele devin indispensabile Cresterea complexitatii duce si la cresterea erorilor de functionare Apare necesitatea uneltelor de gestionare automata a retelelor Sunt necesare standarde pentru compatibilitatea intre producatori, standarde referitoare la Servicii Protocoale Gestionarea informatiilor de baza (Management information base - MIB)
Sisteme de management al retelelor O colectie de unelte pentru gestionarea retelelor Interfata pentru un singur operator Set de comenzi puternice Realizeaza majoritatea sau toate taskurile necesare managementului Sa necesite o cantitate minima de echipament separat Sa se foloseasca echipamentul existent Elementele active ofera feedback Sa aiba o vedere asupra intregii retele drept o arhitectura unificata
Elemente cheie Statii pentru management Agentul Baza de informatii pentru gestionare (MIB - Management Information Base) Protocol pentru gestionarea retelei
Statii pentru management Sisteme independente sau parti dintr-un sistem partajat Interfata pentru persoana gare realizeaza gestionarea retelei Setul aplicatiilor pentru gestiune Analiza traficului Recuperarea dupa erori Interfata pentru monitorizarea si controlul retelei Translatarea cererilor de gestiune ale administratorului in actiuni de monitorizare si control al elementelor retelei Baza de date cu informatii de management extrase din entitatile gestionate
Agentul Statii, bridgeuri, hhuburi, routere echipate cu programe agent Trebuie sa permita sa fie gestionate de catre statia de management Trebuie sa raspunda la cererile pentru informatii Sa raspunda la cererile pentru actiuni Sa ofere in mod asincron informatii nesolicitate
Baza de informatii pentru gestiune MIB - Management Information Base O reprezentare a resurselor retelei ca si obiecte Fiecare variabila a unui obiect reprezinta un aspect al obiectului gestionat MIB este o colectie de puncte de acces la nivelul agentului pentru managementul statiilor Obiecte standardizate (bridge-uri, routere etc)
Protocol pentru gestiunea retelelor O legatura intre statia gestionata si agent TCP/IP foloseste SNMP OSI foloseste Common Management Information Protocol (CMIP) SNMPv2 (SNMP inbunatatit) se foloseste pentru OSI si TCP/IP
Capabilitatile protocolului Get – preia valoarea unui obiect la agent Set – seteaza valoarea unui obiect la agent Notify – permite unui agent sa notifice statia gestionata in legatura cu anumite evenimente semnificative
Organizarea managementului Poate fi centralizat in retelele simple Poate fi distribuit in retelele mari, complexe Mai multe servere de management Fiecare gestioneaza o lista de agenti Managementul poate fi atribuit managerilor intermediari
Exemplu de configuratie pentru managementul distribuit
SNMP v1 August 1988 apar specificatiile SNMP Statii individuale pentru management, bridge-uri, routere, statii, agenti Functionalitate limitata Lipsa securitatii SNMP v2 1993, revizuit in 1996 RFC 1901-1908
SNMP v2 (1) Framework pe care se pot implementa aplicatiile pentru management De exemplu: managementul erorilor, monitorizarea performantei Protocol folosit pentru schimbul informatiilor de management Fiecare agent pastraza MIB local Structura e definita in standard Macar un sistem este responsabil cu managementul
SNMP v2 (2) Permite managemenul central sau distribuit La sistemele distribuite unele elemente opereaza drept manageri si agenti Schimburile se fac folosind protocolul SNMP v2 Protocol pentru cereri/raspunsuri Foloseste de obicei UDP Nu e necesara o conexiune sigura Reduce overheadul introdus de operatia de gestionare
Configuratia SNMP v2
Structura informatiei de management SMI - Structure of Management Information Defineste un framework general pentru definirea si constructia MIB Identifica tipurile de date Modul in care resursele se reprezinta si se denumesc Incurajeaza simplitatea si extensibilitatea
Modul de operare al protocolului Schimbul de mesaje Header pentru securitate in mesaje Sapte tipuri de PDU (Protocol Data Unit)
Formatul PDU la SNMP v2
SNMP v3 Problemele de securitate de la SNMP v1/2 RFC 2570-2575 Standard propus in ianuarie 1998 Defineste arhitectura generala si probleme legate de securitate Se foloseste impreuna cu SNMP v2
Servicii SNMP v3 Autentificarea Parte a UBS (User-Based Security) Se asigura ca mesajul: Vine de la sursa identificata Nu a fost modificat Nu a fost intarziat suplimentar sau inlocuit Confidentialitate Se cripteaza mesajele folosind DES Controlul accesului Se pot configura agentii pentru a oferi un numar de nivele de acces la MIB Accesul la infrmatie Limitarea operatiilor
Serviciul de e-mail Este printre cele mai des folosite aplicatii in orice retea Simple Mail Transfer Protocol (SMTP) TCP/IP Livreaza mesaje text Multi-purpose Internet Mail Extension (MIME) Livreaza alte tipuri de date Voce, imagini, videoclipuri
SMTP Specificat in RFC 821 Nu este interesat de formatul mesajelor sau datele continute Specificat in RFC 822 SMTP foloseste informatii care se scriu si pe plicurile scrisorilor convetionale Headerul mesajului Nu se uita la continutul mesajului Corpul mesajului Exceptii Standardizeaza setul de caractere al mesajului la ASCII pe 7 biti Adauga informatii de logare la inceputul mesajului Arata calea pe unde trece mesajul
Operatii de baza Mailiul este creat de un program utilizator (client de mail) Mesajul consta din Header – contine adresa destinatarului si alte informatii Corpul mesajului – contine datele utilizator Mesajele de pun intr-o coada si se trimit ca date de intrare unui program ce trimite date prin protocolul SMTP De regula acesta este un proces pe server (daemon in UNIX)
Continutul mesajelor de mail Fiecare mesaj pus incoada are: Textul mesajului Headerul (RFC 822) cu “plicul” mesajului si lista destinatarilor Corpul mesajului (scris de utilizator) Lista destinatarilor Se deduce de agentul utilizator din header Poate fi continuta in header Poate necesita extinderea listei de mail Poate necesita inlocuirea prescurtarilor prin nume cu adrese de mail Daca se indica BCC (BlindCarbonCopy) agentul utilizator trebuie sa pregateasca formatul corect al mesajului
Procesul care trimite mesaje SMTP Priea mesajul din coada Il transmite statiei destinatie Folosind o tranzactie SMTP Folosing una sau mai multe conexiuni TCP pe portul 25 Hostul poate mai multe adrese active Dupa livrare, cel care trimite (sender-ul) sterge destinatia din lista pentru acel mesaj Dupa procesarea tuturor destinatiilor se sterge mesajul
Optimizare Daca mesajul are mai multe adrese destinatie aflate pe acelasi host, acesta se trimite doar o data Livrarea catre toti utilizatorii se face la nivelul destinatiei Daca exista mai multe mesaje destinate aceluiasi host se foloseste o singura conexiune TCP Se reduce overheadul datorat stabilirii si terminarii conexiunii
Erori posibile Host unreachable Host out of operation Conexiunea TCP “cade” in timpul transferului Sender-ul poate repune mailul in coada Renunta dupa o anumita perioada Adrese destinatie gresite Erori utilizator Utilizatorul destinatie si-a schimbat adresa Redirectare daca e posibil Se informeaza utilizatorul daca nu
Caracteristicile SMTP Se foloseste pentru transferul mesajelor folosind o conexiune TCP Incearca sa ofere un serviciu fiabil Nu garanteaza recuperarea mesajelor pierdute Nu se realizeaza ACK capat la capat Nu se garanteaza indicarea erorilor de livrare a mesajului In genereal e considerat fiabil
Receptorul SMTP Accepta mesajele care sosesc Plaseaza mesajul in cutia postala a utilizatorului sau in pune in coada de iesire (pentru forward) Receptorul trebuie sa: Verifice adresele destinatie locale Faca fata erorilor de: Transmisie Lipsa de spatiu pentru mesaj Hostul care trimite mesajul este responsabil de acesta pana cand seprimeste confirmarea transferului complet Indica mailurile care sosesc la nivel de hst, nu de utilizator
Fluxul SMTP
Fazele operatiilor Stabilirea conexiunii Schimbul de perechi de comenzi-raspunsuri Terminarea conexiunii
Connection Setup Expeditorul deschide conexiuni TCP cu destinatarul Dupa stabilirea conexiunii destinatarul se identifica 220 <domain> service ready Expeeditorul se identifica HELO Destinatarul accepta identificarea expeditorului 250 OK Daca serviciul de mail nu e disponibil pasul 2 devine 421 serviciu nedisponibil
Transferul mailului Expeditorul poate trimite unul sau mai multe mesaje la destinatar Comanda MAIL identifica sursa Ofera o cale inversa pentru raportarea erorilor Destinatarul raspunde 250 OK sau cu mesajul de eroare corespunzator Una sau mai multe comenzi RCPT identifica destinatarii mesajului Raspuns separat delafiecare destinatar Cu comanda DATA se transmite corpul mesajului Sfarsitul mesajului este indicat printr-o linie care continedoar caracterul punct (.)
Terminarea conexiunii Contine 2 pasi Expeditorul trimite comnda QUIT si asteapta raspuns Doar apoi initiaza terminarea conexiunii TCP Destinatarul intiaza inchiderea conexiunii TCP dupa ce trmite raspuns la comanda QUIT
Exemplu de mesaj Date:Tue, 16 Jan 1996 10:37:17 (EST) From: “William Stallings” <ws@host.com> Subject:The syntax of RFC 822 To: Smith@otherhost.com Cc: Jones@Yet-another_host.com Aici se pune continutul mesajului delimitat de header si de o linie libera
Protocolul HTTP HyperText Transfer Protocol Protocolul sta la baza WWW (World Wide Web) Protocolul poate transfera text simplu, hipertext, informatii audio, imagini. Protocol client-server Orientat pe tranzactii Foloseste conexiuni TCP Fiecare tranzactie este tratata independent Pentru fiecare tranzactie se creeaza o noua conexiune Se inchide conexiunea cand se termina tranzactia
Cuvine cheie Cache Client Connection Entity Gateway Message Origin server Proxy Resource Server Tunnel User agent
Exemple de operatii HTTP
Sisteme intermediare HTTP
Mesaje HTTP Cereri (Requests) Raspunsuri (Responses) Request line Client la server Raspunsuri (Responses) Server la client Request line Response line General header Request header Response header Entity header Entity body
Structura mesajelor HTTP
Campurile antetului general (General Header) Cache control Connection Data Forwarded Keep alive MIME version Pragma Upgrade
Metodele HTTP Linia_cerere = metoda <SP> URL_cerut <SP> versiunea_HTTP <CRLF> Metodele HTTP: Get Head Post Put Copy Move Delete Link Unlink Trace Options
Request Header Field Accept Accept charset – setul de caractere acceptat Accept encoding – codificarea acceptata Accept language – limba acceptata Authorization – autorizarea From Host If modified since – data ultimei modificari Proxy authentication – autentificare proxy
Mesaje de raspuns (Response Messages) Linia de stare urmata de raspuns sau antete, eventual corpul entitatii Linia_stare = versiunea HTTP <SP> Cod_stare <SP> Reason-Phrase <CRLF> Coduri de stare: Informational Successful – raspuns cu succes Redirection – redirectare Client error – eroare la client Server error – eroare la server
Campurile headerului de raspuns Location – locarea Proxy authentication – autentificare cu proxy Public Retry after – reincercare mai tarziu Server WWW-Authenticate
Campurile antetului entitate Allow - permite Content encoding – codificarea continutului Content language – limba continutului Content length – lungimea continutului Content MD5 – continut MD5 Content range – domeniul continutului Content type – tipul Content version - versiunea Derived from Expires Last modified – data ultimei modificari Link Title Transfer encoding URL header – antet URL Extension header – antet de extensie
Corpul entitatii O secventa arbitrara de octeti Protocolul HTTP poate transfera orice tip de date incluzand: text date binare audio imagini video Interpretarea datelor este determinata de campurile din antet Content encoding – codificare continut Content type – tipul continutului Transfer encoding – codificarea continutului Bibliografie: Stallings cap. 19