Задача сотовой сети не только передать данные с максимальной скоростью, но и с минимальным уровнем потерь. То есть важно соблюсти баланс между эффективностью и надёжностью передачи данных. Сегодня мы поговорим о там как именно в сотовых сетях борются за надёжность.
Модуляция
Начнём с низов. Три года назад я уже рассказывал, что данные между смартфоном и базовой станции передаются не в чистом виде, то есть в виде 0 и 1, а с помощью модулированного сигнала.
Суть идеи в том, чтобы закодировать некоторые характеристики базового сигнала передаваемой информацией. Этот процесс называется модуляцией. В качестве примера модуляции представьте себе светофор. На светофоре не написано "стой" или "иди". Вместо этого он показывает цвета: красный, жёлтый и зелёный, в которых закодированы сообщения для нас.
Точно также и в сотовых сетях. Есть некоторый несущий сигнал, в котором закодированы передаваемые данные. И чем больше параметров этого сигнала мы поменяем - тем больше информации в единицу времени сможем передать.
Но на другой чаше весов будет помехозащищённость. Чем больше параметров мы будем менять в сигнале (использовать скоростную схему модуляции) - тем легче его повредить внешними помехами.
Это и есть первый элемент борьбы за эффективность: чем выше помехи - тем менее скоростную схему модуляции использует базовая станция.
Помехоустойчивое кодирование
Следующим элементом борьбы с помехами служит кодирование данных. Идея состоит в том, чтобы добавить к передаваемым данным некоторую избыточность, в которой будет содержаться или контрольная сумма пакета, по которой можно оценить его целостность, или даже информация для восстановления.
Но, как правило, в сотовых сетях на радиоинтерфейсе между смартфоном и станцией добавляют именно контрольную сумму. Получившая пакет сторона, проведя нехитрые вычисления, может быстро оценить корректно ли был передан пакет или нет.
Повторы
Узнав, что пакет передан с ошибкой, приёмная сторона запрашивает у передающей повтор передачи пакета. Через некоторое время, пакет будет передан снова. Если он опять повредиться - процедура запроса может снова повториться. И так пока пакет не будет передан благополучно или система не достигнет предельно возможного числа повторов.
Причём повторы пакетов - это не уникальная ситуация, а вполне обыденная. Какой-то процент пакетов обязательно потеряется. Это уже заложено в системе
Всё вместе
Описанные выше механизмы работает не порознь, а как единое целое. Базовая станция видит какой процент повторов пакетов для конкретного смартфона в данном месте и время. Если он ниже заданного порога - можно ускорить модуляцию, то есть передавать данные быстрее.
Если же процент потерь пакетов слишком большой - скорость модуляции (передачи данных) снижается, чтобы вернуть надёжность системы в заданные пределы.
Всё это и есть борьба между надёжностью и эффективностью. Нельзя сделать процент потерь пакетов нулевым. Для этого придётся передавать данные очень медленно. С другой стороны нельзя делать скорость передачи всегда максимальной - придётся постоянно повторять переданные пакеты, что опять же сделает систему неэффективной.