«46% потребления батареи для передачи 0,2% информации от общего числа байтов.
Всякий раз, когда пользователь Pandora включает песню, музыкальный файл передается приложением из сети за один раз, целиком, что является правильным поведением: скопируйте как можно больше данных, а затем можно надолго выключить радио.
Однако после передачи музыки, приложение будет проводить периодический анализ аудитории, отправляя прерывистые аналитические запросы каждые 60 секунд. Чистый эффект? На запросы аналитики приходилось 0,2% от общего числа переданных байтов и 46% от общего энергопотребления приложения!»
— Илья Григорик, High Performance Browser Networking
Илья не торопится, чтобы подробно изложить свою точку зрения. Чтобы просветить читателей на тему времени автономной работы мобильного телефона, он посвящает целую главу подробному описанию радиомодемов GSM, UMTS и LTE. Удивительно осознавать, что проблемы на одном уровне могут найти свои корни несколькими уровнями ниже.
Поездка от Саннивейла до центра Маунтин-Вью.
Изучая весь стек, High Performance Browser Networking делает больше, чем просто предоставляет факты. Он защищает философию.
Хорошие разработчики знают, как все работает.
Великие разработчики знают, почему все работает.— Стив Содерс, High Performance Browser Networking, Предисловие
Старая идея снова новая
Когда я читал это в 2013 году, я подумал, что было бы круто провести собственное исследование и визуализировать, как радио перескакивает из одной ячейки в другую, пока телефон путешествует.
Эта идея не могла быть реализована с моим телефоном на iOS 2013 года, поскольку он не предоставлял необходимые мне данные, но у моего текущего Pixel нет этой проблемы. LocationManager может предоставлять местоположение GPS (широта, долгота) каждую секунду. Между тем, TelephonyManager выдает cellID = (mmc, mcc, lac, cid), на котором сейчас находится радио.
База данных CellID [1] позволяет узнать (широту, долготу) каждого CellID. Осталось нарисовать маршрут (красным) и для каждой секунды соединение с ячейкой с цветовой кодировкой.
Приведенный выше результат показывает 7-минутную поездку, длинной 3,7 км, с телефоном с поддержкой LTE (также известное как UE для пользовательского оборудования). По пути были обнаружены пять вышек и девять ячеек (также известные как eNB для Evolved NodeB).
Анализ
Объединение карты, Google StreetView и Википедии позволило разобраться во многом.
- Несколько идентификаторов соты сопоставляются с одними и теми же координатами широты и долготы eNB. Это потому, что антенны, установленные на eNB, не имеют покрытия на 360°. Угол и диапазон каждой антенны делят пространство на ячейки в форме кусочков пиццы.
- Антенны расположены и ориентированы стратегически. На карте справа башни размещены вдоль шоссе 85, а антенны направлены параллельно ему. Некоторые антенны имеют исключительно узкую и большую дальность действия. Возможно, чтобы приспособиться к высокой плотности во время пробок.
- eNB имеют гораздо более высокую плотность, чем я думал. Погуглив о «дальности действия вышки сотового телефона», получил цифру в 45 миль. Это может быть верно для сельской местности, но в городе плотность населения и плотность eNB взаимосвязаны. Это означает, что каждую милю в Саннивейле были вышки.
- Сайты не обязательно используются операторами совместно. Точность базы данных CellID (CellMapper) настолько высока, что я смог зайти в Google StreetView и увидеть настоящие вышки. Я ожидал увидеть огромные монолиты с большими антенными решетками для каждого оператора, но в большинстве случаев это выглядело так, как будто там была всего одна антенна.
- Антенны eNB можно найти на многих вещах, помимо мачт[2]. Некоторые из этих мест это церкви[3], электрические опоры[4] и даже коммерческие здания.
- Как только вы привыкнете их искать, эти некогда невидимые вышки сотовой связи станет невозможно игнорировать.
- LTE-радио UE способно прыгать с ячеек туда и обратно. Несколько раз в течение минуты, по-видимому, является обычным явлением в городе, чтобы смягчить препятствие строительству.
- Сопряжение башен (он же кемпинг) выглядит детерминированным. На двух предыдущих картах использование башни в общей части поездки выглядит одинаково. Выбор происходит в соответствии с конечным автоматом, настроенным каждой ячейкой через широковещательные сообщения SIB. Переход состояния происходит на основе множества факторов, таких как порог мощности сигнала предыдущей соты или порог мощности сигнала следующей соты.
- Во время «долгого» (10 миль) вождения я увидел, что LAC (код зоны местоположения) часть идентификатора CellID осталась прежней. Согласно спецификациям LTE, вышки сотовой связи не должны выполнять передачу обслуживания UE, когда телефон остается в LAC. Телефон начинает располагаться на следующей башне, оставаясь в режиме RCC_IDLE без передачи данных. Это не только экономит батарею, это также означает, что операторы действительно не знают, где находится телефон, пока он остается в том же LAC (хотя точность геолокации на основе сотовой связи оспаривается еще со времен GSM [5]).
- Кажется, что каждая башня использует три антенны 120°. Это довольно очевидно, когда кружишь вокруг одной.
Обход башни показывает радиус 120 ° каждой ячейки.
Глубже в кроликовую нору
Рисовать карты было весело. Это заставило меня захотеть узнать больше об этой области. Я обнаружил, что она не только глубокая, но и довольно широкая. Даже составление минимальной таблицы для ее обобщения потребовало значительного количества исследований аббревиатур.
Эзотерический мир
Начиная с 1998 года с 2G (GSM), все технологические стеки были стандартизированы и задокументированы 3GPP. Эти спецификации охватывают более сотни документов. Их понимание кажется достижением всей жизни.
Нет стека LTE с открытым исходным кодом, на котором можно было бы поучиться[6], и даже если бы он был, излучение в диапазонах сотовых телефонов строго регулируется, чтобы гарантировать, что частоты не будут загрязнены глючными модемами.
Немногочисленные книги из этой области очень дорогие. Мое «подлинное окно интереса» подпитывалось этими тремя.
- Введение в LTE от Кристофера Кокса.
- LTE Advanced Сасана Ахмади.
- Долгосрочная эволюция в пулях, 2-е издание Криса Джонсона.
Наконец, есть приложения, которые позволяют заглянуть под капот, чтобы показать состояние модема и сообщения. Я решил не использовать их, так как они не только дороги, но и требуют рутирования телефона.