Kab lus no qhib cov ntawv tshaj tawm nrog cov phau ntawv txhais lus ""ntawm ns-3 network simulator.

Cov ntaub ntawv no yog kev txhais cov ntaub ntawv Askiv thawj, uas tau sau rau hauv rau thiab muab khaws cia rau hauv daim ntawv teev npe doc/tutorial ns-3 source code.
1 Cov lus qhia
1.1 Txog ns-3
1.2 Rau ns-2 cov neeg siv
1.3 Kev koom tes hauv qhov project
1.4 Kev tswj hwm lub koom haum
2 Qhov chaw ntawm cov ntaub ntawv
2.1 Network
2.2 Ib
2.3 AWV
2.4 Kev txhim kho ib puag ncig
2.5 Qhov (socket) programming
Cov ntaub ntawv tseem ceeb rau txoj haujlwm ns-3 muaj nyob rau hauv tsib daim ntawv:
- Cov ntaub ntawv API Simulator: ns-3 .
- Tutorial, qhia thiab qauv tsev qiv ntawv rau и .
- ns- 3.
Tshooj 1
Lus Qhia Tshab
ns-3 simulator yog ib qho kev sib koom tes sib koom ua ke simulator npaj rau kev tshawb fawb thiab kev kawm siv. Qhov project tsim ns-3 tau pib hauv 2006 thiab yog qhov qhib qhov project.
Lub hom phiaj ntawm phau ntawv qhia no yog los qhia ns-3 rau cov neeg siv tshiab hauv txoj hauv kev, tsim qauv. Qee lub sij hawm nws tuaj yeem nyuaj rau tus neeg tshiab kom tau txais cov ntaub ntawv tsim nyog thiab txhais nws ua haujlwm simulation. Hauv qhov kev qhia no, peb siv ntau qhov piv txwv simulation, qhia thiab piav qhia cov ntsiab lus tseem ceeb thiab cov yam ntxwv ntawm txoj kev.
Raws li peb mus, peb yuav muab cov ntaub ntawv tiav rau ns-3 thiab muab cov kev txuas mus rau qhov chaws rau cov neeg xav paub txog kev nkag siab tob txog qhov system ua haujlwm li cas.
Muaj ob peb lub ntsiab lus tseem ceeb uas yuav tsum nco ntsoov ntawm qhov pib:
- ns-3 yog qhov qhib, thiab qhov project sib zog ua kom muaj qhov chaw qhib uas cov kws tshawb fawb tuaj yeem pab txhawb thiab qhia lawv cov haujlwm software.
- ns-3 tsis yog rov qab tau tshaj txuas ntxiv ntawm ns-2, nws yog qhov tshiab simulator. Ob lub simulators tau sau hauv C ++, tab sis ns-3 yog qhov simulator tshiab uas tsis txhawb nqa ns-2 APIs.
1.1 Txog ns-3
Lub ns-3 simulator tau tsim los muab qhov qhib, txuas ntxiv rau kev sib txuas hauv network, kev tshawb fawb hauv network, thiab kev kawm. Nyob rau hauv luv luv, ns-3 muab cov qauv ntawm yuav ua li cas pob ntawv cov ntaub ntawv tes hauj lwm yog siv thiab ua hauj lwm thiab muab rau tus neeg siv lub tshuab simulator los ua simulation thwmsim. Vim li cas thiaj siv ns-3 suav nrog cov xwm txheej uas yuav tsum tau ua qhov kev tshawb fawb uas nyuaj lossis tsis tuaj yeem ua rau ntawm lub cev tiag tiag, kev muaj peev xwm los kawm txog kev coj tus cwj pwm hauv ib puag ncig uas tswj tau zoo, ib puag ncig rov tsim dua tshiab, thiab kawm txog kev sib koom tes ua haujlwm li cas. .
Cov neeg siv yuav nco ntsoov tias cov txheej txheem muab rau hauv ns-3 yog tsom rau kev simulating kev ua haujlwm ntawm Internet raws tu qauv thiab tes hauj lwm, tab sis ns-3 tsis txwv rau Internet systems; qee cov neeg siv ns-3 los ua qauv tsis yog Internet raws li systems.
Muaj ntau ntau cov cuab yeej tsim qauv network muaj. Hauv qab no yog ob peb txoj hauv kev ns-3 piv rau lwm yam cuab yeej.
- ns-3 yog tsim los ua ib pawg tsev qiv ntawv uas tuaj yeem ua ke ua ke nrog rau lwm lub tsev qiv ntawv software sab nraud. Txawm hais tias qee qhov simulation platforms muab cov neeg siv nrog ib qho, ib puag ncig kev koom ua ke nrog cov neeg siv graphical interface tswj txhua txoj haujlwm, ns-3 yog qhov ntau dua hauv qhov no. Ntau cov animators sab nraud, cov ntaub ntawv tsom xam thiab cov cuab yeej pom kev tuaj yeem siv nrog ns-3. Txawm li cas los xij, cov neeg siv tuaj yeem cia siab tias yuav ua haujlwm ntawm kab hais kom ua thiab nrog C ++ thiab / lossis Python software txhim kho cov cuab yeej.
- ns-3 feem ntau yog siv rau hauv cov kab ke Linux los yog macOS, txawm hais tias muaj kev txhawb nqa rau BSD systems nrog rau cov platforms Windows, muaj peev xwm sau cov code rau Linux, zoo li Windows Lub kaw lus me me rau Linux los yog Cygwin. Ib txwm nyob hauv Windows Tam sim no tsis tau txais kev txhawb nqa Visual Studio, txawm hais tias tus tsim tawm tab tom ua haujlwm rau kev siv qhov feature no. Cov neeg siv Windows kuj tseem siv tau lub tshuab virtual nrog Linux.
- ns-3 tsis yog ib qho kev txhawb nqa software khoom los ntawm ib lub tuam txhab. Kev them nyiaj yug rau ns-3 yog muab raws li qhov zoo tshaj plaws peb tuaj yeem ua tau ntawm ns-3 neeg siv lub rooj sab laj (ns-3-users@googlegroups.com).
1.2 Rau ns-2 cov neeg siv
Rau cov neeg paub txog ns-2 (cov cuab yeej nrov uas ua ntej ns-3), qhov kev hloov pauv sab nraud tshaj plaws thaum tsiv mus rau ns-3 yog qhov kev hloov ntawm cov lus sau. Cov kev pab cuam hauv ns-2 tau sau rau hauv OTcl, thiab cov txiaj ntsig simulation tuaj yeem pom tau siv lub nam network animator. Hauv ns-2 nws tsis tuaj yeem khiav ib qho simulation nkaus xwb los ntawm C ++ (uas yog, raws li lub ntsiab () program yam tsis muaj OTcl). Ntxiv mus, qee cov khoom ntawm ns-2 tau sau hauv C ++, thaum lwm tus sau hauv OTcl. Hauv ns-3, lub simulator tau sau tag nrho hauv C ++ nrog kev xaiv Python bindings. Yog li, simulation scripts tuaj yeem sau rau hauv C ++ thiab Python. Tshiab animators thiab renderers muaj thiab txuas ntxiv tsim. Txij li thaum ns-3 tsim cov ntaub ntawv pcap packet trace, lwm yam khoom siv kuj tuaj yeem siv los txheeb xyuas cov kab. Hauv qhov kev qhia no, peb yuav xub tsom mus rau cov ntawv sau ua haujlwm hauv C ++ thiab txhais cov txiaj ntsig los ntawm kev txheeb xyuas cov ntaub ntawv taug qab.
Tab sis kuj tseem muaj qhov sib xws (piv txwv li, ob qho tib si yog raws li C ++ cov khoom, ib feem ntawm ns-2 code tau xa mus rau ns-3). Raws li peb mus, peb yuav sim qhia qhov txawv ntawm ns-2 thiab ns-3.
Ib lo lus nug uas peb nquag hnov yog: "Kuv puas tseem yuav siv ns-2 lossis hloov mus rau ns-3?" Raws li tus kws sau ntawv, yog tias tus neeg siv tsis raug khi rau ns-2 (raws li kev nplij siab ntawm tus kheej thiab kev paub ntawm ns-2, lossis raws li tus qauv simulation tshwj xeeb uas tsuas muaj nyob hauv ns-2), ces nrog ns- 3 Nws yuav ua tau ntau dua rau cov hauv qab no:
- ns-3 tau ua haujlwm ruaj khov nrog cov neeg siv khoom siv, teb cov npe xa ntawv, thaum ns-2 tsuas yog txhawb nqa me ntsis thiab tsis tau pom cov kev hloov pauv tseem ceeb rau nws txoj cai tseem ceeb hauv ntau xyoo caum.
- ns-3 muab cov yam ntxwv tsis muaj nyob rau hauv ns-2, xws li kev siv code runtime (tso cai rau cov neeg siv los khiav qhov kev siv tiag tiag hauv lub simulator).
- ns-3 muab qib qis qis ntawm abstraction tshaj ns-2, tso cai rau nws kom zoo dua qhov kev sib raug zoo ntawm cov tshuab tiag tiag. Qee qhov kev txwv pom hauv ns-2 (xws li kev txhawb nqa ntau hom kev sib txuas ntawm ib lub ntawm) tau raug kho hauv ns-3.
Vim nws keeb kwm ntev, ns-2 muaj ntau yam modules txhawb nqa dua li ns-3. Txawm li cas los xij, ns-3 muaj cov qauv ntxaws ntxaws ntxiv hauv ntau qhov chaw tshawb fawb nrov (suav nrog cov qauv LTE thiab WiFi nyuaj), thiab nws cov lej txhawb nqa tso cai rau ntau yam qauv siab heev. Cov neeg siv yuav xav tsis thoob thaum paub tias tag nrho cov networking stack Linux tuaj yeem raug encapsulated hauv ns-3 node siv cov txheej txheem direct code execution (DCE). Cov qauv ns-2 qee zaum tuaj yeem raug xa mus rau ns-3, tshwj xeeb tshaj yog tias lawv tau siv hauv C ++.
Yog tias tsis ntseeg, cov lus pom zoo yuav yog los saib ob lub simulators (nrog rau lwm yam simulators), tshwj xeeb yog cov qauv muaj rau koj txoj kev kawm, tab sis nco ntsoov tias koj cov txiaj ntsig yuav zoo dua siv lub cuab yeej uas tam sim no ua haujlwm. tsim thiab txhawb nqa (ns-3).
1.3 Kev koom tes hauv qhov project
ns-3 yog kev tshawb fawb thiab kev kawm simulator rau kev tshawb fawb zej zog. Nws yuav tsim kom muaj kev koom tes hauv zej zog tsis tu ncua los tsim cov qauv tshiab, kho qhov teeb meem lossis tswj cov uas twb muaj lawm, thiab sib qhia cov txiaj ntsig. Muaj qee txoj cai uas peb vam tias yuav txhawb kom tib neeg los pab rau ns-3 li lawv ua rau ns-2:
- Qhib cov ntawv tso cai raws li kev sib raug zoo nrog GNU GPLv2 daim ntawv tso cai.
- wiki.
- Траница , zoo ib yam li nplooj ntawv nrov rau ns-2.
- Siv GitLab.com, suav nrog qhov teeb meem nrhiav qhov system:
Peb nkag siab tias txawm tias koj tab tom nyeem cov ntaub ntawv no, tej zaum koj yuav tsis npaj los pab txhawb rau theem no. Tab sis peb xav kom koj paub tias kev koom tes yog nyob rau hauv lub siab ntawm peb tes num thiab hais tias peb yuav muaj nuj nqis rau koj lub tswv yim, txawm hais txog koj cov kev paub thaum ntxov nrog ns-3 (piv txwv li, "cov lus qhia no tsis meej ..." ), tshaj tawm txog cov ntaub ntawv tsis tu ncua lossis cov lus pom hauv cov cai, thiab lwm yam ... Txoj kev nyiam tshaj plaws rau kev xa cov kev kho yog los ua ib ceg ( nkhaus) rau nrog koj cov kev kho thiab tsim ib qho kev thov sib koom ua ke, lossis tsim kev thov ntawm peb tus tracker thiab ntxiv ib thaj.
1.4 Kev tswj hwm lub koom haum
Phau ntawv qhia no xav tias cov neeg siv tshiab yuav pib ua raws qee yam zoo li no:
- Sim rub tawm thiab sau ib daim qauv;
- Sim khiav ntau yam qauv kev pab cuam;
- Saib ntawm qhov simulation tshwm sim thiab sim kho nws.
Thaum kawg, peb sim npaj qhov kev nthuav qhia raws li cov kauj ruam no.
Tshooj 2
Cov ntaub ntawv ntawm cov ntaub ntawv
2.1 Network
Muaj ntau ntau qhov chaw tseem ceeb uas txhua tus neeg siv ns-3 yuav tsum paub txog. Lub vev xaib tseem ceeb nyob ntawm:
thiab muab kev nkag mus rau cov ntaub ntawv tseem ceeb ntawm ns-3 system. Cov ntaub ntawv ntxaws ntxaws muaj nyob hauv lub vev xaib tseem ceeb ntawm: .
Nyob rau tib lub vev xaib no koj tuaj yeem nrhiav cov ntaub ntawv ntsig txog qhov system architecture.
Muaj ib nplooj ntawv wiki uas ntxiv rau lub vev xaib tseem ceeb ns-3, uas koj tuaj yeem pom ntawm: .
Nyob ntawd koj yuav pom cov lus teb rau cov lus nug uas nquag nug rau cov neeg siv thiab cov neeg tsim khoom, nrog rau cov lus qhia daws teeb meem, cov cai thib peb, cov ntaub ntawv, thiab ntau dua.
Qhov chaws tuaj yeem pom thiab saib ntawm GitLab.com:
.
Nyob rau hauv lub repository nrog lub npe ns-3-dev tsob ntoo kev loj hlob tam sim no nyob. Kev tshaj tawm yav dhau los thiab cov chaw cia khoom sim ntawm cov neeg tsim tawm kernel kuj tuaj yeem pom nyob hauv Mercurial ntawm qhov chaw qub ntawm qhov project:
.
2.2 Ib
Cov txheej txheem software nyuaj xav tau qee txoj hauv kev los tswj lub koom haum thiab kev hloov pauv ntawm cov cai hauv qab thiab cov ntaub ntawv. Muaj ntau txoj hauv kev kom ua tiav qhov no, thiab koj yuav tau hnov txog qee lub tshuab uas feem ntau siv los ua kom tiav qhov no. Txog thaum tsis ntev los no, ns-3 qhov project siv Mercurial raws li nws qhov kev tswj hwm qhov system, tab sis thaum lub Kaum Ob Hlis 2018, peb tau hloov mus siv Git. Thaum koj tsis tas yuav paub ntau ntxiv txog Git los nyeem phau ntawv qhia no, peb xav kom koj paub koj tus kheej nrog nws thiab siv nws kom nkag mus rau qhov chaws. GitLab.com muab cov peev txheej rau kev paub cov txuj ci tseem ceeb ntawm: .
2.3 AWV
Thaum koj tau downloaded lub hauv paus code rau koj lub computer, koj yuav tsum tau muab tso ua ke kom tau qhov kev pab cuam npaj khiav. Raws li kev tswj hwm qhov chaws, muaj ntau yam cuab yeej muaj los ua qhov haujlwm no. Tej zaum qhov paub zoo tshaj plaws ntawm cov cuab yeej no yog ua. Thaum lub cuab yeej no yog qhov paub zoo tshaj plaws, nws yuav tsum tau muab sau tseg tias nws yog qhov nyuaj tshaj plaws thaum siv rau hauv qhov loj heev thiab teeb tsa tau zoo heev. Qhov no tau ua rau kev txhim kho ntau yam kev xaiv. Tsis ntev los no, cov tshuab zoo li no tau tsim los siv cov lus Python.
Qhov project ns-3 siv Waf tsim system. Nws yog ib feem ntawm lub cim tshiab ntawm Python-based build systems. Txhawm rau tsim kom muaj ns-3 system uas twb muaj lawm, koj tsis tas yuav paub Python.
Rau cov neeg xav paub txog kev siv Waf, muaj ib phau ntawv muaj nyob ntawm:
thiab tam sim no code:
.
2.4 Kev txhim kho ib puag ncig
Raws li tau hais los saum no, cov ntawv sau hauv ns-3 raug tua hauv C ++ lossis Python. Feem ntau ntawm ns-3 API muaj nyob rau hauv Python, tab sis cov qauv sau hauv C ++ lawm. Qhov kev qhia no xav tias koj tau paub txog cov phiaj xwm taw qhia hauv C ++. Raws li peb mus, peb yuav siv qee lub sijhawm los tshuaj xyuas qee cov ntsiab lus siab dua thiab tej zaum cov lus tsis paub zoo xws li cov lus hais thiab cov qauv tsim. Peb tsis xav kom phau ntawv qhia no los ua C ++ qhia, yog li peb cia siab tias yuav nkag siab yooj yim ntawm cov lus. Muaj ntau qhov chaw ntawm cov ntaub ntawv hais txog C ++ muaj nyob online lossis luam tawm.
Yog tias koj tshiab rau C ++, kawm cov ntsiab lus ntawm cov lus nrog kev qhia lossis kev qhia lossis daim ntawv qhia lub vev xaib ua ntej pib ua haujlwm. Piv txwv li, zoo li no: .
Hauv qab LinuxLub kaw lus ns-3 siv ntau yam khoom los ntawm GNU toolchain. Ib qho toolchain yog ib pawg ntawm cov cuab yeej programming muaj nyob rau hauv ib qho chaw software. Yog xav paub ntxiv txog yam uas suav nrog hauv GNU toolchain, saib .
ns-3 simulator siv gcc, GNU binutils thiab gdb. Tib lub sijhawm, peb tsis siv los ua lossis autotools los ntawm GNU cov cuab yeej los tsim qhov project. Rau cov haujlwm no peb siv Waf.
В macOS Cov cuab yeej Xcode siv tau. Cov neeg siv ns-3 ntawm Mac raug txhawb kom nruab Xcode thiab cov pob khoom siv kab hais kom ua los ntawm Apple App Store, thiab yog xav paub ntxiv, mus saib nplooj ntawv wiki teeb tsa ns-3: ().
Feem ntau, tus sau ntawm ns-3 ua haujlwm hauv Linux lossis ib puag ncig zoo li Unix. Rau cov neeg ua haujlwm hauv qab Windows, muaj cov chaw ib puag ncig uas ua raws li cov chaw ib puag ncig rau ntau qib sib txawv LinuxRau cov neeg siv zoo li no, qhov project ns-3 tau txhawb nqa kev txhim kho hauv Cygwin ib puag ncig. Yog xav paub ntxiv txog Cygwin thiab ns-3, mus saib nplooj ntawv ns-3 wiki:
.
Tam sim no MinGW tsis tau txais kev txhawb nqa los ntawm nom tswv. Lwm txoj hauv kev rau Cygwin yog los nruab ib qho chaw virtual, xws li VMware Server, qhov chaw koj tuaj yeem nruab Linux.
2.5 Qhov (socket) programming
Cov piv txwv hauv cov lus qhia no yuav siv cov peev xwm yooj yim ntawm Berkeley Sockets API. Yog tias koj tshiab rau sockets, peb xav kom koj paub koj tus kheej nrog API thiab qee qhov kev siv feem ntau. Yog xav paub txog kev sau socket programming, TCP/IP Peb pom zoo kom siv: "TCP/IP Cov qhov (sockets) hauv C, Donahoo thiab Calvert.
Muaj ib lub vev xaib txuas uas muaj cov piv txwv hauv phau ntawv, uas koj tuaj yeem pom ntawm:
.
Yog tias koj nkag siab thawj plaub tshooj ntawm phau ntawv (lossis rau cov neeg uas tsis muaj kev nkag mus rau ib daim ntawv theej ntawm phau ntawv, cov echo cov neeg siv khoom thiab cov servers qhia hauv lub vev xaib txuas saum toj no), qhov no yuav txaus kom nkag siab cov lus qhia. Muaj ib phau ntawv zoo sib xws
"Multicast Sockets, Multicast Sockets", Makofske thiab Almeroth.
Nws npog cov ntaub ntawv uas koj xav tau yog tias koj kawm cov piv txwv multicast hauv kev faib khoom.
Txuas ntxiv:
Tau qhov twg los: www.hab.com
