46% заряда аккумулятора тратится на передачу 0,2% байтов
Когда пользователь сервиса Pandora проигрывает песню, весь файл передаётся одним куском, и это правильно – передавай сразу столько данных, сколько можешь, а потом держи радио выключенным как можно дольше.
Однако после этой передачи приложение каждую минуту отсылает пинги для периодического анализа аудитории. И что в итоге? Эти пинги занимают 0,2% от общих переданных данных, потребляя при этом 46% всей энергии, использованной приложением!
Илья Григорик, High Performance Browser Networking
Каждый раз в книге Илья довольно широко раскрывает свою точку зрения, подкрепляя её объёмными примерами. Чтобы рассказать читателям о времени работы аккумулятора телефона, он целую главу посвящает деталям работы модема GSM, UMTS и LTE. Интересно бывает осознавать, как возникающая на одном из уровней проблема уходит корнями на несколько уровней ниже.
Изучая весь стек технологий, книга не просто даёт нам набор фактов, а продвигает целую философию.
Хорошие разработчики знают, как что работает.
Великие разработчики знают, почему это работает.
Стив Саудерс, предисловие к книге High Performance Browser Networking
Старая идея по-новому
В 2013 году, когда я читал книгу, я думал, что было бы круто провести собственное расследование на эту тему, и визуализировать то, как радиомодем перепрыгивает с вышки на вышку при движении телефона.
С телефоном 2013 года под управлением iOS этого было сделать нельзя, он не давал доступ к нужным данным. Но сегодня у меня Pixel, и такой проблемы у него нет. LocationManager ежесекундно выдаёт местоположение по GPS (широту и долготу)., TelephonyManager выдаёт cellID=(mmc,mcc,lac,cid) для сотовой вышки.
База данных cellID поможет узнать широту и долготу каждой вышки. Останется лишь ежесекундно рисовать маршрут (красным) и связь с вышками, для каждой из которых выбран свой цвет.
Поездка из Саннивейл в Маунтин-Вью (кликабельно)
На диаграмме видно 7-минутную поездку длиной 3,7 км с телефоном с поддержкой LTE (UE, от User Equipment). По пути встретились пять вышек и девять ячеек связи (eNB, от Evolved NodeB).
Анализ
Комбинируя Google StreetView и Wikipedia, можно во многом разобраться.
(кликабельно)
По одним и тем же координатам eNB могут находиться несколько cellID. Просто антенна на eNB покрывают не 360°. Угол направления и дальность работы каждой антенны режут пространство на сектора.
Местоположение и направление антенн выбирается стратегически. На карте выше вышки расставлены вдоль шоссе 85, и антенны смотрят параллельно ему. У некоторых антенн сектор приёма-передачи получается узким и длинным – возможно, это позволяет увеличить максимальное количество обслуживаемых телефонов во время пробок.
Плотность eNB гораздо выше, чем я думал. В интернете пишут, что дальность действия сотовой вышки составляет 45 миль. Возможно, это в дикой местности, но в городе плотность населения и плотность расстановки eNB связаны. В Саннивейл вышки стоят через каждые полтора километра.
Вышки не всегда делят несколько операторов. Точность базы данных CellID такая большая, что я смог найти эти вышки на Google StreetView. Я думал, что обнаружу там большие монолиты, усеянные антеннами, по нескольку штук на каждого оператора, но в большинстве случаев на вышке висит по одной антенне.
Антенны eNB крепят не только на вышках. Иногда они располагаются в церквях, на высоковольтных линиях электропередач и даже на коммерческих зданиях.
Как только вы начинаете искать эти вышки, они для вас из невидимых превращаются в объекты, которые невозможно игнорировать.
LTE-радио умеет прыгать между разными сотами. Судя по всему, достаточно часто это происходит несколько раз в минуту, для того, чтобы справиться с тем, что здания загораживают вышки.
Выбор вышки кажется детерминистским. На двух картах выше подключения карт на одном и том же участке пути выглядят похоже. Выбор делает конечный автомат, конфигурацию которого каждая ячейка задаёт посредством SIB-сообщений. Переход состояния зависит от многих факторов, в т.ч. от порогового значения силы сигнала предыдущей соты или порогового значения силы сигнала следующей соты.
Проехав достаточно большое расстояние, 16 км, я обратил внимание на то, что код района LAC (Location Area Code), вшитый в CellID, не менялся. По спецификации LTE, сотовые вышки не обязаны выполнять передачу UE, если LAC не меняется. Телефон переключается на следующую вышку, оставаясь в режиме RCC_IDLE и не передавая данные. Это не только экономит батарею, но и означает, что сотовый оператор не знает точного местоположения телефона, если LAC не менялся (хотя по поводу точности определения местоположения по сотам идут споры ещё со времён появления GSM).
Судя по всему, на каждой вышке стоит по три антенны с сектором действия в 120°. Это очевидно, если покружить вокруг одной из них.
Лезем глубже в кроличью нору
Рисовать карты было интересно. Мне захотелось больше узнать об этой области. Я обнаружил, что она не только глубокая, но и широкая. Даже для того, чтобы нарисовать минимальную таблицу по итогам изысканий, пришлось достаточно много времени потратить на разборки с акронимами.
Поколение | Технология | Маркетинг | Примечания |
---|---|---|---|
0G | Телефоны в автомобилях | Как у Филипа Драммонда [персонаж ситкома Diff'rent Strokes / прим. пер.] | |
1G | DynaTAC | Как у Гордона Гекко [персонаж фильма «Уолл-Стрит» / прим. пер.] | |
2G | GSM | GSM | Nokia 3310 (он же «кирпич»). Поддержка SMS |
GPRS | Голос или данные | ||
EDGE | iPhone 1 | ||
cdmaOne | CDMA | ||
3G | UMTS | HSPA | iPhone 3GS. И голос и данные одновременно |
HSPA+ | |||
CDMA2000 | C2K | ||
4G | LTE | LTE | iPhone 5 / Pixel 1 |
LTE Advanced | LTE+ | ||
LTE Advanced Pro | LTE Pro | ||
5G | 5G | 5G | iPhone 12 / Pixel 4a 5g |
5G mmWave | 5G mmWave | iPhone 12 Pro Max /Pixel 5G |
Эзотерический мир
Начиная с 2G (GSM) в 1998 году стандарты и документацию для всех технических стеков делали 3GPP. Все эти спецификации растягиваются на сотни документов, и чтобы понять их, потребуется, похоже, вся жизнь.
Я не нашёл LTE-стека с открытым кодом, на котором можно было бы учиться. А если бы он и был, то радиопередача в сотовом диапазоне тщательно регулируется, чтобы эти частоты не замусоривали неисправные модемы.
По этому вопросу издано немного книг, и все они крайне дорогие. Меня лично вдохновили на изыскания следующие три:
- An introduction to LTE by Christopher Cox.
- LTE Advanced by Sassan Ahmadi.
- Long Term Evolution In Bullets, 2nd Edition by Chris Johnnson.
Наконец, существуют приложения, позволяющие вам заглянуть под капот модема, прочитать его состояние и сообщение. Но я решил их не использовать – они дорогие, к тому же, требуют рута.
edo1h
дальнобойность зависит, очевидно, от рельефа местности и от используемой частоты (на 800-900 Mhz она может быть десятки километров, о которых говорится в статье; с ростом же частоты быстро падает).
и в городах осознанно ставят менее дальнобойные базовые станции, потому что «ёмкость» базовой станции не безгранична.
kibar
Дальность соты (для примера) GSM зависит от конфигурации селла (cell). Скажем так, если настроить «по умолчанию» то селл может обслуживать абонента на расстоянии до 35 км (8 тайм слотов). Если абонент станет дальше 35 км то система не даст его обслужить (это может быть и GSM900 и GSM1800). Это ограничивается тем, что из за задержек сигнала в пространстве тайм-слоты будут налезать друг на друга, что не есть хорошо.
Но а если сконфигурировать селл на работу на 6 тайм слотах то дальность соты увеличивается автоматически ~45 км.
Одним словом
1. больше расстояние — меньше емкости.
2. 35 км не предел
3. В городах вышки ставят плотнее.
Для справки — зоны действия сектора всех стандартов можно увеличить «искусственно» задав некое смещение по уровню во время принятия решения хендовера. CRO — cell reselection offset, Cell Offset и т.п.
mayorovp
Простите, а связь - она сотовая или селловая?
ducemollari
Ячеистая.