Семён сохраняет полезное_)
574 subscribers
216 photos
11 videos
3 files
325 links
Канал о электронике и связи.
Демократии тут нет и не будет! Бан раздается за любое "Ну очевидно, же"
Download Telegram
Так как в голосовании победил вариант про алгоритмы в LTE модемах начну цикл рассказов о работе LTE модема.
Для удобства я буду называть модем UE(User equipment). Да и так принято стандартом.
Начнем с рассмотрения ключевых шагов подключения к сети:
1.Инициализация модема (UE Power-On). Перед тем как модем начинает искать сеть он загружает PLMN список зон. PLMN - идентификатор зоны обслуживания мобильной сети, который представляет собой уникальный код, состоящий из MCC (Mobile Country Code) и MNC (Mobile Network Code).
Один абонент принадлежит только одной домашней PLMN — HPLMN (Home PLMN). Если абонент находится в роуминге (не внутрисетевом), то это уже будет гостевая PLMN — VPLMN (Visited PLMN).
Также сим-карта может содержать и запрещенные к работе PLMN (Forbidden PLMN list).
Далее считывается содержимое SIM карты. Из нее модем получает IMSI(Ваш индивидуальный номер абонента), ключи безопасности и параметры сети, также из SIM карты читается свойства режима радиодоступа(RAT). Он зовется - EF-RAT элемент — preferred RAT list). Алгоритм его работы прост:
1.UE получает список доступных RAT от SIM/прошивки/настроек.
2.Сканирует каждую RAT в порядке приоритета.
3.Проверяет доступность PLMN на каждом RAT.
4."Camps on" (становится на прослушку) самой приоритетной доступной RAT.
И да нюансов как будет выбираться RAT достаточно.
Модем выбирает режим радиодоступа при включении, основываясь на:
Настройках SIM (EF-RAT)
Аппаратной поддержке RAT
Последнем успешном подключении
Настройках предпочтений (заводские, пользовательские)
Приоритетах из 3GPP TS 23.122
Далее модем инициирует Cell Selection( 3GPP TS 36.304). Для него есть два режима:
1. Initial Cell Selection
Используется при первом включении или в новой сети.
UE сканирует весь диапазон LTE (DL EARFCN). На самом деле не весь, а лишь только поддерживаемые диапазоны. И знает он их из прошивки. Иногда они хранятся на сим-карте(Предпочтительные band’ы).
Ищет PSS/SSS → находит PCI. Про это мы поговорим в следующей статье подробнее.
Считывает MIB и SIB1/SIB2.(MIB — Master Information Block (общие параметры системы, SIB1 — содержит PLMN ID, таймеры, SIB2 — параметры доступа (PRACH, T300 и др.).
Вычисляет значение критерия уровень сигнала.
Если ячейка подходит (suitable) — UE "camps on" на ней.(«Camps on» — это когда UE остаётся «на прослушке» соты, не устанавливая соединение, но будучи готовым инициировать его.),

2.Используется если UE уже был подключён к этой сети ранее.
UE использует сохранённые данные о:
EARFCN
PCI
тайминге
Быстро восстанавливает подключение к предыдущей соте

Как UE решает, подходит ли сотa?
Ключевой критерий — "suitable cell", определённый в 36.304:
TS 36.304, п. 4.3:
“A cell is suitable if it is a cell on which the UE may camp, meeting criteria including: acceptable signal level, permitted PLMN, and not barred.”
И далее вычисляется по формуле где RSRP( реальный уровень сигнала). Q(минимальный сигнал, указанный в SIB1) и P(корректировка по мощности UE).
Srxlev=RSRP−Q rxlevmin−P compensation >0
Интересный момент что такое P.
Он же UE power compensation). используется при расчёте критериев cell selection и reselection в LTE, и регламентирован в:
3GPP TS 36.304, раздел 4.3 – Cell selection criteria.
учитывает ситуацию, когда UE не может передавать на максимальной мощности, допустимой в ячейке. Это важно, чтобы:
Не переоценить пригодность соты (ведь модем может «слышать» Базовую станцию, но сам не сможет до него "докричаться")
Корректно оценить расстояние/ослабление сигнала.
Без P, UE мог бы выбрать соту с хорошим приёмом, но не смог бы передать RACH*, если его передатчик слабее требований сети.
Это особенно критично для:
Маленьких IoT-устройств
UE с ограниченной мощностью (e.g., NB-IoT, Cat-M)
Пограничных сот

*RACH (Random Access Channel) — это канал доступа, по которому UE (модем, телефон) впервые "обращается" к базовой станции (eNodeB) в радиоинтерфейсе. Он используется:
При первом подключении к сети (после Cell Selection)
При восстановлении связи после потери сигнала
При handover’ах
При переходе из Idle в Connected (RRC_IDLE → RRC_CONNECTED).
5🔥5🐳1
Семён сохраняет полезное_)
Так как посты растут в размере. Мой друг и читатель Алексей посоветовал мне публиковать их в Telegraf. Первый пост здесь и он в продолжении темы про SIM карты - https://telegra.ph/SIM-karta-06-20 #sim_card #lte #gsm
Пришел вопрос, а есть разница между SIM и USIM.

