Ignoriamo la parte Gigabit per ora e concentriamoci un po 'sulla parte "2 dispositivi stanno inviando contemporaneamente".
Sui media condivisi , ciò può effettivamente accadere ed essere un problema. La maggior parte delle trasmissioni wireless sono media condivise, mentre Ethernet, in passato, era:
- 10base2 (coassiale) utilizzava più o meno un singolo cavo con ognuno su di esso. Ovviamente, due (o più) stazioni sono state in grado di trasmettere contemporaneamente;
- 10baseT e 100baseT (basato su doppino intrecciato), con hub (anziché switch) significavano anche che due (o più) stazioni potevano trasmettere contemporaneamente, poiché il segnale ricevuto da qualsiasi dispositivo collegato veniva semplicemente ripetuto a tutti gli altri.
Ora, se due dispositivi inviano contemporaneamente, possono succedere due cose:
usi una qualche forma di multiplexing (divisione del tempo, divisione della frequenza ...) che consente "canali" separati in modo che uno possa ascoltare un canale specifico e non essere disturbato dagli altri. Questo è usato molto per le trasmissioni wireless, molto meno per le trasmissioni cablate (WDM / DWDM su fibre è un'eccezione).
o se due o più dispositivi stanno inviando contemporaneamente sullo stesso canale, allora ottieni quella che viene chiamata una collisione : come quando due persone parlano contemporaneamente, non puoi capire ciò che dice, i dispositivi di ricezione non lo sono in grado di decodificare i dati inviati da uno qualsiasi dei dispositivi (o più spesso, possono decodificarli, ma non ha senso e non supererà i controlli CRC).
È qui che sono arrivati schemi come CSMA-CD (Carrier-Sense Multiple Access, Collision Detection):
- Prima di provare a trasmettere, un dispositivo controllava se qualcun altro stava inviando (senso dell'operatore)
- Se il canale è libero, inizia la trasmissione.
- Ma anche così, due dispositivi possono avviarsi esattamente allo stesso tempo, quindi puoi comunque avere una collisione.
- Per evitare di perdere troppo tempo sul canale, i dispositivi rileveranno le collisioni (confrontando ciò che inviano con ciò che ricevono: se non corrisponde, significa che qualcun altro sta inviando contemporaneamente), interrompere la trasmissione, e riprovare dopo un ritardo casuale (per cercare di evitare una nuova collisione).
Questo è stato abbastanza divertente e su reti leggermente caricate ha funzionato abbastanza bene, ma non appena il traffico è diventato significativo, si finirebbe con tonnellate di collisioni, che a loro volta aumentano l'utilizzo dei media condivisi, che a sua volta si traduce in più collisioni, quindi potrebbe andare piuttosto male.
La risposta a questo è stata il passaggio a reti commutate full duplex . Gli hub hanno appena ripetuto il segnale senza pensare. I commutatori invece ricevono davvero un frame, quindi lo rispediscono sul link di destinazione (bonus aggiuntivo: il frame non viene inviato a tutti, ma solo alla destinazione nella maggior parte dei casi).
Se due dispositivi inviano allo stesso dispositivo di destinazione, lo switch metterà in coda uno dei frame, quindi i due frame inviati contemporaneamente arrivano effettivamente uno dopo l'altro a destinazione.
Oltre a ciò, a livello fisico, è del tutto possibile che i dati vengano scambiati su più coppie o anche più cavi in parallelo. Il fatto che ciò avvenga a livello di bit o che vengano inviati interi frame su ciascuna coppia / cavo dipende dalla tecnologia esatta utilizzata. Ma penso che non sia stata davvero una tua domanda.