3.Информационные
системы по выбору сушильного оборудования.
4.
Выбор оборудования для формования
лекарственных средств.
5.
Оптимизация работы биореакторов.
6.
Информационные системы в области
мониторинга акваэкосистем.
7
.Защита сетевого оборудования.
8.
Программы обнаружения и защиты от
вирусов.
9.
Организация локальных сетей на базе
персональных компьютеров.
10.
Информационно-экспертная система
проектирования сложных технологических
систем измельчения
11.
Проектирование сооружений переработки
и утилизации осадков сточных вод с
использованием элементов компьютерных
информационных технологий
12.
Информационно-техническое обеспечение
выполнения проектов подпрограммы и
создание баз данных по разрабатываемым
химическим продуктам и технологиям
13.
Проектирование сетевой информационной
системы управления поставками топлива
для ТЭС
14.
Информационный анализ в химической
технологии: Стратегия и тактика
энергосбережения
15.
Роль компьютерных технологий в обмене
и управлении информацией в химической
промышленности
Задания
к лабораторной работе 4.3 Работа с базами
данных FIPS,
USPTO,
EP/ESPACENET.
Найти
данные и представить в отчете.
Задание
1.
1.Найти
в базе данных Российских патентов и
описать: СИСТЕМА ЗАЩИТЫ ИНФОРМАЦИОННОГО
СОДЕРЖАНИЯ, УСТРОЙСТВО ГЕНЕРАЦИИ ДАННЫХ
КЛЮЧЕЙ И ОКОНЕЧНОЕ УСТРОЙСТВО.
Определить
содержание рубрики МПК в 7-й редакции
2.
Найти и описать в европейской патентной
базе данных: Способ и устройство для
обмена данными между пользователями,
связанными линейной системой.(
Method
and device for the exchange of data between at least two users
connected to a bus system)
Определить
содержание соответствующей рубрики
МПК в 7-й редакции.
3.
Найти в американской патентной базе
данных и описать патент № 7,073,070.
Определить содержание рубрики МПК в
7-й редакции, фирму-заявитель.
Задание
2.
1.
Найти в базе данных Российских патентов
и описать: УПРАВЛЕНИЕ ДОСТУПОМ УСТРОЙСТВА
К ПАМЯТИ.
Определить
содержание рубрики МПК в 7-й редакции
2.Найти
и описать в европейской патентной базе
данных: Способ поиска в форматированных
базах данных. (METHOD
FOR
RETRIEVAL
IN
FORMATTED—DATA
BASES)
Определить содержание соответствующей
рубрики МПК в 7-й редакции.
3.
Найти в американской патентной базе
данных и описать патент №7,065,509
Определить
содержание рубрики МПК в 7-й редакции,
инвенторов.
Задание
3.
1.
1. Найти в базе данных Российских патентов
и описать: СПОСОБ ЗАЩИТЫ КОММУТАЦИОННОЙ
АППАРАТУРЫ И УСТРОЙСТВО ДЛЯ ЕГО
ОСУЩЕСТВЛЕНИЯ.
Определить
содержание рубрики МПК в 7-й редакции
2.
.Найти и описать в европейской патентной
базе данных: Способ и устройство для
синхронизации множества баз данных.
(METHOD
AND
DEVICE
FOR
SYNCHRONIZING
PLURAL
DATA
BASES).
Определить содержание соответствующей
рубрики МПК в 7-й редакции.
3.
. Найти в американской патентной базе
данных и описать патент №7,007,304.
Задание
4.
1.
Найти в базе данных Российских патентов
и описать: УСТРОЙСТВО МОНИТОРИНГА
БЕЗОПАСНОСТИ АВТОМАТИЗИРОВАННЫХ СИСТЕМ.
Определить
содержание рубрики МПК в 7-й редакции.
2.
Найти и описать в европейской патентной
базе данных: Система и способ синхронизации
баз данных между множеством устройств.
(SYSTEM
AND METHOD FOR SYNCHRONIZING DATA BASES BETWEEN PLURAL DEVICES)
Определить
содержание соответствующей рубрики
МПК в 7-й редакции и фирму-заявителя.
.3.
Найти в американской патентной базе
данных и описать патент № 6,550,008
и фирму –заявитель
Задание
5.
1.
Найти в базе данных Российских патентов
и описать: СИСТЕМА И СПОСОБ ЗАЩИЩЕННОЙ
ПЕРЕДАЧИ ДАННЫХ.
Определить
содержание рубрики МПК в 7-й редакции.
2.
Найти и описать в европейской патентной
базе данных: Способ и обслуживание
поиска документов из множества документов
базы данных. (METHOD
AND SERVICE FOR DOCUMENT RETRIEVAL FROM PLURAL DOCUMENT DATA BASES)
3.
Найти в американской патентной базе
данных и описать патент № 6,167,519.
Задание
6.
1.
Найти в базе данных Российских патентов
и описать: СПОСОБ ОБЕСПЕЧЕНИЯ
КОНФИДЕНЦИАЛЬНОСТИ ИНФОРМАЦИИ.
Определить
содержание рубрики МПК в 7-й редакции.
2.
Найти и описать в европейской патентной
базе данных: Способ и устройство для
гибкого поиска из множественных баз
данных. (METHOD
AND DEVICE FOR FLEXIBLE RETRIEVAL FROM PLURAL DATA BASES).
Определить
содержание соответствующей рубрики
МПК в 7-й редакции и фирму-заявитель.
3.
Найти в американской патентной базе
данных и описать патент № 6,981,046.
Задание
7.
1.
Найти в базе данных Российских патентов
и описать: СПОСОБ, УСТРОЙСТВО И СИСТЕМА,
ПРЕДНАЗНАЧЕННЫЕ ДЛЯ КОДИРОВАНИЯ И
ДЕКОДИРОВАНИЯ ДОПОЛНИТЕЛЬНОЙ ИНФОРМАЦИИ
ПРИ ПЕРЕДАЧЕ МУЛЬТИМЕДИЙНЫХ ДАННЫХ.
Определить
содержание рубрики МПК в 7-й редакции.
2.
Найти и описать в европейской патентной
базе данных: Система и способ для
автоматического анализа баз данных.
(System
and method for automatic analysis of data bases and for
user-controlled dynamic querying).Определить
содержание соответствующей рубрики
МПК в 7-й редакции.
3.
Найти в американской патентной базе
данных и описать патент № 5,748,889.
Задание
8.
1.
Найти в базе данных Российских патентов
и описать: УСТРОЙСТВО И СПОСОБ РЕТРАНСЛЯЦИИ
ДАННЫХ.
Определить
содержание рубрики МПК в 7-й редакции.
2.
Найти и описать в европейской патентной
базе данных: Селективное дифференцирование
процессов диагностики на основании
ширины баз данных.
(SELECTIVE
DIFFERENTIATING DIAGNOSTIC PROCESS BASED ON BROAD DATA BASES).Определить
содержание соответствующей рубрики
МПК в 7-й редакции.
3.
Найти в американской патентной базе
данных и описать патент №7,013,297.
Задание
9.
1.
Найти в базе данных Российских патентов
и описать: ИНФОРМАЦИОННАЯ СИСТЕМА.
Определить
содержание рубрики МПК в 7-й редакции.
2.
Найти и описать в европейской патентной
базе данных: Мониторинг идентификации
пользователей компьютеров при доступе
к базам данных…..(Monitoring
identity
of
computer
users
accessing
data
bases,
and
storing
information
about
the
users
and
the
accessed
data
base.
Определить
содержание соответствующей рубрики
МПК в 7-й редакции.
3.
Найти в американской патентной базе
данных и описать патент №6,850,923. Определить
фирму-заявитель.
Задание
10.
Способ
создания локальной сети и управления
ею. Определить содержание рубрики МПК
в 7-й редакции.
2.Найти
и описать в европейской патентной базе
данных: Устройство для генерации
объектно-ориентированных интерфейсов
для соотношения баз и процессов….
(Device
for generating object-oriented interfaces for relational data bases
and a process implemented by this device).
Определить
содержание рубрики МПК в 7-й редакции.
3.
Найти в
американской патентной базе данных и
описать патент № 6,785,665.
Задание
11.
1.
Найти в базе данных Российских патентов
и описать:
СПОСОБ И УСТРОЙСТВО ДЛЯ ЗАЩИТЫ ИНФОРМАЦИИ
ПОЛЬЗОВАТЕЛЯ ОТ МАНИПУЛЯЦИЙ. Определить
содержание рубрики МПК в 7-й редакции.
2.Найти
и описать в европейской патентной базе
данных: Групповые данные и процесс
управления базами данных….. (GENERIC
DATA AND PROCESS BASE MANAGER AND DATA AND PROCESS BASE MANAGEMENT
SYSTEM FOR HETEROGENOUS DATABASES AND PROCESS BASES).
Определить
содержание рубрики МПК в 7-й редакции и
фирму-заявитель.
3.
Найти в
американской патентной базе данных и
описать патент № 6,747,761.
Задание
12.
1.
Найти в базе данных Российских патентов
и описать:
СПОСОБ
И УСТРОЙСТВО ДЛЯ ЗАЩИТЫ ИНФОРМАЦИИ
ПОЛЬЗОВАТЕЛЯ ОТ МАНИПУЛЯЦИЙ
Определить
содержание рубрики МПК в 7-й редакции.
2.Найти
и описать в европейской патентной базе
данных: Совершенствование защиты прав
доступа к базам данных. (IMPROVEMENTS
CONCERNING ACCESS RIGHTS IN OR TO DATA BASES).
Определить
содержание
рубрики
МПК
в
7-й
редакции.
3.
Найти в
американской патентной базе данных и
описать патент №6,691,122.
Задание
13.
1.
Найти в базе данных Российских патентов
и описать:
СПОСОБ ЗАЩИТЫ ИНФОРМАЦИОННО-ВЫЧИСЛИТЕЛЬНЫХ
СЕТЕЙ ОТ КОМПЬЮТЕРНЫХ АТАК.
Определить
содержание рубрики МПК в 7-й редакции.
2.
Найти и описать в европейской патентной
базе данных: Коммукативная система для
составления запросов при описании баз
данных. (Communication
system for query processing in subscriber data bases)
Определить
содержание
рубрики
МПК
в
7-й
редакции.
3.
Найти в
американской патентной базе данных и
описать патент №6,604,141
Задание
14
1.
Найти в базе данных Российских патентов
и описать:
ИНФОРМАЦИОННЫЙ НОСИТЕЛЬ, УСТРОЙСТВО,
ПОДЛОЖКА И СИСТЕМА.
Определить
содержание рубрики МПК в 7-й редакции.
2.
Найти и описать в европейской патентной
базе данных: Передача данных из контроллера
в базовые станции, объединенные в серии.
(Data
transmission from a controller to successive bases stations linked in
series).
Определить
содержание рубрики МПК в 7-й редакции и
фирму-заявитель.
3.
Найти в
американской патентной базе данных и
описать патент № 6,598,035.
Задание
15
1.
Найти в базе данных Российских патентов
и описать: ИНФОРМАЦИОННЫЙ НОСИТЕЛЬ
ЗАПИСИ, УСТРОЙСТВО ДЛЯ ЗАПИСИ И/ИЛИ
ВОСПРОИЗВЕДЕНИЯ ДАННЫХ В И/ИЛИ ИЗ
ИНФОРМАЦИОННОГО НОСИТЕЛЯ ЗАПИСИ, СПОСОБ
ЗАПИСИ И/ИЛИ ВОСПРОИЗВЕДЕНИЯ ДАННЫХ В
И/ИЛИ ИЗ ИНФОРМАЦИОННОГО НОСИТЕЛЯ ЗАПИСИ
И МАШИНОЧИТАЕМЫЙ НОСИТЕЛЬ ЗАПИСИ, НА
КОТОРОМ ХРАНИТСЯ ПРОГРАММА ДЛЯ ВЫПОЛНЕНИЯ
СПОСОБА.
Определить
содержание рубрики МПК в 7-й редакции
2.
Найти и описать в европейской патентной
базе данных: Способ защиты программ.
(METHOD OF
PROTECTING PROGRAM)
Определить
содержание рубрики МПК в 7-й редакции и
фирму-заявитель
3.
Найти в
американской патентной базе данных и
описать патент №6,085,036
Задание
16
1.
Найти в базе данных Российских патентов
и описать:
УСТРОЙСТВО ДЛЯ ВВОДА-ВЫВОДА ИНФОРМАЦИИ
Определить
содержание рубрики МПК в 7-й редакции.
2.
Найти и описать в европейской патентной
базе данных: Система защиты секретной
информации (SECRET
INFORMATION PROTECTION SYSTEM)
3.
Найти в
американской патентной базе данных и
описать патент №5,557,794
Задание
17
1.
Найти в базе данных Российских патентов
и описать:
СПОСОБ ВВОДА И ПОИСКА ИНФОРМАЦИИ ОБ
ОБЪЕКТЕ ПО ЕГО ИНДИВИДУАЛЬНЫМ ОТЛИЧИТЕЛЬНЫМ
ПРИЗНАКАМ В УДАЛЕННОЙ БАЗЕ ДАННЫХ
ПОСРЕДСТВОМ КОДИРОВАНИЯ СООБЩЕНИЙ,
ПЕРЕДАВАЕМЫХ УСТРОЙСТВАМИ МОБИЛЬНОЙ
СВЯЗИ.
Определить
содержание рубрики МПК в 7-й редакции.
2.
Найти и описать в европейской патентной
базе данных: Способы доступа к данным.
(DATA
ACCESSING METHOD)
3.
Найти в
американской патентной базе данных и
описать патент №5,317,733.
ТЕСТ 1
1. В сетях с
топологией «звезда» сегменты кабеля
расходятся от
_____________________________________________________.
2. Топология
«кольцо» является пассивной.
А) да Б) нет
3. Поскольку
каждый компьютер в сети с топологией
«шина» имеет адрес, то несколько
компьютеров могут одновременно передавать
данные по сети, которые дойдут до
адресуемого компьютера.
А) да Б) нет
4. Компоненты
пакета группируются в три раздела:
___________________, данные и трейлер.
5. Структура
пакета определяется методом связи, или
протоколом, который используют два
компьютера – отправитель и получатель.
А) да Б) нет
6. В одноранговой
сети каждый компьютер может функционировать
и как сервер, и как
________________________________________________.
7. Что справедливо
в отношении одноранговых сетей?
А) Обеспечивает
более надёжный уровень защиты и
управления, чем сети на основе сервера.
Б) Рекомендуется
для сетей с числом пользователей не
более 10.
В) Необходимо
наличие мощного центрального сервера.
Г) Пользователи
обычно рассредоточены на большой
территории.
8. Верхний, или
_____________________________, уровень управляет
общим доступом к сети, потоком данных
и обработкой ошибок.
9. Сетевой уровень.
А) Упаковывает
необработанные биты с Физического
уровня в кадры данных.
Б) Отвечает за
перевод форматных данных.
В) Определяет
маршрут между компьютером-отправителем
и компьютером-получателем.
10. Концентратор.
А) Соединяет
компьютеры.
Б) Централизует
сетевой трафик.
В) Функционирует
как файл- и принт-сервер.
ТЕСТ 2
-
В сетях с
топологией «кольцо» все компьютеры
выступают в роли _______________________________,
усиливая сигнал при его передаче.
2. В сетях с
топологией «звезда» выход из строя
центрального узла, к которому подключены
все компьютеры, влечет за собой выход
из строя всей сети.
А) да Б) нет
3. Какое средство
поможет удлинить кабель в сети с
топологией «линейная шина»?
А) Плата сетевого
адаптера.
Б) Терминатор.
В) Баррел-коннектор.
Г) Модуль
подключения к среде передачи данных.
4. Заголовок
пакета обычно содержит информацию для
проверки ошибок, называемую CRC.
А) да Б) нет
5. Метод доступа
с передачей маркера предотвращает
коллизии благодаря:
А) использованию
кода, который помогает избежать
столкновений маркеров,
Б) наличию
нескольких маркеров, перемещающихся
по разным маршрутам,
В) одномоментному
использованию маркера только одним
компьютером,
Г) использованию
зон для управления интенсивностью
сетевого трафика.
6. Одноранговая
сеть вполне подойдёт, если вопросы
_________________ не принципиальны
7. Канальный
уровень.
А) Упаковывает
необработанные биты с Физического
уровня в кадры данных.
Б) Определяет
метод соединения сетевого кабеля с
адаптером.
В) Определяет
маршрут между компьютером-отправителем
и компьютером-получателем.
8. Каждый уровень
на одном компьютере работает так, будто
он напрямую связан с
____________________________________ уровнем на другом
компьютере.
9. Компьютер –
клиент.
А) Функционирует
и как клиент, и как сервер.
Б) Получает доступ
к совместно используемым ресурсам.
В) Предоставляет
доступ к совместно используемым ресурсам.
10. Маркер.
А) Усиливает
сигнал.
Б) Сигнал в кольце
кабеля.
В) Предотвращает
эффект отражения сигнала.
ТЕСТ 3
1. В сетях с
топологией «звезда» выход из строя
одного компьютера влечет за собой выход
из строя всей сети.
А) да Б) нет
2. При разбиении
больших массивов данных на
______________________, скорость их передача
возрастает настолько, что каждый
компьютер получает возможность принимать
и передавать данные практически
одновременно с остальными компьютерами.
3. Процесс создания
пакета начинается на _____________________ уровне
модели OSI.
4. Каждая плата
сетевого адаптера «видит» все пакеты,
передаваемые по сегменту кабеля, но
только при совпадении адреса пакета с
адресом компьютера она прерывает его
работу.
А) да Б) нет
5. Сети на основе
сервера также называют рабочими группами.
А) да Б) нет
6. Каждый
пользователь в одноранговой сети
управляет разделяемыми ресурсами своего
компьютера. Таким образом, каждого
пользователя можно считать
_____________________________________.
7. Что лучше
характеризует топологию сети «звезда»?
А) Требует
значительно меньшего расхода кабеля,
чем остальные топологии.
Б) Разрыв одного
кабеля останавливает сеть.
В) Труднее
переконфигурировать, чем остальные
топологии.
Г) Централизует
контроль и управление сетью.
8. Каждый уровень
на одном компьютере работает так, будто
он напрямую связан с
____________________________________ уровнем на другом
компьютере.
9. Сеансовый
уровень.
А) Предоставляет
службы, напрямую поддерживающие
приложения пользователя.
Б) Обеспечивает
синхронизацию задач пользователя через
расстановку контрольных точек в потоке
данных.
В) Отвечает за
перевод форматных данных.
10. Компьютер в
одноранговой сети.
А) Функционирует
и как клиент, и как сервер.
Б) Соединяет
компьютеры.
В) Централизует
сетевой трафик.
ТЕСТ 4
1. В сетях с
топологией «звезда» используются
терминаторы.
А) да Б) нет
2. Что лучше всего
характеризует топологию сети «кольцо»?
А) Требует меньшего
расхода кабеля, чем остальные топологии.
Б) Среда передачи
недорога и проста в работе.
В) Равный доступ
для всех компьютеров.
Г) Для правильной
работы требуются терминаторы.
3. Чтобы поглотить
сигнал, предотвращая его отражение, при
топологии «шина» к концам кабеля должны
быть подключены __________________.
4. Процесс создания
пакета начинается на _____________________ уровне
модели OSI.
5. Заголовок
пакета обычно содержит информацию для
проверки ошибок, называемую CRC.
А) да Б) нет
6. Перед отправкой
данных компьютеры «прослушивают»
кабель, чтобы определить присутствие
трафика. Какой метод доступа они при
этом используют?
А) CSMA/CD
(множественный доступ с контролем
несущей с обнаружением коллизий);
Б) CSMA/CА
(множественный доступ с контролем
несущей с предотвращением коллизий);
В) С передачей
маркера;
Г) Опрос.
7. Если вопросы
защиты данных являются для предприятия
важными, необходимо выбрать сеть на
основе сервера.
А) да Б) нет
8. Среда передачи.
А) Предотвращает
эффект отражения сигнала.
Б) Соединяет
компьютеры.
В) Усиливает
сигнал.
9. Физический
уровень.
А) Отвечает за
перевод форматных данных.
Б) Упаковывает
необработанные данные биты с Физического
уровня в кадры данных.
В) Определяет
метод соединения сетевого кабеля с
адаптером.
10.
________________________________________ используется для
маршрутизации, а также указывает на тип
пакета и сегментацию.
ТЕСТ 5
1. Какая топология
является пассивной?
А) Шина.
Б) С передачей
маркера.
В) Кольцо.
Г) Звезда-кольцо.
2. Порядок
_________________________ определяет местонахождение
протокола в стеке.
3. В модели OSI
все сетевые операции разделены на
__________уровней.
4. Какое средство
поможет удлинить кабель в сети с
топологией «линейная шина»?
А) Плата сетевого
адаптера.
Б) Терминатор.
В) Баррел-коннектор.
Г) Модуль
подключения к среде передачи данных.
5. Транспортный
уровень.
А) Обеспечивает
безошибочную передачу сообщений.
Б) Определяет
маршрут между компьютером-отправителем
и компьютером-получателем.
В) Проводит
проверку всех адресов, функционирования
связей и оконечных узлов.
6. В одноранговой
сети каждый компьютер может функционировать
и как сервер, и как
________________________________________________.
7. В сетях на
основе сервера всегда присутствуют
выделенный компьютер.
А) да Б) нет
8. В одноранговой
сети нет выделенных ___________________________.
9. Задача каждого
уровня – предоставление услуг
__________________ уровню, «маскируя» детали
реализации этих услуг.
10. Компьютер –
получатель передаёт __________________________
собранный из пакетов блок данных в том
формате, который он использует.
ТЕСТ 5
1. Какая топология
является пассивной?
А) Шина.
Б) С передачей
маркера.
В) Кольцо.
Г) Звезда-кольцо.
2. Порядок
_________________________ определяет местонахождение
протокола в стеке.
3. В модели OSI
все сетевые операции разделены на
__________уровней.
4. Какое средство
поможет удлинить кабель в сети с
топологией «линейная шина»?
А) Плата сетевого
адаптера.
Б) Терминатор.
В) Баррел-коннектор.
Г) Модуль
подключения к среде передачи данных.
5. Транспортный
уровень.
А) Обеспечивает
безошибочную передачу сообщений.
Б) Определяет
маршрут между компьютером-отправителем
и компьютером-получателем.
В) Проводит
проверку всех адресов, функционирования
связей и оконечных узлов.
6. В одноранговой
сети каждый компьютер может функционировать
и как сервер, и как
________________________________________________.
7. В сетях на
основе сервера всегда присутствуют
выделенный компьютер.
А) да Б) нет
8. В одноранговой
сети нет выделенных ___________________________.
9. Задача каждого
уровня – предоставление услуг
__________________ уровню, «маскируя» детали
реализации этих услуг.
10. Компьютер –
получатель передаёт __________________________
собранный из пакетов блок данных в том
формате, который он использует.
9. Задача каждого
уровня – предоставление услуг
__________________ уровню, «маскируя» детали
реализации этих услуг.
10. Компьютер –
получатель передаёт __________________________
собранный из пакетов блок данных в том
формате, который он использует.
ТЕСТ 6
1. В сетях с
топологией «звезда» выход из строя
центрального узла, к которому подключены
все компьютеры, влечет за собой выход
из строя всей сети.
А) да Б) нет
2. Трейлер пакета
содержит адрес местоназначения.
А) да Б) нет
3. Верхний, или
_____________________________, уровень управляет
общим доступом к сети, потоком данных
и обработкой ошибок.
4. Протоколы
разделены на три типа, соответствующие
модели OSI:
_______________________,_____________________ и ___________________.
5. На каждом уровне
к пакету добавляется некоторая информация,
форматирующая или ______________________________.
6. Термин
________________________ указывает на основной тип
компоновки сети.
7. Так как при
соединении отрезков кабеля (чтобы
удлинить его) происходит ослабление
сигнала, применяют _________________________, который
усиливает сигнал перед передачей его
в следующий отрезок.
8. Сетевой уровень.
А) Упаковывает
необработанные биты с Физического
уровня в кадры данных.
Б) Отвечает за
перевод форматных данных.
В) Определяет
маршрут между компьютером-отправителем
и компьютером-получателем.
9. Компьютер
получатель копирует данные из пакетов
в _______________________________ для их объединения
в исходный блок данных.
10. Протоколы,
которые поддерживают передачу данных
между сетями по нескольким маршрутам,
называются _____________________ протоколами.
ТЕСТ 7
1. Топология
«шина» является ________________________ топологией,
при которой компьютеры не перемещают
данные от отправителя к получателю.
-
Концентраторы,
которые регенерируют и передают сигналы,
называются
_________________________________________________.
3. Перед отправкой
данных компьютеры «прослушивают»
кабель, чтобы определить присутствие
трафика. Какой метод доступа они при
этом используют?
А) CSMA/CD
(множественный доступ с контролем
несущей с обнаружением коллизий);
Б) CSMA/CА
(множественный доступ с контролем
несущей с предотвращением коллизий);
В) С передачей
маркера;
Г) Опрос.
4. Канальный
уровень предназначен для передачи
___________________ от Сетевого уровня Физическому.
5. Чтобы исключить
конфликты и незаконченные операции,
протоколы в строгом порядке расположены
по __________________________________.
6. Прикладной
уровень.
А) Обеспечивает
безошибочную передачу сообщений.
Б) Предоставляет
службы, напрямую поддерживающие
приложения пользователя.
В) Отвечает за
перевод форматных данных.
7. Сервер.
А) Соединяет
компьютеры.
Б) Предоставляет
доступ к совместно используемым ресурсам.
В) Получает доступ
к совместно используемым ресурсам.
8. Структура
пакета определяется методом связи, или
протоколом, который используют два
компьютера – отправитель и получатель.
9. На
__________________________________ уровне определяется
способ соединения сетевого кабеля с
сетевым адаптером.
10. Порядок
_________________________ определяет местонахождение
протокола в стеке.
ТЕСТ 8
1. В сетях с
топологией «звезда» сегменты кабеля
расходятся от
_____________________________________________________.
2. Компоненты
пакета группируются в три раздела:
______________, данные и трейлер.
3.
_________________________________ уровень определяет
маршрут от компьютера-отправителя к
компьютеру-получателю.
4. Одноранговая
сеть вполне подойдёт, если вопросы
_________________ не принципиальны.
5. На
компьютере-получателе __________________________
уровень переводит промежуточный формат
в тот, который используется Прикладным
уровнем данного компьютера.
6. Структура
пакета определяется методом связи, или
протоколом, который используют два
компьютера – отправитель и получатель.
А) да Б) нет
7. Метод доступа
с передачей маркера предотвращает
коллизии благодаря:
А) использованию
кода, который помогает избежать
столкновений маркеров,
Б) наличию
нескольких маркеров, перемещающихся
по разным маршрутам,
В) одномоментному
использованию маркера только одним
компьютером,
Г) использованию
зон для управления интенсивностью
сетевого трафика.
8. Представительский
уровень.
А) Обеспечивает
синхронизацию задач пользователя через
расстановку контрольных точек в потоке
данных.
Б) Отвечает за
перевод форматных данных.
В) Предоставляет
службы, напрямую поддерживающие
приложения пользователя.
9. Репитер.
А) Усиливает
сигнал.
Б) Предотвращает
эффект отражения сигнала.
В) Сигнал в кольце
кабеля.
10. Что справедливо
в отношении одноранговых сетей?
А) Обеспечивает
более надёжный уровень защиты и
управления, чем сети на основе сервера.
Б) Рекомендуется
для сетей с числом пользователей не
более 10.
В) Необходимо
наличие мощного центрального сервера.
Г) Пользователи
обычно рассредоточены на большой
территории.
ТЕСТ 9
1. В основе любой
компоновки сети лежат следующие
топологии: _______________________,__________________ и
_______________________.
2. В сетях с
топологией «кольцо» все компьютеры
выступают в роли __________________________________,
усиливая сигнал при его передаче.
3. Прикладные
протоколы работают на верхнем уровне
модели OSI
и обеспечивают ____________________________ между
приложениями.
4. Компьютер –
получатель передаёт _________________________,
собранный из пакетов блок данных в том
формате, который он использует.
5. Терминатор.
А) Сигнал в кольце
кабеля.
Б) Предотвращает
эффект отражения сигнала.
В) Усиливает
сигнал.
6. При разбиении
больших массивов данных на
______________________, скорость их передача
возрастает настолько, что каждый
компьютер получает возможность принимать
и передавать данные практически
одновременно с остальными компьютерами.
7. Канальный
уровень.
А) Упаковывает
необработанные биты с Физического
уровня в кадры данных.
Б) Определяет
метод соединения сетевого кабеля с
адаптером.
В) Определяет
маршрут между компьютером-отправителем
и компьютером-получателем.
8. Протокол
драйвера платы сетевого адаптера
расположен на __________
подуровне модели
OSI.
9. Одноранговая
сеть вполне подойдёт, если вопросы
_________________ не принципиальны.
10. Концентраторы,
которые регенерируют и передают сигналы,
называются
_________________________________________________.
ТЕСТ 10
1. Поскольку
каждый компьютер в сети с топологией
«шина» имеет адрес, то несколько
компьютеров могут одновременно передавать
данные по сети, которые дойдут до
адресуемого компьютера.
А) да Б) нет
2. Заголовок
пакета обычно содержит информацию для
проверки ошибок, называемую CRC.
А) да Б) нет
3. Верхний, или
_____________________________, уровень управляет
общим доступом к сети, потоком данных
и обработкой ошибок.
4. Каждый
пользователь в одноранговой сети
управляет разделяемыми ресурсами своего
компьютера. Таким образом, каждого
пользователя можно считать
_____________________________________.
5. Чтобы исключить
конфликты и незаконченные операции,
протоколы в строгом порядке расположены
по __________________________________.
6. В сетях на
основе сервера всегда присутствует
выделенный компьютер.
А) да Б) нет
7. Сервер.
А) Соединяет
компьютеры.
Б) Предоставляет
доступ к совместно используемым ресурсам.
В) Получает доступ
к совместно используемым ресурсам.
8. Протоколы,
которые поддерживают передачу данных
между сетями по нескольким маршрутам,
называются _____________________ протоколами.
9. Представительский
уровень.
А) Обеспечивает
синхронизацию задач пользователя через
расстановку контрольных точек в потоке
данных.
Б) Отвечает за
перевод форматных данных.
В) Предоставляет
службы, напрямую поддерживающие
приложения пользователя.
10. Каждая плата
сетевого адаптера «видит» все пакеты,
передаваемые по сегменту кабеля, но
только при совпадении адреса пакета с
адресом компьютера она прерывает его
работу.
А) да Б) нет
КЛЮЧИ К ТЕСТАМ
«ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ УПРАВЛЕНИЯ»
Тест/ вопрос |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
1 |
концентратора |
нет |
нет |
заголовок |
да |
клиент |
Б |
прикладной |
В |
Б |
2 |
репитера |
да |
В |
нет |
В |
защиты информации |
А |
таким |
Б |
Б |
3 |
нет |
(пакеты) кадры |
на |
да |
да |
администра-тором |
Г |
таким |
Б |
А |
4 |
нет |
А |
терминаторы |
на |
нет |
А |
да |
Б |
В |
сетевой |
5 |
А |
привязки |
7 |
В |
А |
клиент |
да |
компьютеров |
вышележащему |
приложению |
6 |
да |
нет |
прикладной |
прикладные, транспортные и |
адресная |
топология |
репитер |
В |
в |
сетевыми |
7 |
пассивной |
активные |
А |
кадров |
по (стекам |
Б |
Б |
да |
на |
привязки |
8 |
концентратора |
заголовок |
сетевой |
защиты информации |
представи-тельский |
да |
В |
Б |
А |
Б |
9 |
шина, кольцо звезда |
репитера |
взаимодействие |
приложению |
Б |
(пакеты) кадры |
А |
на |
защиты |
активные концентраторы (многопортовые |
10 |
нет |
нет |
прикладной |
администратором |
уровням (стекам протоколов) |
да |
Б |
сетевыми |
Б |
да |
Вопросы к экзамену.
1.Информационные
технологии и системы
2.Понятие
об АИПС. Типы АИПС.
3.Централизованная
система баз данных ВИНИТИ. Характеристика,
возможности проведения поиска.
4.
Международная система STN-International.
Возможности проведения информационного
поиска.
5.Информационно-
поисковый язык Messenger,
его применение.
6.Характеристика
баз данных на платформе SCIENCE
Direct.
Возможности проведения поиска.
7.
Базы данных патентной информации.
8.Возможности
проведения поиска в базах данных FIPS,
USPTO,
EP.ESPASENET.
9.
Базы данных.Виды
моделей данных.
10.
Система управления базами данных (СУБД).
Основные функции и типовая организация
СУБД.
11.
Информационно-логические модели.
Предметная область
12.
Локальные компьютерные сети. Конфигурация
локальных сетей и организация обмена
информацией.
13.
Глобальные вычислительные сети, принципы
построения и организация ресурсов и
служб.
14.
Характеристика вычислительных сетей.
15.
Характеристики передачи данных.
16.
Элементы компьютерных сетей.
17.
Аппаратные средства передачи данных.
18.
Топология сетей. Характеристики базовых
топологий.
19.
Объединение сетей.
20.
Стандарты компьютерных сетей.
21.
Эталонная модель взаимодействия
компьютерных сетей. Характеристика
уровней OSI.
22.
Методы доступа к передающей среде.
23.
Передача данных по сети. Функции пакетов.
24.
Протоколы компьютерных сетей.
Характеристики и назначение.
25.
Характеристика и работа протоколов.
26.
Стандартные протоколы компьютерных
сетей
27.
Организация защиты сетевых ресурсов.
28.Распределенная
служба каталогов.
29.
Одноранговые сети и сети на основе
сервера.
30.
Администрирование сети
31.
Предупреждение потери данных в сети
32.
Web-сайты
и Web-страницы.
33.
Драйверы: назначение, функции.
34.Беспроводные
сети.
35.
Серверное программное обеспечение.
36.
Универсальные поисковые системы Интернет
-
Учебно-методические
материалы.
1.
Е.А. Василенко, О.Е. Рожкова, Т.В.
Мещерякова, Е.А. Дикая Информационные
системы и базы данных в области химии./
Учебное пособие.- М: РХТУ им. Д.И.
Менделеева.- 2011.-188 с.
-
Мещерякова
Т.В., Василенко Е.А., Софенина В.В., Бобров
Д.А. Компьютерные сети: Учеб. пособие.-
М.: РХТУ им. Д.И. Менделеева.- 2004.-122 с.
3.
Мещерякова Т.В., Василенко Е.А., Меньшутина
Н.В., Гордеева Ю.Л., Челноков В.В.
Информационные технологии в химии.
Поисковые компьютерные системы и базы
данных в области экологического
мониторинга: Метод. пособие.- РХТУ им.
Д.И. Менделеева.-2000.-52с.
4.
Мещерякова Т.В., Челноков В.В.Василенко
Е.А., Меньшутина Н.В., Автоматизированная
информационно-поисковая система
STN-International
для поиска химической информации./
Метод.
пособие.-ВИНИТИ.-2001.- 92 с.
-
Мещерякова
Т.В., Меньшутина Н.В., Гончарова С.В.,
Мишина Ю.В., Леуенбергер Г. Информационные
системы и базы данных в фармацевтике.
Прикладное программное обеспечение.:
Учеб. пособие.- РХТУ им. Д.И. Менделеева.-
М.-2002.-92 с.
6. Богомолов Б.Б.,
Бирюков А.Л. Интеллектуальный анализ
данных в химии и химической технологии:
Учеб. пособие / – М.: РХТУ им. Д.И.
Менделеева, 2004. – 56 с.
-
Методические
рекомендации преподавателям.
Учебная |
Методические |
1 |
Переход к |
2-3 |
Информационные
Информационные |
4-5 |
Базы
Понятие о
Лабораторная |
6-9 |
ИПЯ. Выбор Лабораторные |
10-11 |
Понятие о
Модель
Лабораторная |
12-13 |
Основные типы
Особенности
сервер, рабочая Лабораторная |
14-15 |
Каналы связи,
Интернет как Лабораторная |
16-17 |
Понятие гипертекста.
Технология писка Лабораторная |
41
A cyclic redundancy check (CRC) is an error-detecting code commonly used in digital networks and storage devices to detect accidental changes to digital data. Blocks of data entering these systems get a short check value attached, based on the remainder of a polynomial division of their contents. On retrieval, the calculation is repeated and, in the event the check values do not match, corrective action can be taken against data corruption. CRCs can be used for error correction (see bitfilters).[1]
CRCs are so called because the check (data verification) value is a redundancy (it expands the message without adding information) and the algorithm is based on cyclic codes. CRCs are popular because they are simple to implement in binary hardware, easy to analyze mathematically, and particularly good at detecting common errors caused by noise in transmission channels. Because the check value has a fixed length, the function that generates it is occasionally used as a hash function.
Introduction[edit]
CRCs are based on the theory of cyclic error-correcting codes. The use of systematic cyclic codes, which encode messages by adding a fixed-length check value, for the purpose of error detection in communication networks, was first proposed by W. Wesley Peterson in 1961.[2]
Cyclic codes are not only simple to implement but have the benefit of being particularly well suited for the detection of burst errors: contiguous sequences of erroneous data symbols in messages. This is important because burst errors are common transmission errors in many communication channels, including magnetic and optical storage devices. Typically an n-bit CRC applied to a data block of arbitrary length will detect any single error burst not longer than n bits, and the fraction of all longer error bursts that it will detect is (1 − 2−n).
Specification of a CRC code requires definition of a so-called generator polynomial. This polynomial becomes the divisor in a polynomial long division, which takes the message as the dividend and in which the quotient is discarded and the remainder becomes the result. The important caveat is that the polynomial coefficients are calculated according to the arithmetic of a finite field, so the addition operation can always be performed bitwise-parallel (there is no carry between digits).
In practice, all commonly used CRCs employ the Galois field, or more simply a finite field, of two elements, GF(2). The two elements are usually called 0 and 1, comfortably matching computer architecture.
A CRC is called an n-bit CRC when its check value is n bits long. For a given n, multiple CRCs are possible, each with a different polynomial. Such a polynomial has highest degree n, which means it has n + 1 terms. In other words, the polynomial has a length of n + 1; its encoding requires n + 1 bits. Note that most polynomial specifications either drop the MSB or LSB, since they are always 1. The CRC and associated polynomial typically have a name of the form CRC-n-XXX as in the table below.
The simplest error-detection system, the parity bit, is in fact a 1-bit CRC: it uses the generator polynomial x + 1 (two terms),[3] and has the name CRC-1.
Application[edit]
A CRC-enabled device calculates a short, fixed-length binary sequence, known as the check value or CRC, for each block of data to be sent or stored and appends it to the data, forming a codeword.
When a codeword is received or read, the device either compares its check value with one freshly calculated from the data block, or equivalently, performs a CRC on the whole codeword and compares the resulting check value with an expected residue constant.
If the CRC values do not match, then the block contains a data error.
The device may take corrective action, such as rereading the block or requesting that it be sent again. Otherwise, the data is assumed to be error-free (though, with some small probability, it may contain undetected errors; this is inherent in the nature of error-checking).[4]
Data integrity[edit]
CRCs are specifically designed to protect against common types of errors on communication channels, where they can provide quick and reasonable assurance of the integrity of messages delivered. However, they are not suitable for protecting against intentional alteration of data.
Firstly, as there is no authentication, an attacker can edit a message and recompute the CRC without the substitution being detected. When stored alongside the data, CRCs and cryptographic hash functions by themselves do not protect against intentional modification of data. Any application that requires protection against such attacks must use cryptographic authentication mechanisms, such as message authentication codes or digital signatures (which are commonly based on cryptographic hash functions).
Secondly, unlike cryptographic hash functions, CRC is an easily reversible function, which makes it unsuitable for use in digital signatures.[5]
Thirdly, CRC satisfies a relation similar to that of a linear function (or more accurately, an affine function):[6]
where depends on the length of and . This can be also stated as follows, where , and have the same length
as a result, even if the CRC is encrypted with a stream cipher that uses XOR as its combining operation (or mode of block cipher which effectively turns it into a stream cipher, such as OFB or CFB), both the message and the associated CRC can be manipulated without knowledge of the encryption key; this was one of the well-known design flaws of the Wired Equivalent Privacy (WEP) protocol.[7]
Computation[edit]
To compute an n-bit binary CRC, line the bits representing the input in a row, and position the (n + 1)-bit pattern representing the CRC’s divisor (called a «polynomial») underneath the left end of the row.
In this example, we shall encode 14 bits of message with a 3-bit CRC, with a polynomial x3 + x + 1. The polynomial is written in binary as the coefficients; a 3rd-degree polynomial has 4 coefficients (1x3 + 0x2 + 1x + 1). In this case, the coefficients are 1, 0, 1 and 1. The result of the calculation is 3 bits long, which is why it is called a 3-bit CRC. However, you need 4 bits to explicitly state the polynomial.
Start with the message to be encoded:
11010011101100
This is first padded with zeros corresponding to the bit length n of the CRC. This is done so that the resulting code word is in systematic form. Here is the first calculation for computing a 3-bit CRC:
11010011101100 000 <--- input right padded by 3 bits 1011 <--- divisor (4 bits) = x³ + x + 1 ------------------ 01100011101100 000 <--- result
The algorithm acts on the bits directly above the divisor in each step. The result for that iteration is the bitwise XOR of the polynomial divisor with the bits above it. The bits not above the divisor are simply copied directly below for that step. The divisor is then shifted right to align with the highest remaining 1 bit in the input, and the process is repeated until the divisor reaches the right-hand end of the input row. Here is the entire calculation:
11010011101100 000 <--- input right padded by 3 bits 1011 <--- divisor 01100011101100 000 <--- result (note the first four bits are the XOR with the divisor beneath, the rest of the bits are unchanged) 1011 <--- divisor ... 00111011101100 000 1011 00010111101100 000 1011 00000001101100 000 <--- note that the divisor moves over to align with the next 1 in the dividend (since quotient for that step was zero) 1011 (in other words, it doesn't necessarily move one bit per iteration) 00000000110100 000 1011 00000000011000 000 1011 00000000001110 000 1011 00000000000101 000 101 1 ----------------- 00000000000000 100 <--- remainder (3 bits). Division algorithm stops here as dividend is equal to zero.
Since the leftmost divisor bit zeroed every input bit it touched, when this process ends the only bits in the input row that can be nonzero are the n bits at the right-hand end of the row. These n bits are the remainder of the division step, and will also be the value of the CRC function (unless the chosen CRC specification calls for some postprocessing).
The validity of a received message can easily be verified by performing the above calculation again, this time with the check value added instead of zeroes. The remainder should equal zero if there are no detectable errors.
11010011101100 100 <--- input with check value 1011 <--- divisor 01100011101100 100 <--- result 1011 <--- divisor ... 00111011101100 100 ...... 00000000001110 100 1011 00000000000101 100 101 1 ------------------ 00000000000000 000 <--- remainder
The following Python code outlines a function which will return the initial CRC remainder for a chosen input and polynomial, with either 1 or 0 as the initial padding. Note that this code works with string inputs rather than raw numbers:
def crc_remainder(input_bitstring, polynomial_bitstring, initial_filler): """Calculate the CRC remainder of a string of bits using a chosen polynomial. initial_filler should be '1' or '0'. """ polynomial_bitstring = polynomial_bitstring.lstrip('0') len_input = len(input_bitstring) initial_padding = (len(polynomial_bitstring) - 1) * initial_filler input_padded_array = list(input_bitstring + initial_padding) while '1' in input_padded_array[:len_input]: cur_shift = input_padded_array.index('1') for i in range(len(polynomial_bitstring)): input_padded_array[cur_shift + i] = str(int(polynomial_bitstring[i] != input_padded_array[cur_shift + i])) return ''.join(input_padded_array)[len_input:] def crc_check(input_bitstring, polynomial_bitstring, check_value): """Calculate the CRC check of a string of bits using a chosen polynomial.""" polynomial_bitstring = polynomial_bitstring.lstrip('0') len_input = len(input_bitstring) initial_padding = check_value input_padded_array = list(input_bitstring + initial_padding) while '1' in input_padded_array[:len_input]: cur_shift = input_padded_array.index('1') for i in range(len(polynomial_bitstring)): input_padded_array[cur_shift + i] = str(int(polynomial_bitstring[i] != input_padded_array[cur_shift + i])) return ('1' not in ''.join(input_padded_array)[len_input:])
>>> crc_remainder('11010011101100', '1011', '0') '100' >>> crc_check('11010011101100', '1011', '100') True
CRC-32 algorithm[edit]
This is a practical algorithm for the CRC-32 variant of CRC.[8] The CRCTable is a memoization of a calculation that would have to be repeated for each byte of the message (Computation of cyclic redundancy checks § Multi-bit computation).
Function CRC32 Input: data: Bytes // Array of bytes Output: crc32: UInt32 // 32-bit unsigned CRC-32 value
// Initialize CRC-32 to starting value crc32 ← 0xFFFFFFFF
for each byte in data do nLookupIndex ← (crc32 xor byte) and 0xFF crc32 ← (crc32 shr 8) xor CRCTable[nLookupIndex] // CRCTable is an array of 256 32-bit constants
// Finalize the CRC-32 value by inverting all the bits crc32 ← crc32 xor 0xFFFFFFFF return crc32
In C, the algorithm looks as such:
#include <inttypes.h> // uint32_t, uint8_t uint32_t CRC32(const uint8_t data[], size_t data_length) { uint32_t crc32 = 0xFFFFFFFFu; for (size_t i = 0; i < data_length; i++) { const uint32_t lookupIndex = (crc32 ^ data[i]) & 0xff; crc32 = (crc32 >> 8) ^ CRCTable[lookupIndex]; // CRCTable is an array of 256 32-bit constants } // Finalize the CRC-32 value by inverting all the bits crc32 ^= 0xFFFFFFFFu; return crc32; }
Mathematics[edit]
Mathematical analysis of this division-like process reveals how to select a divisor that guarantees good error-detection properties. In this analysis, the digits of the bit strings are taken as the coefficients of a polynomial in some variable x—coefficients that are elements of the finite field GF(2) (the integers modulo 2, i.e. either a zero or a one), instead of more familiar numbers. The set of binary polynomials is a mathematical ring.
Designing polynomials[edit]
The selection of the generator polynomial is the most important part of implementing the CRC algorithm. The polynomial must be chosen to maximize the error-detecting capabilities while minimizing overall collision probabilities.
The most important attribute of the polynomial is its length (largest degree(exponent) +1 of any one term in the polynomial), because of its direct influence on the length of the computed check value.
The most commonly used polynomial lengths are 9 bits (CRC-8), 17 bits (CRC-16), 33 bits (CRC-32), and 65 bits (CRC-64).[3]
A CRC is called an n-bit CRC when its check value is n-bits. For a given n, multiple CRCs are possible, each with a different polynomial. Such a polynomial has highest degree n, and hence n + 1 terms (the polynomial has a length of n + 1). The remainder has length n. The CRC has a name of the form CRC-n-XXX.
The design of the CRC polynomial depends on the maximum total length of the block to be protected (data + CRC bits), the desired error protection features, and the type of resources for implementing the CRC, as well as the desired performance. A common misconception is that the «best» CRC polynomials are derived from either irreducible polynomials or irreducible polynomials times the factor 1 + x, which adds to the code the ability to detect all errors affecting an odd number of bits.[9] In reality, all the factors described above should enter into the selection of the polynomial and may lead to a reducible polynomial. However, choosing a reducible polynomial will result in a certain proportion of missed errors, due to the quotient ring having zero divisors.
The advantage of choosing a primitive polynomial as the generator for a CRC code is that the resulting code has maximal total block length in the sense that all 1-bit errors within that block length have different remainders (also called syndromes) and therefore, since the remainder is a linear function of the block, the code can detect all 2-bit errors within that block length. If is the degree of the primitive generator polynomial, then the maximal total block length is , and the associated code is able to detect any single-bit or double-bit errors.[10] We can improve this situation. If we use the generator polynomial , where is a primitive polynomial of degree , then the maximal total block length is , and the code is able to detect single, double, triple and any odd number of errors.
A polynomial that admits other factorizations may be chosen then so as to balance the maximal total blocklength with a desired error detection power. The BCH codes are a powerful class of such polynomials. They subsume the two examples above. Regardless of the reducibility properties of a generator polynomial of degree r, if it includes the «+1» term, the code will be able to detect error patterns that are confined to a window of r contiguous bits. These patterns are called «error bursts».
Specification[edit]
The concept of the CRC as an error-detecting code gets complicated when an implementer or standards committee uses it to design a practical system. Here are some of the complications:
- Sometimes an implementation prefixes a fixed bit pattern to the bitstream to be checked. This is useful when clocking errors might insert 0-bits in front of a message, an alteration that would otherwise leave the check value unchanged.
- Usually, but not always, an implementation appends n 0-bits (n being the size of the CRC) to the bitstream to be checked before the polynomial division occurs. Such appending is explicitly demonstrated in the Computation of CRC article. This has the convenience that the remainder of the original bitstream with the check value appended is exactly zero, so the CRC can be checked simply by performing the polynomial division on the received bitstream and comparing the remainder with zero. Due to the associative and commutative properties of the exclusive-or operation, practical table driven implementations can obtain a result numerically equivalent to zero-appending without explicitly appending any zeroes, by using an equivalent,[9] faster algorithm that combines the message bitstream with the stream being shifted out of the CRC register.
- Sometimes an implementation exclusive-ORs a fixed bit pattern into the remainder of the polynomial division.
- Bit order: Some schemes view the low-order bit of each byte as «first», which then during polynomial division means «leftmost», which is contrary to our customary understanding of «low-order». This convention makes sense when serial-port transmissions are CRC-checked in hardware, because some widespread serial-port transmission conventions transmit bytes least-significant bit first.
- Byte order: With multi-byte CRCs, there can be confusion over whether the byte transmitted first (or stored in the lowest-addressed byte of memory) is the least-significant byte (LSB) or the most-significant byte (MSB). For example, some 16-bit CRC schemes swap the bytes of the check value.
- Omission of the high-order bit of the divisor polynomial: Since the high-order bit is always 1, and since an n-bit CRC must be defined by an (n + 1)-bit divisor which overflows an n-bit register, some writers assume that it is unnecessary to mention the divisor’s high-order bit.
- Omission of the low-order bit of the divisor polynomial: Since the low-order bit is always 1, authors such as Philip Koopman represent polynomials with their high-order bit intact, but without the low-order bit (the or 1 term). This convention encodes the polynomial complete with its degree in one integer.
These complications mean that there are three common ways to express a polynomial as an integer: the first two, which are mirror images in binary, are the constants found in code; the third is the number found in Koopman’s papers. In each case, one term is omitted. So the polynomial may be transcribed as:
In the table below they are shown as:
Examples of CRC representations
Name | Normal | Reversed | Reversed reciprocal |
---|---|---|---|
CRC-4 | 0x3 | 0xC | 0x9 |
Obfuscation[edit]
CRCs in proprietary protocols might be obfuscated by using a non-trivial initial value and a final XOR, but these techniques do not add cryptographic strength to the algorithm and can be reverse engineered using straightforward methods.[11]
Standards and common use[edit]
Numerous varieties of cyclic redundancy checks have been incorporated into technical standards. By no means does one algorithm, or one of each degree, suit every purpose; Koopman and Chakravarty recommend selecting a polynomial according to the application requirements and the expected distribution of message lengths.[12] The number of distinct CRCs in use has confused developers, a situation which authors have sought to address.[9] There are three polynomials reported for CRC-12,[12] twenty-two conflicting definitions of CRC-16, and seven of CRC-32.[13]
The polynomials commonly applied are not the most efficient ones possible. Since 1993, Koopman, Castagnoli and others have surveyed the space of polynomials between 3 and 64 bits in size,[12][14][15][16] finding examples that have much better performance (in terms of Hamming distance for a given message size) than the polynomials of earlier protocols, and publishing the best of these with the aim of improving the error detection capacity of future standards.[15] In particular, iSCSI and SCTP have adopted one of the findings of this research, the CRC-32C (Castagnoli) polynomial.
The design of the 32-bit polynomial most commonly used by standards bodies, CRC-32-IEEE, was the result of a joint effort for the Rome Laboratory and the Air Force Electronic Systems Division by Joseph Hammond, James Brown and Shyan-Shiang Liu of the Georgia Institute of Technology and Kenneth Brayer of the Mitre Corporation. The earliest known appearances of the 32-bit polynomial were in their 1975 publications: Technical Report 2956 by Brayer for Mitre, published in January and released for public dissemination through DTIC in August,[17] and Hammond, Brown and Liu’s report for the Rome Laboratory, published in May.[18] Both reports contained contributions from the other team. During December 1975, Brayer and Hammond presented their work in a paper at the IEEE National Telecommunications Conference: the IEEE CRC-32 polynomial is the generating polynomial of a Hamming code and was selected for its error detection performance.[19] Even so, the Castagnoli CRC-32C polynomial used in iSCSI or SCTP matches its performance on messages from 58 bits to 131 kbits, and outperforms it in several size ranges including the two most common sizes of Internet packet.[15] The ITU-T G.hn standard also uses CRC-32C to detect errors in the payload (although it uses CRC-16-CCITT for PHY headers).
CRC-32C computation is implemented in hardware as an operation (CRC32
) of SSE4.2 instruction set, first introduced in Intel processors’ Nehalem microarchitecture. ARM AArch64 architecture also provides hardware acceleration for both CRC-32 and CRC-32C operations.
Polynomial representations of cyclic redundancy checks[edit]
The table below lists only the polynomials of the various algorithms in use. Variations of a particular protocol can impose pre-inversion, post-inversion and reversed bit ordering as described above. For example, the CRC32 used in Gzip and Bzip2 use the same polynomial, but Gzip employs reversed bit ordering, while Bzip2 does not.[13]
Note that even parity polynomials in GF(2) with degree greater than 1 are never primitive. Even parity polynomial marked as primitive in this table represent a primitive polynomial multiplied by . The most significant bit of a polynomial is always 1, and is not shown in the hex representations.
Name | Uses | Polynomial representations | Parity[20] | Primitive[21] | Maximum bits of payload by Hamming distance[22][15][21] | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Normal | Reversed | Reciprocal | Reversed reciprocal | ≥ 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2[23] | ||||
CRC-1 | most hardware; also known as parity bit | 0x1 | 0x1 | 0x1 | 0x1 | even | ||||||||||||||||
CRC-3-GSM | mobile networks[24] | 0x3 | 0x6 | 0x5 | 0x5 | odd | yes [25] | – | – | – | – | – | – | – | – | – | – | – | – | – | 4 | ∞ |
CRC-4-ITU | ITU-T G.704, p. 12 | 0x3 | 0xC | 0x9 | 0x9 | odd | ||||||||||||||||
CRC-5-EPC | Gen 2 RFID[26] | 0x09 | 0x12 | 0x05 | 0x14 | odd | ||||||||||||||||
CRC-5-ITU | ITU-T G.704, p. 9 | 0x15 | 0x15 | 0x0B | 0x1A | even | ||||||||||||||||
CRC-5-USB | USB token packets | 0x05 | 0x14 | 0x09 | 0x12 | odd | ||||||||||||||||
CRC-6-CDMA2000-A | mobile networks[27] | 0x27 | 0x39 | 0x33 | 0x33 | odd | ||||||||||||||||
CRC-6-CDMA2000-B | mobile networks[27] | 0x07 | 0x38 | 0x31 | 0x23 | even | ||||||||||||||||
CRC-6-DARC | Data Radio Channel[28] | 0x19 | 0x26 | 0x0D | 0x2C | even | ||||||||||||||||
CRC-6-GSM | mobile networks[24] | 0x2F | 0x3D | 0x3B | 0x37 | even | yes [29] | – | – | – | – | – | – | – | – | – | – | 1 | 1 | 25 | 25 | ∞ |
CRC-6-ITU | ITU-T G.704, p. 3 | 0x03 | 0x30 | 0x21 | 0x21 | odd | ||||||||||||||||
CRC-7 | telecom systems, ITU-T G.707, ITU-T G.832, MMC, SD | 0x09 | 0x48 | 0x11 | 0x44 | odd | ||||||||||||||||
CRC-7-MVB | Train Communication Network, IEC 60870-5[30] | 0x65 | 0x53 | 0x27 | 0x72 | odd | ||||||||||||||||
CRC-8 | DVB-S2[31] | 0xD5 | 0xAB | 0x57 | 0xEA[12] | even | no [32] | – | – | – | – | – | – | – | – | – | – | 2 | 2 | 85 | 85 | ∞ |
CRC-8-AUTOSAR | automotive integration,[33] OpenSafety[34] | 0x2F | 0xF4 | 0xE9 | 0x97[12] | even | yes [32] | – | – | – | – | – | – | – | – | – | – | 3 | 3 | 119 | 119 | ∞ |
CRC-8-Bluetooth | wireless connectivity[35] | 0xA7 | 0xE5 | 0xCB | 0xD3 | even | ||||||||||||||||
CRC-8-CCITT | ITU-T I.432.1 (02/99); ATM HEC, ISDN HEC and cell delineation, SMBus PEC | 0x07 | 0xE0 | 0xC1 | 0x83 | even | ||||||||||||||||
CRC-8-Dallas/Maxim | 1-Wire bus[36] | 0x31 | 0x8C | 0x19 | 0x98 | even | ||||||||||||||||
CRC-8-DARC | Data Radio Channel[28] | 0x39 | 0x9C | 0x39 | 0x9C | odd | ||||||||||||||||
CRC-8-GSM-B | mobile networks[24] | 0x49 | 0x92 | 0x25 | 0xA4 | even | ||||||||||||||||
CRC-8-SAE J1850 | AES3; OBD | 0x1D | 0xB8 | 0x71 | 0x8E | odd | ||||||||||||||||
CRC-8-WCDMA | mobile networks[27][37] | 0x9B | 0xD9 | 0xB3 | 0xCD[12] | even | ||||||||||||||||
CRC-10 | ATM; ITU-T I.610 | 0x233 | 0x331 | 0x263 | 0x319 | even | ||||||||||||||||
CRC-10-CDMA2000 | mobile networks[27] | 0x3D9 | 0x26F | 0x0DF | 0x3EC | even | ||||||||||||||||
CRC-10-GSM | mobile networks[24] | 0x175 | 0x2BA | 0x175 | 0x2BA | odd | ||||||||||||||||
CRC-11 | FlexRay[38] | 0x385 | 0x50E | 0x21D | 0x5C2 | even | ||||||||||||||||
CRC-12 | telecom systems[39][40] | 0x80F | 0xF01 | 0xE03 | 0xC07[12] | even | ||||||||||||||||
CRC-12-CDMA2000 | mobile networks[27] | 0xF13 | 0xC8F | 0x91F | 0xF89 | even | ||||||||||||||||
CRC-12-GSM | mobile networks[24] | 0xD31 | 0x8CB | 0x197 | 0xE98 | odd | ||||||||||||||||
CRC-13-BBC | Time signal, Radio teleswitch[41][42] | 0x1CF5 | 0x15E7 | 0x0BCF | 0x1E7A | even | ||||||||||||||||
CRC-14-DARC | Data Radio Channel[28] | 0x0805 | 0x2804 | 0x1009 | 0x2402 | even | ||||||||||||||||
CRC-14-GSM | mobile networks[24] | 0x202D | 0x2D01 | 0x1A03 | 0x3016 | even | ||||||||||||||||
CRC-15-CAN | 0xC599[43][44] | 0x4CD1 | 0x19A3 | 0x62CC | even | |||||||||||||||||
CRC-15-MPT1327 | [45] | 0x6815 | 0x540B | 0x2817 | 0x740A | odd | ||||||||||||||||
CRC-16-Chakravarty | Optimal for payloads ≤64 bits[30] | 0x2F15 | 0xA8F4 | 0x51E9 | 0x978A | odd | ||||||||||||||||
CRC-16-ARINC | ACARS applications[46] | 0xA02B | 0xD405 | 0xA80B | 0xD015 | odd | ||||||||||||||||
CRC-16-CCITT | X.25, V.41, HDLC FCS, XMODEM, Bluetooth, PACTOR, SD, DigRF, many others; known as CRC-CCITT | 0x1021 | 0x8408 | 0x811 | 0x8810[12] | even | ||||||||||||||||
CRC-16-CDMA2000 | mobile networks[27] | 0xC867 | 0xE613 | 0xCC27 | 0xE433 | odd | ||||||||||||||||
CRC-16-DECT | cordless telephones[47] | 0x0589 | 0x91A0 | 0x2341 | 0x82C4 | even | ||||||||||||||||
CRC-16-T10-DIF | SCSI DIF | 0x8BB7[48] | 0xEDD1 | 0xDBA3 | 0xC5DB | odd | ||||||||||||||||
CRC-16-DNP | DNP, IEC 870, M-Bus | 0x3D65 | 0xA6BC | 0x4D79 | 0x9EB2 | even | ||||||||||||||||
CRC-16-IBM | Bisync, Modbus, USB, ANSI X3.28, SIA DC-07, many others; also known as CRC-16 and CRC-16-ANSI | 0x8005 | 0xA001 | 0x4003 | 0xC002 | even | ||||||||||||||||
CRC-16-OpenSafety-A | safety fieldbus[34] | 0x5935 | 0xAC9A | 0x5935 | 0xAC9A[12] | odd | ||||||||||||||||
CRC-16-OpenSafety-B | safety fieldbus[34] | 0x755B | 0xDAAE | 0xB55D | 0xBAAD[12] | odd | ||||||||||||||||
CRC-16-Profibus | fieldbus networks[49] | 0x1DCF | 0xF3B8 | 0xE771 | 0x8EE7 | odd | ||||||||||||||||
Fletcher-16 | Used in Adler-32 A & B Checksums | Often confused to be a CRC, but actually a checksum; see Fletcher’s checksum | ||||||||||||||||||||
CRC-17-CAN | CAN FD[50] | 0x1685B | 0x1B42D | 0x1685B | 0x1B42D | even | ||||||||||||||||
CRC-21-CAN | CAN FD[50] | 0x102899 | 0x132281 | 0x064503 | 0x18144C | even | ||||||||||||||||
CRC-24 | FlexRay[38] | 0x5D6DCB | 0xD3B6BA | 0xA76D75 | 0xAEB6E5 | even | ||||||||||||||||
CRC-24-Radix-64 | OpenPGP, RTCM104v3 | 0x864CFB | 0xDF3261 | 0xBE64C3 | 0xC3267D | even | ||||||||||||||||
CRC-24-WCDMA | Used in OS-9 RTOS. Residue = 0x800FE3.[51] | 0x800063 | 0xC60001 | 0x8C0003 | 0xC00031 | even | yes[52] | – | – | – | – | – | – | – | – | – | – | 4 | 4 | 8388583 | 8388583 | ∞ |
CRC-30 | CDMA | 0x2030B9C7 | 0x38E74301 | 0x31CE8603 | 0x30185CE3 | even | ||||||||||||||||
CRC-32 | ISO 3309 (HDLC), ANSI X3.66 (ADCCP), FIPS PUB 71, FED-STD-1003, ITU-T V.42, ISO/IEC/IEEE 802-3 (Ethernet), SATA, MPEG-2, PKZIP, Gzip, Bzip2, POSIX cksum,[53] PNG,[54] ZMODEM, many others | 0x04C11DB7 | 0xEDB88320 | 0xDB710641 | 0x82608EDB[15] | odd | yes | – | 10 | – | – | 12 | 21 | 34 | 57 | 91 | 171 | 268 | 2974 | 91607 | 4294967263 | ∞ |
CRC-32C (Castagnoli) | iSCSI, SCTP, G.hn payload, SSE4.2, Btrfs, ext4, Ceph | 0x1EDC6F41 | 0x82F63B78 | 0x05EC76F1 | 0x8F6E37A0[15] | even | yes | 6 | – | 8 | – | 20 | – | 47 | – | 177 | – | 5243 | – | 2147483615 | – | ∞ |
CRC-32K (Koopman {1,3,28}) | Excellent at Ethernet frame length, poor performance with long files | 0x741B8CD7 | 0xEB31D82E | 0xD663B05D | 0xBA0DC66B[15] | even | no | 2 | – | 4 | – | 16 | – | 18 | – | 152 | – | 16360 | – | 114663 | – | ∞ |
CRC-32K2 (Koopman {1,1,30}) | Excellent at Ethernet frame length, poor performance with long files | 0x32583499 | 0x992C1A4C | 0x32583499 | 0x992C1A4C[15] | even | no | – | – | 3 | – | 16 | – | 26 | – | 134 | – | 32738 | – | 65506 | – | ∞ |
CRC-32Q | aviation; AIXM[55] | 0x814141AB | 0xD5828281 | 0xAB050503 | 0xC0A0A0D5 | even | ||||||||||||||||
Adler-32 | Often confused to be a CRC, but actually a checksum; see Adler-32 | |||||||||||||||||||||
CRC-40-GSM | GSM control channel[56][57][58] | 0x0004820009 | 0x9000412000 | 0x2000824001 | 0x8002410004 | even | ||||||||||||||||
CRC-64-ECMA | ECMA-182 p. 51, XZ Utils | 0x42F0E1EBA9EA3693 | 0xC96C5795D7870F42 | 0x92D8AF2BAF0E1E85 | 0xA17870F5D4F51B49 | even | ||||||||||||||||
CRC-64-ISO | ISO 3309 (HDLC), Swiss-Prot/TrEMBL; considered weak for hashing[59] | 0x000000000000001B | 0xD800000000000000 | 0xB000000000000001 | 0x800000000000000D | odd | ||||||||||||||||
Implementations[edit]
- Implementation of CRC32 in GNU Radio up to 3.6.1 (ca. 2012)
- C class code for CRC checksum calculation with many different CRCs to choose from
CRC catalogues[edit]
- Catalogue of parametrised CRC algorithms
- CRC Polynomial Zoo
See also[edit]
- Mathematics of cyclic redundancy checks
- Computation of cyclic redundancy checks
- List of hash functions
- List of checksum algorithms
- Information security
- Simple file verification
- LRC
References[edit]
- ^ «An Algorithm for Error Correcting Cyclic Redundance Checks». drdobbs.com. Archived from the original on 20 July 2017. Retrieved 28 June 2017.
- ^ Peterson, W. W.; Brown, D. T. (January 1961). «Cyclic Codes for Error Detection». Proceedings of the IRE. 49 (1): 228–235. doi:10.1109/JRPROC.1961.287814. S2CID 51666741.
- ^ a b Ergen, Mustafa (21 January 2008). «2.3.3 Error Detection Coding». Mobile Broadband. Springer. pp. 29–30. doi:10.1007/978-0-387-68192-4_2. ISBN 978-0-387-68192-4.
- ^ Ritter, Terry (February 1986). «The Great CRC Mystery». Dr. Dobb’s Journal. 11 (2): 26–34, 76–83. Archived from the original on 16 April 2009. Retrieved 21 May 2009.
- ^ Stigge, Martin; Plötz, Henryk; Müller, Wolf; Redlich, Jens-Peter (May 2006). «Reversing CRC – Theory and Practice» (PDF). Humboldt University Berlin. p. 17. SAR-PR-2006-05. Archived from the original (PDF) on 19 July 2011. Retrieved 4 February 2011.
The presented methods offer a very easy and efficient way to modify your data so that it will compute to a CRC you want or at least know in advance.
- ^ «algorithm design — Why is CRC said to be linear?». Cryptography Stack Exchange. Retrieved 5 May 2019.
- ^ Cam-Winget, Nancy; Housley, Russ; Wagner, David; Walker, Jesse (May 2003). «Security Flaws in 802.11 Data Link Protocols» (PDF). Communications of the ACM. 46 (5): 35–39. CiteSeerX 10.1.1.14.8775. doi:10.1145/769800.769823. S2CID 3132937. Archived (PDF) from the original on 26 May 2013. Retrieved 1 November 2017.
- ^ «[MS-ABS]: 32-Bit CRC Algorithm». msdn.microsoft.com. Archived from the original on 7 November 2017. Retrieved 4 November 2017.
- ^ a b c Williams, Ross N. (24 September 1996). «A Painless Guide to CRC Error Detection Algorithms V3.0». Archived from the original on 2 April 2018. Retrieved 23 May 2019.
- ^ Press, WH; Teukolsky, SA; Vetterling, WT; Flannery, BP (2007). «Section 22.4 Cyclic Redundancy and Other Checksums». Numerical Recipes: The Art of Scientific Computing (3rd ed.). Cambridge University Press. ISBN 978-0-521-88068-8. Archived from the original on 11 August 2011. Retrieved 18 August 2011.
- ^ Ewing, Gregory C. (March 2010). «Reverse-Engineering a CRC Algorithm». Christchurch: University of Canterbury. Archived from the original on 7 August 2011. Retrieved 26 July 2011.
- ^ a b c d e f g h i j Koopman, Philip; Chakravarty, Tridib (June 2004). Cyclic Redundancy Code (CRC) Polynomial Selection For Embedded Networks (PDF). The International Conference on Dependable Systems and Networks. pp. 145–154. CiteSeerX 10.1.1.648.9080. doi:10.1109/DSN.2004.1311885. ISBN 978-0-7695-2052-0. S2CID 793862. Archived (PDF) from the original on 11 September 2011. Retrieved 14 January 2011.
- ^ a b Cook, Greg (15 August 2020). «Catalogue of parametrised CRC algorithms». Archived from the original on 1 August 2020. Retrieved 18 September 2020.
- ^ Castagnoli, G.; Bräuer, S.; Herrmann, M. (June 1993). «Optimization of Cyclic Redundancy-Check Codes with 24 and 32 Parity Bits». IEEE Transactions on Communications. 41 (6): 883–892. doi:10.1109/26.231911.
- ^ a b c d e f g h Koopman, Philip (July 2002). «32-Bit Cyclic Redundancy Codes for Internet Applications». Proceedings International Conference on Dependable Systems and Networks (PDF). The International Conference on Dependable Systems and Networks. pp. 459–468. CiteSeerX 10.1.1.11.8323. doi:10.1109/DSN.2002.1028931. ISBN 978-0-7695-1597-7. S2CID 14775606. Archived (PDF) from the original on 16 September 2012. Retrieved 14 January 2011.
- ^ Koopman, Philip (21 January 2016). «Best CRC Polynomials». Carnegie Mellon University. Archived from the original on 20 January 2016. Retrieved 26 January 2016.
- ^ Brayer, Kenneth (August 1975). Evaluation of 32 Degree Polynomials in Error Detection on the SATIN IV Autovon Error Patterns (Report). National Technical Information Service. ADA014825. Archived from the original on 31 December 2021. Retrieved 31 December 2021.
- ^ Hammond, Joseph L. Jr.; Brown, James E.; Liu, Shyan-Shiang (1975). «Development of a Transmission Error Model and an Error Control Model». NASA Sti/Recon Technical Report N (published May 1975). 76: 15344. Bibcode:1975STIN…7615344H. ADA013939. Archived from the original on 31 December 2021. Retrieved 31 December 2021.
- ^ Brayer, Kenneth; Hammond, Joseph L. Jr. (December 1975). Evaluation of error detection polynomial performance on the AUTOVON channel. NTC 75 : National Telecommunications Conference, December 1-3, 1975, New Orleans, Louisiana. Vol. 1. Institute of Electrical and Electronics Engineers. pp. 8-21–5. Bibcode:1975ntc…..1….8B. OCLC 32688603. 75 CH 1015-7 CSCB.
- ^ CRCs with even parity detect any odd number of bit errors, at the expense of lower hamming distance for long payloads. Note that parity is computed over the entire generator polynomial, including implied 1 at the beginning or the end. For example, the full representation of CRC-1 is 0x3, which has two 1 bits. Thus, its parity is even.
- ^ a b «32 Bit CRC Zoo». users.ece.cmu.edu. Archived from the original on 19 March 2018. Retrieved 5 November 2017.
- ^ Payload means length exclusive of CRC field. A Hamming distance of d means that d − 1 bit errors can be detected and ⌊(d − 1)/2⌋ bit errors can be corrected
- ^ is always achieved for arbitrarily long messages
- ^ a b c d e f ETSI TS 100 909 (PDF). V8.9.0. Sophia Antipolis, France: European Telecommunications Standards Institute. January 2005. Archived (PDF) from the original on 17 April 2018. Retrieved 21 October 2016.
- ^ «3 Bit CRC Zoo». users.ece.cmu.edu. Archived from the original on 7 April 2018. Retrieved 19 January 2018.
- ^ Class-1 Generation-2 UHF RFID Protocol (PDF). 1.2.0. EPCglobal. 23 October 2008. p. 35. Archived (PDF) from the original on 19 March 2012. Retrieved 4 July 2012. (Table 6.12)
- ^ a b c d e f Physical layer standard for cdma2000 spread spectrum systems (PDF). Revision D version 2.0. 3rd Generation Partnership Project 2. October 2005. pp. 2–89–2–92. Archived from the original (PDF) on 16 November 2013. Retrieved 14 October 2013.
- ^ a b c «11. Error correction strategy». ETSI EN 300 751 (PDF). V1.2.1. Sophia Antipolis, France: European Telecommunications Standards Institute. January 2003. pp. 67–8. Archived (PDF) from the original on 28 December 2015. Retrieved 26 January 2016.
- ^ «6 Bit CRC Zoo». users.ece.cmu.edu. Archived from the original on 7 April 2018. Retrieved 19 January 2018.
- ^ a b Chakravarty, Tridib (December 2001). Performance of Cyclic Redundancy Codes for Embedded Networks (PDF) (Thesis). Philip Koopman, advisor. Carnegie Mellon University. pp. 5, 18. Archived (PDF) from the original on 1 January 2014. Retrieved 8 July 2013.
- ^ «5.1.4 CRC-8 encoder (for packetized streams only)». EN 302 307 (PDF). V1.3.1. Sophia Antipolis, France: European Telecommunications Standards Institute. March 2013. p. 17. Archived (PDF) from the original on 30 August 2017. Retrieved 29 July 2016.
- ^ a b «8 Bit CRC Zoo». users.ece.cmu.edu. Archived from the original on 7 April 2018. Retrieved 19 January 2018.
- ^ «7.2.1.2 8-bit 0x2F polynomial CRC Calculation». Specification of CRC Routines (PDF). 4.2.2. Munich: AUTOSAR. 22 July 2015. p. 24. Archived from the original (PDF) on 24 July 2016. Retrieved 24 July 2016.
- ^ a b c «5.1.1.8 Cyclic Redundancy Check field (CRC-8 / CRC-16)». openSAFETY Safety Profile Specification: EPSG Working Draft Proposal 304. 1.4.0. Berlin: Ethernet POWERLINK Standardisation Group. 13 March 2013. p. 42. Archived from the original on 12 August 2017. Retrieved 22 July 2016.
- ^ «B.7.1.1 HEC generation». Specification of the Bluetooth System. Vol. 2. Bluetooth SIG. 2 December 2014. pp. 144–5. Archived from the original on 26 March 2015. Retrieved 20 October 2014.
- ^ Whitfield, Harry (24 April 2001). «XFCNs for Cyclic Redundancy Check Calculations». Archived from the original on 25 May 2005.
- ^ Richardson, Andrew (17 March 2005). WCDMA Handbook. Cambridge University Press. p. 223. ISBN 978-0-521-82815-4.
- ^ a b FlexRay Protocol Specification. 3.0.1. Flexray Consortium. October 2010. p. 114. (4.2.8 Header CRC (11 bits))
- ^ Perez, A. (1983). «Byte-Wise CRC Calculations». IEEE Micro. 3 (3): 40–50. doi:10.1109/MM.1983.291120. S2CID 206471618.
- ^ Ramabadran, T.V.; Gaitonde, S.S. (1988). «A tutorial on CRC computations». IEEE Micro. 8 (4): 62–75. doi:10.1109/40.7773. S2CID 10216862.
- ^ «Longwave Radio Data Decoding using and HC11 and an MC3371» (PDF). Freescale Semiconductor. 2004. AN1597/D. Archived from the original (PDF) on 24 September 2015.
- ^ Ely, S.R.; Wright, D.T. (March 1982). L.F. Radio-Data: specification of BBC experimental transmissions 1982 (PDF). Research Department, Engineering Division, The British Broadcasting Corporation. p. 9. Archived (PDF) from the original on 12 October 2013. Retrieved 11 October 2013.
- ^ Cyclic Redundancy Check (CRC): PSoC Creator™ Component Datasheet. Cypress Semiconductor. 20 February 2013. p. 4. Archived from the original on 2 February 2016. Retrieved 26 January 2016.
- ^ «Cyclic redundancy check (CRC) in CAN frames». CAN in Automation. Archived from the original on 1 February 2016. Retrieved 26 January 2016.
- ^ «3.2.3 Encoding and error checking». A signalling standard for trunked private land mobile radio systems (MPT 1327) (PDF) (3rd ed.). Ofcom. June 1997. p. 3. Archived (PDF) from the original on 14 July 2012. Retrieved 16 July 2012.
- ^ Rehmann, Albert; Mestre, José D. (February 1995). «Air Ground Data Link VHF Airline Communications and Reporting System (ACARS) Preliminary Test Report» (PDF). Federal Aviation Authority Technical Center. p. 5. Archived from the original (PDF) on 2 August 2012. Retrieved 7 July 2012.
- ^ «6.2.5 Error control». ETSI EN 300 175-3 (PDF). V2.5.1. Sophia Antipolis, France: European Telecommunications Standards Institute. August 2013. pp. 99, 101. Archived (PDF) from the original on 1 July 2015. Retrieved 26 January 2016.
- ^ Thaler, Pat (28 August 2003). «16-bit CRC polynomial selection» (PDF). INCITS T10. Archived (PDF) from the original on 28 July 2011. Retrieved 11 August 2009.
- ^ «8.8.4 Check Octet (FCS)». PROFIBUS Specification Normative Parts (PDF). 1.0. Vol. 9. Profibus International. March 1998. p. 906. Archived from the original (PDF) on 16 November 2008. Retrieved 9 July 2016.
- ^ a b CAN with Flexible Data-Rate Specification (PDF). 1.0. Robert Bosch GmbH. 17 April 2012. p. 13. Archived from the original (PDF) on 22 August 2013. (3.2.1 DATA FRAME)
- ^ «OS-9 Operating System System Programmer’s Manual». www.roug.org. Archived from the original on 17 July 2018. Retrieved 17 July 2018.
- ^ Koopman, Philip P. (20 May 2018). «24 Bit CRC Zoo». users.ece.cmu.edu. Archived from the original on 7 April 2018. Retrieved 19 January 2018.
- ^ «cksum». pubs.opengroup.org. Archived from the original on 18 July 2018. Retrieved 27 June 2017.
- ^ Boutell, Thomas; Randers-Pehrson, Glenn; et al. (14 July 1998). «PNG (Portable Network Graphics) Specification, Version 1.2». Libpng.org. Archived from the original on 3 September 2011. Retrieved 3 February 2011.
- ^ AIXM Primer (PDF). 4.5. European Organisation for the Safety of Air Navigation. 20 March 2006. Archived (PDF) from the original on 20 November 2018. Retrieved 3 February 2019.
- ^ ETSI TS 100 909 Archived 17 April 2018 at the Wayback Machine version 8.9.0 (January 2005), Section 4.1.2 a
- ^ Gammel, Berndt M. (31 October 2005). Matpack documentation: Crypto – Codes. Matpack.de. Archived from the original on 25 August 2013. Retrieved 21 April 2013. (Note: MpCRC.html is included with the Matpack compressed software source code, under /html/LibDoc/Crypto)
- ^ Geremia, Patrick (April 1999). «Cyclic redundancy check computation: an implementation using the TMS320C54x» (PDF). Texas Instruments. p. 5. Archived (PDF) from the original on 14 June 2012. Retrieved 4 July 2012.
- ^ Jones, David T. «An Improved 64-bit Cyclic Redundancy Check for Protein Sequences» (PDF). University College London. Archived (PDF) from the original on 7 June 2011. Retrieved 15 December 2009.
Further reading[edit]
- Warren Jr., Henry S. (2013). Hacker’s Delight (2 ed.). Addison Wesley. ISBN 978-0-321-84268-8.
External links[edit]
- Mitra, Jubin; Nayak, Tapan (January 2017). «Reconfigurable very high throughput low latency VLSI (FPGA) design architecture of CRC 32». Integration, the VLSI Journal. 56: 1–14. doi:10.1016/j.vlsi.2016.09.005.
- Cyclic Redundancy Checks, MathPages, overview of error-detection of different polynomials
- Williams, Ross (1993). «A Painless Guide to CRC Error Detection Algorithms». Archived from the original on 3 September 2011. Retrieved 15 August 2011.
- Black, Richard (1994). «Fast CRC32 in Software». The Blue Book. Systems Research Group, Computer Laboratory, University of Cambridge. Algorithm 4 was used in Linux and Bzip2.
- Kounavis, M.; Berry, F. (2005). «A Systematic Approach to Building High Performance, Software-based, CRC generators» (PDF). Intel. Archived (PDF) from the original on 16 December 2006. Retrieved 4 February 2007., Slicing-by-4 and slicing-by-8 algorithms
- Kowalk, W. (August 2006). «CRC Cyclic Redundancy Check Analysing and Correcting Errors» (PDF). Universität Oldenburg. Archived (PDF) from the original on 11 June 2007. Retrieved 1 September 2006. — Bitfilters
- Warren, Henry S. Jr. «Cyclic Redundancy Check» (PDF). Hacker’s Delight. Archived from the original (PDF) on 3 May 2015. — theory, practice, hardware, and software with emphasis on CRC-32.
- Reverse-Engineering a CRC Algorithm Archived 7 August 2011 at the Wayback Machine
- Cook, Greg. «Catalogue of parameterised CRC algorithms». CRC RevEng. Archived from the original on 1 August 2020. Retrieved 18 September 2020.
- Koopman, Phil. «Blog: Checksum and CRC Central». Archived from the original on 16 April 2013. Retrieved 3 June 2013. — includes links to PDFs giving 16 and 32-bit CRC Hamming distances
- Koopman, Philip; Driscoll, Kevin; Hall, Brendan (March 2015). «Cyclic Redundancy Code and Checksum Algorithms to Ensure Critical Data Integrity» (PDF). Federal Aviation Administration. DOT/FAA/TC-14/49. Archived (PDF) from the original on 18 May 2015. Retrieved 9 May 2015.
- Koopman, Philip (January 2023). Mechanics of Cyclic Redundancy Check Calculations – via YouTube.
- ISO/IEC 13239:2002: Information technology — Telecommunications and information exchange between systems — High-level data link control (HDLC) procedures
- CRC32-Castagnoli Linux Library
Передача
данных по сети
http://www.do.rksi.ru/library/courses/kts/tema3_3.dbk
Ключевой
термин: пакет.
Пакет —
единица информации, передаваемой по
компьютерной сети.
Второстепенные
термины
-
заголовок
— часть пакета, содержащий следующую
информацию:-
адрес
источника; -
адрес
местоназначения; -
информацию,
синхронизирующую передачу.
-
-
данные
— это часть пакета, содержащая собственно
передаваемые данные; -
трейлер
(или концевик) — это часть пакета,
содержащая информацию для проверки
ошибок при приеме пакета.
Назначение
пакетов
Данные
обычно содержатся в больших по размерам
файлах. Однако сети не будут нормально
работать, если компьютер посылает этот
блок данных целиком. Существует две
причины, замедляющие работу сети при
передаче по кабелю больших блоков
данных.
Во-первых,
такой блок, посылаемый одним компьютером,
заполняет кабель и «связывает»
работу всей сети, т.е. препятствует
взаимодействию остальных сетевых
компонентов.
Во-вторых,
возникновение ошибок при передаче
крупных блоков приводит к повторной
передаче всего блока. А если поврежден
небольшой блок данных, то требуется
повторная передача именно этого
небольшого блока, что значительно
экономит время.
Чтобы
быстро и легко, не тратя времени на
ожидания, передавать по сети данные,
надо разбить их на небольшие управляемые
блоки. Эти блоки называются пакетами
или кадрами. Хотя термины «пакет»
и «кадр» синонимичны, полными
синонимами они все-таки не являются.
Существуют различия между этими терминами
в компьютерных сетях некоторых типов.
Пакет
— основная единица информации в
компьютерных сетях. При
разбиении данных на пакеты скорость их
передачи возрастает настолько, что
каждый компьютер в сети получает
возможность принимать и передавать
данные практически одновременно с
остальными компьютерами. На целевом
компьютере (компьютере-получателе)
пакеты накапливаются и выстраиваются
в должном порядке для восстановления
исходного вида данных.
При
разбиении данных на пакеты сетевая
операционная система добавляет к каждому
пакету специальную управляющую
информацию. Она обеспечивает:
-
передачу
исходных данных небольшими блоками; -
сбор
данных в надлежащем порядке (при их
получении); -
проверку
данных на наличие ошибок (после сборки).
Структура
пакета
Пакеты
могут содержать несколько типов данных:
-
информацию
(например, сообщения или файлы); -
определенные
виды данных и команд, управляющих
компьютером (например, запросы к
службам); -
коды
управления сеансом (например, запрос
на повторную передачу для исправления
ошибки).
Основные
компоненты
Некоторые
компоненты являются обязательными для
всех типов пакетов:
-
адрес
источника (source), идентифицирующий
компьютер-отправитель; -
передаваемые
данные; -
адрес
местоназначения (destination), идентифицирующий
компьютер-получатель; -
инструкции
сетевым компонентам о дальнейшем
маршруте данных; -
информация
компьютеру-получателю о том, как
объединить передаваемый пакет с
остальными, чтобы получить данные в
исходном виде; -
информация
для проверки ошибок, обеспечивающая
корректность передачи.
Компоненты
пакета группируются в три раздела:
заголовок, данные и трейлер.
Рисунок
3.3.3. Компоненты пакета
Заголовок
Заголовок
включает:
-
сигнал,
«говорящий» о том, что передается
пакет; -
адрес
источника; -
адрес
местоназначения; -
информацию,
синхронизирующую передачу.
Данные
Эта
часть пакета — собственно передаваемые
данные. В зависимости от типа сети ее
размер может меняться. Но для большинства
сетей он составляет от 512 байтов (0,5 Кб)
до 4 Кб.
Так
как обычно размер исходных данных
гораздо больше 4 Кб, для помещения в
пакет их необходимо разбивать на меньшие
блоки. При передаче объемного файла
может потребоваться много пакетов.
Трейлер
Содержимое
трейлера зависит от метода связи, или
протокола. Впрочем, чаще всего трейлер
содержит информацию для проверки ошибок,
называемую циклическим избыточным
кодом (Cyclical Redundancy Check, CRC). CRC — это число,
получаемое в результате математических
преобразований над пакетом и исходной
информацией. Когда пакет достигает
местоназначения, эти преобразования
повторяются. Если результат совпадает
с CRC — пакет принят без ошибок. В противном
случае — при передаче данные изменились,
поэтому необходимо повторить передачу
пакета.
Рисунок
3.3.4. Сформированный пакет
Формат
и размер пакета зависят от типа сети. А
максимальный размер пакета определяет,
в свою очередь, количество пакетов,
которое будет создано сетевой операционной
системой для передачи большого блока
данных.
Формирование
пакетов
Процесс
формирования пакета начинается на
Прикладном уровне модели OSI, т.е. там,
где «рождаются» данные. Информация,
которую надо переслать по сети, проходит
сверху вниз все семь уровней, начиная
с Прикладного.
На
каждом уровне компьютера-отправителя
к блоку данных добавляется информация,
предназначенная для соответствующего
уровня компьютера-получателя. Например,
информация, добавленная на Канальном
уровне компьютера-отправителя, будет
прочитана Канальным уровнем
компьютера-получателя.
Рисунок
3.3.5. Формирование пакета
Транспортный
уровень разбивает исходный блок данных
на пакеты. Структура пакетов определяется
протоколом, который используют два
компьютера — получатель и отправитель.
На Транспортном уровне, кроме того, к
пакету добавляется информация, которая
поможет компьютеру-получателю восстановить
исходные данные из последовательности
пакетов. Когда, завершив свой путь к
кабелю, пакет проходит Физический
уровень, он содержит информацию всех
остальных шести уровней.
Адресация
пакета
Большинство
пакетов в сети адресуется конкретному
компьютеру, и, как результат, только он
один реагирует на них. Каждая плата
сетевого адаптера «видит» все
пакеты, передаваемые по сегменту кабеля,
но только при совпадении адреса пакета
с адресом компьютера она прерывает его
работу. Используется также и
широковещательная адресация (broadcast
addressing). На пакет с таким типом адреса
одновременно реагирует множество
компьютеров в сети.
В
крупномасштабных сетях, покрывающих
огромные территории (или государства),
предлагается несколько возможных
маршрутов для передачи данных.
Коммутирующие и соединяющие сетевые
компоненты используют адресную информацию
пакетов для определения наилучшего из
маршрутов.
Рассылка
пакетов
Сетевые
компоненты используют адресную информацию
пакетов и для других целей: чтобы
направлять пакеты по местоназначению
и не допускать их в те области сети, к
которым они не относятся. В правильной
рассылке пакетов ключевую роль играют
две функции.
-
продвижение
пакетов
Компьютер
может отправить пакет на следующий
подходящий сетевой компонент, основываясь
на адресе из заголовка пакета.
-
фильтрация
пакетов
Компьютер
может отбирать определенные пакеты на
основе некоторых критериев, например
адреса.
Выводы
по теме
-
Пакет
— единица информации, передаваемой по
компьютерной сети. -
При
разбиении данных на пакеты сетевая
операционная система добавляет к
каждому пакету специальную управляющую
информацию. -
Компоненты
пакета группируются в три раздела:
заголовок, данные и трейлер. -
Формат
и размер пакета зависят от типа сети. -
Процесс
формирования пакета начинается на
Прикладном уровне модели OSI. -
Информация,
которую надо переслать по сети, проходит
сверху вниз все семь уровней, начиная
с Прикладного. -
На
каждом уровне компьютера-отправителя
к блоку данных добавляется информация,
предназначенная для соответствующего
уровня компьютера-получателя. -
Большинство
пакетов в сети адресуется конкретному
компьютеру, и, как результат, только он
один реагирует на них. -
Используется
также и широковещательная адресация
(broadcast addressing). На пакет с таким типом
адреса одновременно реагирует множество
компьютеров в сети. -
В
правильной рассылке пакетов ключевую
роль играют две функции: продвижение
пакетов и фильтрация пакетов.
Вопросы
для самоконтроля
-
Объясните
термин: «пакет». -
Для
чего данные, передаваемые по компьютерной
сети, разбивают на пакеты? -
Какую
функцию играет специальная управляющая
информация, которую сетевая операционная
система добавляет к каждому пакету? -
Какова
структура пакета? -
Какие
функции в правильной рассылке пакетов
играют ключевую роль? -
Что
означает термин «продвижение»
пакетов? -
Что
означает термин «фильтрация»
пакетов?
Расширяющий
блок
Структура
IP-пакета
IP-пакет
состоит из заголовка и поля данных.
Заголовок, как правило, имеющий длину
20 байт, имеет следующую структуру (рис.
3.3.7).
Поле
Номер версии (Version), занимающее 4 бит,
указывает версию протокола IP. Сейчас
повсеместно используется версия 4
(IPv4), и готовится переход на версию 6
(IPv6).
Поле
Длина заголовка (IHL) IP-пакета занимает
4 бит и указывает значение длины заголовка,
измеренное в 32-битовых словах. Обычно
заголовок имеет длину в 20 байт (пять
32-битовых слов), но при увеличении объема
служебной информации эта длина может
быть увеличена за счет использования
дополнительных байт в поле Опции (IP
Options). Наибольший заголовок занимает 60
октетов.
Поле
Тип сервиса (Type of Service) занимает один
байт и задает приоритетность пакета и
вид критерия выбора маршрута. Первые
три бита этого поля образуют подполе
приоритета пакета (Precedence). Приоритет
может иметь значения от самого низкого
— 0 (нормальный пакет) до самого высокого
— 7 (пакет управляющей информации).
Маршрутизаторы и компьютеры могут
принимать во внимание приоритет пакета
и обрабатывать более важные пакеты в
первую очередь. Поле Тип сервиса содержит
также три бита, определяющие критерий
выбора маршрута. Реально выбор
осуществляется между тремя альтернативами:
малой задержкой, высокой достоверностью
и высокой пропускной способностью.
Установленный бит D (delay) говорит о том,
что маршрут должен выбираться для
минимизации задержки доставки данного
пакета, бит Т — для максимизации пропускной
способности, а бит R — для максимизации
надежности доставки. Во многих сетях
улучшение одного из этих параметров
связано с ухудшением другого, кроме
того, обработка каждого из них требует
дополнительных вычислительных затрат.
Поэтому редко, когда имеет смысл
устанавливать одновременно хотя бы два
из этих трех критериев выбора маршрута.
Зарезервированные биты имеют нулевое
значение.
Рисунок
3.3.6. Структура заголовка IP-пакета
Поле
Общая длина (Total Length) занимает 2 байта и
означает общую длину пакета с учетом
заголовка и поля данных. Максимальная
длина пакета ограничена разрядностью
поля, определяющего эту величину, и
составляет 65 535 байт, однако в большинстве
хост-компьютеров и сетей столь большие
пакеты не используются. При передаче
по сетям различного типа длина пакета
выбирается с учетом максимальной длины
пакета протокола нижнего уровня, несущего
IP-пакеты. Если это кадры Ethernet, то выбираются
пакеты с максимальной длиной в 1500 байт,
умещающиеся в поле данных кадра Ethernet.
В стандарте предусматривается, что все
хосты должны быть готовы принимать
пакеты вплоть до 576 байт длиной (приходят
ли они целиком или по фрагментам). Хостам
рекомендуется отправлять пакеты размером
более чем 576 байт, только если они уверены,
что принимающий хост или промежуточная
сеть готовы обслуживать пакеты такого
размера.
Поле
Идентификатор пакета (Identification) занимает
2 байта и используется для распознавания
пакетов, образовавшихся путем фрагментации
исходного пакета. Все фрагменты должны
иметь одинаковое значение этого поля.
Поле
Флаги (Flags) занимает 3 бита и содержит
признаки, связанные с фрагментацией.
Установленный бит DF (Do not Fragment) запрещает
маршрутизатору фрагментировать данный
пакет, а установленный бит MF (More Fragments)
говорит о том, что данный пакет является
промежуточным (не последний) фрагментом.
Оставшийся бит зарезервирован.
Поле
Смещение фрагмента (Fragment Offset) занимает
13 бит и задает смещение в байтах поля
данных этого пакета от начала общего
поля данных исходного пакета, подвергнутого
фрагментации. Используется при
сборке/разборке фрагментов пакетов при
передачах их между сетями с различными
величинами MTU. Смещение должно быть
кратно 8 байт.
Поле
Время жизни (Time to Live) занимает один байт
и означает предельный срок, в течение
которого пакет может перемещаться по
сети. Время жизни данного пакета
измеряется в секундах и задается
источником передачи. На маршрутизаторах
и в других узлах сети по истечении каждой
секунды из текущего времени жизни
вычитается единица; единица вычитается
и в том случае, когда время задержки
меньше секунды. Поскольку современные
маршрутизаторы редко обрабатывают
пакет дольше, чем за одну секунду, то
время жизни можно считать равным
максимальному числу узлов, которые
разрешено пройти данному пакету до
того, как он достигнет места назначения.
Если параметр времени жизни станет
нулевым до того, как пакет достигнет
получателя, этот пакет будет уничтожен.
Время жизни можно рассматривать как
часовой механизм самоуничтожения.
Значение этого поля изменяется при
обработке заголовка IP-пакета.
Идентификатор
Протокол верхнего уровня (Protocol) занимает
один байт и указывает, какому протоколу
верхнего уровня принадлежит информация,
размещенная в поле данных пакета
(например, это могут быть сегменты
протокола TCP, дейтаграммы UDP, пакеты ICMP
или OSPF). Значения идентификаторов для
различных протоколов приводятся в
документе RFC «Assigned Numbers».
Контрольная
сумма (Header Checksum) занимает 2 байта и
рассчитывается только по заголовку.
Поскольку некоторые поля заголовка
меняют свое значение в процессе передачи
пакета по сети (например, время жизни),
контрольная сумма проверяется и повторно
рассчитывается при каждой обработке
IP-заголовка. Контрольная сумма — 16 бит
— подсчитывается как дополнение к сумме
всех 16-битовых слов заголовка. При
вычислении контрольной суммы значение
самого поля «контрольная сумма»
устанавливается в нуль. Если контрольная
сумма неверна, то пакет будет отброшен,
как только ошибка будет обнаружена.
Поля
IP-адрес источника (Source IP Address) и IP-адрес
назначения (Destination IP Address) имеют одинаковую
длину — 32 бита — и одинаковую структуру.
Поле
Опции (IP Options) является необязательным
и используется обычно только при отладке
сети. Механизм опций предоставляет
функции управления, которые необходимы
или просто полезны при определенных
ситуациях, однако он не нужен при обычных
коммуникациях. Это поле состоит из
нескольких подполей, каждое из которых
может быть одного из восьми предопределенных
типов. В этих подполях можно указывать
точный маршрут прохождения маршрутизаторов,
регистрировать проходимые пакетом
маршрутизаторы, помещать данные системы
безопасности, а также временные отметки.
Так как число подполей может быть
произвольным, то в конце поля Опции
должно быть добавлено несколько байт
для выравнивания заголовка пакета по
32-битной границе.
Поле
Выравнивание (Padding) используется для
того, чтобы убедиться в том, что
IP-заголовок заканчивается на 32-битной
границе. Выравнивание осуществляется
нулями.
Формат
пакета протокола IPX
Пакет
протокола IPX имеет гораздо более простую
структуру по сравнению с пакетом IP, что,
собственно, и отражает меньшие
функциональные возможности протокола
IPX.
IPX-пакет
имеет следующие поля.
-
Контрольная
сумма (Checksum) — это 2-байтовое поле,
являющееся «пережитком прошлого»,
которое протокол IPX ведет от протокола
ГОР стека Xerox. Так как низкоуровневые
протоколы (например, Ethernet) всегда
выполняют проверку контрольных сумм,
то IPX не использует это поле и всегда
устанавливает его в единицы. -
Длина
(Length) занимает 2 байта и задает размер
всего пакета, включая IPX-заголовок и
поле данных. Самый короткий пакет — 30
байт — включает только IPX-заголовок, а
рекомендуемый максимально большой —
576 байт — включает IPX-заголовок плюс 546
байт данных. Максимальный размер пакета
в 576 байт соответствует рекомендациям
стандартов Internet для составных сетей.
Протокол IPX вычисляет значение этого
поля, основываясь на информации,
предоставляемой прикладной программой
при вызове функции IPX. IPX-пакет может
превосходить рекомендуемый максимум
в 576 байт, что и происходит в локальных
сетях Ethernet, где используются IPX-пакеты
в 1500 байт с полем данных в 1470 байт. -
Управление
транспортом (Transport control) имеет длину 8
бит. Это поле определяет время жизни
пакета в хопах. IPX-пакет может пересечь
до 15 маршрутизаторов. Протокол IPX
устанавливает это однобайтовое поле
в 0 до начала передачи, а затем увеличивает
его на 1 каждый раз, когда пакет проходит
через маршрутизатор. Eu,ui счетчик превысит
15, то пакет аннулируется. -
Тип
пакета (Packet type) имеет длину 8 бит. Фирма
Xerox определила в свое время определенные
значения для различных типов пакетов:
прикладные программы, посылающие
IPX-пакеты, должны устанавливать это
поле в значение, равное 4. Значение 5
соответствует служебным IPX-пакетам,
используемым протоколом SPX в качестве
служебных сообщений. Значение 17 указывает
на то, что в поле данных IPX-пакета
находится сообщение протокола NetWare
Core Protocol (NCP) — основного протокола файловой
службы NetWare. -
Адрес
назначения (Destination address) — состоит из
трех полей: номера сети назначения,
номера узла назначения, номера сокета
назначения. Эти поля занимают
соответственно 4, 6 и 2 байта. -
Адрес
отправителя (Source address) — номер исходной
сети, номер исходного узла, номер
исходного сокета. Аналогичны адресным
полям назначения. -
Поле
данных (Data). Может занимать от 0 до 546
байт. Поле данных нулевой длины может
использоваться в служебных пакетах,
например, для подтверждения получения
предыдущего пакета.
Из
анализа формата пакета можно сделать
некоторые выводы об ограничениях
протокола IPX.
-
Отсутствует
возможность динамической фрагментации
на сетевом уровне. В IPX-пакете нет полей,
с помощью которых маршрутизатор может
разбить слишком большой пакет на части.
При передаче пакета в сеть с меньшим
значением MTU IPX-маршрутизатор отбрасывает
пакет. Протокол верхнего уровня, например
NCP, должен последовательно уменьшать
размер пакета до тех пор, пока не получит
на него положительную квитанцию. -
Большие
накладные расхдды на служебную
информацию. Сравнительно небольшая
максимальная длина поля данных IPX-пакета
(546 байт при длине заголовка 30 байт)
приводит к тому, что как минимум 5 %
данных являются служебными. -
Время
жизни пакета ограничено числом 15, что
может оказаться недостаточным для
большой сети (для сравнения, в IP-сетях
пакет может пройти до 255 промежуточных
маршрутизаторов). -
Отсутствует
поле качества сервиса, что не позволяет
маршрутизаторам автоматически
подстраиваться к требованиям приложения
к качеству передачи трафика.
Кроме
того, некоторые недостатки сетей Novell
связаны не с протоколом IPX, a со свойствами
других протоколов стека IPX/SPX. Многие
недостатки проявляются при работе стека
IPX/SPX на медленных глобальных линиях
связи, и это закономерно, так как ОС
NetWare оптимизировалась для работы в
локальной сети.
Например,
неэффективная работа по восстановлению
потерянных и искаженных пакетов на
низкоскоростных глобальных каналах
обусловлена тем, что протокол NCP, который
выполняет эту работу, использует метод
получения квитанций с простоями. В
локальных сетях со скоростью 10 Мбит/с
такой метод работал вполне эффективно,
а на медленных каналах время ожидания
квитанции заметно тормозит работу
передающего узла.
В
версиях ОС NetWare до 4.0 соответствие
символьных имен серверов их сетевым
адресам устанавливалось только с помощью
широковещательного протокола Service
Advertising Protocol (SAP). Однако широковещательные
рассылки заметно засоряют медленные
глобальные каналы. Модернизируя свой
стек для применения в крупных корпоративных
сетях, компания Novell использует теперь
справочную службу NDS (NetWare Directory Services)
для нахождения разнообразной информации
об имеющихся в сети ресурсах и службах,
в том числе и о соответствии имени
сервера его сетевому адресу. Так как
служба NDS поддерживается только серверами
с версией NetWare 4.x и выше, то для работы с
версиями NetWare 3.x маршрутизаторы распознают
SAP-пакеты по номеру их сокета и передают
их на все порты, имитируя широковещательные
рассылки локальной сети, на что тратится
значительная часть пропускной способности
медленных глобальных линий. Кроме того,
такая «псевдошироковещательность»
сводит на нет изоляцию сетей от
некорректных SAP-пакетов.
В
последних версиях своей операционной
системы NetWare компания Novell значительно
модифицировала свой стек для того, чтобы
он мог более эффективно использоваться
в крупных составных сетях.
-
Служба
NDS позволяет отказаться от широковещательного
протокола SAP. Служба NDS основана на
иерархической распределенной базе
данных, хранящей информацию о пользователях
и разделяемых ресурсах сети. Приложения
обращаются к этой службе по протоколу
прикладного уровня NDS. -
Добавлен
модуль для реализации метода скользящего
окна — так называемый Burst Mode Protocol NLM. -
Добавлен
модуль для поддержки длинных IPX-пакетов
в глобальных сетях -Large Internet Packet NLM.
Кроме
того, постоянное повышение быстродействия
глобальных служб уменьшает недостатки
оригинальных протоколов стека IPX/SPX, что
позволяет некоторым обозревателям
говорить об успешной работе операционной
системы NetWare в глобальных сетях и без
указанных нововведений.
Соседние файлы в папке Подговка к экзамену ЭВМ
- #
- #
- #
- #
- #
- #
- #
- #
Подождите!
Не закрывайте страницу. Нейросеть пишет ответ. Он появится тут.
Этот ответ написан нейросетью.
Искуственный интеллект во многом преуспевает, но в некоторых областях может давать неточные ответы.
Если вам не понравился ответ, попробуйте задать его более развёрнуто и конкретно, используя точные параметры.
Ответ нейросети:
Поле управления в заголовке пакета – это специальное поле, которое отвечает за управление передачей пакета по сети. Оно используется для указания уникального идентификатора пакета, выбора маршрута передачи, проверки целостности данных и контроля ошибок.
Одним из главных назначений поля управления является идентификация пакета в сети. Каждый пакет должен иметь уникальный идентификатор, чтобы получатель мог правильно обработать его и передать ответную информацию. Поле управления содержит этот идентификатор и позволяет получателю однозначно распознать каждый пакет.
Кроме того, поле управления используется для выбора маршрута передачи для пакета. При передаче пакета по сети может быть несколько путей маршрутизации, и выбор оптимального маршрута может существенно влиять на скорость и качество передачи данных. В поле управления указывается информация о маршруте, по которому должен идти пакет.
Еще одно важное назначение поля управления – проверка целостности данных и контроль ошибок. При передаче пакета по сети могут возникать ошибки, связанные с нарушением целостности данных или с неправильной обработкой пакетов на устройствах сети. Поле управления содержит информацию для проверки целостности данных и обнаружения ошибок. Например, в поле управления может быть размещен контрольная сумма, которая поможет обнаружить ошибку при передаче пакета.
Таким образом, поле управления в заголовке пакета имеет важное значение для правильной передачи данных по сети. Оно обеспечивает идентификацию пакета, выбор маршрута передачи, проверку целостности данных и контроль ошибок. Без правильной работы поля управления передача данных по сети может стать медленной и неэффективной, а в худшем случае – невозможной.
⚠️Зарепортить пост!
Протокол TCP является одним из важнейших протоколов связи в компьютерных сетях. В этой статье познакомимся с ним поближе.
Что такое транспортные протоколы
Транспортные протоколы (TCP и UDP) используются для передачи информации. Информация передаётся маленькими частями — сетевыми пакетами. То есть поток информации разбивается на много маленьких пакетов.
Каждый пакет состоит из заголовка и самих данных. Заголовок содержит служебную информацию, например порт источника и назначения.
Спецификация доступна здесь, но мне кажется мало кто осилит это чтение.
Протокол TCP находится на 4 уровне модели OSI.
Главной особенностью TCP (Transmission Control Protocol) является то, что этот протокол гарантирует доставку всех отправленных пакетов. При этом проверяется целостность пакетов и их порядок. Если пакет потерялся или испортился, то получатель запросит эти пакеты у отправителя снова. Если пакеты пришли не в том порядке, то они на принимающей стороне всё равно обработаются в правильном. Этот механизм контроля доставки накладывает дополнительную нагрузку в виде увеличения служебной информации, которую нужно передать вместе с полезными данными.
Протокол TCP делит поток информации на сегменты. В одном сегменте может быть несколько пакетов. Каждый сегмент проверяется на целостность, и если все хорошо, отправляется подтверждение передающей стороне. Таким образом подтверждается не каждый пакет, а каждый сегмент, но в сегменте может оказаться и всего лишь один пакет.
Поверх протокола TCP работают многие прикладные протоколы:
- сайты (http, https);
- электронная почта (imap, pop, smtp);
- передача файлов (cifs, nfs, ftp);
- удаленные подключения (rdp, ssh).
TCP пакеты передаются не просто так, а в рамках установленного соединения — которое называют TCP сессией.
Подключение можно выполнить только если вторая сторона прослушивает порт, к которому будет выполняться подключение.
Алгоритм работы TCP
Алгоритм работы TCP следующий:
- Используя трехкратное рукопожатие, между двумя узлами создаётся сеанс связи.
- При отправке пакетов узлы последовательно нумеруют их и рассчитывают контрольную сумму.
- Поскольку все пакеты имеют последовательные номера, то становится видно если какие-то из них отсутствуют. В этом случае отправляется запрос на повторную отправку пакета.
- Если для какого-то пакета не совпала контрольная сумма, то отправляется запрос на повторную отправку пакета.
При открытии даже одной веб странички создаются несколько TCP соединений для:
- html страницы;
- каждого CSS и JavaScript файлов;
- каждого изображения.
И для каждого такого соединения вначале устанавливается сеанс, что замедляет передачу данных.
Заголовок TCP пакета
Заголовок TCP пакета состоит из следующих полей:
- Порт отправителя.
- Порт получателя.
- Порядковый номер в сегменте (sequence number). В целях безопасности номер первого пакета в сегменте генерируется случайным образом и может быть равно от 0 до 4294967295. Следующие пакеты, в отправляемом сегменте, просто увеличиваю свой порядковый номер;
- Номер подтверждения (acknowledgment number). Когда мы подтверждаем определённый пакет, в нем записывается sequence number подтверждаемого пакета.
- Длина заголовка (data offset). В этом поле указывается длина заголовка TCP пакета и где начинаются фактические данные.
- Зарезервированное поле. Эти биты зарезервированы для будущего использования.
- Флаги. Необходимы для дополнительной функциональности. Например, позволяют установить или разорвать соединение, включить или выключить защиту от перегрузки сети и тому подобное.
- Размер окна (Window Size). Указывается количество байт, считая от последнего номера подтверждения, которые готов принять отправитель данного пакета. То есть, какой у него в данный момент времени размер буфера.
- Контрольная сумма (Checksum). Используется для проверки на наличие ошибок при приеме или передачи пакетов. Рассчитывается с учетом заголовка (кроме контрольной суммы) и самих данных.
- Указатель срочности (Urgent pointer). Используется, если стоит флаг URG. По этому значению определяются срочные данные и они сразу же передаются приложению. Остальные данные попадают в буфер.
- Дополнительные опции. Необязательно, но используются почти всегда.
- Заполнение (Padding). Дополняет заголовок, пока он не закончится на 32-разрядной границе. Всегда состоит только из нулей.
Флаги в заголовке TCP
- NS (Nonce Sum). Защита от случайного или злонамеренного изменения флагов. Используется для улучшения работы механизма явного уведомления о перегрузке ECN (Explicit Congestion Notification).
- CWR (Congestion Window Reduced). Подтверждение получения пакета с флагом ECE и включением механизма уменьшения перегрузки (Congestion Control). Этот механизм позволяет оптимизировать отправку пакетов в перегруженных сетях.
- ECE (ECN-Echo). Выполняет две функции. Если соединение только устанавливается, то означает что отправитель поддерживает ECN. В другом случае, это означает перегрузку сети (или предстоящую перегрузку) для отправителя.
- URG (Urgent). Указатель важности. 0 если не используется, 1 — используется.
- ACK. Устанавливается, когда принимающая сторона подтверждает полученный пакет. Чтобы отправитель знал, какие пакеты уже были доставлены получателю. При этом в поле acknowledgment number записывается номер подтверждаемого пакета.
- PSH (Push). Обычно получатель не подтверждает каждый пакет при получении. Вместо этого пакеты накапливаются в буфере, пока не передадутся приложению. Данный флаг сообщает получателю, что нужно немедленно передать всё из буфера приложению и сразу же отправить подтверждение.
- RST. Сообщает о немедленном разрыве соединения. При этом соединение обрывается, а буфер очищается. Самые распространенные причины отправки пакета с таким флагом:
- ответ на пакет, полученный для закрытого сокета;
- пользователь сам прервал соединение (например, закрыв браузер, не дожидаясь ответа);
- соединение не было нормально закрыто, но находится в неактивном состоянии некоторое время.
- SYN. Данный флаг означает начало соединения. Он также синхронизирует начальные номера. Первый пакет, отправленный с каждой стороны, должен иметь этот флаг.
- FIN. Сообщает другой стороне что все пакеты были отправлены, и соединение пора завершить.
Создание TCP сессии
Для установления соединения использует трехкратное рукопожатие.
Первый этап. Клиент отправляет на сервер пакет с флагом SYN. При этом клиент устанавливает порядковый номер сегмента на случайное значение A.
Второй этап. В ответ сервер отвечает пакетом с флагами SYN и ACK. Номер подтверждения установлен на единицу больше принятого (A+1). Поскольку сервер также будет отправлять данные, то для себя он тоже выбирает номер первого пакета, который будет другим случайным числом B.
Третий этап. Клиент отправляет ACK на сервер. Порядковый номер устанавливается равным A+1, а номер подтверждения устанавливается на B+1.
На этом этапе клиент и сервер получили подтверждение соединения и образовали двухстороннюю связь.
Передача данных в TCP
Теперь разберём пример передачи данных в уже установленном сеансе.
Клиент отравляет запрос к серверу. Поскольку данные поместились в один пакет TCP, то этот запрос (пакет) получил флаг PSH, чтобы сервер не ждал продолжение получения данных. При этом пакет получил 2 флага: ACK (подтвердил предыдущею передачу пакетов от сервера) и PSH.
В ответ на это сервер отправляет пакет ACK с номером успешно полученных данных.
Далее сервер обработал запрос и отправляет данные клиенту. Эти данные делятся на пакеты и отправляются сегментами.
Далее клиент подтверждает, что данные получены отправляя пакеты с флагом ACK.
Завершение сеанса TCP
Завершение сеанса использует четырёхкратное рукопожатие, причём каждая сторона завершает своё соединение независимо.
Когда одна из сторон хочет остановить свою половину соединения, она передаёт пакет FIN, который другая сторона подтверждает пакетом с ACK.
После того, как сторона, отправившая первый FIN, ответила с последним ACK, она ожидает некоторое время прежде чем окончательно закрыть соединение. В течение этого времени локальный порт недоступен для новых соединений.
Соединение может быть «полуоткрытым», и в этом случае одна сторона завершила свою часть, а другая — нет. Завершившая сторона больше не может отправлять какие-либо данные, но другая сторона может. Завершающая сторона должна продолжить чтение данных, пока другая сторона также не завершит свою работу.
Также возможно разорвать соединение трёхкратным рукопожатием, когда первая сторона отправляет FIN, а вторая отвечает FIN и ACK (просто объединяет 2 шага в один). Дальше первая сторона подтверждает завершение сеанса с помощью ACK.
Состояния сеанса TCP
Сеанс TCP может находится в следующих состояниях:
- CLOSED — начальное состояние;
- LISTEN — сервер ожидает запросы от клиента;
- SYN-SENT — клиент хочет установить соединение с сервером и ожидает подтверждение;
- SYN-RECEIVED — сервер получил запрос на создание сеанса, отправил ответный запрос и ожидает подтверждение;
- ESTABLISHED — соединение установлено, идёт передача данных;
- FIN-WAIT-1 — одна из сторон завершает соединение, отправив флаг FIN;
- CLOSE-WAIT — другая сторона переходит в это состояние, отправив подтверждение на FIN, но продолжает передачу;
- FIN-WAIT-2 — первый узел получил ACK, разорвал свое соединение, но еще читает данные;
- LAST-ACK — второй узел заканчивает передачу и отправляет флаг FIN;
- TIME-WAIT — сервер получил пакет с флагом FIN, отправил флаг ACK и ждёт некоторое время, перед окончательным закрытием соединения;
- CLOSING — обе стороны инициировали закрытие соединения одновременно.
Итог
Вот мы и познакомились с одним из самых важных протоколов сети Интернет. Протокол TCP действительно очень важен в компьютерных сетях. Разобрались с его особенностями, алгоритмом работы. Узнали про сеансы TCP, пакеты и сегменты.
Я также описывал ещё один важный протокол компьютерной сети, а именно протокол UDP. Статья доступна здесь.
Сводка
Имя статьи
Транспортный протокол TCP
Описание
Протокол TCP является одним из важнейших протоколов связи в компьютерных сетях. В этой статье познакомимся с ним поближе.
Обновлено: 11.06.2023
Пакет — единица информации, передаваемой по компьютерной сети.
заголовок — часть пакета, содержащий следующую информацию:
данные — это часть пакета, содержащая собственно передаваемые данные;
трейлер (или концевик) — это часть пакета, содержащая информацию для проверки ошибок при приеме пакета.
Назначение пакетов
Данные обычно содержатся в больших по размерам файлах. Однако сети не будут нормально работать, если компьютер посылает этот блок данных целиком. Существует две причины, замедляющие работу сети при передаче по кабелю больших блоков данных.
Во-первых, такой блок, посылаемый одним компьютером, заполняет кабель и «связывает» работу всей сети, т.е. препятствует взаимодействию остальных сетевых компонентов.
Во-вторых, возникновение ошибок при передаче крупных блоков приводит к повторной передаче всего блока. А если поврежден небольшой блок данных, то требуется повторная передача именно этого небольшого блока, что значительно экономит время.
Чтобы быстро и легко, не тратя времени на ожидания, передавать по сети данные, надо разбить их на небольшие управляемые блоки. Эти блоки называются пакетами или кадрами. Хотя термины «пакет» и «кадр» синонимичны, полными синонимами они все-таки не являются. Существуют различия между этими терминами в компьютерных сетях некоторых типов.
Пакет — основная единица информации в компьютерных сетях. При разбиении данных на пакеты скорость их передачи возрастает настолько, что каждый компьютер в сети получает возможность принимать и передавать данные практически одновременно с остальными компьютерами. На целевом компьютере (компьютере-получателе) пакеты накапливаются и выстраиваются в должном порядке для восстановления исходного вида данных.
При разбиении данных на пакеты сетевая операционная система добавляет к каждому пакету специальную управляющую информацию. Она обеспечивает:
передачу исходных данных небольшими блоками;
сбор данных в надлежащем порядке (при их получении);
проверку данных на наличие ошибок (после сборки).
Структура пакета
Пакеты могут содержать несколько типов данных:
определенные виды данных и команд, управляющих компьютером (например, запросы к службам);
коды управления сеансом (например, запрос на повторную передачу для исправления ошибки).
Основные компоненты
Некоторые компоненты являются обязательными для всех типов пакетов:
адрес источника (source), идентифицирующий компьютер-отправитель;
адрес местоназначения (destination), идентифицирующий компьютер-получатель;
инструкции сетевым компонентам о дальнейшем маршруте данных;
информация компьютеру-получателю о том, как объединить передаваемый пакет с остальными, чтобы получить данные в исходном виде;
информация для проверки ошибок, обеспечивающая корректность передачи.
Компоненты пакета группируются в три раздела: заголовок, данные и трейлер.
Вся информация в сетях как в локальных, так и в интернете передаётся не сплошным потоком, а разбивается на отдельные фрагменты, называемые пакетами. Иногда, в различных типах сетей, применяются другие названия: блоки, сегменты, кадры, ячейки. В чем смысл такой разбивки? Не проще ли передать файл целиком?
Имя статьи
Транспортный протокол TCP
Описание
Протокол TCP является одним из важнейших протоколов связи в компьютерных сетях. В этой статье познакомимся с ним поближе.