Appunti reti
© 2017 Mario Cianciolo <mr.udda@gmail.com>
Indice
Introduzione
Architettura di una rete
- Servizi e protocolli
- Sistema a livelli, comunicazione tra livelli paritetici
- Funzionamento del software di rete
- Overhead di rete
- Affidabilità del servizio
Modello OSI
- Servizi e protocolli
- Livelli OSI
- Suite di protocolli Internet (architettura TCP/IP)
- Livelli TCP/IP
Tipi di reti
- Classificazione in base alla qualità del servizio
- Classificazione in base all'estensione
- Classificazione in base alla topologia
- Reti punto a punto (point-to-point)
- Reti broadcast e multicast
- Classificazione in base al tipo di multiplazione/commutazione
- Commutazione di circuito (multiplazione deterministica)
- Commutazione di pacchetto (multiplazione statistica)
- Commutazione di circuito virtuale
Livello fisico
- Analisi di Fourier
- Applicazione ai canali reali
- Segnali non periodici
- Analisi di Fourier dell'onda quadra
- Analisi nel dominio del tempo e nel dominio delle frequenze
- Velocità massima di un canale
- Canali ideali, perfetti e reali
- Distorsione nei segnali
- Banda passante
- Rumore
- Teorema del campionamento di Nyquist-Shannon
- Teorema di Nyquist
- Teorema di Shannon
- Quantizzazione
- Rumore di quantizzazione
- Mezzi di trasmissione
- Mezzi guidati
- Mezzi magnetici
- Doppino
- Cavo coassiale
- Fibra ottica
- Mezzi non guidati
- Onde elettromagnetiche
- Lo spettro elettromagnetico
- Bande elettromagnetiche
- Sistemi a commutazione di circuito: la rete telefonica
- Struttura del sistema telefonico
- Formato del segnale nel sistema telefonico
- Modulazione
- Modulazione di ampiezza (AM)
- Modulazione di frequenza (FM)
- Modulazione di fase (PM)
- Modulazione multilivello
- Modem
- Diagrammi costellazione
- Schemi di trasmissione dei modem reali
- Linee DSL (Digital Subscriber Line)
- ADSL
- Multiplexing
- FDM: Frequency Division Multiplexing
- WDM: Wavelength Division Multiplexing
- Amplificatori ottici
- TDM: Time Division Multiplexing
- PCM
- DPCM
- CDMA: Code Division Multiple Access
Livello data link
- Framing
- Conteggio dei caratteri
- Flag byte con byte stuffing
- Flag di inizio e fine con bit stuffing
- Violazioni della codifica dello strato fisico
- Controllo degli errori
- Codifiche a correzione di errore
- Distanza di Hamming
- Correzione e rilevamento errori
- Bit di parità
- Parità a due dimensioni
- Codifica di Hamming
- Codifica di Hamming per errori burst (due dimensioni)
- Codifiche a rilevazione di errore
- Parità a due dimensioni
- CRC (Codifica polinomiale)
- Aritmetica
- Polinomio generatore
- Calcolo del checksum
- Sottolivello MAC
- Indirizzi MAC
- Indirizzi globali e locali
- Notazione e formato
- Schemi di indirizzamento flat
- Tipi di protocolli Data Link
- Stop and Wait
- Sliding window
- Tecniche Data Link
- Piggy backing
- Pipelining
- Diagrammi a traliccio e decodifica di Viterbi
- Codifica
- Decodifica
- Protocolli per l'assegnazione del canale
- ALOHA puro
- Efficienza di ALOHA puro
- ALOHA slotted
- Efficienza di ALOHA slotted
- CSMA
- CSMA 1-persistente
- CSMA non persistente
- CSMA p-persistente
- CSMA/CD (Collision Detection)
- Intervallo di contesa
- Protocolli senza collisioni
- Protocollo a mappa di bit
- Conteggio binario
- Protocolli a turno (token)
- Token ring
- Token bus
- Ethernet
- Ripetitori
- Backoff esponenziale binario
- Codifica Manchester
- Formato dei frame Ethernet
- Indirizzi speciali
- Lunghezza del frame
- Fast Ethernet
- 100Base-T4: UTP cat. 3 con 8B/6T e MLT-3
- 100Base-TX: UTP cat. 5 con 4B/5B
- 100Base-FX: fibra ottica
- Gigabit Ethernet
- Modalità di comunicazione
- Controllo di flusso
- 1000Base-SX, 1000Base-LX: fibre ottiche
- 1000Base-T: UTP cat. 5 con PAM 5x5
- LLC (Logical Link Control)
- Reti wireless LAN
- MACA (Multiple Access with Collision Avoidance)
- Switch (Ethernet commutata)
- Gestione delle collisioni
- Bridge
- Problematiche dei bridge
- Tecniche di inoltro
- Bridge trasparenti
- Apprendimento all'indietro
- Topologie dinamiche
- Bridge spanning tree
- Differenze tra i vari commutatori
- VLAN (LAN virtuali)
- Tabelle di configurazione
- VLAN untagged
- VLAN tagged (IEEE 802.1Q)
- Riepilogo standard IEEE
Livello network
- Servizi offerti
- Servizio senza connessione
- Tabella di routing
- Servizio orientato alla connessione
- Label switching
- Confronto tra sottoreti a circuito virtuale e a datagramma
- Introduzione agli algoritmi di routing
- Proprietà richieste agli algoritmi di routing
- Imparzialità vs ottimizzazione
- Tipi di routing
- Tipi di algoritmi
- Principio di ottimalità: sink tree
- Algoritmi di routing
- Routing basato sul percorso più breve (cammino minimo)
- Algoritmo di Dijkstra (SPF, Shortest Path First)
- Flooding
- Pacchetti duplicati
- Flooding selettivo
- Routing basato sul vettore delle distanze (DV, Distance Vectors)
- Procedimento
- Problema del conto all'infinito
- Complessità degli algoritmi DV
- Routing basato sullo stato del collegamento (LS, Link State Routing)
- Scoperta dei vicini
- Misurazione del costo della linea
- Costruzione dei pacchetti con lo stato dei collegamenti
- Distribuzione dei pacchetti con lo stato dei collegamenti
- Elaborazione dei nuovi percorsi
- Uso di memoria
- Conseguenze dei guasti
- Complessità degli algoritmi LS
- Confronto tra DV e LS
- Routing gerarchico
- Collegamento tra reti
- Gateway esterni
- Switch vs router nell'internetworking
- Collegamento tra reti orientate alla connessione: circuiti virtuali concatenati
- Collegamento tra reti senza connessione
- Tunneling
- Frammentazione
- Il protocollo IPv4
- Formato header IP
- Indirizzi IPv4
- Classi di indirizzi IP
- Indirizzi IP speciali
- Assegnazione degli indirizzi IP
- Sottoreti
- Maschera di sottorete
- Tabelle di routing
- Voci aggregate
- Indirizzi remoti e locali
- Protocolli di controllo su IP
- NAT (Network Address Translation)
- Indirizzi privati
- Conversione dell'indirizzo
- Aspetti negativi di NAT
- ICMP (Internet Control Message Protocol)
- ARP (Address Resolution Protocol)
- Cache ARP
- Vulnerabilità di ARP
- Indirizzamento inter-LAN
- Ottenimento dell'indirizzo IP: RARP, BOOTP, DHCP
- RARP (Reverse ARP)
- BOOTP
- DHCP (Dynamic Host Configuration Protocol)
- Relay agent
- Funzionamento di DHCP
- Scadenza e rinnovo degli indirizzi
- Protocolli di routing in Internet (intra-AS e inter-AS)
- RIP (Routing Information Protocol)
- OSPF (Open Shortest Path First)
- BGP (Border Gateway Protocol)
- iBGP, eBGP
- Messaggi BGP
- Routing broadcast e multicast
- Routing multicast
- Tipi di indirizzi multicast
- IGMP (Internet Group Management Protocol)
- Routing broadcast
- RPF (Reverse Path Forwarding)
- IPv6
- Requisiti del nuovo protocollo IP
- Novità di IPv6
- Indirizzi IPv6
- Indirizzi speciali IPv6
- Anycast
- Header IPv6
- Campi IPv4 mancanti
- Intestazione estesa (extension header)
- Intestazioni di lunghezza variabile
- Alcune intestazioni estese
- Jumbogrammi
- NDP (Neighbor Discovery Protocol)
- Migrazione da IPv4 a IPv6
- Firewall
- Firewall dello strato Network
- Firewall dello strato Applicazione
Livello di trasporto
- Introduzione
- Servizio come libreria
- Analogie e differenze con il livello Network
- Primitive
- Analogie e differenze con il livello Data Link
- Protocolli sliding window per il controllo degli errori
- Stop-and-wait
- Go-Back-N
- Ripetizione selettiva
- Tempi e velocità di trasferimento
- Tempo di trasmissione
- Tempo di propagazione
- Tempo di consegna
- Round Trip Time
- Throughput
- RDT (Reliable Data Transfer): implementazione di un semplice protocollo affidabile
- RDT 1.0: Trasferimento affidabile su un canale affidabile
- RDT 2.0: Trasferimento affidabile su un canale con errori sui bit
- RDT 2.1: Aggiunta dei numeri di sequenza
- RDT 2.2: Doppio ACK invece del NAK
- RDT 3.0: Trasferimento affidabile su un canale inaffidabile con errori sui bit
- Elementi dei protocolli di trasporto
- Indirizzamento
- Modello client-server
- Process server e name server
- Stabilire la connessione
- Problema dei duplicati ritardati
- Metodo dell'orologio
- Handshake a tre vie
- Rilascio della connessione
- Problema dei due eserciti (sincronizzazione infinita)
- Soluzione alla sincronizzazione infinita
- Buffering
- Multiplexing
- Congestione
- Scenario 1: due mittenti e un router con buffer illimitati
- Scenario 2: due mittenti e un router con buffer finiti
- Scenario 3: quattro mittenti, router con buffer finiti e percorsi multihop
- UDP
- Header UDP
- TCP
- Modello di servizio TCP
- Well-known ports
- Flusso di byte
- Header TCP
- Instaurazione della connessione in TCP
- Rilascio della connessione in TCP
- Trasmissione in TCP
- Dimensione della sliding window
- Accorgimenti per migliorare le prestazioni in TCP
- Caso dell'editor interattivo
- Silly window syndrome
- Chiamate READ bloccanti
- Controllo della congestione in TCP
- Algoritmo avvio lento
- Fast retransmit
- TCP Tahoe e Reno
- Fast Recovery (solo Reno)
- Gestione dei timer in TCP
- Timer di ritrasmissione
- Calcolo del timeout
- Timer di persistenza
- Timer keepalive
- Timer di disconnessione
- Socket di Berkeley
- Procedura per client e server
- Fairness tra connessioni TCP
- Dimostrazione grafica
Livello applicazione
- Comunicazione tra processi
- Sistemi distribuiti
- Modello Client-Server
- Indirizzamento nella comunicazione tra processi
- Numeri di porta
- Requisiti delle applicazioni
- Il protocollo HTTP
- Versioni di HTTP
- HTTP Request
- Metodi HTTP
- HTTP Response
- Codici di stato
- HTML dinamico
- Il protocollo FTP
- I due canali FTP
- Funzioni di FTP
- Autenticazione
- Differenze con HTTP
- Protocolli di posta
- Il protocollo SMTP
- Funzionamento di SMTP
- Comandi SMTP
- Esempio di sessione SMTP
- Header di posta
- POP e IMAP
- Il protocollo DNS
- Domini
- Nomi di dominio
- Root domain
- Server DNS
- Tipi di server
- Funzioni dei server
- Formato di una query DNS
- Risoluzione DNS
- Record DNS
- Time to live
Introduzione alle reti di calcolatori
Architettura di una rete (layers)
L'organizzazione del software di rete avviene attraverso una serie di livelli ciascuno dei quali:
- Svolge compiti ben definiti (interfaccia)
- Fornisce determinati servizi al livello immediatamente superiore (nascondendone l'implementazione)
- Utilizza servizi del livello immediatamente inferiore
Servizi e protocolli
Un protocollo è una serie di regole che governano il formato e il significato dei blocchi d'informazione (frames o pacchetti) che vengono scambiati fra entità dello stesso livello su macchine diverse. Le regole e le convenzioni che governano la conversazione sono dette collettivamente protocollo di livello.
Un servizio è specificato da un insieme di primitive disponibili ai livelli superiori attraverso il SAP (Service Access Point). Le primitive chiedono al servizio di eseguire alcune azioni. Ad esempio, le primitive per un semplice servizio potrebbero essere: LISTEN, CONNECT, SEND, RECEIVE, DISCONNECT.
Un modello definisce numero, relazioni e caratteristiche funzionali dei vari livelli. Un'architettura di rete è composta da un modello e dai protocolli usati in ogni livello.
Sistema a livelli
Quando due nodi (host) comunicano fra di loro, ogni livello su ciascun nodo scambia informazioni sia con i livelli adiacenti che, concettualmente, con il livello paritetico dell'altro nodo. Il trasferimento di un pacchetto da un nodo al livello paritetico di un altro nodo si effettua attraverso i seguenti passi:
- Si inoltra il pacchetto attraverso i livelli sottostanti fino a quello fisico, attraverso il quale i dati vengono trasferiti dal primo nodo al secondo nodo.
- Il secondo nodo acquisisce il pacchetto tramite il livello fisico e lo inoltra verso i livelli superiori fino al livello paritetico con quello del primo nodo.
L'insieme dei livelli e dei relativi protocolli definisce un'architettura di rete. Tra reti diverse possono essere diversi anche il numero di livelli, i loro nomi, nonché il loro contenuto e le loro funzioni. Nella stessa rete, invece, i vari host possono avere implementazioni diverse in termini di interfacce fra i livelli, ma conformi in termini di livelli e protocolli.
Comunicazione tra livelli paritetici (Protocol Data Unit)
Due livelli paritetici comunicano fra di loro scambiandosi pacchetti chiamati PDU (Protocol Data Unit). Ogni livello aggiunge al pacchetto proveniente dal livello superiore, detto SDU (Service Data Unit), le informazioni di controllo del suo protocollo (PCI, Protocol Control Information). Questa operazione si chiama encapsulation. Queste informazioni vengono preposte alla PDU del livello n e costituiscono la n-PDU. La n-PDU a sua volta viene incapsulata nella busta di livello n-1 e così via.
Funzionamento del software di rete
La comunicazione avviene con una modalità che, per grandi linee, è uguale in tutte le architetture di rete:
- Il livello più alto del mittente consegna il messaggio al livello inferiore.
- Il livello inferiore aggiunge il suo header al messaggio (informazioni di controllo: numero di sequenza, dimensione, priorità, ...).
- Il livello inferiore può aver bisogno di frammentare i dati, cosa che fa aggiungendo il suo header a ciascun messaggio frammentato.
- I punti 2 e 3 si ripetono fino ad arrivare all'ultimo livello (canale fisico).
- Attraverso il canale fisico i dati raggiungono la destinazione.
- Il messaggio fa il percorso inverso, con ogni layer che rimuove il suo header, ricompone eventuali messaggi frammentati, e passa il resto al layer superiore.
- Il messaggio arriva al livello superiore del destinatario.
Overhead di rete
Un messaggio viaggia in rete con il corredo di tante intestazioni quanti sono i livelli dell'architettura. In pratica ciascun livello a destinazione riceve esattamente i dati che ha spedito lo stesso livello alla sorgente. I dati trasmessi dal canale fisico che non fanno parte del messaggio (header dei vari livelli) costituiscono l'overhead di rete.
Affidabilità del servizio
Un servizio affidabile non incorre mai nell'errore di perdere i dati, assicurandosi che i dati spediti siano stati consegnati al destinatario. Ciò richiede, generalmente, che il ricevente invii una conferma (acknowledgement) per ogni messaggio o pacchetto ricevuto. Alcuni servizi possono non essere affidabili (non danno la certezza della ricezione) ma, in tal caso, basta che di ciò si preoccupi almeno uno dei livelli superiori.
Modello OSI (Open System Interconnection)
L'OSI, emesso dalla ISO (International Standard Organization), è un modello di riferimento, ovvero definisce numero, ordine e funzionalità dei livelli, ma non definisce i protocolli (che uniti al modello, danno luogo ad una precisa architettura di rete).
Servizi e protocolli
I servizi dei livelli OSI possono essere:
- Con conferma di ricezione
- Senza conferma di ricezione
I protocolli dei livelli OSI possono essere:
- Connection oriented (CONS)
- Indirizzi di mittente e destinatario specificati solo alla creazione della connessione
- Garanzia della consegna (PDU numerate per poterli ricomporre a destinazione, ritrasmissione in caso di errori)
- Controllo di flusso (sincronizzazione tra processi trasmittente e ricevente)
- Datagram connectionless (CLNS)
- Ogni pacchetto deve contenere gli indirizzi di mittente e destinatario
- I pacchetti di uno stesso messaggio possono avere ritardi diversi e possono essere ricevuti in ordine diverso
- Il protocollo può rilevare la presenza di errori scartando le PDU errate ma non può richiedere la ritrasmissione dei pacchetti errati
Livelli OSI
Il modello OSI consiste di sette livelli:
- Unità di dato
- Applicazione (Application)
- Presentazione (Presentation)
- Sessione (Session)
- Segmenti
- Trasporto (Transport)
- Pacchetti
- Rete (Network)
- Frame
- Collegamento (Data Link)
- Bit
- Fisico (Physical)
Ogni livello contiene:
- Le entità, gli elementi software ed hardware che operano in quel livello
- I punti di accesso al servizio (SAP), i punti nei quali ogni livello mette a disposizione i suoi servizi al livello direttamente superiore (nel sistema telefonico, ad esempio, un SAP è la presa telefonica)
Una entity è caratterizzata dalla sigla del proprio strato, a livello
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
-
Riassunto Calcolatori elettronici e reti di calcolatori 1
-
Riassunto calcolatori elettronici e reti di calcolatori 2
-
Riassunto esame Reti di calcolatori, prof. Erra, libro consigliato Reti Di Calcolatori E Internet, Ross
-
Riassunto esame Reti e internet, Prof. Angelo Romeo, libro consigliato Reti di calcolatori, Teneunbaum