Соединение коммутаторов в стек

Соединение коммутаторов в стек

В данной статье (будет состоять из двух частей) хотел бы кратко пройтись по основным технологиям стекирования коммутаторов Cisco. Попробуем разобраться с общей архитектурой передачи пакетов в рамках каждого типа стека, реакцией на отказы, а также с цифрами пропускной способности. В первой части мы рассмотрим технологии StackWise и StackWise Plus. Во второй части — StackWise-160, StackWise-480, FlexStack и FlexStack Plus.

Сейчас функционалом стекирования никого не удивишь. Он есть во многих моделях коммутаторов различных производителей, в том числе и у Cisco. Но так было не всегда. На заре моей карьеры (где-то середина двухтысячных) в области сетевых технологий в портфеле компании Cisco был всего один коммутатор с поддержкой полноценного стека. Это была модель коммутатора Cisco 3750. Псевдо стеки на базе 2950 и 3550 в ту пору уже практически умерли. На тот момент меня, как молодого специалиста, очень удивлял факт того, что вопросу стекирования коммутаторов компанией Cisco уделялось так мало внимания. При этом, например, у коммутаторов 3com (прим. куплен компанией HP), которые в то время были достаточно популярны, стекирование поддерживалось достаточно на большом перечне моделей. Также обстояли дела и у Allied Telesis. Я даже помню, как приверженцы продукции Cisco мне объясняли, что стекирование – это плохо, и в продакшене данную технологию не стоит использовать. Жаль, уже не помню точных формулировок, но речь шла вроде о стабильности работы. Стоит заметить, что в то время основными доводами в пользу стекирование было упрощение управления (во всяком случае, на тот момент мне казалось именно так). Т.е. вместо того, чтобы настраивать отдельно два или более устройства, стек даёт нам возможность получить один большой коммутатор.

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

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

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

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

Технология Платформа Кол-во коммутаторов в стеке Общая пропускная способность стековой шины Необходимость стекового комплекта
StackWise 3750, 3750G 9 32 Гбит/с Нет
StackWise Plus 3750-E, 3750-X 9 64 Гбит/с Нет
StackWise-160 3650 9 160 Гбит/с Да
StackWise-480 3850 9 480 Гбит/с Нет
FlexStack 2960-S, 2960-SF 4 40 Гбит/с Да
FlexStack Plus 2960-X, 2960-XR 8 80 Гбит/с Да

Предлагаю чуточку подробнее разобраться с цифрами общей пропускной способности стековой шины, а также общей архитектурой передачи пакетов в рамках каждого типа стека. Хотел бы пояснить, что под стековой шиной будем подразумевать внутренние интерфейсы и порты, которые обеспечивают стекирование. Её производительность — это суммарная полезная пропускная способность всех стековых портов. Почему я не говорю про общую производительность стека? Это обусловлено тем, что в большинстве технологий при выполнении коммутации пакетов между внутренними портами одного коммутатора, используется лишь внутренняя логика (коммутационная фабрика, ASICи и пр.). В этом случае пакет не попадает на стековую шину. Стековая шина утилизируется только тогда, когда пакет попадает на порт одного коммутатора, а выходит через порт уже другого коммутатора стека.

Рассмотрим технологию StackWise. Она является самой пожилой среди остальных. Для соединения коммутаторов в стек по технологии StackWise используется специализированный стековый кабель. При этом отдельного стекового модуля нет, стековые порты сразу встроены в коммутатор (по два порта).

Пропускная способность стекового кабеля 16 Гбит/с (в каждую сторону). Так как на каждом коммутаторе два стековых порта, пропускная способность стековой шины должна равняться:

16 Гбит/с * 2 (в каждую сторону) * 2 (количество портов) = 64 Гбит/с

Смотрим в спецификацию, а там 32 Гбит/с. Куда делась половина пропускной способности?

В коммутаторах 3750 (3750v2) и 3750G отсутствует как таковая выделенная внутренняя коммутационная фабрика (используется старая архитектура shared-ring switch fabric). Стековые порты подключаются напрямую к внутренней шине коммутатора, становясь её продолжением. Таким образом, коммутаторы одного стека имеют одну большую шину в виде кольца. Данная шина на логическом уровне представляет собой два пути в виде кольца каждый.

