[О блоге]
[наверх]
[пред]
[2020-12-15 23:41:49+03:00]
[bdd304a51771bf6dfabdbf31d748877112178406]
Темы: [hard][time]
SONET нравится
https://computer.rip/2020-10-02%20so%20net.html
https://en.wikipedia.org/wiki/SONET
Хотел было написать какой SONET/SDH милый (so net):
81c7c6557af89e79e480b21f12a4ea97c01679cb, но это не по английски.
Только спустя несколько дней после прочтения статьи с computer.rip, до
меня дошло почему SONET так устроен и как это красиво! По сути во всех
статьях всё одно и то же написано что и тут, но иногда нужно немного
другими словами преподнести и оно раскроет тебе глаза. Уже давным давно
в мире телекоммуникаций параллельно рулили два мира: телефонистов и
компьютерщиков. Изначально последним конечно приходилось жить в мире
телефонов и их сетей, но сейчас победили компьютерщики и в LTE и 5G
используются и IPv6 несущие голос (а не как в GSM и прочих сетях: каналы
заточенные под голос передают, как уж получится, данные) и HTTP/2 вместо
SCTP придуманного телефонистами. Поэтому и SONET уже можно отнести к
истории. Но своим компьютерным умом я не мог сразу понять почему он так
устроен.
Цифровые АТС, само собой, передают звук оцифрованным. А с ISDN и сразу
из дома он идёт уже в цифре. Для хорошей по чёткости передачи речи
достаточно акустического канала в 3-4 кГц, поэтому при оцифровке частоту
дискретизации достаточно иметь 8kHz. Один канал, с глубиной в 8бит:
64Kbps для хорошей несжатой передачи речи в одну сторону. ISDN поэтому
имеет два 64Kbps канала для двусторонней связи. Сжатие не применяют в
нём, ибо усложняет железо, а значит и цену повышает.
Эти 64Kbps каналы затем мультиплексируются и передаются по всяким E1 (T1
в паре стран), которые, в свою очередь, тоже мультиплексируются,
агрегируются и передаются уже дальше вплоть до оптоволокна. Передача
данных в E1 идёт кадрами, длительностью 125мкс (те самые 8000kHz), где
находится по одному байту от/для каждого из 32-х 64Kbps каналов. Пара
каналов используется для синхронизации и управления. Очень просто,
значит и дёшево. Но, в отличии от компьютеров, тут реально льются потоки
ото всех каналов каждые 125мкс. Никаких эти заголовков, или
произвольного времени возможности передачи пакета, как в компьютерных
сетях.
А дальше это суётся в SONET. В нём тоже передача идёт кадрами каждые
125мкс. Всегда передаётся, чётко и жёстко кадр всегда будет передан. Но,
в отличии от компьютерных сетей, кадр передаётся не в виде заголовка,
после которого идут данные, а он буквально параллельно с данными идёт.
Кадр SONET поэтому удобно представлять в виде таблицы, где сколько-то
столбцов каждой строки передают данные заголовка, а остальные столбцы
несут сами данные. Часть заголовка, конечно же, содержит биты для
синхронизации, поэтому зная что каждые 125мкс мы должны видеть одну и ту
же фиксированную последовательность, мы можем ссинхронизироваться.
Зачем так? Полезная нагрузка, весь этот поток байт, перемешенный с
байтами заголовка, делится на virtual circuit-ы (VC). И заголовок несёт
информацию о них. Если у нас имеются данные для передачи, при этом мы
уже прямо сию микросекундно передаём кадр (а мы всегда их передаём,
постоянно, пускай и "пустышки" без полезной нагрузки), то мы на лету
может вставить в следующие строки кадра, в столбцы заголовка, данные о
нашем VC и передавать его. То есть, кадр буквально формируется на лету
(ведь всё же 125мкс это довольно продолжительное время!) и заголовок в
нём формируется на лету, как и данные засовываемые.
Если бы это был компьютерный кадр, то пришлось бы в буфер в памяти
накапливать данные, после этого формировать заголовок и только после
этого отправлять. Пока отправляется текущий кадр, то ещё нужно иметь
память для формирования параллельно нового. Новые приходящие данные
будут отправлены только с следующим кадром. SONET и дешевле (за счёт
отсутствия буферов) и задержки от ожидания передачи кадра нет.
Но, чтобы всё работало хорошо, тикало как часы, каждый из 8000kHz, нужно
чтобы все устройства хорошо были синхронизированы по времени. Поэтому в
SONET используются атомные часы, GPS-приёмники и подобное. С одной
стороны конечно геморрой, а с другой хороший QoS и меньшая цена
оборудования из-за ненужности буферизации кадров.
Но это (для меня) не самое интересное было и открывающее глаза. У нас
идёт оптоволоконный провод от АТС до какого-то дома. В нём много
телефонов. Так как оптоволокно очень информационно ёмкое, то от этого
дома и дальше будет идти волокно до следующего на улице. В одном кабеле
от АТС будет идти много сотен каналов (VC) несущих оцифрованный звук до
поднятых телефонных аппаратов. В дом заходит SONET кабель с кучей этих
каналов внутри, но только лишь небольшая часть из них "интересна" этому
дому, только некоторые из них предназначены для аппаратов в нём. И тут
самая красивая часть SONET: add-drop multiplexer (ADM), в который входит
кабель. Интересующие для него каналы внутри кадра(ов) являются по сути
входящим трафиком, который он копирует на внутренние E1/ISDN/whatever
каналы. Дальше передавать эти VC внутри кадра не имеет смысла, так как
больше они никому не интересны. Получается, что внутри кадра на выходе
имеются слоты вакантные. Но раз речь про телефонную связь, то она
дуплексная и симметричная -- нужен исходящий канал симметричной ёмкости.
И вакантные места исходящего кадра как-раз заполняются исходящим
трафиком с устройств этого дома. Входящие кадры, некоторые слоты в них,
немного изменяются на этом ADM, в основном на лету копируясь, даже не в
буфер, а сразу же в оптический канал в формируемый кадр (SONET --
поэтому и называется синхронной сетью). И так каждый дом, на пути
следования этого единственного кабеля, имеет ADM который "забирает"
некоторые слоты каналов и добавляет свои исходящие.
Если этот кабель замкнуть кольцом на этой же самой АТС, то она по сути
на вход получит кадры с агрегированным исходящим трафиком всех домов. По
моему очень красиво с инженерной точки зрения! И высочайший QoS и
стабильность. Чтобы не ждать пока исходящий трафик дойдёт через все
hop-ы через всё кольцо до АТС снова, можно бросить ещё одно волокно, но
с трафиком в противоположную сторону. Тогда кол-во hop-ов до и от
каждого дома будут симметричны, как и задержки для каждой стороны
трафика. А если одно из колец "порвётся", то оно автоматом просто
деградирует до первого варианта с полным проходом кольца для ответного
трафика.
Все компоненты (дискретизация звука, кадры E1/T1, кадры SONET) живут по
одному таймингу, симметричные, полнодуплексные, не требуют буферизации
(E1 буквально байты каждого канала отправляет в каждом кадре). Лучшее
качество в обслуживании для телефонных разговоров (как мне кажется, в
теории и, судя по статьям, на практике) и достаточно низкая цена для
перехода на всё это ещё уже в 80-е. Но со временем всё понижающаяся цена
компьютерных систем, их информационная ёмкость и гибкость конечно
сделали своё дело и убили телефонные технологии. И для компьютеров SONET
уже не очень, ибо, как минимум, на часто в Интернете трафик симметричный
в обе стороны и в нём просто навсего сложнее утилизировать в полной мере
ёмкость канала. А объёмы чисто компьютерных данных куда сильнее растут
чем телефонных разговоров.
Мне SONET ещё приятен тем, что он точь-в-точь похож на идею
store-and-forward NNCP сети где одну флешку передают по кругу по рукам,
где каждый забирает пакеты предназначенные для него (остальные он всё
равно дешифровать не сможет) и записывает свои исходящие для других
(собственно, первая команда в NNCP только на это и рассчитывалась --
никакой поддержки сети изначально даже не планировалось). Хотя и тут
идея, само собой, не нова, ибо Token Ring по кругу передавал токен. Но
SONET не обязан быть в кольце -- для него это одна из опций.
[оставить комментарий]
- комментарий 0:
From: kmeaw
Date: 2020-12-15 23:33:41Z
А у нас победили "компьютерщики". От головного устройства (на АТС или
где-нибудь поближе к абонентам, если их сильно много) тянется
оптоволоконный кабель, на котором стоят пассивные оптические делители,
которые превращают один мощный поток света в несколько (обычно 128, 64,
32 или 4) почти пропорционально меньшей мощности. По такому дереву (без
активного оборудования) сеть разносится по домам, подъездам и квартирам.
В квартире стоит абонентский терминал, который совмещает в себе
оптический интерфейс, телефонный интерфейс (FXS), SIP-клиент, роутер,
свитч и Wi-Fi точку доступа.
Головное устройство занимается выделением таймслотов, в которые
абонентские устройства могут передавать данные (со скоростью 1.24Gbps).
При передаче данных используется довольно сложный стек протоколов (вроде
бы их там по крайней мере четыре), где каждый добавляет свой заголовок.
В момент начала работы, абонентский терминал договаривается с головным
устройством об используемых таймслотах, затем происходит регистрация
абонентского устройства (обычно включающая в себя аутентификацию с
фиксированным паролем), после чего оба участника вырабатывают общий
мастер-ключ, из которого получается пять других ключей, используемых
разными протоколами этого стека. С этого момента почти весь трафик будет
передаваться в зашифрованном виде, а управляющие команды от провайдера
будут аутентифицироваться.
Один из этих протоколов реализует канальный уровень, через который можно
передавать несколько потоков. Один из этих потоков используется для
получения конфигурации (XML на десятки килобайт), которая содержит
настройки шейпера, mapping этих потоков на эмулированный ethernet с
VLAN и адрес сервера во внутренней сети провайдера, с которого нужно
скачивать обновления прошивки. В этом же конфиге можно попросить
абонентское устройство предоставить свои счётчики в эту сеть через SNMP
и отправлять логи на удалённый syslog-сервер. Ещё в конфиге может быть
инструкция, перенастраивающая пользователю Wi-Fi точку доступа.
На одном из этих VLAN поднимается внутренняя IPv4-сеть, через которую
работает SIP-клиент, задачей которого является эмуляция медной
телефонной линии через телефонный интерфейс. Он гудит в трубку
диалтоном, интерпретирует вводимые с телефонного аппарата цифры (как в
импульсном, так и в тональном режиме), некоторые модели даже умеют
выдавать посылки для АОН из соответствующих SIP-заголовков.
А через другой VLAN работает интернет. Некоторые абонентские терминалы
умеют делать bridge со свитчом, если конфигурация от провайдера
позволяет им это сделать. Но в большинстве случаев абонентский терминал
становится ещё и роутером с NAT. Почти все модели умеют IPv6, и он даже
работает, но этого официально никто не обещает.
Получается, что пользователя вынуждают установить у себя устройство,
которое подключается к его домашней сети, полностью (вплоть до
перепрошивки) контролируется провайдером через внутреннюю сеть, которая
не маршрутизируется в сторону пользователя (он даже не узнает о её
существовании, если не залезет внутрь этого устройства). Теоретически
ничто не мешает провайдеру попадать снаружи в LAN конечного
пользователя из этой внутренней сети. Пользоавтелю позволяется лишь
менять настройки точки доступа, DHCP-сервера и настраивать port
forwarding (в случае покупки "белого" IPv4; забавно, что в этом случае
провайдер специально ломает IPv6). SIP VLAN тоже не маршрутизируется,
поэтому потушить клиента в этом терминале и поднять его на своей
инфраструктуре без вмешательства в софт терминала не получится.
Если пользователь отказывается установить у себя такое устройство, то
его медную телефонную линию обрезают (на крыше или в подвале) и ставят
его (или возможно какой-то более простой его аналог) всё равно, подключая
линию к телефонному интерфейсу.
- комментарий 1:
From: Sergey Matveev
Date: 2020-12-16 07:20:28Z
*** kmeaw [2020-12-16 02:27]:
>А у нас победили "компьютерщики".
Да как и везде в мире. "Телефонные" технологии ещё конечно много где
живы, но всё равно замещаются.
Вот всё что вы описали (GPON же?) лично мне хорошо знакомо и понятно --
ибо компьютерное :-)
>Получается, что пользователя вынуждают установить у себя устройство,
>которое подключается к его домашней сети, полностью (вплоть до
>перепрошивки) контролируется провайдером через внутреннюю сеть
И про это наслышан и офигеваю от того, что по сути абоненту не дают
Интернета (впрочем, я и просто заNATованный "Интернет" не считаю
полноценным доступом). Не дают возможности *самостоятельно* работать с
статическими выданными IPv4/IPv6 адресами.
>Если пользователь отказывается установить у себя такое устройство, то
>его медную телефонную линию обрезают (на крыше или в подвале) и ставят
>его (или возможно какой-то более простой его аналог) всё равно, подключая
>линию к телефонному интерфейсу.
Причём ещё ведь и чёрт его знает какая начинка у этого устройства. Ведь
и прослушку/SDR-ы там могут организовать. Благо что можно отказаться. А
то со стороны я думаю что в Москве чистейший 1984: в котором без
вопросов насильно ставили телекраны.