TGViewer
CatScience CatScience @cat0science · 4.48K subscribers
Post #1572 1.17K
Что общего у Wi-Fi и новогоднего утренника?

Вот ведь забавно: почти у каждого дома есть роутер с Wi-Fi — а знают, как там в нём что работает, единицы. Оно, конечно, и правильно: сумрачная магия связи без проводов и тем, кто ей по долгу службы занимается, едва ведома — что уж тут говорить про обычного пользователя. Между тем, стоит чуть поглубже зарыться в тему работоспособности этого протокола — и загадок становится ещё больше: я вот, например, знаю этот стандарт достаточно глубоко, чтобы прозаниматься им больше десяти лет, и тем не менее до конца не понимаю, как эта шаткая конструкция до сих пор работает и что-то как-то передаёт. Сейчас вы поймёте, что к чему.

Основной проблемой Wi-Fi являются два краеугольных ограничения радио: во-первых, орут все куда громче, чем могут расслышать (что вроде бы хорошо), во-вторых, на одном и том же канале нельзя никак скрыться от чужих разговоров (поэтому это и называется общей средой). Следствием из первого ограничения становится невозможность одновременно говорить и слушать (да и как иначе, если громкость передачи может быть в МИЛЛИАРД раз больше чувствительности приёмника — если мы попробуем что-то услышать в момент работы нашего передатчика, то больше одной попытки у нас не будет). Следствие второго — невозможность одновременной работы нескольких передатчиков: никто не сможет разобрать несколько сигналов, пришедших на приёмник одновременно. Как в такой ситуации вообще решить, кто когда передаёт, и не заглушить друг друга? Очень просто — на помощь придёт традиционный детский конкурс с стульями (не теми) и музыкой!

Правила помните? У нас есть определённое количество детей, стульев на один меньше, чем число детей, и цикл расстройств и страданий, когда по очереди кому-то не хватает стула, и он выбывает из игры. Для того, чтобы из этой игры получился Wi-Fi, нужно поменять правила совсем чуть-чуть: стул мы оставим один для всех (это как раз и есть право на доступ к эфиру), а детей (клиентов сети) заставим кидать кубик. Для начала кинем d16, и каждый отойдёт от стула на столько шагов, сколько выпало. По хлопкам ведущего (таймер) все начинают делать по одному шагу в сторону стула. Первый, кто дошёл, получает право передавать свои данные, ура! — а все остальные снова бросают кубик (на этот раз d32), и цикл повторяется заново. Если у самого несчастливого из всех кубик достигнет d2048, и стула он всё равно не достигнет — этот ребёнок получает право заплакать, отказаться от игры и выкинуть данные пользователя в окно.

Как быть в ситуации, когда стула достигли одновременно двое детей? Мы помним, что усадить их на один стул нельзя — поэтому сорян, дети, победила дружба, удваивайте свои кубики и кидайте заново. Это называется коллизия, и весь механизм, описанный в этой заметке, специально зовётся Collision Avoidance, «избежание коллизий» — мы всеми силами стремимся этой ситуации не допустить (и увеличиваем количество вариантов, разводя детей подальше друг от друга с помощью чистых вероятностей).

Конечно, не всё так просто: дети воспитателей (приоритетный трафик) тоже участвуют в игре, и нам бы очень хотелось, чтобы они выигрывали почаще. Им мы в первом раунде вручим кубики d16, а вот остальным, ребятишкам попроще, достанутся, к примеру, d64. Чисто статистически выиграть имеют возможность все (и это правильно, потому что любой трафик должен быть доставлен), но кто-то будет явно выигрывать чаще. Поздравляю, мы научились управлять качеством сервиса (QoS, Quality of Service) в Wi-Fi!

Теперь вы сами можете сделать вывод, почему скорость в эфире делиться между всеми устройствами на одном канале, даже если они относятся к разным сетям (стул-то остался один!), почему в офисе не нужно выбирать каналы шире 20 МГц, хоть они и вроде как быстрее (потому что мы тогда приводим в свою игру больше детей, чем нам хочется), и так далее. Кстати, если заменить стул на какой-то весёлый напиток — то теперь у вас есть отличная игра на ближайшие посиделки в дружеской компании в длинном помещении с массой свободного места!

#Парамонов
#интересное
#айти
  • ❤ 24
  • 🔥 12
  • 😁 8
  • 👏 3
  • 🤯 2
  • ❤‍🔥 1
  • 🎃 1
More from @cat0science
  1. Sep 27, 2026Post #1649
  2. Sep 25, 2026Post #1648
  3. Sep 23, 2026Post #1647
  4. Sep 21, 2026Post #1646
  5. Sep 21, 2026Post #1645
  6. Sep 21, 2026Новый год, после которого точно будет что вспомнить ✨ Сколько раз в жизни вы сможете сказа…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →