По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Вы забыли свой пароль пользователя root в Debian? Не волнуйтесь, мы покажем, как сбросить пароль root в Debian. Просто выполните следующие шаги и восстановите доступ и установите новый пароль root. Сброс пароля Запустите машину с Debian и нажмите любую клавишу, чтобы остановить процесс загрузки. Выберите “Debian GNU/Linux ” и нажмите клавишу “e” для редактирования параметров ядра в командной строке. Используйте клавишу «стрелка вниз» для прокрутки вниз. Перейдите к строке, которая начинается со слова linux и с помощью стрелок перейдите к концу строки или нажмите кнопку «end», а затем там (после quiet) добавьте init =/bin/bash. После добавления записи нажмите Ctrl + x или F10 для загрузки системы. Debian теперь загрузится в однопользовательском режиме, а корневая файловая система смонтирована в режиме только для чтения (read-only mode). Поэтому используйте команду ниже для монтирования корневой файловой системы в режиме чтения-записи (read-write mode). mount -o remount / Наконец, измените пароль пользователя root с помощью команды passwd. Тут указываем новый пароль и подтверждаем его. Перезагрузите систему и используйте новый пароль, который установили для пользователя root в вашей системе.
img
Классический стандарт связующего дерева работает нормально, но в настоящее время для современных сетей он слишком медленный 🐌 В настоящее время мы наблюдаем в наших сетях все больше и больше маршрутизации. Протоколы маршрутизации, такие как OSPF и EIGRP, намного быстрее адаптируются к изменениям в сети, чем spanning-tree. Чтобы не отставать от скорости этих протоколов маршрутизации, была создана еще одна разновидность связующего дерева... (rapid spanning tree) быстрое связующее дерево. Rapid spanning tree - это не революция spanning tree, а его эволюция. Некоторые вещи были изменены для того, что бы ускорить процесс, но с точки зрения конфигурации - это то же самое, что классический spanning tree . Я называю оригинальное spanning tree "классическим spanning tree". Азы Rapid spanning tree Помните состояние портов spanning tree? У нас есть блокирующее, прослушивающее, обучающее и пересылающее состояние порта. Это первое различие между spanning tree и rapid spanning tree. Rapid spanning tree имеет только три состояния портов: Отбрасывание; Обучение; Пересылка. Вы уже знакомы с состоянием порта в режиме обучения и пересылки, но отбрасывание - это новое состояние порта. В основном он объединяет в себе блокировку и прослушивание состояния порта. Вот хороший обзор с различными состояниями портов для spanning tree и rapid spanning tree. В таблице отображено состояние портов: активны ли они и узнают ли они MAC-адреса или нет. Помните ли вы все остальные роли портов, которые есть у spanning tree? Давайте сделаем небольшой обзор, и будет показано отличие от rapid spanning tree. Коммутатор с лучшим ID моста (priority + MAC -адрес) становится корневым мостом. Другие коммутаторы (non-root) должны найти кратчайший путь стоимости к корневому мосту. Это корневой порт. Здесь нет ничего нового, все это работает аналогично и в rapid spanning tree. На каждом сегменте может быть только один назначенный порт, иначе мы получим петлю. Порт станет назначенным портом, если он сможет отправить лучший BPDU. Коммутатор А, как корневой мост, всегда будет иметь лучшие порты, поэтому все интерфейсы будут назначены. Интерфейс fa0/16 на коммутаторе B будет назначенным портом в моем примере, потому что он имеет лучший идентификатор моста, чем коммутатор C. Здесь все еще нет ничего нового по сравнению с классическим связующим деревом. Коммутатор C получает лучшие BPDU на своем интерфейсе fa0/16 от коммутатора B, и таким образом он будет заблокирован. Это альтернативный порт, и это все еще то же самое, что и для rapid spanning tree. Вот вам новый порт, взгляните на интерфейс fa0/17 коммутатора B. Он называется резервным портом и является новым для rapid spanning tree. Однако вы вряд ли увидите этот порт в производственной сети. Между коммутатором B и коммутатором C был добавлен хаб. Обычно (без промежуточного концентратора) оба fa0/16 и fa0/17 будут назначены портами. Из-за хаба интерфейсы fa0/16 и fa0/17 коммутатора B теперь находятся в одном домене коллизий. Fa0/16 будет выбран в качестве назначенного порта, а fa0/17 станет резервным портом для интерфейса fa0/16. Причина, по которой коммутатор B видит интерфейс fa0/17 в качестве резервного порта, заключается в том, что он получает свои собственные BPDU на интерфейсах fa0/16 и fa0/17 и понимает, что у него есть два соединения с одним и тем же сегментом. Если вы удалите хаб, то fa0/16 и fa0/17 будут назначены портами точно так же, как classic spanning tree. BPDU отличается для rapid spanning tree. В classic spanning tree поле flags использовало только два бита: Topology change.; Topology change acknowledgment.; Теперь используются все биты поля flags. Роль порта, который создает BPDU, будет добавлена с помощью поля port role, оно имеет следующие параметры: Unknown; Alternate / Backup port; Root port; Designated port. Эта BPDU называется BPDUv2. Коммутаторы, работающие со старой версией spanning tree, проигнорируют эту новую версию BPDU. Если вам интересно ... rapid spanning tree и старое spanning tree совместимы! Rapid spanning tree способно работать с коммутаторами, работающими под управлением более старой версии spanning tree. Что поменялось BPDU теперь отправляются каждый hello time. Только корневой мост генерирует BPDU в classic spanning tree, и они ретранслировались non-root, если они получали его на свой корневой порт. Rapid spanning tree работает по-разному...все коммутаторы генерируют BPDU каждые две секунды (hello time). Это hello timeпо умолчанию, но вы можете его изменить. classic spanning tree использует максимального время жизни (20 секунд) для BPDU, прежде чем они будут отброшены. Rapid spanning работает по-другому! BPDU теперь используются в качестве механизма поддержания активности, аналогичного тому, что используют протоколы маршрутизации, такие как OSPF или EIGRP. Если коммутатор пропускает три BPDU от соседнего коммутатора, он будет считать, что подключение к этому коммутатору было потеряно, и он немедленно удалит все MAC-адреса. Rapid spanning tree будет принимать низшие BPDU. Classic spanning tree игнорирует их. Скорость перехода (время сходимости) является наиболее важной характеристикой rapid spanning tree. Classic spanning tree должно было пройти через состояние прослушивания и обучения, прежде чем оно переведет интерфейс в forwarding состояние, это занимает 30 секунд (таймер по умолчанию). Classic spanning было основано на таймерах. Rapid spanning не использует таймеры, чтобы решить, может ли интерфейс перейти в forwarding состояние или нет. Для этого он будет использовать переговорный (negotiation) механизм. Чуть позже я покажу вам, как это работает. Помните ли вы понятие portfast? Если мы включим portfast во время запуска classic spanning tree, оно пропустит состояние прослушивания и обучения и сразу же переведет интерфейс в forwarding состояние. Помимо перевода интерфейса в forwarding состояние, он также не будет генерировать изменения топологии, когда интерфейс переходит в состояние UP или DOWN. Мы все еще используем portfast для rapid spanning tree, но теперь он называется пограничным портом (edge port). Rapid spanning tree может только очень быстро переводить интерфейсы в forwarding состояние на edge ports (portfast) или интерфейсы типа point-to-point. Он будет смотреть на link type, и есть только два ink types: Point-to-point (full duplex); Shared (half duplex). Обычно мы используем коммутаторы, и все наши интерфейсы настроены как full duplex, rapid spanning tree видит эти интерфейсы как point-to-point. Если мы введем концентратор в нашу сеть, то у нас будет half duplex, который рассматривается как shared interface к rapid spanning-tree. Позвольте мне описать механизм быстрой синхронизации spanning tree, используя рисунок выше. Коммутатор А сверху - это корневой мост. Коммутатор B, C и D- некорневые мосты (non-root). Как только появится связь между коммутатором А и коммутатором B, их интерфейсы будут находиться в режиме блокировки. Коммутатор B получит BPDU от коммутатора A, и теперь будет происходить согласование, называемое синхронизацией. После того, как коммутатор B получил BPDU от корневого моста, он немедленно блокирует все свои порты, не обозначенные в списке non-edge. Non-edge порты - это интерфейсы для подключения к другим коммутаторам, пока edge порты- интерфейсы, настроены как portfast. Как только коммутатор B блокирует свои non-edge порты, связь между коммутатором A и коммутатором B переходит в forwarding состояние. Коммутатор B также выполнит операцию синхронизации как с коммутатором C, так и с коммутатором D, чтобы они могли быстро перейти в forwarding состояние. Главное, что следует усвоить здесь, заключается в том, что rapid spanning tree использует этот механизм синхронизации вместо механизма "таймера", который использует classic spanning tree (прослушивание → обучение → forwarding). Давайте увеличим масштаб механизма синхронизации rapid spanning tree, подробно рассмотрев коммутатор A и коммутатор B. Сначала интерфейсы будут заблокированы до тех пор, пока они не получат BPDU друг от друга. В этот момент коммутатор B поймет, что коммутатор A является корневым мостом, потому что он имеет лучшую информацию BPDU. Механизм синхронизации начнется, потому что коммутатор А установит proposal bit в поле flag BPDU. Коммутатор B получает предложение от коммутатора A и понимает, что он должен что-то сделать. Он заблокирует все свои non-edge интерфейсы и запустит синхронизацию в направлении коммутатора C и коммутатора D. Как только коммутатор B перевед свои интерфейсы в режим синхронизации, это позволит коммутатору А узнать об этом, отправив соответствующее соглашение. Это соглашение является копией proposal BPDU, где proposal bit, был switched off, а agreement bit - switched on. Интерфейс fa0/14 на коммутаторе B теперь перейдет в режим forwarding. Как только коммутатор A получит соглашение от коммутатора B, он немедленно переведет свой интерфейс fa0/14 в режим пересылки. А как насчет интерфейса fa0 / 16 и fa0 / 19 на коммутаторе B? Точно такой же механизм синхронизации будет иметь место и сейчас на этих интерфейсах. Коммутатор B направит предложение по своим интерфейсам fa0/16 и fa0/19 в сторону коммутатора C и коммутатора D. Коммутатор C и коммутатор D не имеют никаких других интерфейсов, поэтому они отправят соглашение обратно на коммутатор B. Коммутатор B переведет свои интерфейсы fa0/16 и fa0/19 в режим forwarding, и на этом мы закончим. Этот механизм синхронизации - всего лишь пара сообщений, летающих туда-сюда, и очень быстро, это намного быстрее, чем механизм на основе таймера classic spanning tree! Что еще нового в rapid spanning tree? Есть еще три вещи: UplinkFast; Механизм изменения топологии; Совместимость с классическим связующим деревом. Когда вы настраиваете classic spanning tree, вы должны включить UplinkFast самостоятельно. Rapid spanning tree использует UpLinkFast по умолчанию, вам не нужно настраивать его самостоятельно. Когда коммутатор теряет свой корневой порт, он немедленно переводит свой альтернативный порт в forwarding. Разница заключается в том, что classic spanning tree нуждалось в multicast кадрах для обновления таблиц MAC-адресов всех коммутаторов. Нам это больше не нужно, потому что механизм изменения топологии для rapid spanning tree отличается. Так что же изменилось в механизме изменения топологии? С classic spanning tree сбой связи вызвал бы изменение топологии. При использовании rapid spanning tree сбой связи не влияет на изменение топологии. Только non-edge интерфейсы (ведущие к другим коммутаторам), которые переходят в forwarding состояние, рассматриваются как изменение топологии. Как только коммутатор обнаружит изменение топологии это произойдет: Он начнет изменение топологии при значении таймера, которое в два раза превышает hello time. Это будет сделано для всех назначенных non-edge и корневых портов.; Он будет очищать MAC-адреса, которые изучаются на этих портах.; До тех пор, пока происходит изменение топологии, во время активности таймера, он будет устанавливать бит изменения топологии в BPDU, которые отправляются из этих портов. BPDU также будет отправлен из своего корневого порта.; Когда соседний коммутатор получит этот BPDU с установленным битом изменения топологии, произойдет следующее: Он очистит все свои MAC-адреса на всех интерфейсах, кроме того, на котором он получил BPDU с включенным изменением топологии.; Он запустит изменение топологии во время самого таймера и отправит BPDU на все назначенные порты и корневой порт, установив бит изменения топологии.; Вместо того, чтобы отправлять изменения топологии вплоть до корневого моста, как это делает classic spanning tree, изменение топологии теперь быстро распространяется по всей сети. И последнее, но не менее важное, давайте поговорим о совместимости. Rapid spanning tree и classic spanning tree совместимы. Однако, когда коммутатор, на котором работает Rapid spanning tree, связывается с коммутатором, на котором работает classic spanning tree, все функции скоростной передачи данных не будут работать! В приведенном выше примере у меня есть три коммутатора. Между коммутатором A и коммутатором B мы запустим rapid spanning tree. Между коммутатором B и коммутатором C мы вернемся к classic spanning tree.
img
Еще в 2000 году до нашей эры, когда алгоритмы только были изобретены, их создатели, наверное, даже представить не могли, что их будут использовать для управления большими металлическими самоходными средствами передвижения, которые сейчас для нас больше известны как «автомобили». Но сейчас, когда мы с вами живем в 21 веке, мы используем алгоритмы для управления многими аспектами нашей жизни – от искусственного интеллекта до криптовалюты и входа в обычные онлайн-сервисы.  Так что, если вы планируете искать работу, связанную с алгоритмами, то вы открываете для себя очень актуальную область с большим количеством возможностей. А теперь пришло время подготовиться к тому, чтобы произвести впечатление! Мы подготовили для вас 15 вопросов по алгоритмам, которые помогут вам подготовиться к собеседованию.  Читайте дальше, чтобы узнать о самых распространенных вопросах об алгоритмах, а также ответы на них и о том, как усовершенствовать свои навыки, чтобы подготовиться к собеседованию. Что такое алгоритм? Несмотря на то, что этот вопрос – элементарный, если вам задают его, важно ответить на него уверенно и без лишних слов. Алгоритм представляет собой последовательность вычислительных шагов, которые принимают входные данные или несколько входных данных и преобразуют их в выходные данные. Алгоритм можно написать в разных формах, например, с помощью обычного русского языка или используя псевдокод.  После того, как вы дадите краткий ответ, как этот, вы можете углубиться в эту тему, если захотите. Лучше сделать это на каком-то примере.  Что такое быстрая сортировка? Этот вопрос нужен для того, чтобы проверить, способны ли вы применять алгоритмы хотя бы на самом базовом уровне. Алгоритм быстрой сортировки подходит для быстрой сортировки запросов или списков. В его основе лежит так называемый метод «разделяй и властвуй», то есть он занимается перестановкой групп, каждая из которых является одной из трех частей списка элементов: Опорный элемент, выбранный из массива Элементы меньше опорного размещаются слева от него для формирования левого подмассива Элементы больше опорного размещаются справа от него для формирования правого подмассива В подмассивах также выбирается опорный элемент, а остальные значения сортируются относительного него аналогично. Процесс повторяется до тех пор, пока в подмассивах не останется только один элемент.  Временная сложность алгоритма: Наилучший случай:  On log   n   . Значение опорного элемента близко к среднему значению всех сортируемых элементов. Наихудший случай:  On2 . Значение опорного элемента – это либо наибольшее, либо наименьшее значение всех сортируемых элементов.  Средний случай:  On log   n   .    В чем заключается роль опорного элемента? Это еще один вопрос из темы поверхностного погружения в основы алгоритмов. Вы можете ответить, сказав, что опорный элемент – это элемент, который алгоритм выбирает из массива или матрицы, с которыми мы работаем, и который будет служить первым элементом для вычислений.  Есть множество способов, как выбрать опорный элемент. Для массива опорным элементом может служить первый или последний элемент, выбранный из середины или случайным образом. В зависимости от алгоритма способ выбора опорного элемента может влиять на качество результата.  Что понимается под временной сложностью алгоритма? Это еще одно базовое понятие, связанное с алгоритмами, и поэтому ваш ответ должен начинаться с краткого определения. Временная сложность алгоритма – это количество итераций, которые необходимы для его завершения, в зависимости от размера входных данных.  Объясните различные обозначения, которые используют, когда речь идет о временной сложности Отвечая на этот и любые последующие вопросы, вы демонстрируете свои знания того, как работают алгоритмы, а также что вы знаете, как их можно изменить, чтобы достичь желаемого результата.  Обозначения могут помочь оценить эффективность алгоритма. Вот обозначения, которые вы используете для временной сложности: Большая омега: это означает «больше или столько же» итераций. Это точная нижняя граница роста времени работы алгоритма. По сути это наилучший случай временной сложности.  Большое О: это означает «меньше или столько же» итераций. Это точная верхняя граница роста времени работы алгоритма. По сути это наихудший случай временной сложности.  Большая тета: это означает «столько же» итераций. Это одновременно и точная верхняя граница, и точная нижняя граница роста времени работы алгоритма.  Маленькое О: это означает «меньше чем» итераций. Это верхняя граница, которая не является асимптотически точной.  Маленькая омега: это означает «больше чем» итераций. Это нижняя граница, которая не является асимптотически точной.    Как работает бинарный поиск? Бинарный поиск используется для поиска элемента в уже отсортированном массиве. Первым делом мы смотрим на элемент в середине массива. Если это и есть искомый элемент, то поиск завершен. В противном случае, если искомый элемент больше того, что мы выбрали, процедура поиска повторяется в верхней половине массива (то есть среди значений, которые больше выбранного нами). Если же он меньше, то процедура поиска выполняется в нижней половине массива (то есть среди значений, которые меньше выбранного нами).  Временная сложность алгоритма: Наилучший случай:  O1 . Искомое значение - это первый выбранный средний элементом.  Наихудший случай:  Olog   n   . Мы нашли искомое значение на одном из последних шагов, или оно вовсе отсутствует.  Средний случай:  Olog   n   .    Что подразумевается под сортировкой кучей (пирамидальной сортировкой)? Сортировка кучей, или пирамидальная сортировка, подразумевает сравнение элементов с помощью алгоритма сортировки. Входные данные делятся на отсортированную и неотсортированную части. То, что перемещается в отсортированную часть, зависит от того, работаете вы с невозрастающей или возрастающей кучей. Невозрастающая куча в корне имеет элемент с максимальным значением, а возрастающая – с минимальным. Когда вы используете пирамидальную сортировку на невозрастающей куче, то неотсортированная часть уменьшается, так как самый большой элемент перемещается в отсортированную часть. В случае с возрастающей кучей в отсортированную часть перемещается элемент с наименьшим значением.  В невозрастающей куче значение родительского узла всегда больше, чем значения дочерних узлов. Для того, чтобы отсортировать элементы невозрастающей кучи с помощью алгоритма пирамидальной сортировки, необходимо выполнить следующие шаги: Заменить последний элемент кучи корневым узлом Убрать последний элемент, который мы только что поместили, из кучи Преобразовать теперь уже двоичную кучу обратно в невозрастающую Повторять процесс, пока не закончатся элементы.  Временная сложность алгоритма: Наилучший случай:  O (n log   n   ) . Наихудший случай:  O (n log   n   ) . Средний случай:  O (n log   n   ) .   Для чего используется список пропусков? Список пропусков используется для структурирования данных. В его основе лежат связные списки. А для того, чтобы создавать уровни новых ссылок в исходном связном списке, он использует вероятности. Можно провести аналогию с сетью автобусных маршрутов. Есть автобусы, которые останавливаются на каждой остановке, а есть такие, которые останавливаются только на определенных. У последних остановок меньше, чем у обычных автобусов. Создание новых уровней в списке пропусков можно рассматривать как вот такие ускоренные маршруты с меньшим количеством остановок. Если вы можете получать более эффективный доступ к наиболее часто используемым узлам, то такие задачи, как вставки или удаление узлов, станут намного проще и быстрее. И это будет более эффективно, чем применение каких-то других алгоритмов.  Какие криптографические алгоритмы являются наиболее распространенными? Этот вопрос может показаться чересчур сложным, потому что вам кажется, что вам нужно запомнить огромное количество информации, но если вы вдруг пропустите пару алгоритмов, то никто не будет вас за это наказывать. И к тому же существует огромное количество алгоритмов. Вот некоторые из них: IDEA Blowfish CAST LOKI DES GOST 3-way Что такое алгоритм хеширования и как он используется? Вам захочется устроиться поудобнее, отвечая на этот вопрос, ведь хеш-алгоритмы сейчас очень популярны, так как используются в криптографии. Алгоритм хеширования ссылается на хеш-функцию, которая берет строку и преобразует ее в строку фиксированной длины, и не важно, какой длины она была изначально. Вы можете использовать алгоритм хеширования для самых разных целей – от криптовалюты до паролей и ряда других инструментов проверки.  Какую роль играют алгоритмы в криптовалюте? Если вы устраиваетесь на работу, связанную с криптовалютой, то этот вопрос может оказаться для вас не таким простым, особенно если вы умудрились заблудиться в трех соснах, отвечая на него. Один из способов, как ответить на этот вопрос – упомянуть, насколько сильно криптовалюты на основе блокчейна зависят от криптографии. Блоки или записи, составляющие блокчейн, защищены с помощью криптографических методов, таких как хеш-алгоритмы. Также есть алгоритмы, которые используют для генерации открытых и закрытых ключей и для «майнинга» криптовалют. Как работает алгоритм шифрования? Такого рода вопросы на собеседовании могут дать вам некоторую подсказку о том, для какой работы вам могут нанять. Алгоритм шифрования преобразует обычный текст в код, или зашифрованный текст. Для этого алгоритм использует ключи. Чем длиннее ключи, тем больше есть возможностей для создания зашифрованного текста.  Что такое алгоритм поразрядной сортировки? Поразрядная сортировка может пригодиться при работе с базами данных, или если ваша должность предусматривает то, что вы должны быть готовы ответить на этот вопрос. Поразрядная сортировка – это алгоритм сортировки, который не сравнивает элементы, а распределяет их по «корзинам», основываясь на разрядах. Если есть элементы с более чем одной значащей цифрой, то распределение по «корзинам» повторяется для каждой цифры.  Что такое рекурсивный алгоритм? Рекурсивный алгоритм опирается на способ решения, при котором сложная задача разбивается на более мелкие подзадачи. Это делается до тех пор, пока не получится достаточно простая задача, которую можно было бы легко решить. Одним из примеров алгоритма, который можно реализовать рекурсивно, является бинарный поиск.  Какие три закона должны выполняться для рекурсивных алгоритмов? Такие вопросы на собеседовании могут быть продолжением вопроса «Что такое рекурсивный алгоритм?» Рекурсивный алгоритм должен следовать следующим законам: У него должен быть нерекурсивный вариант реализации. Он должен вызывать сам себя. Его можно изменить и вернуть к нерекурсивному варианту.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59