Introductie Informatica en Informatiekunde/tentaminering/Taak2B. protocollen
Achtergrond
Bij communicatie in een computernetwerk wordt informatie uitgewisseld tussen de verschillende netwerkcomponenten. Dat gebeurt dan via een bepaalde standaard, een protocol. Meestal wordt zo’n protocol beschreven door aan te geven hoe elke afzonderlijke component in het netwerk zich moet gedragen.
Zo’n protocol kan eenvoudig zijn ('stuur een berichtje naar een naburige component X via verbindingslijn A'), maar is vaak complexer, bijvoorbeeld als er geen rechtstreekse verbinding tussen twee componenten bestaat, of als er storingen kunnen optreden en je zeker wilt weten dat component X het bericht ook daadwerkelijk ontvangen heeft. We zijn zo'n situatie al tegengekomen bij het netwerk van een bank (stroomuitval bij de geldautomaat).
Bij de ontwikkeling van foutgevoelige systemen worden hoge eisen gesteld aan de betrouwbaarheid van de gebruikte protocollen. Daarom hebben wetenschappers verschillende methoden en gereedschappen ontwikkeld om de correctheid van protocollen te onderzoeken en te beredeneren.
Leerdoel
Na het voltooien van deze taak kun je
- deelnemen aan een gemeenschappelijke probleemanalyse van communicatie in een eenvoudig zender-ontvangernetwerk;
- aansluitend een communicatieprotocol uitwerken in de vorm van een informele specificatie en een algoritme;
- bij een gegeven correctheidseigenschap aannemelijk maken dat het protocol eraan voldoet.
Instructie
- Doe mee aan de analyse van het 'leader election' probleem. Let met name op de manier waarop we over de correctheid van voorstellen kunnen redeneren en ze via zo'n redenering verwerpen of aanpassen.
- Doe mee aan de brainstorm over communicatie met ontvangstbevestiging.
- Werk het resulterende protocol uit.
- Stel dat afzonderlijke berichten één letter bevatten, en dat een boodschap verzonden wordt als een reeks letters. Maak aannemelijk dat de boodschap "ABA" niet bij de ontvanger aankomt als "ABBA".
Product
- Uitwerking van het protocol.
- Redenering bij de gegeven eigenschap.
Reflectie
- Vermeld je duidelijk welke aannamen je maakt over de structuur van het netwerk?
- Maak je onderscheid tussen het 'wat' (specificatie) en het 'hoe' (algoritme) van je protocol?
- Is je algoritme geformuleerd als locaal voorschrift, dat wil zeggen: zijn de acties geformuleerd in termen van de informatie van en naar de betreffende knoop, en niet in termen van het gedrag van de overige knopen (dat de knoop immers niet kan ‘zien’)?
- Is je redenering kernachtig, logisch en voor een medestudent te volgen?