zobacz spis treści
Transkrypt
zobacz spis treści
Spis treści Wstęp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 Rozdział 1. Wprowadzenie teoretyczne . . . . . . . . . . . . . . . . . . . . . 3 1.1. 1.2. Podstawowe definicje . . . . . . . . . . . . . . . . . . Wprowadzenie do symulacji zdarzeń dyskretnych . . 1.2.1. Symulacja sieci komputerowych . . . . . . . . 1.2.2. Przegląd dostępnych symulatorów sieciowych . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 . 5 . 9 . 10 Rozdział 2. Pakiet OMNeT++ . . . . . . . . . . . . . . . . . . . . . . . . . . 13 2.1. 2.2. 2.3. Instalacja pakietu . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.1.1. Instalacja w systemie Linux . . . . . . . . . . . . . . . . . 2.1.2. Tworzenie i kompilacja nowego projektu w systemie Linux 2.1.3. Instalacja środowiska OMNeT++ w systemie Windows . Koncepcja budowy modelu symulacyjnego . . . . . . . . . . . . . 2.2.1. Hierarchiczność modelu . . . . . . . . . . . . . . . . . . . 2.2.2. Połączenia, bramki, komunikaty . . . . . . . . . . . . . . . Środowisko uruchomieniowe symulacji . . . . . . . . . . . . . . . . 2.3.1. Środowisko tekstowe Cmdenv . . . . . . . . . . . . . . . . 2.3.2. Środowisko graficzne TkEnv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 14 15 16 18 19 20 21 21 23 Rozdział 3. Definicja modelu symulacyjnego . . . . . . . . . . . . . . . . . . 29 3.1. 3.2. 3.3. Definicja modułów i tworzenie topologii połączeń modelu . 3.1.1. Składnia języka NED . . . . . . . . . . . . . . . . . 3.1.2. Definicja modułów prostych . . . . . . . . . . . . . 3.1.3. Definicja modułów złożonych . . . . . . . . . . . . 3.1.4. Wyrażenia w języku NED . . . . . . . . . . . . . . 3.1.5. Określanie parametrów połączeń . . . . . . . . . . 3.1.6. Szczegółowe zasady przesyłu komunikatów . . . . . 3.1.7. Definiowanie funkcji użytkownika . . . . . . . . . . 3.1.8. Definicja sieci symulacyjnej . . . . . . . . . . . . . 3.1.9. Właściwości graficzne komponentów . . . . . . . . 3.1.10. Graficzny edytor GNED . . . . . . . . . . . . . . . Plik konfiguracyjny omnetpp.ini . . . . . . . . . . . . . . 3.2.1. Sekcja [General] . . . . . . . . . . . . . . . . . . . 3.2.2. Sekcja [Parameters] . . . . . . . . . . . . . . . . . 3.2.3. Znaki wieloznaczne (wildcards) . . . . . . . . . . . 3.2.4. Sekcje [Run i] . . . . . . . . . . . . . . . . . . . . 3.2.5. Pozostałe parametry konfiguracyjne . . . . . . . . Zaawansowane możliwości parametryzowania modułów . . 3.3.1. Parametryzowanie wektorów modułów składowych 3.3.2. Parametryzowanie typów modułów . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 31 33 37 45 45 46 47 48 48 52 53 54 54 55 57 57 58 58 59 Rozdział 4. Programowanie aktywnych modułów (C++) . . . . . . . . . . 61 IV Spis treści 4.1. Symulacja zdarzeń dyskretnych w OMNeT++ . . . . . . . . 4.1.1. Czas symulowany . . . . . . . . . . . . . . . . . . . . 4.1.2. Wymiana informacji ze środowiskiem symulacji . . . 4.1.3. Definiowanie modułów prostych w C++ . . . . . . . 4.1.4. Metoda handleMessage(cMessage *msg) . . . . . . . 4.1.5. Obsługa bram i połączeń . . . . . . . . . . . . . . . . 4.2. Komunikaty . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2.1. Wysyłanie komunikatów . . . . . . . . . . . . . . . . 4.2.2. Skryptowe definiowanie własnych klas komunikatów 4.3. Parametry . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.3.1. Dostęp do parametrów modułu . . . . . . . . . . . . 4.4. Identyfikacja i dostęp do hierarchii modułów . . . . . . . . . 4.5. Zbieranie i przetwarzanie wyników symulacji . . . . . . . . . 4.5.1. Klasa wektorów cOutVector . . . . . . . . . . . . . . 4.5.2. Klasa statystyk cStatistic . . . . . . . . . . . . . . 4.5.3. Kontrola parametrów w oknie środowiska TkEnv . . . 4.6. Wewnętrzne struktury danych: listy, kolejki, tablice . . . . . 4.6.1. Kolejki . . . . . . . . . . . . . . . . . . . . . . . . . . 4.6.2. Tablice . . . . . . . . . . . . . . . . . . . . . . . . . . 4.7. Generatory liczb losowych . . . . . . . . . . . . . . . . . . . 4.8. Biblioteka klas OMNeT++ . . . . . . . . . . . . . . . . . . . 4.9. Kompilacja i tworzenie bibliotek symulacyjnych . . . . . . . 4.10. OMNeT++ w wersji 4.0 . . . . . . . . . . . . . . . . . . . . 4.11. Podsumowanie . . . . . . . . . . . . . . . . . . . . . . . . . . Rozdział 5. Przykłady zastosowania . . . . . . . . . . 5.1. Uproszczone modele przesyłania pakietów pomiędzy 5.1.1. Przykład tictoc1 . . . . . . . . . . . . . . . 5.1.2. Przykład tictoc2 . . . . . . . . . . . . . . . 5.1.3. Przykład tictoc3 . . . . . . . . . . . . . . . 5.1.4. Przykład tictoc4 . . . . . . . . . . . . . . . 5.1.5. Przykład tictoc5 . . . . . . . . . . . . . . . 5.1.6. Przykład tictoc6 . . . . . . . . . . . . . . . 5.1.7. Przykład tictoc7 . . . . . . . . . . . . . . . 5.1.8. Przykład tictoc8 . . . . . . . . . . . . . . . 5.1.9. Przykład tictoc9 . . . . . . . . . . . . . . . 5.1.10. Przykład tictoc10 . . . . . . . . . . . . . . 5.1.11. Przykład tictoc11 . . . . . . . . . . . . . . 5.1.12. Przykład tictoc12 . . . . . . . . . . . . . . 5.1.13. Podsumowanie . . . . . . . . . . . . . . . . 5.2. Model przełącznika sieciowego . . . . . . . . . . . . 5.2.1. Podsumowanie . . . . . . . . . . . . . . . . 5.3. Model mechanizmu RED . . . . . . . . . . . . . . . 5.3.1. Mechanizm RED . . . . . . . . . . . . . . . 5.3.2. Implementacja mechanizmu RED . . . . . . 5.3.3. Podsumowanie . . . . . . . . . . . . . . . . . . . . . węzłami . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 62 62 64 66 68 69 72 80 84 84 85 87 87 89 91 91 92 92 94 95 96 99 101 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 103 103 106 106 107 108 109 110 112 114 116 118 118 119 120 124 124 124 125 132 Bibliografia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133