Подходы к организации работы разнородных сетей



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

Мультиплексирование.

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

В базовой эталонной модели взаимодействия открытых систем мультиплексированием называется функция N‑уровня, посредством которой одно соединение N‑1 уровня, используется для поддержки нескольких соединений N‑уровня. И, обратно, демультиплексированием именуется функция идентификации множества N‑соединений, поддерживаемых одним соединением N‑1 уровня. Мультиплексирование является функцией, выполняемой внутри уровня.

На физическом уровне мультиплексирование позволяет соединять один физический канал с группой каналов.

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

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

В локальной сети мультиплексирование позволяет связать группу систем одним общим для них физическим каналом.

Естественно, что во всех случаях пропускная способность общего канала К должна обеспечить необходимые скорости передачи данных [4].

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

временное мультиплексирование TDM;

статистико-временное мультиплексирование STDM;

множественный доступ с контролем передачи и обнаружением столкновений;

множественный доступ с передачей полномочия;

множественный доступ с разделением времени;

асинхронный способ передачи.

Первые два способа относятся к случаям, когда мультиплексирование осуществляет мультиплексор. При временном мультиплексировании TDM канал К предоставляется всем системам по очереди независимо от того, есть ли у них данные для передачи. При мультиплексировании STDM канал К представляется, по очереди только тем системам, которым есть что передать в те моменты времени, когда эта возможность предоставляется. Следующие три способа используются тогда, когда системы непосредственно (без мультиплексоров) подключаются к общему каналу. Асинхронный способ может использоваться во всех схемах.

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

Частотное и временное мультиплексирование могут применяться одновременно. В этом случае, в физическом канале выделяются частотные полосы. В любой из этих полос каждой системе для передачи данных предоставляются определенные интервалы времени [5].

В результате мультиплексирования в одном физическом канале создается группа логических каналов.

Трансляция протоколов.

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

В зависимости от типа транслируемых протоколов процедура трансляции может иметь разную степень сложности. Так, преобразование протокола Ethernet в протокол Token Ring сводится к нескольким несложным действиям, главным образом благодаря тому, что в обоих протоколах используется единая адресация узлов. А вот трансляция протоколов сетевого уровня IP и IPX представляет собой гораздо более сложный, интеллектуальный процесс, включающий не только преобразование форматов сообщений, но и отображение адресов сетей и узлов, различным образом трактуемых в этих протоколах [7].

Следует отметить, что сложность трансляции зависит не от того, насколько высокому уровню соответствуют транслируемые протоколы, а от того, насколько сильно они различаются. Так, например, весьма сложной представляется трансляция протоколов канального уровня ATM-Ethernet, именно поэтому для их согласования используется не трансляция, а другие подходы.

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

Трансляцию протоколов могут выполнять различные устройства – мосты, коммутаторы, маршрутизаторы, программные и аппаратные шлюзы. Часто транслятор протоколов называют шлюзом в широком смысле, независимо от того, какие протоколы он транслирует. В этом случае подчеркивается тот факт, что трансляция осуществляется выделенным устройством, соединяющим две разнородные сети[8].

Инкапсуляция (туннелирование) протоколов.

Инкапсуляция (encapsulation) или туннелирование (tunneling) – это еще один метод решения задачи согласования сетей, который однако применим только для согласования транспортных протоколов и только при определенных ограничениях. Инкапсуляция может быть использована, когда две сети с одной транспортной технологией необходимо соединить через сеть, использующую другую транспортную технологию. Необходимо обеспечить только взаимодействие узлов двух сетей NetBIOS, а взаимодействие между узлами NetBIOS и узлами сети TCP/IP не предусматривается. То есть, при инкапсуляции промежуточная сеть используется только как транзитная транспортная система.

Метод инкапсуляции заключается в том, что пограничные маршрутизаторы, которые подключают объединяемые сети к транзитной, упаковывают пакеты транспортного протокола объединяемых сетей в пакеты транспортного протокола транзитной сети. В данном случае пакеты NetBIOS упаковываются в пакеты TCP, как если бы пакеты NetBIOS представляли собой сообщения протокола прикладного уровня. Затем пакеты NetBIOS переносятся по сети TCP/IP до другого пограничного маршрутизатора. Второй пограничный маршрутизатор выполняет обратную операцию – он извлекает пакеты NetBIOS из пакетов TCP и отправляет их по сети назначения адресату.

