CSMA/CD e CSMA/CA Vittorio Maniezzo Università di Bologna Collision detection - CD Anche con CSMA, due computer potrebbero trasmettere simultaneamente: entrambi testano il bus nello stesso istante, lo trovano libero e cominciano a trasmettere I segnali dei due computer interferiscono La sovrapposizione di frame é detta collisione Nessun problema per l'hardware I dati di entrambi i frame sono persi Vittorio Maniezzo Università di Bologna 10 CSMA 2/24 1
MAC di ethernet v2.0: protocollo CSMA/CD Assunzione: tutte le stazioni condividono lo stesso mezzo trasmissivo Carrier Sense (listen before talking) Prima di trasmettere si ascolta il bus e vi si immette il segnale solo se non si rileva traffico. Multiple Access (protocollo distribuito) Non esiste una stazione master, tutte le stazioni sono abilitate a trasmettere quando trovano il canale libero: due stazioni possono trasmettere contemporaneamente Collision Detection (listen while talking) Durante la trasmissione si ascolta il bus per verificare se il segnale presente nella rete è uguale a quello che vi si sta immettendo, in caso contrario si ha una collisione Vittorio Maniezzo Università di Bologna 10 CSMA 3/24 Ethernet CSMA/CD L'interfaccia Ethernet include hardware specifico per identificare le collisioni controlla il segnale in uscita se il segnale sul bus é diverso da quello in uscita si ipotizza una collisione Quando si identifica una collisione, il computer smette di trasmettere Vittorio Maniezzo Università di Bologna 10 CSMA 4/24 2
Recupero da una collisione Un computer che identifica una collisione invia un segnale particolare che forza tutte le altre interfacce a identificare la collisione Il computer poi aspetta che il bus torni libero prima di ritrasmettere Se entrambi i computer aspettassero lo stesso tempo, colliderebbero ancora Lo standard specifica il ritardo massimo, entrambi i computer attendono un tempo casuale minore del massimo Dopo l'attesa, i computer usano CS per evitare altre collisioni Altri computer possono trasmettere prima dei due che hanno colliso Vittorio Maniezzo Università di Bologna 10 CSMA 5/24 Backoff esponenziale Anche con ritardi casuali, possono ripetersi collisioni La possibilità cresce su segmenti molto occupati Ogni computer raddoppia il ritardo ad ogni collisione consecutiva Vittorio Maniezzo Università di Bologna 10 CSMA 6/24 3
Standard IEEE 802.3 Proposto inizialmente da IEEE, è soggetto a continue evoluzioni. Adottato da ISO come standard nel 1989 Differisce da Ethernet v2.0 in alcuni punti: Livello fisico: caratteristiche funzionali di dettaglio (elettriche ed elettroniche) di transceiver e repeater Livello dati: particolari del formato dello header, con conseguente diversa interpretazione di alcuni campi Livello dati: presenza in IEEE 802.3 del sottolivello LLC, che invece manca del tutto in Ethernet v2.0 Il termine "Ethernet" viene spesso abusato per indicare anche lo standard IEEE 802.3 Vittorio Maniezzo Università di Bologna 10 CSMA 7/24 ETHERNET v2.0 e IEEE 802.3 Network Network Data Link L L C M A C IEEE 802.2. LLC ISO 8802.2 Data Link Ethernet v2.0 IEEE IEEE 802.3 802.5 ANSI X3T9.5 Physical ISO 8802.3 ISO 8802.5 ISO9 9314 CSMA/CD CSMA/CD Token Ring FDDI Vittorio Maniezzo Università di Bologna 10 CSMA 8/24 4
MAC di ethernet v2.0: gestione delle collisioni Non appena una stazione rileva una collisione trasmette una jamming sequence (32-48 bit in Ethernet v2.0, 32 bit in IEEE 802.3) Tutte le stazioni vengono così informate della collisione, e scartano tutti i bit a seguire fino al prossimo "silenzio" Ogni stazione trasmittente ripete il tentativo dopo un intervallo di tempo di durata casuale (truncated binary exponential backoff), fino a un massimo di 16 volte, dopo di che viene fatto intervenire il software Slot time: durata della trasmissione di 512 bit (τ=51.2 μs) Fattore di ritardo all'n-esimo tentativo: numero casuale positivo o nullo r<2 k, dove k=min(n,10) Ritardo: intervallo di tempo T=r τ Vittorio Maniezzo Università di Bologna 10 CSMA 9/24 Caratteristiche del protocollo CSMA/CD Non garantisce che l'invio di un messaggio si completi entro un termine stabilito, per cui è inadatto ad applicazioni real-time critiche (non pone problemi nell'industria convenzionale). Statisticamente si comporta bene se il carico medio viene mantenuto al di sotto del 30% con picchi brevi e infrequenti fino al 60% (problema controllabile segmentando la rete con bridge, switch e router) Vittorio Maniezzo Università di Bologna 10 CSMA 10/24 5
Parametri del protocollo CSMA/CD Durata minima di un messaggio almeno pari al doppio del tempo che un segnale impiega ad attraversare la rete tra le due stazioni più lontane in tempo: La velocità del segnale è funzione del mezzo trasmissivo Concatenando mezzi diversi il percorso più lungo geometricamente può non esserlo in tempo Parametri (fissandone tre, gli altri sono noti) Velocità di trasmissione del segnale (max 3 10 8 m/s) Velocità di trasmissione dell'informazione (bit rate) Lunghezza minima dei messaggi Diametro della rete (misurato in tempo di percorrenza) Vittorio Maniezzo Università di Bologna 10 CSMA 11/24 Frame MAC CSMA/CD in ethernet v2.0 e IEEE 802.3 Type > 1500 Ethernet v2.0 DSAP (6 byte) SSAP (6 byte) Type (2 byte) Data (46-1500 byte) FCS (4 byte) Preamble (7 byte) SFD (1 byte) MAC PDU (64-1518 byte) IEEE 802.3 DSAP (6 byte) SSAP (6 byte) Length (2 byte) LLC PDU (0-1500 byte) PAD (0-46 byte) FCS (4 byte) min 64 byte 0 <= Length <= 1500 Vittorio Maniezzo Università di Bologna 10 CSMA 12/24 6
Esempio: parametri di ethernet v2.0 e IEEE 802.3 Velocità del segnale sul cavo: circa 2 10 8 m/s Velocità di trasmissione della rete: 10 Mbps Lunghezza minima del frame: 512 bit (MAC PDU) più 64 bit (preambolo e SFD) = 576 bit Round-trip delay massimo ammesso: 57.6 μs Tempo di attraversamento massimo: 28.8 μs Diametro massimo della rete: circa 5760 m Tenendo conto di altri fattori (ritardi indotti da apparati attivi e passivi, margini di sicurezza, etc.) il diametro massimo si riduce a 2800 m per Ethernet v2.0 e 4 km per IEEE 802.3 Vittorio Maniezzo Università di Bologna 10 CSMA 13/24 Funzioni del MAC CSMA/CD: fase di trasmisssione Converte un pacchetto proveniente dai livelli superiori in una stringa di bit. Genera il preambolo, lo prepone alla stringa di bit e immette il tutto nella rete solo se il canale è libero (altrimenti aspetta che lo diventi). Rilevando una collisione, interrompe la trasmissione del pacchetto, trasmette la jamming sequence e inizia a eseguire l'algoritmo di truncated binary exponential backoff per schedulare la prossima ristrasmissione, generando un interrupt dopo il 16-esimo tentativo In assenza di collisioni, genera il CRC e lo accoda al messaggio come campo FCS Vittorio Maniezzo Università di Bologna 10 CSMA 14/24 7
Funzioni del MAC CSMA/CD: fase di ricezione Estrae dalla rete una stringa seriale di bit, ne rimuove il preambolo e, se indirizzata alla stazione ricevente, cioè se il DSAP è uguale all'indirizzo locale, oppure è l' indirizzo broadcast ff-ff-ff-ff-ff-ff, oppure è un indirizzo multicast e tale modalità risulta abilitata la ricompone in un pacchetto (sempre che non riceva nel frattempo la jamming sequence), scartandolo se la lunghezza risulta inferiore a quella minima (64 byte) Se non si sono verificate collisioni, estrae il CRC dal campo FCS e se di valore diverso dal CRC calcolato localmente in ricezione, scarta l'intero pacchetto se di valore uguale, passa il pacchetto ai livelli superiori Vittorio Maniezzo Università di Bologna 10 CSMA 15/24 CSMA/CD: statistiche In una rete con molti computer e con carico medio del 30%, circa il 50% dei pacchetti risultano initially deferred (la stazione trasmittente deve attendere che il canale sia libero prima di potervi accedere); Di questi il 2-3% vengono trasmessi con successo dopo una collisione singola (entrano in collisione con un altro pacchetto durante la prima trasmissione, ma seconda ha successo); Pochissimi pacchetti incorrono in collisioni multiple; Praticamente nessuno raggiunge il limite di 16 tentativi su periodi di osservazione anche molto lunghi. Vittorio Maniezzo Università di Bologna 10 CSMA 16/24 8
Fast ethernet (IEEE 802.3u) Velocità di trasmissione dell'informazione (bit rate) elevata a 100 Mbps Mantiene l'algoritmo CSMA/CD degli standard a 10 Mbps (Ethernet v2.0 e IEEE 802.3) Riduce di un fattore 10 tutti i parameri Bit time: 10 ns Slot time: 5.12 μs Interpacket gap: 0.96 μs Max diameter: 210 m Vittorio Maniezzo Università di Bologna 10 CSMA 17/24 Gigabit ethernet (IEEE 802.3z) Velocità di trasmissione dell'informazione (bit rate) elevata a 1000 Mbps (1 Gbps) Mantiene l'algoritmo CSMA/CD degli standard a 10 e a 100 Mbps (Ethernet v2.0, IEEE 802.3, IEEE 802.3u) Riducendo di un fattore 100 tutti i parameri sarebbe inservibile, per cui slot time esteso Bit time: 1 ns Slot time: 4.096 μs (invece di 0.512 μs) Interpacket gap: 96 ns Max diameter: 200 m (invece di 20 m!!) Preamble (7 byte) SFD (1 byte) DSAP (6 byte) SSAP (6 byte) Length (2 byte) LLC PDU (0-1500 byte) PAD (0-46 byte) FCS (4 byte) Extension (3584 bit) Vittorio Maniezzo Università di Bologna 10 CSMA 18/24 9
LAN wireless Usano segnali radio a 900MHz Data rate di 2Mbps Mezzo condiviso: radio invece di cavo Connettività wireless limitata Contrariamente alle LAN su cavo, é possibile che non tutti i partecipanti siano in grado di connettersi a qualunque altro: bassa forza del segnale propagazione bloccata da muri,... Non si può utilizzare CD; non tutti i partecipanti sono uguali Vittorio Maniezzo Università di Bologna 10 CSMA 19/24 CSMA/CA Le LAN wireless usano la collision avoidance (CA) invece di CD Il trasmettitore invia un breve messaggio al ricevitore Il ricevitore risponde con breve messaggio e riserva il canale al trasmettitore La risposta del ricevitore é inviata (broadcast) a tutti, gli altri potenziali trasmettitori aspettano Vittorio Maniezzo Università di Bologna 10 CSMA 20/24 10
Collisioni Il ricevitore può ricevere richieste simultanee Collisione al ricevitore Tutte le richieste sono perse Nessun trasmettitore riceve la conferma; tutti utilizzano il backoff e riprovano Il ricevitore può ricevere richieste contigue ne sceglie una il trasmettitore selezionato invia il messaggio i trasmettitori non selezionati vanno in backoff Vittorio Maniezzo Università di Bologna 10 CSMA 21/24 CSMA / CA Sorgente: Verifica che il canale sia libero per un tempo specificato Se il canale è libero invia RTS (Request To Send) Tale messaggio, più piccolo e meno costoso, contiene informazioni come: la sorgente, la destinazione, tempo trasmissione (invio dati + ricezione ACK). Destinazione, quando riceve RTS: Se il canale è libero invia alla sorgente il messaggio CTS (Clear To Send) Il CTS, come l RTS, è poco costoso perché piccolo ed include le stesse informazioni dell RTS Qualunque altra stazione che riceve un RTS o CTS setta il NAV (Network Allocation Vector) al valore del campo durata nel frame RTS o CTS. Con l invio di RTS e CTS si riduce l overhead di collisione (costano meno di un intero pacchetto) Vittorio Maniezzo Università di Bologna 10 CSMA 22/24 11
CSMA / CA, esempio C vede A, D vede B ma non A Vittorio Maniezzo Università di Bologna 10 CSMA 23/24 CSMA / CA, esempio Gruppo di frammenti Un gruppo di frammenti. Le alte stazioni stanno ferme fino all ACK. Vittorio Maniezzo Università di Bologna 10 CSMA 24/24 12