În sensul larg, într-un sistem distribuit, un protocol reprezintã un acord în ceea ce priveºte schimbul de informaþii.O definiþie completã a noþiunii de protocol seamãnã foarte mult însã cu definiþia unui limbaj.
Un protocol:
- defineºte un format precis pentru mesajele valide – o sintaxã
- defineºte regulile/procedurile privind schimbul de mesaje/date – o gramaticã
- defineºte un vocabular privind sensurile mesajelor valide – o semanticã
Gramatica trebuie sã fie completã ºi consistentã din punct de vedere logic, adicã sã descrie în termeni neambigui ce este permis ºi ce este interzis. Aceasta este problema cea mai dificilã în practicã: cum trebuie proiectat un astfel de set de reguli astfel încât sã fie complet, logic, sã transfere minimul de informaþii de control, ºi, nu în ultimul rând, sã fie uºor de implementat.
Problemã:
Un tunel este strãbãtut de o singurã linie de cale feratã. La fiecare capãt al tunelului se gãsesc: linii de rezervã, un operator uman, un semafor automat ce trece de pe culoarea verde pe culoarea roºie imediat ce un tren trece de el ºi un telegraf prin care operatorii pot comunica între ei. În cazul apariþiei unor probleme în tunel, operatorul trebuie sã semnalizeze cu ajutorul unor steaguri trenurile care urmeazã. De asemenea, operatorii sunt cei care trebuie sã schimbe culoarea semaforului din roºu în verde, dupã ce s-au asigurat cã linia este liberã.
Gândiþi un protocol care sã permitã circulaþia în siguranþã, în ambele sensuri prin tunel: un set minim de mesaje ce trebui schimbate între operatori cu ajutorul telegrafului ºi semnificaþia lor (sintaxa +semanticã) ºi un set de reguli pentru transmiterea acestor mesaje.