Давайте пока проигнорируем гигабитную часть и немного сосредоточимся на вашей части «2 устройства отправляют одновременно».
На общих носителях это действительно может произойти и стать проблемой. Большинство беспроводных передач являются общими носителями, и Ethernet когда-то были:
- 10base2 (коаксиальный) использовал более или менее один кабель с каждым из них. Очевидно, что две (или более) станции могли передавать одновременно;
- 10baseT и 100baseT (на основе витой пары) с концентраторами (а не коммутаторами) также означали, что две (или более) станции могли передавать одновременно, поскольку сигнал, полученный от любого подключенного устройства, просто повторялся для всех остальных.
Теперь, если два устройства отправляют одновременно, могут произойти две вещи:
Вы используете некоторую форму мультиплексирования (временное разделение, частотное разделение ...), которая позволяет разделять «каналы», чтобы можно было слушать определенный канал и не беспокоить других. Это часто используется для беспроводных передач, намного меньше для проводных передач (WDM / DWDM на волокнах является одним исключением).
или если два или более устройства отправляют одновременно по одному и тому же каналу, вы получаете то, что называется коллизией : например, когда два человека говорят одновременно, вы не можете понять, что либо говорит, приемные устройства не являются возможность декодировать данные, отправленные любым из устройств (или чаще они могут его декодировать, но это не имеет смысла и не пройдет проверки CRC).
Вот где появились схемы типа CSMA-CD (множественный доступ с обнаружением несущей, обнаружение столкновений):
- Перед попыткой передачи устройство проверит, отправляет ли кто-то еще (операторский смысл)
- Если канал свободен, он начинает передачу.
- Но даже при этом два устройства могут запускаться одновременно, поэтому вы все равно можете столкнуться.
- Чтобы не тратить слишком много времени на канал, устройства будут обнаруживать коллизии (сравнивая то, что они отправляют, с тем, что они получают: если это не совпадает, то это означает, что кто-то другой отправляет одновременно), прервите передачу, и повторите попытку после случайной задержки (чтобы избежать нового столкновения).
Это было довольно забавно, и в слабо загруженных сетях это работало довольно хорошо, но как только трафик становился значительным, вы в конечном итоге сталкивались с множеством коллизий, что, в свою очередь, увеличивало использование общих медиа, что, в свою очередь, приводило к увеличению коллизий, так что это может стать довольно плохо.
Ответом на это было переключение на полнодуплексные коммутируемые сети . Концентраторы просто повторили сигнал, не задумываясь. С другой стороны, коммутаторы действительно получают кадр, а затем повторно отправляют его по ссылке назначения (дополнительный бонус: кадр отправляется не всем, в большинстве случаев только адресату).
Если два устройства отправляют на одно и то же устройство-получатель, коммутатор ставит в очередь один из кадров, поэтому два кадра, отправленные одновременно, фактически приходят один за другим в пункт назначения.
Кроме того, на физическом уровне вполне возможно, что обмен данными происходит по нескольким парам или даже по нескольким кабелям параллельно. Будет ли это сделано на уровне битов или на каждой паре / кабеле будут передаваться целые кадры, зависит от конкретной используемой технологии. Но я думаю, что это был не твой вопрос.