Русский
Русский
English
Статистика
Реклама

Синхронный интернет Синхронная символьная иерархия

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

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

Прошу, укого есть свои мысли, записать ихипосле прочтения статьи отразить вкомментариях.

Итак, пробуем еще раз бросить кости:

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

Современные технологии сбольшой долей вероятности несамыми эффективные (извсех теоретически возможных), нопри попытке найти другие варианты большинство приходит кмодификациям уже существующих или вообще немогут дать ответ.
Думаю, что такое положение дел обусловлено строением мозга испособом человеческого мышления. Если накартинке сослучайными линиями что тоувидеть, топри следующем взгляде накартинку этот образ будет найден практически сразу. Засчет инерции мышления скаждым следующим разом рассмотреть другой образ будет все труднее итруднее. Далее вдело вступает технический прогресс, аоночень похож нажелезнодорожный транспорт. Однажды свернув, практически невозможно повторить выбор, легче реализовать костыль решающий возникшую проблему.

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

Идеальная система связи описывается достаточно просто:

1. Возможность влюбой момент мгновенно установить соединение любого абонента слюбым абонентом.
2. Мгновенная ибезошибочная доставка сообщения отодного абонента кдругому.
3. Скорость канала связи вкаждый момент времени должна точно соответствовать возможностям источника предоставить, априемника принять данные.

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

Следующий (второй ) вопрос:
Интерфейс системы кфизическим каналам связи ипользователям системы.
Назаре становления телекоммуникационных систем восновном использовался битовый интерфейс. Внастоящее время вкачестве носителя информации выбирается символ, онвотличии отбитового интерфейса переносит больше одного бита данных иможет иметь дополнительное свойство тип.
Если рассматривать типы передаваемой информации, далее будем пользоваться понятием символ как носитель информации, топередаваемые символы можно разделить начетыре типа (группы):
1. Пользовательские данные.
2. Пользовательские управляющие символы.
3. Служебные данные.
4. Служебные управляющие символы.
Такой набор вариантов символов достаточно универсален при построении различных информационных конструкций. Служебные символы предназначаются для построения обращений ксистеме связи. Пользовательские символы для общения между пользователями. Наличие отдельных служебных символов несколько избыточно, нооправданно необходимостью интерфейса управления практически вовсех коммуникационных системах.

Минимальным объемом кодируемой символом информации является один бит (связь цифровая). Визначальной фиксации информационной емкости различных типов символов нет необходимости, даже вредно. Достаточно зафиксировать параметры связи сиспользованием минимального набора из4типов символов, авостальном приемник ипередатчик договариваются при установлении непосредственного соединения. Сфизической (электронной или программной ) точки зрения вмомент включения интерфейс ктелекоммуникационной системе выглядит как:
1. Сигнал наличия символа (1бит)
2. Тип символа (2бита)
3. Передаваемые данные (1бит, адалее всоответствии синформационной емкостью)
4. Сигнал синхронизации (для синхронной электроники).
Всовременных системах связи такого единства непредусмотрено, хотя для компьютерной связи аналогом можно считатьIP пакет иправила его формирования.

Третьим вопросом будет:
Распределение физического канала между пользователями.
Для реальных систем связи сдостаточно большим числом абонентов невыгодно строить соединения посхеме каждый скаждым иприходится реализовывать схему связи сиспользованием посредников. Посредники впроцессе исполнения функции ретрансляции вынуждены разделять соединяющие ихканалы между своими ичужими данными.
Вмомент рождения современных коммуникационных систем наиболее распространенными были следующие способы совместного использования канала связи:
1. Произвольный доступ (радиосвязь, селекторная связь).
2. Пакетная коммутация (телеграф).
3. Временное выделение фиксированной пропускной способности (телефония).
Ниодин изуказанных способов взначимой степени неудовлетворяет требованиям идеальной системы связи.
Лучше всего подходит временное выделение пропускной способности, ноесть проблемы сгибкостью попараметру скорости предоставляемого канала, времени создания канала иэффективности использования ресурсов физического канала.
Пакетная коммутация эффективна поутилизации ресурса, ноесть проблемы спостоянством скорости, последовательности канала ипотерям данных. Произвольный доступ ивообще возможен только для малого числа абонентов, при превышении которого (или интенсивности обмена) эффективность падает донеудовлетворительных величин.

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

