15 September 2010 TDDD36: Laboration i OMNet++ Juha Takkinen, tekn.dr Institutionen för datavetenskap (IDA), LiU 1.0 Översikt av laborationen Denna laboration ger dig dels en introduktion till OMNet++ och dels tillfälle att analysera ett IEEE 802.11-nät i ad hoc-läge. Laborationen görs i grupper om två personer. Vi har reserverat två labbtillfällen för laborationen i pc-pul på IDA (se timeeditschemat för kursen), men du kan lika gärna göra laborationen hemifrån eller på din egen laptop genom att installera OMNet++ själv. Vi använder IDAs webregsystem för att administrera labbresultat. Skriv upp dig i en labbgrupp genom att logga in med ditt LiU-id på adress https://www.ida.liu.se/webreg/tddd36-2010/lab1 och senast den 20 september 2010. Sista datum för redovisning av laborationen är fredagen den 22 oktober. IDAs och LiUs policy för datorlaborationer gäller även laborationen i TDDD36; se bilaga sist i detta dokument. 2.0 Introduktion till OMNet++ I den första halvan av laborationen kommer du att få lära dig hur man arbetar i omnetmiljön (OMNet++) och vilka de viktigaste verktygen och funktionerna är. 1 av 6
Introduktion till OMNet++ 2.1 Uppstart (Del 1: Getting started) 1. Du behöver först skapa en workspace som ligger på ditt konto där du har skrivrättigheter, t.ex. under Desktop; skapa en katalog som heter tictoc där. 2. Gå sedan till sidan TicToc Tutorial for OMNeT på adress http://www.omnetpp.org/doc/omnetpp40/tictoc-tutorial/ och välj Getting started. 3. I omnet kan man arbeta både i ett linuxliknande kommandoskalfönster 1 och via ett grafiskt gränssnitt. Du ska börja med ett kommandoskalfönster. Starta nu ett linuxliknande skalfönster: Välj Start-->All Programs-->OMNET++-->mingwenv (shell) och klicka OK på frågan om du vill tillåta programmet att exekvera; förstora fönstret så du kan arbeta i det. 4. Gå till din workspace via cd-kommandot; sökvägen till t.ex. Desktop brukar se ut som /c/documents and Settings/juhta595/ Desktop 5. Skapa en katalog som heter tictoc, om den inte redan finns där, med mkdir-kommandot: mkdir tictoc. (Om du skapar tictockatalogen med mkdir under Documents and Settings\Desktop så kommer katalogen sedan att återfinnas under My Computer och på den lokala hårddisken via menyerna i Windows.) 6. Gå sedan till din nyskapade tictockatalog och kopiera dit samtliga tutorialexempel från samplekatalogen: cp -r /c/programs/ OMNeT++/omnetpp-4.1/samples/tictoc. (OBS. punkt på slutet efter mellanslaget). Lista innehållet i katalogen med ls-kommandot. Notera att siffrorna i filnamnen motsvarar de olika stegen i tutorial. 7. Läs nu tutorialtexten under Getting started, steg 2 och 3. 8. I steg 4 och 5 i tutorialtexten ska du sedan skapa en makefile-fil med opp_makemake-kommandot för att kunna kompilera med make-kommandot; kör dessa två kommandon i tictockatalogen; kontrollera att det har skapats en fil som heter tictoc.exe i katalogen. OBS. Om du senare skulle behöva uppdatera makefilen så måste du ange flagga "-f" efter opp_makemake-kommandot. 9. Innan du kan köra din simulering måste du tala om för omnet vilket nät den ska aktivera. Detta gör du genom att skapa en omnetpp.inifil i katalogen där exe-filen ligger. I steg 6 i tutorialtexten under Getting started visas först den ini-fil som behövs för tictoc1- exemplet (endast en rad) och sedan hela den ini-fil som du redan har kopierat från sampleskatalogen och som innehåller inikommandon för samtliga nät som skapas i tutorial. Denna stora ini- 1. Om du är osäker på de vanligaste unix/linuxkommandona, se t.ex. Linux Cheat Sheet hos FOSSwire: http://fosswire.com/post/2007/08/unixlinux-command-cheat-sheet/. 2 av 6 TDDD36: Laboration i OMNet++
Introduktion till OMNet++ fil är ett exempel på hur man kan ha flera olika nät samtidigt definierade och som man sedan kan välja att köra, antingen från kommandoraden eller så frågar omnet vilket nät som önskas. 10.Starta nu simulatorn med kommandot tictoc i skalfönstret, i tictockatalogen. Du ska då få upp två fönster, ett topologifönster och ett resultatfönster för spårutskrifter. Klicka på Run i topologifönstret och starta din simulering. Tryck på Stop-knappen när du vill avsluta simuleringen. Fråga 1.I vilken fil definierar man nätets topologi? Fråga 2.Vad gör funktionen initialize()? Vad åstadkommer anropet av send() i funktionen initialize()? Fråga 3.Vad gör funktionen handlemessage()? Fråga 4.Ange vilken/vilka av följande fördröjningar som finns i nätet i del 1: sändningsfördröjning (eng. transmission delay), propageringsfördröjning (eng. propagation delay), bearbetningsfördröjning (eng. processing delay), köfördröjning (eng. queueing delay). 2.2 Förfining av nätet (Del 2: Enhancing the 2-node tictoc) Du ska nu få se hur man kan förfina nätet från del 1 ovan genom att lägga till fördröjningar i det och även timers och omsändning av paket. Du kommer även att få lära dig hur man förbättra presentationen av nätet på skärmen, lägga till fler variabler för att kontrollera simuleringen med och även förbättra spårutskrifterna. 11.Gör steg 2-9 i denna andra del av tutorial. Fråga 5.Vad åstadkommer en rad såsom EV << Hello\n? Är det samma som att skriva printf( Hello\n );? Fråga 6.Vad använder man makrot WATCH till i omnet? Fråga 7.Hur kan man modellera bearbetningsfördröjning (eng. processing delay) i omnet? Fråga 8.Hur många och vilken typ av slumptalsfördelningar (eng. random number distributions) används i del 2 av tutorial? 2.3 Ett mer verklighetstroget nät (Del 3: Turning it into a real network) Nu kommer du att få lägga till fler noder i nätet, fler fördröjningar och duplexkanaler. Dessutom ska den hårdkodade adressen i meddelandena ersättas med en slumpmässigt skapad adress som läggs in i meddelandehuvudet. 12.Gör steg 10-13 i del 3 av tutorial. Fråga 9.Vilka fördröjningar (eng. delays) finns i nätet i del 3? Sammanfatta hur och var de kan implementeras i omnet. TDDD36: Laboration i OMNet++ 3 av 6
IEEE 8021.11-nät i ad hoc-läge Fråga 10.Hur ser protokollhuvudet på meddelandena ut som skickas i nätet i del 3? Ange dess olika fält. 2.4 Insamling av statistik (Del 4: Adding statistics collection ) Här lär du dig hur man lägger till funktioner för att samla in statistik om antal paket som har skickats/tagits emot och generell statistik som senare kan analyseras i IDE, den eclipsebaserade utvecklingsmiljön i omnet. 13.Gör nu steg 14-15 i tutorial. Fråga 11.Hur talar man om för omnet att man vill samla in statistik från en simulering? Fråga 12.Var sparas resultatet från en simulering? 2.5 Visualisering av resultat (Del 5: Visualizing the results with the OMNeT++ IDE) I den sista delen i tutorial ska du lära dig hur man kan visualisera den insamlade statistiken från nätet. Det finns flera grafiska verktyg i omnet som kan användas för att visa resultat visuellt i form av grafer. Du kommer senare att bla analysera sekvensdiagram (eng Sequence charts), som grafiskt visar lagren i nätet och hur kommunikationen har skett mellan dem och noderna i nätet. 14.Kör simuleringen av nätet i filerna markerade med siffran 15. Stoppa sedan simuleringen när du tycker att det har samlats in tillräckligt med data. Resultatet ska ha lagrats i filerna Tictoc15-0.vec och Tictoc15-0.sca. OBS. Innan du avslutar omnet, se till att anropa Simulate Call finish() via menyn (eller klicka på motsvarande knapp i fönstret) då kommer funktionen finish() att anropas och data att skrivas till filen Tictoc15-0.sca. Fråga 13.Skapa ett sekvensdiagram (eng. sequence chart) för en körning av simulatorn med tictoc15-exemplet (6 noder). Förklara vad diagrammet innehåller för information. 3.0 IEEE 8021.11-nät i ad hoc-läge I denna avslutande del av laborationen kommer du att kunna redogöra för hur en lyckad respektive misslyckad kommunikation mellan två noder i ad hoc-läge i ett wifinät ser ut. 15.Skapa en ny katalog som heter adhoc i din workspace (se Uppstart ovan). Kopiera sedan filerna från omnets exempelkatalog: cp -r /c/ 4 av 6 TDDD36: Laboration i OMNet++
IEEE 8021.11-nät i ad hoc-läge programs/omnet++/omnetpp-4.1/inet/examples/adhoc/ieee80211. (OBS. punkt på slutet efter mellanslaget). Denna simulering som du nu har lagrat i katalogen adhoc utgörs av ett IEEE 802.11-nät i ad hoc-läge; ad hoc betyder att nätet saknar en naturlig infrastruktur, uppbyggd av t.ex. accesspunkt och distributionssystem. Nätet består endast av två stationer (noder). Dessa kommunicerar med varandra; station host1 skickar ping-meddelanden till station host0. 16.Du ska nu köra simuleringen av ad hoc-nätet, men via det grafiska gränssnittet till omnet istället. Välj Start-->Programs i Windows. Välj sedan Open i omnet och öppna omnetpp.ini-filen. Välj sedan Run As-->Simulation och simuleringen startar. Studera noderna när de rör sig över en begränsad area och hur host1 skickar meddelanden till host0. Tryck på Stop-knappen för att avbryta simuleringen. Upprepa simuleringen några gånger. 17.Kör nu simuleringen en gång till för att samla statistik för att svara på frågorna som följer. Avsluta sedan omnet. Svara Ja på frågan om du vill köra finish(). 18.Starta det grafiska omnet igen. Välj Sequence chart, läs in resultatfilen från din simulering. Filtrera sedan bort alla lager utom MAC-lagret och det fysiska lagret genom att välja NED-typer. Du kan sedan även flytta de fysiska lagren för såväl host0 som host1 till mitten av diagrammet, så att MAC-lagren för noderna hamnar överst respektive underst. Detta gör det lättare att följa vägen för ett meddelande mellan noderna och genom lagren. Fråga 14.Varför skulle du svara Ja på den sista frågan innan du avslutade omnet ovan? Fråga 15.Studera omnetpp.ini-filen. Vilket protokoll används i MAClagret enligt omnetpp.ini-filen? Hur ser det fysiska lagret ut? Fråga 16.Se på ditt sekvensdiagram. Hur många pingmeddelanden kom fram till host0? Hur vet du det? Fråga 17.Redovisa steg-för-steg hur ett pingmeddelande upptäcks och tas emot av host0 genom att hänvisa till sekvensdiagrammets beskrivning av händelsen. Fråga 18.Hur många pingmeddelanden misslyckades, d.v.s. kom inte fram eller misstolkades av host0? Välj ett av de misslyckade pingmeddelandena och förklara varför det meddelandet misslyckades. Hänvisa till data insamlad av omnet om det fysiska lagret och MAC-lagret. TDDD36: Laboration i OMNet++ 5 av 6
Redovisning 4.0 Redovisning Svara på frågorna i texten och skriv en labbrapport. Använd IDAs labbrapportomslag och fyll i alla fält. Underteckna och lägg i ett brunt internkuvert adresserat till Juha Takkinen och lämna i postfacket till IDAs postrum som finns mitt emot Café Java i hus B. PS! Använd gärna simulatorn i ert projekt och/eller er slutpresentation. Bilaga: Regler för examinering av datorlaborationer vid IDA. Datorlaborationer görs i grupp eller individuellt, enligt de instruktioner som ges för en kurs. Examinationen är dock alltid individuell. Det är inte tillåtet att lämna in lösningar som har kopierats från andra studenter, eller från annat håll, även om modifieringar har gjorts. Om otillåten kopiering eller annan form av fusk misstänks, är läraren skyldig att göra en anmälan till universitetets disciplinnämnd. Du ska kunna redogöra för detaljer i koden för ett program. Det kan också tänkas att du får förklara varför du har valt en viss lösning. Detta gäller alla i en grupp. Om du förutser att du inte hinner redovisa i tid, ska du kontakta din lärare. Då kan du få stöd och hjälp och eventuellt kan tidpunkten för redovisningen senareläggas. Det är alltid bättre att diskutera problem än att, t.ex., fuska. Om du inte följer universitetets och en kurs examinationsregler, utan försöker fuska, t.ex. plagiera eller använda otillåtna hjälpmedel, kan detta resultera i en anmälan till universitetets disciplinnämnd. Konsekvenserna av ett beslut om fusk kan bli varning eller avstängning från studierna. Policy för redovisning av datorlaborationer vid IDA För alla IDA-kurser som har datorlaborationer gäller generellt att det finns en bestämd sista tidpunkt, deadline, för inlämning av laborationer. Denna deadline kan vara under kursens gång eller vid dess slut. Om redovisning inte sker i tid måste, den eventuellt nya, laborationsserien göras om nästa gång kursen ges. 6 av 6 TDDD36: Laboration i OMNet++