Протокол канального уровня Wi-Fi
Суть вопроса такова: я хочу в качестве учебного проекта придумать и реализовать свой протокол канального уровня. Придумывать буду не я (проект групповой), мне надо это дело имплементировать. Т.е. необходимо получить доступ к канальному уровню сетевого адаптера Wi-Fi: иметь возможность получать статус несущей (занята/свободна) и читать хедер передаваемого по сети кадра данных (причём без предварительной буферизации, т.е. буквально в реальном времени). Соответственно после прочтения хедера устройство будет принимать какие-то решения (читать дальше или спать) ну и т.д. Также в реальном времени нужно читать бикон-сообщения. С чего можно начать? Я гуглил устройства для Arduino, там только высокоуровневые функции (типа просканировать сеть, подключиться и т.д.). Видимо задача выливается в написание драйвера к Wi-Fi адаптеру. С чего начинать гуглить?
1 ответ 1
Вы можете, конечно же, скачать исходники какого-нибудь драйвера wi-fi под linux и ковырять их (я в стародавние времена руками был вынужден собирать себе драйвер для карты на чипсете atheros).
И hostapd вам наверняка будет очень интересен.
А я бы на вай-фай не замахивался. Взял бы тупой модуль-модулятор на 433Mhz (который по лог 1 включает несучку, а по лог 0 — выключает), приемник (а тоже тупой — сверхгенератор), манчестерский код. эээх, молодость.
Похожие
Подписаться на ленту
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
Дизайн сайта / логотип © 2023 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2023.7.14.43533
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
Физический и канальный уровень. Модель OSI для стандартов Wi-Fi и IEEE 802.11 показана в табл
Модель OSI для стандартов Wi-Fi и IEEE 802.11 показана в табл. 2.17. Основное назначение физических уровней — обеспечение интерфейса с беспроводной средой передачи (с эфиром), а также оценка состояния эфира и взаимодействие с уровнем MAC.
Физический уровень состоит из двух подуровней:
o PLCP (Physical Layer Convergence Protocol) — выполняет процедуру отображения PDU уровня MAC (элемента протокола данных, сравните с рис. 2.25) во фрейм формата FHSS или DSSS (см. раздел «Проблемы беспроводных сетей и пути их решения»). Эта процедура выполняет передачу, обнаружение несущей и прием сигнала;
o PMD (Physical Medium Dependent) — «подуровень, зависящей от среды передачи». Этот уровень будет различным для разных скоростей передачи и разных стандартов из серии 802.11. Подуровень PMD обеспечивает данные и сервис для подуровня PLCP и функции радиопередачи и приема, результатом которых является поток данных, информация о времени, параметры приема.
Основным рабочим состоянием уровней PLCP является обнаружение несущей и оценка незанятости канала. Для выполнения передачи PLCP переключает PMD из режима «прием» в режим «передача» и посылает элемент данных PPDU (PLCP Data Unit).
Физический уровень выполняет скремблирование, кодирование и чередование (см. раздел «Проблемы беспроводных сетей. «).
Передача сигналов по радиоканалу выполняется двумя методами: FHSS и DSSS (см. раздел «Проблемы беспроводных сетей и пути их решения»). При этом используется дифференциальная фазовая модуляция DBPSK и DQPSK (см. «Методы модуляции несущей») с применением кодов Баркера, комплементарных кодов (CCK — Complementary Code Keying) и технологии двойного сверточного кодирования (PBCC) [Рошан].
Wi-Fi 802.11g на скорости 1 и 2 Мбит/с использует модуляцию DBPSK. При скорости передачи 2 Мбит/с используются те же метод, что и при скорости 1 Мбит/с, однако для увеличения пропускной способности канала используется 4 разных значения фазы (0, ) для фазовой модуляции несущей.
Протокол 802.11b, использует дополнительно скорости передачи 5,5 и 11 Мбит/с. На этих скоростях передачи вместо кодов Баркера используются комплементарные коды (CCK).
Wi-Fi использует метод доступа к сети CSMA/ CA (см. раздел «Проблемы беспроводных сетей и пути их решения»), в котором для снижения вероятность коллизий использованы следующие принципы:
o прежде, чем станция начнет передачу, она сообщает, как долго она будет занимать канал связи;
o следующая станция не может начать передачу, пока не истечет зарезервированное ранее время;
o участники сети не знают, принят ли их сигнал, пока не получат подтверждение об этом;
o если две станции начали работать одновременно, они смогут узнать об этом только по тому факту, что не получат подтверждение о приеме;
o если подтверждение не получено, участники сети выжидают случайный промежуток времени, чтобы начать повторную передачу.
Предотвращение, а не обнаружение коллизий, является основным в беспроводных сетях, поскольку в них, в отличие от проводных сетей, передатчик трансивера заглушает принимаемый сигнал.
Формат фрейма на уровне PLCP модели OSI (табл. 2.17) в режиме FHSS показан на рис. 2.44. Он состоит из следующих полей:
o «Синхрониз.» — содержит чередующиеся нули и единицы. Служит для подстройки частоты на принимающей станции, синхронизирует распределение пакетов и позволяет выбрать антенну (при наличии нескольких антенн);
o «Старт» — флаг начала фрейма. Состоит из строки 0000 1100 1011 1101, которая служит для синхронизации фреймов на принимающей станции;
o » PLW» — «Psdu Length Word» — «слово длины служебного элемента данных PLCP», PSDU — «PLCP Service Data Unit» — элемент данных подуровня PLCP; указывает размер фрейма, поступившего с уровня MAC, в октетах;
o «Скорость» — указывает скорость передачи данных фрейма;
o «MAC-фрейм» — фрейм, поступивший с MAC-уровня модели OSI и содержащий PSDU;
o «Заголовок PLCP» — поля, добавленные на подуровне PLCP.
Рис. 2.44. Формат фрейма PLCP для режима FHSS |
Формат фрейма на уровне PLCP модели OSI (табл. 2.17) в режиме DSSS показан на рис. 2.45. В нем поля имеют следующий смысл:
o «Синхрониз.» — содержит только единицы и обеспечивает синхронизацию в приемной станции;
o «Старт» — флаг начала фрейма. Содержит строку 0 xF3A0, которая указывает начало передачи параметров, зависящих от физического уровня;
o «Сигнал» — указывает тип модуляции и скорость передачи данного фрейма;
o «Сервис» — зарезервировано для будущих модификаций стандарта;
o «Длина» — указывает время в микросекундах, необходимое для передачи MAC-фрейма;
o «MAC-фрейм» — фрейм, поступивший с MAC-уровня модели OSI и содержащий PSDU;
o «Заголовок PLCP» — поля, добавленные на подуровне PLCP.
Рис. 2.45. Формат фрейма PLCP для режима DSSS |
Дальность связи средствами Wi-Fi сильно зависит от условий распространения электромагнитных волн, типа антенны и мощности передатчика. Типовые значения, указываемые изготовителями Wi-Fi оборудования, составляют 100-200 м в помещении и до нескольких километров на открытой местности с применением внешней антенны и при мощности передатчика 50. 100 мВт. Вместе с тем, по сообщению германского еженедельника «Сomputerwoche» во время соревнований по дальности связи была зафиксирована связь на расстоянии 89 км с применением стандартного оборудования Wi-Fi стандарта IEEE 802.11b (2,4 ГГц) и спутниковых антенн («тарелок»). В книге рекордов Гиннеса зафиксирована также Wi-Fi связь на расстоянии 310 км с применением антенн, поднятых на большую высоту с помощью воздушных шаров.
Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями: