Dit practicum gaat over het Alternating Bit Protocol (ABP). Dit is een verzameling afspraken voor het versturen van informatie tussen computers in situaties waarbij berichten verloren kunnen gaan. Het ABP is een eenvoudige versie van wat er standaard gebruikt wordt binnen het Internet.
Open de onderstaande files in Uppaal:
Deze files bevatten een model van het ABP. Lees de onderstaande toelichting zorgvuldig en speel wat met de simulator voordat je verder gaat met de opdrachten.We nemen aan dat er twee computers zijn, een zender S en een ontvanger R, die elkaar berichten kunnen sturen: via een kanaal K voor berichten van S naar R, en via een kanaal L voor berichten van R naar S:
Bij poort in komen de berichten binnen die S moet versturen. Het is de bedoeling dat al deze berichten in dezelfde volgorde door R worden afgeleverd bij poort out. Maar de kanalen K en L zijn onbetrouwbaar en berichten kunnen verloren raken. De zender stuurt ieder bericht daarom net zo vaak totdat hij een ontvangstbevestiging terugkrijgt via kanaal L. Om te zorgen dat de ontvanger het verschil kan zien tussen een herhaald bericht en een nieuw bericht, voegt de zender aan ieder bericht een extra bit toe. De combinatie van een bericht en zo'n extra bit noemen we een frame. Stel dat S berichten d0, d1, d2, d3,... moet versturen. S stuurt dan eerst net zo lang frames (d0,0) in kanaal K totdat hij een ontvangstbevestiging 0 ontvangt via kanaal L. Dan verstuurt hij net zo lang frames (d1,1) totdat hij een ontvangstbevestiging 1 ontvangt. Vervolgens verstuurt hij net zo lang frames (d2,0) totdat hij weer een ontvangstbevestiging 0 ontvangt. Enzovoorts.
In ons model nemen we voor het gemak aan dat er slechts twee berichten zijn: 0 en 1. In de begintoestand S0 ontvangt de zender S een nieuw bericht via kanaal in. Als dit bericht 0 is dan springt de zender naar toestand S00 en als het 1 is dan springt de zender naar toestand S10. Vervolgens kunnen er drie dingen gebeuren:
Automaat K beschrijft een communicatiekanaal waarin 1 frame opgeslagen kan worden. Als er een frame binnenkomt via poort sendframe, dan wordt dit doorgestuurd via poort receiveframe en het kanaal keert terug in de begintoestand. Het is echter ook mogelijk dat het frame verloren gaat: in dat geval keert het kanaal terug naar de begintoestand zonder een frame te versturen. Automaat L is hetzelfde, alleen verstuurt het bits in plaats van frames.
In de begintoestand R0 van de ontvanger kunnen er drie dingen gebeuren:
Om aan te tonen dat het ABP berichten altijd goed verstuurt maken we gebruik van een automaat Tester. Deze automaat beschrijft het gedrag van een gebruiker van het ABP die test of het protocol wel goed werkt. De tester stuurt een willekeurig bericht naar poort in en kijkt dan of hetzelfde bericht uit het systeem komt via poort out. Zo ja, dan gaat de tester terug naar de begintoestand en begint overnieuw. Indien er een bericht uit het systeem komt dat er niet is ingestopt dan springt de tester naar toestand ProtocolFout.
Met behulp van Uppaal kun je vaststellen dat de volgende twee eigenschappen gelden: