Синхронная Символьная Иерархия Принципы формирования виртуальных каналов (разделение единого физического канала на множество виртуальных)

Аватар пользователя Rutel

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

© Балыбердин Андрей Леонидович 2019 Rutel@Mail.ru

Синхронная Символьная Иерархия

Принципы формирования виртуальных каналов

(разделение единого физического канала на множество виртуальных)

Новосибирск, 2022 г.

 

Введение:

Обязательным атрибутом современной сети, является разделение физических линий связи на много отдельных виртуальных каналов. Каналы могут быть и совсем виртуальными, как в случае с пакетной коммутацией так и прописаны в формате передаваемых конструкций (PDH, SHD и тд). Поскольку плезиохронные каналы появились во времена голосовой телефонии и других потребителей не было, виртуальные каналы имели одинаковую скорость 64КБит\сек. Для современных сетей требуются каналы с различной скоростью и различными свойствами.

В статье «ССИ_Синхронный поток_Эффект проскальзывания (1)» показан принцип формирования базового потока символов, теперь будет описан принцип его разделения на отдельные плезиохронные потоки с произвольной скоростью передачи символов.

Требования :

Сумма скоростей виртуальных каналов не должна быть больше скорости физического канала. Время коммутации не должно быть больше единиц периодов передачи символов в виртуальном канале и стремиться к одному периоду передачи в конкретном виртуальном канале (Чем медленнее виртуальный канал, тем больше времени его данные находятся в FIFO коммутатора)

Ограничение на время коммутации существенно ограничивает варианты построения коммутатора. Самый простой вариант это массив модулей много-портового FIFO (3-5 символов), число портов чтения (записи) равно числу внешних интерфейсов коммутатора. Каждое FIFO соединяет вход коммутатора с выходом, какой вход с каким выходом определяется в момент создания виртуального канала. Число модулей FIFO ограничивает (равно), числу одновременных виртуальных каналов создаваемых коммутатором.

Модули приемника (передатчика) должны выдавать на адресные входы коммутатора номер FIFO к которому происходит обращение. Для примера, зададим точность установки скорости передачи виртуального канала в один символ в секунду при скорости физического канала 100G и размере символа в 100 бит потребуется 1Е9 тайм-слотов. Максимальное число виртуальных каналов ограничивается числом FIFO модулей, для современных техпроцессов это 100К-1М каналов. Формирование последовательности опроса FIFO производится с учетом скорости передачи в каждом виртуальном канале. Необходимо гарантировать что FIFO размером 3-5 символов не переполнится. При этом не снижать КПД использования физического канала больше чем на единицы процентов (допускается использование для пользовательских данных до 95 % пропускной способности физического канала на постоянной основе).

Думаю алгоритмов раскладки достаточно много, лично я нашел два. Первый больше подходит для пояснения принципа раскладки, но сильно неудобен для реализации. Второй сильно оптимальнее для практической реализации.

Мультиплексирование (разделение) канала связи (1)

(Алгоритм симметричен, одинаков для приемника и передатчика)

1. Сортируем создаваемые каналы по убыванию скорости передачи.

2. Для каждого канала создаем счетчик (регулирует скорость передачи) и назначаем FIFO где хранятся передаваемые символы.

3. Каждый такт синхронизации в каждый счетчик прибавляем константу пропорциональную скорости передачи, Константа = V (требуемая) / V (физического потока).

4. Каждый такт проверяем счетчики, в очередности убывания скоростей привязанных к ним каналов, на переполнение (значение больше единицы), пока не найдем первый счетчик содержащий значение больше единицы.

5. Из найденного счетчика вычитаем единицу, а в суммарный поток добавляем один символ из буфера передаваемых символов (создан в связке со счетчиком).

Данный алгоритм проверен на программной модели, максимальное расстояние между соседними символами в пределах виртуального канала составляет 2.3 периода передачи символа в пределах данного виртуального канала.

Мультиплексирование (разделение) канала связи (2)

(Алгоритм симметричен, одинаков для приемника и передатчика)

1. Создаем по одному счетчику для каждого приемника и передатчика физического канала (примерно как в «ССИ_Синхронный поток_Эффект проскальзывания (1)»), с помощью служебных символов синхронизируем их относительно потока символов в данном физическом канале. Для выбранного примера счетчик от 0 до 1М-1.

2. При обращении к коммутатору преобразовываем содержимое счетчика в адрес (номер) FIFO.

Алгоритм преобразования — Счетчик <:> Адрес FIFO:

1. Диапазон значений в 1М, по сути является номерами тайм-слотов в передаваемой периодической структуре. Остается только распределить эти тайм-слоты максимально равномерно и пропорционально скорости каждого виртуального канала.

