Если два устройства излучают сигнал Wi-Fi на одной частоте в одно и то же время и одновременно достигают антенны, как данные могут не перекрываться?

15

Я имею в виду, я знаю, что каждый пакет отправляется с MAC-адресом, но как насчет потоковой передачи?

Что произойдет, если в то время, когда маршрутизатор получает один пакет, приходит пакет с другого устройства?

Как маршрутизатор может узнать, что фотоны, сталкивающиеся с антенной, являются частью первого пакета или второго пакета?

Или скорость света настолько высока, что этого почти никогда не происходит, а пакеты просто сообщаются как поврежденные и отправляются снова?

Zequez
источник
4
Это называется столкновением . Оба пакета потеряны.
vonbrand

Ответы:

20

В беспроводной сети только одно устройство фактически «говорит» одновременно. Каждое другое устройство слушает и ждет, пока эфир на этом канале будет тихим, прежде чем говорить. Этот метод называется множественным доступом с контролем несущей и предотвращением конфликтов (CSMA / CA).

Обмен RTS / CTS помогает всем узлам эффективно синхронизироваться, предоставляя возможность одному узлу сказать «эй, я буду говорить так долго, так что ждите так долго» с каждым другим узлом.

@ Петр Абдулин прав, но я думаю, что все сети Wi-Fi используют CSMA / CA. Старые некоммутируемые проводные сети 10BaseT основывались на множественном доступе с обнаружением несущей и обнаружением коллизий (CSMA / CD) . Коллизии не происходят в сетях, где все узлы подключены к коммутатору.

LawrenceC
источник
4
В основном правильно, за исключением того, что возможны коллизии с CSMA / CA. Рассмотрим три устройства A, B и C, где A и C находятся слишком далеко друг от друга, чтобы принимать данные друг друга, но B находится между ними и может получать от любого из них. A и C не могут обнаруживать коллизии (если их нет, их нет), но B не сможет получать данные ни от одного из них, если не произойдет молчание.
Георгий Скопцов
@ GeorgeSkoptsov - Конечно, все еще возможна коллизия, если бы коллизии были невозможны, все было бы беспроводным, так как не было бы никакой потери пакетов.
Ramhound
5
@Ramhound - Столкновение не является основной причиной потери пакетов, а потеря пакетов не является основной причиной, по которой не все является беспроводным.
Георгий Скопцов
8

Если случится так, что две передачи создают помехи друг другу (коллизия), то обе передачи будут повреждены и будут повторно переданы после случайной задержки, что снижает риск повторения коллизии.

Петр Абдулин
источник
1

Что произойдет, если в то время, когда маршрутизатор получает один пакет, приходит пакет с другого устройства?

Непосредственным следствием является то, что некоторые перекрывающиеся биты повреждены. Часто так много битов повреждено, что получатель видит, что последовательность проверки кадра не совпадает, и получатель просто выбрасывает неверные данные и в противном случае действует так, как если бы он не слышал ни один из пакетов.

Позже протоколы более высокого уровня в конечном итоге замечают, что пакет не был подтвержден (ACK), и повторно отправляют пакет.

Тем не менее, стандарты WiFi включают множество различных способов предотвращения таких конфликтов, в том числе:

  • Большинство версий WiFi используют COFDM или какую-либо другую комбинацию битов с расширенным спектром + дополнительные исправления ошибок. Если вам повезло, только несколько бит были перевернуты, все эти биты могут быть исправлены в приемнике, и один из пакетов проходит без ошибок.

  • Как уже указывал LawrenceC, в большинстве версий WiFi используется оператор с поддержкой множественного доступа с предотвращением столкновений (CSMA / CA) : беспроводная точка доступа координирует все ноутбуки, взаимодействующие с ней, так что (как правило) одновременно передается только одно устройство, поэтому (обычно) столкновения нет. (Иногда вы все равно получаете коллизию с пакетом от другого ноутбука, пытающегося установить связь с какой-либо другой точкой беспроводного доступа, или помехи от других устройств).

как насчет потоковой передачи?

Что насчет этого?

Когда ноутбук воспроизводит потоковое аудио (или потоковое видео; примерно 5 Мбит / с для видеопотоков 1080p), отправитель отправляет его в виде серии небольших пакетов. Современное коммуникационное оборудование работает быстро (802.11a передает со скоростью более 20 Мбит / с, а более современные стандарты Wi-Fi еще быстрее), поэтому существуют (относительно) большие промежутки между одним пакетом на этом ноутбуке и следующим пакетом на том же ноутбук.

Между каждым пакетом у точки беспроводного доступа достаточно времени, чтобы отправить пакеты на несколько других ноутбуков, прослушивая случайные пакеты с тех ноутбуков, которые подтверждают предыдущие передачи и запрашивают следующий фрагмент потока, и еще реже отправляя пакеты когда происходит столкновение или какая-либо другая ошибка.

Если все эти ноутбуки разговаривают с одной и той же точкой доступа, то точка доступа координирует передачу, поэтому одновременно передает только одно устройство.

Если некоторые из этих ноутбуков разговаривают с одной точкой доступа, а другие разговаривают с какой-то другой (не скоординированной) точкой доступа, и все эти устройства расположены достаточно близко, чтобы они могли легко подслушивать друг друга, тогда будут частые столкновения.

Любые конфликтующие пакеты передаются повторно. Как правило, повторно переданный пакет, в конце концов, проходит, задолго до того, как пришло время его воспроизвести, поэтому никто даже не заметил, что возникла проблема. Так что (как правило) каждый человек получает иллюзию своего собственного «непрерывного» выделенного потока.

Дэвид Кэри
источник
Напомни мне никогда не писать прошивки беспроводного роутера, это звучит мучительно больно.
кошка