Mjukvara väckte nyfikenhet
2016-03-14Per Hurtig och Johan Garcia har utvecklat en mjukvara för deterministisk emulering som nyligen presenterades på konferensen Netdev 1.1 i Sevilla. Intresset för mjukvaran var stort och flera av deltagarna uttryckte att deterministisk emulering skulle vara användbart för dem.
När datorer kommunicerar med varandra kontrolleras kommunikationsbeteendet av protokoll. Dessa protokoll behöver prestandautvärderas och ibland även felsökas. En vanlig metod för sÃ¥dan utvärdering är nätverksemulering, där man använder en emuleringsmjukvara för att ”härma” nätverkskarakteristik sÃ¥som fördröjningar och paketförluster. En mjukvara för deterministisk emulering möjliggör utvärderingar av protokoll med en extra hög grad av kontroll. I det här fallet gör deterministisk emulering det möjligt att kontrollera för exakt vilka datapaket, eller exakt för vilken millisekund, en emuleringseffekt skall pÃ¥verka den datatrafik som man utvärderar.
- Med deterministisk emulering kan man lÃ¥ta emuleringseffekter, sÃ¥som paketförluster, pÃ¥verka valda datapaket för att pÃ¥ sÃ¥ vis utvärdera hur väl en viss mekanism i ett protokoll fungerar. Detta tillvägagÃ¥ngssätt har vi pÃ¥ Datavetenskap vid ¹û¶³´«Ã½s universitet även använt tidigare för att hitta buggar i Linux implementation av ett protokoll, berättar Johan Garcia.
Alla som har ett intresse av att utvärdera prestanda för olika protokoll eller applikationer med en hög nivå av kontroll är potentiella användare av mjukvaran. Den är också mycket användbar när man skall verifiera implementationer och utökningar av protokoll.
- Vi har tidigare tagit fram mjukvaran KauNet, som möjliggör deterministisk emulering i operativsystemet FreeBSD. Den mjukvara vi presenterade på konferensen, KauNetEm, är en implementation för Linux. Eftersom Linux har betydligt mer spridning än FreeBSD så tror vi att en implementation för Linux kan bidra till att deterministisk emulering får bredare spridning, säger Johan Garcia.
Nästa steg för forskarna i utvecklingen av KauNet är att fortsätta förbättra implementationen och dokumentationen. Målet är att se om det är möjligt att få mjukvaran inkluderad i Linux-kärnan. En inkludering i kärnan innebär att det blir lättare för intresserade att använda deterministisk emulering utan behov av ytterligare installation av mjukvara i kärnan.