2. Fisico
Trasferisce le sequenze di bit da una parte
all’altra del collegamento, senza curarsi di
eventuali disturbi.
Collegamento
Il livello di collegamento, detto anche data
link, si occupa di:
Suddividere i bit in frame;
Individuare la presenza di errori nei
frame e correggerli;
Rete
Il livello di rete si occupa di:
Multiplazione di due o più flussi di dati sullo
stesso circuito fisico;
Instradamento (routing) dei dati dalla
stazione di partenza a quella di arrivo;
Controllo della congestione della rete;
A cura di Stefano Scarpellini
3. Il livello di trasporto si occupa di:
Segmentazione e assemblaggio dei dati
Controllo end-to-end dei dati per prevenire
errori e fornire perciò un servizio affidabile al
livello di sessione
Definizione della qualità del servizio
Trasporto
Sessione
Il livello di sessione si occupa di suddividere il
dialogo tra le applicazioni in unità logiche;
Presentazione
Il livello di presentazione si occupa della
sintassi e della semantica. delle informazioni
da trasferire, in generale si occupa di:
Rappresentazione dei dati;
Compressione dei dati;
Cifratura dei dati;
Applicazione
Il livello applicativo si occupa di:
Trasferimento, accesso e gestione dei file;
Posta elettronica;
Terminale virtuale;
Gestione di messaggi;
Scambio risultati tra programmi.
A cura di Stefano Scarpellini
4. A cura di Stefano Scarpellini
Fisico
Collegamento
Rete
Trasporto
Sessione
Presentazione
Applicazione
Modello ISO/OSI Modello TCP/IP
Applicativo
Da estremo a estremo
Internet
Accesso in rete
5. A cura di Stefano Scarpellini
Accesso in rete
Internet layer
Transport layer
Application layer
Il protocollo utilizzato viene definito e varia da
host a host e da rete a rete.
L’importante è che in questo stato esisti un
modo per recapitare i pacchetti prodotti dal
livello superiore.
Corrisponde al network layer (livello di
rete) dell’architettura OSI, ha il compito
di spedire i pacchetti di informazioni
verso ogni nodo destinazione
I pacchetti possono arrivare in ordine differente, ha il compito di
ordinare i pacchetti per ricomporre l’intero messaggio
Due protocolli:
TCP Trasmission Control Protocol, orientato alla connessione
UDP User Datagram Protocol, non orientato alla connessione: non
effettua il riassemblaggio dei pacchetti, usato per esempio nelle
trasmissioni video in broadcast
Sono inseriti gli applicativi ad alto livello che permettono di risolvere i problemi concreti relativi
all’utilizzo della rete
I più conosciuti sono:
TELNET
SMTP (Simple Mail Transfer Protocol)
FTP (File Transfer Protocol)
HTTP
DNS (Domain Name Server)
6. A cura di Stefano Scarpellini
Fisico
Collegamento
Rete
Sessione
Presentazione
Applicazione
Trasporto
7. A cura di Stefano Scarpellini
Una volta giunti a destinazione i messaggi contenuti nei pacchetti devono essere
consegnati correttamente e ordinatamente ai livelli superiori.
Questo è compito del livello 4.
Il livello 4 è definito livello end-to-end perché i protocolli di livello 4 operano
soprattutto sugli ES.
I pacchetti a livello 4 vengono chiamati segmenti.
Il livello di trasporto non ha come mittente e destinatario degli host o nodi di rete, ma
un processo in esecuzione su un host.
Siccome più processi su un host potrebbero comunicare in rete,
il livello di trasporto deve identificare i vari flussi. L’identificazione dei
diversi flussi di un mittente è chiamata multiplazione.
L’host destinatario svolge la demultiplazione.
8. A cura di Stefano Scarpellini
Gli indirizzi di livello 4 sono detti TSAP.
Il livello 4 deve svolgere tutti i controlli e tutti i servizi orientati alla connessione
che il livello 3 non ha realizzato, se disconnesso. Inoltre esso si trova a dover gestire
problemi di gestione del flusso, dell’errore e della congestione.
Le funzioni che quindi il livello 4 deve espletare sono :
Indirizzamento e multiplazione a livello applicativo;
Frammentazione;
Instaurazione delle connessioni;
Controllo del flusso;
9. A cura di Stefano Scarpellini
Molto spesso il livello 4 è connected oriented e quindi deve instaurare una
connessione. Le connessioni sono gestite con tecniche di ARQ che confermano la
connessione.
La connessione è un momento critico e deve essere affidabile.
Esistono protocolli orientati alla connessione, come TCP, e protocolli non orientati
alla connessione, come UDP.
THREE-WAY HANDSHAKE
Modello TCP/IP
HTTP
SMTP NFS
FTP
TCP UDP
IP routing
ICMP IGMP
ARP
non specificati
10. A cura di Stefano Scarpellini
UDP (User Datagram Protocol) è un protocollo di trasporto utilizzato nella rete TCP/IP,
di tipo connectionless (non connesso).
Tra le funzioni tipiche del livello 4 , UDP gestisce solo l’indirizzamento, la multiplazione
e il controllo dell’errore sul singolo pacchetto, lasciando al livello superiore (Applicazione)
gli altri compiti.
Essendo un protocollo senza connessione, la sua affidabilità non è garantita.
Il pacchetto UDP non è chiamato più segmento ma datagramma (UDP) : questo
protocollo è semplice e veloce.
UDP è un protocollo di tipo peer-to-peer , ovvero ognuno dei 2 host ha le medesime
capacità.
UDP consente una comunicazione full-duplex.
L’UDP è spesso utilizzato per streaming audio-video e comunicazioni real time.
11. A cura di Stefano Scarpellini
Lo schema di indirizzamento UDP si basa sul concetto di porta.
La porta è un identificativo numerico espresso su 16 bit capace di numerare
216= 65536 flussi differenti.
Le porte UDP sono classificate in tre categorie :
Intervallo 0-1023: well-known ports (porte ben note), dedicate a processi che
usano protocolli applicativi comunemente usati sulla rete TCP/IP, come DHCP, DNS,
etc..
Intervallo 1024-49151: registered ports(porte registrate), assegnate da IANA su
richiesta di utenti o aziende che hanno intenzione di implementare servizi di rete
pubblici
Intervallo 49152-65535: dynamic ports(porte dinamiche o locali), non assegnate e
utilizzabili localmente come porte temporanee o porte per servizi locali alla rete di
appartenenza
12. A cura di Stefano Scarpellini
Intestazione
dati
Il significato dei campi dell’ header è questo :
Source port (16) : è il numero di porta sulla quale si intendono ricevere pacchetti
Destination port (16) : è il numero di porta sulla quale si inviano i pacchetti
Lenght (16) : è la lunghezza totale del datagramma (header+dati)
Checksum (16) : checksum calcolata come complemento a due della somma dei
complementi a due di tutti i gruppi da 16 bit costituenti i campi.
13. A cura di Stefano Scarpellini
Connessioni attive
visualizzate tramite il comando
netstat –a –p udp 2
14. A cura di Stefano Scarpellini
Quando un host vuol comunicare con un altro host tramite UDP, deve conoscerne
l’IP del destinatario, la porta UDP su cui inviare il pacchetto e il numero di porta sul
quale ricevere pacchetti.
Ogni host UDP deve importare una tripla fatta in questo modo:
<IP Destination address; UDP Source port; UDP Destination port>
per spedire basta una coppia di valori contenente solo IP di destinazione e porta
di destinazione su una speciale struttura detta Socket.
Per la sua semplicità e la sua completa assenza di connessione, il protocollo UDP
è detto protocollo fire e forget.
15. A cura di Stefano ScarpelliniProtocollo UDP utilizzato nella richiesta di DHCP
16. A cura di Stefano Scarpellini
In questa figura il flusso di dati è
maggiore. Questa immagine mostra uno
stream di audio-video con un protocollo
con connessione.
In questa figura il protocollo utilizzato non
instaura connessioni ma viene richiesto
tramite il protocollo IGMP di partecipare
allo stream e i router sanno quindi
instradare i pacchetti per quegli host che
lo richiedono, impostando un IP
multicast.
17. A cura di Stefano Scarpellini
TCP (Trasmission Control Protocol) è un protocollo di trasporto utilizzato nella rete TCP/IP,
di tipo connection oriented (orientato alla connessione).
Tra le funzioni tipiche del livello 4 , TCP gestisce tutte le funzioni come l’indirizzamento, la
multiplazione, il controllo dell’errore, controllo del flusso e delle congestioni.
Essendo un protocollo orientato alla connessione, la sua affidabilità è garantita.
La sua natura con connessione implica che esso sia un protocollo client-server, dove un
host fa da cliente e l’altro da fornitore del servizio.
Il protocollo TCP è utilizzato nei protocolli applicativi come l’HTTP, l’HTTPS e altri…
18. A cura di Stefano Scarpellini
Lo schema di indirizzamento TCP si basa sul concetto di porta, come con UDP.
La porta è un identificativo numerico espresso su 16 bit capace di numerare
216= 65536 flussi differenti.
Le porte TCP sono classificate in tre categorie :
Intervallo 0-1023: well-known ports (porte ben note), dedicate a processi che
usano protocolli applicativi comunemente usati sulla rete TCP/IP, come HTTP, HTTPS,
FTP etc..
Intervallo 1024-49151: registered ports(porte registrate), assegnate da IANA su
richiesta di utenti o aziende che hanno intenzione di implementare servizi di rete
pubblici
Intervallo 49152-65535: dynamic ports(porte dinamiche o locali), non assegnate e
utilizzabili localmente come porte temporanee o porte per servizi locali alla rete di
appartenenza
19. A cura di Stefano Scarpellini
Intestazione
dati
Il significato dei campi dell’ header è questo :
Source port (16), Destination port (16) : è il numero di porta sulla quale si intendono
ricevere e inviare pacchetti.
Sequence number (32) : numero di sequenza del primo byte contenuto nel pacchetto.
Acknowledgment number(32) : se il flag ACK vale 1, il campo indica il numero di sequenza
del prossimo byte da ricevere.
Header length(4) : indica il numero di parole a 32 bit dell’intestazione TCP. Il minimo valore
è 5, mentre il massimo è 15.
Flag(9) : uan raccolta di 9 bit da interpretare. I più importanti sono:
• URG: se settato a 1 sono presenti dati urgenti;
• ACK: a 1 quando il campo corrispondente contiene un ack valido;
• SYN: a 1 quando l’host mittente intende avviare una connessione;
• FIN: a 1 quando il mittente del messaggio intende chiudere la connessione.
20. A cura di Stefano Scarpellini
A cura di Stefano Scarpellini
Intestazione
dati
Window size(16) : indica quanti byte il mittente del pacchetto è in grado di ricevere a
partire dall’ultimo byte confermato.
Checksum (16) : checksum calcolata come complemento a due della somma dei
complementi a due di tutti i gruppi da 16 bit costituenti i campi.
Urgent pointer (16) : valido se il flag URG vale 1, indica l’indice del byte nella parte dati
del pacchetto che inizia una sequenza di valori che devono essere consegnati e elaborati
urgentemente.
Options(32) : contiene informazioni aggiuntive tra le quali la MSS(Maximum Segment Size)
21. A cura di Stefano Scarpellini
Connessioni attive
visualizzate tramite il comando
netstat –a –p tcp
22. A cura di Stefano ScarpelliniProtocollo TCP utilizzato in una comunicazione
23. A cura di Stefano Scarpellini
Durante lo scambio a tre vie (three-way handshake) le entità di trasporto client e server
negoziano anche qualche parametro necessario all’implementazione dei numerosi algoritmi
di supporto a TCP: porta effimera, numeri di sequenza iniziali(ISN), massima dimensione del
pacchetto scambiabile(MSS) e la dimensione delle finestre.
Il protocollo TCP deve garantire che i vari flussi in arrivo sul server e diretti alla medesima
siano distinguibili e separati, benché l’indirizzo TCP di destinazione dei vari client sia lo stesso.
Affinché ciò possa avvenire:
Quando due processi client sono avviati dallo stesso host, TCP impone a ogni processo
di scegliere un numero di porta locale TCP sempre diversa per ogni connessione, detta
porta effimera.
Se invece i due processi agiscono su client differenti bisogna associare alle porte TCP
anche gli indirizzi IP degli host.
Il flusso TCP è identificato univocamente da una quadrupla :
<IP Source address; IP Destination address; TCP Source port; TCP Destination port>
Questa quadrupla per i due host è detta TCB (Trasmission Control Block)
25. Alla fine di una sessione veicolata da una connessione TCP, la connessione deve essere
rilasciata. Il rilascio viene avviato da un capo della connessione e confermato dall’altro.
1. Il server invia un segmento TCP
contenente il flag FIN=1 e relativo N.
sequenza attuale
2. In risposta il client invia un segmento
TCP contenente il flag ACK=1, conferma
segmento di disconnessione
3. Il client invia un altro segmento TCP con
flag FIN=1 e relativo n. di sequenza
attuale
4. In risposta il server invia un segmento
TCP con flag ACK=1, conferma del
segmento di disconnessione
26. A cura di Stefano Scarpellini
Dovendo garantire le funzionalità di un protocollo connesso, TCP deve gestire un meccanismo
ARQ di gestione del flusso che consenta di ricostruire la corretta sequenza dei segmenti
trasmessi e permetta di recuperare eventuali segmenti persi, ritardati o errati. Lo schema di
gestione di flusso adottato da TCP è Sliding Window, un protocollo a finestra scorrevole senza
NACK, con ACK cumulativi e con piggybacking.
Lo schema seguente mette in evidenza l’importanza della dimensione della finestra rispetto
alle prestazioni (Throughput, o numero di segmenti scambiati nell’unità di tempo)
27. A cura di Stefano Scarpellini
Si deduce che se le dimensioni della finestra è troppo piccola, il canale sarà sottoutillizzato: si
potrebbe essere più efficienti aumentando la dimensione della finestra.
La dimensione della finestra di trasmissione dipende
sicuramente dalle caratteristiche del destinatario.
Nello schema è riportato in evidenza l’RTT(Round Trip
Time) cioè il tempo di andata e ritorno di un pacchetto,
e il tempo di timeout impostato per ogni segmento
spedito RTO(Retransmission TimeOut).
TCP contrasta le congestioni usando una dimensione di
finestra variabile a seconda delle condizioni
contingenti, dapprima applicando all’avvio l’algoritmo
di Slow Start. Esso impone una dimensione della
finestra inferiore a quella negoziata, per poi
aumentarla in modo esponenziale.
Quando Slow Start arriva al limite prefissato, TCP
abbandona Slow Start e applica Congestion Avoidance:
la dimensione aumenta lentamente fino alla
dimensione negoziata.
28. A cura di Stefano Scarpellini
La programmazione in TCP/IP avviene, praticamente per ogni linguaggio e sistema operativo,
secondo il modello Berkeley sockets o BSD sockets, una libreria con un’ API per internet e
Unix.
La libreria BSD sockets si basa sulla struttura dati denominata socket. La lista delle principali
funzioni della libreria è la seguente:
socket() : crea un socket a livello di sistema operativo;
bind() : usata dal lato server TCP, serve per impostare gli indirizzi(porte) locali del socket;
listen() : usata dal lato server TCP, serve per rendere operativo il socket in attesa di
connessione;
connect() : usata dal lato client TCP per avviare una connessione (primo passo del three-
way handshake);
accept() : usata dal lato server TCP per accettare una connessione (secondo passo del
three-way handshake);
sendto(),recvfrom() : usate per spedire e ricevere pacchetti in UDP;
send(),recv () : usate per spedire e ricevere pacchetti in TCP;
close() : usate per avviare la disconnessione;
Le funzioni connect(),accept(), recvfrom() e recv() sono richieste bloccanti.
29. A cura di Stefano Scarpellini
Qui sotto è schematizzata la creazione e uso dei socket UDP…
30. A cura di Stefano Scarpellini
Qui sotto è schematizzata la creazione e uso dei socket TCP…
31. A cura di Stefano Scarpellini
Qui sotto è schematizzata la connessione dei socket TCP…
32. A cura di Stefano Scarpellini
Qui sotto è schematizzata la disconnessione dei socket TCP…
33. A cura di Stefano Scarpellini
Qui sotto è mostrato il pezzo di codice per creazione e uso socket UDP…
Server Client
Chiusura
Creazione socket
Invio di dati
Ricezione di dati
Librerie per socket
Chiusura
Creazione socket
Invio di dati
Ricezione di dati
Attesa client socket
34. A cura di Stefano Scarpellini
Qui sotto è mostrato il pezzo di codice per creazione e uso socket TCP…
Librerie per socket
Chiusura
Creazione socket
Invio di dati
Ricezione di dati
Accettazione client socket
Chiusura
Creazione socket
Invio di dati
Ricezione di dati
Richiesta connessione
ClientServer
Hinweis der Redaktion
Pictures in 3-D flip book
(Intermediate)
To reproduce the picture effects on this slide, do the following:
On the Home tab, in the Slides group, click Layout, and then click Blank.
Also on the Home tab, in the Drawing group, click Shapes, and then under Rectangles click Rectangle (first option from the left).
On the slide, drag to draw a rectangle.
Select the rectangle. Under Drawing Tools, on the Format tab, in the Size group, enter 3.71” in the Height box and 2.57” in the Width box.
Also under Drawing Tools, on the Format tab, in the Shape Styles group, click Shape Outline, and then click No Outline.
On the Home tab, in the Clipboard group, click the arrow to the right of Copy, and then click Duplicate.
Select the first rectangle. Under Drawing Tools, on the Format tab, in the Shape Styles group, click Shape Fill, and then click Picture. In the Insert Picture dialog box, select a picture and then click Insert.
Also under Drawing Tools, on the Format tab, in the Shape Styles group, click Shape Effects, point to 3-D Rotation, and then click 3-D Rotation Options. In the Format Shape dialog box, click 3-D Rotation in the left pane, and in the 3-D Rotation pane do the following:
Click the button next to Presets, and then under Perspective click Perspective Contrasting Right.
In the X box, enter 342.5°.
In the Y box, enter 57.2°.
In the Z box, enter 11°.
In the Perspective box, enter 25°.
Select the second rectangle. Under Drawing Tools, on the Format tab, in the Shape Styles group, click Shape Fill, and then click Picture. In the Insert Picture dialog box, select another picture and then click Insert.
Also under Drawing Tools, on the Format tab, in the Shape Styles group, click Shape Effects, point to 3-D Rotation, and then click 3-D Rotation Options. In the Format Shape dialog box, click 3-D Rotation in the left pane, and in the 3-D Rotation pane do the following:
In the Presets list, under Perspective, click Perspective Contrasting Right.
In the X box, enter 300.6°.
In the Y box, enter 68.7°.
In the Z box, enter 329°.
In the Perspective box, enter 0°.
Position the two rectangles so that the bottom left corners touch.
On the Home tab, in the Drawing group, click Shapes, and then under Rectangles click Rectangle.
On the slide, drag to draw a rectangle.
Select the rectangle. Under Drawing Tools, on the Format tab, in the Size group, enter 2.5” into the Height box and 3.25” into the Width box.
Also under Drawing Tools, on the Format tab, in the Shape Styles group, click Shape Outline, and then click No Outline.
On the Home tab, in the Clipboard group, click the arrow to the right of Copy, and then click Duplicate.
Select the third rectangle. Under Drawing Tools, on the Format tab, in the Shape Styles group, click Shape Fill, and then click Picture. In the Insert Picture dialog box, select a picture and then click Insert.
Also under Drawing Tools, on the Format tab, in the Shape Styles group, click Shape Effects, point to 3-D Rotation, and then click 3-D Rotation Options. In the Format Picture dialog box, click 3-D Rotation in the left pane, and in the 3-D Rotation pane do the following:
Click the button next to Presets, and then under Perspective click Perspective Contrasting Right.
In the X box, enter 303.1°.
In the Y box, enter 313°.
In the Z box, enter 78°.
In the Perspective box, enter 100°.
Select the fourth rectangle. Under Drawing Tools, on the Format tab, in the Shape Styles group, click Shape Fill, and then click Picture. In the Insert Picture dialog box, select a picture and then click Insert.
Also under Drawing Tools, on the Format tab, in the Shape Styles group, click Shape Effects, point to 3-D Rotation, and then click 3-D Rotation Options. In the Format Picture dialog box, click 3-D Rotation in the left pane, and in the 3-D Rotation pane do the following:
Click the button next to Presets, and then under Perspective click Perspective Contrasting Right.
In the X box, enter 310.3°.
In the Y box, enter 330°.
In the Z box, enter 63°.
In the Perspective box, enter 90°.
Also in the Format Picture dialog box, click Shadow in the left pane, and in the Shadow pane, do the following:
Click the button next to Color, and then under Theme Colors click Black, Text 1.
In the Transparency box, enter 47%.
In the Size box, enter 102%.
In the Blur box, enter 16 pt.
In the Angle box, enter 160°.
In the Distance box, enter 4 pt.
Position the third and fourth rectangles so that the left corners touch the bottom left corners of the first and second rectangles.
To reproduce the background effects on this slide, do the following:
Right-click the slide background area, and then click Format Background. In the Format Background dialog box, click Fill in the left pane, select Gradient fill in the Fill pane, and then do the following:
In the Type list, select Linear.
Click the button next to Direction, and then click Linear Down (first row, second option from the left).
Under Gradient stops, click Add gradient stops or Remove gradient stops until four stops appear in the slider.
Also under Gradient stops, customize the gradient stops as follows:
Select the first stop in the slider, and then do the following:
In the Position box, enter 0%.
Click the button next to Color, and then under Theme Colors click White, Background 1, Darker 15% (third row, first option from the left).
Select the next stop in the slider, and then do the following:
In the Stop position box, enter 56%.
Click the button next to Color, and then under Theme Colors click White, Background 1, Darker 5% (second row, first option from the left).
Select the next stop in the slider, and then do the following:
In the Stop position box, enter 57%.
Click the button next to Color, click More Colors, and then in the Colors dialog box, on the Custom tab, enter values for Red: 169, Green: 169, Blue: 169.
Select the last stop in the slider, and then do the following:
In the Stop position box, enter 100%.
Click the button next to Color, click More Colors, and then in the Colors dialog box, on the Custom tab, enter values for Red: 211, Green: 211, Blue: 211.