Для реализации метода инкапсуляции пограничные маршрутизаторы должны быть соответствующим образом сконфигурированы. Они должны знать, во-первых, IP‑адреса друг друга, во-вторых – NetBIOS‑имена узлов объединяемых сетей. Имея такую информацию, они могут принять решение о том, какие NetBIOS‑пакеты нужно переправить через транзитную сеть, какой IP‑адрес указать в пакете, передаваемом через транзитную сеть и каким образом доставить NetBIOS‑пакет узлу назначения в конечной сети.

Инкапсуляция может быть использована для транспортных протоколов любого уровня. Например, протокол сетевого уровня Х.25 может быть инкапсулирован в протокол транспортного уровня TCP, или же протокол сетевого уровня IP может быть инкапсулирован в протокол сетевого уровня Х.25. Для согласования сетей на сетевом уровне могут быть использованы многопротокольные и инкапсулирующие маршрутизаторы, а также программные и аппаратные шлюзы[9].

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

Сравнение трансляции и мультиплексирования.

Использование техники трансляции связано со следующими достоинствами:

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

Сохраняется привычная среда пользователей и приложений, транслятор полностью прозрачен для них.

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

Недостатки согласования протоколов путем трансляции состоят в том, что:

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

Централизация обслуживания запросов к «чужой» сети снижает надежность. Однако можно предусмотреть резервирование – использовать несколько трансляторов.

При увеличении числа пользователей и интенсивности обращений к ресурсам другой сети резко снижается производительность – плохая масштабируемость [10].

Достоинства мультиплексирования по сравнению с трансляцией протоколов заключаются в следующем:

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

Более надежный способ – при отказе стека на одном из компьютеров доступ к ресурсам другой сети возможен посредством протоколов, установленных на других компьютерах.

Недостатки данного подхода.

Сложнее осуществляется администрирование и контроль доступа.

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

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

 

Сетевое оборудование

 

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

Под активным подразумевается оборудование, за которым следует некоторая «интеллектуальная» особенность. То есть маршрутизатор, коммутатор (свитч) и т.д. являются активным сетевым оборудованием. Напротив – повторитель (репитер) и концентратор (хаб) не являются АСО, так как просто повторяют электрический сигнал для увеличения расстояния соединения или топологического разветвления и ничего «интеллектуального» собой не представляют. Но управляемые свитчи относятся к активному сетевому оборудованию, так как могут быть наделены некоей «интеллектуальной особенностью». Ниже приведен краткий обзор.

Маршрутизатор.

Маршрутизатор или рутер (от англ. Router) – сетевое устройство, на основании информации о топологии сети и определённых правил, принимающее решения о пересылке пакетов сетевого уровня (уровень 3 модели OSI) между различными сегментами сети.

Работает на более высоком уровне, нежели коммутатор и сетевой мост.

Принцип работы.

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

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

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

Таблица маршрутизации может составляться двумя способами.

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

Динамическая маршрутизация – когда записи в таблице обновляются автоматически при помощи одного или нескольких протоколов маршрутизации – RIP, OSPF, EIGRP, IS-IS, BGP, и др. Кроме того, маршрутизатор строит таблицу оптимальных путей к сетям назначения на основе различных критериев – количества промежуточных узлов, пропускной способности каналов, задержки передачи данных и т.п. Критерии вычисления оптимальных маршрутов чаще всего зависят от протокола маршрутизации, а также задаются конфигурацией маршрутизатора. Такой способ построения таблицы позволяет автоматически держать таблицу маршрутизации в актуальном состоянии и вычислять оптимальные маршруты на основе текущей топологии сети. Однако динамическая маршрутизация оказывает дополнительную нагрузку на устройства, а высокая нестабильность сети может приводить к ситуациям, когда маршрутизаторы не успевают синхронизировать свои таблицы, что приводит к противоречивым сведениям о топологии сети в различных её частях и потере передаваемых данных. Зачастую для построения таблиц маршрутизации используют теорию графов.

Применение.

Маршрутизаторы помогают уменьшить загрузку сети, благодаря её разделению на домены коллизий и широковещательные домены, а также благодаря фильтрации пакетов. В основном их применяют для объединения сетей разных типов, зачастую несовместимых по архитектуре и протоколам, например для объединения локальных сетей Ethernet и WAN‑соединений, использующих протоколы xDSL, PPP, ATM, Frame relay и т.д. Нередко маршрутизатор используется для обеспечения доступа из локальной сети в глобальную сеть Интернет, осуществляя функции трансляции адресов и межсетевого экрана.