2. Каждому адресу FIFO соответствует несколько значений счетчика. Ноль если канал не создан и единица если канал имеет скорость один символ в секунду.

3. Представим весь диапазон значений счетчика как некоторое адресное пространство и присвоим каждому каналу непрерывный диапазон значений равный символьной скорости виртуального канала. Выглядит как выделение памяти в современных вычислительных системах.

4. Каждый модуль FIFO откликается на любое значение в пределах этого диапазона, выдавая или записывая символ.

5. Просто подавать счетчик на адресные входы FIFO нельзя, данные будут передаваться непрерывными последовательностями раз в секунду. Для равномерного распределения опросов FIFO нужно «перевернуть» значение счетчика (поменять местами старшие разряды с младшими).

6. FIFO также должно сравнивать этот «перевернутый» счетчик с перевернутым диапазоном значений (или повторно перевернуть адрес).

Второй алгоритм распределения тайм-слотов гораздо эффективнее в реализации чем первый и соответствует всем требованиям ССИ, но не был проверен на программной или аппаратной модели.

Темы для НИР

1. Проверить равномерность получаемых виртуальных потоков.

2. Практически измерить максимальное число символов в FIFO, для разного числа виртуальных каналов и различных вариантов скоростей.

3. Проверить зависимость неравномерности символьной скорости от последовательности (места расположения) виртуальных каналов в пространстве комбинаций счетчика.

4. Проверить работу алгоритма, когда число комбинаций счетчика не равно степени двойки.

Авторство: 
Авторская работа / переводика
Комментарий автора: 

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

© Балыбердин Андрей Леонидович 2019 Rutel@Mail.ru

Синхронная Символьная Иерархия

Принципы формирования виртуальных каналов

(разделение единого физического канала на множество виртуальных)

Комментарии

Аватар пользователя Carcass
Carcass(11 лет 10 месяцев)

дядя, вы дурак? 

Аватар пользователя Rutel
Rutel(9 лет 1 месяц)

Сам дурак )))

Какой вопрос такой ответ.

Аватар пользователя Tr2xolod
Tr2xolod(2 года 8 месяцев)

Интересно.. У меня статью приняли в ваковский журнал, но и в голову не придёт ее выкладывать на ресурсе посвящённом политике и экономике. 

Зачем вы это здесь изложили? 

Аватар пользователя Rutel
Rutel(9 лет 1 месяц)

В нашей стране есть проблема, которая и политическая и экономическая одновременно :

У нас умерли науки посвященные исследованиям в областях  телекоммуникаций и вычислительным архитектурам.

За 50 лет все импортозаместилось (заместилось импортом), писать банально некуда.

Для научных журналов нужны рецензенты, а их нет.

 

Вот я и решил записывать их в свой блог.

Когда напишу все, может кто заинтересуется и реализует и если я не ошибаюсь, то уничтожит большую часть населения планеты.

Шучу конечно, но следует заметить что законы робототехники это просто выдумка писателей .)))

 

Вот Вам высказывание от декана факультета СибГУТИ :

Письмо и распечатка получены. Могу уверенно ответить, что в открытом доступе о научных школах указанного направления информации нет. Можно попробовать обратиться в компанию Т8, где работают известные специалисты по современным телекоммуникациям из МГУ, МГТУ им. Баумана, ФизТеха. Они ближе всего к разработкам такого типа и их практическому внедрению. Работу по этой тематике рекомендую продолжить. При наличии патентов и публикаций в научных изданиях из списка ВАК и Scopus может потянуть на учёную степень.

Аватар пользователя Tr2xolod
Tr2xolod(2 года 8 месяцев)

Понятно :) 

Надеюсь, прорветесь

Аватар пользователя qdsspb
qdsspb(12 лет 4 месяца)

Ждём ВладиславаЛ. Подходят ли сии алгоритмы для стаи дронов. И есть ли уже работающие аналоги за 25гр. Золота. 

Аватар пользователя pvz
pvz(9 лет 5 месяцев)

О це дiло!smile116.gif

Аватар пользователя Rutel
Rutel(9 лет 1 месяц)

Самая первая статья https://aftershock.news/?q=node/838095, не вызвала неприятия.

Жить наверное все хотят, остальные это последовательность шагов для решения этой задачи.

Аватар пользователя DjSens
DjSens(6 лет 3 месяца)

Зачем изобретать велосипед ?   У меня одновременно на компе и торренты качаются и ютуб показывает и сайты открываются, значит всё нормально с потоками цифроданных.   Главное правило программиста "работает - не трогай"

Аватар пользователя Rutel
Rutel(9 лет 1 месяц)

Этот "велосипед" в первую очередь предназначен для суперкомпьютеров и коммутаторов верхнего уровня, систем повышенной надежности (космос, авиация, энергетика и тд где требуется практически абсолютная надежность).

По суперкомпьютерам это минимальные задержки при скоростях в сотни террабит и триллионах устанавливаемых соединений в секунду.

Для пользователя плюсом будет никогда не пропадающая и не заикающаяся госовая и видео связь. 

По поводу сайтов, незнаю как Вы, а меня раздражает все что открывается за время большее чем "щелчок мыши".

Да и торренты скачивать - как то не очень - Щелкнул кнопкой и все тут )))

Аватар пользователя DjSens
DjSens(6 лет 3 месяца)

Сайты долго открываются потому что html - это сложная система костылей которую наваротили за 30 лет.   И браузер должен обрабатывать каждый костыль.   Подробно об этом писали на хабре но потом автора забанили и статью его там забанили.  Но есть копия тут - https://m.vk.com/@scienceandlive-kto-pohoronit-sovremennyi-veb

Аватар пользователя Rutel
Rutel(9 лет 1 месяц)

Хабр странный сайт: вроде программисты электроники пишут статьи, а модерацию (политику) определяют филологи.

И эти самые филологи стараются минусить всех, кто указывает на проблемы в существующем порядке проблем и предлагает новые решения.

Главная претензия (в комментах) : У Вас не литературный слог, разбиение на абзацы и форматирование.

 

ГраММАтнАсть это безусловно нужно, но еще в СССР знали что на двух стульях не усидеть и при приеме в технические вузы русский язых учитывался как плюс (5-3 в литературном вузе) или (2 и меньше). Я бы не поступил в НЭТИ если бы учитывали именно оценку (5 математика 5 физика и 3 за сочинение).

Сочинение на тему "Инженеры озоновый слой нашего общества" - на первой странице привел параллели между озоном и инженером (первый защищает от вредных излучений, второй от безграмотности в технических решениях) дальше описал принципы получения озона (там был минимум 6 листов). Допустил примерно 6 ошибок на 6 листов и получил тройку. В этот год поступили только те кто набрал высший бал на всех экзаменах, ну кроме различных "квот".

Аватар пользователя vitalium
vitalium(9 лет 3 месяца)

Не понял сакрального смысла возвращения от коммутации пакетов к коммутации каналов. Да ещё и через... кхм... FIFO. Давно есть протоколы ограничивающие ширину полосы пропускания для каждого "виртуального канала". А так же есть протоколы динамически изменяющие ширину полосы пропускания в зависимости от загрузки в "виртуальных каналах".

Зачем это всё? Какую задачу предполагается решить?

Аватар пользователя DjSens
DjSens(6 лет 3 месяца)

Автор изобрёл велосипед....   лучше изобретать что-то новое

Аватар пользователя Rutel
Rutel(9 лет 1 месяц)

ответил чуть ниже

Аватар пользователя Rutel
Rutel(9 лет 1 месяц)

Первое : Предлагаемая сеть одновременно является и коммутацией каналов и коммутацией пакетов (поверх коммутации каналов). В следующих "записях" я раскрою эту особенность. Чисто синхронные каналы не могут на 100% использовать все пропускную способность, вот для этого и нужен асинхронный трафик.

FIFO : Все синхронные каналы имеют в своем составе фифо - без него они просто не работают, у разных коммутаторов физически разные генераторы и алгоритмы противодействующие эффекту проскальзывания без фифо не работают. В предложенной мной сети FIFO минимально (может быть 3 символа) и практически всегда содержит один символЮ фактически регистр (по задержкам).

IP протоколы изменяющие ширину полосы, всяческие ограничители входящего трафика, низкоскоростные и очень плохо работают при уровнях загрузки физического канала больше 30% и начинают умирать на 50%, при 75% уходят в "штопор".

На всякий случай я не говорю о коммутаторах доступа, тут все пакеты от клиентов отправляются в один выходной канал с шириной практически равной сумме пользовательских (например 16 каналов по 1G и 10G в сторону основной сети).

По поводу, что все хорошо, почитайте про попытки внедрить SDN (software-defined networking), про сложности с которыми решаются тривиальные задачи компьютерной телефонии, передачи видео, резервирования каналов (гарантированный доступ без временных потерь связи - недавно занимался схемотехникой для такой приблуды). И все эти проблемы появляются при необходимости создать стабильный канал с полосой 64кбит в сети с каналами 100-1000 мегабит.

Представьте вы летите на самолете, все системы которого "общаются" по IP сети. Самолет немного тряхнуло на "яме", большинство приборов почувствовало это и поспешило уведомить систему пилотирования. Начнется "шторм", да аппаратура через секунду "прочихается", но этой секунды хватит что бы планер самолета мог получить непоправимые повреждения. Про невозможность гарантировать точное время доставки я и не говорю. Вот именно поэтому и IP до недавнего времени не сертифицировался в авиации космосе.

 

Если на уровне отдельного пользователя это не сильно чувствуется, тут трафик направлен только по одному машруту и редко достигает даже 10% от пропускной способности, то когда таких пользователей миллионы и направлений десятки и сотни тысяч....

 

А теперь самое главное, в суперкомпьютере все  требования можно возвести в квадрат: каналы заняты до значений близких к 100%, это при необходимости иметь времена доставки в субмикросекундном диапазоне и при практически полном отсутствии потерь. 

Производительность и степень распараллеливания вычислений квадратично записит от задержек коммутации.

Современные суперкомпьютерные грид системы это скорее пародия на настоящие суперкомпьютеры, так "вагон" калькуляторов объединенный в медленную сеть.

Показателем задержки сети считаю отношение скорости света (в кабеле) по прямой между приемником и передатчиком к времени доставки сообщения сетью. Для сети ССИ достижимы значения около 0,5.

Для МЦСТ считал примерный "бюджет" - 75 нс для куба со стороной 3 метра и числом процессоров 1000 (правда это совсем простые требования - по ощущения можно уложиться в один метр, но там нужны знания параметров конкретной системы охлаждения).

 

Косвенным показателем качества служит кабельная инфраструктура, когда для связи с "соседним процессором" перестанут прокладывать кабель к вынесенному не понять куда коммутатору и назад вот тогда действительно использованы все возможности сети.

 

Отличить суперкомпьютер от "сети калькуляторов" можно по плотности упаковки, а она ограничивается тепловыделением. В качестве критерия оценки компактности, а значит и задержек на коммутацию можно использовать уровень мощности на единицу объема суперкомпьютера.

 

 

 

Аватар пользователя vitalium
vitalium(9 лет 3 месяца)

Вас очень сложно понять. Вы, вроде бы пытаетесь обобщить, но валите всё в кучу. Например, IP-телефонию и суперкомпьютеры; аппаратную реализацию и программную.

Во-первых, на IP свет клином не сошёлся. Предлагаю начать с модели OSI или, если она не устраивает, нарисовать свою. А её уже наполнять протоколами, алгоритмами, реализациями...

Во-вторых, необходимость использования FIFO, как минимум, не очевидна. В синхронных сетях с мультиплексированием используется именно именно регистр. А пополняется он из очереди передатчика. Объединение в одном устройстве нескольких функций (коммутации, мультиплексирования, да ещё и хранения) считаю непродуктивным.

В-третьих, ваш пример с приборами в самолёте это не более чем ошибка проектирования - незачем каждому прибору оповещать о тряске. Как, мне кажется этот пример отголосок широковещательного шторма в сетях IP. Но и против подобных штормов есть приёмы.

А вообще конкретная реализация сети зависит от очень многого. И начинать нужно с топологии. Если, конечно, вы не впали в иллюзию, что каждого нужно соединить с каждым; исключительно по выделенному каналу; и каждый должен быть в курсе всего. В таком случае не хватит никакой пропускной способности.

Аватар пользователя Rutel
Rutel(9 лет 1 месяц)

"Вас очень сложно понять."

Я предлагаю универсальное решение для всех задач имеющик коммуникационную составляющую

"из очереди передатчика"

это же и есть FIFO, но тут самое главное это гарантия того что в FIFO небудет находиться более 3х символов (мой случай).

Это гарантирует отсутствие потерь из-за переполнения, минимальное время нахождения данных в коммутаторе , ну и экономия транзисторов.

"В-​третьих, ваш пример с приборами в самолёте"

Каждый прибор сообщает о чем то своем, предельных усилиях на приводах, не штатных изгибах, запредельных ускорениях и тд.

Зачем бороться с врожденной проблемой, давайте применим технологию не имеющую таких проблем ?

Для такой сети, никто никак не влияет на соседей и соответственно число состояний системы сыщественно падает.

Для IP сетей мы банально упремся в информационный взрыв - те учесть все варианты из-за взаимного влияния  банально нельзя.

"вы не впали в иллюзию"

Мне больше нравится соединениея с ближайними соседями, тогда можно построить много альтернативных путей без использования примитивного троирования проводов (сейчас именно так - провода это еще легко, а вот гидравлику троировать).

