Code: Select all
Î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.