Мультиплексирование (разделение) канала связи.
Для иллюстрации нового способа разделения физического канала насоставляющие, разделим единый канал начасти.
Поток Rв1/3, потокG в ипотокB в1/5, отпропускной способности исходного физического канала. Оставшуюся пропускную способность можно использовать для других нужд.
Накартинке показано как исходные потоки раскладываются всуммарный поток. Оранжевый поток R, Зеленый поток G, Синий потокB иЧерный свободная пропускная способность. (Символы суммарного потока забираются последовательно слевой стороны)

image

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

Общий принцип разделения достаточно прозрачен:
1. Сортируем создаваемые каналы поубыванию скорости передачи.
2. Для каждого канала создаем счетчик (регулирует скорость передачи) ибуфер передаваемых символов.
3. Каждый такт символьной синхронизации вкаждый счетчик прибавляем константу пропорциональную скорости передачи, константа = V(требуемая)/ V(физического потока).
4. Каждый такт проверяем счетчики, вочередности убывания скоростей привязанных кним каналов, напереполнение (значение больше единицы), пока ненайдем первый счетчик содержащий значение больше единицы.
5. Изнайденного счетчика вычитаем единицу, авсуммарный поток добавляем один символ избуфера передаваемых символов (создан всвязке сосчетчиком).

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

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

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

Ипоследний вопрос:
Управление коммуникационной средой.
Для современной компьютерной связи наиболее распространенным является набор протоколов TCP/IP. Данный протокол ориентирован напакетную коммутацию, для последовательного канала неявляется оптимальным. Учитывая первоначальное назначение новой системы связи (коммуникационная основа dataflow процессора будет описан вследующих статьях), наиболее оптимальным будет гибкий иуниверсальный язык ориентированный напоследовательные каналы связи или расширение уже существующего языка программирования. При создании языка сетевого управления следует руководствоваться парадигмой, вкоторой вычислительная система это объединение различных устройств всети цифровой связи.

Зачем нужен новый тип сети?
Самое первое это универсальность ипростота алгоритмов. Простота устройства высокоскоростных коммутаторов, нет фундаментальных ограничений ниначисло каналов нинаихскорость, позволит существенно улучшить характеристики многоядерных вычислительных систем (связь между ядрами имодулями).

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

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

Иеще, необходимо придумать название новой сети, атоприлипнет SkyNet ихарактер уAI будет вредным.

Алгоритм разделения (мультиплексирования) физического канала канала наотдельные виртуальные каналы:



