# data[].attributes.body
Applicazione: si occupa di definire tutti quei protocolli che si occupano del dialogo con l'utente;

# data[].attributes.body
Trasporto: si occupa di creare una connessione logica tra il sorgente e la destinazione. Offre due servizi: detti di tipo stream, sono dei servizi orientati alla connessione, offerti dal TCP(Trasmission Control Protocol); detti di tipo datagram, sono dei servizi senza connessione, offerti dall'UDP(User Datagram Protocol);

# data[].attributes.body
Internet: ha il compito di instradare il messaggio nel migliore percorso per fare arrivare il messaggio a destinazione sfruttando l'indirizzo IP (Internet Protocol) in modalità best-effort delivery, anche se non è perfettamente affidabile e non corregge gli errori;

# data[].attributes.body
Rete: non è esattamente un protocollo, ma contiene tutte le tecnologie LAN e WAN più tutti i dettagli dei primi due livelli del modello OSI.

# data[].attributes.body
È un modello applicativo al modello ISO-OSI, che suddivide i 7 livelli del protocollo, in 4 livelli:

# data[].attributes.body
Livello applicativo: lo strato di applicazione è  a contatto con l’utente della rete che manda in esecuzione un’applicazione e deve fornire agli utenti il mezzo per accedere alle reti, fungendo da interfaccia tra il sistema informativo e il mondo reale

# data[].attributes.body
Livello di presentazione: il livello di presentazione si occupa della sintassi e della semantica delle informazioni da trasferire: se due interlocutori utilizzano linguaggi diversi è possibile che interpretino diversamente i dati sia nel tipo sia nel formato; inoltre si occupa di svolgere una funzione di sicurezza effettuando il criptaggio dei dati.

# data[].attributes.body
Livello di sessione: nella comunicazione tra due sistemi non è sufficiente garantire che il messaggio dal mittente giunga a destinazione, ma è necessario gestire completamente il dialogo così vengono create applicazioni che prendono il nome di sessioni di lavoro le quali possono anche coinvolgere più host. Un esempio di sessione di lavoro è quando un utente si collega alla rete effettuando il login fornendo account e password. La gestione delle sessioni viene fatta dal Session layer che si occupa di negoziare fra i due nodi per fissare i parametri del colloquio.

# data[].attributes.body
Livello di trasporto: il messaggio che l’host sorgente deve trasmettere generalmente viene scomposto in segmenti e a causa della dinamicità del traffico non è detto che arrivino in ordine. E’ compito del livello di trasporto effettuare la ricostruzione esatta dei dati rimuovendo le cause di possibile errore.

# data[].attributes.body
Livello di rete: il livello di rete permette il colloquio tra una stazione host e un dispositivo intermedio di rete e tra coppie di nodi intermedi: l’utente vede la rete di comunicazione come un unico canale che collega la sorgente alla destinazione. All’aumentare del numero di reti connesse che si frappongono tra sorgente e destinazione c’è la possibilità di prendere percorsi alternativi; in questo modo è compito del livello di rete definire il percorso migliore, chiamato routing.

# data[].attributes.body
Livello di collegamento: il livello di collegamento si occupa di definire la struttura del messaggio dividendolo in FRAME. A questo livello si inizia a dare al messaggio un senso compiuto per poter effettuare le operazioni del protocollo di collegamento intende svolgere sul messaggio stesso. Il protocollo di linea si occupa di verificare se il messaggio è danneggiato o meno.

# data[].attributes.body
Livello fisico: il livello fisico definisce le caratteristiche dei segnali e dei dispostivi necessari per connettere due o più DTE secondo il mezzo trasmissivo. I messaggi che i DTE devono trasmettere sono una sequenza di BIT e per essere immessi sul sistema fisico necessitano di un dispositivo di interfacciamento, che generalmente è una porta SERIALE.

# data[].attributes.body
Si occupano delle applicazioni (HOST LAYERS)

# data[].attributes.body
Si occupano della comunicazione e del trasferimento dell'informazione tra due sistemi e sono presenti all'interno dei nodi di rete (MEDIA LAYERS)

# data[].attributes.body
si suddivide in

# data[].attributes.body
È un modello a gerarchia che permette la comunicazione tra i DTE