Аватар пользователя Rutel
Rutel(9 лет 1 месяц)

Для примера "Какую задачу решить" :

1. Увеличить в 3-4 раза пропускную способность сети без прокладки дополнительных кабельных линий или перехода на более сложные и высокоскоростные устройства.

2. Политическое : Прозрачно, пошагово, без отключения даже на секунду заменить импортную телекоммуникационную сеть на полностью нашу, да еще и лучшую по потребительским качествам. 

 

Вроде нормальные задачи для раздела телекоммуникаций ?

Аватар пользователя vitalium
vitalium(9 лет 3 месяца)

Политические задачи оставим политике. К тому же, от одного хотения всего хорошего они не решаются.

Ну а так-то, к коммутации пакетов и перешли ради увеличения пропускной способности сетей. И мне непонятно откуда возьмётся увеличение при обратном переходе. Да ещё в 3-4 раза. От накладных расходов никуда не деться, хотя их можно уменьшить, но они далеко не 66-75%. У вас же, в погоне за синхронностью, я пока вижу только стремление эти накладные расходы увеличить.

Аватар пользователя Rutel
Rutel(9 лет 1 месяц)

"Ну а так-​то, к коммутации пакетов и перешли ради увеличения пропускной способности сетей"

Ошибаетесь, у синхронных сетей есть проблема невозможности быстро изменять пропускную способность канала (быстро создавать и удалять виртуальные каналы). Соответственно выделенный канал не используется здесь и сейчас (да и каналов немного), но его ресурс нельзя отдать другому - это плохо для загрузки канала. В ССИ канал создается сразу когда есть свободный ресурс и есть потребность, примерно как в пакетной сети - начал передавать, канал монопольно твой пока не закончишь передавать пакет. В случае ССИ начал создавать виртуальный канал - вся неиспользуемая производительность (в том числе закрепленная за другими каналами, но не используемая в данный момент) твой пока не передал запрос на создание канала (заголовок пакета). После отправки запроса - из постоянно не распределенной производительности под новый канал выделяется запрошенное.

В каждый момент все что не используется, будет использовано для реализации негарантированных по скорости асинхронных передач данных или 

для каналов имеющих гарантированный минимум скорости, но допускающих ее временное и очень локальное повышение.

по факту всегда используется все 100% скорости  передачи символов (если есть потребители)

 

Можно сказать ССИ пакетная сеть для заголовков пакета и канальная  для тела пакета неограниченного размера

Аватар пользователя vitalium
vitalium(9 лет 3 месяца)

Нет, не ошибаюсь. Коммутация каналов реализуется путём резервирования полосы пропускания. Соответственно, когда данные не передаются канал простаивает. Из-за этого и перешли на коммутацию пакетов.

Вы, похоже, хотите одного из двух. Либо (1) сохраняя синхронность, играть шириной полосы пропускания - передавать полосу простаивающего канала другим. Это если в идеале. Но сразу вижу увеличение накладных расходов, на такие игры. И, раз изменение потока данных непредсказуемо, обязательно будут потери. Либо (2) для уменьшения накладных расходов накапливать данные в большой пакет, передавая его только после накопления. Но тогда ни о какой синхронности и коммутации каналов речи уже не идёт.

Кстати,  в IP сетях уже есть "гарантированный минимум скорости" и приоритизация трафика.

Аватар пользователя Rutel
Rutel(9 лет 1 месяц)


"Но сразу вижу увеличение накладименно неиспользуемойных расходов, на такие игры"

25% от не использованной полосы (именно не используемой).

Если в момент запроса очередного символа для передачи он отсутствует в FIFO коммутатора его подменит символ из канала допускающего асинхронную передачу.

Если интересно, прочитайте два последних файла и ответьте вы согласны:

1. Утверждаю, что алгоритм описываемый в "ССИ_Синхронный поток_Эффект проскальзывания (1)" позволит проходить любое число коммутаторов без риска потерь от переполнения.

2. Утверждаю, что алгоритм описываемый в "ССИ_Синхронный поток_Эффект проскальзывания (1)" гарантирует минимально возможное число слов в промежуточных FIFO.

3. Утверждаю, алгоритм описываемый в "ССИ_Синхронный поток_Фрагментация потока (2)" позволит разделять один физический канал на любое число подканалов с любой скоростью, так что бы сумма скоростей не превышала скорость исходного канала и при этом максимальное число одновременно сохраняемых в промежуточных FIFO символов не превысит трех.

 

Аватар пользователя Алексец
Алексец(7 лет 8 месяцев)

Однако, надо целиком осмыслить и без пива внутри, а то как то не понял