1. Передача данных осуществляется квантами символами. Применение символов необходимо для обеспечения линейного кодирования, нормальной работы системы синхронизации, преобразования последовательных данных винформационные конструкции, увеличение помехоустойчивости канала итд. Используемые символы разделены начетыре группы: данные пользователя, управляющие символы пользователя, служебные данные ислужебные управляющие символы. Разделение набора символов данных наобычные ислужебные облегчает разделение пользовательского трафика итрафика сзапросами ксистеме. Также разделение данных наданные виртуальных каналов иданные служебного канала поразным наборам символов позволяет сильно поднять КПД использования первичного канала (без риска перегрузки канала). Размер символа (битовая информационная емкость) нефиксирована ипотенциально может быть любой. Конкретный размер символа выбирается для каждого соединения индивидуально.
2. Передаваемые данные находятся вбуфере, который выполняет функцию сглаживания отклонений отравномерной (синхронной) передачи. Служит для вставки иудаления символов пусто при приеме или попытке чтения изпустого буфера, также преобразует размеры символов приемника вразмер символов передатчика (они могут быть различными). Число физических буферов ограничивает число виртуальных каналов проходящих через коммутатор одновременно.
3. Виртуальные каналы добавляются всуммарный поток впорядке понижения затребованной скорости передачи. При такой последовательности сборки суммарного канала, получается минимальный размер промежуточных буферов вкоммутаторах. Каждому виртуальному каналу соответствует таймер, ккоторому каждый такт символьной синхронизации добавляется значение равное отношению скорости виртуального канала кскорости суммарного физического. Как только значение таймера становится больше единицы ивсе таймеры каналов сбольшей скоростью имеют значение меньше единицы, необходимо переместить символ избуфера этого виртуального канала всуммарный канал (или наоборот для приемника) ивычесть единицу иззначения таймера. Если все таймеры виртуальных каналов содержат значение меньше единицы, товканал помещается служебный символ пусто. Алгоритм проверен напрограммной модели, максимальное расстояние повремени между принимаемыми данными виртуального канала неболее 2.5 периода передачи виртуального канала. Для предотвращения переполнения ипотерь данных минимальный требуемый буфер должен иметь размер 3символа.
4. Символ пусто предназначен, для устранения зависимости структуры суммарного потока отнеравномерностей предоставления данных конкретными передатчиками иустранения влияния неравномерности скорости передачи физического канала. При создании канала связи необходимо запрашивать немного большую скорость, примерно на0.01% больше чем реально требуется, для реальных систем связи. Излишняя производительность необходима для коррекции ошибки скорости физического канала (неточность задающего генератора).
5. После создания (все виртуальные каналы добавлены) суммарного потока передатчик может заменить все встреченные символы пусто насимволы изнабора служебных данных. Наприемной стороне происходит обратная замена. Такая замена позволяет эффективнее использовать пропускную способность физического канала имаксимально оперативно реагировать назапросы ксети. Физический канал максимально эффективно используется для передачи данных, без риска переполнения ипотерь.
6. Если требуется создать виртуальный канал для передачи заранее известного ималого числа символов, томожно инесоздавать виртуальный канал (манипуляции сосписком итаймерами достаточно затратны). Втаком случае необходимо собрать все символы вединый пакет (используя только набор служебных символов) ипередавать такие пакеты сиспользованием незанятой (служебной) части физического канала. Главным требованием ктакому каналу будет размер, непревышающий размера буфера впромежуточных коммутаторах. При проектировании коммутатора это требование необходимо учесть или предоставить возможность соединять несколько соседних буферов водин.
7. Служебные символы (добавляемые передатчиком), образуют канал сзапросами ккоммуникационной системе. Данный канал существует всегда иименно изчасти его пропускной способности, происходит выделение пропускной способности создаваемого виртуального канала. Вмомент приема служебные символы отправляются вотдельный служебный поток, анаихместо помещаются символы пусто. Часть символов служебного потока обрабатывается приемником сразу (сервисы добавления иудаления виртуальных каналов итд), остальные помещаются вбуфер иобрабатываются управляющей коммутатором вычислительной системой васинхронном режиме.
8. Приемник производит раскладку принимаемых символов поиндивидуальным буферам виртуальных каналов сиспользованием такогоже как ипередатчик алгоритма. Раскладка произойдет правильно только втом случае если приемник ипередатчик содержат одинаковый список каналов изначения таймеров наприемной ипередающей сторонах синхронизированы относительно суммарной последовательности. Если после раскладки всуммарном канале остаются любые символы кроме пусто, тоэто означает рассинхронизацию или таймеров или списка каналов наприемной ипередающей стороне.

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

Алгоритм создания виртуального канала.



