Appunti Reti PDF
Document Details
Tags
Summary
Questi appunti forniscono una panoramica sui concetti di base delle reti di computer, descrivendo i livelli del modello ISO/OSI e i protocolli utilizzati. I concetti chiave includono la trasmissione dei dati, i protocolli di rete e la gestione dei dispositivi di rete.
Full Transcript
Le reti permettono la trasmissione di dati tra due macchine per facilitare la condivisione di risorse. I progettisti di architetture di reti (specifiche con cui viene 9 realizzata una rete) usano come riferimento un modello di rete (modalità per interconnettere le entità) a strati o livelli, l'obiet...
Le reti permettono la trasmissione di dati tra due macchine per facilitare la condivisione di risorse. I progettisti di architetture di reti (specifiche con cui viene 9 realizzata una rete) usano come riferimento un modello di rete (modalità per interconnettere le entità) a strati o livelli, l'obiettivo è quello di ridurre la complessità del problema di realizzare un sistema di comunicazione. Un modello a strati divide il processo di comunicazione di rete in livelli distinti. Ogni strato ha una funzione specifica e comunica solo con il livello direttamente superiore e inferiore. Un protocollo è un insieme di regole che stabiliscono come due o più dispositivi di rete comunicano tra loro. L’incapsulamento dei dati e consiste nell’aggiungere, ad ogni livello, una nuova specifica intestazione (header) al messaggio per fornire informazioni che verranno utilizzate dagli apparati di rete per l’erogazione dei servizi (come interpretare i dati, dove mandarli, come rilevare gli errori ecc.). PDU ovvero unità di dati del protocollo, si riferisce a un blocco di dati che viene trasmesso da un dispositivo all'altro all'interno di una rete. Ogni strato del modello di comunicazione di rete utilizza la propria PDU per comunicare e trasferire dati. Quando i dati passano attraverso i diversi livelli di una rete, la PDU cambia forma e acquisisce nuove intestazioni (header) o code (trailer). Il modello ISO/OSI è un modello a strati che suddivide in sette livelli le funzionalità necessarie a realizzare reti di computer. I dati inviati dall’applicazione presente nel mittente passano attraverso i livelli e ognuno aggiunge il proprio header. Quando arriva al destinatario il messaggio subisce l’operazione inversa. Ogni livello esamina l’header di propria competenza e invia al livello superiore solo il payload (la parte dati). Fisico Si occupa della trasmissione di una sequenza di bit attraverso un mezzo fisico (cavi, segnali, materiali). Compiti: Converte i dati digitali in segnali trasmissibili (bit). Gestisce la topologia fisica della rete e il cablaggio. Stabilisce la sincronizzazione tra il mittente e il destinatario. Dispositivi che operano a livello 1 sono schede di rete e hub. Collegamento Rende affidabile il trasferimento dati tra due dispositivi e il collegamento instaurato al livello fisico. Si occupa della trasmissione tra due host della stessa rete utilizzando l’indirizzamento fisico (es MAC) Compiti: Gestisce l'accesso al mezzo di trasmissione Controlla gli errori e garantisce che i dati siano trasmessi correttamente. Incapsula i pacchetti in frame e aggiunge informazioni per il controllo degli errori (CRC). Dispositivi che operano a livello 2 sono bridge e switch. Livello Rete Gestisce l'instradamento (routing) dei pacchetti tra reti diverse per assicurare che i dati raggiungano la destinazione finale. Compiti: Fornisce indirizzamento logico (indirizzi IP). Si occupa dell'instradamento dei pacchetti attraverso diverse reti. In trasmissione suddivide il messaggio dal livello trasporto in packet o datagram. Dispositivi che operano a livello 3 sono router. Livello Trasporto Garantisce il trasferimento dell’intero messaggio tra due sistemi. Si occupa della comunicazione end-to-end (Il principio end-to-end afferma che, se si hanno due applicazioni che comunicano tramite una rete, tutte le funzioni e le operazioni specifiche richieste da tali applicazioni, come il controllo di errori, devono essere realizzate ed eseguite in modo completo nei nodi terminali (o end point) e non nei nodi intermedi (o intermediate node) della rete). Compiti: Fornisce segmentazione e riassemblaggio dei dati. Implementa il controllo del flusso e la gestione degli errori. Assicura che i dati arrivino correttamente (con protocolli come TCP) o senza garanzia di consegna (con UDP). Consegna il messaggio al processo destinatario, vengono usati i numeri di porta per identificare ogni processo su un host. Offre sia il servizio connection-oriented (instaurazione connessione prima che vengano inviati i dati) sia quello connectionless (i dati trasmessi senza sapere se il destinatario è pronto a riceverli) TCP (Transmission Control Protocol), UDP (User Datagram Protocol). Livello Sessione Gestisce e coordina le connessioni (sessioni) tra due applicazioni su diversi dispositivi. Controlla il dialogo in rete. Compiti: Stabilisce, gestisce e chiude le sessioni di comunicazione. Sincronizza il flusso dei dati e gestisce il recupero in caso di interruzioni. Permette ai processi coinvolti di inserire dei checkpoint (punti di sincronizzazione). Livello presentazione Si occupa della traduzione dei dati tra il formato utilizzato dalla rete e quello utilizzato dalle applicazioni. Controlla la correttezza sintattica e semantica delle informazioni scambiate. Compiti: Conversione dei dati, da sequenze alfanumeriche in bit Crittografia e decrittografia dei dati per garantire la sicurezza. Compressione e decompressione dei dati per ottimizzare la larghezza di banda. Livello applicazione Interagisce direttamente con le applicazioni utente. Offre un’interfaccia utente con la rete. Fornisce supporto ai servizi di rete per programmi come browser, client e-mail. Compiti: Fornisce l'accesso alle risorse di rete. Gestisce i protocolli che permettono alle applicazioni di comunicare attraverso la rete. Il modello TCP/IP (Transmission Control Protocol/Internet Protocol) è un modello di rete utilizzato per le comunicazioni su Internet e in altre reti moderne. Si basa su quattro livelli principali che raggruppano le funzionalità necessarie per far comunicare i dispositivi su una rete. Livello di Accesso alla Rete (Physical Layer) Questo livello gestisce la trasmissione fisica dei dati tra dispositivi. Si occupa della comunicazione con il mezzo fisico (cavi, onde radio, fibre ottiche, ecc.) e delle tecniche di accesso al mezzo. Svolge i compiti dei livelli Physical e Data Link. Livello network Il livello Internet è responsabile dell'instradamento (routing) dei pacchetti attraverso diverse reti per garantire che i dati raggiungano la destinazione finale, anche se i dispositivi si trovano su reti diverse. Livello di trasporto Il livello di trasporto gestisce il trasferimento dati in maniera affidabile tra due dispositivi. Garantisce che i dati inviati dal mittente arrivino correttamente al destinatario. Livello applicazione Il livello applicazione interagisce direttamente con le applicazioni e i programmi utente che richiedono servizi di rete. È responsabile di fornire protocolli che consentono alle applicazioni di comunicare attraverso la rete. IEEE 802 è una famiglia di standard sviluppata per definire i protocolli e le tecnologie utilizzati nelle reti LAN e nelle reti MAN. Il livello fisico deve tenere in considerazione il fatto che le trasmissioni broadcast condividono su un unico canale ed è quindi necessario verificare che il canale sia libero. Per questo occorre stabilire un algoritmo di accesso che permetta di evitare le collisioni: Tecnica a contesa, prevede l’accesso casuale se due o più stazioni cercano di trasmettere simultaneamente il conflitto viene risolto secondo alcune regole di mediazione. le tecniche più conosciute sono la CSMA/CD (Carrier Sense Multiple Access with Collision Detection) e la CSMA/CA (Carrier Sense Multiple Access with Collision Avoidance). Tecnica senza contesa o deterministica, ogni trasmissione avviene in un istante definito, la stazione trasmittente è l’unica a possedere l’accesso al canale. Le tecniche più conosciute sono quelle basate sui token. FDM (Frequency Division Multiplexing) è una tecnica che divide lo spettro di frequenza disponibile in canali separati. Ogni utente o flusso di dati viene assegnato a una banda di frequenza distinta. Tutti i segnali vengono trasmessi contemporaneamente sullo stesso mezzo, ma su frequenze diverse. TDM (Time Division Multiplexing) è una tecnica che divide il tempo disponibile in slot temporali (unità di tempo), assegnando ciascuno slot a un flusso di dati o a un utente diverso. In questo modo, più utenti possono utilizzare lo stesso canale alternandosi nel tempo. Il livello data link di ISO/OSI è suddiviso in due sottolivelli: LLC E MAC. Il sottolivello superiore è LLC (Logical Link Control) che fornisce un’interfaccia unificata verso il livello di rete. Può anche occuparsi del controllo del flusso di trasferimento dei dati. Il sottolivello LLC deve individuare quale è il protocollo usato per la comunicazione. Il frame di LLC contiene due indirizzi che consentono di indirizzare correttamente i dati all'interno del dispositivo di destinazione, in base al protocollo a cui appartengono: DSAP (Destination Service Access Point), è un indirizzo di 8 bit che indica il punto di accesso a cui sono destinati i dati nel dispositivo ricevente. Viene utilizzato per determinare quale protocollo nel dispositivo di destinazione deve elaborare i dati ricevuti. SSAP (Source Service Access Point), è un indirizzo di 8 bit che indica il punto di accesso da cui provengono i dati all'interno del dispositivo mittente. Serve per identificare il protocollo che ha generato i dati all'origine. Il campo control permette di gestire la trasmissione e il controllo del flusso dei dati tra dispositivi su una. Esistono tre tipi principali di frame LLC: Unnumbered Frame (U-frame): utilizzati per operazioni di controllo non collegate al trasferimento di dati sequenziali, come l'apertura e la chiusura di una connessione. Information Frame (I-frame): utilizzati per il trasferimento di dati e includono un numero di sequenza per l'ordinamento e il riconoscimento dei pacchetti. Supervisory Frame (S-frame): utilizzati per gestire il flusso e la rilevazione degli errori. Non contengono dati, ma conferme di ricezione e altri segnali di controllo. LLC fornisce i seguenti tre servizi: Unacknowledged Connectionless Service, è un servizio senza connessione, i datagrammi vengono trasmessi in modo indipendente l’uno dall’altro senza chiedere conferma sulla ricezione Connection Oriented Service, è un servizio orientato alla connessione, richiede la conferma di ricezione Semireliable Connectionless Service, è un servizio non orientato alla connessione, prevede una conferma di ricezione. Il sottolivello inferiore è il MAC (Media Access Control) il suo compito è arbitrare l’accesso all’unico mezzo trasmissivo comune tra tutti i sistemi che hanno necessità di trasmettere in una determinata rete. Il frame MAC contiene due indirizzi di tipo DSAP e SSAP, detti indirizzi MAC del sorgente e del destinatario, che hanno lo scopo di identificare l’indirizzo fisico delle due entità che si stanno scambiando la PDU per/dal sottolivello LLC. Il campo “LLC PDU” contiene il frame LLC. Il campo FCS (Frame Check Sequence) viene utilizzato per rilevare errori nei dati trasmessi su una rete. Si trova alla fine di un frame e contiene un valore di controllo calcolato durante la trasmissione, basandosi sul contenuto del frame, usando un algoritmo di CRC (Cyclic Redundancy Check). Questo valore viene aggiunto alla fine del frame prima che esso venga trasmesso. Quando il frame arriva al destinatario, quest'ultimo ricalcola il CRC utilizzando lo stesso algoritmo e confronta il risultato con il valore dell'FCS ricevuto. Se i due valori coincidono, significa che il frame è stato trasmesso correttamente; altrimenti, viene rilevato un errore e il frame viene scartato o richiesto nuovamente. L’indirizzo MAC è un identificatore univoco assegnato a ciascun dispositivo di rete per permettere la comunicazione su una rete locale (LAN). L’indirizzo è formato da 6 byte, i primi 3 indicano il codice del produttore che ha fabbricato il dispositivo (ogni produttore ha un proprio OUI registrato), i successivi 3 byte sono un identificativo univoco assegnato dal produttore per quel dispositivo specifico. Gli indirizzi MAC possono essere di 3 tipi: unicast, individua una stazione singola multicast, individua un gruppo di stazioni, il primo byte dispari (8° bit a 1) indica che si tratta di un MAC multicast, mentre i MAC col primo byte pari (8° bit a 0) sono per gli unicast. La seconda parte del MAC multicast è costituita da un bit a 0 e dagli ultimi 23 bit dell’IPv4 broadcast, individua tutti gli host connessi alla rete FF-FF-FF-FF-FF-FF Viene prodotta un’operazione di incapsulamento. Il campo clock syn serve per sincronizzare l’orologio tra trasmettitore e ricevitore. Il campo FCS controlla gli errori (spiegato prima). Il frame delimiter è il temp Questa immagine rappresenta l'architettura del livello di collegamento dati (Data Link Layer), suddivisa nei suoi due sottolivelli: LLC (Logical Link Control) e MAC (Media Access Control), in relazione agli standard IEEE 802. Livello di Collegamento Dati (Data Link Layer), questo livello è suddiviso in due sottolivelli: LLC (Logical Link Control): Gestisce il controllo logico della connessione, il controllo del flusso e il rilevamento degli errori. Utilizza lo standard IEEE 802.2, che agisce come strato superiore del livello di collegamento dati. MAC (Media Access Control): Si occupa di come i dispositivi accedono al mezzo fisico e gestiscono le trasmissioni su reti condivise (ad esempio, Ethernet). Gestisce anche gli indirizzi MAC, che identificano in modo univoco ciascun dispositivo di rete. Questi standard utilizzano lo stesso schema LLC/MAC, ma si differenziano per la velocità e le tecnologie di trasmissione. IEEE 802.2 (LLC) gestisce i protocolli e i servizi di livello superiore. IEEE 802.3 (MAC) gestisce il controllo dell'accesso al mezzo fisico. I vari standard Ethernet (802.3, Fast Ethernet, Gigabit Ethernet) utilizzano i sottolivelli LLC e MAC per ottimizzare la trasmissione su diverse velocità di rete. LLC è anche un protocollo di linea IEEE 802.2. I protocolli di linea sono protocolli che vengono utilizzati sulle linee pubbliche per la trasmissione di dati. Questi protocolli formano una famiglia: LLC, HDLC, PPP. HDLC (High Level Data Link Control) è generalmente utilizzato su reti di grandi dimensioni. È quasi esclusivamente utilizzato per collegamenti punto-a-punto. Il frame HDLC è formato da tre parti: header: formato da address (identifica i diversi terminali) e control (come LLC) un campo dati a lunghezza variabile (data) trailer: FCS il tutto è delimitato da due flag: 01111110 che stabiliscono la sincronizzazione. HDCL non ha una modalità standard per trasmettere sullo stesso canale pacchetti generati da protocolli diversi. PPP (Point to Point Protocol) è l’evoluzione di HDCL, viene aggiunto un campo detto protocol che contiene la codifica del protocollo di livello superiore la cui PDU è contenuta in information. Il frame PPP è formato da tre parti: header: formato da address (contiene 11111111, codifica broadcast , control (contiene 00000011, U-frame ) e protocol. un campo dati a lunghezza variabile, information (tra 0 e 1500 byte) trailer: FCS il tutto è delimitato da due flag: 01111110 che stabiliscono la sincronizzazione. PPP fornisce un metodo standard per trasmettere pacchetti provenienti da più protocolli diversi. Utilizza: LCP (Link Control Protocol), creare, configurare e testare la linea NCP (Network Control Protocol), configurare i diversi protocolli di rete HDCL e PPP sono protocolli sincroni: Trasmissioni sincrone, i dati da inviare sono raggruppati in frame di molti byte e ogni frame è proceduto da alcuni byte per la sincronizzazione. Trasmissioni asincrone, permette di ricevere e inviare un solo byte per volta delimitato da un bit di stop e uno di start. I principali standard: PoE (Power over Ethernet) è una tecnologia che permette di alimentare gli apparati utilizzando lo stesso cavo che li collega alla rete Ethernet. Due tipi di dispositivi: PSE (Power Sourcing Equipment), apparecchiature che forniscono alimentazione PD (Powered Device), apparecchiature che vengono alimentate Il frame ethernet ha una lunghezza variabile compresa tra 64 e 1518 byte preceduti da un preambolo e da un byte di start. Esistono due formati del frame: Ethernet v2.0 IEEE 802.3 Preamble, è costituito da 7 byte tutti uguali con valori 10101010, permette al destinatario di sincronizzarsi SFD (Start Frame Delimiter), è un byte con valore 10101011 ed indica l’inizio del frame Destination Address, contiene l’indirizzo fisico del destinatario (MAC) Source Address, contiene l’indirizzo fisico del sorgente (MAC) Type, contiene il codice associato al protocollo di livello superiore che ha generato la PDU contenuta nel campo data Data, contiene i dati da trasmettere FCS, contiene i bit di check CRC per la rilevazione degli errori di trasmissione Vengono aggiunti due nuovi campi: Length, contiene la lunghezza in byte del successivo campo Data PAD, contiene una sequenza che garantisce che la lunghezza minima del frame sia di 64 byte. In 802.3 il campo length può assumere valori nell’intervallo 0-1500, mentre Type in ethernet sono tutte maggiori uguali a 1536. L’Inter-Frame Spacing/Inter-Packet Gap (IFG o IFS o IPG) definisce lo spazio temporale minimo tra due frame consecutivi, il valore standard è di 96 bit time. Un dispositivo si dice wire speed quando l’elettronica è così efficiente da introdurre l’inter-frame spacing minimo tra i pacchetti di lunghezza minima. CALCOLI FATTI IN CLASSE Per trovare la velocità di trasmissione reale: larghezza di banda (velocità di trasmissione teorica in 10 base_t)=10 Mbps=10000000 bps dimensione del pacchetto=trama + payload + IFG + (preamble+STD) =18+1500+12+8=1538 byte=12304 bit frame rate=(larghezza di banda)/(dimensione pacchetto)=10000000/12304=812,74 pps (pacchetti per secondo) throughput (dati effettivamente inviati)=(frame rate)*payload=812,74*(1500*8)=9752880 bps confronto (efficienza) = throughput/(larghezza di banda)=9752880/107=9,75 Le reti ethernet half-duplex (bidirezionale 1 alla volta) trasmettono utilizzando una tecnica a contesa. Occorre quindi rilevare le eventuali collisioni. La CSMA/CD prevedere che l’host si metta in ascolto del canale di accesso condiviso, se lo trova inattivo (idle) ovvero non rileva altri frame trasmessi attende un tempo di 96 bit time e poi procede alla trasmissione. Se invece è occupato (busy) attende che il canale torni libero prima di ritrasmettere. Dopo avere rilevato la collisione: Il primo host sulla rete che si accorge della collisione (riceve frammenti di frame) interrompe la trasmissione Lo stesso host immette un frame speciale noto come sequenza di jamming Gli host riconoscono il frame e interrompono le trasmissioni scartando i frammenti ricevuti Prima di ritrasmettere ogni host aspetta un tempo dato dall’algoritmo di backoff esponenziale binario Il tempo di attesa minimo (slot time) = (lunghezza minima del frame ethernet)/(velocità del canale) L’algoritmo stabilisce che il tempo di attesa effettivo sia un multiplo r dello slot time: Tempo di attesa effettivo=r*slot time Con 0