В качестве маршрутизатора может выступать как специализированное (аппаратное) устройство (характерный представитель Juniper), так и обычный компьютер, выполняющий функции маршрутизатора. Существует несколько пакетов программного обеспечения (в основном на основе ядра Linux) с помощью которого можно превратить ПК в высокопроизводительный и многофункциональный маршрутизатор, например GNU Zebra[12].

Сетевой коммутатор.

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

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

Принцип работы коммутатора.

Коммутатор хранит в памяти таблицу, в которой указывается соответствие MAC‑адреса узла порту коммутатора. При включении коммутатора эта таблица пуста, и он работает в режиме обучения. В этом режиме поступающие на какой-либо порт данные передаются на все остальные порты коммутатора. При этом коммутатор анализирует кадры и, определив MAC‑адрес хоста-отправителя, заносит его в таблицу. Впоследствии, если на один из портов коммутатора поступит кадр, предназначенный для хоста, MAC‑адрес которого уже есть в таблице, то этот кадр будет передан только через порт, указанный в таблице. Если MAC‑адрес хоста-получателя еще не известен, то кадр будет продублирован на все интерфейсы. Со временем коммутатор строит полную таблицу для всех своих портов, и в результате трафик локализуется.

Режимы коммутации.

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

С промежуточным хранением (Store and Forward). Коммутатор читает всю информацию во фрейме, проверяет его на отсутствие ошибок, выбирает порт коммутации и после этого посылает в него фрейм.

Сквозной (cut-through). Коммутатор считывает во фрейме только адрес назначения и после выполняет коммутацию. Этот режим уменьшает задержки при передаче, но в нем нет метода обнаружения ошибок.

Бесфрагментный (fragment – free) или гибридный. Этот режим является модификацией сквозного режима. Передача осуществляется после фильтрации фрагментов коллизий (фреймы размером 64 байта обрабатываются по технологии store-and-forward, остальные по технологии cut-through).

Возможности и разновидности коммутаторов.

Коммутаторы подразделяются на управляемые и неуправляемые (наиболее простые). Более сложные коммутаторы позволяют управлять коммутацией на канальном (втором) и сетевом (третьем) уровне модели OSI. Обычно их именуют соответственно, например Layer 2 Switch или просто, сокращенно L2. Управление коммутатором может осуществляться посредством протокола Web‑интерфейса, SNMP, RMON (протокол, разработанный Cisco) и т.п. Многие управляемые коммутаторы позволяют выполнять дополнительные функции: VLAN, QoS, агрегирование, зеркалирование. Сложные коммутаторы можно объединять в одно логическое устройство – стек, с целью увеличения числа портов (например, можно объединить 4 коммутатора с 24 портами и получить логический коммутатор с 96 портами).

Под пассивным сетевым оборудованием подразумевается оборудование, не наделенное «интеллектуальными» особенностями. Ниже приведен краткий обзор [13].

Повторитель.

Повторитель (жарг. – репитер; англ. repeater) – сетевое оборудование.

Предназначен для увеличения расстояния сетевого соединения путём повторения электрического сигнала «один в один». Бывают однопортовые повторители и многопортовые. В терминах модели OSI работает на физическом уровне. Одной из первых задач, которая стоит перед любой технологией транспортировки данных, является возможность их передачи на максимально большое расстояние.

Физическая среда накладывает на этот процесс своё ограничение – рано или поздно мощность сигнала падает, и приём становится невозможным. При этом не имеет значения абсолютное значение амплитуды – для распознавания важно соотношение сигнал/шум.

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

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

Первоначально в Ethernet использовался коаксиальный кабель с топологией «шина», и нужно было соединять между собой всего несколько протяжённых сегментов. Для этого обычно использовались повторители (repeater), имевшие два порта. Несколько позже появились многопортовые устройства, называемые концентраторами (concentrator). Их физический смысл был точно такой же, но восстановленный сигнал транслировался на все активные порты, кроме того, с которого пришёл сигнал.

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

Сетевой концентратор.

Сетевой концентратор или Хаб (жарг. от англ. hub – центр деятельности) – сетевое устройство, предназначенное для объединения нескольких устройств Ethernet в общий сегмент сети. Устройства подключаются при помощи витой пары, коаксиального кабеля или оптоволокна.

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

Принцип работы.

