По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Софт DevOps (англ. development и operations) имеет очень большое значение для огромного количества людей, которые занимаются разработкой программного обеспечения. Для того, чтобы разобраться, что такое программа/путь DevOps и как правильно ее использовать на практике, стоит подробнее поговорить о происхождении этого набора техник. Что такое DevOps, что нужно знать и сколько получают DevOps - специалисты? Что такое практика DevOps? DevOps является одним из самых популярных способов взаимодействия между разработчиками того или иного программного обеспечения. При этом, данная практика включает в себя совокупность процессов по созданию, поддержанию и дальнейшему обслуживанию программного обеспечения. Следует сказать, что каждый процесс не может существовать друг без друга, так как именно на этом строится вся суть взаимодействия между разработчиками программного обеспечения. DevOps состоит из следующих задач, которые необходимо решить разработчикам: Непосредственное создание программного обеспечения, направленного на решение тех или иных производственных задач. Тестирование промежуточных версий или уже готовых продуктов программного обеспечения. Эксплуатация и тестирование готовой продукции на практике. Коротко: DevOps специалист должен знать сети (маршрутизацию, коммутацию) хотя бы на уровне CCNA, знать и уметь пользоваться Linux (знать CLI, основные принципы) и уметь программировать. Желательно фуллстэк – то есть фронтенд часть и бэкенд. Идеально уметь программировать на Python :) Вот что такое DevOps. Именно из этих фаз и состоит DevOps. В результате разработки, тестирования и эксплуатации и создаются все условия, которые так необходимы для качественного использования того или иного софта. Чаще всего используются следующие инструменты: Kubernetes Docker, Ansible Logstash Все эти программы предназначены для работы и управления контейнеризированными приложениями. Кроме того, Logstash позволяет искать информацию, полученную с помощью логов. Графический интерфейс Azure DevOps имеет следующий внешний вид: Для чего нужны циклы DevOps? DevOps является последовательной программой, с помощью которой можно добиться максимального количества полученной прибыли в результате того или иного действия, связанного с разработкой программного обеспечения. Практика показала, что если использовать циклы DevOps, то дневные релизы могут выйти на нормальный уровень. Это приведет к тому, что определенная компания, занимающаяся разработкой программного обеспечения, сможет подтянуть свои производственные мощности и как следует наладить получение прибыли без каких-либо негативных проявлений и последствий. Именно для оптимизации внутреннего цикла релизов программного обеспечения и прочих манипуляций, связанных с разработкой, следует использовать совокупность циклов DevOps. В том случае, если организация выпускает несколько проектов одновременно, с помощью DevOps можно увеличить количество и интенсивность выпускаемого продукта. Чем более разнообразные приложения, тем сильнее компании-разработчика помогут инструменты из DevOps. В чём суть DevOps? Суть данного производства заключается в том, чтобы использовать стандартизированное окружение для разработчиков с целью упростить процесс взаимодействия между элементами. Также внедрение стандартных элементов в классическую в среду разработки приводит к тому, что процесс начинает приобретать более стандартизированную и автоматизированную форму. Именно поэтому крупные предприятия с множественными производственными мощностями обращаются к практике DevOps для того, чтобы получить гораздо более оптимизированную производительную мощность. При этом, идеальным примером практики DevOps является автоматизация не только процессов, но ещё и даты. Для того, чтобы производство не занимало много времени, необходимо четко обозначить даты. Эти даты нельзя нарушать, так как дедлайн должен обязательно дисциплинировать разработчиков и не давать им возможности срывать сроки. Какие инструменты имеются в наборе DevOps? Сам по себе, набор практик под названием DevOps включает в себя несколько десятков различных инструментов. На сегодняшний день в список данных инструментов входят следующие варианты: Code - набор полезных инструментов, используемых в качестве основных способов анализа кода в программе; Build - набор инструментов, благодаря которым можно получать огромное количество информация касательно интеграции одного элемента программы в другой, а также получать статус сборки; Тест - пакет программ для всестороннего изучения промежуточных версий или готового продукта. При этом, данные инструменты включают в себя различные возможности, направленные на тестирование программы под разными нагрузками. Для создания промежуточных версий подойдёт инструмент под названием Пакет. При этом, в пакет входит набор артефактов и автоматическая установка приложения. С помощью данного набора программ можно создать всевозможные условия, под которыми основной продукт будет распространяться на персональные компьютеры или мобильные телефоны конечного потребителя. Релиз - ещё один пакет программ, позволяющий управлять изменениями в готовом продукте. Самое интересное, что сюда входят пакеты программ, предназначенных для налаживания выпуска и утверждения определённых партий. Для управления конфигурациями нужно налаживать инфраструктуру. Одноимённой пакет программ нужен для того, чтобы положить определенную коммуникацию между элементами производства. Всё, что с этим связано, может быть использовано в качестве основных инструментов для реализации ряда идей, связанных с прокладывания инфраструктуры. И, наконец, сюда входит так называемый мониторинг, целиком и полностью предназначенной для отладки ошибок, использования готового продукта, а также создания различных условий для его эксплуатации. Сюда можно отнести различные тесты и прочие синтетические инструменты определения эффективности работы программы. Главные участники DevOps Практика включает в себя следующих участников: Прежде всего, в DevOps можно включить все изменения, которые были проведены в штате разработчиков, а также самой программе. Само собой, сюда нужно включить и самих разработчиков, которые трудятся над данной программой. Наборы операций с элементами программ. Сюда входит отдел, занимающийся оценкой качества того или иного продукта. Сюда можно отнести также гарантию качества конечного изделия. Административный отдел осуществляет управление и поддержку готового продукта, а также создание благоприятных условий для оптимизации производства. Сюда также стоит включить координаторов операций. Все действия, которые происходят внутри пакета DevOps, направленный на полную автоматизацию и оптимизацию производства и разработки программного обеспечения и прочих продуктов. В отличие от своих конкурентов, пакет DevOps не ограничивает разработку, а всего лишь привносит в процесс больше порядка и логики. Для чего нужно использовать DevOps? DevOps решает следующие цели: Перво-наперво, это максимальное сокращение затраченного на разработку времени. При этом, сокращение ведёт не только к удешевлению конечного продукта, но ещё и отсутствию срывов дедлайна. Таким образом, конечные продукты смогут выходить гораздо чаще и стабильнее. При этом, это касается как полноценных программ, так и всевозможных патчей вместе с исправлениями. Те компании, которые практиковали DevOps, теперь реже отказываются от новых разработок и релизов. Само собой, с первым пунктом также уменьшилось количество исправлений, связанных с критическими ошибками. Теперь выпускать патчи стало гораздо удобнее для разработчика и издателя. В том случае, если во время создания того или иного продукта произошёл сбой, восстановиться гораздо проще, нежели это было раньше. Это неудивительно, ведь автоматизированное производство позволяет заменить недостающие элементы на другие, при этом не подставив весь штат. В чём заключаются основные преимущества DevOps? Преимуществ использования DevOps масса. Так, например, практика показала, что данный набор действий позволяет автоматизировать и оптимизировать производство таким образом, чтобы все эти манипуляции не коснулись непосредственно самого процесса создания конечного продукта. При этом, архитектура DevOps позволяет разработчикам экспериментировать с различными деталями и элементами системы, тем самым, не ограничивая разработчиков в полете творческой мысли. Теперь разрабатывать конечные продукты гораздо проще, чем это было раньше.
img
Если вы специалист по безопасности, то вам потребуется часто анализировать хосты, если будет замечена подозрительная активность. Чтобы дольше оставаться незамеченными, злоумышленники зачастую используют совершенно легитимные инструменты и процессы, которые можно найти в любой ОС Microsoft Windows. Поэтому важно понимать, как Windows обрабатывает процессы и какие встроенные инструменты может использовать специалист по безопасности для анализа активностей на хосте. Процессы, потоки и службы В Windows, когда приложение запущено, оно создает процесс. Обычно приложение может иметь один или несколько выделенных ему процессов. Процесс - это все ресурсы, необходимые для обеспечения возможности выполнения/запуска приложения в операционной системе хоста. Представьте, что вы открываете диспетчер задач, чтобы проверить производительность вашего компьютера. Операционная система создаст процесс со всеми необходимыми ресурсами для этого приложения. На следующем рисунке показаны текущие процессы на компьютере с Windows 10: Как показано на предыдущем рисунке, диспетчер задач - это служебная программа, которая предоставляет информацию о процессах, службах и производительности устройства. На вкладке «Процессы» вы увидите список всех запущенных в данный момент приложений в операционной системе хоста, список фоновых процессов и ресурсы, которые выделяются каждому приложению (ЦП, память). Фоновые процессы в Windows выполняются как службы. Служба - это программа, которая выполняется в фоновом режиме операционной системы, обеспечивая поддержку приложения и/или операционной системы. Эти службы можно настроить на автоматический запуск при загрузке Windows. Вы можете запускать, останавливать и перезапускать службу вручную. На следующем снимке экрана показано окно панели управления службами в операционной системе Windows 10: На предыдущем рисунке показан список служб в операционной системе хоста. Здесь вы можете настроить свойства службы в Windows. Дважды щелкнув на службу, откроется окно свойств. На следующем рисунке показано окно свойств службы: Как показано на предыдущем рисунке, вы можете настроить тип запуска службы. Каждое приложение создает родительский процесс с одним или несколькими дочерними процессами, иногда называемыми потоком. Каждый дочерний процесс или поток отвечает за функцию, обеспечивающую выполнение приложения. Когда приложение выполняется в операционных системах Microsoft Windows, родительский процесс использует системный вызов fork(), который позволяет родительскому процессу для запущенного приложения создать один или несколько дочерних процессов. Однако имейте в виду, что у дочернего процесса может быть только один родительский процесс, а у родительского процесса может быть несколько дочерних процессов. Когда приложение выполняется операционной системой или пользователем, операционная система задействует физическую память из оперативной памяти и создает виртуальную память для выделения запущенному процессу или дочернему процессу. Таким образом, процессы выполняются в виртуальном адресном пространстве операционной системы. Важное примечание! Операционная система Windows управляет выделением виртуальной памяти процессу. Иногда, когда приложение закрывается, родительский процесс и все дочерние процессы завершаются, тем самым высвобождая ресурсы обратно операционной системе. Однако родительский процесс может завершиться, пока дочерние процессы остаются активными. В этой ситуации виртуальная память и любые другие ресурсы по-прежнему выделяются каждому дочернему процессу. Дочерний процесс, у которого нет родительского процесса, называется сиротским процессом (orphan process). Пользователь может вручную завершить дочерний процесс в диспетчере задач или выполнить перезагрузку системы. Перезагрузка системы завершит все процессы и перезагрузит операционную систему. На следующем рисунке показан список всех запущенных процессов на вкладке «Подробности» в диспетчере задач: Как показано на предыдущем снимке экрана, мы можем видеть все процессы, идентификатор процесса (PID) для каждого процесса, статус, какой пользователь запускает процесс, и распределение ресурсов. Также в Microsoft Windows существует утилита Resource Monitor Монитор ресурсов предоставляет более подробную информацию обо всех процессах и о том, как они используют ЦП, память диск и сеть на устройстве. На следующем рисунке показан интерфейс монитора ресурсов на компьютере с Windows 10: Еще одним инструментом, который поможет вам определить адресное пространство и распределение памяти в Microsoft Windows, является инструмент RAMMap, который входит в набор инструментов Windows Sysinternals от Microsoft. На следующем рисунке показан сводный список и список подкачки на хосте, использующем RAMMap: Как показано на предыдущем снимке экрана, RAMMap показывает сводную информацию о выделении виртуальной памяти и ее использовании. Кроме того, вкладка Процессы содержит полный список всех процессов: Как показано на предыдущем рисункеа, на этой вкладке вы можете увидеть каждый запущенный процесс и распределение виртуальной памяти. Этот инструмент действительно полезен для демонстрации того, как ваша операционная система распределяет физическую память и сколько памяти используется в качестве кэша для данных на устройстве. Файл подкачки Windows= По мере того, как в память загружается больше приложений, операционная система выделяет части физической памяти (ОЗУ) каждому процессу, используя виртуальную память. Каждый родительский процесс и его дочерние процессы выполняются в одном виртуальном адресном пространстве в операционной системе хоста. Как уже упоминалось, за выделение памяти отвечает операционная система, однако есть некоторые приложения, которым для бесперебойной работы требуется намного больше памяти, чем другим, и это может создать нехватку доступной памяти для других приложений. Операционная система Windows использует часть памяти из другой области, с жесткого диска или SSD. Windows берет небольшую часть памяти с локального диска и преобразует ее в виртуальную память. Это называется файлом подкачки. Файл подкачки позволяет операционной системе хоста использовать эту часть памяти для загрузки приложений и, следовательно, снижает нагрузку на физическую память (ОЗУ) в системе. Чтобы получить доступ к настройкам файлов подкачки, выполните следующие действия: Щелкните значок Windows в нижнем левом углу экрана и выберете Система. Откроется окно «Система». Слева выберите пункт «Дополнительные параметры системы». Откроется окно «Свойства системы». Выберите пункт «Дополнительно» и нажмите «Параметры» в разделе «Быстродействие», как показано ниже: Откроется окно параметров быстродействия. Чтобы изменить размер файла подкачки, нажмите «Изменить…»: Вам будет предоставлена возможность настроить размер файла подкачки для всех дисков в локальной системе. Размер файла подкачки по умолчанию зависит от объема оперативной памяти хост-системы. Операционная система Windows 10 автоматически управляет размером файла подкачки в зависимости от конфигурации хоста и объема оперативной памяти в системе. Windows использует файл подкачки в качестве виртуальной памяти в случае, если в ОЗУ недостаточно физической памяти. Реестр Windows Вся информация о конфигурациях и настройках операционной системы Windows и ее пользователей хранится в базе данных, известной как реестр (registry). Самый высокий уровень реестра известен как куст. В реестре Windows есть пять кустов, и каждое значение данных хранится в разделе или подразделе куста. Древо (куст) реестра — это подмножество разделов, подразделов и параметров реестра, которому сопоставлен набор вспомогательных файлов, содержащих резервные копии этих данных. Часто для обозначения конкретных путей в реестре применяют термин ветка. Например ветка реестра HKEY_LOCAL_MACHINESYSTEM. Ниже перечислены пять кустов и их функции в Windows: HKEY_CLASSES_ROOT (HKCR): этот куст отвечает за правильное выполнение всех текущих приложений в проводнике Windows. Кроме того, этот куст содержит сведения о ярлыках и правилах перетаскивания в операционной системе хоста. HKEY_CURRENT_USER (HKCU): этот куст хранит информацию о текущей учетной записи пользователя в локальной системе. Эта информация будет включать настройки панели управления, настройки папок и настройки персонализации пользователя. HKEY_LOCAL_MACHINE (HKLM): этот куст отвечает за хранение специфичных для оборудования деталей операционной системы, таких как конфигурация системы и подключенные диски. HKEY_USERS (HKU): содержит данные конфигурации профилей пользователей в локальной системе. HKEY_CURRENT_CONFIG (HKCC): содержит подробную информацию о текущих конфигурациях системы. Для доступа к реестру используйте Registry Editor (regedit) в строке поиска Windows. На следующем рисунке показан редактор реестра Windows: Как показано на предыдущем рисунке, вы можете видеть, что каждый куст находится в верху своего уровня. Если вы развернете куст, вы увидите папки, а в каждой папке есть ключи, которые содержат сведения о конкретной функции или конфигурации в операционной системе. Реестр может предоставить ценную информацию во время расследования. В каждом реестре есть значение, известное как LastWrite, которое просто указывает время последнего изменения объекта или файла. Эта информация может использоваться для определения времени инцидента или события, связанного с безопасностью. В реестре также содержатся сведения о приложениях, которые запускаются автоматически со стартом системы - AutoRun. Для закрепления в системе, злоумышленники часто модифицируют ветки реестра, которые отвечают за автоматический запуск процессов и сервисов и добавляют в них ссылки на вредоносные программы, чтобы они каждый раз запускались со стартом системы и могли пережить перезагрузку. Ниже приведены основные ветки, отвечающие за автоматический старт приложений и сервисов: [HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRunOnce] [HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRun] [HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRunServices] [HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRunServicesOnce] [HKEY_LOCAL_MACHINESoftwareMicrosoftWindows NTCurrentVersionWinlogonUserinit] [HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionRun] [HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionRunOnce] [HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionRunServices] [HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionRunServicesOnce] [HKEY_CURRENT_USERSoftwareMicrosoftWindows NTCurrentVersionWindows] Например, чтобы при каждом старте Windows запускался блокнот, в ветку [HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionRun] можно добавить новое значение и указать в нём ссылку на исполняемый файл на компьютере - "Notepad"="c:windows otepad.exe" Windows Management Instrumentation Управлять несколькими компьютерами с ОС Windows в небольшой сети очень просто. Однако по мере роста сети и подключения все большего числа устройств на базе Windows управление политиками и службами на уровне приложений может стать сложной задачей. Windows Management Instrumentation (WMI) - это инструмент, встроенный в операционную систему Windows, который позволяет системному администратору или специалисту по безопасности управлять многими системами на базе Windows в корпоративной сети. WMI - это функция администрирования Windows, которая обеспечивает единую среду для локального и удаленного доступа к системным компонентам Windows, а также позволяет собирать статистическую информацию об удаленных компьютерах в вашей сети. Вы сможете собирать статистику как по оборудованию, так и по программному обеспечению и даже отслеживать состояние каждого устройства. Чтобы открыть WMI на компьютере с Windows, выполните следующие действия: Откройте приложение Computer Management (управление компьютером) в Windows 10/Server 2019. Слева разверните «Службы и приложения». Щелкните правой кнопкой мыши элемент управления WMI и выберите «Свойства». На следующем рисунке показан интерфейс свойств элемента управления WMI: Злоумышленники могут использовать инструментарий управления Windows (WMI) для удаленного управления. WMI работает через протоколы SMB и службу удаленного вызова процедур (RPCS) для удаленного доступа. RPCS работает через порт 135. WMI управляется через утилиту командной строки WMI command-line (WMIC). Пример команды - wmic process call create. Использование WMI должно быть ограничено и ограничиваться только авторизованными пользователями, внимательно следя за его использованием. Инструменты мониторинга В операционной системе Windows существует множество инструментов мониторинга, которые специалист по безопасности может использовать для мониторинга различных ресурсов и действий на устройстве. Одним из таких инструментов является Performance Monitor, который позволяет пользователю собирать более подробные данные, чем ранее упомянутый Resource Monitor. Монитор производительности (системный монитор) - это основной инструмент, используемый как в Windows 10, так и в Windows Server. Специалист по безопасности может использовать этот инструмент для сбора статистики о системе за различные периоды времени, например, часы или дни. Затем собранные данные можно проанализировать на предмет любых аномалий. На следующем рисунке показан монитор производительности в системе Windows 10/Server 2019: Еще одним отличным инструментом, встроенным в Windows, является Монитор стабильности системы. Монитор стабильности системы позволяет специалисту по безопасности просматривать историю проблем, возникших в основной системе в течение нескольких дней или недель. Пользователь может нажать на событие в инструменте, чтобы получить подробную информацию о проблеме, и существует система оценок от 1 до 10, отражающая серьезность проблемы. На следующем рисунке показан Монитор стабильности системы на компьютере с Windows 10: Как показано на предыдущем рисунке, в системе произошел ряд критических событий за определенный период времени. Выбрав событие, монитор покажет подробную информацию о службе или приложении, вызвавшем событие, сводку и время его возникновения. Специалист по безопасности может использовать статистику и информацию, найденные здесь, чтобы лучше понять, вызвало ли вредоносное ПО или неавторизованные приложения нарушение безопасности в хост-системе. Инструменты мониторинга Когда в системе Windows происходит какое-либо событие, создается сообщение журнала о данном событии. Инструмент, позволяющий анализировать данные события - Event Viewer. Event Viewet содержит журналы безопасности, приложений и системных событий. Представьте, что злоумышленник пытается войти в учетную запись пользователя с неверными учетными данными. Для каждой попытки создастся событие сообщения журнала, и по этим данным можно будет обнаружить атаку. Существует 4 основных журнала событий: Security Безопасность - хранит события безопасности Application Приложение - хранит журналы приложений в ситстеме и установленного ПО Setup Установка - хранит сведения об установке ОС System Система - хранит сведения о работе самой системы На следующем рисунке показан инструмент просмотра событий в Windows (Event Viewer): Если вы развернете категорию, такую как Безопасность, вы увидите список всех журналов, связанных с безопасностью. На следующем снимке экрана показаны сведения в окне просмотра событий входа в систему безопасности: Информация, содержащаяся в сообщениях журнала, помогает специалисту по безопасности определить, что, когда и как произошел инцидент в системе. Обратите внимание на код события - 4624. Этот код соответствует успешному входу в системе Windows. В случае неуспешного входа сгенерируется событие с кодом 4625. Данные события также будут содержать другую полезную информацию, такую как: имя пользователя, осуществляющего вход, информацию о системе с которой осуществляется вход, тип входа (интерактивный, удаленный, сетевой, вход сервиса), процесс входа, ID входа и другое. Другие важные коды событий в системах Windows, хранящиеся в журнале Безопасности/Security (начиная с версии 7): 4725 - Отключение Учетной записи 4723 - Изменение пароля учетной записи 4724 - Сброс пароля для учетной записи 47204726 - Созданиеудаление пользователя 4648 - вход с явным указанием учетных данных 4698 - Создание задачи через планировщик задач 4697 - Создание службы в системе 46884689 - Созданиезавершение процесса
img
Девятая часть тут. Ни одна среда передачи данных не может считаться совершенной. Если среда передачи является общей, как радиочастота (RF), существует возможность возникновения помех или даже столкновений дейтаграмм. Это когда несколько отправителей пытаются передать информацию одновременно. Результатом является искаженное сообщение, которое не может быть понято предполагаемым получателем. Даже специализированная среда, такая как подводный оптический кабель типа point-to-point (световолновой), может испытывать ошибки из—за деградации кабеля или точечных событий-даже, казалось бы, безумных событий, таких как солнечные вспышки, вызывающие излучение, которое, в свою очередь, мешает передаче данных по медному кабелю. Существует два ключевых вопроса, на которые сетевой транспорт должен ответить в области ошибок: Как можно обнаружить ошибки при передаче данных? Что должна делать сеть с ошибками при передаче данных? Далее рассматриваются некоторые из возможных ответов на эти вопросы. Обнаружение ошибок Первый шаг в работе с ошибками, независимо от того, вызваны ли они отказом носителя передачи, повреждением памяти в коммутационном устройстве вдоль пути или любой другой причиной, заключается в обнаружении ошибки. Проблема, конечно, в том, что когда получатель изучает данные, которые он получает, нет ничего, с чем можно было бы сравнить эти данные, чтобы обнаружить ошибку. Проверка четности — это самый простой механизм обнаружения. Существуют два взаимодополняющих алгоритма проверки четности. При четной проверке четности к каждому блоку данных добавляется один дополнительный бит. Если сумма битов в блоке данных четная—то есть если в блоке данных имеется четное число битов 1, то дополнительный бит устанавливается равным 0. Это сохраняет четное состояние четности блока. Если сумма битов нечетна, то дополнительный бит устанавливается равным 1, что переводит весь блок в состояние четной четности. Нечетная четность использует ту же самую дополнительную битную стратегию, но она требует, чтобы блок имел нечетную четность (нечетное число 1 бит). В качестве примера вычислите четную и нечетную четность для этих четырех октетов данных: 00110011 00111000 00110101 00110001 Простой подсчет цифр показывает, что в этих данных есть 14 «1» и 18 «0». Чтобы обеспечить обнаружение ошибок с помощью проверки четности, вы добавляете один бит к данным, либо делая общее число «1» в недавно увеличенном наборе битов четным для четной четности, либо нечетным для нечетной четности. Например, если вы хотите добавить четный бит четности в этом случае, дополнительный бит должен быть установлен в «0». Это происходит потому, что число «1» уже является четным числом. Установка дополнительного бита четности на «0» не добавит еще один «1» и, следовательно, не изменит, является ли общее число «1» четным или нечетным. Таким образом, для четной четности конечный набор битов равен: 00110011 00111000 00110101 00110001 0 С другой стороны, если вы хотите добавить один бит нечетной четности к этому набору битов, вам нужно будет сделать дополнительный бит четности «1», так что теперь есть 15 «1», а не 14. Для нечетной четности конечный набор битов равен: 00110011 00111000 00110101 00110001 1 Чтобы проверить, были ли данные повреждены или изменены при передаче, получатель может просто отметить, используется ли четная или нечетная четность, добавить число «1» и отбросить бит четности. Если число «1» не соответствует используемому виду четности (четное или нечетное), данные повреждены; в противном случае данные кажутся такими же, как и первоначально переданные. Этот новый бит, конечно, передается вместе с оригинальными битами. Что произойдет, если сам бит четности каким-то образом поврежден? Это на самом деле нормально - предположим, что даже проверка четности на месте, и передатчик посылает 00110011 00111000 00110101 00110001 0 Приемник, однако, получает 00110011 00111000 00110101 00110001 1 Сам бит четности был изменен с 0 на 1. Приемник будет считать «1», определяя, что их 15. Поскольку даже проверка четности используется, полученные данные будут помечены как имеющие ошибку, даже если это не так. Проверка на четность потенциально слишком чувствительна к сбоям, но в случае обнаружения ошибок лучше ошибиться в начале. Есть одна проблема с проверкой четности: она может обнаружить только один бит в передаваемом сигнале. Например, если даже четность используется, и передатчик отправляет 00110011 00111000 00110101 00110001 0 Приемник, однако, получает 00110010 00111000 00110101 00110000 0 Приемник подсчитает число «1» и обнаружит, что оно равно 12. Поскольку система использует четную четность, приемник будет считать данные правильными и обработает их в обычном режиме. Однако оба бита, выделенные жирным шрифтом, были повреждены. Если изменяется четное число битов в любой комбинации, проверка четности не может обнаружить изменение; только когда изменение включает нечетное число битов, проверка четности может обнаружить изменение данных. Циклическая проверка избыточности (Cyclic Redundancy Check - CRC) может обнаруживать более широкий диапазон изменений в передаваемых данных, используя деление (а не сложение) в циклах по всему набору данных, по одной небольшой части за раз. Работа с примером - лучший способ понять, как рассчитывается CRC. Расчет CRC начинается с полинома, как показано на рисунке 1. На рис. 1 трехчленный многочлен x3 + x2 + 1 расширен, чтобы включить все члены, включая члены, предшествующие 0 (и, следовательно, не влияют на результат вычисления независимо от значения x). Затем эти четыре коэффициента используются в качестве двоичного калькулятора, который будет использоваться для вычисления CRC. Чтобы выполнить CRC, начните с исходного двоичного набора данных и добавьте три дополнительных бита (поскольку исходный полином без коэффициентов имеет три члена; следовательно, это называется трехбитной проверкой CRC), как показано здесь: 10110011 00111001 (оригинальные данные) 10110011 00111001 000 (с добавленными битами CRC) Эти три бита необходимы для обеспечения того, чтобы все биты в исходных данных были включены в CRC; поскольку CRC перемещается слева направо по исходным данным, последние биты в исходных данных будут включены только в том случае, если эти заполняющие биты включены. Теперь начните с четырех битов слева (потому что четыре коэффициента представлены в виде четырех битов). Используйте операцию Exclusive OR (XOR) для сравнения крайних левых битов с битами CRC и сохраните результат, как показано здесь: 10110011 00111001 000 (дополненные данные) 1101 (Контрольные биты CRC) ---- 01100011 00111001 000 (результат XOR) XOR'инг двух двоичных цифр приводит к 0, если эти две цифры совпадают, и 1, если они не совпадают. Контрольные биты, называемые делителем, перемещаются на один бит вправо (некоторые шаги здесь можно пропустить), и операция повторяется до тех пор, пока не будет достигнут конец числа: 10110011 00111001 000 1101 01100011 00111001 000 1101 00001011 00111001 000 1101 00000110 00111001 000 110 1 00000000 10111001 000 1101 00000000 01101001 000 1101 00000000 00000001 000 1 101 00000000 00000000 101 CRC находится в последних трех битах, которые были первоначально добавлены в качестве заполнения; это "остаток" процесса разделения перемещения по исходным данным плюс исходное заполнение. Получателю несложно определить, были ли данные изменены, оставив биты CRC на месте (в данном случае 101) и используя исходный делитель поперек данных, как показано здесь: 10110011 00111001 101 1101 01100011 00111001 101 1101 00001011 00111001 101 1101 00000110 00111001 101 110 1 00000000 10111001 101 1101 00000000 01101001 101 1101 00000000 00000001 101 1 101 00000000 00000000 000 Если данные не были изменены, то результат этой операции всегда должен быть равен 0. Если бит был изменен, результат не будет равен 0, как показано здесь: 10110011 00111000 000 1101 01100011 00111000 000 1101 00001011 00111000 000 1101 00000110 00111000 000 110 1 00000000 10111000 000 1101 00000000 01101000 000 1101 00000000 00000000 000 1 101 00000000 00000001 000 CRC может показаться сложной операцией, но она играет на сильных сторонах компьютера—бинарных операциях конечной длины. Если длина CRC задается такой же, как у стандартного небольшого регистра в обычных процессорах, скажем, восемь бит, вычисление CRC-это довольно простой и быстрый процесс. Проверка CRC имеет то преимущество, что она устойчива к многобитовым изменениям, в отличие от проверки четности, описанной ранее. Исправление ошибок Однако обнаружение ошибки — это только половина проблемы. Как только ошибка обнаружена, что должна делать транспортная система? Есть, по существу, три варианта. Транспортная система может просто выбросить данные. В этом случае транспорт фактически переносит ответственность за ошибки на протоколы более высокого уровня или, возможно, само приложение. Поскольку некоторым приложениям может потребоваться полный набор данных без ошибок (например, система передачи файлов или финансовая транзакция), у них, вероятно, будет какой-то способ обнаружить любые пропущенные данные и повторно передать их. Приложения, которые не заботятся о небольших объемах отсутствующих данных (например, о голосовом потоке), могут просто игнорировать отсутствующие данные, восстанавливая информацию в приемнике, насколько это возможно, с учетом отсутствующей информации. Транспортная система может подать сигнал передатчику, что произошла ошибка, и позволить передатчику решить, что делать с этой информацией (как правило, данные при ошибке будут повторно переданы). Транспортная система может выйти за рамки отбрасывания данных, включив достаточное количество информации в исходную передачу, определить, где находится ошибка, и попытаться исправить ее. Это называется Прямой коррекцией ошибок (Forward Error Correction - FEC). Коды Хэмминга, один из первых разработанных механизмов FEC, также является одним из самых простых для объяснения. Код Хэмминга лучше всего объяснить на примере - для иллюстрации будет использована таблица 1. В Таблице № 1: Каждый бит в 12-битном пространстве, представляющий собой степень двух (1, 2, 4, 6, 8 и т. д.) и первый бит, устанавливается в качестве битов четности. 8-битное число, которое должно быть защищено с помощью FEC, 10110011, распределено по оставшимся битам в 12-битном пространстве. Каждый бит четности устанавливается равным 0, а затем четность вычисляется для каждого бита четности путем добавления числа «1» в позиции, где двоичный бит имеет тот же бит, что и бит четности. В частности: P1 имеет набор крайних правых битов в своем битовом номере; другие биты в числовом пространстве, которые также имеют набор крайних правых битов, включены в расчет четности (см. вторую строку таблицы, чтобы найти все позиции битов в номере с набором крайних правых битов). Они указаны в таблице с X в строке P1. Общее число «1»-нечетное число, 3, поэтому бит P1 устанавливается равным 1 (в этом примере используется четная четность). P2 имеет второй бит из правого набора; другие биты в числовом пространстве, которые имеют второй из правого набора битов, включены в расчет четности, как указано с помощью X в строке P2 таблицы. Общее число «1»-четное число, 4, поэтому бит P2 установлен в 0. P4 имеет третий бит из правого набора, поэтому другие биты, которые имеют третий бит из правого набора, имеют свои номера позиций, как указано с помощью X в строке P3. В отмеченных столбцах есть нечетное число «1», поэтому бит четности P4 установлен на 1. Чтобы определить, изменилась ли какая-либо информация, получатель может проверить биты четности таким же образом, как их вычислял отправитель; общее число 1s в любом наборе должно быть четным числом, включая бит четности. Если один из битов данных был перевернут, приемник никогда не должен найти ни одной ошибки четности, потому что каждая из битовых позиций в данных покрыта несколькими битами четности. Чтобы определить, какой бит данных является неправильным, приемник добавляет позиции битов четности, которые находятся в ошибке; результатом является положение бита, которое было перевернуто. Например, если бит в позиции 9, который является пятым битом данных, перевернут, то биты четности P1 и P8 будут ошибочными. В этом случае 8 + 1 = 9, так что бит в позиции 9 находится в ошибке, и его переворачивание исправит данные. Если один бит четности находится в ошибке—например, P1 или P8—то это тот бит четности, который был перевернут, и сами данные верны. В то время как код Хэмминга гениален, есть много битовых шаблонов-перевертышей, которые он не может обнаружить. Более современный код, такой как Reed-Solomon, может обнаруживать и исправлять более широкий диапазон условий ошибки, добавляя меньше дополнительной информации в поток данных. Существует большое количество различных видов CRC и кодов исправления ошибок, используемых во всем мире связи. Проверки CRC классифицируются по количеству битов, используемых в проверке (количество битов заполнения или, точнее, длины полинома), а в некоторых случаях - по конкретному применению. Например, универсальная последовательная шина использует 5-битный CRC (CRC-5-USB); Глобальная система мобильной связи (GSM), широко используемый стандарт сотовой связи, использует CRC-3-GSM; Мультидоступ с кодовым разделением каналов (CDMA), другой широко используемый стандарт сотовой связи, использует CRC-6-CDMA2000A, CRC-6-CDMA2000B и CRC-30; и некоторые автомобильные сети (CAN), используемые для соединения различных компонентов в автомобиле, используют CRC-17-CAN и CRC-21-CAN. Некоторые из этих различных функций CRC являются не единственной функцией, а скорее классом или семейством функций со многими различными кодами и опциями внутри них.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59