logo

Rilevamento delle collisioni in CSMA/CD

CSMA/CD (Carrier Sense Multiple Access/Collision Detection) è un metodo di controllo dell'accesso multimediale ampiamente utilizzato nelle prime tecnologie/LAN Ethernet quando esisteva una topologia di bus condivisa e ciascun nodo (computer) era collegato tramite cavi coassiali. Ora un Days Ethernet è Full Duplex e la topologia è Star (connessa tramite Switch o Router) o Point to Point (connessione diretta). Pertanto CSMA/CD non viene utilizzato ma sono comunque supportati.

Considera uno scenario in cui ci sono 'n' stazioni su un collegamento e tutte sono in attesa di trasferire i dati attraverso quel canale. In questo caso, tutte le “n” stazioni vorrebbero accedere al collegamento/canale per trasferire i propri dati. Il problema sorge quando più di una stazione trasmette i dati contemporaneamente. In questo caso si verificheranno collisioni tra i dati provenienti da diverse stazioni.



CSMA/CD è una di queste tecniche in cui diverse stazioni che seguono questo protocollo concordano alcuni termini e misure di rilevamento delle collisioni per una trasmissione efficace. Questo protocollo decide quale stazione trasmetterà e quando in modo che i dati raggiungano la destinazione senza corruzione.

Come funziona CSMA/CD?

    Passaggio 1: controlla se il mittente è pronto per la trasmissione di pacchetti di dati. Passaggio 2: verificare se il collegamento di trasmissione è inattivo.
    Il mittente deve continuare a controllare se il collegamento/mezzo di trasmissione è inattivo. Per questo rileva continuamente le trasmissioni da altri nodi. Il mittente invia dati fittizi sul collegamento. Se non riceve alcun segnale di collisione, significa che il collegamento al momento è inattivo. Se rileva che il vettore è libero e non ci sono collisioni, invia i dati. In caso contrario si astiene dall'inviare i dati. Passaggio 3: trasmettere i dati e verificare le collisioni.
    Il mittente trasmette i suoi dati sul collegamento. CSMA/CD non utilizza un sistema di “riconoscimento”. Controlla le trasmissioni riuscite e non riuscite attraverso segnali di collisione. Durante la trasmissione, se il nodo riceve un segnale di collisione, la trasmissione viene interrotta. La stazione trasmette quindi un segnale di disturbo sul collegamento e attende intervalli di tempo casuali prima di inviare nuovamente il frame. Dopo un po' di tempo casuale, tenta nuovamente di trasferire i dati e ripete il processo sopra descritto. Passaggio 4: se non viene rilevata alcuna collisione durante la propagazione, il mittente completa la trasmissione del frame e azzera i contatori.

Come fa una stazione a sapere se i suoi dati entrano in collisione?




Considera la situazione di cui sopra. Due stazioni, A e B.
Tempo di propagazione: Tp = 1 ora (il segnale impiega 1 ora per andare da A a B)

At time t=0, A transmits its data. t= 30 mins : Collision occurs.>

Dopo che si è verificata la collisione, viene generato un segnale di collisione e inviato sia ad A che a B per informare le stazioni della collisione. Poiché la collisione è avvenuta a metà strada, anche il segnale di collisione impiega 30 minuti per raggiungere A e B.

Therefore, t=1 hr: A & B receive collision signals.>

Questo segnale di collisione viene ricevuto da tutte le stazioni su quel collegamento. Poi,



Come garantire che siano i dati della nostra stazione a collidere?
Per questo, tempo di trasmissione (Tt)> tempo di propagazione (Tp) [limite approssimativo]
Questo perché vogliamo che prima di trasmettere l'ultimo bit dei nostri dati dalla nostra stazione, dovremmo almeno essere sicuri che alcuni bit abbiano già raggiunto la loro destinazione. Ciò garantisce che il collegamento non sia occupato e che non si verifichino collisioni.
Ma sopra c'è un limite allentato. Non abbiamo impiegato il tempo impiegato dal segnale di collisione per tornare da noi. Per questo considera lo scenario peggiore.

Consideriamo nuovamente il sistema di cui sopra.

At time t=0, A transmits its data. t= 59:59 mins : Collision occurs>

