Научная статья на тему 'ПОВЫШЕНИЕ ДОСТОВЕРНОСТИ МОБИЛЬНОЙ ЦИФРОВОЙ СВЯЗИ В СЕТЯХ ПЯТОГО И ШЕСТОГО ПОКОЛЕНИЯ'

ПОВЫШЕНИЕ ДОСТОВЕРНОСТИ МОБИЛЬНОЙ ЦИФРОВОЙ СВЯЗИ В СЕТЯХ ПЯТОГО И ШЕСТОГО ПОКОЛЕНИЯ Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
28
13
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
5G / 6G / помехоустойчивое кодирование / нейронные сети / мягкое декодирование. / 5G / 6G / noise-resistant coding / neural networks / soft decoding.

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — А.В. Семашко, А.Д. Абакшин

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

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

INCREASING RELIABILITY OF MOBILE DIGITAL COMMUNICATION IN FIFTH AND SIXTH GENERATION NETWORKS

It makes no sense to justify the importance of reliable information transfer. Communication is the basis of modern civilization. One of the main problems of the latter is interference in the communication channel. It is solved by noise-resistant coding. This paper will consider the feasibility of using neural networks in error-correcting coding, how best to do this and what alternatives there are.

Текст научной работы на тему «ПОВЫШЕНИЕ ДОСТОВЕРНОСТИ МОБИЛЬНОЙ ЦИФРОВОЙ СВЯЗИ В СЕТЯХ ПЯТОГО И ШЕСТОГО ПОКОЛЕНИЯ»

ПОВЫШЕНИЕ ДОСТОВЕРНОСТИ МОБИЛЬНОЙ ЦИФРОВОЙ СВЯЗИ В СЕТЯХ ПЯТОГО И ШЕСТОГО ПОКОЛЕНИЯ

А.В. Семашко, д.т.н., профессор, Нижегородский государственный технический университет им. Р.Е. Алексеева, semashko@nntu.ru;

А.Д. Абакшин, Нижегородский государственный технический университет им. Р.Е. Алексеева, abakshin.t@mail.ru.

УДК 621.391.82_

Аннотация. Связь - это основа современной цивилизации и обосновывать важность надежной передачи информации не имеет смысла. Одна из основных проблем последней - помехи в канале связи. Она решается помехоустойчивым кодированием. В данной работе будет рассмотрен вопрос о целесообразности использования нейронных сетей в помехоустойчивом кодировании, как лучше это делать и какие есть альтернативы.

Ключевые слова: 5G; 6G; помехоустойчивое кодирование; нейронные сети; мягкое декодирование.

INCREASING RELIABILITY OF MOBILE DIGITAL COMMUNICATION IN FIFTH AND SIXTH GENERATION NETWORKS

A.V. Semashko, doctor of technical sciences, professor, Nizhny Novgorod State Technical University R.E. Alekseeva;

A.D. Abakshin, Nizhny Novgorod State Technical University R.E. Alekseeva.

Annotation. It makes no sense to justify the importance of reliable information transfer. Communication is the basis of modern civilization. One of the main problems of the latter is interference in the communication channel. It is solved by noise-resistant coding. This paper will consider the feasibility of using neural networks in error-correcting coding, how best to do this and what alternatives there are.

Keywords: 5G; 6G; noise-resistant coding; neural networks; soft decoding.

Введение

Развитие высокоскоростной мобильной связи стало закономерным итогом совершенствования технологий передачи и обработки данных. Инженерная мысль дошла до такого уровня, когда привычных и проверенных методов организации архитектуры сети становится недостаточно для удовлетворения потребностей потребителя. С сетями пятого поколения мобильной связи это не выражается столь явно. Большинство пользователей обратили свое внимание исключительно на рост скорости передачи информации, не придав значения тому, что основное внимание при разработке 5G было уделено связи «машина-машина» [1]. Следующее, шестое поколение сетей связи должно еще больше расширить эту и иные связи. По плану разработчиков Hexa-X с приходом 6G «человек-машинное» взаимодействие должно выйти на совершенно новый уровень [2]. Все это так или иначе приведет к повышению объемов передающейся по каналам связи информации, увеличению масштабов использования радиосвязи, а следовательно, и зашумлению каналов передачи данных. Один из методов борьбы с помехами - помехоустойчивое кодирование [3].

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

