CSMA/CD: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica |
|||
Riga 7:
* L'adattatore sistema il [[data frame|frame]] da trasmettere in un [[buffer]];
* Se il canale è inattivo (''idle''), cioè non si rilevano altri pacchetti trasmessi da altre stazioni, si procede alla trasmissione, se invece è occupato (''busy'') si attende che il canale torni libero prima di ritrasmettere;
* Durante l'intera trasmissione l'adattatore monitora la rete (è questo il vero e proprio ''Collision Detection''): se non riceve segnali da altri adattatori considera il frame spedito. Il segnale che valuta l'eventuale collisione o meno si ricava confrontando il segnale ricevuto con quello trasmesso: se i due differiscono è avvenuta una collisione;
* Se l'adattatore riceve, durante una trasmissione, un segnale da un altro adattatore, arresta la trasmissione e trasmette un segnale di disturbo (''jamming signal'') di 48 bit che avverte le altre stazioni dell'avvenuta collisione bloccandone la contemporanea trasmissione;
* Dopo aver abortito la trasmissione le stazioni trasmittenti applicano ciascuna un ''algoritmo di subentro'' attendendo in maniera esponenziale randomizzata il tempo per la ritrasmissione (''[[algoritmo di backoff esponenziale binario]]'').
L'attesa esponenziale funziona in questo modo: gli adattatori di ciascuna stazione aspettano un tempo casuale entro un valore massimo ''d'' (il protocollo che usa il CSMA/CD, ad esempio [[Ethernet]], fissa tale valore). Se si genera una nuova collisione il valore ''d'' viene raddoppiato, così fino a che questo risulti sufficientemente grande da non produrre collisioni. Questa tecnica viene chiamata '''recessione binaria esponenziale''' ed avviene perché tutti gli altri adattatori che sono contemporaneamente in attesa potrebbero simultaneamente tentare di ritrasmettere generando nuove collisioni, da cui appunto la necessità di estendere il tempo massimo di subentro.
|