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

Аватар пользователя 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 лет 4 месяца)

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

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

Сам дурак )))

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

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

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

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

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

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

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

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

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

 

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

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

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

 

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

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

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

Понятно :) 

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

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

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

Аватар пользователя pvz
pvz(9 лет 2 дня)

О це дiло!smile116.gif

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 

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

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

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

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

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

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

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

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

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

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

Первое : Предлагаемая сеть одновременно является и коммутацией каналов и коммутацией пакетов (поверх коммутации каналов). В следующих "записях" я раскрою эту особенность. Чисто синхронные каналы не могут на 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(8 лет 10 месяцев)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 

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

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

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

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

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

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

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

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

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

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

 

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

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

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

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

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

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


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

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

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

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

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

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

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

 

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

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