используемые в сетях 50: ТигЬо-коды, полярные и ЬБРС [4]. Для сетей 60 ситуация сильно отличается - в заинтересованных в проекте государствах Европы и Азии еще только ведутся активные разработки технологий и стандартов будущего поколения сетевых технологий [2].

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

Требования к системам мобильной связи

Первоначально следует определить для каких задач будут использоваться следующие поколения мобильной связи. В то время, как 50 еще только разворачивается, а общество начинает «вкушать плоды» постепенного внедрения новых технологий, специалисты ведут разработку следующего поколения - 60. Статей и концепций о требованиях и возможностях будущего поколения мобильной связи достаточно много, однако единый стандарт сети еще не разработан. Из представленных в свободном доступе материалов можно сделать вывод, что разработчики сходятся во мнении о том, что: 1) 60 должна стать более удобной в эксплуатации, более управляемой и автоматизированной; 2) для 60 должны быть разработаны новые протоколы маршрутизации; 3) новая сеть должна быть надежной и рентабельной [2].

Специалисты сходятся во мнении, что речь пойдет о взаимодействии роботизированных систем. В современной литературе можно часто встретить такое понятие как «кобот»-колаборативный робот - робот, предназначенный для взаимодействия с человеком. 50 установило направление развития мобильной связи на увеличение взаимодействия типа «машина-машина» и сегодняшние технологические достижения подводят нас к тому, что в дальнейшем этот курс не только сохранится, но и будет расширяться [2].

Описанные ранее решения приводят к выводу о применении более высоких частот передачи данных, что было реализовано в 50 и дало возможность увеличить скорость передачи данных в 30 раз. Однако, увеличение скорости без, как минимум, сохранения достигнутого уровня помехоустойчивости информации в каналах связи не имеет смысла. В данной работе речь пойдет только об одном из методов защиты передаваемых данных - помехоустойчивом кодировании.

Логично, что кратное увеличение количества передаваемой информации в единицу времени ведет к повышению сложности ее кодирования и декодирования, а параллельное увеличение числа источников и приемников, работающих в одном диапазоне волн - к увеличению зашумленности канала, что становится следствием возрастания числа ошибок в передаваемом сообщении. 50 решает проблему кодирования и декодирования за счет ЬБРС кодов и кодов на основе поляризации канала (рис. 1).

-Ф- 5G LOPC(к=64гП=128) 5G Polar+CRC SC (к=64г 11 = 128}

-,-,-,-,-,-

0.0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0

Eb!N0 <dB)

Рисунок 1

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

Мягкое декодирование

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

Причин повышения сложности две. Первая заключается в выполнении операций с действительными числами. Вторая заключается в необходимости расчета апостериорных статистик для кодовых слов. Как можно увидеть из [3] для двоичных сигналов в гауссовом канале при кодах с мягким решением можно добиться той же эффективности, что и при кодах с жестким решением, только на 2-3 дБ меньше. То есть, система с мягким декодированием может снизить свою мощность на 50-63% относительно системы с жестким решением [6].

Сегодня методы с мягким решением широко используются в 5G, в частности для декодирования LDPC кодов. Известны следующие методы декодирования: декодирование на основе критерия максимума апостериорной вероятности (Maximum A-Posteriory - МАР) [7], обеспечивающего минимум вероятности ошибочного декодирования каждого бита и способного формировать мягкие решения для декодируемых битов; инверсии битов (BitFlipping алгоритм) [7], в чьей основе лежит инверсия значения бита, соответствующего наибольшему количеству неудачной проверки; алгоритмы BeliefPropagation (IBP) или MessagePassing, заключающиеся в передаче информации между переменными узлами и узлами четности в графе Тэннера; алгоритм SumProduct и его более новая

версия на основе логарифмического отношения правдоподобия [7]. Данные коды хорошо известны и не нуждаются в повторном исследовании. Известно, что IBP-декодер превосходит по корректирующей способности аналоги, однако обладает наибольшей сложностью среди них [7]. Выигрыш по вероятности ошибки декодирования зависит от вида канала и количества итераций и может составлять несколько децибел.