1. Вначальный момент времени между передатчиком иприемником существует только служебный поток (ранее созданные виртуальные каналы несчитаем). Впередатчике есть буфер вкотором накапливаются данные необходимые для создания нового виртуального канала.
2. Когда вбуфере появится объем данных достаточный для того чтобы создать виртуальный канал (данные онаправлении итребуемой скорости итд), необходимо сформировать иотправить (используя только служебные символы) вслужебный поток нужного физического канала пакет данных сзапросом насоздание нового виртуального канала. Вмомент передачи, апотом иприема (надругой стороне физического канала) пакета, его содержимое интерпретируется исначала создается новый сортированный список виртуальных каналов, авмомент появления символа активирующего создание нового виртуального канала загружает новый список каналов (фазы уже существующих каналов сохраняются) вмультиплексор (демультиплексор) суммарного канала. Таким образом достигается постоянная синхронность таймеров исписка каналов напринимающей ипередающей стороне.
3. После создания нового канала, начинается выборка данных избуфера ивставка всоответствующие слоты суммарного физического канала. Создание нового канала происходит без предварительного уведомления приемника, основываясь только насвободной пропускной способности локального физического канала.
4. Для закрытия виртуального канала нет необходимости пересылать пакет используя служебный канал, достаточно впередаваемые данные удаляемого канала поместить служебный символ удалить канал. Процедура удаления виртуального канала аналогична процедуре создания, инициируется служебным символом закрыть канал, считанным избуфера данных. Наприемной стороне будет получено уведомление озакрытии канала ввиде символа закрыть канал помещаемого вбуфер виртуального канала.
5. Для автоматического удаления (очистки), предотвращения утечек производительности физического канала необходимо встроить ваппаратуру буферов виртуальных каналов, счетчик числа переданных символов (любых) иподостижении некоторого значения (timeout) автоматически передать символ закрыть канал. Для продления времени жизни виртуального канала можно ввести символ сбросить счетчик, добавляемый вданные.
6. Если впроцессе создания виртуального канала выясняется что ондолжен коммутироваться нафизический канал сдефицитом свободной пропускной способности, скорости служебного канала нехватает для создания нового виртуального канала или нет свободных буферов или другой причиной, топакет сзапросом должен быть уничтожен. Правильнее сказать, перенаправлен намодуль заглушки, который примет все символы.
7. Отправка данных вникуда вцелом неудовлетворяет никого, апроверка доставки данных путем ожидания ответного сообщения очень неприятна из-за отсутствия гарантии ответа уже иотприемника. Для каналов смалым физическим расстоянием передачи (вметрах), выгоднее сразу создавать кольцевой канал иожидать заранее известное время (постоянство ипредсказуемость этого времени гарантирует алгоритм мультиплексирования).

Алгоритм работы коммутатора



