RETI DI CALCOLATORI Parte Terza IEEE 802.3 CSMA/CD (ETHERNET) Gianfranco Prini DICO - Università di Milano [email protected] NOTA DI COPYRIGHT • • • • • • Queste trasparenze (slide) sono protette dalle leggi sul copyright e dalle disposizioni dei trattati internazionali. Il titolo e il copyright delle slide (ivi inclusi, ma non limitatamente, ogni immagine, fotografia, animazione, video, audio, musica, testo, tabella, disegno) sono di proprietà dell'autore. Le slide possono essere riprodotte e utilizzate liberamente dagli istituti di ricerca, scolastici e universitari italiani afferenti al Ministero dell’Istruzione, dell’Università e della Ricerca per scopi istituzionali e comunque non a fini di lucro. In tal caso non è richiesta alcuna autorizzazione. Ogni altro utilizzo o riproduzione, completa o parziale (ivi incluse, ma non limitatamente, le riproduzioni su supporti ottici e magnetici, su reti di calcolatori e a stampa), sono vietati se non preventivamente autorizzati per iscritto dall'autore. L'informazione contenuta in queste slide è ritenuta essere accurata alla data riportata nel frontespizio. Essa è fornita per scopi meramente didattici e non per essere utilizzata in progetti di impianti, prodotti, reti, etc. In ogni caso essa è soggetta a cambiamenti senza preavviso. L'autore non assume alcuna responsabilità per il contenuto delle slide (ivi incluse, ma non limitatamente, la correttezza, la completezza, l'applicabilità, l'adeguatezza per uno scopo specifico e l'aggiornamento dell'informazione). In nessun caso possono essere rilasciate dichiarazioni di conformità all'informazione contenuta in queste slide. In ogni caso questa nota di copyright non deve mai essere rimossa e deve essere riportata fedelmente e integralmente anche per utilizzi parziali. ARGOMENTI • Un po' di storia • Protocollo CSMA/CD • Ethernet v2.0 • IEEE 802.3 - CSMA/CD • Fast Ethernet (IEEE 802.3u) • Gigabit Ethernet (IEEE 802.3z) UN PO' DI STORIA • Capostipite: rete ALOHA realizzata presso il campus della Università delle Hawaii verso la fine degli anni '60 (tecnologia: bus radio) • Predecessore: rete Ethernet realizzata presso lo Xerox PARC verso la metà degli anni '70 (tecnologia: bus su cavo coassiale, 3 Mbps) • Standard de facto iniziale: specifica Ethernet v1.0 del consorzio DIX (DEC, Intel e Xerox) verso la fine degli anni '70 (tecnologia: bus su cavo coassiale, 10 Mbps) • Revisione dello standard: Ethernet v2.0 (1982) STANDARD IEEE 802.3 • Proposto inizialmente da IEEE, è soggetto a continue evoluzioni (supplementi fino al 1993) • Adottato da ISO come DIS (Draft International Standard) nel 1985 e 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 ETHERNET v2.0 vs. IEEE 802.3 Network Network L L C IEEE 802.2. LLC ISO 8802.2 Data Link Data Link M A C Ethernet v2.0 Physical CSMA/CD IEEE 802.3 IEEE 802.5 ANSI X3T9.5 ISO 8802.3 ISO 8802.5 ISO9 9314 CSMA/CD Token Ring FDDI MAC DI ETHERNET v2.0: PROTOCOLLO CSMA/CD • Assunzione: tutte le (interface delle) 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 (concetto locale) • Multiple access (protocollo distribuito) – Non esistendo una stazione master, tutte le stazioni sono abilitate a trasmettere se/quando trovano il canale libero: due stazioni possono trasmettere contemporaneamente • Collision detect (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 COLLISIONI: COME E PERCHE' B vuole trasmettere e può (il canale è libero all'interfaccia tra B e il bus) A B C D E C vuole ma non può trasmettere, D non vuole ma potrebbe, E vuole e può A B C D E A, C e D non possono trasmettere, E rileva una collisione (B non ancora!!!) A B C D E 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 (algoritmo detto 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 (t=51.2 ms) – Fattore di ritardo all'n-esimo tentativo: numero casuale positivo o nullo r<2k , dove k=min(n,10) – Ritardo: intervallo di tempo T=r*t (ergo di durata casuale) COLLISIONI: SEGNALAZIONE E sta trasmettendo la jamming sequence, D è già informata della collisione A B C D E B rileva la collisione e trasmette la jamming sequence, C è ora informata A B C D E B si prepara a ritrasmettere dopo un ritardo T (il canale è già tornato libero) 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 veramente critiche, ma non pone problemi nell'industria convenzionale a processo discreto/continuo • Statisticamente si comporta ottimamente 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) 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 "cronologicamente" più lontane – Collisioni rilevabili durante la trasmissione, e non dopo – La velocità del segnale è funzione del mezzo trasmissivo – Concatenando mezzi diversi il percorso più lungo geometricamente può non esserlo cronologicamente • Parametri (fissandone tre, gli altri sono noti) – – – – Velocità di trasmissione del segnale (max 3*108 m/s) Velocità di trasmissione dell'informazione (bit rate) Lunghezza minima dei messaggi Diametro della rete (nel senso "cronologico" di cui sopra) CSMA/CD: ROUND-TRIP DELAY A B vuole trasmettere e può (il canale B è libero all'interfaccia tra B e il bus) A B rileva subito una collisione e trasmette la jamming sequence B A Solo tra un istante A sarà in grado di rilevare la collisione B TRAME MAC CSMA/CD IN ETHERNET v2.0 E IEEE 802.3 Type > 1500 Ethernet v2.0 DSAP SSAP Type (6 byte) (6 byte) (2 byte) Preamble SFD (7 byte) (1 byte) IEEE 802.3 FCS (4 byte) Data (46-1500 byte) MAC PDU (64-1518 byte) DSAP SSAP Length (6 byte) (6 byte) (2 byte) LLC PDU (0-1500 byte) PAD (0-46 byte) min 46 byte 0 <= Lenght <= 1500 FCS (4 byte) ESEMPIO: PARAMETRI DI ETHERNET v2.0 E IEEE 802.3 • Velocità del segnale sul cavo: circa 2*108 m/s • Velocità di trasmissione della rete: 10 Mbps • Lunghezza minima della trama: 512 bit (MAC PDU) più 64 bit (preambolo e SFD) = 576 bit • Round-trip delay massimo ammesso: 57.6 ms • Tempo di attraversamento massimo: 28.8 ms • 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 FUNZIONI DEL MAC CSMA/CD: FASE DI TRASMISSSIONE • Converte un pacchetto proveniente dai livelli superiori in una stringa seriale di bit • Genera il preambolo e lo SFD, lo prepende alla stringa di bit e immette il tutto nella rete solo se il canale è libero (altrimenti aspetta che lo diventi), garantendo comunque una spaziatura minima tra i messaggi pari a 9.6 ms (metodo di CSMA/CD per delimitare le trame) • 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 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, i.e. 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 CSMA/CD: STATISTICHE • In una rete con "molti" sistemi e con carico medio del 30%, circa il 50% dei pacchetti risultano initially deferred (i.e. 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 (i.e. entrano in collisione con un altro pacchetto durante la prima trasmissione, mentre la seconda ha successo) • Pochissimi pacchetti incorrono in collisioni multiple • Praticamente nessuno raggiunge il limite di 16 tentativi su periodi di osservazione anche molto lunghi • Nelle reti con "pochi" sistemi (anche due soli) questi dati valgono per carichi anche prossimi al 90% 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 ms Interpacket gap: 0.96 ms Max diameter: 210 m • Impiegata per ora soprattutto nelle dorsali di campus o di edificio in alternativa a FDDI/ATM GIGABIT ETHERNET (IEEE 802.3z, IEEE 802.3ab) • 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 ms (invece di 0.512 ms) Interpacket gap: 96 ns Max diameter: 200 m (invece di 20 m !!) Preamble SFD DSAP SSAP Length LLC PDU PAD (7 byte) (1 byte) (6 byte) (6 byte) (2 byte) (0-1500 byte) (0-46 byte) FCS (4 byte) Extension (3584 bit)