По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Любая программа – это набор инструкций, будь то добавление 2 чисел или отправка запроса по сети. Компиляторы и интерпретаторы берут понятный для человека код и переводят его на машинный язык, который может прочесть компьютер. В компилируемом языке целевая машина переводит программу самостоятельно. В интерпретируемом языке исходный код не переводится самой машиной; его читает и выполняет другая программа (интерпретатор). Подробное объяснение Представьте ситуацию: вы решили приготовить хумус. Но имеющийся у вас рецепт написан на древнегреческом. У вас, как человека не знающего этого языка, есть два варианта. Вариант 1: кто-то уже перевел этот рецепт на ваш язык. Поэтому вы (и любой человек, знающий ваш язык) сможете прочесть рецепт в переводе и приготовить хумус. Переведенный рецепт и будет компилированной версией. Есть и другой вариант: у вас есть друг, который знает древнегреческий. Поэтому, решив приготовить хумус, вы пригласили этого друга к себе. Друг сидит рядом и переводит рецепт – строчка за строчкой, – а вы занимаетесь готовкой. Ваш друг – это интерпретатор (переводчик) для интерпретируемой версии рецепта. Компилируемые языки Компилируемые языки сразу переводятся в машинный код, который может выполнить процессор. В результате они выполняются быстрее и эффективнее, чем интерпретируемые языки. Кроме того, в таких языках разработчик лучше контролирует аппаратные средства (управление памятью, использование ЦП и т.д.). Компилируемым языкам требуется дополнительный этап «сборки», при котором их сначала компилируют вручную. Каждый раз при внесении изменений вам нужно будет «пересобирать» программу. Вернемся к примеру с хумусом. Перевод рецепта делался до того, как попал к вам в руки. Если автор рецепта захочет изменить тип оливкового масла, то весь рецепт придется переводить заново, а затем повторно отправлять вам. Примеры истинных компилируемых языков: C, C++, Erlang, Haskell, Rust и Go. Интерпретируемые языки Интерпретаторы проходятся по каждой строке программы и выполняют все команды. Если автор из нашего примера захочет заменить оливковое масло, то он просто зачеркнет старую запись и добавит новую. А затем ваш друг-переводчик сразу увидит это изменение и переведет его вам. Интерпретируемые языки гораздо медленнее компилируемых. Но с появлением JIT-компиляции (динамической компиляции) эта разница начинает сокращаться. Примеры популярных интерпретируемых языков: PHP, Ruby, Python и JavaScript. Небольшое пояснение В большинстве языков программирования есть компилируемые и интерпретируемые реализации, а сам язык необязательно относится только к компилируемым или интерпретируемым. Но для простоты и удобства их принято относить к тому или иному типу. Например, Python можно выполнять как компилируемую программу или интерпретируемый язык в интерактивном режиме. А большинство инструментов командной строки, интерфейсов командной строки и оболочек чисто теоретически относятся к интерпретируемым языкам. Плюсы и минусы Плюсы компилируемых языков Обычно программы, скомпилированные в машинный код, выполняются быстрее интерпретируемых. Это связано с тем, что при переводе кода в процессе его выполнения увеличивается потребление ресурсов, что, в свою очередь, замедляет программу. Минусы компилируемых языков Основные недочеты компилируемых языков: нужно больше времени для завершения полной компиляции перед тестированием; сгенерированный двоичный код зависит от платформы. Плюсы интерпретируемых языков Интерпретируемые языки более гибкие и чаще предлагают такие возможности, как динамическая типизация и меньший размер программы. Кроме того, исходный код программы выполняют интерпретаторы, поэтому сам код не зависит от платформы. Минусы интерпретируемых языков Самый главный недочет этих языков – скорость выполнения. Она обычно ниже, чем в компилируемых языках.
img
Если вы работаете в IT, то наверняка тысячу раз сталкивались с необходимостью зайти на какое-то устройство или сервер удалённо – такая задача может быть выполнена несколькими путями, основные два для управления устройством через командную строку – Telnet и Secure Shell (SSH) . Между ними есть одно основное различие – в протоколе Telnet все данные передаются по сети в незашифрованном виде, а в случае SSH все команды шифруются специальным ключом. SSH был разработан как замена Telnet, для безопасного управления сетевыми устройствами через небезопасную сеть, такую как Интернет. На всякий случай запомните, что Telnet использует порт 22, а SSH – 23. Поэтому наша рекомендация – используйте SSH всегда, когда возможно. Настройка Для начала, вам понадобится Packet Tracer – программа для эмуляции сетей от компании Cisco. Он полностью бесплатен и его можно скачать с сайта netacad.com после регистрации. Запустите Packet Tracer и приступим к настройке. Постройте топологию как на скриншоте ниже – один компьютер и один коммутатор третьего уровня. Нужно будет подключить их между собой и приступить к настройке. Готово? Теперь обеспечим сетевую связность и настроим интерфейс vlan 1 на коммутаторе, для этого введите следующие команды: Если сразу после создания в консоли коммутатора будет вопрос начать ли диалог изначальной настройки – ответьте «No». en conf t interface vlan 1 ip address 192.168.1.1 255.255.255.0 no shutdown Далее, настроим сетевую карту компьютера – укажем сетевой адрес в настройках FastEthernet0: 192.168.1.2. По умолчанию все новые компьютеры будут находиться в vlan 1. Теперь давайте попробуем пингануть коммутатор и зайти на него по протоколу telnet с нашего ПК на коммутатор – и вы увидите, что соединение будет отклонено по причине того, что мы еще не настроили аутентификацию на коммутаторе. Перейдем к настройке аутентификации. Система поддерживает 20 виртуальных tty/vty линий для Telnet, SSH и FTP сервисов. Каждая сессия, использующая вышеупомянутый протокол занимает одну линию. Также можно усилить общую безопасность с помощью валидации запросов на авторизацию на устройстве. Перейдите обратно в режим общей конфигурации (conf t) на коммутаторе с помощью команды exit и введите следующие команды: line vty 0 15 password cisco login end Пароль cisco, используемый в статье, является крайне небезопасным и служит исключительно для демонстрационных целей. Если вы оставите такой пароль на настоящем оборудовании, шансы, что вас взломают будут стремиться к бесконечности. Лучше используйте наш генератор устойчивых ко взлому паролей :) Теперь снова попробуйте зайти по Telnet на свитч – все должно получиться! Однако, при попытке перейти к настройке и выполнении команды enable вы увидите, что это невозможно, по причине того, что не установлен пароль на глобальный режи enable. Чтобы исправить это, введите следующие команды: conf t enable password cisco Попробуйте еще раз – теперь все должно получиться! Теперь настроим SSH на коммутаторе – для этого обязательно нужно указать хостнейм, доменное имя и сгенерировать ключ шифрования. Вводим следующие команды (из основного конфигурационного режима): hostname merionet_sw1 ip domain name merionet crypto key generate rsa Выбираем длину ключа – по умолчанию значение стоит равным 512 битам, для SSH версии 2 минимальная длина составляет 768 бит. Генерация ключа займет некоторое время. После генерации ключа продолжим настройку коммутатора: ip ssh version 2 line vty 0 15 transport input ssh Теперь зайти по протоколу Telnet уже не выйдет, так как мы заменили его на SSH. Попробуйте зайти по ssh, используя логин по умолчанию – admin. Давайте-ка поменяем его на что-то поприличнее (опять из conf t): username admin secret cisco line vty 0 15 login local do wr Теперь попробуйте зайти с рабочей станции на коммутатор и удостоверьтесь, что новые настройки вступили в силу.
img
Вторая часть тут Пересечение многочисленных дискуссий в мире сетевого инжиниринга, было одной из проблем, которая затрудняла принятие решения о том, является ли коммутация пакетов или каналов лучшим решением. Как следует вычислять loop-free пути в сети с коммутацией пакетов? Поскольку сети с коммутацией пакетов на протяжении всей истории сетевой инженерии ассоциировались с распределенными плоскостями управления (control plane), а сети с коммутацией каналов -с централизованными плоскостями управления (control plane), проблема эффективного вычисления безцикловых (loop-free) путей оказала значительное влияние на принятие решения о том, являются ли сети с коммутацией пакетов жизнеспособными или нет. На заре сетевой инженерии доступная вычислительная мощность, память и пропускная способность часто были в дефиците. В 1984 году, когда происходили в основном своем эти дискуссии, любая разница в объеме процессора и памяти между двумя способами расчета безцикловых путей через сеть оказала бы существенное влияние на стоимость построения сети. Когда пропускная способность имеет первостепенное значение, уменьшение количества битов, требуемых плоскостью управления (control plane) для передачи информации, необходимой для вычисления набора loop-free путей через сеть, создает реальную разницу в объеме пользовательского трафика, который может обрабатывать сеть. Уменьшение количества битов, необходимых для работы элемента управления, также вносит большую разницу в стабильность сети при более низких полосах пропускания. Например, использование формата Type Length Vector (TLV) для описания информации о плоскости управления (control plane), передаваемой по сети, добавляет несколько октетов информации к общей длине пакета-но в контексте канала 2 Мбит / с, усугубленного chatty control plane, затраты могут значительно перевесить долгосрочное преимущество расширяемости протокола. Протокольные войны в некоторых моментах были довольно жаркими. Были организованы целые исследовательские проекты и написаны статьи о том, почему и как один протокол лучше другого. Было предложено большое разнообразие механизмов для решения задач вычисления loop-free путей через сеть. В конечном счете были широко развернуты и использованы три общих класса решений: Distance Vector protocols (протоколы вектора расстояния), которые вычисляют свободные от петель пути hop by hop на основе стоимости пути. Link State protocols (протоколы состояния связи), которые вычисляют свободные от петель пути через базу данных, синхронизированную между сетевыми устройствами. Path Vector protocols (протоколы вектора пути), которые вычисляют свободные от петель пути hop by hop на основе записи предыдущих прыжков. Дискуссия о том, какой протокол лучше всего подходит для каждой конкретной сети и по каким конкретным причинам, все еще продолжается. И это, возможно, бесконечный спор, поскольку нет окончательного ответа на этот вопрос. Возможно, как и при подгонке сети под бизнес, всегда будет какая-то степень искусства, связанная с тем, чтобы заставить конкретную плоскость управления (control plane) работать в конкретной сети. Однако большая часть актуальности этого вопроса была вызвана ростом скорости сетей-вычислительной мощности, памяти и пропускной способности. Четвертую часть цикла статей про QoS можно почитать по ссылке.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59