{"id":86559,"date":"2020-06-26T19:42:13","date_gmt":"2020-06-26T17:42:13","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/uchebnik-po-simulyatoru-seti-ns-3-glavy-12"},"modified":"2020-06-26T19:42:13","modified_gmt":"2020-06-26T17:42:13","slug":"uchebnik-po-simulyatoru-seti-ns-3-glavy-12","status":"publish","type":"post","link":"https:\/\/prohoster.info\/sv\/blog\/administrirovanie\/uchebnik-po-simulyatoru-seti-ns-3-glavy-12","title":{"rendered":"Handbok f\u00f6r n\u00e4tverksimulatorns ns-3. Kapitel 1, 2.","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Denna artikel inleder en serie publikationer med \u00f6vers\u00e4ttningen av l\u00e4roboken \"<noindex><a rel=\"nofollow\" href=\"https:\/\/www.nsnam.org\/docs\/release\/3.30\/tutorial\/ns-3-tutorial.pdf\">ns-3 Tutorial Release ns-3.29<\/a><\/noindex>\" om n\u00e4t.simulatorn ns-3. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Handbok f\u00f6r n\u00e4tverksimulatorns ns-3. Kapitel 1, 2.\" src=\"\/wp-content\/uploads\/2020\/06\/cddee391ba8763baab6eaa185e081bf6.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Detta dokument \u00e4r en \u00f6vers\u00e4ttning av det ursprungliga dokumentet p\u00e5 engelska, som \u00e4r skrivet i <noindex><a rel=\"nofollow\" href=\"http:\/\/docutils.sourceforge.net\/rst.html\">reStructuredText<\/a><\/noindex> f\u00f6r <noindex><a rel=\"nofollow\" href=\"http:\/\/sphinx.pocoo.org\/\">Sphinx<\/a><\/noindex> och lagras i katalogen <em>doc\/tutorial<\/em> i ns-3:s k\u00e4llkod.<\/p>\n<p><\/p>\n<p>1 Inledning<br \/>\n1.1 Om ns-3<br \/>\n1.2 F\u00f6r ns-2-anv\u00e4ndare<br \/>\n1.3 Deltagande i projektet<br \/>\n1.4 Organisation av manualen<br \/>\n2 Informationsk\u00e4llor<br \/>\n2.1 N\u00e4tverk<br \/>\n2.2 Git<br \/>\n2.3 WAF<br \/>\n2.4 Utvecklingsmilj\u00f6<br \/>\n2.5 Programmering av sockets<br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/497318\/\">kapitel 3<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/497478\/\">kapitel 4<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/498372\/\">kapitel 5<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/500170\/\">kapitel 6<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/507472\/\">kapitel 7<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/507770\/\">kapitel 8, 9<\/a><\/noindex><\/p>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/508218\/\">Ladda ner \u00f6vers\u00e4ttningen som en pdf-fil<\/a><\/noindex><\/p>\n<p><\/p>\n<p>Den prim\u00e4ra dokumentationen f\u00f6r ns-3-projektet finns i fem format:<\/p>\n<p><\/p>\n<ul>\n<li>API-dokumentationen f\u00f6r simulatorn: ns-3 <noindex><a rel=\"nofollow\" href=\"http:\/\/www.nsnam.org\/doxygen\/index.html\">Doxygen<\/a><\/noindex>.<\/li>\n<li>Handledningen, manualen och modellbiblioteket f\u00f6r <noindex><a rel=\"nofollow\" href=\"http:\/\/www.nsnam.org\/documentation\/latest\/\">den senaste versionen<\/a><\/noindex> och <noindex><a rel=\"nofollow\" href=\"http:\/\/www.nsnam.org\/ns-3-dev\/documentation\/\">utvecklingstr\u00e4det<\/a><\/noindex>.<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"http:\/\/www.nsnam.org\/wiki\/Main_Page\">Wiki<\/a><\/noindex> ns-3.<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\n<h2 id=\"glava-1\">Kapitel 1<\/h2>\n<\/li>\n<\/ul>\n<p><\/p>\n<h3 id=\"predislovie\">F\u00f6rord<\/h3>\n<p><\/p>\n<p>Simulatorn ns-3 \u00e4r en h\u00e4ndelsedriven n\u00e4tverkssimulator, avsedd fr\u00e4mst f\u00f6r forskning och utbildnings\u00e4ndam\u00e5l. Projektet som utvecklar ns-3 startades 2006 och \u00e4r ett \u00f6ppen k\u00e4llkodsprojekt.<\/p>\n<p><\/p>\n<p>Syftet med denna manual \u00e4r att introducera ns-3 f\u00f6r nya anv\u00e4ndare p\u00e5 ett systematiskt och strukturerat s\u00e4tt. Det kan ibland vara sv\u00e5rt f\u00f6r nyb\u00f6rjare att f\u00e5 den information de beh\u00f6ver och omvandla den till fungerande simuleringar. I denna manual genomf\u00f6r vi flera exempel p\u00e5 simulering medan vi f\u00f6rklarar och visar centrala begrepp och funktioner.<\/p>\n<p><\/p>\n<p>I takt med att vi g\u00e5r fram\u00e5t kommer vi att presentera den fullst\u00e4ndiga dokumentationen f\u00f6r ns-3 och ge l\u00e4nkar till k\u00e4llkoden f\u00f6r dem som \u00e4r intresserade av en djupare f\u00f6rst\u00e5else av systemets funktionalitet.<\/p>\n<p><\/p>\n<p>I b\u00f6rjan \u00e4r det v\u00e4rt att notera n\u00e5gra nyckelpunkter:<\/p>\n<p><\/p>\n<ul>\n<li>ns-3 har \u00f6ppen k\u00e4llkod och projektet str\u00e4var efter att uppr\u00e4tth\u00e5lla en \u00f6ppen milj\u00f6 d\u00e4r forskare kan bidra och dela sina programvaruinsatser.<\/li>\n<li>ns-3 \u00e4r inte en bak\u00e5tkompatibel utvidgning av ns-2; det \u00e4r en ny simulator. B\u00e5da simulatorsystemen \u00e4r skrivna i C++, men ns-3 \u00e4r en ny simulator som inte st\u00f6djer ns-2:s API-gr\u00e4nssnitt.<\/li>\n<\/ul>\n<p><\/p>\n<h3 id=\"11-o-ns-3\">1.1 Om ns-3<\/h3>\n<p><\/p>\n<p>ns-3-simulatorn har utvecklats f\u00f6r att erbjuda en \u00f6ppen och utbyggbar plattform f\u00f6r n\u00e4tverksmodellering, n\u00e4tverksforskning och utbildning. Kort sagt, ns-3 tillhandah\u00e5ller modeller f\u00f6r hur paketdatatransmissionsn\u00e4tverk \u00e4r implementerade och fungerar, och ger anv\u00e4ndaren en simuleringsmotor f\u00f6r att utf\u00f6ra simuleringsexperiment. Anledningar att anv\u00e4nda ns-3 kan vara situationer d\u00e4r det \u00e4r sv\u00e5rt eller om\u00f6jligt att utf\u00f6ra forskning p\u00e5 ett verkligt system, m\u00f6jligheten att studera systembeteende i en strikt kontrollerad och reproducerbar milj\u00f6, samt att l\u00e4ra sig hur n\u00e4tverk fungerar. <\/p>\n<p><\/p>\n<p>Anv\u00e4ndare kommer att m\u00e4rka att den upps\u00e4ttning modeller som erbjuds i ns-3 \u00e4r fokuserad p\u00e5 modellering av internetprotokoll och n\u00e4tverk, men ns-3 \u00e4r inte begr\u00e4nsat till enbart internetbaserade system; vissa anv\u00e4ndare anv\u00e4nder ns-3 f\u00f6r att modellera system som inte \u00e4r baserade p\u00e5 Internet-teknologier.<\/p>\n<p><\/p>\n<p>Det finns m\u00e5nga verktyg f\u00f6r n\u00e4tverksmodellering. H\u00e4r \u00e4r n\u00e5gra s\u00e4rskiljande drag hos ns-3 i j\u00e4mf\u00f6relse med andra verktyg.<\/p>\n<p><\/p>\n<ul>\n<li>ns-3 har utformats som en upps\u00e4ttning biblioteker som kan kombineras med varandra och med andra externa programvarubibliotek. Medan vissa modellplattformar erbjuder anv\u00e4ndarna en integrerad milj\u00f6 med ett grafiskt anv\u00e4ndargr\u00e4nssnitt som hanterar allt arbete, \u00e4r ns-3 mer modul\u00e4r i detta avseende. Med ns-3 kan flera externa animatorer, dataanalys- och visualiseringsverktyg anv\u00e4ndas. Anv\u00e4ndare f\u00f6rv\u00e4ntas dock arbeta i kommandoraden och med C++ och\/eller Python-programmeringsverktyg.<\/li>\n<li>ns-3 anv\u00e4nds fr\u00e4mst p\u00e5 Linux- eller macOS-system, \u00e4ven om det finns st\u00f6d f\u00f6r BSD-system samt Windows-plattformar som kan kompilera kod f\u00f6r Linux, s\u00e5som Windows Subsystem for Linux eller Cygwin. Windows-versionen av Visual Studio st\u00f6ds f\u00f6r n\u00e4rvarande inte, \u00e4ven om utvecklaren arbetar p\u00e5 att implementera denna m\u00f6jlighet. Windows-anv\u00e4ndare kan ocks\u00e5 anv\u00e4nda en virtuell maskin med Linux.<\/li>\n<li>ns-3 \u00e4r inte en officiellt st\u00f6dd produkt fr\u00e5n n\u00e5got f\u00f6retag. St\u00f6det f\u00f6r ns-3 ges med h\u00f6gsta engagemang p\u00e5 forumet f\u00f6r ns-3-anv\u00e4ndare (ns-3-users@googlegroups.com).<\/li>\n<\/ul>\n<p><\/p>\n<h3 id=\"12-dlya-polzovateley-ns-2\">1.2 F\u00f6r ns-2-anv\u00e4ndare<\/h3>\n<p><\/p>\n<p>F\u00f6r dem som \u00e4r bekanta med ns-2 (ett popul\u00e4rt verktyg som f\u00f6regick ns-3) \u00e4r det mest p\u00e5tagliga yttre f\u00f6r\u00e4ndringarna vid \u00f6verg\u00e5ngen till ns-3 bytet av skriptspr\u00e5k. Program i ns-2 \u00e4r skrivna i OTcl, och simuleringsresultat kan visualiseras med hj\u00e4lp av n\u00e4tverksanimatorn nam. I ns-2 \u00e4r det om\u00f6jligt att k\u00f6ra en simulering enbart fr\u00e5n C++ (det vill s\u00e4ga som en main()-program utan n\u00e5gon OTcl). Dessutom \u00e4r vissa komponenter i ns-2 skrivna i C++ medan andra \u00e4r skrivna i OTcl. I ns-3 \u00e4r simulatorn helt skriven i C++ med valfria bindningar till Python. D\u00e4rf\u00f6r kan simuleringsscenarier skrivas b\u00e5de i C++ och Python. Nya animatorer och visualiserare finns tillg\u00e4ngliga och utvecklas fortfarande. Eftersom ns-3 genererar pcap-paketracefiler kan \u00e4ven andra verktyg anv\u00e4ndas f\u00f6r att analysera sp\u00e5ren. I denna handledning kommer vi f\u00f6rst att fokusera p\u00e5 scenarier som realiserats i C++ och tolkningen av resultaten genom analys av tracefiler.<\/p>\n<p><\/p>\n<p>Men det finns \u00e4ven likheter (till exempel \u00e4r b\u00e5da verktygen baserade p\u00e5 C++-objekt, en del av koden fr\u00e5n ns-2 har portats till ns-3). Under presentationen kommer vi att f\u00f6rs\u00f6ka visa skillnaderna mellan ns-2 och ns-3.<\/p>\n<p><\/p>\n<p>Fr\u00e5gan vi ofta h\u00f6r \u00e4r: \"B\u00f6r jag fortfarande anv\u00e4nda ns-2 eller \u00f6verg\u00e5 till ns-3?\" Enligt f\u00f6rfattaren, om anv\u00e4ndaren p\u00e5 n\u00e5got s\u00e4tt inte \u00e4r bunden till ns-2 (baserat p\u00e5 befintlig personlig komfort och kunskap om ns-2, eller baserat p\u00e5 en specifik simuleringsmodell som endast \u00e4r tillg\u00e4nglig i ns-2), s\u00e5 kommer de att vara mer produktiva med ns-3 av f\u00f6ljande sk\u00e4l:<\/p>\n<p><\/p>\n<ul>\n<li>ns-3 st\u00f6ds aktivt med en aktiv och responsiv anv\u00e4ndarforum, medan ns-2 endast st\u00f6ds n\u00e5got och har p\u00e5 \u00f6ver tio \u00e5r inte sett n\u00e5gra betydande f\u00f6r\u00e4ndringar i sin huvudsakliga k\u00e4llkod.<\/li>\n<li>ns-3 erbjuder funktioner som inte \u00e4r tillg\u00e4ngliga i ns-2, s\u00e5som en k\u00f6rningsmilj\u00f6 f\u00f6r implementationskod (som g\u00f6r att anv\u00e4ndare kan k\u00f6ra verklig implementationskod i simulatorn).<\/li>\n<li>ns-3 ger en l\u00e4gre grundl\u00e4ggande abstraheringsniv\u00e5 j\u00e4mf\u00f6rt med ns-2, vilket g\u00f6r att det b\u00e4ttre kan motsvara hur verkliga system interagerar. Vissa begr\u00e4nsningar som uppt\u00e4ckts i ns-2 (som korrekt st\u00f6d f\u00f6r flera typer av gr\u00e4nssnitt p\u00e5 noden) har \u00e5tg\u00e4rdats i ns-3.<\/li>\n<\/ul>\n<p><\/p>\n<p>Tack vare sin l\u00e5nga historia har ns-2 ett mer varierat utbud av st\u00f6dda moduler \u00e4n ns-3. \u00c5 andra sidan har ns-3 mer detaljerade modeller inom flera popul\u00e4ra forskningsomr\u00e5den (inklusive komplexa modeller f\u00f6r LTE och WiFi), och dess st\u00f6d f\u00f6r implementationskoden m\u00f6jligg\u00f6r en mycket bred upps\u00e4ttning h\u00f6gprecisionsmodeller. Anv\u00e4ndare kan bli f\u00f6rv\u00e5nade \u00f6ver att l\u00e4ra sig att hela Linux-n\u00e4tverksstacken kan kapslas in i en ns-3-nod med hj\u00e4lp av direkt k\u00f6rningskod (DCE) ramverket. Modeller fr\u00e5n ns-2 kan ibland porteras till ns-3, s\u00e4rskilt om de har implementerats i C++.<\/p>\n<p><\/p>\n<p>Om du \u00e4r os\u00e4ker \u00e4r en bra rekommendation att titta p\u00e5 b\u00e5da simulators (liksom andra simulatorer), s\u00e4rskilt p\u00e5 modeller som \u00e4r tillg\u00e4ngliga f\u00f6r din forskning, men kom ih\u00e5g att ditt resultat kan bli b\u00e4ttre om du anv\u00e4nder ett verktyg som f\u00f6r n\u00e4rvarande aktivt utvecklas och underh\u00e5lls (ns-3).<\/p>\n<p><\/p>\n<h3 id=\"13-uchastie-v-proekte\">1.3 Deltagande i projektet<\/h3>\n<p><\/p>\n<p>ns-3 \u00e4r en forsknings- och utbildningssimulator f\u00f6r forskarsamh\u00e4llet. Det kommer att bygga p\u00e5 nuvarande bidrag fr\u00e5n samh\u00e4llet i utvecklingen av nya modeller, fels\u00f6kning eller underh\u00e5ll av befintliga, och dela resultat. Det finns viss policy som vi hoppas kommer att uppmuntra m\u00e4nniskor att bidra till ns-3, precis som de g\u00f6r f\u00f6r ns-2:<\/p>\n<p><\/p>\n<ul>\n<li>\u00d6ppen k\u00e4llkodlicens baserad p\u00e5 kompatibilitet med GNU GPLv2-licensen.<\/li>\n<li>wiki.<\/li>\n<li>Sida <noindex><a rel=\"nofollow\" href=\"http:\/\/www.pocoo.org\/\">Bidragsgivares kod<\/a><\/noindex>, liknande den popul\u00e4ra sidan f\u00f6r ns-2.<\/li>\n<li>Anv\u00e4ndning av GitLab.com, inklusive buggrapportering:<br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/www.gitlab.com\/nsnam\">https:\/\/www.gitlab.com\/nsnam<\/a><\/noindex><\/li>\n<\/ul>\n<p><\/p>\n<p>Vi f\u00f6rst\u00e5r att \u00e4ven om du l\u00e4ser detta dokument, kanske du inte planerar att bidra till det vid detta tillf\u00e4lle. Men vi vill att du ska veta att bidragande \u00e4r i projektets anda och att vi v\u00e4rdes\u00e4tter din \u00e5terkoppling \u00e4ven om din tidiga erfarenhet med ns-3 (till exempel, \"denna del av l\u00e4roboken var inte klar ...\"), rapportering av f\u00f6r\u00e5ldrad dokumentation eller kommentarer i koden osv\u2026 Det f\u00f6redragna s\u00e4ttet att skicka in \u00e4ndringar \u00e4r antingen att g\u00f6ra en fork p\u00e5 <noindex><a rel=\"nofollow\" href=\"https:\/\/www.gitlab.com\/nsnam\">https:\/\/www.gitlab.com\/nsnam<\/a><\/noindex> Denna guide f\u00f6ruts\u00e4tter att nya anv\u00e4ndare initialt kan f\u00f6lja en v\u00e4g som den h\u00e4r:<\/p>\n<p><\/p>\n<h3 id=\"14-organizaciya-rukovodstva\">1.4 Organisation av manualen<\/h3>\n<p><\/p>\n<p>F\u00f6rs\u00f6k ladda ner och bygga en kopia;<\/p>\n<p><\/p>\n<ul>\n<li>F\u00f6rs\u00f6k k\u00f6ra n\u00e5gra exempelprogram;<\/li>\n<li>F\u00f6rs\u00f6k att k\u00f6ra n\u00e5gra exempelprogram;<\/li>\n<li>Titta p\u00e5 simuleringsresultatet och f\u00f6rs\u00f6k att anpassa det.<br \/>\nI slut\u00e4ndan f\u00f6rs\u00f6kte vi organisera presentationen enligt dessa steg.<\/li>\n<\/ul>\n<p><\/p>\n<h2 id=\"glava-2\">Kapitel 2<\/h2>\n<p><\/p>\n<h2 id=\"istochniki-informacii\">Informationsk\u00e4llor<\/h2>\n<p><\/p>\n<h3 id=\"21-set\">2.1 N\u00e4tverk<\/h3>\n<p><\/p>\n<p>Det finns flera viktiga resurser som varje anv\u00e4ndare av ns-3 b\u00f6r k\u00e4nna till. Huvudwebbplatsen finns p\u00e5: <noindex><a rel=\"nofollow\" href=\"https:\/\/www.nsnam.org\">https:\/\/www.nsnam.org<\/a><\/noindex><br \/>\noch ger tillg\u00e5ng till grundl\u00e4ggande information om ns-3-systemet. Detaljerad dokumentation \u00e4r tillg\u00e4nglig via huvudwebbplatsen p\u00e5: <noindex><a rel=\"nofollow\" href=\"https:\/\/www.nsnam.org\/documentation\/\">https:\/\/www.nsnam.org\/documentation\/<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>P\u00e5 denna webbsida kan du ocks\u00e5 hitta dokument relaterade till systemarkitekturen.<\/p>\n<p><\/p>\n<p>Det finns en wiki-sida som kompletterar huvudwebbplatsen f\u00f6r ns-3, som du hittar p\u00e5: <noindex><a rel=\"nofollow\" href=\"https:\/\/www.nsnam.org\/wiki\/\">https:\/\/www.nsnam.org\/wiki\/<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>D\u00e4r hittar du svar p\u00e5 vanliga fr\u00e5gor f\u00f6r anv\u00e4ndare och utvecklare, samt fels\u00f6kningsguider, tredjepartskod, dokument osv.<br \/>\nK\u00e4llkoden kan hittas och ses p\u00e5 GitLab.com:<br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/gitlab.com\/nsnam\/\">https:\/\/gitlab.com\/nsnam\/<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>D\u00e4r i f\u00f6rvaret med namnet <em>ns-3-dev<\/em> finns den aktuella utvecklingsgrenen. Tidigare versioner och experimentella k\u00e4rnutvecklarf\u00f6rvar kan ocks\u00e5 hittas under Mercurial p\u00e5 den gamla projektwebbplatsen p\u00e5:<br \/>\n<noindex><a rel=\"nofollow\" href=\"http:\/\/code.nsnam.org\">http:\/\/code.nsnam.org<\/a><\/noindex>.<\/p>\n<p><\/p>\n<h3 id=\"22-git\">2.2 Git<\/h3>\n<p><\/p>\n<p>Komplexa programsystem beh\u00f6ver ett s\u00e4tt att hantera organisationen och f\u00f6r\u00e4ndringarna av den underliggande koden och dokumentationen. Det finns m\u00e5nga s\u00e4tt att uppn\u00e5 detta, och du har kanske h\u00f6rt talas om n\u00e5gra av de system som vanligtvis anv\u00e4nds f\u00f6r detta. Fram till nyligen anv\u00e4nde ns-3-projektet Mercurial som k\u00e4llkodshanteringssystem, men i december 2018 bytte vi till att anv\u00e4nda Git. \u00c4ven om du inte beh\u00f6ver veta mycket om Git f\u00f6r att l\u00e4sa denna handledning, rekommenderar vi att du bekantar dig med det och anv\u00e4nder det f\u00f6r att f\u00e5 tillg\u00e5ng till k\u00e4llkoden. GitLab.com erbjuder resurser f\u00f6r att bem\u00e4stra grundl\u00e4ggande f\u00e4rdigheter p\u00e5: <noindex><a rel=\"nofollow\" href=\"https:\/\/git-scm.com\/book\/ru\/v2\">https:\/\/git-scm.com\/book\/ru\/v2<\/a><\/noindex>.<\/p>\n<p><\/p>\n<h3 id=\"23-waf\">2.3 WAF<\/h3>\n<p><\/p>\n<p>N\u00e4r du har laddat ner k\u00e4llkoden till din dator, beh\u00f6ver du kompilera den f\u00f6r att f\u00e5 en f\u00e4rdig programvara. Precis som med hanteringen av k\u00e4llkoden finns det m\u00e5nga verktyg tillg\u00e4ngliga f\u00f6r att utf\u00f6ra denna funktion. F\u00f6rmodligen \u00e4r det mest k\u00e4nda av dessa verktyg make. \u00c4ven om detta verktyg \u00e4r det mest v\u00e4lk\u00e4nda, b\u00f6r det noteras att det kan vara mest komplicerat att anv\u00e4nda i ett mycket stort och flexibelt konfigurerbart system. Detta har lett till utvecklingen av m\u00e5nga alternativ. Nyligen har s\u00e5dana system utvecklats med hj\u00e4lp av Python-spr\u00e5ket.<\/p>\n<p><\/p>\n<p>I ns-3-projektet anv\u00e4nds byggsystemet Waf. Det \u00e4r en ny generation av byggsystem baserade p\u00e5 Python. F\u00f6r att bygga det befintliga ns-3-systemet beh\u00f6ver du inte kunna Python.<\/p>\n<p><\/p>\n<p>F\u00f6r dem som \u00e4r intresserade av detaljer om hur man anv\u00e4nder Waf, finns det en bok tillg\u00e4nglig p\u00e5 adressen:<br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/waf.io\/book\/\">https:\/\/waf.io\/book\/<\/a><\/noindex><br \/>\noch den aktuella koden:<br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/gitlab.com\/ita1024\/waf\/\">https:\/\/gitlab.com\/ita1024\/waf\/<\/a><\/noindex>.<\/p>\n<p><\/p>\n<h3 id=\"24-sreda-razrabotki\">2.4 Utvecklingsmilj\u00f6<\/h3>\n<p><\/p>\n<p>Som n\u00e4mnts ovan k\u00f6rs skripten i ns-3 p\u00e5 C++ eller Python. St\u00f6rsta delen av API:et i ns-3 \u00e4r tillg\u00e4ngligt p\u00e5 Python, men modellerna \u00e4r \u00e4nd\u00e5 skrivna i C++. Denna handbok f\u00f6ruts\u00e4tter att du \u00e4r bekant med objektorienterad programmering i C++. N\u00e4r vi g\u00e5r fram\u00e5t kommer vi att \u00e4gna en viss tid \u00e5t att g\u00e5 igenom de mest avancerade koncepten och kanske ok\u00e4nda egenskaper hos spr\u00e5ket, som idiom och designm\u00f6nster. Vi vill inte att denna handbok ska bli en l\u00e4rarhandledning i C++, s\u00e5 vi f\u00f6rv\u00e4ntar oss grundl\u00e4ggande kunskaper i spr\u00e5ket. Det finns m\u00e5nga informationsk\u00e4llor om C++ tillg\u00e4ngliga online eller i tryck.<\/p>\n<p><\/p>\n<p>Om du \u00e4r nyb\u00f6rjare i C++, v\u00e4nligen se till att du beh\u00e4rskar grunderna i spr\u00e5ket innan du forts\u00e4tter, anv\u00e4nda en l\u00e4robok eller en webbplats dedikerad till utbildning eller f\u00e4rdiga recept. Till exempel: <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/ashtanyuk\/CPP-2018\">https:\/\/github.com\/ashtanyuk\/CPP-2018<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>Under Linux anv\u00e4nder ns-3-systemet flera komponenter fr\u00e5n GNU-projektets verktyg. Verktygen \u00e4r en upps\u00e4ttning programmeringsverktyg som finns tillg\u00e4ngliga i denna mjukvarumilj\u00f6. F\u00f6r en snabb \u00f6versyn av vad som ing\u00e5r i GNU-verktygen, se. <noindex><a rel=\"nofollow\" href=\"http:\/\/en.wikipedia.org\/wiki\/GNU_toolchain\">http:\/\/en.wikipedia.org\/wiki\/GNU_toolchain<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>Simulatorn ns-3 anv\u00e4nder gcc, GNU binutils och gdb. Samtidigt anv\u00e4nder vi varken make eller autotools f\u00f6r att bygga projektet fr\u00e5n GNU-verktygen. F\u00f6r dessa funktioner anv\u00e4nder vi Waf.<\/p>\n<p><\/p>\n<p>I macOS anv\u00e4nds upps\u00e4ttningen verktyg Xcode. Anv\u00e4ndare av ns-3 p\u00e5 Mac rekommenderas starkt att installera Xcode och kommandoradsverktyg fr\u00e5n Apple App Store, samt f\u00f6r mer information, bes\u00f6k wikisidan f\u00f6r installation av ns-3: (<noindex><a rel=\"nofollow\" href=\"https:\/\/www.nsnam.org\/wiki\/Installation\">https:\/\/www.nsnam.org\/wiki\/Installation<\/a><\/noindex>).<\/p>\n<p><\/p>\n<p>Vanligtvis arbetar ns-3 f\u00f6rfattaren i en Linux- eller Unix-liknande milj\u00f6. F\u00f6r de som arbetar under Windows finns det milj\u00f6er som i varierande grad imiterar Linux-milj\u00f6n. F\u00f6r s\u00e5dana anv\u00e4ndare har projektet ns-3 tidigare (men inte nu) st\u00f6d f\u00f6r utveckling i Cygwin-milj\u00f6n. F\u00f6r detaljer om nedladdning och mer information om Cygwin och ns-3, bes\u00f6k wikisidan f\u00f6r ns-3:<br \/>\n<noindex><a rel=\"nofollow\" href=\"http:\/\/www.cygwin.com\/\">http:\/\/www.cygwin.com\/<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>MinGW st\u00f6ds f\u00f6r n\u00e4rvarande inte officiellt. Ett annat alternativ till Cygwin \u00e4r att installera en virtuell milj\u00f6 som VMware-server, d\u00e4r Linux kan installeras.<\/p>\n<p><\/p>\n<h3 id=\"25-programmirovanie-soketov\">2.5 Programmering av sockets<\/h3>\n<p><\/p>\n<p>I exemplen som anv\u00e4nds i denna guide kommer vi att anv\u00e4nda grundl\u00e4ggande funktioner i Berkeley socket API. Om du \u00e4r nyb\u00f6rjare p\u00e5 sockets rekommenderar vi att du bekantar dig med API:t och n\u00e5gra vanliga anv\u00e4ndningsfall. Som en bra \u00f6versikt \u00f6ver TCP\/IP socketprogrammering rekommenderar vi: \"TCP\/IP Sockets in C\", Donahoo och Calvert.<\/p>\n<p><\/p>\n<p>Det finns en tillh\u00f6rande webbplats som inneh\u00e5ller k\u00e4llan till exemplen i boken, som du kan hitta p\u00e5:<br \/>\n<noindex><a rel=\"nofollow\" href=\"http:\/\/cs.baylor.edu\/~donahoo\/practical\/CSockets\/\">http:\/\/cs.baylor.edu\/~donahoo\/practical\/CSockets\/<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>Om du f\u00f6rst\u00e5r de f\u00f6rsta fyra kapitlen i boken (eller f\u00f6r dem som inte har tillg\u00e5ng till en kopia av boken, echo-klienterna och servrarna som visas p\u00e5 webbplatsen via l\u00e4nken ovan), \u00e4r detta tillr\u00e4ckligt f\u00f6r att f\u00f6rst\u00e5 handledningen. Det finns en liknande bok<br \/>\n\"Multicast Sockets, Multicast Sockets\", Makofske och Almeroth.<\/p>\n<p><\/p>\n<p>Den t\u00e4cker material som kan vara anv\u00e4ndbart om du studerar exemplen f\u00f6r multicast-distribution.<\/p>\n<p><\/p>\n<p>Forts\u00e4ttning: <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/497318\/\">kapitel 3<\/a><\/noindex><\/p>\n<p>K\u00e4lla: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/497106\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0414\u0430\u043d\u043d\u0430\u044f \u0441\u0442\u0430\u0442\u044c\u044f \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u0442 \u0441\u0435\u0440\u0438\u044e \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0439 \u0441 \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u043e\u043c \u0443\u0447\u0435\u0431\u043d\u0438\u043a\u0430 &quot;ns-3 Tutorial Release ns-3.29&quot; \u043f\u043e \u0441\u0438\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0443 \u0441\u0435\u0442\u0435\u0439 ns-3. \u042d\u0442\u043e\u0442 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u043e\u043c \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430 \u043d\u0430 \u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u043e\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0430\u043f\u0438\u0441\u0430\u043d \u0432 reStructuredText \u0434\u043b\u044f Sphinx \u0438 \u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f \u0432 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 doc\/tutorial \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430 ns-3. 1 \u041f\u0440\u0435\u0434\u0438\u0441\u043b\u043e\u0432\u0438\u0435 1.1 \u041e ns-3 1.2 \u0414\u043b\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 ns-2 1.3 \u0423\u0447\u0430\u0441\u0442\u0438\u0435 \u0432 \u043f\u0440\u043e\u0435\u043a\u0442\u0435 1.4 \u041e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u044f \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u0430 2 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":86560,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-86559","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.4 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0414\u0430\u043d\u043d\u0430\u044f \u0441\u0442\u0430\u0442\u044c\u044f \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u0442 \u0441\u0435\u0440\u0438\u044e \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0439 \u0441 \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u043e\u043c \u0443\u0447\u0435\u0431\u043d\u0438\u043a\u0430 &quot;ns-3 Tutorial Release.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/sv\/blog\/administrirovanie\/uchebnik-po-simulyatoru-seti-ns-3-glavy-12\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.4\" \/>\n\t\t<meta property=\"og:locale\" content=\"sv_SE\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0423\u0447\u0435\u0431\u043d\u0438\u043a \u043f\u043e \u0441\u0438\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0443 \u0441\u0435\u0442\u0438 ns-3. \u0413\u043b\u0430\u0432\u044b 1,2 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0414\u0430\u043d\u043d\u0430\u044f \u0441\u0442\u0430\u0442\u044c\u044f \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u0442 \u0441\u0435\u0440\u0438\u044e \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0439 \u0441 \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u043e\u043c \u0443\u0447\u0435\u0431\u043d\u0438\u043a\u0430 &quot;ns-3 Tutorial Release.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sv\/blog\/administrirovanie\/uchebnik-po-simulyatoru-seti-ns-3-glavy-12\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-06-26T17:42:13+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-06-26T17:42:13+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Handledningen f\u00f6r n\u00e4tverksimulatorn ns-3. Kapitel 1,2 | ProHoster","description":"Denna artikel inleder en serie publikationer med \u00f6vers\u00e4ttningen av handledningen \"ns-3 Tutorial Release.","canonical_url":"https:\/\/prohoster.info\/sv\/blog\/administrirovanie\/uchebnik-po-simulyatoru-seti-ns-3-glavy-12","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sv_SE","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0423\u0447\u0435\u0431\u043d\u0438\u043a \u043f\u043e \u0441\u0438\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0443 \u0441\u0435\u0442\u0438 ns-3. \u0413\u043b\u0430\u0432\u044b 1,2 | ProHoster","og:description":"\u0414\u0430\u043d\u043d\u0430\u044f \u0441\u0442\u0430\u0442\u044c\u044f \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u0442 \u0441\u0435\u0440\u0438\u044e \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0439 \u0441 \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u043e\u043c \u0443\u0447\u0435\u0431\u043d\u0438\u043a\u0430 &quot;ns-3 Tutorial Release.","og:url":"https:\/\/prohoster.info\/sv\/blog\/administrirovanie\/uchebnik-po-simulyatoru-seti-ns-3-glavy-12","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-06-26T17:42:13+00:00","article:modified_time":"2020-06-26T17:42:13+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"86559","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 13:48:32","updated":"2022-09-30 06:25:10","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/posts\/86559","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/comments?post=86559"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/posts\/86559\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/media\/86560"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/media?parent=86559"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/categories?post=86559"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/tags?post=86559"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}