Набор правил, которые компьютерные системы и другие технологические устройства используют для связи с другими системами и устройствами или для передачи информации туда и обратно, известен как протокол связи. Протокол определяет формат и синтаксис передаваемых данных. Это может принимать форму специальных команд, отправленных перед фактическими данными, или это может быть передача целых сериализованных объектов определенного типа. Протоколы могут быть реализованы с помощью программного обеспечения или могут быть встроены в аппаратные и встроенные системы. Существует много протоколов связи, некоторые из которых являются собственностью в целях безопасности, а некоторые из них являются открытыми с исходными кодами для целей разработки.
Протокол связи строится путем установления синтаксиса, который системы могут понимать. Хотя фактическая семантика протокола может отличаться, большинство из них схожи, потому что они основаны на тех же основополагающих принципах и аппаратных ограничениях. Как только протокол будет установлен, все системы, которые понимают протокол, смогут отправлять и получать данные с другими такими системами. Таким образом, протокол связи очень похож на разработку общего языка, который используется для передачи информации кому-либо, кто знает этот язык.
Аппаратные протоколы часто используются для установления рабочих параметров для двух устройств. Эти протоколы могут устанавливать константы, такие как скорость передачи, максимальный размер блока данных и методы шифрования и сжатия. Хотя они очень эффективны, аппаратные протоколы касаются прежде всего установления физической связи между двумя устройствами, а не фактической интерпретации данных или других запросов.
Программные протоколы могут быть очень гибкими и могут делать гораздо больше, чем просто передавать произвольные данные. Когда два компонента программного обеспечения осуществили коммуникационный протокол, они могут включать любое некоторое количество алгоритмов или функций. Наиболее распространенными являются обнаружение ошибок и исправление ошибок.
Обнаружение и исправление ошибок – это способы, при которых данные, передаваемые через определенный протокол, могут быть избыточно проверены на наличие ошибок. Это может быть необходимо, когда физические линии между устройствами ненадежны или имеют большой объем шума, который может повредить сигнал. Было разработано несколько алгоритмов, которые могут помочь проверить и восстановить целостность данных, которые были отправлены.
Протоколы не являются эксклюзивным механизмом и очень часто накладываются друг на друга в рамках системы или структуры. Сетевые протоколы почти всегда многоуровневые. Это означает, что для обработки различных задач назначаются разные протоколы. Некоторые предоставляют доступ к ресурсам в операционной системе, в то время как другие могут просто передавать информацию другому узлу. Разделение коммуникационных протоколов является одним из оснований Интернета, которое позволяет ему последовательно работать со множеством различных типов компьютеров и устройств.