Vad är protokoll?

När jag var barn hade vi en massa oskrivna regler vid matbordet. En av dem var att man inte fick ta det sista av någonting.

Ibland kunde det vara att man hemskt gärna ville ha den där förbjudna sista någonting. Då fanns det en specialregel man kunde ta till för att kringgå den urprungliga regeln: man frågade om någon annan ville ha den. Vilket alla förstod att betydde att man själv ville ha den.

För ett sådant fall fanns det två svar de andra fick välja mellan: "Nej tack, ta den du" eller "Ska vi dela på den?" (vilket egentligen betydde "Jag ville jag ha den själv men du hann fråga före mig, din räv").

Ett specialfall var om någon öppnade med frågan "Vill någon dela på den sista?" Det betydde antingen "Jag orkar inte med hela" eller "För helvete om någon ens tänker på att ta hälften kommer jag hälla toavatten i er morgongröt." Då fick man med hjälp av frågarens kroppsspråk avgöra vad de egentligen menade.

Våra vardagliga interaktioner i både familj och samhälle är fulla med liknande oskrivna relger. De är alla ett slags protokoll som berättar hur vi förväntas göra i olika situationer.

Nyttiga för oss, nödvändiga för datorer

För människor kan protokoll vara nyttiga men för datorer är protokoll nödvändiga.

Stöter vi på en halvbekant på stan som nickar åt oss utan att sakta farten så vet vi att vi förväntas nicka tillbaka medan vi också går vidare. Stöter vi på en halvbekant på stan som stannar, sätter en höna på huvudet och börjar joddla så har vi ingen jävla aning om vad vi förväntas göra. Men vi kan improvisera.

Datorer improviserar inte. Vad du än gör som kräver kommunikation mellan din dator och en eller flera andra datorer - surfa på nätet, streama en film, skicka epost - fungerar endast om de involverade datorerna har klart definierade regler för hur kommunikation och informationsflöde ska gå till.

  • Vilken dator ska börja diskussionen?

  • Hur får de börja diskussionen?

  • Vad får den andra svara?

  • Hur kan datorerna sedan dela ytterligare information med varandra?

  • Hur avslutar man diskussionen?

  • Om den ena datorn verkligen tyckte om den andra datorn, hur många dagar ska den vänta innan den tar kontakt igen för att inte verka för ivrig?

Alla de här frågorna (utom då kanske den sista) måste definieras på förhand. Den samlingen regler för hur datorerna ska kommunicera är ett protokoll.