1. Modello TCP/IP
Argomenti:
Confronto OSI e TCP/IP
Livello Rete Internet Protocol IP
Livello Trasporto UDP/TCP
Servizi TCP/UDP comuni
Esempi di utilizzo pratico
2. Modello OSI
Modello per la comunicazione in rete costituita
da sette livelli ideata e standardizzata (standard
de jura) dall'ISO
Livelli dell'OSI: 7 Applicazione
6 Presentazione
5 Sessione
4 Trasporto
3 Rete
2 Collegamento Dati
1 Fisico
3. Schema di comunicazione OSI fra
computer in rete
Applicazione
Presentazione
Sessione
Trasporto
Rete
Collegamento dati
Fisico
Applicazione
Presentazione
Sessione
Trasporto
Rete
Collegamento dati
Fisico
Nodo A Nodo B
La comunicazione fra due calcolatori nel modello OSI avviene dal livello 7 al livello 1 dal
trasmittente e dal livello 1 al livello 7. Contemporaneamente i livelli comunicano fra i loro
corrispondenti. I livelli superiori convertono e decodificano i pacchetti provenienti dal livello
inferiore e lo inviano al corrispondente livello. Allo stesso modo i livelli inferiori
decompongono i pacchetti provenienti dai livelli superiori e li inviano tramite la rete al livello
corripondente.
4. Modello TCP/IP
In uso sulle reti
Internet
Standard de facto
imposto dalla
tecnologia
Supporto Multi-
piattaforma
4 Livelli
Applicazione
Trasporto
Rete
Accesso alla Rete
6. I Livelli del Modello TCP/IP
La comunicazione fra computer su Internet o in rete TCP/IP avviene fra livelli
paritetici e fra livelli contigui.
Il livello Network Access consente l'accesso alla rete fisica con i relativi
mezzi di trasmissione, adattatori di rete, e altri apparati, garantendo la
continuità di collegamento
Il livello IP si occupa di connettere dal punto di vista logico computer sulla
stessa rete o reti diverse con l'uso del protocollo IP
Il livello trasporto si occupa del supporto logico ai processi applicativi che
sono in esecuzione sulla rete
Il livello applicazione si occupa di organizzare la comunicazione
all'applicazione di rete che poi dovrà presentare il risultato della trasmissione
al programma utente, o di scomporre le informazioni che l'utente ha fornito
tramite il programma utente.
7. Livello rete IP
Un indirizzo IP è un quaterna di numeri
decimali che possono variare da 0 a 255,
essendo complessivamente di 32 bit nella
versione IPV4. Il formato è del tipo
xxx.yyy.zzz.www
In binario
1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 0
8. Struttura dell'indirizzo IP
Un indirizzo IP è composto da 32 bit, alcuni di
questi bit sono dedicati all'identificazione della
rete logica di appartenenza del nodo, gli altri
sono dedicati all'identificazione del nodo sulla
rete.
Rete Host
Indirizzo IP
9. Classi IP
Si definisce classe di indirizzamento IP degli
indirizzi IP che hanno struttura specifica nella
lunghezza dei bit per la rete.
Le classi sono 5 A,B,C,D,E;
Le classi D,E sono dedicati per scopi specifici;
Le classi A,B,C sono utilizzate per ottenere reti
di estensioni diverse in termini di numero di
nodi
10. Classi IP
Classe
IP
Bit
iniziali
Numero Bit
Rimanenti
Bit Rete
Bit Host
Reti
disponi
bili
Host Disponibili Indirizzi Totali
A 0 7 24 128 16.777.216-2 2.147.483.392
B 10 14 16 16384
(2E^14)
65.536-2 1.073.709.056
C 110 21 8 209715
2
256 532.676.608
D 1110 28 268.435.456
per Multicast
E 1111 27 134.217.728
Estensioni
future
11. Utilizzo delle classi IP
Le classi A,B,C sono utilizzate per estensioni
diverse delle reti
Le classi A e B sono utilizzate per reti di grosse
dimensioni
La classe C per piccole reti fino a 254 Host per
rete
Il -2 sul numero di Host indica l'esistenza di
due indirizzi IP riservati uno quello con bit zero
nelle cifre Host (Indirizzo Rete) e quello con
tutti 1 nelle cifre Host.
12. Maschera di rete
Ogni indirizzo IP in una rete deve essere associato ad
una maschera di rete
Una maschera di rete è un indirizzo IP speciale che
con un operazione di AND logico con l'indirizzo IP di
un host ricava l'indirizzo di rete dell'host, per veriificare
l'appartenenza ad un determinata rete logica. Solo
host che appartengono alla stessa rete logica
comunicano fra loro.
Per far comunicare host su reti logiche diverse
occorre un router
13. Maschere di rete canoniche
Ogni classe IP ha maschera di rete canonica;
Si può agire sulla maschera di rete per
segmentare la rete fisica in diverse reti logiche.
Le maschere di rete canoniche sono:
Classe A 255.0.0.0
Classe B 255.255.0.0
Classe C 255.255.255.0
Classe D 255.255.255.224
14. Reti logiche distinte
In questo schema le
reti logiche sono 2, in
quanto in una la
classe di
indirizzamento
di tipo C con
maschera canonica
mentre, l'altra è di
tipo B anche essa
con maschera
canonica.
15. Reti logiche distinte
Nello schema è presente solo un apparato
concentratore che seleziona i pacchetti in reti e
li smista secondo quelle che sono le
intestazioni del pacchetto IP. In questa rete si
vengono a creare due canali logici di
comunicazione sulla stessa rete fisica.
La sicurezza non è garantita, poiché è facile
ricavare gli indirizzi IP dell'altra rete con
tecniche di sniffing dei pacchetti IP
16. Pacchetto IP
DatagrammaHeader IP
Il pacchetto IP è costituito da una parte ove è presente l'intestazione.
Alcuni campi dell'intestazione sono:
TTL Time to Live tempo di vita in secondo del pacchetto prima che venga scartato (8 Bit)
Protocol indica il protocollo di livello 3 o 4 che ha generato i dati che trasporta (8 bit)1
0 ICMP
4 IP
6 TCP
17 UDP
20 ISO-TP4
93 AX.25
Checksum di 16 bit che contiene la codifica dell'Header, se durante il trasporto si modifica si
verifica una condizione di errore nel pacchetto IP
Source e Desination Address di 32 bit cadauno che contengono l'indirizzo IP del mittente e
del destinatario
Options di lunghezza variabile che serve per far si che la lunghezza dell'Header sia un
multiplo di 4 byte. Si utilizza il campo Padding per riempire con bit di 0 per arrivare alla
giusta lunghezza dell'Header
17. Indirizzo IP statico e dinamico
L'indirizzo IP può essere fisso per tutta la
durata della connessione statico, oppure
assegnato ad ogni connessione
Il secondo caso si presta bene quando la rete
logica a cui appartiene la stazione è molto
ampia in termini di numero di calcolatori
Il servizio che provvede all'assegnazione IP è il
DHCP, nella rete deve essere presente un
Server DHCP.
18. Indirizzo Pubblico e Privato
Un calcolatore che debba collegarsi ad Internet
sia come client, che come server deve avere un
indirizzo IP pubblico
Indirizzi IP pubblici sono una risorsa ed hanno
un costo, nelle rete locali LAN si preferisce
assegnare indirizzi IP privati se non vi è
necessità che un particolare calcolatore sia
visibile direttamente su Internet.
Questo non significa che il calcolatore non si
possa collegare alla rete Internet
19. Classi di Indirizzi IP Privati
Nelle classi A,B,C viste in precedenza quelle di
maggior uso si definiscono pertanto dei range
IP privati
Classe A 10.0.0.0-10.255.255.255.0/8
Classe B 172.16.0.0-172.31.255.255/16
Classe C 192.168.0.0-192.168.255.255/24
20. Indirizzi IP di loopback
Esiste poi una classe di indirizzamento IP
speciale detta di “loopback” che server al
calcolatore per realizzare una rete virtuale con
se stesso per far funzionare gli applicativi di
rete anche quando non si è connessi in rete
realmente.
La classe A è:
127.0.0.0-127.255.255.255/8
21. Gestione degli Indirizzi IP in Linux
E' possibile assegnare indirizzi IP nel sistema operativo
Linux da linea di comando con il comando ifconfig
La sintassi del comando è:
ifconfig device indirizzo ip netmask maschera rete up/down
Ad esempio
ifconfig eth0 192.168.1.1 netmask 255.255.255.0 up
22. Il comando Ifconfig in Linux
ifconfig eth0 192.168.1.1 netmask 255.255.255.0 up
Nel sistema operativo Linux, con eth0 si indica la prima
interfaccia ethernet nel sistema, con eth1 la seconda e così via
Le interfacce token ring tr0, tr1,...
Le interfacce verso modem seriali, usb ppp0,ppp1,...
Le interfacce di rete virtuali eth0:0, eth0:1, ....
Le interfacce wi-fi wlan0, wlan1, a secondo della distribuzione
L'interfaccia di loopback lo
L'identificazione delle interfacce è presente in /dev/nomi di device
seguito
23. Note sul comando ifconfig
Il parametro up/down decide se attivare o
disattivare la scheda di rete
Per reti con server DHCP, il comando è:
ifconfig ethX up
Il comando ifconfig deve essere impartito da
terminale con i privilegi di super user (root)
24. Configurazione rete da interfaccia
grafica in Linux
Selezionare l'icona rete dal menù
Impostazioni (Fedora)
25. Configurazione rete da interfaccia grafica in Linux
Nella finestra sono visualizzate
le interfacce di rete disponibili sul sistema,
oltre la possibilità di configurare un proxy per
l'accesso a Internet.
26. Configurazione rete da interfaccia grafica in Linux
In questa finestra
È possibile digitare
l'indirizzo IP, e la maschera,
è possibile scegliere
Anche la configurazione in DHCP oltre
che i parametri di instradamento
27. Configurare i parametri IP in
Windows
• Accedere come amministratore a Windows
• Pannello di controllo
• Reti e Internet
• Centro Connessione
• Connessione LAN
31. Configurazione IP in Windows
Scegliere proprietà dalla finestra Stato di
Connessione alla rete locale LAN
32. Configurazione IP Windows
Si sceglie la configurazione TCP/IP versione
4, selezionare il protocollo e poi la voce
proprietà. Si tenga presente che nella
configurazione completa di un client Windows
per l’accesso a Internet occorre scegliere fra
due modalità:
•Assegnazione automatica (DHCP)
•Assegnazione manuale in questo caso i
parametri di rete da fornire sono:
•Indirizzo IP Cliente
•Maschera di rete
•Indirizzo IP del Router/Gateway
•Indirizzi IP dei server DNS primario e
secondario
33. Configurazione IP Windows
In questo caso i parametri di rete IP
sono manualmente assegnati.
L’indirizzo IP del client è di classe C,
con la maschera di rete canonica,
anche l’indirizzo del router è di classe
C, in questo caso il router viene
utilizzato anche per la risoluzioni dei
nomi di dominio.
Ovvero il router raccoglie le richieste
DSN e le inoltra al server DNS del
provider. In altri termini gli IP DNS sono
inseriti nella configurazione del router.
34. Livello Trasporto TCP
• Funzioni fondamentali del livello trasporto nel
modello TCP/IP sono:
• Gestisce il controllo degli errori con 16 bits nel
pacchetto
• Gestisce il controllo di flusso dei pacchetti
(trasmissione di pacchetti fra host con differenti
velocità) e le problematiche di congestione della
rete
35. Livello di trasporto TCP
• Gestire le connessioni TCP (Trasmission control
protocol) ovvero connessioni con controllo sulla
trasmissione. Il trasmettitore non invia altri pacchetti
sulla rete se prima non vi è la notifica da parte del
ricevente di ricezione corretta
• Gestisce le connessioni UDP User Datagram
Protocol ovvero un protocollo connectionless senza
controllo sulla reale ricezione dei pacchetti (si
favorisce la velocità di trasmissione dei pacchetti)
36. Numeri porte
Ogni servizio TCP gira su un numero di porta
assegnato dai vari documenti RFC e della
IANA.
In particolare le porte dalla 0-1023 sono porte per
applicazioni standard dette anche privilegiate
Le porte dalla 1024 alla 41952 sono porte
registrate dallo IANA su applicazioni utente
Le porte dalla 41953 alla 65535 sono porte
private
e dinamiche (per esempio applicazioni p2p)
37. Funzionamento protocollo TCP
In questo schema vediamo che il client invia richiesta con il suo indirizzo iP e il suo
numero di porta non privilegiato, richiedendo il server web con un numero di porta
privilegiato e standard la porta tcp 80.
Il server risponde alla richiesta e invia i pacchetti sulla rete restituendo le
informazioni richieste.
38. Porte tcp standard e registrate
Porta TCP Numero di porta
Trasferimento File FTP 21
Trasferimento ipertesti HTTP 80
Trasferimento ipertesti sicuro HTTPS 443
Terminale Remoto sicuro SSH 22
Terminale Remoto insicuro TELNET 23
Ricezione messaggi posta elettronica
POP3
110
Invio messaggi posta elettronica 25
Desktop Remoto di Windows RDP 3389
DBMS remoto Mysql 3306
40. Alcune considerazioni su TCP/UDP
• Alcuni protocolli Applicativi di livello superiore
usano sia TCP che UDP in modo standard per
la trasmissione dei pacchetti
• UDP è molto importante per il DNS, e per tutti i
protocolli applicativi ove la velocità di
trasmissione delle informazioni avviene in
modo seriale (non può riordinare i pacchetti) e
veloce (utilizzato molto per streaming
video/audio)
41. Schema del Pacchetto TCP
Bit Offset Bit 0-3 4-7 8-15 16-31
0 Porta Sorgente Porta Destinazione
32 Sequence Number
64 Acknoledgemnte Number
96 Data Offset Reserverd C
W
R
E
C
E
U
R
G
A
C
K
P
S
H
R
S
T
S
Y
N
F
I
N
Windows Size
128 Checksum Urgent
160 Options
160/192+ Data
42. Composizione del pacchetto TCP
• I pacchetti TCP sono inviati come multipli di 32
bit, all’inizio sono inviati gli Header
dell’imbustamento dal Livello Applicazione, e di
Estrazione nel verso dal livello Trasporto a
quello Rete
• Il frame TCP prevede la trasmissione di Porta
sorgente e porta Destinazione
• Sequence number indica lo spostamento
dall’inizio del segmento TCP espresso in byte
(max dimensione 32bit)
43. Composizione del pacchetto TCP
• Numero di riscontro (di 32 bit) è inserito solo se
il flag ACK è a 1, comunica la ricezione del
flusso di dati in direzione opposta alla
trasmissione;
• Data Offset indica in 4 bit la lunghezza del
segmento TCP in Word di 32 bit
• Reserved non usati, per estensioni future
• Flag (diapositiva successiva)
44. Composizione del pacchetto TCP
• Flag
• CWR (Congestion Window Reduced) se è a 1,
indica che il flag ECE è a 1)
• ECE (Explicit Congestion Notification) notifica che
l’host supporta il 3-way-handshake
• URG (Urgent) se il bit è settato a 1, nel campo
Urgent è indicata la posizione nel segmento di dati
urgenti nel segmento Tcp.
45. Composizione del pacchetto TCP
• Flag
• ACK (Acknoledgment) se settato a 1 indica che il
campo Acknowledgemt è valido
• PSH se settato a 1 indica che i dati non devono
essere bufferizzati, ma passati direttamente al livello
superiore.
• RST se settato a 1, la connessione non è valida
(errore grave)
46. Composizione del pacchetto TCP
• Flag
• SYN l’host vuole aprire una connessione con l’host
destinatario inviando nel campo Sequence Number
il valore ISN Initial sequence Number che indica il
primo numero di sequenza nei segmenti. E’ usato
per la sincronizzazione
• FIN indica il termine da parte del trasmittente, ma
non del ricevente che deve notificare con un FIN-
ACK la fine completa della connessione.
47. Composizione del pacchetto TCP
• Windows Size specifica la dimensione della finestra di
ricezione da parte del ricevente, indica il numero di byte che
l’host mittente può ricevere a partire dell’ACK-Number
• Chcksum Number per controllare la validità del segmento tcp
facendo il complemento a 1 dell’header TCP e l’intero
payload del segmento, più il l’IP del sorgente e destinatario,
un byte di zeri, un byte che indica il protocollo, e due byte che
indicano la lunghezza dell’intero pacchetto (header+dati). Il
campo checksum è messo a zero durante il controllo.
48. Composizione del pacchetto TCP
• Urgent pointer (16 bit) puntatore al pacchetto dati urgenti se il
bit URG è impostato a 1.
• Options per usi avanzati del protocollo
• Data payload utile (i dati veri e propri del pacchetto) cioè dei
dati proveniente dal livello superiore PDU.
49. Il pacchetto UDP
• Molto più semplice la struttura del pacchetto
UDP che non prevede controllo sulla
connessione
• Alcuni protocolli applicativi mixano fra loro
protocolli TCP+UDP
50. Il pacchetto UDP
+ Bit 0-15 Bit 16-31
0 Source Port Opzionale Destination Port
32 Length Checksum Opzionale
64+ Data
Alcune informazioni nel pacchetto UDP sono opzionali come la porta
sorgente, e il checksum.
51. Il pacchetto UDP
Le informazioni del pacchetto UDP sono:
• Porta Sorgente non obbligatoria
• La Lunghezza del segmento UDP (length)
• Checksum per il controllo degli errori
• Porta destinazione
• Data i dati veri e propri
52. Caratteristiche del protocollo UDP
• Multiplazione – connessioni multiple con porte diverse
• Il controllo degli errori tramite il checksum
• Il controllo di flusso e di congestione della rete basilari
per il livello trasporto.
53. Livello Applicativo
• I protocolli di livello applicativo sono quelli che
implementano la trasmissione di informazioni
sulla rete secondo dei protocolli stabiliti nei
servizi forniti dalla pila TCP/IP
• Alcuni esempi sono TELNET, HTTP, DNS,
POP3, SMTP
54. Fine
contenuto redatto da prof. Giuseppe Sportelli
www.giuseppesportelli.it
Grazie per l’attenzione – Revisione 12.2018