{"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\/da\/blog\/administrirovanie\/uchebnik-po-simulyatoru-seti-ns-3-glavy-12","title":{"rendered":"Netv\u00e6rkssimulatorh\u00e5ndbogen ns-3. Kapitler 1, 2","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Denne artikel \u00e5bner en serie af publikationer med overs\u00e6ttelsen af l\u00e6rebogen &quot;<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>&quot; om netv\u00e6rkssimulatoren ns-3. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Netv\u00e6rkssimulatorh\u00e5ndbogen ns-3. Kapitler 1, 2\" src=\"\/wp-content\/uploads\/2020\/06\/cddee391ba8763baab6eaa185e081bf6.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Dette dokument er en overs\u00e6ttelse af det originale engelsk dokument, som er skrevet i <noindex><a rel=\"nofollow\" href=\"http:\/\/docutils.sourceforge.net\/rst.html\">reStructuredText<\/a><\/noindex> for <noindex><a rel=\"nofollow\" href=\"http:\/\/sphinx.pocoo.org\/\">Sphinx<\/a><\/noindex> og opbevares i mappen <em>doc\/tutorial<\/em> i koden til ns-3.<\/p>\n<p><\/p>\n<p>1 Forord<br \/>\n1.1 Om ns-3<br \/>\n1.2 For brugere af ns-2<br \/>\n1.3 Deltagelse i projektet<br \/>\n1.4 Organisation af vejledningen<br \/>\n2 Informationskilder<br \/>\n2.1 Netv\u00e6rk<br \/>\n2.2 Git<br \/>\n2.3 WAF<br \/>\n2.4 Udviklingsmilj\u00f8<br \/>\n2.5 Programmering af 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\/\">kapitlerne 8, 9<\/a><\/noindex><\/p>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/508218\/\">Download overs\u00e6ttelsen som \u00e9n pdf-fil<\/a><\/noindex><\/p>\n<p><\/p>\n<p>Den prim\u00e6re dokumentation for ns-3 projektet er tilg\u00e6ngelig i fem former:<\/p>\n<p><\/p>\n<ul>\n<li>API dokumentationen til simulatoren: ns-3 <noindex><a rel=\"nofollow\" href=\"http:\/\/www.nsnam.org\/doxygen\/index.html\">Doxygen<\/a><\/noindex>.<\/li>\n<li>En tutorial, manual og modelbibliotek til <noindex><a rel=\"nofollow\" href=\"http:\/\/www.nsnam.org\/documentation\/latest\/\">den nyeste version<\/a><\/noindex> og <noindex><a rel=\"nofollow\" href=\"http:\/\/www.nsnam.org\/ns-3-dev\/documentation\/\">udviklingstr\u00e6et<\/a><\/noindex>.<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"http:\/\/www.nsnam.org\/wiki\/Main_Page\">Wikipedia<\/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\">Forord<\/h3>\n<p><\/p>\n<p>Simulatoren ns-3 er en diskret h\u00e6ndelsessimulator designet hovedsageligt til forskning og brug i uddannelsesm\u00e6ssige form\u00e5l. Projektet, der udvikler ns-3, startede i 2006 og er et open source projekt.<\/p>\n<p><\/p>\n<p>M\u00e5let med denne vejledning er at introducere ns-3 til nye brugere p\u00e5 en systematisk og struktureret m\u00e5de. Nogle gange kan det v\u00e6re sv\u00e6rt for nybegyndere at f\u00e5 den n\u00f8dvendige information og omdanne den til arbejdsm\u00e6ssig modellering. I denne vejledning vil vi gennemg\u00e5 flere modelerings eksempler, mens vi forklarer n\u00f8glebegreber og funktioner.<\/p>\n<p><\/p>\n<p>Undervejs pr\u00e6senterer vi den komplette dokumentation for ns-3 og giver links til kildekoden for dem, der er interesserede i en dybere forst\u00e5else af systemets funktion.<\/p>\n<p><\/p>\n<p>I begyndelsen er der nogle vigtige punkter at bem\u00e6rke:<\/p>\n<p><\/p>\n<ul>\n<li>ns-3 har \u00e5bent kildesystem, projektet str\u00e6ber efter at st\u00f8tte en \u00e5ben platform, hvor forskere kan bidrage og dele deres programmeringsarbejder.<\/li>\n<li>ns-3 er ikke en bagudkompatibel udvidelse af ns-2; det er en ny simulator. Begge simulatorer er skrevet i C++, men ns-3 er en ny simulator, der ikke underst\u00f8tter API-gr\u00e6nsefladerne fra ns-2.<\/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-simulatoren er udviklet for at levere en \u00e5ben, udvidelig platform til netv\u00e6rksmodellering, netv\u00e6rksforskning og uddannelse. Kort sagt tilbyder ns-3 modeller af, hvordan pakkeoverf\u00f8rselsnetv\u00e6rk er implementeret og fungerer, og giver brugeren en simuleringsmotor til at udf\u00f8re simuleringsfors\u00f8g. \u00c5rsagerne til at bruge ns-3 kan v\u00e6re situationer, hvor det er n\u00f8dvendigt at udf\u00f8re en unders\u00f8gelse, der er sv\u00e6r eller umulig at udf\u00f8re p\u00e5 et reelt system, muligheden for at studere systemadf\u00e6rd i et strengt kontrolleret, reproducerbart milj\u00f8 samt at l\u00e6re, hvordan netv\u00e6rk fungerer. <\/p>\n<p><\/p>\n<p>Brugere vil bem\u00e6rke, at det s\u00e6t modeller, der leveres i ns-3, er fokuseret p\u00e5 modellering af internettet protokoller og netv\u00e6rk, men ns-3 er ikke begr\u00e6nset til internet-systemer; nogle brugere anvender ns-3 til at modellere systemer, der ikke er baseret p\u00e5 internet-teknologier.<\/p>\n<p><\/p>\n<p>Der er mange v\u00e6rkt\u00f8jer til netv\u00e6rksmodellering. Nedenfor er nogle af de karakteristiske tr\u00e6k ved ns-3 i forhold til andre v\u00e6rkt\u00f8jer.<\/p>\n<p><\/p>\n<ul>\n<li>ns-3 er designet som et s\u00e6t biblioteker, som kan kombineres b\u00e5de indbyrdes og med andre eksterne softwarebiblioteker. Mens nogle modelleringsplatforme tilbyder brugerne et samlet integreret milj\u00f8 med en grafisk brugerflade, der styrer alt arbejde, er ns-3 mere modul\u00e6r i denne henseende. Med ns-3 kan flere eksterne animatorer, dataanalyse- og visualiseringsv\u00e6rkt\u00f8jer anvendes. Brugerne skal dog forvente at arbejde i kommandolinjen og med C++ og\/eller Python udviklingsv\u00e6rkt\u00f8jer.<\/li>\n<li>ns-3 bruges hovedsageligt i Linux- eller macOS-systemer, selvom der er support til BSD-systemer samt til Windows-platforme, der kan kompilere kode til Linux, s\u00e5som Windows Subsystem til Linux eller Cygwin. Windows Visual Studio underst\u00f8ttes i \u00f8jeblikket ikke, selvom udvikleren arbejder p\u00e5 at implementere denne mulighed. Windows-brugere kan ogs\u00e5 benytte en virtuel Linux-maskine.<\/li>\n<li>ns-3 er ikke et officielt underst\u00f8ttet produkt fra nogen firma. Underst\u00f8ttelsen af ns-3 gives maximalt gennem ns-3-brugernes forum (ns-3-users@googlegroups.com).<\/li>\n<\/ul>\n<p><\/p>\n<h3 id=\"12-dlya-polzovateley-ns-2\">1.2 For brugere af ns-2<\/h3>\n<p><\/p>\n<p>For those familiar with ns-2 (the popular tool that preceded ns-3), the most noticeable external change when transitioning to ns-3 is the change in the scripting language. Programs in ns-2 are written in OTcl, with simulation results visualized using the nam network animator. In ns-2, it is impossible to run a simulation solely from C++ (meaning as a main() program without any OTcl). Moreover, some components of ns-2 are written in C++, while others are in OTcl. In ns-3, the simulator is entirely written in C++ with optional Python bindings. Therefore, simulation scripts can be written in both C++ and Python. New animators and visualizers are available and continue to be developed. Since ns-3 generates packet trace files in pcap format, other utilities can also be used for trace analysis. In this guide, we will first focus on scenarios implemented in C++ and the interpretation of results through the analysis of trace files.<\/p>\n<p><\/p>\n<p>But there are similarities as well (for example, both tools are built on C++ objects, and part of the ns-2 code has been ported to ns-3). In the following, we will attempt to highlight the differences between ns-2 and ns-3.<\/p>\n<p><\/p>\n<p>Et sp\u00f8rgsm\u00e5l, vi ofte h\u00f8rer: &quot;Skal jeg fortsat bruge ns-2, eller skal jeg skifte til ns-3?&quot; If\u00f8lge forfatteren, hvis brugeren ikke er bundet til ns-2 (baseret p\u00e5 eksisterende personlig komfort og kendskab til ns-2 eller baseret p\u00e5 en specifik simuleringsmodel, der kun er tilg\u00e6ngelig i ns-2), vil de v\u00e6re mere produktive med ns-3 af f\u00f8lgende grunde:<\/p>\n<p><\/p>\n<ul>\n<li>ns-3 is actively supported with an active, responsive user mailing list, while ns-2 is only lightly supported and has not seen significant changes in its main code tree for over ten years.<\/li>\n<li>ns-3 provides features not available in ns-2, such as a runtime environment for implementation code (allowing users to run real implementation code in the simulator).<\/li>\n<li>ns-3 offers a lower base level of abstraction compared to ns-2, allowing it to better match how real systems interact. Some limitations found in ns-2 (such as proper support for multiple interface types on a node) have been addressed in ns-3.<\/li>\n<\/ul>\n<p><\/p>\n<p>P\u00e5 grund af sin lange historie har ns-2 et mere varieret s\u00e6t af underst\u00f8ttede moduler end ns-3. Ikke desto mindre har ns-3 mere detaljerede modeller inden for flere popul\u00e6re forskningsomr\u00e5der (herunder komplekse LTE- og WiFi-modeller), og dens kodeimplementeringssupport tillader et meget bredt udvalg af modeller med h\u00f8j pr\u00e6cision. Brugere kan blive overraskede over at finde ud af, at hele netv\u00e6rksstakken i Linux kan indkapsles i en ns-3-node ved hj\u00e6lp af rammev\u00e6rket for direkte kodeudf\u00f8relse (DCE). Modeller fra ns-2 kan nogle gange porteres til ns-3, is\u00e6r hvis de er blevet implementeret i C++.<\/p>\n<p><\/p>\n<p>Hvis du er i tvivl, ville det v\u00e6re en god anbefaling at se p\u00e5 begge simulatorer (samt andre simulatorer), is\u00e6r p\u00e5 modeller tilg\u00e6ngelige for din forskning, men husk, at dit resultat muligvis vil v\u00e6re bedre ved at bruge et v\u00e6rkt\u00f8j, der i \u00f8jeblikket aktivt udvikles og st\u00f8ttes (ns-3).<\/p>\n<p><\/p>\n<h3 id=\"13-uchastie-v-proekte\">1.3 Deltagelse i projektet<\/h3>\n<p><\/p>\n<p>ns-3 er en forsknings- og uddannelses-simulator for forskningssamfundet. Den vil bygge videre p\u00e5 de nuv\u00e6rende bidrag fra samfundet til udviklingen af nye modeller, fejlfinding eller support af eksisterende og deling af resultater. Der er en politik, vi h\u00e5ber, vil opfordre folk til at bidrage til ns-3, som de g\u00f8r for ns-2:<\/p>\n<p><\/p>\n<ul>\n<li>Licensiering med \u00e5ben kildekode baseret p\u00e5 overensstemmelse med GNU GPLv2-licensen.<\/li>\n<li>wiki.<\/li>\n<li>Side <noindex><a rel=\"nofollow\" href=\"http:\/\/www.pocoo.org\/\">Bidragyders kode<\/a><\/noindex>, der ligner den popul\u00e6re side for ns-2.<\/li>\n<li>Brug af GitLab.com, herunder fejlsporingssystemet:<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 forst\u00e5r, at selvom du l\u00e6ser dette dokument, planl\u00e6gger du m\u00e5ske ikke p\u00e5 dette tidspunkt at bidrage til det. Men vi vil have, at du skal vide, at det at bidrage er i \u00e5nden af projektet, og at din feedback, selvom det kun er baseret p\u00e5 dine tidlige erfaringer med ns-3 (for eksempel &quot;denne del af l\u00e6rebogen var ikke forst\u00e5elig...&quot;), indberetning af for\u00e6ldet dokumentation eller kommentarer i koden osv., vil v\u00e6re v\u00e6rdifuld for os. Den foretrukne m\u00e5de at sende rettelser p\u00e5 er enten at lave en fork p\u00e5 <noindex><a rel=\"nofollow\" href=\"https:\/\/www.gitlab.com\/nsnam\">https:\/\/www.gitlab.com\/nsnam<\/a><\/noindex> Denne vejledning foruds\u00e6tter, at nye brugere oprindeligt kan navigere, for eksempel via f\u00f8lgende vej:<\/p>\n<p><\/p>\n<h3 id=\"14-organizaciya-rukovodstva\">1.4 Organisation af vejledningen<\/h3>\n<p><\/p>\n<p>Pr\u00f8v at downloade og opbygge en kopi;<\/p>\n<p><\/p>\n<ul>\n<li>Pr\u00f8v at k\u00f8re nogle eksempelprogrammer;<\/li>\n<li>Fors\u00f8g at k\u00f8re flere eksempelprogrammer;<\/li>\n<li>Se p\u00e5 resultatet af simuleringen og pr\u00f8v at tilpasse det.<br \/>\nI sidste ende fors\u00f8gte vi at organisere freml\u00e6ggelsen i overensstemmelse med disse trin.<\/li>\n<\/ul>\n<p><\/p>\n<h2 id=\"glava-2\">Kapitel 2<\/h2>\n<p><\/p>\n<h2 id=\"istochniki-informacii\">Kilder til information<\/h2>\n<p><\/p>\n<h3 id=\"21-set\">2.1 Netv\u00e6rk<\/h3>\n<p><\/p>\n<p>Der er flere vigtige ressourcer, som enhver ns-3-bruger skal v\u00e6re opm\u00e6rksom p\u00e5. Hovedwebstedet findes p\u00e5: <noindex><a rel=\"nofollow\" href=\"https:\/\/www.nsnam.org\">https:\/\/www.nsnam.org<\/a><\/noindex><br \/>\nog giver adgang til grundl\u00e6ggende information om ns-3-systemet. Den detaljerede dokumentation er tilg\u00e6ngelig gennem hovedwebstedet 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 denne webside kan du ogs\u00e5 finde dokumenter vedr\u00f8rende systemarkitekturen.<\/p>\n<p><\/p>\n<p>Der er en wiki-side, der supplerer hovedwebstedet ns-3, og du vil finde den 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>Her kan du finde svar p\u00e5 ofte stillede sp\u00f8rgsm\u00e5l for brugere og udviklere samt fejlfindingsguider, tredjepartskode, dokumenter osv.<br \/>\nKildekoden kan findes og gennemg\u00e5s 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>Der findes ogs\u00e5 et repository med navnet <em>ns-3-dev<\/em> som indeholder det nuv\u00e6rende udviklingstr\u00e6. Tidligere udgivelser og eksperimentelle udvikler-repositories kan ogs\u00e5 findes under Mercurial p\u00e5 projektets gamle websted 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>Komplekse software systemer har brug for en m\u00e5de at h\u00e5ndtere organiseringen og \u00e6ndringen af den grundl\u00e6ggende kode og dokumentation. Der er mange m\u00e5der at opn\u00e5 dette, og du har m\u00e5ske h\u00f8rt om nogle af de systemer, der typisk bruges til dette. Indtil for nylig har ns-3-projektet brugt Mercurial som kildekodeh\u00e5ndteringssystem, men i december 2018 skiftede vi til at bruge Git. Selvom du ikke beh\u00f8ver at vide meget om Git for at l\u00e6se denne vejledning, anbefaler vi at s\u00e6tte sig ind i det og bruge det til at f\u00e5 adgang til kildekoden. GitLab.com tilbyder ressourcer til at mestre grundl\u00e6ggende f\u00e6rdigheder 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\u00e5r du har downloadet kildekoden til din computer, skal du kompilere den for at f\u00e5 et funktionsdygtigt program. Ligesom med kildekodestyring er der mange v\u00e6rkt\u00f8jer til r\u00e5dighed for at udf\u00f8re denne funktion. Det mest kendte af disse v\u00e6rkt\u00f8jer er sandsynligvis make. Selvom dette v\u00e6rkt\u00f8j er det mest velkendte, er det ogs\u00e5 det mest komplekse at bruge i meget store og fleksibelt konfigurerbare systemer. Dette har f\u00f8rt til udviklingen af mange alternativer. For nylig er s\u00e5danne systemer blevet udviklet ved hj\u00e6lp af Python-sproget.<\/p>\n<p><\/p>\n<p>I ns-3-projektet bruges bygge-systemet Waf. Det er et n\u00e6ste generations byggeredskab baseret p\u00e5 Python. For at bygge det eksisterende ns-3-system beh\u00f8ver du ikke at kende Python.<\/p>\n<p><\/p>\n<p>For dem, der er interesseret i detaljer om brugen af Waf, er der en bog tilg\u00e6ngelig p\u00e5 adressen:<br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/waf.io\/book\/\">https:\/\/waf.io\/book\/<\/a><\/noindex><br \/>\nog den aktuelle kode:<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 Udviklingsmilj\u00f8<\/h3>\n<p><\/p>\n<p>Som n\u00e6vnt tidligere k\u00f8res script i ns-3 p\u00e5 C++ eller Python. De fleste API'er i ns-3 er tilg\u00e6ngelige p\u00e5 Python, men modellerne er uanset skrevet i C++. Denne vejledning foruds\u00e6tter, at du har kendskab til objektorienteret programmering i C++. I l\u00f8bet af denne vejledning vil vi tage os tid til at gennemg\u00e5 de mest avancerede koncepter og m\u00e5ske ogs\u00e5 ukendte egenskaber ved sproget, s\u00e5som idiomer og designm\u00f8nstre. Vi \u00f8nsker ikke, at denne vejledning skal blive en l\u00e6rebog om C++, s\u00e5 vi forventer, at du har grundl\u00e6ggende kendskab til sproget. Der er mange informationskilder om C++ tilg\u00e6ngelige online eller i trykt form.<\/p>\n<p><\/p>\n<p>Hvis du er ny inden for C++, s\u00e5 l\u00e6r grundl\u00e6ggende f\u00e6rdigheder i spr\u00e5ket ved at bruge en l\u00e6rebog eller en hjemmeside, der er dedikeret til undervisning eller opskrifter. For eksempel: <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 bruger ns-3-systemet flere komponenter fra GNU-projektets v\u00e6rkt\u00f8jss\u00e6t. V\u00e6rkt\u00f8jss\u00e6ttet er en samling af programmeringsv\u00e6rkt\u00f8jer, der er tilg\u00e6ngelige i dette softwaremilj\u00f8. For et hurtigt overblik over, hvad der er inkluderet i GNU-v\u00e6rkt\u00f8jer, 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>Simulatoren ns-3 bruger gcc, GNU binutils og gdb. Samtidig bruger vi ikke make eller autotools fra GNU-v\u00e6rkt\u00f8jer til at bygge projektet. Til disse funktioner bruger vi Waf.<\/p>\n<p><\/p>\n<p>I macOS bruger man v\u00e6rkt\u00f8jet Xcode. Brugere af ns-3 p\u00e5 Mac anbefales kraftigt at installere Xcode og kommandolinjev\u00e6rkt\u00f8jerne fra Apple App Store, samt at bes\u00f8ge ns-3 installationswiki-siden for yderligere information: (<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>Normalt arbejder forfatteren af ns-3 i en Linux- eller Unix-lignende milj\u00f8. For dem, der arbejder i Windows, findes der milj\u00f8er, der p\u00e5 forskellige niveauer simulerer Linux-milj\u00f8et. For s\u00e5danne brugere har ns-3 tidligere (men ikke l\u00e6ngere) underst\u00f8ttet udvikling i Cygwin-milj\u00f8et. For detaljer om download og yderligere information om Cygwin og ns-3, bes\u00f8g ns-3 wiki-siden:<br \/>\n<noindex><a rel=\"nofollow\" href=\"http:\/\/www.cygwin.com\/\">http:\/\/www.cygwin.com\/<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>MinGW underst\u00f8ttes i \u00f8jeblikket ikke officielt. Et andet alternativ til Cygwin er at installere et virtuelt milj\u00f8, s\u00e5som VMware-server, hvor man kan installere Linux.<\/p>\n<p><\/p>\n<h3 id=\"25-programmirovanie-soketov\">2.5 Programmering af sockets<\/h3>\n<p><\/p>\n<p>I de eksempler, der bruges i denne vejledning, vil vi anvende de grundl\u00e6ggende funktioner i Berkeley Socket API. Hvis du er ny til sockets, anbefaler vi, at du g\u00f8r dig bekendt med API'en og nogle almindelige anvendelsestilf\u00e6lde. Som en god oversigt over TCP\/IP socket-programmering anbefaler vi: &quot;TCP\/IP Sockets in C&quot;, Donahoo og Calvert.<\/p>\n<p><\/p>\n<p>Der er en tilknyttet hjemmeside, der indeholder kilden til eksemplerne i bogen, som du kan finde 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>Hvis du forst\u00e5r de f\u00f8rste fire kapitler i bogen (eller for dem, der ikke har adgang til en kopi af bogen, echoservere og -klienter som vist p\u00e5 hjemmesiden via linket ovenfor), vil det v\u00e6re tilstr\u00e6kkeligt til at forst\u00e5 vejledningen. Der findes en lignende bog<br \/>\n&quot;Multicast Sockets, Multicast Sockets&quot;, Makofske og Almeroth.<\/p>\n<p><\/p>\n<p>Den d\u00e6kker materialet, som du muligvis f\u00e5r brug for, hvis du skal studere eksemplerne p\u00e5 multicast i distributionen.<\/p>\n<p><\/p>\n<p>Forts\u00e6ttelse: <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/497318\/\">kapitel 3<\/a><\/noindex><\/p>\n<p>Kilde: <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.3 - 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\/da\/blog\/administrirovanie\/uchebnik-po-simulyatoru-seti-ns-3-glavy-12\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"da_DK\" \/>\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\/da\/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\udd47Vejledningen til netv\u00e6rkssimulatoren ns-3. Kapitel 1,2 | ProHoster","description":"Denne artikel \u00e5bner en serie af publikationer med overs\u00e6ttelsen af \"ns-3 Tutorial Release.\"","canonical_url":"https:\/\/prohoster.info\/da\/blog\/administrirovanie\/uchebnik-po-simulyatoru-seti-ns-3-glavy-12","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"da_DK","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\/da\/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\/da\/wp-json\/wp\/v2\/posts\/86559","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/comments?post=86559"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/posts\/86559\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/media\/86560"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/media?parent=86559"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/categories?post=86559"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/tags?post=86559"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}