Нейросетевое декодирование

Последнее время в системах связи стало модно применять сверточные коды, вместе с тем блоковые коды обладают рядом преимуществ, в частности, разработка кодов с заданными характеристиками. Мягкие методы декодирования дают возможность повысить помехоустойчивость на 3 дБ в отношении сигнал/ шум применительно к своим аналогам с жестким решением. Исследования в этой области проводились А.И. Туркиным, Л.Ф. Бородиным, Р. Блейхутом [8], однако современные исследования в области искусственного интеллекта дают возможность надеяться, что эти методы позволят существенно облегчить процедуру декодирования.

Во время декодирования нейронная сеть не вычисляет исходное сообщение, а «распознает» его. Похожим образом человек путем тренировки обучает свой разум находить и исправлять ошибки в словах, ориентируясь на изученные ранее паттерны. Нейронные сети дали возможность обучить машину запоминать нужный словарь и распознавать в полученном сообщении исходное. В случае обнаружения ошибки нейронная сеть исправит ее, для этого необходима избыточность, именно на нее ориентируется нейросеть [9].

Отрицательной стороной использования нейронных сетей является изначальное незнание разработчика - какой сложности (размерности) ему потребуется система. Она может оказаться чрезмерно высокой и потребует организации сложной сетевой архитектуры. Из работы [10] известно, что простейшие однослойные нейронные сети способны решать только линейно разделимые задачи. Проблема решается переходом на многослойные нейронные сети [11]. В этом случае вектор, соответствующий входному образцу, преобразуется скрытым слоем в некоторое новое пространство, которое может иметь другую размерность, а затем гиперплоскости, соответствующие нейронам выходного слоя, разделяют его на классы. За счет этого происходит определение характеристик исходных данных и данных, созданных скрытым слоем. Последнее дает возможность определить корреляционные зависимости между информационными и избыточными символами. Так нейросеть декодирует исходное сообщение и распознает ошибки [12].

Алгоритм на описанной основе имеет еще одну отрицательную сторону, а именно способ представления выходных данных. Один из наиболее удобных вариантов - это представление результатов работы в виде вектора, чьи компоненты соответствуют различным номерам классов. При этом i-я компонента вектора соответствует у'-му классу. Все остальные компоненты при этом устанавливаются в нуль. Однако, тогда число выходов будет соответствовать числу классов и тем самым сильно увеличит сложность сети.

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

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

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

Рисунок 2

