По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Proxy-server - это программное обеспечение, которое устанавливается на определенной рабочей машине и позволяет обращаться некоторым компьютерам к другим компьютерам от своего имени. Если же говорить простыми словами, пользователю даются полномочия использовать возможности другого лица. Proxy-сервер является посредником между пользователями и сетью интернет, так же как и VPN-сервисы, прокси изменяет ваш сетевой адрес. Приведем пример с отдыхом за пределами вашей страны. Допустим, вам требуется посмотреть прямую трансляцию той или иной передачи, но на трансляцию наложено ограничение на просмотр. Используя прокси-сервер вы можете сымитировать российский IP-адрес, тогда уже вы получите доступ к защищенной трансляции. Нужно понимать, что прокси-сервер просто маскирует ваш IP-адрес, но никак не шифрует его, то есть, все данные, которые вы отправляете не являются анонимными. Security Web Gateway (Шлюзы информационной безопасности) SWG (Security Web Gateway) - является аппаратной и программной системой, которая выполняет безопасный вход в интернет, а также безопасно использовать некоторые веб-приложения. Сотрудники компаний могут являться самой основной причиной успешных атак на ресурсы компании, если быть точнее, то использование ими различных ресурсов и передача их в сети интернет. Выделим несколько опасностей, на которые требуется обращать внимание при доступе во внешнюю сеть: Выполнение сетевых атак на ОС сотрудников Атаки на приложения, а также браузеры которые не защищены. Добавление вредоносного ПО. Если вы будете использовать защищенные веб-шлюзы, тогда вы сможете защититься с помощью основных опций: Фильтрация вредоносного кода в интернет трафике. Выявление слива информации. Фильтрация данных. Если вы решили выбрать класс защиты SWG, тогда вам стоит обратить внимание на следующие возможности: Обнаружение вредоносного ПО происходит за счет полного сканирования интернет-трафика. Выполняется сканирование SSL-трафика. Управление полосой пропускания списками пользователей или ресурсов. Поскольку шлюз развертывается на границе внутренней и внешней сети компании, он позволяет защитить все ресурсы организации и нейтрализовать последствия возможных атак. Если на рабочем месте сотрудника отключен антивирус, шлюз может перехватить вирус или заблокировать соединение с вредоносным ресурсом. В настоящее время ассортимент защищенных интернет-шлюзов на российском рынке представлен в основном зарубежными разработчиками. Однако среди отечественных производителей вы также можете найти оборудование, которое включает трафик, контролирует доступ и даже организует IP-телефонию. Описанные выше возможности пересекаются с другим решением по сетевой безопасности, а именно с брандмауэрами следующего поколения (NGFW). Разница заключается в возможностях межсетевого экрана решения NGFW, в то время как Security Web Gateway имеет встроенный прокси-сервер. Поэтому, если брандмауэр уже установлен и настроен в компании, рекомендуется выбрать безопасный интернет-шлюз и наоборот в случае прокси-сервера. Популярные прокси-серверы Ниже приведем список популярных прокси-серверов в настоящее время: NordVPN ExpressVPN CyberGhost PrivateVPN Hotspot Shield Зачем нужно использовать прокси? Если у вас установлен и качественно настроен прокси-сервер, вы можете, среди прочего, отфильтровать подозрительные и нежелательные данные. Например, прокси-сервер HTTP предназначен для блокировки исходящего трафика от троянов, которые каким-то образом незаметно проникли в вашу систему и попытались отправить данные из секретных портов злоумышленнику. Прокси-сервер SMTP предназначен для защиты электронной почты от вредоносных вложений, выполняя анализ входящего трафика, который атакует почтовый сервер и блокирует его. Приведем некоторый пример с программным обеспечением Microsoft Exchange 5.5, в которой достаточно было злоумышленнику отправить неожиданную строчку знаков. Но, всему этому мешает прокси-сервер SMTP Firebox, который ограничивает максимальное значение символов в строке, и за счет этого уменьшил количество атаки такого типа. Было время, когда большинство производителей довольно-таки редко рассказывали об уязвимостях в безопасности. В настоящее время же идет очень много разговоров о различных дырах в безопасности, что защита с использованием Proxy-server становится на первое место. Возможно, многие пользователи больше предпочли бы следить за выходом нового обновления, надеясь на то, что производители устранили дыры в системе безопасности, но увы, не всегда постоянное обновления программных продуктов решают свои прежние проблемы, добавляя еще новых. Где найти Proxy-server? Возможность использовать высококачественные прокси-серверы можно найти в программном обеспечении FireBox. Их можно найти в диспетчере политик: Редактировать - Добавить службу - Прокси-серверы. Когда вы развернете его, вы найдете полный список серверов. Описание каждого Proxy-сервера Ниже обсудим короткое описание самых популярных Proxy-серверов: Proxy-сервер SMTP - выполняет роль защиты электронной почты. К предполагаемым угрозам от злоумышленников возможно выделить: вложения, которые имеют вредоносный код; информация, нарушающая политику безопасности. SMTP допускает возможность выбрать тип доступных вложений, также возможно указать максимальный размер письма, допустимые заголовки, символы и тому подобное. Представленный прокси-сервер по умолчанию всегда включен. Proxy-сервер HTTP - обеспечивает защиту интернет трафика. Большинство Web-серверов используют 80 порт. Представленный прокси обеспечивает защиту интернет трафика, не позволяя злоумышленникам вторгнуться через другой порт. Но также существует множество различных законных продуктов, которые используют другой порт для передачи информации. Поэтому для продуктивной защиты трафика требуется использовать настроенную службу прокси-HTTP. Proxy-сервер FTP - выполняет защиту трафика, который работает через протокол передачи данных. Мы можем выделить приемлемые угрозы с FTP: хакеры пытаются сохранить недопустимые файлы на вашем FTP-сервере, также используют ваш FTP-сервер для незаконных действий, например, они атакуют другой FTP-сервер, и выполнение защиты по передаче файлов на другой адрес пытаясь обойти сетевой брандмауэр. С помощью FTP вы можете заблокировать все угрозы. Proxy-сервер H.323 - выполняет защиту протокола, который используется в мультимедийных приборах. Представленный прокси-сервер чаще всего используется в программных продуктах, как NetMeeting, CU-SeeMe, веб-камерах и прочее. Данный протокол чаще открывает порты с высоким номером, но открывается их минимальное число, к примеру когда идет видеосвязь, по окончанию закрывает их. Прокси-сервер также выполняет защиту трафика, каковой пытается подключиться при работе.
img
В этом материале расскажем, как можно фильтровать маршруты, анонсируемые протоколом динамической маршрутизации EIGRP. Данный материал предполагает, что у читателя есть начальные навыки работы с сетью или как минимум знания на уровне CCNA. Поэтому о том, что такое динамическая маршрутизация в этом материале не будет рассказано, так как тема достаточно большая и займет не одну страницу. Теперь представим, что мы работаем в большой компании с сотнями серверов, десятками филиалов. Мы подняли сеть, настроили динамическую маршрутизацию и все счастливы. Пакеты ходят куда надо, как надо. Но в один прекрасный день, нам сказали, что на маршрутизаторах филиалов не должно быть маршрутов к сетям отдела производства. На рисунке ниже представлена упрощенная схема нашей вымышленной сети. Конфигурацию всех устройств из этой статьи (для каждой ноды) можно скачать в архиве по ссылке ниже. Скачать конфиги тестовой лаборатории Мы конечно можем убрать из-под EIGRP указанные сети, но в этом случае из сетей в головном офисе тоже не будет доступа к сетям отдела производства. Именно для таких случаев была придумана такая возможность, как фильтрация маршрутов. В EIGRP это делается командой distribute-list в конфигурации EIGRP. Принцип работы distribute-list (список распределения) прост: список распределения работает по спискам доступа (ACL), спискам префиксов (prefix-list) или карте маршрутов (route-map). Эти три инструмента определяют будут ли анонсироваться указанные сети в обновлениях EIGRP или нет. В команде distribute-list также можно указать направление обновлений: входящие или исходящие. Также можно указать конкретный интерфейс, где должны фильтроваться обновления. Полная команда может выглядеть так: distribute-list acl [in | out][interface-type interface-number] Фильтрация маршрутов с помощью списков доступа Первым делом рассмотрим фильтрацию с помощью ACL. Фильтрация маршрутов EIGRP с помощью списков ACL основан на разрешающих и запрещающих действиях списков доступа. То есть, чтобы маршрут анонсировался, в списке доступа он должен быть указан с действием permit, а deny, соответственно, запрещает анонсирование маршрута. При фильтрации, EIGRP сравнивает адрес источника в списке доступа с номером подсети (префиксом) каждого маршрута и принимает решение на основе действий, указанных в ACL. Чтобы лучше узнать принцип работы приведём примеры. Для фильтрации маршрутов, указанных на рисунке выше нужно создать ACL, где каждый указанный маршрут сопровождается командой deny, а в конце следует прописать permit any, чтобы остальные маршруты могли анонсироваться: access-list 2 deny 10.17.32.0 0.0.1.255 access-list 2 deny 10.17.34.0 0.0.0.255 access-list 2 deny 10.17.35.0 0.0.0.127 access-list 2 deny 10.17.35.128 0.0.0.127 access-list 2 deny 10.17.36.0 0.0.0.63 access-list 2 deny 10.17.36.64 0.0.0.63 access-list 2 permit any А на интерфейсе настройки EGRP прописываем: distribute-list 2 out s4/0 Проверим таблицу маршрутизации до и после применения указанных команд. Фильтрацию будем проводить на WAN маршрутизаторах. Как видим все маршруты до сети отдела Производства видны в таблице маршрутизации филиала. Теперь применим указанные изменения: И посмотрим таблицу маршрутов роутера филиала еще раз: Все маршруты в отдел производства исчезли из таблицы маршрутизации. Правда, можно было обойтись и одной командой в списке доступа, но для наглядности решили прописать все адреса. А более короткую версию можете указать в комментариях к этому посту. Кстати, фильтрацию в данном примере мы применили на один интерфейс, но можно применить и на все интерфейсы, на которых включен EIGRP. Для этого команду distribute-list нужно ввести без указания конкретного интерфейса. distribute-list 2 out Следует отметить, что для правильной работы фильтрации в нашей топологии на маршрутизаторе WAN2 нужно прописать те же настройки, что и на WAN1. Фильтрация маршрутов с помощью списка префиксов В Cisco IOS есть еще один инструмент, который позволяет осуществлять фильтрацию маршрутов prefix-list-ы. Может возникнуть вполне логичный вопрос: а чем не угодили списки доступа? Дело в том, что изначально ACL был разработан для фильтрации пакетов, поэтому для фильтрации маршрутов он не совсем подходит по нескольким причинам: списки IP-префиксов позволяют сопоставлять длину префикса, в то время как списки ACL, используемые командой EIGRP distribution-list, нет; Использование расширенных ACL может оказаться громоздким для конфигурирования; Невозможность определения совпадения маски маршрута при использовании стандартных ACL; Работа ACL достаточно медленна, так как они последовательно применяется к каждой записи в маршрутном обновлении; Для начала разберёмся в принципе работы списка префиксов. Списки IP префиксов позволяют сопоставлять два компонента маршрута: адрес сети (номер сети); длину префикса (маску сети); Между списками доступа и списками префиксов есть общие черты. Как и нумерованные списки доступа, списки префиксов могу состоять из одной и более команд, которые вводятся в режиме глобальной конфигурации и нет отдельного режима конфигурации. Как и в именованных списках доступа, в списках префиксов можно указать номер строки. В целом команда выглядит так: ip prefix-list list-name [ seq seq-value ] { deny | permit prefix / prefix-length } [ ge ge-value ] [ le le-value ] Коротко работу списка префиксов можно описать так: Адрес сети маршрута должен быть в пределах, указанных в команде ip prefix-list prefix/prefix-length. Маска подсети маршрута должна соответствовать значениям, указанным в параметрах prefix-length, ge, le. Первый шаг работает также как и списки доступа. Например, написав ip prefix-list TESTLIST 10.0.0.0/8 мы скажем маршрутизатору, что адрес сети должен начинаться с 10. Но списки префиксов всегда проверяют и на соответствие длины маски сети указанным значениям. Ниже приведено пояснение параметров списка IP-префиксов: Параметр prefix-list-а Значение Не указан 10.0.0.0/8; Маска сети должна быть равной длине, указанной в параметре prefix/prefix-length. Все маршруты, которые начинаются с 10. ge и le (больше чем, меньше чем) 10.0.0.0/8 ge 16 le 24 Длина маски должна быть больше 16, но меньше 24. А первый байт должен быть равен 10-ти. le меньше чем 10.0.0.0/8 le 24 Длина маски должна быть от восьми до 24-х включительно. ge больше чем 10.0.0.0/8 ge 24 Длина маски должна быть равна или больше 24 и до 32-х включительно. Учтите, что Cisco требует, чтобы параметры prefix-length, ge и le соответствовали следующему равенству: prefix-length <= ge-value <= le-value (8<=10<=24). А теперь перейдем непосредственно к настройке фильтрации с помощью списка префиксов. Для этого в интерфейсе конфигурации EIGRP прописываем distribute-list prefix prefix-name. Воспользуемся той же топологией и введём некоторые изменения в конфигурацию маршрутизатора WAN1, точно такую же конфигурацию нужно прописать и на WAN2. Итак, наша задача: отфильтровать маршруты в сети 10.17.35.0 и 10.17.36.0; отфильтровать маршруты сетей точка-точка так, чтобы маршрутизаторы в филиалах и на коммутаторах ядра (Core1 и Core2) не видели сети с длиной маски /30 бит. Так как трафик от пользователей в эти сети не идет, следовательно, нет необходимости анонсировать их в сторону пользователей. Для этого создаем prefix-list с названием FILTER-EIGRP и добавим нужные сети: ip prefix-list FILTER-EIGRP seq 5 deny 10.17.35.0/24 ge 25 le 25 ip prefix-list FILTER-EIGRP seq 10 deny 10.17.36.0/24 ge 26 le 26 ip prefix-list FILTER-EIGRP seq 15 deny 0.0.0.0/0 ge 30 le 30 ip prefix-list FILTER-EIGRP seq 20 permit 0.0.0.0/0 le 32 Удалим из конфигурации фильтрацию по спискам доступа и проверим таблицу маршрутизации: А теперь применим наш фильтр и затем еще раз проверим таблицу маршрутизации: Как видим из рисунка, маршрутов в сети 10.17.35.0, 10.17.36.0 и сети для соединений точка-точка между сетевыми устройствами в таблице уже нет. А теперь объясним что мы сказали маршрутизатору: ip prefix-list FILTER-EIGRP seq 5 deny 10.17.35.0/24 ge 25 le 25 Все сети, которые начинаются на 10.17.35 и имеют длину 25 бит запретить. Под это условие попадают сети 10.17.35.0/25 и 10.17.35.128/25. Длине префикса /25 соответствует маска 255.255.255.128. ip prefix-list FILTER-EIGRP seq 10 deny 10.17.36.0/24 ge 26 le 26 Все сети, которые начинаются на 10.17.36 и имеют длину 26 бит запретить. Под это условие попадают сети 10.17.36.0/26 и 10.17.36.64/26. Длине префикса /26 соответствует маска 255.255.255.192. ip prefix-list FILTER-EIGRP seq 15 deny 0.0.0.0/0 ge 30 le 30 Все сети, длина префикса которых равна 30 бит - запретить. В нашей топологии под это условие попадают сети 10.1.1.0/30, 10.1.1.4/30, 10.1.2.0/30, 10.1.2.4/30 все сети которые начинаются на 10.9.2. ip prefix-list FILTER-EIGRP seq 20 permit 0.0.0.0/0 le 32 Все сети, префикс которых имеет длину до 32-х бит разрешить. Под это условие попадают все остальные сети топологии. Фильтрация маршрутов с помощью route-map Далее пойдет речь о картах маршрутов или route-map-ах. В целом, в работе сети route-map-ы используются довольно часто. Этот достаточно гибкий инструмент дает возможность сетевому инженеру тонко настраивать маршрутизацию в корпоративной сети. Именно поэтому следует хорошо изучить принцип их работы, чем мы и займемся сейчас. А дальше покажем, как фильтровать маршруты с помощью этого инструмента. Route-map применяет логику похожую на логику if, else, then в языках программирования. Один route-map может включать в себя несколько команд route-map и маршрутизатор выполняет эти команды поочередно согласно номеру строки, который система добавляет автоматически, если не был указан пользователем. После того как, система нашла соответствие маршрута условию и определила разрешить анонсирование или нет, маршрутизатор прекращает выполнение команды route-map для данного маршрута, даже если дальше указано другое условие. Каждый route-map включает в себя критерии соответствия, который задается командой match. Синтаксис route-map выглядит следующим образом: route-map route-map-name {permit | deny} seq sequence-number match (1st set of criteria) Как и в случае с ACL или prefix-list, в route-map тоже можно указать порядковый номер строки для добавления или удаления соответствующего правила. В команде match можно указать ACL или prefix-list. Но тут может возникнуть недоразумение. А связано оно с тем, как обрабатываются route-map Cisco IOS. Дело в том, что решение о запрете или допуске маршрута основано на команде deny или permit команды route-map. Другими словами, маршрут будет обработан route-map-ом если в ACL или prefix-list-е данный маршрут сопровождается командой permit. Иначе, route-map проигнорирует данную запись и перейдет к сравнению со следующим условием route-map. Поясним на примере: access-list 101 permit 10.17.37.0 0.0.0.255 access-list 102 deny 10.17.35.0 0.0.0.127 route-map Test permit 5 match ip-address 101 route-map Test deny 10 match ip-address 102 В данном случае маршрут 10.17.37.0 будет обработан route-map 5, а маршрут 10.17.35.0 будет проигнорирован, так как в списке доступа под номером 102 он запрещён и не попадёт под критерий соответствия route-map. Приведём ключевые пункты работы route-map при фильтрации маршрутов: Команда route-map с опцией permit либо разрешит анонсирование маршрута, если он соответствует критерию, указанному в команде match, либо пропустит для обработки следующим пунктом. Команда route-map с опцией deny либо запретит анонсирование маршрута, если он соответствует критерию, указанному в команде match, либо пропустит для обработки следующим пунктом. Если команда match основывается на ACL или prefix-list-ы, а в ACL или prefix-list-ах указанный маршрут прописан с действием deny, то маршрут не будет отфильтрован. Это будет означать, что маршрут не соответствует критерию, указанному в команде match и его нужно пропустить для обработки следующим пунктом. В конце каждого route-map существует явный запрет; чтобы пропустить все маршруты, которые не попали под критерии, нужно указать команду route-map с действием permit без опции match. Для того чтобы задействовать route-map в фильтрации маршрутов используется та же команда distribute-list с опцией route-map route-map-name. Внесём некоторые изменения в конфигурацию маршрутизатора WAN1. Точно такие же изменения нужно будет сделать на WAN2. Используем те же префикс-листы, что и в предыдущем примере с незначительными редактированиями: ip prefix-list MANUFACTURING seq 5 permit 10.17.35.0/24 ge 25 le 25 ip prefix-list MANUFACTURING seq 10 permit 10.17.36.0/24 ge 26 le 26 ip prefix-list POINT-TO-POINT seq 5 permit 0.0.0.0/0 ge 30 le 30 После внесения изменений маршрутов в сеть производства, а также в сети точка-точка таблице маршрутизации на роутерах филиалов не окажется. Также на Core1 не будет маршрута до сетей point-to-point: Мы рассмотрели фильтрацию маршрутов в EIGRP тремя способами. Хорошим тоном считается использование списка префиксов, так как они заточены именно под эти цели. А использование карты маршрутизации или route-map-ов неэффективно из-за большего количества команд для конфигурации. В следующем материале рассмотрим фильтрацию в домене OSPF.
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