Проект сети публичного доступа к Интернет по Wi-Fi

       

Канальный уровень (Data Link)


Канальный уровень 802.11 состоит из двух подуровней: управления логической связью (Logical Link Control, LLC) и управления доступом к носителю (Media Access Control, MAC). 802.11 использует тот же LLC и 48-битовую адресацию, что и другие сети 802, что позволяет легко объединять беспроводные и проводные сети, однако MAC уровень имеет кардинальные отличия.

MAC уровень 802.11 очень похож на реализованный в 802.3, где он поддерживает множество пользователей на общем носителе, когда пользователь проверяет носитель перед доступом к нему. Для Ethernet сетей 802.3 используется протокол Carrier Sence Multiple Access with Collision Detection (CSMA/CD), который определяет, как станции Ethernet получают доступ к проводной линии, и как они обнаруживают и обрабатывают коллизии, возникающие в том случае, если несколько устройств пытаются одновременно установить связь по сети. Чтобы обнаружить коллизию, станция должна обладать способностью и принимать, и передавать одновременно. Стандарт 802.11 предусматривает использование полудуплексных приёмопередатчиков, поэтому в беспроводных сетях станция не может обнаружить коллизию во время передачи.

Чтобы учесть это отличие, 802.11 использует модифицированный протокол, известный как Carrier Sense Multiple Access with Collision Avoidance (CSMA/CA), или Distributed Coordination Function (DCF). CSMA/CA пытается избежать коллизий путём использования явного подтверждения пакета (ACK), что означает, что принимающая станция посылает ACK пакет для подтверждения того, что пакет получен неповреждённым.

CSMA/CA работает следующим образом. Станция, желающая передавать, тестирует канал, и если не обнаружено активности, станция ожидает в течение некоторого случайного промежутка времени, а затем передаёт, если среда передачи данных всё ещё свободна. Если пакет приходит целым, принимающая станция посылает пакет ACK, по приёму которого отправителем завершается процесс передачи. Если передающая станция не получила пакет ACK, в силу того, что не был получен пакет данных, или пришёл повреждённый ACK, делается предположение, что произошла коллизия, и пакет данных передаётся снова через случайный промежуток времени.


Для определения того, является ли канал свободным, используется алгоритм оценки чистоты канала (Channel Clearance Algorithm, CCA). Его суть заключается в измерении энергии сигнала на антенне и определения мощности принятого сигнала (RSSI). Если мощность принятого сигнала ниже определённого порога, то канал объявляется свободным, и MAC уровень получает статус CTS. Если мощность выше порогового значения, передача данных задерживается в соответствии с правилами протокола. Стандарт предоставляет ещё одну возможность определения не занятости канала, которая может использоваться либо отдельно, либо вместе с измерением RSSI – метод проверки несущей. Этот метод является выборочным, так как с его помощью производится проверка на тот же тип несущей, что и по спецификации 802.11. Наилучший метод для использования зависит от того, каков уровень помех в рабочей области.

Таким образом, CSMA/CA предоставляет способ разделения доступа по радиоканалу. Механизм явного подтверждения эффективно решает проблемы помех. Однако он добавляет некоторые дополнительные накладные расходы, которых нет в 802.3, поэтому сети 802.11 будут всегда работать медленнее, чем эквивалентные им Ethernet локальные сети.

Другая специфичная проблема MAC-уровня – это проблема "скрытой точки", когда две станции могут обе "слышать" точку доступа, но не могут "слышать" друг друга, в силу большого расстояния или преград (рис. 2.4). Для решения этой проблемы в 802.11 на MAC уровне добавлен необязательный протокол Request to Send/Clear to Send (RTS/CTS). Когда используется этот протокол, посылающая станция передаёт RTS и ждёт ответа точки доступа с CTS.



Рис. 2.4 - Иллюстрация проблемы "скрытой точки"

Так как все станции в сети могут "слышать" точку доступа, сигнал CTS заставляет их отложить свои передачи, что позволяет передающей станции передать данные и получить ACK пакет без возможности коллизий. Так как RTS/CTS добавляет дополнительные накладные расходы на сеть, временно резервируя носитель, он обычно используется только для пакетов очень большого объёма, для которых повторная передача была бы слишком дорогостоящей.

Наконец, MAC уровень 802.11 предоставляет возможность расчёта CRC и фрагментации пакетов. Каждый пакет имеет свою контрольную сумму CRC, которая рассчитывается и прикрепляется к пакету. Здесь наблюдается отличие от сетей Ethernet, в которых обработкой ошибок занимаются протоколы более высокого уровня (например, TCP). Фрагментация пакетов позволяет разбивать большие пакеты на более маленькие при передаче по радиоканалу, что полезно в очень "заселённых" средах или в тех случаях, когда существуют значительные помехи, так как у меньших пакетов меньше шансы быть повреждёнными. Этот метод в большинстве случаев уменьшает необходимость повторной передачи и, таким образом, увеличивает производительность всей беспроводной сети. MAC уровень ответственен за сборку полученных фрагментов, делая этот процесс "прозрачным" для протоколов более высокого уровня.


Содержание раздела