SIM (Subscriber Identity Module) и USIM (Universal Subscriber Identity Module) - это карты идентификации абонента, но USIM является более продвинутой версией SIM, предназначенной для сетей 3G и выше (UMTS, LTE). Основные отличия заключаются в объеме памяти и поддерживаемых технологиях.
SIM-карта:
Используется в сетях GSM (2G).
Обладает меньшим объемом памяти по сравнению с USIM.
Обычно хранит ограниченное количество контактов (до 255).
Может содержать только номер телефона и имя для каждого контакта.
USIM-карта:
Предназначена для сетей UMTS (3G) и LTE (4G).
Имеет больший объем памяти, позволяющий хранить больше информации, включая дополнительные номера, email и другие данные для одного контакта.
Поддерживает более продвинутые функции безопасности и шифрования.
Может использоваться в сетях GSM, но не наоборот.
Вкратце: USIM - это эволюция SIM-карты, разработанная для работы в современных сетях мобильной связи с улучшенными возможностями и безопасностью.
🔥11
Forwarded from linkmeup
Настало время увлекательных историй.
Когда-то давно в далёком немецком Майнфлингене сумрачный тевтонский гений воткнул посреди поля длинноволновый передатчик с позывным DCF77. Вроде бы ничего такого, если бы в 1973 году эта сволочь не начала пикать каждую секунду на всю Европу. И пикает она не просто так, а на скорости 1 бит в секунду, обеспечивая синхронизацию всех часов в радиусе плюс-минус 2000 километров.
Желающие послушать могут настроиться на 77.5 кГц и, скорее всего, 50 кВт изначального сигнала до вас вполне себе доберутся.

https://ru.wikipedia.org/wiki/DCF77

А если на лице твоём сейчас изумление и непонимание, кому это надо в эпоху повсеместного интернета с NTP, то привет тебе передают множество автопроизводителей, наручные часы Casio, метеостанции, настенные часы, в которых стоит микроконтроллер за три копейки, городские уличные часы, и так далее, и тому подобное.
65 лет эта штука пикает в эфир, а когда 14 апреля 2014 из-за грозы она замолчала на час, множество часов в Европе потеряло сигнал точного времени и всем резко стало грустно. Настолько, что решили поставить дублирующий.

Возникает вопрос – а чего такого критичного в этом сигнале? Ответ достаточно смешной. Ведь если у тебя есть бесплатный синхросигнал, ты можешь вообще не запариваться на точность хода часов. Через это многие городские часы получили примерно такую логику работы: через пень-колоду тикаем от нуля до 58,5 секунды, замираем на месте и дальше идём, только получив нужный сигнал. Звучит как костыль, но на практике это решает важнейшую проблему синхронизации тысячи устройств между собой, чтобы они показывали одинаковое время. И речь не столько про часы, сколько про возможность привязывать к ним техпроцессы.

https://en.wikipedia.org/wiki/Swiss_railway_clock

Для желающих вникнуть в формат сигнала есть его описание с диаграммой:
https://www.ptb.de/cms/en/ptb/fachabteilungen/abt4/fb-44/ag-442/dissemination-of-legal-time/dcf77/dcf77-time-code.html

А вообще, таких систем по миру много. BPC, JJY40, JJY60, MSF, WWVB.

https://en.m.wikipedia.org/wiki/BPC_(time_signal)
👍13🔥1
Прошла неделя с последней публикации, а значит время нового поста. Увы из-за работы чаще не успеваю писать. Материал получился крайне сжатым, ибо тема крайне обширная и интересная. Если будет отклик, думаю рассказать о ней подробнее. А в следующей части я напишу о SIB и RACH и RRC.
https://telegra.ph/Sinhronizaciya-v-setyah-LTE-Ochen-kratko-07-03
#lte #pss_sss
🔥93👍1
Forwarded from linkmeup
Когда-то недавно на канале была новость про явление миру первой спецификации Ultra Ethernet, который буквально завтра всех спасет. Ну или должен всех спасти. Но целиком, конечно же, никто в редакции читать не стал, так что давайте обратим внимание на выжимку от более ответственных людей.
TL;DR Игрушка для больших ребят, которые спят и видят как бы езернет заборол инфинибэнд. Так что ты со своей сеточкой на десять камплюхтеров спи спокойно. Но лучше изучить целиком ибо матчасти достаточно много и расписано интересно.
https://medium.com/@tom_84912/a-mostly-unbiased-review-of-the-ultra-ethernet-specification-10d816227839
👍83
Forwarded from linkmeup
Очередное прекрасное найденное в сети. Сегодня передаём привет владельцам нетгиров, потому что зацените лайфхак уровня /b:
- К урлу админки дописываем /debug.htm
- Получаем более лучшую, скрытую админку с возможностью делать портам SPAN/pcap, менять настройка вифи и так далее.

