{"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\/et\/blog\/administrirovanie\/uchebnik-po-simulyatoru-seti-ns-3-glavy-12","title":{"rendered":"Ns-3 v\u00f5rgu simulaatori \u00f5pik. Peat\u00fckid 1, 2","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>See artikkel avab artiklite seeria t\u00f5lkega \u00f5pikust \"<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>\" v\u00f5rgu simulaatorist ns-3. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Ns-3 v\u00f5rgu simulaatori \u00f5pik. Peat\u00fckid 1, 2\" src=\"\/wp-content\/uploads\/2020\/06\/cddee391ba8763baab6eaa185e081bf6.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>See dokument on ingliskeelse originaaldokumendi t\u00f5lge, mis on kirjutatud <noindex><a rel=\"nofollow\" href=\"http:\/\/docutils.sourceforge.net\/rst.html\">reStructuredText<\/a><\/noindex> jaoks <noindex><a rel=\"nofollow\" href=\"http:\/\/sphinx.pocoo.org\/\">Sphinx<\/a><\/noindex> ja hoitakse kataloogis <em>doc\/tutorial<\/em> ns-3 l\u00e4htekoodis.<\/p>\n<p><\/p>\n<p>1 Eelwoord<br \/>\n1.1 Ns-3-st<br \/>\n1.2 Ns-2 kasutajatele<br \/>\n1.3 Projekti kaasamine<br \/>\n1.4 K\u00e4siraamatu korraldus<br \/>\n2 Teabeallikad<br \/>\n2.1 V\u00f5rk<br \/>\n2.2 Git<br \/>\n2.3 WAF<br \/>\n2.4 Arenduskeskkond<br \/>\n2.5 Soketiprogrammeerimine<br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/497318\/\">peat\u00fckk 3<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/497478\/\">peat\u00fckk 4<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/498372\/\">peat\u00fckk 5<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/500170\/\">peat\u00fckk 6<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/507472\/\">peat\u00fckk 7<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/507770\/\">peat\u00fckid 8, 9<\/a><\/noindex><\/p>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/508218\/\">Laadi t\u00f5lge alla \u00fches pdf-failis<\/a><\/noindex><\/p>\n<p><\/p>\n<p>Ns-3 projekti algdokumentatsioon on saadaval viies vormis:<\/p>\n<p><\/p>\n<ul>\n<li>Simulaatori API dokumentatsioon: ns-3 <noindex><a rel=\"nofollow\" href=\"http:\/\/www.nsnam.org\/doxygen\/index.html\">Doxygen<\/a><\/noindex>.<\/li>\n<li>\u00d5pik, juhend ja mudelite raamatukogu jaoks <noindex><a rel=\"nofollow\" href=\"http:\/\/www.nsnam.org\/documentation\/latest\/\">viimase versiooni<\/a><\/noindex> ja <noindex><a rel=\"nofollow\" href=\"http:\/\/www.nsnam.org\/ns-3-dev\/documentation\/\">arenduse puust<\/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\">Peat\u00fckk 1<\/h2>\n<\/li>\n<\/ul>\n<p><\/p>\n<h3 id=\"predislovie\">Eess\u00f5na<\/h3>\n<p><\/p>\n<p>Ns-3 simulaator on diskreetse s\u00fcndmusena p\u00f5hinev v\u00f5rgu simulaator, mis on peamiselt ette n\u00e4htud teaduslikuks kasutamiseks ja hariduslikel eesm\u00e4rkidel. Ns-3 arendusprojekt algas 2006. aastal ja on avatud l\u00e4htekoodiga projekt.<\/p>\n<p><\/p>\n<p>Selle juhendi eesm\u00e4rk on tutvustada ns-3 uutele kasutajatele s\u00fcsteemselt ja struktureeritult. Algajale v\u00f5ib olla keeruline vajalikku teavet leida ja selle t\u00f6\u00f6modelliks muuta. Selle juhendi raames rakendame mitmeid modelleerimise n\u00e4iteid, selgitades ja tutvustades keeletegevuse k\u00e4igus v\u00f5tme m\u00f5isted ja jooned.<\/p>\n<p><\/p>\n<p>Teksti t\u00f5lgendamisel esitame t\u00e4ies mahus ns-3 dokumentatsiooni ja anname viiteid l\u00e4htekoodile neile, kes on s\u00fcvitsi huvitunud s\u00fcsteemi toimimisest.<\/p>\n<p><\/p>\n<p>Alustuseks tasub m\u00e4rkida m\u00f5ned p\u00f5hiteenused:<\/p>\n<p><\/p>\n<ul>\n<li>Ns-3-l on avatud l\u00e4htekood, projekt p\u00fc\u00fcab j\u00e4rgida avatud keskkonda, kus teadlased saavad oma panust anda ja jagada oma programmitootel.<\/li>\n<li>Ns-3 ei ole tagasip\u00f6\u00f6rduv ns-2 laiendus, see on uus simulaator. M\u00f5lemad simulaatorid on kirjutatud C++-s, kuid ns-3 on uus simulaator, mis ei toeta ns-2 API liideseid.<\/li>\n<\/ul>\n<p><\/p>\n<h3 id=\"11-o-ns-3\">1.1 Ns-3-st<\/h3>\n<p><\/p>\n<p>ns-3 simulaator on v\u00e4lja t\u00f6\u00f6tatud, et pakkuda avatud ja laiendatavat platvormi v\u00f5rgu modelleerimiseks, v\u00f5rgu teadusuuringuteks ja hariduseks. L\u00fchidalt \u00f6eldes pakub ns-3 mudeleid, kuidas andmepaketiteed p\u00f5him\u00f5tteliselt toimivad ja t\u00f6\u00f6tab ning annab kasutajale simulaatori mootori simulatsiooni katsete l\u00e4biviimiseks. P\u00f5hjused ns-3 kasutamiseks v\u00f5ivad olla olukorrad, kus on vaja teostada uuringut, mida on raske v\u00f5i v\u00f5imatu teha reaalsetes s\u00fcsteemides, v\u00f5imalus uurida s\u00fcsteemi k\u00e4itumist rangelt juhitud ja korduvates keskkondades, samuti m\u00f5ista, kuidas v\u00f5rgud t\u00f6\u00f6tavad. <\/p>\n<p><\/p>\n<p>Kasutajad m\u00e4rkavad, et ns-3 pakutud mudelite komplekt keskendub interneti protokollide ja v\u00f5rkude modelleerimisele, kuid ns-3 ei piirdu ainult internetis\u00fcsteemidega, m\u00f5ned kasutajad kasutavad ns-3 internetitehnoloogiatest mittetulenevate s\u00fcsteemide modelleerimiseks.<\/p>\n<p><\/p>\n<p>V\u00f5rgu modelleerimise t\u00f6\u00f6riistu on palju. Allpool on m\u00f5ned eristatavad omadused, mis eristavad ns-3 teistest t\u00f6\u00f6riistadest.<\/p>\n<p><\/p>\n<ul>\n<li>ns-3 on v\u00e4lja t\u00f6\u00f6tatud raamatukogude komplektina, mida saab omavahel ja teiste v\u00e4listarkvara raamatukogudega kombineerida. Kuigi m\u00f5ned modelleerimisplatvormid pakuvad kasutajatele \u00fchtset integreeritud keskkonda, millel on graafiline kasutajaliides, mis haldab kogu t\u00f6\u00f6d, on ns-3 selles osas modulaarsem. ns-3-ga v\u00f5ivad t\u00f6\u00f6tada mitmed v\u00e4list animeerijad, andmeanal\u00fc\u00fcsi ja visualiseerimise t\u00f6\u00f6riistad. Siiski ootavad kasutajalt k\u00e4skude real ja C++ ja\/v\u00f5i Python arendust\u00f6\u00f6riistadega t\u00f6\u00f6tamist.<\/li>\n<li>ns-3 kasutatakse peamiselt Linuxi v\u00f5i macOS s\u00fcsteemides, kuigi on toega BSD s\u00fcsteemidele ja Windowsi platvormidele, mis suudavad Linuxile suunatud koodi kompileerida, nagu Windowsi alams\u00fcsteem Linuxi jaoks v\u00f5i Cygwin. Windowsile m\u00f5eldud Visual Studio ei ole praegu toetatud, kuigi arendaja t\u00f6\u00f6tab selle v\u00f5imaluse rakendamise nimel. Windowsi kasutajad saavad kasutada ka Linuxi virtuaalmasinat.<\/li>\n<li>ns-3 ei ole ametlikult toetatav toode \u00fchegi ettev\u00f5tte poolt. ns-3 toetamist pakutakse maksimaalsete pingutustega ns-3 kasutajate foorumis (ns-3-users@googlegroups.com).<\/li>\n<\/ul>\n<p><\/p>\n<h3 id=\"12-dlya-polzovateley-ns-2\">1.2 Ns-2 kasutajatele<\/h3>\n<p><\/p>\n<p>Nende jaoks, kes tunnevad ns-2 (populaarne t\u00f6\u00f6riist, mis eelnes ns-3), on ns-3 \u00fcleminekul k\u00f5ige silmatorkavam v\u00e4line muutus skriptikeele vahetamine. ns-2 programmid on kirjutatud OTcl-is ning simuleerimise tulemusi saab visualiseerida, kasutades v\u00f5rgu animaatore nam. ns-2-s ei ole v\u00f5imalik simuleerimist k\u00e4ivitada ainult C++-st (st nagu main() programm ilma igasuguse OTcl-ita). Veelgi enam, m\u00f5ned ns-2 komponendid on kirjutatud C++-s, teised aga OTcl-is. ns-3-s, simulaator on t\u00e4ielikult kirjutatud C++-s koos valikuliste Python sidemetega. Seet\u00f5ttu saab simuleerimise skripte kirjutada nii C++-s kui ka Pythoni keeles. Uued animaatorid ja visualiseerijad on saadaval ja j\u00e4tkuvalt arendamisel. Kuna ns-3 genereerib pakettide j\u00e4lgimisfailid pcap, saab kasutada ka teisi utiliite j\u00e4lgede anal\u00fc\u00fcsimiseks. Selles juhendis keskendume esmalt C++-s rakendatud skriptidele ja tulemuste t\u00f5lgendamisele j\u00e4lgimisfailide anal\u00fc\u00fcsi kaudu.<\/p>\n<p><\/p>\n<p>Kuid leidub ka sarnasusi (n\u00e4iteks on m\u00f5lemad t\u00f6\u00f6riistad C++ objektide p\u00f5hised, osa ns-2 koodist on portitud ns-3-sse). Esitamise k\u00e4igus p\u00fc\u00fcame n\u00e4idata erinevusi ns-2 ja ns-3 vahel.<\/p>\n<p><\/p>\n<p>K\u00fcsimus, mida me sageli kuuleme: \"Kas ma peaksin endiselt kasutama ns-2 v\u00f5i minema \u00fcle ns-3-le?\" Autori arvates, kui kasutaja ei ole kuidagi seotud ns-2-ga (p\u00f5hinedes olemasolevale isiklikule mugavusele ja teadmistele ns-2-s, v\u00f5i toetudes konkreetsele simuleerimise mudelile, mis on saadaval ainult ns-2-s), siis on ns-3 kasutamine produktiivsem j\u00e4rgmiste p\u00f5hjuste t\u00f5ttu:<\/p>\n<p><\/p>\n<ul>\n<li>ns-3-d toetatakse aktiivselt ning sellel on aktiivne, vastutulelik kasutajate meililisti, samas kui ns-2-d toetatakse vaid veidi ja enam kui k\u00fcmme aastat ei ole selle peamises koodipuus toimunud olulisi muudatusi.<\/li>\n<li>ns-3 pakub funktsioone, mis ei ole saadaval ns-2-s, nagu rakenduskoodi k\u00e4itamise keskkond (mis v\u00f5imaldab kasutajatel simulaatoris k\u00e4itada reaalse rakenduskoodi).<\/li>\n<li>ns-3 tagab madalama abstraktsioonitaseme v\u00f5rreldes ns-2-ga, mis v\u00f5imaldab tal paremini vastata sellele, kuidas reaalsed s\u00fcsteemid suhtlevad. M\u00f5ned ns-2-s esinevad piirangud (nt \u00f5ige toetamine mitut t\u00fc\u00fcpi liideseid s\u00f5lmes) on ns-3-s k\u00f5rvaldatud.<\/li>\n<\/ul>\n<p><\/p>\n<p>Oma pika ajaloo t\u00f5ttu on ns-2-l rohkem mitmekesine toetatud moodulite valik kui ns-3-l. Siiski on ns-3-l detailsemad mudelid mitmes populaarse uuringuvaldkonnas (sealhulgas keerukad LTE ja WiFi mudelid), selle rakenduskoodi tugi lubab v\u00e4ga laia valikut k\u00f5rge t\u00e4psusega mudeleid. Kasutajad v\u00f5ivad olla \u00fcllatunud, et kogu Linuxi v\u00f5rgi virn saab kapseldada ns-3 s\u00f5lmesse, kasutades otse k\u00e4itava kodeerimise raamistikku (DCE). Ns-2-st saab m\u00f5ningaid mudeleid portida ns-3-sse, eriti kui need on rakendatud C++ keeles.<\/p>\n<p><\/p>\n<p>Kui kahtlete, oleks hea soovitus vaadata m\u00f5lemaid simulatore (ning ka teisi simulatore), eriti mudeleid, mis on teie uurimist\u00f6\u00f6s saadaval, kuid pidage meeles, et teie tulemus v\u00f5ib olla parem t\u00f6\u00f6riista kasutamisel, mis on hetkel aktiivselt arendamisel ja toetatakse (ns-3).<\/p>\n<p><\/p>\n<h3 id=\"13-uchastie-v-proekte\">1.3 Projekti kaasamine<\/h3>\n<p><\/p>\n<p>ns-3 on teaduslik-\u00f5ppe simulaator uurimiscommunity jaoks. See tugineb kogukonna praegustele panustele uute mudelite v\u00e4ljat\u00f6\u00f6tamisel, olemasolevate t\u00f5rgete k\u00f5rvaldamisel v\u00f5i toetamisel ning tulemuste vahetamisel. On olemas teatud poliitikad, mis, nagu me loodame, julgustavad inimesi panustama ns-3-sse, nagu nad on seda teinud ns-2-s:<\/p>\n<p><\/p>\n<ul>\n<li>Avaallika litsentsimine GNU GPLv2 litsentsiga \u00fchilduva p\u00f5hjal.<\/li>\n<li>wiki.<\/li>\n<li>Leht <noindex><a rel=\"nofollow\" href=\"http:\/\/www.pocoo.org\/\">Kaast\u00f6\u00f6tajate kood<\/a><\/noindex>, sarnane populaarsele ns-2 lehele.<\/li>\n<li>GitLab.com kasutamine, sealhulgas vea j\u00e4lgimise s\u00fcsteem:<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>Me m\u00f5istame, et isegi kui te loete seda dokumenti, siis te ei pruugi sel hetkel plaanida sellesse panustada. Kuid tahame, et te teaksite, et panustamine vastab projekti vaimule ja teie tagasiside, isegi varajaste kogemuste kohta ns-3-ga (nt \"see peat\u00fckk \u00f5pikust ei olnud arusaadav ...\"), aegunud dokumentatsiooni teated v\u00f5i koodikommentaarid on meile v\u00e4\u00e4rtuslikud. Soovitatav viis paranduste saatmiseks on kas teha haru (fork) <noindex><a rel=\"nofollow\" href=\"https:\/\/www.gitlab.com\/nsnam\">https:\/\/www.gitlab.com\/nsnam<\/a><\/noindex> See juhend eeldab, et uued kasutajad v\u00f5ivad alguses liikuda n\u00e4iteks j\u00e4rgmist teed pidi:<\/p>\n<p><\/p>\n<h3 id=\"14-organizaciya-rukovodstva\">1.4 K\u00e4siraamatu korraldus<\/h3>\n<p><\/p>\n<p>Proovige alla laadida ja koguda koopia;<\/p>\n<p><\/p>\n<ul>\n<li>Proovige k\u00e4ivitada m\u00f5ningaid n\u00e4idiskoode;<\/li>\n<li>Proovige k\u00e4ivitada m\u00f5ningaid n\u00e4idiskoode;<\/li>\n<li>Vaata simulatsiooni tulemust ja proovi seda kohandada.<br \/>\nKokkuv\u00f5ttes p\u00fc\u00fcdsime korraldada esitlust vastavalt nendele sammudele.<\/li>\n<\/ul>\n<p><\/p>\n<h2 id=\"glava-2\">Peat\u00fckk 2<\/h2>\n<p><\/p>\n<h2 id=\"istochniki-informacii\">Teabeallikad<\/h2>\n<p><\/p>\n<h3 id=\"21-set\">2.1 V\u00f5rk<\/h3>\n<p><\/p>\n<p>On mitu olulist ressurssi, millest iga ns-3 kasutaja peaks teadlik olema. Peamine veebisait asub aadressil: <noindex><a rel=\"nofollow\" href=\"https:\/\/www.nsnam.org\">https:\/\/www.nsnam.org<\/a><\/noindex><br \/>\nja pakub juurdep\u00e4\u00e4su p\u00f5hiteabele ns-3 s\u00fcsteemi kohta. \u00dcksikasjalik dokumentatsioon on saadaval p\u00f5hiveebisaidi kaudu aadressil: <noindex><a rel=\"nofollow\" href=\"https:\/\/www.nsnam.org\/documentation\/\">https:\/\/www.nsnam.org\/documentation\/<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>Samas veebilehes leiate ka dokumendid, mis k\u00e4sitlevad s\u00fcsteemiarhitektuuri.<\/p>\n<p><\/p>\n<p>On olemas wikileht, mis t\u00e4iendavad ns-3 p\u00f5hiveebisaiti, mille leiate aadressilt: <noindex><a rel=\"nofollow\" href=\"https:\/\/www.nsnam.org\/wiki\/\">https:\/\/www.nsnam.org\/wiki\/<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>Seal on vastuseid sageli esitatavatele k\u00fcsimustele kasutajate ja arendajate jaoks, samuti t\u00f5rkeotsingu juhised, kolmanda osapoole kood, dokumendid jne.<br \/>\nAllika kood on saadaval ja seda saab vaadata 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>Seal on ka hoidla nimega <em>ns-3-dev<\/em> kus asub praegune arenduse puu. Varasemad v\u00e4ljaanded ning tuum arendajate eksperimentaalsed hoidlad on samuti saadaval Mercurial'is vana projekti veebisaidi kaudu aadressil:<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>Komplekssete programmeerimisseeriate jaoks on vajalik mingisugune meetod aluskoodi ja dokumentatsiooni haldamiseks ning muutmiseks. On palju viise, kuidas seda saavutada, ja v\u00f5ib-olla olete kuulnud m\u00f5nest s\u00fcsteemist, mida tavaliselt selleks kasutatakse. Hiljuti kasutas projekt ns-3 Mercurial'i l\u00e4htekoodi haldamise s\u00fcsteemina, kuid 2018. aasta detsembris vahetasime Git'i kasutamise \u00fcle. Kuigi selle juhendi lugemiseks ei pea te Git'ist palju teadma, soovitame teil sellega tuttavaks saada ja kasutada seda l\u00e4htekoodi juurde p\u00e4\u00e4semiseks. GitLab.com pakub ressursse p\u00f5hiteadmiste omandamiseks aadressil: <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>P\u00e4rast seda, kui olete allalaadinud l\u00e4htekoodi oma arvutisse, peate selle t\u00f6\u00f6korras programmi saamiseks kompileerima. Nagu l\u00e4htekoodi haldamise puhul, on selle funktsiooni t\u00e4itmiseks saadaval palju t\u00f6\u00f6riistu. T\u00f5en\u00e4oliselt on k\u00f5ige tuntum neist t\u00f6\u00f6riistast make. Kuigi see t\u00f6\u00f6riist on k\u00f5ige tuntum, tuleks m\u00e4rkida, et selle kasutamine v\u00e4ga suures ja paindlikult konfigureeritavas s\u00fcsteemis osutub keerukaks. See oli p\u00f5hjuseks, miks arendati mitmeid alternatiive. Hiljuti on sellised s\u00fcsteemid v\u00e4lja t\u00f6\u00f6tatud Python'i keelt kasutades.<\/p>\n<p><\/p>\n<p>Projektis ns-3 kasutatakse Waf ehituss\u00fcsteemi. See on uus p\u00f5lvkond Python'i p\u00f5hiseid ehituss\u00fcsteeme. Olemasoleva ns-3 s\u00fcsteemi ehitamiseks ei pea te Python'it teadma.<\/p>\n<p><\/p>\n<p>Neile, kes on huvitatud Waf'i kasutamise detailidest, on saadaval raamat, mis on kergesti k\u00e4tte saadav aadressilt:<br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/waf.io\/book\/\">https:\/\/waf.io\/book\/<\/a><\/noindex><br \/>\nja praegune kood:<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 Arenduskeskkond<\/h3>\n<p><\/p>\n<p>Nagu eespool mainitud, t\u00f6\u00f6tatakse ns-3 skriptid C++ v\u00f5i Python'i keeles. Suur osa ns-3 API-st on saadaval Python'is, kuid mudelid on igal juhul kirjutatud C++ keeles. See juhend eeldab, et olete tuttav objektorienteeritud programmeerimisega C++ keeles. Juhendi k\u00e4igus p\u00fchendame veidi aega k\u00f5ige arenenumate kontseptsioonide ja v\u00f5ib-olla tundmatute keeleomaduste, nagu idiomid ja disainimallid, \u00fclevaatamiseks. Me ei soovi, et see juhend muutuks C++ \u00f5pikuks, seega ootame, et teil oleks keele p\u00f5hiteadmised. Internetis v\u00f5i tr\u00fckis on saadaval palju teabeallikaid C++ kohta.<\/p>\n<p><\/p>\n<p>Kui olete C++ uustulnukas, siis enne j\u00e4tkamist \u00f5ppige keele aluseid m\u00f5ne \u00f5pikuga v\u00f5i veebilehega, mis on p\u00fchendatud \u00f5ppimisele v\u00f5i valmislahendustele. N\u00e4iteks sellised: <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>Linuxi all kasutab s\u00fcsteem ns-3 mitmeid komponente GNU projekti t\u00f6\u00f6riistadest. T\u00f6\u00f6riistad on programmeerimist\u00f6\u00f6riistade kogum, mis on saadaval antud tarkvarakeskkonnas. Kiireks \u00fclevaateks GNU t\u00f6\u00f6riistadest vaadake, palun. <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>Simulaator ns-3 kasutab gcc, GNU binutils ja gdb. Samuti ei kasuta me projekti ehitamiseks ei make ega autotools GNU t\u00f6\u00f6riistadsest. Nende funktsioonide jaoks kasutame Waf'i.<\/p>\n<p><\/p>\n<p>macOS-is kasutatakse Xcode'i t\u00f6\u00f6riistakomplekti. Ns-3 kasutajatele Macis soovitatakse tungivalt installida Xcode ja Apple App Store'ist komando t\u00f6\u00f6riistade paketid ning lisainformatsiooni jaoks k\u00fclastada ns-3 installimise wiki-lehte: (<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>Tavaliselt t\u00f6\u00f6tab ns-3 autor Linuxi v\u00f5i Unixiga sarnases keskkonnas. Neile, kes t\u00f6\u00f6tavad Windowsis, on olemas keskkondi, mis erineval m\u00e4\u00e4ral imiteerivad Linuxi keskkonda. Selleteemal kasutajad, ns-3 projekt toetas minevikus (kuid mitte praegu) arendust Cygwin keskkonnas. Lisateabe saamiseks Cygwini ja ns-3 kohta k\u00fclastage ns-3 wiki-lehte:<br \/>\n<noindex><a rel=\"nofollow\" href=\"http:\/\/www.cygwin.com\/\">http:\/\/www.cygwin.com\/<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>MinGW pole praegu ametlikult toetatud. Teiseks alternatiiviks Cygwinile on virtuaalses keskkonnas, nagu VMware server, Linuxi installimine.<\/p>\n<p><\/p>\n<h3 id=\"25-programmirovanie-soketov\">2.5 Soketiprogrammeerimine<\/h3>\n<p><\/p>\n<p>Selles juhendis kasutatud n\u00e4idetes kasutame Berkeley socket API p\u00f5hifunktsioone. Kui olete soketite maailmas uus, soovitame tutvuda API-ga ja m\u00f5nede levinud kasutusjuhtumitega. Heaks \u00fclevaateks TCP\/IP sokettide programmeerimisest soovitame: \"TCP\/IP Sockets in C\", Donahoo ja Calvert.<\/p>\n<p><\/p>\n<p>On olemas seotud veebisait, mis sisaldab raamatust p\u00e4rinevaid n\u00e4idiseid, mida leiate aadressilt:<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>Kui m\u00f5istate raamatu esimesi nelja peat\u00fckki (v\u00f5i kui teil ei ole juurdep\u00e4\u00e4su raamatu eksemplarile, siis saidil \u00fclaltoodud lingil olevad echo kliendid ja serverid), piisab sellest, et m\u00f5ista \u00f5petust. On olemas sarnane raamat<br \/>\n\"Multicast Sockets, Multicast Sockets\", Makofske ja Almeroth.<\/p>\n<p><\/p>\n<p>See katab materjali, mis v\u00f5ib olla vajalik, kui \u00f5pite jaotuses mitme aadressiga edastamise n\u00e4iteid.<\/p>\n<p><\/p>\n<p>J\u00e4tkub: <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/497318\/\">peat\u00fckk 3<\/a><\/noindex><\/p>\n<p>Allikas: <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.1.1 - 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\/et\/blog\/administrirovanie\/uchebnik-po-simulyatoru-seti-ns-3-glavy-12\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"et_EE\" \/>\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\/et\/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\udd47Ns-3 v\u00f5rgu simulaatori \u00f5petus. Peat\u00fckid 1,2 | ProHoster","description":"See artikkel avab artiklite seeria, kus t\u00f5lgitakse \"ns-3 Tutorial Release\".","canonical_url":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/uchebnik-po-simulyatoru-seti-ns-3-glavy-12","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"et_EE","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\/et\/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\/et\/wp-json\/wp\/v2\/posts\/86559","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/comments?post=86559"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/86559\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media\/86560"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media?parent=86559"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/categories?post=86559"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/tags?post=86559"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}