Title: William Stallings Data and Computer Communications
1William StallingsData and Computer Communications
- Curs 12
- Chapter 19
- Aplicatii distribuite
2Gestionarea 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)
3Sisteme 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
4Elemente cheie
- Statii pentru management
- Agentul
- Baza de informatii pentru gestionare (MIB -
Management Information Base) - Protocol pentru gestionarea retelei
5Statii 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
6Agentul
- 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
7Baza 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)
8Protocol 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
9Capabilitatile 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
10Organizarea 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
11Exemplu de configuratie pentru managementul
distribuit
12SNMP 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
13SNMP 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
14SNMP 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
15Configuratia SNMP v2
16Structura 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 - Identifica tipurile de date
- Incurajeaza simplitatea si extensibilitatea
17Modul de operare al protocolului
- Schimbul de mesaje
- Header pentru securitate in mesaje
- Sapte tipuri de PDU (Protocol Data Unit)
18Formatul PDU la SNMP v2
19SNMP 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
20Servicii 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
21Serviciul 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
22SMTP
- 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
23Operatii 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)
24Continutul 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
25Procesul 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
26Optimizare
- 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
27Erori 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
28Caracteristicile 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
29Receptorul 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
30Fluxul SMTP
31Fazele operatiilor
- Stabilirea conexiunii
- Schimbul de perechi de comenzi-raspunsuri
- Terminarea conexiunii
32Connection Setup
- Expeditorul deschide conexiuni TCP cu
destinatarul - Dupa stabilirea conexiunii destinatarul se
identifica - 220 ltdomaingt 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
33Transferul 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 (.)
34Terminarea 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
35Exemplu de mesaj
- DateTue, 16 Jan 1996 103717 (EST)
- From William Stallings ltws_at_host.comgt
- SubjectThe syntax of RFC 822
- To Smith_at_otherhost.com
- Cc Jones_at_Yet-another_host.com
- Aici se pune continutul mesajului delimitat de
header si de o linie libera
36Protocolul 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
37Cuvine cheie
- Cache
- Client
- Connection
- Entity
- Gateway
- Message
- Origin server
- Proxy
- Resource
- Server
- Tunnel
- User agent
38Exemple de operatii HTTP
39Sisteme intermediare HTTP
40Mesaje HTTP
- Cereri (Requests)
- Client la server
- Raspunsuri (Responses)
- Server la client
- Request line
- Response line
- General header
- Request header
- Response header
- Entity header
- Entity body
41Structura mesajelor HTTP
42Campurile antetului general (General Header)
- Cache control
- Connection
- Data
- Forwarded
- Keep alive
- MIME version
- Pragma
- Upgrade
43Metodele HTTP
- Linia_cerere metoda ltSPgt URL_cerut ltSPgt
versiunea_HTTP ltCRLFgt - Metodele HTTP
- Get
- Head
- Post
- Put
- Copy
- Move
- Delete
- Link
- Unlink
- Trace
- Options
44Request 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
45Mesaje de raspuns (Response Messages)
- Linia de stare urmata de raspuns sau antete,
eventual corpul entitatii - Linia_stare versiunea HTTP ltSPgt Cod_stare ltSPgt
Reason-Phrase ltCRLFgt - Coduri de stare
- Informational
- Successful raspuns cu succes
- Redirection redirectare
- Client error eroare la client
- Server error eroare la server
46Campurile headerului de raspuns
- Location locarea
- Proxy authentication autentificare cu proxy
- Public
- Retry after reincercare mai tarziu
- Server
- WWW-Authenticate
47Campurile 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
48Corpul 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