Panic-protocol lost botsingen in FireWire op

Vervolg van de voorpagina

De meeste computers beschikken tegenwoordig over een FireWire-poort, een aansluiting waarmee bijvoorbeeld videocamera’s of externe harddisks snel hun data kunnen overbrengen naar de harde schijf. Voorstellen voor aanpassingen en ontwerpen van standaarden als FireWire, worden in stemming gebracht bij de IEEE, waarbij leden hun oordeel vellen. In het geval van dr. Judi Romijn betekende dat een goedkeuring voor haar aanpassingen voor de FireWire-standaard.

FireWire-apparatuur kan in principe veel verder worden uitgebreid dan de verbinding tussen een computer en één enkel randapparaat. Met behulp van bridges kunnen ze uitgroeien tot netwerken, waarbij in bepaalde gevallen fouten kunnen optreden. Romijn deed tijdens haar promotie bij het Centrum voor Wiskunde en Informatica in Amsterdam al onderzoek naar de kwaliteit van protocol-standaarden, en stuitte zo op een gebrek in de eerste IEEE 1394-standaard. “Bij bepaalde verbindingen kan het zo zijn dat er een timer afgaat en vertelt dat er een lus is, terwijl dat niet zo is.” Een bug wil Romijn het niet noemen, maar: “Er is een flaw die heel af en toe onterecht lussen detecteert”. Naar aanleiding van haar ontdekking nam ze contact op met de 1394-werkgroepen en voorzitter Peter Johansson nodigde haar uit om haar bevindingen toe te lichten op een bijeenkomst in Brussel. “Ze vonden het interessant voor hun nieuwe standaard”, zegt Romijn. “Maar er was geen geld voor onderzoek. Zo gaat dat nu eenmaal; de IEEE formuleert wel working groups, en je mag publiceren op hun website, maar je moet zelf voor geld zorgen.” Dat kreeg Romijn in 2001 van NWO als Vernieuwingsimpuls voor het project ‘Improving the Quality of Protocol Standards’ dat sinds december 2001 wordt uitgevoerd bij Informatica.
Romijn schetst de werking van het 1394.1-protocol: “FireWire-bussen worden gekoppeld met bridges. Meerdere bussen en bridges vormen een net. Binnen dat net bepalen de bridges wie de ‘leider’ is, wat de richting naar de leider is, en de afstand van iedere bus naar de leider”. Menselijke interventie kan die hiërarchische rolverdeling binnen een FireWire-netwerk verstoren, bijvoorbeeld door het loskoppelen of aansluiten van apparaten, waardoor er lussen ontstaan die het netwerk kunnen verstoren. “Bij dergelijke ‘loopjes’ krijg je botsingen. Ik heb hele discussies gehad met de IEEE-commissie over de vraag of mogelijke fouten zich ook daadwerkelijk voordoen. Zij achtten die kans heel klein en ik wilde laten zien dat het wel kon gebeuren. Onze drijfveer is altijd geweest om fouten te vinden.” Om haar stelling te bewijzen, gebruikte Romijn een abstract model. “Je kunt al het gedrag van zo’n model ‘brute force’ doorrekenen, maar dat kost verschrikkelijk veel tijd en computerkracht. Het voordeel is wel dat je fouten precies kunt herleiden, terwijl je met constructieve bewijsmethodes al tijdens het bewijzen moet begrijpen waarom het model goed is, en de oorsprong van fouten veel lastiger is te achterhalen.”
“In het Net Update-protocol worden veranderingen in de topologie anders behandeld dan gebruikelijk in de boom-opspannende algoritmen in de literatuur”, zegt Romijn. “Niet dat die literatuur niet deugde, maar in de 1394.1-werkgroep zitten technici met andere ideeën over wat efficiënt is, en de werking van een protocol wordt uiteindelijk bepaald in een democratisch proces. Er waren ook meerdere reset-protocollen, maar uiteindelijk heeft men gekozen voor een eigen variant in het Panic-protocol met twee golven in dezelfde richting, waarbij alle netwerkinformatie wordt uitgeveegd in de eerste golf en de bridges terugkeren naar hun initiële toestand in de tweede golf.”
Naast het verzorgen van de wiskundige onderbouwing voor de Net Update en Panic-protocollen bestaat Romijns bijdrage aan het 1394.1-protocol uit het compleet maken van de beschrijving in de standaard en het toevoegen van de Net Correctness Properties. Deze eigenschappen geven het doel van Net Update weer en maken debuggen mogelijk voor een fabrikant. “De hele beschrijving van de protocollen beslaat uiteindelijk zo’n vijftien A-viertjes. Het is nog wel geschreven in natuurlijke taal en ik had het liever formeel uitgewerkt.” De naam van Romijn is in ieder geval verbonden aan het FireWire-netwerk./.