Zestaw reguł, których używają systemy komputerowe i inne urządzenia technologiczne do komunikowania się z innymi systemami i urządzeniami lub przekazywania informacji z nimi, jest znany jako protokół komunikacyjny. Protokół definiuje format i składnię przesyłanych danych. Może to przybrać formę specjalnych poleceń wysyłanych przed rzeczywistymi danymi lub może to być transmisja całych zserializowanych obiektów określonego typu. Protokoły mogą być implementowane przez oprogramowanie lub mogą być wbudowane w sprzęt i systemy wbudowane. W użyciu jest wiele protokołów komunikacyjnych, z których niektóre są zastrzeżone dla celów bezpieczeństwa, a niektóre są open source do celów programistycznych.
Protokół komunikacyjny jest budowany poprzez ustalenie składni, którą systemy mogą zarówno zrozumieć, jak i podążać. Chociaż rzeczywista semantyka protokołu może się różnić, większość z nich jest podobna, ponieważ opiera się na tych samych podstawowych zasadach i ograniczeniach sprzętowych. Po ustanowieniu protokołu wszystkie systemy, które go rozumieją, będą mogły wysyłać i odbierać dane z innymi tego rodzaju systemami. W ten sposób protokół komunikacyjny bardzo przypomina rozwój wspólnego języka, który jest używany do przekazywania informacji do i od kogoś, kto zna ten język.
Protokoły sprzętowe są często używane do ustalenia parametrów pracy dla dwóch urządzeń. Protokoły te mogą ustalać stałe, takie jak szybkość przesyłania, maksymalny rozmiar bloku danych oraz metody szyfrowania i kompresji. Chociaż są bardzo wydajne, protokoły sprzętowe zajmują się przede wszystkim ustanawianiem fizycznego połączenia między dwoma urządzeniami, w przeciwieństwie do faktycznej interpretacji danych lub innych żądań.
Protokoły oprogramowania mogą być bardzo elastyczne i mogą robić znacznie więcej niż tylko przesyłać dowolne dane. Gdy dwa programy mają zaimplementowany protokół komunikacyjny, mogą włączyć dowolną liczbę algorytmów lub funkcji. Najczęstsze to wykrywanie i korygowanie błędów.
Wykrywanie i korekcja błędów to sposoby, dzięki którym dane przesyłane przez określony protokół mogą być nadmiarowo sprawdzane pod kątem błędów. Może to być konieczne, gdy fizyczne linie między urządzeniami są zawodne lub mają dużą ilość szumów, które mogłyby zakłócić sygnał. Opracowano kilka algorytmów, które mogą pomóc w sprawdzeniu i przywróceniu integralności przesłanych danych.
Protokoły nie są wyłącznym mechanizmem i bardzo często są ułożone warstwowo w ramach systemu lub struktury. Protokoły sieciowe są prawie zawsze warstwowe. Oznacza to, że do obsługi różnych zadań przypisane są różne protokoły. Niektóre zapewniają dostęp do zasobów w systemie operacyjnym, podczas gdy inne mogą po prostu przekazywać informacje na ślepo do innego węzła. Uwarstwienie protokołów komunikacyjnych jest jednym z fundamentów Internetu, który umożliwia jego spójne działanie z wieloma różnymi typami komputerów i urządzeń.