https://github.com/scramblr/NETGEAR_ROUTER_HIDDEN_PAGES/blob/main/README.md
🔥5
Forwarded from likeabus channel (Sergey Bocharnikov)
NVIDIA на прошедшем Netdev 0x19 выступила с докладом, где исследовала проблему синхронизации времени внутри ДЦ.

Суть в том, что NTP их не устраивает по причине своей медлительности. Задержки в миллисекунды внутри распределенных инфраструктур, различных баз данных или, например, в недавно построенной Сфере в Лас Вегасе, по их словам непозволительная роскошь.

Пошли изучать, нашли 3 варианта:

1. PTP

Ну тут и говорить особо нечего, всем известный и широко используемый протокол внутри провайдеров для синхронизации времени. Умеет то, что не умеет NTP. Точность до наносекунд.

Всё бы хорошо, но часто бывает когда у эндпоинта несколько карточек, либо к одной карточке подвязано несколько эндпоинтов (докер, кубер и т.д.), то соответственно возникает большое количество клиентов PTP и приходится поддерживать stateful для каждого, а это проблема.
Поэтому был предложен следующий вариант 👇

2. Клиент-серверный IEEE 1588, он же CSPTP.

Собственно практически тот же самый PTP, только проще.

Стандарт вот, но там как обычно у ieee с доступом какие-то приколы, в общем если найдёте, кидайте в комментарии - https://standards.ieee.org/ieee/1588.1/11644/.


Реализаций немного и есть вот такие:

SPTP - вариант, который предложили инженеры FB, являющиеся соавторами данной презентации;

FlashPTP - автор работает в Meinberg, немецкая компания специализирующаяся на разработке и производстве оборудования для синхронизации времени;

NTP-over-PTP - драфт от инженеров Red Hat, который поддерживается теперь и в chrony - https://chrony-project.org/doc/4.6.1/chrony.conf.html#ptpport.

В целом, все три варианта в той или иной степени по всей видимости очень даже рабочие и если я правильно понял, то первый - SPTP - сейчас и является основным внутри ДЦ FB.


Исходя из доклада, данный метод имеет одну существенную проблему - это нагрузка при масштабировании. Да, она ниже чем у PTP, за счет отказа от stateful, но всё также требует общения с CPU при каждом взаимодействии. Поэтому инженеры пошли дальше и решили поискать какой-то альтернативный вариант, и тут уже нашлось вообще иное решение 👇

3. Hermóðr - новый подход.

Опирается на оценку времени через корреляцию с CPU таймером.

Немного оффтопа 🙂

Если что, слово Hermóðr, или Хермод, оказывается является именем скандинавского бога скорости, аналог греческого Hermes, или Гермес, прикольно то, что у них и имена очень даже совпадают. К слову об уникальности каждого пантеона 🙂


Документации к сожалению нет, только опираться на презентацию и доклад.

Сама суть данного метода, как я понял, заключается в том, что добавляется демон, который получает время из двух источников, один из которых PCIe device, а второй CPU clock. После этого он проводит некоторое вычисление и результат складывает в shared memory. Дальше отдельная библиотека, libhermod, идёт в эту область памяти и забирает последние данные, плюс тоже идёт в CPU clock, и на основе полученной информации экстраполирует точное время. Таким образом, вы обращаетесь к PCIe только один раз, а дальше время обновляется уже без этого взаимодействия, т.е. не требуется постоянного обращения в /dev/ptpX, что сильно ускоряет результат работы и позволяет добиться снижения задержек в 80-100 раз по сравнению с CSPTP.

В общем, пока что выглядит всё так, что этот метод действительно может стать основным для подобных задач.

Ссылки вот тут:
Презентация
Видео
8🔥1🤔1
Нашел сайт с проектами, по которым доступна вся необходимая документация (схемы, платы, файлы cad). Большинство проектов - вычислители/конвертеры на FPGA, RF карты и измерители. В основном встречаются платы в AD, иногда в Cadence и KiCad. Больше всего понравились проекты от CERN, как по оформлению так и по техническим решениям.
🔥9👍1
помните nanotron? Теперь у нас есть tinytpu.com

Проект по построению мини TPU(это такие специальные тензорные процессоры от гугла) где челы зареверсиженерили и вопсроизвели архитектуру и софт.


Внутри куча нюансов про низкоуровневый софт в которых я ничего не понимаю, но считаю что стоит ознакомится.
https://github.com/tiny-tpu-v2/tiny-tpu
4👍3🔥3