Questa collisione avviene appena prima che i dati raggiungano B. Ora il segnale di collisione impiega nuovamente 59:59 minuti per raggiungere A. Quindi, A riceve le informazioni sulla collisione circa dopo 2 ore, cioè dopo 2 * Tp.

Hence, to ensure tighter bound, to detect the collision completely, Tt>>= 2 * Città>

Questo è il tempo massimo di collisione che un sistema può impiegare per rilevare se la collisione è avvenuta secondo i propri dati.

Quale dovrebbe essere la lunghezza minima del pacchetto da trasmettere?

Transmission Time = Tt = Length of the packet/ Bandwidth of the link [Number of bits transmitted by sender per second] Substituting above, we get, Length of the packet/ Bandwidth of the link>= 2 * Città>
Length of the packet>= 2 * Tp * Larghezza di banda del collegamento>

L'imbottitura aiuta nei casi in cui non abbiamo pacchetti così lunghi. Possiamo inserire caratteri aggiuntivi alla fine dei nostri dati per soddisfare la condizione di cui sopra.

Il rilevamento delle collisioni in CSMA/CD prevede le seguenti funzionalità:

    Rilevamento della portante: prima di trasmettere i dati, un dispositivo ascolta la rete per verificare se il mezzo di trasmissione è libero. Se il supporto è occupato, il dispositivo attende finché non si libera prima di trasmettere i dati. Accesso multiplo: in una rete CSMA/CD, più dispositivi condividono lo stesso mezzo di trasmissione. Ogni dispositivo ha uguale accesso al mezzo e qualsiasi dispositivo può trasmettere dati quando il mezzo è libero. Rilevamento collisioni: se due o più dispositivi trasmettono dati contemporaneamente, si verifica una collisione. Quando un dispositivo rileva una collisione, interrompe immediatamente la trasmissione e invia un segnale di disturbo per informare tutti gli altri dispositivi sulla rete della collisione. I dispositivi attendono quindi un tempo casuale prima di tentare di trasmettere nuovamente, per ridurre le possibilità di un'altra collisione. Algoritmo di backoff: in CSMA/CD, un algoritmo di backoff viene utilizzato per determinare quando un dispositivo può ritrasmettere i dati dopo una collisione. L'algoritmo utilizza un ritardo casuale prima che un dispositivo ritrasmetta i dati, per ridurre la probabilità che si verifichi un'altra collisione. Dimensione minima del frame: CSMA/CD richiede una dimensione minima del frame per garantire che tutti i dispositivi abbiano tempo sufficiente per rilevare una collisione prima che la trasmissione termini. Se un frame è troppo breve, un dispositivo potrebbe non rilevare una collisione e continuare a trasmettere, provocando la corruzione dei dati sulla rete.

Vantaggi di CSMA/CD:

    Semplice e ampiamente utilizzato: CSMA/CD è un protocollo ampiamente utilizzato per le reti Ethernet e la sua semplicità lo rende facile da implementare e utilizzare.
    Equità: In una rete CSMA/CD tutti i dispositivi hanno uguale accesso al mezzo di trasmissione, il che garantisce l'equità nella trasmissione dei dati.
    Efficienza: CSMA/CD consente un utilizzo efficiente del mezzo di trasmissione prevenendo collisioni non necessarie e riducendo la congestione della rete.

Svantaggi del CSMA/CD:

    Scalabilità limitata: CSMA/CD presenta limitazioni in termini di scalabilità e potrebbe non essere adatto a reti di grandi dimensioni con un numero elevato di dispositivi.
    Vulnerabilità alle collisioni: Sebbene CSMA/CD sia in grado di rilevare le collisioni, non può impedirne il verificarsi. Le collisioni possono portare al danneggiamento dei dati, ritardi nella ritrasmissione e alla riduzione delle prestazioni della rete.
    Utilizzo inefficiente della larghezza di banda: CSMA/CD utilizza un algoritmo di backoff casuale che può comportare un uso inefficiente della larghezza di banda della rete se un dispositivo subisce continuamente collisioni.
    Suscettibilità agli attacchi alla sicurezza: CSMA/CD non fornisce alcuna funzionalità di sicurezza e il protocollo è vulnerabile ad attacchi alla sicurezza come lo sniffing e lo spoofing dei pacchetti.

Leggi dopo – Efficienza del CSMA/CD