1. Создание канала можно разбить надва этапа: администрирование (поиск маршрута, назначение скорости, разрешение доступа итд) инепосредственное создание виртуального канала (вмомент необходимости передачи данных). Первый этап выполняется сравнительно редко (сеть относительно статична) иэто возможно сделать заранее наэтапе запуска приложения. Второй этап требуется производить максимально быстро, именно этот этап определяет производительность сети передачи данных ипроизводительность всей распределенной вычислительной системы.
2. Клиент подключается ксети через устройство, аналогичное обычному коммутатору, отличительной особенностью которого является возможность доступа кбуферам данных аппаратурой самой вычислительной системы иихбольший объем (нуили кпамяти самой вычислительной системы). Как только принимаемые данные создаваемого виртуального канала записываются вбуфер коммутатора связанного свычислительной системой, включается механизм (аналогичный прерыванию вобычной вычислительной системе), определяющий тип вызываемой службы идля обслуживание данного буфера подключается соответствующее ПО. Вычислительная система представляет собой большое число различных исполнительных модулей, объединяемых сетью связи. Сеть связи может заменить собой все локальные шины иинтерфейсы отдоступа впамять доподключения клавиатуры
3. Маршрутизация всуществующих сетях спакетной коммутацией осуществляется наоснове адреса взаголовке пакета, таблиц маршрутов идругими правилами впромежуточных маршрутизаторах. Такой подход хорошо работает для относительно небольшого числа возможных вариантов маршрута ивозможности буферизации принимаемых данных отдельного пакета, требуется относительно много времени для определения номера порта, вкоторый необходимо направить пакет. Для высокоскоростных систем смалым временем существования виртуального канала, нехватит скорости доступа кпамяти таблиц коммутации. Предлагаю сразу прописывать маршрут взапросе, каждый коммутатор после создания канала убирает часть информации омаршруте. Размер адресной информации небудет слишком большим, число промежуточных коммутаторов относительно небольшое иесли накаждый коммутатор выделить 8бит (номер физического порта или тоннеля), тоаналог адреса IP6 позволит строить маршрут из16коммутаторов, аэто сопоставимо стипичным маршрутом вреальной сети. Для предлагаемого способа таблица коммутации превращается вномер буфера виртуального канала иможет храниться прямо вмультиплексоре (де-мультиплексоре).
4. Построение маршрута, как последовательности каналов, через которые должен быть построен виртуальный канал можно производить через высокоуровневоеПО маршрутизатора. Для построения цепочек физических каналов можно использовать аналог обычных поисковых систем или DNS изсовременных сетей, задаем параметры пункта назначения (любой набор параметров: IPадрес тоже обычный параметр) иполучаем результатом набор цепочек сальтернативными маршрутами. Относительная адресация обладает повышенной защитой отнесанкционированного доступа, есть полный контроль над маршрутом. Для работы сети, нет необходимости вобязательном наличии (работе) высокоуровневых компонент, маршрут может быть задан заранее (для сетей спостоянной системой связи, как пример разводка напечатной плате соединения неизменяются).
5. Непосредственное управление трафиком, выделение (планирование) полосы пропускания идрневозможно из-за большой скорости создания канала ипотенциально большого размера сети. Для балансирования загрузки каналов необходимо использовать опосредованные методы, такие как планирование различных маршрутов, назначение скоростей передачи сучетом накапливаемой статистики использования виртуального канала. Скорости виртуальных каналов могут изменяться вовремени взависимости отразличных факторов, например зависеть отисполняемого сейчас кода. При перегрузках физического канала непроисходит отбрасывания данных уже существующих виртуальных каналов, невозможно только создать новый канал. Если учитывать характер трафика (преимущественно короткие сообщения), наличие резервных маршрутов иочень быструю процедуру создания (удаления) виртуального канала, тоотказ всоздании канала неприведет ккатастрофическому падению производительности, будет просто небольшое проседание вскорости вычислений. При накоплении отрицательной статистики (именно статистики, анереакция наотдельное событие) управляющееПО коммутаторов отслеживает частоту ошибок соединения ивыполняет планирование параметров каналов сучетом этих данных. Сбольшой вероятностью перегрузка сама прекратится завремя всотни наносекунд, аПО маршрутизатора должно заниматься вопросами именно стратегического планирования. Ктакому планированию можно отнести возможность редактирования уже созданных маршрутов (данные хранятся вмультиплексоре), иначе невозможно гарантированно перестроить маршрутную сеть (когда ещеПО запросит пересоздание маршрута).

Сеть наоснове синхронной символьной коммутация может коренным образом изменить всю информационную среду.
Вычислительные системы окончательно превратятся изперсонального калькулятора, чем они сейчас восновном иявляются, вединое информационное измерение (пространство) нашего мира. Компьютер пользователя станет просто устройством доступа вэто мир ивозможно устройством для хранения иобработки конфиденциальной информации. Существенным образом изменится роль сетевого оборудования ввычислительной архитектуре. Сейчас восновном сеть является способом связать отдельные вычислительные машины (каждая изних обладает собственнойОС) иисполняемые наних приложения. Вбудущем понятия отдельной вычислительной машины (как физического объекта) небудет, вычислительная система станет полностью виртуальной, она будет размазана поразличным аппаратным ресурсам сети. Вопрос администрирования (управления ресурсами параметрами доступа вычислительной системы) полностью перейдет вплоскость управления сетью, соединяющей отдельные исполнительные модули.
Источник: habr.com
К списку статей
Опубликовано: 27.07.2020 16:04:10
0

Сейчас читают

Комментариев (0)
Имя
Электронная почта

Децентрализованные сети

Сетевые технологии

Синхронный интернет

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

Высокоскоростная компьютерная сеть

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru