protocollo tcp/ip indirizzamento ip - itisff.it - protocollotcp-ip.pdf · 1 protocollo tcp/ip &...
TRANSCRIPT
1
Protocollo TCP/IP & Indirizzamento IP
L’architettura TCP/IP:
• Nasce per richiesta del Dipartimento della Difesa degli USA
che intendeva poter creare una rete in grado di funzionare in qualsiasi tipo
di situazione
• È divenuto lo standard di riferimento per Internet
• Non confondere i Layer del modello TCP/IP con quelli del
modello OSI, anche se hanno la medesima nomenclatura
• Standard internazionale dal 1981
L’Application Layer (Strato Applicazione)
• L’application layer del modello TCP/IP gestisce protocolli di alto livello
• Verifica che i dati siano impacchettati nella maniera corretta prima di passarli allo strato inferiore
di Trasporto
• Include specifiche per supportare trasferimento di file, e-mail, accesso (login) da remoto
ed altre applicazioni, per es.:
- HTTP: trasferimento pagine web
- FTP: file transfer protocol
- TFTP: trivial file transfer protocol
- NFS: network file system
- SMTP: inoltro posta elettronica
2
- TELNET: login remoto per il controllo di un host remoto
- SNMP: permette agli amministratori di rete di gestire le apparecchiature di rete e di diagnosticare i problemi di rete
- DNS: risoluzione dei nomi host in in dirizzi IP
- DHCP: per l’assegnazione dinamica di indirizzi IP
- RIP – BGP – Protocolli i routing attraverso i quali i router si scambiano informazioni di instradamento
Il Transport Layer (Strato di Trasporto) Due protocolli: TCP e UDP
Le unità dati (PDU) dei protocolli di trasporto si chiamano segmenti.
PDU segmento
Lo strato di trasporto:
• Fornisce il servizio di trasporto dall’host sorgente a quello di destinazione
• E’ la connessione logica tra 2 utenti finali della rete
• I protocolli di trasporto segmentano e riassemblano le applicazioni degli strati più alti in un flusso di dati che fornisce
servizi di trasporto end-to-end
Servizi offerti: TCP e UDP: SOLO TCP:
• Segmentazione dei dati • Stabilire operazioni end-to-end
provenienti dalle applicazioni di strati • Flow-control grazie alle sliding window
superiori
• Spedizione dei segmenti da un host all’altro • Affidabilità mediante Ack e Sequence Number
HEADER PROTOCOLL
(intestazione)
PAYLOAD (cioè la parte info dello strato di applicazione)
3
L’UDP
è un protocollo connectionless, cioè non orientato alla connessione e al controllo del flusso dei segmenti, controlla solo la
correttezza dell’intestazione del segmento attraverso il check-sum dell’header
è adatto per servire applicazioni che richiedono velocità di trasferimento dati senza possibilità di ritrasmissioni
Si basano sui servizi dell’UDP le applicazioni: TFTP - SNMP - DHCP - DNS
Il TCP
è un protocollo connection oriented, cioè orientato alla connessione
controllo end-to-end mediante le Sliding Windows (finestre di comunicazione), gli
Acknowledgment e l’affidabilità dei numeri di sequenza (SN)
prima di trasmettere segmenti che trasportano i dati dell’applicazione instaura una connessione sicura attraverso 3 fasi:
Three-Way Handshake
1. A B SYN—(A) la sequenza ha
numero d’inizio X, il numero ACK
è 0, Il bit di SYN è settato, quello
di ACK no
2. B A ACK—(A) il numero della
sequenza è X+1, il numero
d’inizio sequenza di B è Y, il bit di
SYN e di ACK sono settati
3. A B ACK—(B) il numero di
sequenza di B è Y+1, il numero di
sequenza di A è X+1, il bit di ACK
è settato, quello di SYN no
I numeri X ed Y sono detti ISN, Initial
Sequence Number
4
Al fine di avere un data transfer affidabile e connection-oriented i “segmenti” devono essere
recapitati tutti e nell’ordine corretto.
Se il mittente dovesse aspettare un ack per ogni segmento la velocità sarebbe molto bassa; ecco
perché molti dei protocolli connection oriented affidabili permettono a più di un segmento
di stare in rete. Il numero di segmenti che il mittente è autorizzato a spedire
pur non ricevendo un ack è detto finestra o dimensione della finestra (window size).
Il TCP usa i numeri di ack che si riferiscono al segmento che si aspetta per prossimo.
Il windowing si riferisce al fatto che la window size si negozia dinamicamente durante la sessione TCP.
Il windowing è un meccanismo di controllo di flusso. Richiede che la sorgente
riceva un ack dal destinatario dopo aver trasmesso una certa quantità di dati.
Il processo TCP in ricezione riporta una finestra al processo mittente.
Questa finestra specifica il numero di segmenti ,partendo dal numero ack,
che il processo ricevente è attualmente in
grado di accettare. Se la window size è 3 la sorgente deve
aspettare un ack prima di continuare a spedire.
Se l’ack non arrivasse si deve ritrasmettere, ad una velocità più lenta.
5
Esempio
Nella figura l’host trasmittente manda tre
segmenti e poi aspetta un ack. Se il
destinatario può gestire solamente 2 segmenti allora il terzo è scartato,
specificando mediante ack che si aspetta il terzo pacchetto come
prossimo e che per lui la dimensione di finestra è 2. I protocolli dello strato di trasporto comunicano con i protocolli dello strato di applicazione attraverso delle “porte standard” codificate e numerate a livello universale. Indicano quale applicazione si serve del protocollo di trasporto.
I numeri di porte “famose”
6
MSS (Massima Lunghezza del campo info di un segmento) = MTU – Header IP – Header TCP dove MTU = lunghezza massima campo info del protocollo di 2° livello. Header IP e Header TCP sono tipicamente di 20 byte ciascuno
Esepio EEEEMarco Ciampi
Esempio di Header del TCP
(Consultare il libro di testo per il significato delle varie voci
dell’intestazione)
7
Internet Layer (Strato di Internet – 3° livello)
Ha lo scopo di individuare il miglior percorso attraverso la rete su cui far viaggiare i pacchetti e di fare Packet Switching
(commutazione di pacchetto)
Protocolli:
• ICMP – Per la diagnostica sull’effettiva possibilità di comunicazione a livello 3 ( per es. il comando ping )
• ARP - Serve per conoscere il MAC address (indirizzo della scheda di rete) di un host di destinazione, una volta noto il suo
indirizzo IP. Ogni scheda di rete ha due indirizzi: uno logico, che è l’indirizzo IP, e l’altro fisico che è l’indirizzo MAC (di 2° livello).
Quando un host mittente deve indirizzare un host destinatario deve conoscere sia l’indirizzo IP sia l’indirizzo della scheda di rete
di destinazione, in quanto deve passare quest’ultimo indirizzo al frame del protocollo di livello 2. Il protocollo ARP risolve gli
indirizzi IP in indirizzi delle schede di rete.
• IP (più famoso). Fornisce un servizio connectionless, fa “del suo meglio” (best effort) per i l recapito dei pacchetti,
trasferisce i dati tra Internet Layer e Network Access (strato di 2° livello), instrada i pacchetti verso gli host remoti.
Le unità dati (PDU) dei protocolli dello strato internet si chiamano pacchetti.
PDU pacchetto
I protocolli dello strato internet comunicano con i protocolli dello strato di trasporto attraverso delle “porte standard” codificate e numerate a livello universale. Indicano quale protocollo di trasporto si serve dello strato internet. Queste porte prendono il nome di “protocoll”
HEADER PROTOCOLL
(intestazione)
PAYLOAD (cioè la parte info dello strato di trasporto)
8
Formato del pacchetto IP (vedi pagg. 267-268-269 del libro)
9
Indirizzi IP pubblici e privati
La stabilità di Internet dipende direttamente dalla unicità degli indirizzi pubblici usati.
Un utente può ottenere indirizzi pubblici a sue spese o da un ISP (Internet Service Provider).
Gli indirizzi privati, invece, non appartenenti a reti direttamente interconnesse, non richiedono l’unicità; cioè host appartenenti a
reti private possono avere uguali indirizzi IP. Gli indirizzi appartenenti a tali gruppi non sono instradati nelle backbone (dorsali
internet) perché, i router di dordale (1° l ivell lo) li scartano subito.
Indirizzi privati
Gli indirizzi IP sono costituiti complessivamente da 4 byte (IPv4) e si compongono da un prefisso di rete o sottorete (network o
subnet prefix) e da una parte host. Per consentire l’identificazione del prefisso di rete si associa all’indirizzo IP una maschera di
sottorete (subnet mask). La subnet mask è una sequenza di 32 bit in cui i primi N bit consecutivi più significativi sono posti a
“1” e consentono di ricavare il prefisso di sottorete da un indirizzo IP; i rimanenti bit sono posti a “0” e consentono di ricavare
la parte host di un indirizzo IP.
Indirizzi riservati (non possono essere assegnati agli host)
0.0.0.0 – E’ utilizzato come indirizzo IP sorgente da un host che non ha ancora un vero indirizzo IP e lo richiede ad un server
DHCP
- Indirizzo di rete a sottorete
- Parte host composta da tutti “1”, è l’indirizzo di broadcast utilizzato quando un host sorgente intende inviare pacchetti a
tutti gli host della rete o della sottorete di appartenenza
127.x.x.x – Viene utilizzato per effettuare un loopback internamente ad un host per verificare tramite il protocollo ICMP se il
10
proprio PC ha installato correttamente la suite TCP/IP
Subnetting
Il subnetting permette di identificare una rete e di dividerla in suttoreti (subnet). Consente di ottimizzare il numero di indirizzi da
assegnare agli host di diverse sottoreti.
Procedura per creare sottoreti da una rete assegnata
Ipotesi n° 1: la rete assegnata è una LAN (rete locale) privata non direttamente collegata ad internet
1) Si stabilisce il numero di sottoreti da creare in base alla necessità di separare gruppi di host, perché si trovano in ambienti
diversi oppure perché sono utilizzati per lavori diversi (per es. host in cui risiedono software per la progettazione e host
adibiti invece alla gestione del magazzino).
2) Si stabilisce il numero massimo di host da collegare a ciascuna sottorete
3) Si sceglie l’indirizzo di rete (privato) e la subnet mask. Quest’ultima avrà un numero di “1” consecutivi in base al numero di
sottoreti e al numero massimo di host che si intendono collegare a ciascuna sottorete. Per esempio, se si vogliono creare
3 sottoreti: subnet A con 50 host, subnet B con 250 host, subnet C con 100 host, si prende in considerazione la sottorete
con il numero maggiore di host, cioè la subnet B. Per garantire il collegamento di 250 host bisogna assegnare 250 indirizzi
IP, ciò è possibile se si riservano gli ultimi 8 bit dell’indirizzo di rete ( 28 = 256, restano alcuni indirizzi di riserva per
eventuale espansione della rete). Inoltre, siccome da una rete se ne vogliono ricavare 3 sottoreti, abbiamo bisogno di
prendere altri 2 bit dell’indirizzo di rete. Pertanto la subnet mask della rete principale deve avere un numero di “1”
consecutivi pari a 22 in quanto gli ultimi 10 bit servono per creare indirizzi di sottorete e di host. La subnet mask di
ciascuna sottorete deve invece avere un numero di “1” consecutivi pari a 24, in quanto gli altri 8 bit servono per gli indirizzi
dei loro host. Si può scegliere
Indirizzo di rete 192.168.0.0 / 22
Indirizzo subnet A 192.168.0.0 / 24
Indirizzo subnet B 192.168.1.0/ 24
Indirizzo subnet C 192.168.2.0/ 24
4) Si assegnano per ciascuna sottorete gli indirizzi IP degli host (in genere sono consecutivi). Di tutti gli indirizzi possibili che
si possono assegnare con un determinato numero di bit si devono sempre sottrarre due indirizzi particolari: quello della
sottorete (cioè la parte host dell’indirizzo composta da tutti “0” e quella composta da tutti “1” che rappresenta l’indirizzo di
11
broadcast della sottorete. Quest’ultimo è un indirizzo che viene usato quando un determinato pacchetto è rivolto a tutti gli
host della sottorete)
5) Si stabiliscono il tipo e il numero dei dispositivi di rete. In genere per una rete privata è sufficiente un router che serve ad
interfacciare l’intera rete con il mondo esterno (internet) (vedi funzione NAT, pag. 283 del libro di testo), a smistare i
pacchetti tra i vari host delle sottoreti e a riservare tutta la rete da intrusioni esterne non volute (funzione di firewall). Inoltre
serve almeno uno switch per ciascuna sottorete. Se una sottorete raggruppa host lontani può essere necessario utilizzare
più di uno switch per sottorete (si tenga presente che un collegamento con cavo Ethernet può essere lungo al max 100
metri)
internet
router link subnet C
link subnet B
link subnet A
…. ……
…….
host host
host
…..
host
Switch 1
Switch 2
Switch 3
Switch 4
12
Ipotesi n° 2: la rete assegnata è una LAN (rete locale) privata direttamente collegata ad internet
In questo caso è già assegnato un indirizzo di rete pubblico e la subnet mask che definisce il numero totale di indirizzi IP pubblici da
assegnare agli host di questa rete (gli indirizzi pubblici hanno un costo). Utilizzando i bit relativi alla parte host dell’indirizzo di rete si
possono ricavare un certo numero di sottoreti e un certo numero di host da collegare a ciascuna sottorete.
La procedura è analoga a quella precedente, la differenza è che in questo caso la subnet mask è assegnata ( non si sceglie) e di
conseguenza il numero di host con indirizzi IP pubblici è limitato. Inoltre è bene che ogni sottorete che si vuole ricavare abbia un suo router
che abbia le funzioni di firewall, di separazione da altre sottoreti, di server DNS (Domain Name System) e eventualmente di server DHCP.
Quest’ultima funzione è necessaria quando il numero di host che si vogliono collegare alla sottorete è maggiore del numero di indirizzi IP
pubblici a disposizione della sottorete, per cui gli host non possono avere ciascuno un indirizzo IP statico, ma viene loro assegnato dal
server DHCP dinamicamente, cioè di volta in volta ad ogni collegamento. Infine i router che collegano ciascuna sottorete sono a loro volta
collegati ad un router di livello superiore che rappresenta il router dell’intera rete.
13
Router
- dispositivo di livello rete che interconnette segmenti o reti diverse
- ogni volta che un pacchetto attraversa il router, avvengono sia il processo di
decapsulamento del frame di arrivo per estrarre il pacchetto sia quello di incapsulamento del pacchetto nel frame di
partenza
- utilizza i protocolli di routing per scambiare informazioni con gli altri
router ed accorgersi così di cambiamenti nella topologia della rete
- costruisce e mantiene delle tabelle di routing che utilizza per decidere
su quale interfaccia inoltrare il pacchetto (dopo averlo incapsulato in un frame)
- valuta il percorso migliore che il pacchetto dovrà seguire e per farlo, si
basa su diverse metriche
- per consegnare il pacchetto a destinazione, utilizza le informazioni fornite dal
protocollo di livello 3
Interfaccia:
porta di ingresso/uscita del router attraverso la quale esso si collega con un’altra rete o sottorete. Un router ha più interfacce
dalle quali riceve in ingresso i pacchetti dalle varie reti/sottoreti e sulle quali inoltra i pacchetti verso altre reti/sottoreti.
14
3/45
Routing:
è una funzionalità del Livello 3 della pila OSI che consiste
nell’individuazionedel percorso più efficiente da far intraprendere al pacchetto e nell’operazione di instradamento del pacchetto.
Ciò viene eseguito attraverso la consultazione di una particolare “tabella di routing”.
La tabella di routing è composta da N righe e M colonne.
Ogni riga viene denominata route (percorso) ed è costituita dalle seguenti informazioni:
- indirizzo IP della rete di destinazione e la corrispondente subnet mask
- indirizzo IP del router a cui va inoltrato il pacchetto per raggiungere la rete di destinazione (forwarding o next hop)
- metrica o costo o distanza. E’ un numero che definisce la priorità del percorso nel caso in cui vi siano più percorsi che
portano alla stessa rete di destinazione. La metrica viene calcolata in base a dei parametri che dipendono dai criteri
stabiliti dall’amministratore di rete e dal tipo di protocollo utilizzato per aggiornare la tabella di routing.
C’è una riga nella tabella di routing che corrisponde alla default route. Questo è un percorso che il router prende in considerazione
quando gli arriva un pacchetto di cui non riesce a trovare la rete di destinazione. In questo caso il router invia il pacchetto al router di
livello gerarchico superiore in quanto ha una visione più ampia della rete. La default route ha per convenzione un particolare indirizzo
IP di rete di destinazione: 0.0.0.0 /0
Per router periferici che hanno un solo collegamento con il mondo esterno, la tabella di routing può essere compilata
dall’amministratore di rete. In questo caso si parla di routing statico.
In tutti gli altri casi il router si avvale di protocolli specifici che scambiano informazioni con i router vicini per aggiornare dinamicamente
la tabella di routing aggiungendo nuove righe (route) o cancellandone altre quando si verificano malfunzionamenti verso alcune
direzioni.
Esistono due famiglie di protocolli di routing:
- IGP (Interior Gateway Protocols) utilizzati per effettuare il routing all’interno di reti appartenenti allo stesso sistema
amministrativo (sistema autonomo)
RIP (Routing Information Protocol)
IGRP (Interior Gateway Routing Protocol)
EIGRP (Enhanced Interior Gateway Routing Protocol)
OSPF (Open Shortest Path First)
15
- EGP (Exterior Gateway Protocols) utilizzati per il routing tra sistemi autonomi
BGP (Border Gateway Protocol)
4/45
16
Sintesi delle operazioni del router
- Riceve su una porta (interfaccia) di ingresso un frame del protocollo di livello 2 che trasporta il pacchetto IP. Esegue la decaspulation, cioè estrae il pacchetto dal frame
- Legge l’indirizzo IP dell’host di destinazione presente nel pacchetto di arrivo. - Consulta le righe della tabella di routing, in particolare le subnet mask. Esegue l’AND bit a bit tra ciascuna subnet mask e
l’indirizzo IP dell’host di destinazione. Dall’operazione di AND ottiene un indirizzo di rete. - Se l’indirizzo di rete ottenuto coincide con l’indirizzo IP della rete di destinazione presente nella riga corrispondente della
tabella di routing inoltra il pacchetto all’indirizzo IP del prossimo router che consente di raggiungere la rete di destinazione. Se la rete di destinazione è direttamente connessa la nostro router, allora il pacchetto è inoltrato all’indirizzo IP dell’interfaccia che è direttamente collegata alla rete di destinazione.
- Se l’indirizzo di rete ottenuto attraverso l’operazione di AND non coincide con nessun indirizzo di rete presente nella tabella
di routing, allora segue la route di default, cioè invia il pacchetto al gateway predefinito che è il router gerarchicamente
superiore.
ESEMPIO DI TABELLA DI ROUTING (FIG. A PAG. 2088 DEL LIBRO)
17
STRUTTURA HARDWARE DI UN ROUTER (FIG. A PAG. 290 DEL LIBRO) CONSULTARE IL LIBRO A PAG. 289 – 290 – 291) 5/45
18
19