Поделиться через


Кодированные и декодированные данные

Для отправки данных через коммуникационную среду, например телефонную линию, данные должны быть сериализованными, то есть преобразуются в строку из тех и нули, которые передаются последовательно по строке. Сериализация должна выполняться таким образом, чтобы компьютер, получающий данные, смог преобразовать данные обратно в исходный формат. Как выполняется сериализация, называется протоколом связи, и управляется программным обеспечением и оборудованием передачи данных. Существует несколько уровней, на которых преобразуются данные. На следующем рисунке показано значительно упрощенное представление уровней протокола связи.

уровней протокола связи

На приведенном выше рисунке показан слой приложений на компьютере #1, отправляющий передаваемые данные (которые обычно состоят из некоторых сочетаний текстовых символов и чисел) в слой кодирования и декодации. Слой кодирования и декодирует данные в потоке байтов компьютера. На самом низком уровне аппаратного слоя оборудование преобразует байты данных в последовательный поток из тех и нулей, которые передаются по строке в Computer #2. Аппаратный слой компьютера #2 преобразует те и нули обратно в байты компьютера, а затем передает их на уровень кодирования и декодирования для декодирования. Слой кодирования и декодации декодирует байты обратно в исходный формат и передает данные до уровня приложения.

Принятый принцип проектирования программного обеспечения заключается в использовании абстракции, то есть процесс описания проблемы или объекта с точки зрения его общих параметров, а не описания всех деталей, необходимых для решения проблемы, или описания всех деталей объекта. С помощью абстракции конструктор может указать объект программного обеспечения, который имеет определенные качества, не беспокоясь о том, как объект фактически реализуется в коде программного обеспечения. Такая практика оставляет реализацию открытой. Он также упрощает спецификацию и позволяет указать аксиомы об объекте, который можно доказать при реализации объекта. Затем эти аксиомы можно предположить, когда объект используется в другом объекте более высокого уровня. Абстракция является отличительной чертой большинства современных спецификаций программного обеспечения.

Большинство протоколов связи включают большую часть абстракции. Объекты на более высоких уровнях определяются абстрактно и предназначены для реализации с помощью объектов на более низких уровнях. Например, службе на одном уровне может потребоваться передача определенных абстрактных объектов между компьютерами. Уровень нижнего уровня может использовать правила кодирования для преобразования абстрактных объектов в строки из одного и нуля.

Один из распространенных методов указания абстрактных объектов, предназначенных для последовательной передачи, вызывается абстрактной нотации синтаксиса One (ASN.1). ASN.1 определен в рекомендаций CCITT X.208. Один набор правил ASN.1 для представления таких объектов, как строки и нули, называется правила кодирования (DER) и определен в рекомендации CCITT X.509, раздел 8.7. Это методы кодирования, используемые в настоящее время CryptoAPI.

Дополнительные сведения о функциях кодирования и декодирования см. в функции кодирования и декодирования объектов.