Пропускная способность каждого из них — 16 Гбит/с. Эти пути разнонаправленные: пакеты по ним передаются в противоположные стороны. Так как мы имеем общую шину на весь стек, пакет, попав на порт любого коммутатора стека, обязательно пройдёт не только через все внутренние ASIC’и, но и через всё кольцо стека, даже если исходящий порт находится на том же коммутаторе, что и входящий. Причём пакет будет убран с шины, только когда он пройдёт весь круг и вернётся обратно. Это позволяет ASIC’у, который «захватил» один из путей, узнать о том, что пакет дошёл и путь можно освобождать. Такой алгоритм работы можно называть «удаление отправителем» (в терминах Cisco — Source stripped). Выбор пути, по которому отправить пакет, определяется исходя из доступности каждого из них (используется механизм токенов: тот ASIC, который обладает токеном, передаёт данные).

Читайте также:  Сетевые плееры hi end

Давайте рассмотрим это на примере (Рис. 2). В нашем случае пакет, попав на порт коммутатора (1), попадает на ASIC, который в свою очередь выбирает синий путь (2) (допустим, он был свободен в этот момент). Далее пакет по синему пути проходит через все коммутаторы (3), попадая в итоге на тот коммутатор, где находится порт назначения (4). Коммутатор отправляет копию пакета (5) через свой локальный порт. Но сам пакет продолжает своё путешествие по стековому кольцу (6), пока не достигнет ASIC’а, который его изначально отправил (7). Только там он будет удалён со стековой шины.

Таким образом, один и тот же пакет проходит 2 раза через стековые порты коммутатора (сначала через один (3), потом через второй (6) порты). А значит наша общая полезная пропускная способность стековой шины равна 32 Гбит/с (ровно в два раза меньше физической).

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

Стоит отметить ещё два момента. Два пути «крутятся» в разные стороны. Предполагаю, что это сделано для усреднения задержки передачи пакетов внутри стека. Второй момент заключается в том, что для Stackwise пропускная способность стековой шины равна общей производительности стека, в силу того, что все коммутаторы в стеке используют одну общую шину.

Перейдём к технологии StackWise Plus. В коммутаторах 3750E и 3750X была добавлена выделенная коммутационная фабрика (switch fabric). Это позволяет делать локальную коммутацию пакетов без их появления в стековом кольце. Стековые порты заводятся непосредственно на коммутационную фабрику. Теперь за логику работы со стековой шиной отвечает непосредственно коммутационная фабрика. В случае технологии StackWise со стековой шиной работал каждый ASIC отдельно.

В технологии StackWise Plus был использован новый алгоритм обработки пакетов в стеке – «удаление получателем» (в терминах Cisco — Destination stripped, ещё одно наименование Spatial reuse). В данном алгоритме пакет удаляется со стековой шины сразу же, как только он достиг коммутатора, на котором находится исходящий порт (Рис. 4). Теперь для сигнализации о том, что путь можно освобождать используется маленький Ack пакет (8 бит).

Как и в технологии Stackwise, логически у нас остаётся два пути. Но так как теперь за работу со стековым кольцом отвечает коммутационная фабрика, механизм работы с этими путями усложнился. Как и раньше доступ к тому или иному пути осуществляет с помощью механизма токенов. Получив токен, коммутационная фабрика может передавать пакеты по стековому кольцу. А так как непосредственно пакеты забираются с каждого ASIC’а, за порядок обслуживания каждого ASIC’a отвечает механизм кредитов. Их раздаёт коммутационная фабрика.

Эти новшества позволили увеличить пропускную способность стековой шины до маркетинговых 64 Гбит/с, прировняв полезную пропускную способность к физической. Теперь пакет проходит только один раз через стековый порт коммутатора. Хотел бы обратить внимание, что в обоих технологиях (Stackwise и StackWise Plus) используются одни и те же типы стековых кабелей.

Тут стоит подчеркнуть, что пропускная способность стековой шины не стала равна 64 Гбит/с, она стала стремиться к этой цифре. Почему? Причина в том, что весь трафик broadcast, multicast и unknown unicast продолжает обрабатываться по алгоритму Source stripped. Т.е. эти типы трафика проходят всё кольцо, прежде чем будут удалены со стековой шины. А значит на данные типы трафика расходуется двойная пропускная способность.

В одном стеке допускается использование любых коммутаторов серии 3750. Если в один стек добавить, например, коммутаторы 3750v2 (поддерживают StackWise) и 3750X (StackWise Plus), стек будет работать по технологии StackWise (алгоритм Source stripped). При этом для 3750X коммутация пакетов между локальными портами будет осуществляться только внутри коммутатора без появления на стековой шине. Для коммутаторов 3750v2 пакеты между локальными портами по старинке будут проходить через всю стековую шину.

Давайте кратко коснёмся схемы работы стека на программном уровне. В рамках стека StackWise или StackWise Plus один из коммутаторов выбирается в качестве мастера (stack master). Он выполняет логические операции (control-plane) для всего стека. При его отказе передача unicast трафика продолжается. Это достигается благодаря синхронизации аппаратных таблиц. Между коммутаторами стека синхронизируются MAC-таблица, а также таблицы Cisco Express Forwarding (CEF), а именно FIB и Adjacency table. А вот остальные таблицы, в том числе таблица маршрутизации, таблица передачи multicast трафика, на новом мастере заполняются заново. При этом возможно использование функционала NSF — Nonstop Forwarding. Т.е. control-plane на новом мастере запускается с нуля.

На этом предлагаю прерваться. Продолжение появится в ближайшие дни.

Введение

Некоторые модели коммутаторов компании Cisco могут быть объединены в стек с использованием специализированных стековых кабелей. Обычно это устройства, занимающие один-два юнита в стойке; часто с неизменяемой конфигурацией. Конечно же, модульные шасси тоже имеют механизмы для объединения нескольких физических устройств, но в данной статье мы не будем касаться этих механизмов, а сфокусируем своё внимание исключительно на физическом стекировании.

На момент написания статьи нам было известно четыре разных версии стека: FlexStack, StackWise, StackWise Plus и StackWise-480. В стек по технологии FlexStack могут быть объединены коммутаторы Cisco Catalyst 2960S. Пропускная способность стека FlexStack составляет 20 Гбит/с в режиме дуплекса, то есть по 10 Гбит/с в каждую сторону. Технология StackWise поддерживается, например, коммутаторами серий Catalyst 3750. Пропускная способность стека StackWise составляет 32 Гбит/с в дуплексе, то есть 16 Гбит/с в каждую сторону. Коммутаторы серий Cisco Catalyst 3750-E и 3750-X поддерживают уже стек версии StackWise Plus, отличающийся от StackWise увеличенной до 64/32 Гбит/с полосой пропускания, а также рядом новых возможностей. Стоит также отметить, что линейка коммутаторов Catalyst 3750-X поддерживает также технологию StackPower, позволяющую обеспечивать отказоустойчивость устройств в стеке для случая отказа блока питания какого-либо коммутатора. Коммутаторы Cisco Catalyst 3850 обладают поддержкой стека StackWise-480, имеющим пропускную способность 480 Гбит/с.

Читайте также:  Номер оператора билайн нальчик

Объединение коммутаторов в стек предоставляет администратору целый ряд преимуществ: единые подсистемы управления и коммутации, улучшенная отказоустойчивость и высокая доступность. Так, например, можно управлять всем стеком как единым устройством с помощью единственной сессий telnet/SSH. Фреймы и пакеты передаются между коммутаторами через стековые порты, что освобождает обычные интерфейсы 10/100 Мбит/с и 1/10 Гбит/с. Внутри стека доступны функции EtherChannel в случае, когда физические каналы подключаются в разные коммутаторы (нечто похожее (vPC – virtual PortChannel) есть и в L3-коммутаторах Cisco Nexus, но это устройства совсем другого класса).

Одним из отличий между технологиями StackWise и StackWise Plus является поддержка последней локальной коммутации. Суть локальной коммутации заключается в том, что если отправитель и получатель подключены к портам одного коммутатора, то фрейм пересылается напрямую, то есть данные в стек не передаются. При отсутствии локальной коммутации, то есть при использовании StackWise, любые данные пересылаются через стек. Из стека фрейм удаляется коммутатором отправителя. Таким образом, если отправитель и получатель подключены к одному устройству, то данные передаются через стековое кольцо, возвращаются на тот же коммутатор и уже затем пересылаются через нужный порт. Получается, что если отправитель и получатель подключены даже в соседние порты одного и того же коммутатора, данные всё равно пройдут через стек. Естественно, такое «путешествие» кадров вносит дополнительную задержку. Технология StackWise Plus лишена такого недостатка, так как в ней не происходит отправки лишних данных в стек (Local Switching), а данные из стека удаляются коммутатором получателя (Destination Stripping). Наверняка, дополнительно вносимая стеком задержка невелика, однако в ситуациях, где решающую роль играет каждая микросекунда, даже такое незначительно изменение может быть заметно. В данной статье мы решили установить, какое количественное влияние оказывает стек, собранный по технологии StackWise, на передаваемый трафик.

Тестирование

В нашем распоряжении было два коммутатора Cisco Catalyst 3750G: C3750G-12S-S и C3750G-24TS-S1U, поддерживающих StackWise. Тестирование мы проводили совместно с нашими друзьями из проекта Anticisco с помощью IXIA XM2. Во время тестирования мы использовали пять различных сценариев подключения, перечисленных ниже.

  1. Без использования стека отправитель и получатель подключались в первый и двадцать четвёртый порты.
  2. Без использования стека отправитель и получатель подключались в первый и второй порты.
  3. При наличии стека отправитель и получатель подключались в первый и двадцать четвёртый порты одного коммутатора.
  4. При наличии стека отправитель и получатель подключались к первым портам разных коммутаторов.
  5. При наличии стека отправитель и получатель подключались к первому и второму порту одного коммутатора.

Для каждого из сценариев мы проводили измерения минимальной, средней и максимальных задержек при передаче кадров по 100, 400, 1400 и 1518 байт. Фреймы каждого из размеров передавались при загрузке интерфейсов коммутатора на 10, 55, 77,5 88,75 и 100 процентов. На графиках ниже представлены только средние значения задержек.

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

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

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

Судя по полученным значениям задержек, коммутация между портами из разных порт-групп происходит быстрее, данное явление не связано со стеком, но с прочими особенностями внутренней архитектуры коммутаторов Cisco Catalyst. Указанная зависимость наблюдается как на включенном в стек коммутаторе, так и на отдельном. Ещё одно наблюдение связано с задержкой на коммутацию больших фреймов. Задержка на сериализацию кадра длиной, например, 1400 байт будет составлять более 10 мкс, тогда как задержка на коммутацию меньше этой величины (примерно 7,8 мкс), отсюда следует, что в коммутаторах Cisco Catalyst 3750G используется один из двух методов коммутации: Cut Through или Fragment Free, но никак не Store and Forward.

Включение коммутатора в стек увеличивает значение задержки при передаче данных между теми же самыми портами. Данное явление связано с необходимостью пересылки данных через стековое кольцо в технологии StackWise. Грубо оценить значение дополнительно вносимой стеком задержки можно в полторы микросекунды. Данная оценка получается из сравнения графиков для следующих пар сценариев: 1 и 3, 2 и 5.

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

Читайте также:  Амд 6100 six core processor

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

Заключение

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

Технология StackWise Plus обратно совместима со StackWise, то есть коммутаторы Cisco Catalyst серий 3750-X и 3750-E могут быть добавлены в один стек с обычными коммутаторами серии 3750, однако сам стек при этом будет собран по технологии StackWise. Единственное, на что стоит обратить внимание, так это на поддержку локальной коммутации моделями серий 3750-X и 3750-E, то есть эти коммутаторы не будут отправлять в стек фреймы, отправитель и получатель которых подключены к этому устройству, что должно снизить задержку коммутации.

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

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

Напоследок хотелось бы обратить внимание читателя на зависимость задержки коммутации от загрузки сетевых интерфейсов. Не стоит подключать абонентов, требующих минимизации задержки, в высоконагруженные стеки. При расчёте нагрузки следует обращать внимание не только на загрузку интерфейсов, через которые передаётся пользовательский трафик, но и на суммарную загрузку стека, так как в технологии StackWise все фреймы передаются через стек. Выяснить версию стека можно с помощью команды show switch stack-ring speed, а текущая загрузка интерфейсов и стекового кольца представлена в выводе команды show controllers utilization.

среда, 13 апреля 2016 г.

Стекирование коммутаторов Cisco 3750

Стекирование коммутаторов Cisco хорошо описано в следующих статьях на "Хабре". Кратко, но по делу.
— Часть 1
— Часть 2
Конкретно про Cisco 3750 статья на cisco.com.

У меня устройства Cisco 3750X

Эти устройства поддерживают также StackPower, о котором я писал здесь.

StackWise

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

SWT1#sh switch stack-ports
Switch # Port 1 Port 2
——— —— ——
1 Ok Ok
2 Ok Ok
В стеке Cisco 3750 у каждого коммутатора есть свой номер члена стека. Посмотреть номер, а также остальные параметры можно командой:

SWT1#sh switch
Switch/Stack Mac Address : fc5b.3950.fe00
H/W Current
Switch# Role Mac Address Priority Version State
—————————————————-
*1 Master fc5b.3950.fe00 5 3 Ready
2 Member 1005.ca3e.2180 1 3 Ready

Изменение номера члена стека

SWT1(config)#switch 2 renumber ?
New switch number

SWT1#reload slot ? Slot number of RP or line card

Мастер стека и приоритет

SWT1#sh switch
Switch/Stack Mac Address : fc5b.3950.fe00
H/W Current
Switch# Role Mac Address Priority Version State
—————————————————-
*1 Master fc5b.3950.fe00 5 3 Ready
2 Member 1005.ca3e.2180 1 3 Ready

SWT1(config)#switch 1 priority ? Switch Priority

Выбор мастера стека

Эти правила определяют, какой модуль стека будет выбран в качестве ведущего звена. В случае добавления коммутаторов или объединения стеков при выборе мастера используются следующие правила (в порядке перечисления):

  1. Коммутатор уже является мастером стека
    Примечание: При объединении стеков выбранный мастер будет выбран мастером объединенного стека.
    Примечание: При разделении стека мастер исходного стека будет мастером той части стека, в которой он окажется.
  2. Коммутатор с максимальным значением приоритета члена стека
    Примечание: Cisco рекомендует задать наибольшее значение приоритета коммутатору, который вы хотели бы видеть мастером стека. В случае выбора нового мастера это обеспечит выбор данного коммутатора в качестве мастера стека.
  3. Коммутатор, который использует конфигурацию уровня интерфейсов, отличную от конфигурации по умолчанию
  4. Коммутатор с наибольшим значением приоритетности аппаратного/ программного обеспечения. Ниже приведены версии программного обеспечения в порядке убывания приоритетности:

— Образ IP-сервисов с поддержкой шифрования
— Образ IP-сервисов без поддержки шифрования
— Образ базового IP-пакета с поддержкой шифрования
— Образ базового IP-пакета без поддержки шифрования

Примечание: Для коммутаторов, использующих образ ПО с поддержкой шифрования или образ IP-сервисов, требуется больше времени для загрузки, чем для образов ПО без поддержки шифрования или образов базового IP-пакета. При включении или перезагрузке всего стека коммутаторов некоторые члены стека не смогут участвовать в выборе мастера стека. Это происходит потому, что члены стека, включенные в течение одного и того же 20-секундного интервала, участвуют в выборе мастера стека и имеют шанс стать мастером. Члены стека, включенные после 20-секундного интервала, не участвуют в первоначальных выборах и становятся рядовыми членами стека. Иногда коммутаторы с низким приоритетом ПО могут стать мастером стека, но при этом все члены стека будут участвовать в следующих выборах мастера.

  • Коммутатор с наибольшим временем непрерывной работы
  • Коммутатор с наименьшим MAC-адресом
  • Выборы мастера стека происходят:

    Ссылка на основную публикацию
    Сколько человек сидит в одноклассниках
    Mail.Ru Group исследовала и сравнила аудитории самых популярных в России социальных сетей — «Одноклассники», «Мой Мир», «ВКонтакте», Facebook и Twitter....
    Сигнал flash в телефоне panasonic
    ● 19.12.08 13:08 - krepsky - 9 / 19.12.08 Два дня ломаю голову… Такая ситуация - купили партию телефонов Panasonic...
    Сигналы материнской платы при загрузке
    BIOS (Basic Input/Output System – базовая система ввода-вывода). Программа системного уровня, предназначенная для первоначального запуска компьютера, настройки оборудования и обеспечения...
    Сколько четырехзначных чисел можно составить из нечетных
    Условие Решение 1 Решение 2 Решение 3 Поиск в решебнике Популярные решебники Издатель: Н. Я. Виленкин, В. И. Жохов, А....
    Adblock detector