Концентратор работает на физическом уровне сетевой модели OSI, повторяет приходящий на один порт сигнал на все активные порты. В случае поступления сигнала на два и более порта одновременно возникает коллизия, и передаваемые кадры данных теряются. Таким образом, все подключенные к концентратору устройства находятся в одном домене коллизий. Концентраторы всегда работают в режиме полудуплекса, все подключенные устройства Ethernet разделяют между собой предоставляемую полосу доступа.

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

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

Характеристики сетевых концентраторов.

Количество портов – разъёмов для подключения сетевых линий, обычно выпускаются концентраторы с 4, 5, 6, 8, 16, 24 и 48 портами (наиболее популярны с 4, 8 и 16). Концентраторы с большим количеством портов значительно дороже. Однако концентраторы можно соединять каскадно друг к другу, наращивая количество портов сегмента сети. В некоторых для этого предусмотрены специальные порты.

Скорость передачи данных – измеряется в Мбит/с, выпускаются концентраторы со скоростью 10, 100 и 1000. Кроме того, в основном распространены концентраторы с возможностью изменения скорости, обозначаются как 10/100/1000 Мбит/с. Скорость может переключаться как автоматически, так и с помощью перемычек или переключателей. Обычно, если хотя бы одно устройство присоединено к концентратору на скорости нижнего диапазона, он будет передавать данные на все порты с этой скоростью.

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

Оптоволокно.

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

Принцип передачи света внутри оптоволокна был впервые продемонстрирован во времена королевы Виктории (1837–1901 гг.), но развитие современных оптоволокон началось в 1950‑х годах. Они стали использоваться в связи несколько позже, в 1970‑х; с этого момента технический прогресс значительно увеличил диапазон применения и скорость распространения оптоволокон, а также уменьшил стоимость систем оптоволоконной связи.

Коаксиальный кабель.

Коаксиальный кабель (от лат. co – совместно и axis – ось, то есть «соосный») – вид электрического кабеля. Состоит из двух цилиндрических проводников, соосно вставленных один в другой. Чаще всего используется центральный медный проводник, покрытый пластиковым изолирующим материалом, поверх которого идёт второй проводник – медная оплётка или алюминиевая фольга с оплёткой из медных лужёных проволок. Современный телевизионный коаксиальный кабель имеет внутренний проводник из омеднённой стали, внутренний диэлектрик из вспененного полиэтилена и экранирование фольгой и стальной оплёткой. Некоторые кабели имеют два слоя фольги, между которыми находится стальная оплётка. Благодаря совпадению центров обоих проводников потери на излучение практически отсутствуют; одновременно обеспечивается хорошая защита от внешних электромагнитных помех. Поэтому такой кабель обеспечивает передачу данных на большие расстояния и использовался при построении компьютерных сетей (пока не был вытеснен витой парой). Используется в сетях кабельного телевидения и во многих других областях. Основной характеристикой кабеля является волновое сопротивление. В зависимости от этой величины и толщины коаксиальный кабель делится на несколько категорий. Компьютерные сети на основе этого кабеля обычно требуют наличия терминаторов (согласованных нагрузок) на оконечных точках.

Витая пара.

Витая пара (англ. twisted pair) – вид кабеля связи, представляет собой одну или несколько пар изолированных проводников, скрученных между собой (с небольшим числом витков на единицу длины), покрытых пластиковой оболочкой. Свивание проводников производится с целью повышения связи проводников одной пары (электромагнитная помеха одинаково влияет на оба провода пары) и последующего уменьшения электромагнитных помех от внешних источников, а также взаимных наводок при передаче дифференциальных сигналов. Для снижения связи отдельных пар кабеля (периодического сближения проводников различных пар) в кабелях UTP категории 5 и выше провода пары свиваются с различным шагом. Витая пара – один из компонентов современных структурированных кабельных систем. Используется в телекоммуникациях и в компьютерных сетях в качестве сетевого носителя во многих технологиях, таких как Ethernet, Arcnet и Token ring. В настоящее время, благодаря своей дешевизне и лёгкости в монтаже, является самым распространённым решением для построения локальных сетей [16].

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

Мультиплексирование – достоинство состоит в быстродействии. Недостаток избыточность и усложнение администрирования.

Инкапсуляция – достоинство приводит к более простым решениям. Недостаток не обеспечивает взаимодействия с узлами транзитной сети.

 

 


Технология АТМ


Дата добавления: 2019-07-15; просмотров: 143; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!