NS2 Ultimate-po zpracování NS2 výsledek pomocí NS2 Trace –…
Poznámka: obsah této série je extrahován z knihy Úvod do síťového simulátoru NS2. Možná budete muset číst kapitoly 2 a 13 knihy pro lepší porozumění.
co je v tomto příspěvku?
v tomto příspěvku vám ukážu jednoduchý (a možná nejběžnější způsob) vytvoření trasovacího souboru NS2. Tento soubor trasování obsahuje mnoho informací. Ve skutečnosti obsahuje příliš mnoho informací, které zastrašují uživatele NS2. Netrap se tím. Pokusíme se interpretovat NS2 trasovací soubory později. Prozatím se zaměřme na to, jak lze vytvořit trasovací soubor NS2.
dvoufázový proces
Chcete-li vytvořit trasovací soubor, musíte provést následující dva kroky:
- Vytvořte soubor pro záznam trasovacích informací.
- Zaznamenejte informace o trasování do vytvořeného souboru.
Krok 1: Vytvoření souboru pro zápis
Tcl používá příkaz „Otevřít“ k otevření souboru. Syntaxe příkazu „Otevřít“ je následující:
open < filename> < purpose>
kde < filename> je název souboru, který má být otevřen, a < purpose> může být
- „w“ pro zápis,
- „r“ pro čtení, nebo
- „a“ pro připojení
tento příkaz vrací popisovač souboru, který lze použít pro odkaz na otevřený soubor.
příklad příkazu Tcl, který otevře soubor s názvem „tracefile.tr“ pro zápis a ukládání do popisovače souboru v proměnné $var je uvedeno níže:
set var
Krok 2: Záznam trasování informace v otevřeném souboru trasování.
dalším krokem je zaznamenání trasovacích informací do otevřeného souboru. Toho lze dosáhnout pomocí následujícího příkazu Tcl:
$NS trace-all $var
kde $ns je instance simulátoru a $Var je popisovač souboru. Tento příkaz říká všem trasovacím objektům (např. enqT_, deqT_, rcvT_ a drpT_ v objektu SimpleLink níže), aby zaznamenaly informace o procházejících paketech v souboru trasování, jehož proměnná je $var.
existuje pouze jeden požadavek na trasování: Výše uvedený příkaz musí být umístěn před „$NS run“.
po dokončení simulace bude vytvořen trasovací soubor. Zde je příklad trasovacích souborů.
Co Jsme To Udělali?
příkaz „$ns trace-all “ vloží trasovací objekt do různých míst v topologii sítě. Nejběžnější místo je v Jednoduchémodkaz se obvykle používá k připojení dvou uzlů. Příkaz „$ns trace-all “ vloží několik trasovacích objektů do objektu SimpleLink, jak je uvedeno výše.
co dělají trasovací objekty
trasovací objekt sedí mezi dvěma objekty zachycujícími NsObject. Jakmile obdrží paket, vytiskne související informace o trasování jako řádek do souboru trasování. Na výše uvedeném obrázku máme čtyři sledovací objekty:
- enqT_: vypíše řádek začínající“+“, označující událost dotazu
- deqT_: vypíše řádek začínající“ -„, označující událost dequeuingu
- rcvT_: vypíše řádek začínající“ r“, označující událost příjmu paketů
- drpT_: Vypíše řádek začínající písmenem „d“, označující událost shazování paketů
příkazy trasování v souboru trasování:
tyto objekty trasování tisknou informace o všech procházejících paketech. Informace o paketech, které neprocházejí žádným z těchto objektů, by se v souboru trasování neobjevily.
jediným objektem odpovědným za shazování paketů na výše uvedeném obrázku je queue_. Činí tak vyvoláním funkce drop (p). Funkce drop (p)zase odešle paket p do forwardingu NsObject, což je v tomto případě drpT_. Je to drpT_, kdo je zodpovědný za tisk upouštěcích informačních příkazů (tj. těch, které začínají „d“) v souboru trasování.
to znamená, že pokud paket explicitně zahodíte (např. pomocí drop(p)) bez průchodu paketu přes drpT_, v souboru trasování se neobjeví žádná informace o upuštění paketu.
co bude dál?
Nyní, když jsme vytvořili soubor trasování. Ale trasovací soubor NS2 vypadá trochu děsivě. V dalším příspěvku vám ukážu, jak interpretovat tento soubor trasování.
======================================================
T. Issaraiyakul A E. Hossain, „Úvod do síťového simulátoru NS2“, Springer 2009. Koupit nyní od Amazonu: