Protokol (informatika)
Protokol je v informatice konvence nebo standard, podle kterého probíhá elektronická komunikace a přenos dat mezi dvěma koncovými body (realizované nejčastěji počítači). V nejjednodušší podobě protokol definuje pravidla řídící syntaxi, sémantiku a synchronizaci vzájemné komunikace. Protokoly mohou být realizovány hardwarově, softwarově anebo kombinací obou.
Typické vlastnosti
Protokoly mohou specifikovat mnoho vlastností, například:
- detekce základního fyzického spojení (kabelové, bezdrátové) nebo existence jiných koncových bodů nebo uzlů
- handshake (automatický proces vyjednávání, který dynamicky nastavuje parametry komunikačního kanálu mezi dvěma entitami před začátkem klasické komunikace po kanálu)
- vyjednávání o různých parametrech spojení
- jak začít a ukončit zprávu
- jak formátovat zprávy
- co dělat s poškozenými nebo nesprávně naformátovanými daty (oprava chyb)
- jak detekovat neočekávanou ztrátu spojení a co provést jako další akci
- ukončení relace nebo spojení
Význam protokolů
Přesný popis komunikačního protokolu usnadňuje interoperabilitu různých implementací počítačových programů, které se podílejí na vzájemné komunikaci. Otevřený přístup ke specifikaci protokolu urychluje rozvoj a rozšiřování počítačových technologií do nejrůznějších oborů lidské činnosti.
Síťové protokoly
Hlavním pozitivním příkladem užitečnosti otevřeného přístupu k definici a popisu protokolů je prudký rozvoj Internetu v posledních desetiletích. Internetové protokoly jsou publikovány jako veřejně přístupné RFC dokumenty, které jsou zastřešeny sdružením Internet Engineering Task Force (IETF).
Mezi hlavní protokoly Internetu patří rodina protokolů TCP/IP, do které patří Internet Protocol (IP), Transmission Control Protocol (TCP), User Datagram Protocol (UDP) a další protokoly. Kromě rodiny protokolů TCP/IP jsou na Internetu používány i další (aplikační) protokoly jako například: HTTP, DHCP, FTP, Telnet, SSH, POP3, IMAP, SMTP a další.
Objektové programování
Objektově orientované programování rozšířilo použití protokolů umožňujících spojení a komunikaci mezi objekty.
Vztah k referenčnímu modelu ISO/OSI
Referenční model ISO/OSI je mezinárodní standard, který popisuje vrstvový model komunikace v počítačových sítích. Protokol definuje systém komunikace mezi vzájemně odpovídajícími vrstvami. Referenční model ISO/OSI je komplikovanější (a má více vrstev) než model použitý v TCP/IP.
V rámci TCP/IP je například definován IP nebo TCP protokol, v rámci DNS je pak definován protokol pro přenos DNS zpráv, E-mail používá pro přenos mailů protokol SMTP a podobně).
Testování protokolů
Testování protokolů probíhá tak, že se zachytávají informace vyměňované mezi testovaným zařízením a porovnávají se se správně fungující komunikací mezi referenčními zařízeními. Někdy se stává, že fungující komunikace se odchyluje od definice protokolu a tvůrce zařízení pak musí implementovat do komunikačního protokolu výjimky (anglicky workaround), které zajistí kompatibilitu s chybně fungujícím zařízením. Při testování koncových zařízení jsou často záměrně zasílány testovanému zařízení nesprávné zprávy, aby byla otestována schopnost zařízení vyrovnat se s mezními nebo nedefinovanými stavy komunikace.
Pokud zařízení testování vyhoví, může získat certifikaci, která potvrzuje, že způsob komunikace odpovídá definici protokolu (např. logo Wi-Fi, HD ready a podobně). V rámci Internetu se však spíše spoléhá na to, že implementace nedodržující RFC budou mít problémy při komunikaci s ostatními a jejich tvůrci budou sami usilovat o nápravu problematické odchylky od definovaného protokolu.
Většina protokolů z rodiny TCP/IP používá z důvodu snadnějšího testování protokol v otevřené podobě, kde si komunikující strany vyměňují zprávy a příkazy v podobě prostého textu (anglicky plain text), protože takový způsob komunikace může člověk sledovat a porozumět mu i bez speciálních nástrojů.