Существует альтернативный метод использования нейронных сетей, подразумевающий не декодирование сообщения нейросетью, а оптимизацию ею декодера. Например, декодера min-sum, использующего линейное приближение (LAMS) для LDPC-кодов с квазициклическими структурами (QC-LDPC). Сегодня QC-LDPC широко используется в стандартах систем цифрового вещания и в стандартах систем связи и телекоммуникации ((IEEE 802.16e, IEEE 802.11n, IEEE 802.15.3с). Линейное приближение основано на введение некоторых факторов в каждую итерацию декодирования, которые линейно корректируют проверочные узлы и входные данные канала. Эти факторы оптимизируются нейронной сетью от итерации к итерации, что выдвигает к ней определенные требования. Нейросеть должна быть не большой и не глубокой из-за лавинообразного возрастания вычислительной сложности системы [6]. Для представленного ранее примера, нейронная сеть, построенная в соответствии с матрицей проверки четности кода QC-LDPC со структурами контроля четности, будет значительно меньше аналогичной структуры без учета описанного. Оптимизация коэффициентов может быть проведена один и более раз. Количество итераций не ограничено. Задание полученных коэффициентов в модель LAMS-декодера для сетей пятого поколения (5G) показывает заметное улучшение корректирующей способности декодера относительно алгоритмов нормальной и минимальной суммы, а также лучшую производительность, чем у алгоритма распространения доверия в некоторых областях с высоким отношением сигнал/шум.

Рисунок 3

На рис. 3 раскрывается эффективность BLER кодов 5G с длиной информации K=520, количеством итераций /=15 и различными скоростями кодирования информации R=1/3, 1/4, 1/5. Как можно увидеть, LAMS-декодер, благодаря использованию нейронной сети обладает лучшей производительностью, чем коды нормальная минимальная сумма (NMS) и минимальная сумма со смещением (OMS). Причем эффективность приведенного в пример кода напрямую зависит от скорости кодирования. Чем она выше, тем более эффективен LAMS-декодер [13]. По мере увеличения SNR разрыв между LAMS-декодером и кодом на основе алгоритма распространения доверия (BP) становится меньше. Также стоит отметить большую устойчивость LAMS относительно OMS, позволяющую поддерживать высокую производительность при одинаковых коэффициентах для разных скоростей кодирования.

Моделирование

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

Первым рассмотрим нейронный декодер. Лучшим предметом для демонстрации работы подобных кодов является код Хэмминга (n, k), из-за чего он используется в иных работах, связанных с данной темой [14]. В текущем случае, начало работы с моделированием выше названного линейного блочного кода обусловлено необходимостью изучения требований к вычислительным ресурсам, необходимым для достижения цели. Системы на основе нейронных сетей требовательны к возможностям вычислительных устройств на этапе своего построения и обучения, возможностью проведения сравнительного анализа результатов работы с трудами других авторов и значительным упрощением дальнейшей разработки модели на основе LDPC-кода. Входной слой, состоящий из n элементов, принимает кодовую последовательность. Скрытый слой, также состоящий из n элементов, рекуррентно связан с целью получения корреляции между символами переданного сообщения. В результате, мы получим из k

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

Рассмотрим пример декодирования. После получения из канала с шумом сообщение 0010110 формирует входной вектор нейронной сети. Итогом работы нейронной сети после соответствующих вычислений будет выходной вектор значений: 1; 0,52; 1; 0,59; 1; 0,88; 0,62; 1; 0,86; 0,73; 1; 0,65; 1; 0,64; 0,59; 0,67. Минимальное значение, полученное во втором элементе вектора, означает, что переданная кодовая последовательность относится ко второму классу, который соответствует кодовой последовательности 0010110 (из таблицы соответствия класса кодовой последовательности). Если значения изначальной кодовой последовательности и последовательность, выбранная нейронной сетью, совпадают, то сеть правильно декодировала сообщение.

ю

10

10"

££

10"

10"

10

-■6

:

:

:

;

:

- Хэмминг(7,41 Мягкий Хэмминг(7,41 Нейронный ^-,-,---,-

3 4

Еь№о (с)В)

Рисунок 4

На рис. 4 представлено декодирование кода Хэмминга (7,4), где можно увидеть, что нейронный декодер незначительно уступает мягкому. Проблема решается с увеличением сложности нейронной сети. Это позволяет повысить корректирующую способность кода и на 0,5-1,5 дБ превзойти декодер с мягким решением по обеспечению помехоустойчивости. Недостатком такого решения будет возрастание вычислительной сложности алгоритма в 2траз, где т - число итераций.

Также следует учитывать, что все правила кодирования - это сама нейронная сеть и ее весовые коэффициенты. Конкретное правило декодирования хранится во всей нейронной сети распределенным способом. Вероятность ошибки на бит сильно зависит от степени выходного узла, с корректным алгоритмом расчета которого можно ознакомиться в [15].

Перейдем ко второй части работы и проведем моделирование кода с мягким решением, усовершенствованным нейронной сетью. Воспользуемся теоретической информацией из раздела данной статьи «Мягкое декодирование» и используем группу кодов min-sum. Применение нейронных сетей позволяет добиться большей корректирующей способности для мягкого декодирования LDPC-кодов. Проведем моделирование алгоритма neural min-sum nonmaize и сравним его с мягкими методами декодирования.

Как видно из рис. 5 вероятность ошибки на бит для декодера с основой N-NMS алгоритма заметно ниже, чем в иных случаях. Показатели BER для NNMS алгоритма на 1,5-2 дБ лучше, чем у NMS.

1 Л

\ \

ч>

LDPC код(2064Д032) min-sum LDPC ксд(20&4Д032) sum-product • LDPC код {2064,1032) neural rnin-sum-normize

LDPC код(2064ДОЗ2] min-sum-normize

—,-т-т-1-1-т-

1.00 1.25 1.50 1.75 2.00 2.25 2.50 2.75

Eb/N0 (dB)

Рисунок 5

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

Заключение

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

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

Литература

1. Paul Schwenteck, Giang T. Nguyen, Holger Boche, Wolfgang Kellerer and Frank H. P. Fitzek 6G Perspective of Mobile Network Operators, Manufacturers, and Verticals // IEEE Networking Letters, 2023.

2. Mikko A. Uusitalo, Sr Member, Patrik Rugeland, Mauro Renato Boldi, Emilio Calvanese Strinati, Member, Panagiotis Demestichas, Sr Member, Marten Ericson, Gerhard P. Fettweis, Miltiadis C. Filippou, Sr. Member, Azeddine Gati, Marie-Helene Hamon, Marco Hoffmann10, Matti Latva-aho11, Sr Member, Aarno Pärssinen, Sr Member Björn Richerzhagen, Hans Schotten, Tommy. Svensson, Sr Member, Gustav Wikström, Henk Wymeersch, Sr. Member, Volker Ziegler, Sr Member and Yaning Zou 6G Vision, Value, Use Cases and Technologies From European 6G Flagship Project Hexa-X // IEEE Access, 2021.

3. Туркин А.И. Рекуррентный прием сложных сигналов (на основе метода погружения и решения непрерывных экстремальных задач) - М: Радио и связь, 1988. - 248 с.: ил - (Статистическая теория связи. Вып. 29). ISBN 5.256.00017-9.

4.URL

https://portal.3gpp.org/desktopmodules/Specifications/SpecificationDetails.aspx?specifi cationId=3107 (дата обращения май 2023).

5. Быховский М.А. Исследование нового метода мягкого декодирования помехоустойчивых кодов // Цифровая обработка сигналов, 2021. - № 4. - C. 22-30.

6. Кларк Дж., мл., Кейн Дж. Кодирование с исправлением ошибок в системах цифровой связи: Пер. с англ. - М.: Радио и связь, 1987. - 392 с.

7. Золотарев В.В., Овечкин Г.В. Помехоустойчивое кодирование. Методы и алгоритмы: Справочник. / Под. ред. чл.-кор. РАН Ю.Ю. Зубарева. - М.: Горячая линия-Телеком, 2004. - 126 с.

8. Блейхут Р. «Теория и практика кодов, контролирующих ошибки» Москва «Мир», 1986.

9. Березкин А.А. Модели и методы декодирования помехоустойчивых кодов на основе нейросетевого базиса: Дис. кан. техн. наук: 05.13.01; [Место защиты: Санкт-Петербургский государственный университет телекоммуникаций им. проф. М.А. Бонч-Бруевича.]. - М., 2009. - 16 с.

10. Minsky M.L., Papert S. Perceptrons: An Introduction to Computational Geometry. Cambridge // MA: MIT Press, 1969. - 258 p.

11. Астахов Н.В., Башкиров А.В., Муратов А.В., Хорошайлова М.В., Ципина Н.В. Декодирование линейных блоковых кодов с использованием нейронных сетей на основе персептронов высокого порядка // Воронежский государственный технический университет, г. Воронеж, Россия, 2020. - № 3. - C. 87-94.

12. Драко А.М., Романенко Д.М. Особенности нейросетевого декодирования линейных блочных кодов // Труды БГТУ. Физико-математические науки и информатика, 2015. - № 6. - С. 166-170.

13. Свиридова И.В., Хорошайлова М.В., Использование нейронных сетей для оптимизации декодирования LDPC кодов для 5G беспроводной сети // Вестник Воронежского государственного технического университета, 2019. - Т. 15. - № 2 -С. 139-144.

14. Stefano A.D., Cataldo G.D., Palumbo G. On the use of neural networks for hamming coding // IEEE International Symposium on Circuits and Systems, 1991. - Vol. 3. - P. 1601-1604.

15. Башкиров А.В., Пухов Д.А., Свиридова И.В., Хорошайлова М.В. Проектирование и реализация нейросетевого кодирования и декодирования // Воронежский государственный технический университет, г. Воронеж, Россия.

i Надоели баннеры? Вы всегда можете отключить рекламу.