William Stallings Data and Computer Communications

Download Report

Transcript William Stallings Data and Computer Communications

William Stallings
Data and Computer
Communications
Curs 12
Chapter 19
Aplicatii distribuite
1
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)
2
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
3
Elemente cheie
Statii pentru management
Agentul
Baza de informatii pentru gestionare (MIB Management Information Base)
Protocol pentru gestionarea retelei
4
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
5
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
6
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)
7
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
8
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
9
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
10
Exemplu de configuratie pentru
managementul distribuit
11
SNMP v1
August 1988 apar specificatiile SNMP
Statii individuale pentru management, bridgeuri, routere, statii, agenti
Functionalitate limitata
Lipsa securitatii
SNMP v2 1993, revizuit in 1996
RFC 1901-1908
12
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
13
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
14
Configuratia
SNMP v2
15
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
Identifica tipurile de date
Incurajeaza simplitatea si extensibilitatea
16
Modul de operare al protocolului
Schimbul de mesaje
Header pentru securitate in mesaje
Sapte tipuri de PDU (Protocol Data Unit)
17
Formatul PDU la SNMP v2
18
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
19
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
20
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
21
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
22
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)
23
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
24
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
25
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
26
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
27
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
28
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
29
Fluxul SMTP
30
Fazele operatiilor
Stabilirea conexiunii
Schimbul de perechi de comenzi-raspunsuri
Terminarea conexiunii
31
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
32
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 (.)
33
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
34
Exemplu de mesaj
Date:Tue, 16 Jan 1996 10:37:17 (EST)
From: “William Stallings” <[email protected]>
Subject:The syntax of RFC 822
To: [email protected]
Cc: Jones@Yet-another_host.com
Aici se pune continutul mesajului delimitat de
header si de o linie libera
35
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
36
Cuvine cheie
 Cache
 Client
 Connection
 Entity
 Gateway
 Message
 Origin server
 Proxy
 Resource
 Server
 Tunnel
 User agent
37
Exemple de operatii HTTP
38
Sisteme intermediare HTTP
39
Mesaje 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
40
Structura mesajelor HTTP
41
Campurile antetului general
(General Header)
Cache control
Connection
Data
Forwarded
Keep alive
MIME version
Pragma
Upgrade
42
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
43
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
44
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
45
Campurile headerului de raspuns
Location – locarea
Proxy authentication – autentificare cu proxy
Public
Retry after – reincercare mai tarziu
Server
WWW-Authenticate
46
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
47
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
48