ns-3 netweke simulator tutorial. Khaolo ea 4

ns-3 netweke simulator tutorial. Khaolo ea 4
khaolo ea 1,2
khaolo ea 3

4 Kakaretso ea mohopolo
4.1 Likhutšoane tsa bohlokoa
4.1.1 Node
4.1.2 Tšebeliso
4.1.3 Channel
4.1.4 Sesebelisoa sa Marang-rang
4.1.5 Bathusi ba thuto-kholo
4.2 Mongolo oa pele oa ns-3
4.2.1 Boilerplate khoutu
4.2.2 Li-plug-ins
4.2.3 ns3 sebaka sa mabitso
4.2.4 Ho rema lifate
4.2.5 Mosebetsi o ka sehloohong
4.2.6 Ho sebelisa bathusi ba topology
4.2.7 Ho Sebelisa Application
4.2.8 Simulator
4.2.9 Ho aha mongolo oa hau
4.3 ns-3 khoutu ea mohloli

Khaolo ea 4

Kakaretso ea mohopolo

Ntho ea pele eo re lokelang ho e etsa pele re qala ho ithuta kapa ho ngola khoutu ea ns-3 ke ho hlalosa lintlha tse seng kae tsa motheo le tse ka thōko ho tsamaiso. Boholo ba sena bo ka bonahala bo hlakile ho ba bang, empa re khothaletsa ho ipha nako ea ho bala karolo ena ho netefatsa hore u qala motheong o tiileng.

4.1 Likhutšoane tsa bohlokoa

Karolong ena, re tla sheba mantsoe a mang a sebelisoang haholo tepong empa a na le moelelo o itseng ho ns-3.

4.1.1 Node

Ho jargon ea Inthanete, sesebelisoa sa k’homphieutha se hokelang marang-rang se bitsoa host host kapa ka linako tse ling mokhoa oa ho qetela. Hobane ns-3 ke simulator ea marang-rang eseng sebapali sa Marang-rang, ka boomo ha re sebelise lentsoe moamoheli, kaha sena se amana haufi-ufi le Marang-rang le liprothokholo tsa ona. Ho e-na le hoo, re sebelisa lentsoe le akaretsang, le sebelisoang ke li-simulator tse ling, le hlahang khopolong ea graph: node (node).

Ho ns-3, karolo e ka tlase ea sesebelisoa sa komporo e bitsoa node. Tlhaloso ena e emeloa ho C ++ ke sehlopha sa Node. Sehlopha NodeNode (node) e fana ka mekhoa ea ho qhekella lipontšo tsa lisebelisoa tsa komporo ka lipapiso.

O lokela ho utlwisisa noute joalo ka komporo eo u eketsang tšebetso ho eona. U tla eketsa lintho tse kang lits'ebetso, li-protocol stacks, le likarete tsa peripheral tse nang le li-driver tse lumellang komporo ho etsa mosebetsi o molemo. Re sebelisa mohlala o tšoanang oa motheo ho ns-3.

4.1.2 Tšebeliso

Ka kakaretso, software ea k'homphieutha e arotsoe ka lihlopha tse peli tse pharaletseng. Software ea sistimi e hlophisa lisebelisoa tse fapaneng tsa komporo joalo ka memori, processor cycles, disk, netweke, joalo-joalo ho latela mofuta o mong oa komporo. Hangata software ea sistimi ha e sebelise lisebelisoa tsena ho etsa mesebetsi e thusang mosebelisi ka kotloloho. Hangata mosebelisi o sebelisa sesebelisoa ho fihlela sepheo se itseng, se fumanang le ho sebelisa lisebelisoa tse laoloang ke software ea sistimi.

Hangata moeli oa karohano lipakeng tsa sistimi le software ea kopo o huleloa maemong a tokelo liphetoho tse etsahalang marabeng a sistimi ea ts'ebetso. ns-3 ha e na mohopolo oa 'nete oa sistimi e sebetsang ka hona ha e na mohopolo oa maemo a litokelo kapa mehala ea sistimi. Leha ho le joalo, re na le mohopolo oa app. Joalo ka ha "lefats'e la 'nete" lits'ebetso tsa software li sebetsa likhomphutha ho etsa mesebetsi, lits'ebetso tsa ns-3 li sebetsa ho ns-3 node ho laola lipapiso lefatšeng le etsitsoeng.

Ho ns-3, tlhaloso ea motheo bakeng sa lenaneo la mosebedisi le hlahisang mosebetsi o itseng oa ho etsa mohlala ke ts'ebeliso. Tlhaloso ena e emeloa ho C++ ke sehlopha sa Kopo. Sehlopha sa Likopo se fana ka mekhoa ea ho laola maikutlo a mofuta oa rona oa ts'ebeliso ea lits'ebetso ka lipapiso. Basebelisi ba lebelletsoe ho ikhethela sehlopha sa Kopo ka mokhoa o ikhethileng oa ho etsa lits'ebetso tse ncha. Thutong ena, re tla sebelisa litsebo tsa sehlopha sa Kopo se bitsoang UdpEchoClientApplication и UdpEchoServerApplication. Joalo ka ha u ka lebella, lits'ebetso tsena li etsa sehlopha sa lits'ebetso tsa bareki / seva tse sebelisetsoang ho hlahisa le ho etsa lipakete tsa marang-rang.

4.1.3 Channel

Lefatšeng la 'nete, u ka hokahanya khomphuta ho marang-rang. Hangata mecha ea litaba eo data e fetisoang ka eona marang-rang ana e bitsoa likanale. Ha o hokela thapo ea Ethernet leboteng, o hokela komporo ea hau lehokelong la Ethernet. Lefatšeng le etsisitsoeng la ns-3, node e hokahane le ntho e emelang mocha oa puisano. Mona, tlhaloso ea motheo ea subnetwork ea puisano e bitsoa mocha 'me e emeloa ho C ++ ke sehlopha sa Channel.

Sehlopha ChannelChannel e fana ka mekhoa ea ho laola tšebelisano ea lintho tsa subnet le ho hokahanya mabotho ho tsona. Mananeo a ka boela a khethoa ke batho ba ntlafatsang ka mokhoa o shebaneng le ntho e itseng. Tsebo ea kanale e ka etsa mohlala oa ntho e bonolo joalo ka terata. Seteishene se inehetseng se ka boela sa etsa mohlala oa lintho tse rarahaneng joalo ka switch e kholo ea Ethernet kapa sebaka sa mahlakore a mararo se tletseng litšitiso tabeng ea marang-rang a se nang mohala.

Re tla sebelisa mefuta e ikhethileng ea kanale thutong ena e bitsoang CsmaChannelCsmaChannel, PointToPointChannelPointToPointChannel и WifiChannelWifiChannel. CsmaChannel, mohlala, e etsa mohlala oa karoloana ea likhokahano e sebelisang tikoloho ea likhokahanyo tse ngata tsa ho fihlella sephethephethe. Sena se re fa ts'ebetso e ts'oanang le Ethernet.

4.1.4 Sesebelisoa sa Marang-rang

E ne e kile ea e-ba hore haeba u batla ho hokahanya k'homphieutha le marang-rang, u tlameha ho reka mohala o itseng oa marang-rang le sesebelisoa sa hardware se bitsoang (ka PC terminology) karete ea peripheral e lokelang ho kenngoa khomphuteng. Haeba karete ea peripheral e sebelisa mesebetsi e meng ea marang-rang, e ne e bitsoa likarete tsa marang-rang kapa likarete tsa marang-rang. Kajeno, lik'homphieutha tse ngata li tla le lisebelisoa tse kopantsoeng tsa marang-rang 'me ha li bonoe ke basebelisi e le lisebelisoa tse arohaneng.

Karete ea marang-rang e ke ke ea sebetsa ntle le mokhanni oa software ea laolang hardware ea eona. Ho Unix (kapa Linux), sengoathoana sa lisebelisoa tsa peripheral se khetholloa e le sesebelisoa. Lisebelisoa li laoloa ka ho sebelisa likhanni tsa lisebelisoa, 'me lisebelisoa tsa marang-rang (NICs) li laoloa ka ho sebelisa lisebelisoa tsa marang-rang (bakhanni ba lisebelisoa tsa marang-rang) 'me ka kakaretso li bitsoa lisebelisoa tsa marang-rang (lisebelisoa tsa marang-rang). Ho Unix le Linux, u bua ka lisebelisoa tsa marang-rang ka mabitso a kang eth0.

Ho ns-3, ho tlosoa ha sesebelisoa sa marang-rang ho koahela mokhanni oa software le hardware e etsoang. Papisong, sesebelisoa sa marang-rang se "kentsoe" ka node ho se lumella ho buisana le li-node tse ling ka likanale. Joalo ka komporo ea 'nete, node e ka hokahanngoa le liteishene tse ngata ka lisebelisoa tse ngata NetDevices.

Tlhaloso ea marang-rang ea sesebelisoa e emeloa ho C ++ ke sehlopha NetDevice. Sehlopha NetDevice e fana ka mekhoa ea ho laola likhokahano ho lintho tsa Node le Channel; mme e ka kgetheha ke bahlahisi ka moelelo wa mananeo a sekametseng nthong. Thutong ena re tla sebelisa mefuta e mengata e ikhethileng ea NetDevice e bitsoang CsmaNetDevice, PointToPointNetDevice и WifiNetDevice. Joalo ka ha adaptara ea marang-rang ea Ethernet e etselitsoe ho sebetsa le marang-rang Ethernet, CsmaNetDevice e etselitsoeng ho sebetsa le CsmaChannel, PointToPointNetDevice e etselitsoeng ho sebetsa le PointToPointChannelle WifiNetDevice - e etselitsoe ho sebetsa le eona WifiChannel.

4.1.5 Bathusi ba thuto-kholo

Marang-rang a 'nete, u tla fumana likhomphutha tse amohelang tse nang le likarete tsa marang-rang tse kentsoeng (kapa tse hahiloeng). Ho ns-3 re ka re u tla bona li-node tse nang le NetDevices tse khomaretsoeng. Khokahanong e kholo e etsisitsoeng, o tla hloka ho hlophisa likhokahano lipakeng tsa lintho tse ngata noute, NetDevice и Channel.

Ho tloha ha o hokahanya NetDevices ho li-node, NetDevices ho lihokela, ho abela liaterese tsa IP, joalo-joalo. ho ns-3 ke mosebetsi o tloaelehileng, ho etsa hore sena se be bonolo ka hohle kamoo ho ka khonehang re fana ka seo ho thoeng ke bathusi ba topology. Mohlala, ho theha NetDevice, o hloka ho etsa ts'ebetso e ngata ea ns-3 kernel, eketsa aterese ea MAC, kenya sesebelisoa sa marang-rang ho Node, lokisa stack ea protocol ea node, ebe o hokela NetDevice ho Channel. Ho tla hlokahala mosebetsi o mongata ho hokahanya lisebelisoa tse ngata ho lihokelo tse ngata ebe o hokela marang-rang a motho ka mong ho netweke ea Internetworks. Re fana ka lintho tse thusang tsa topology tse kopanyang ts'ebetso ena e mengata hore e be mohlala o bonolo ho o sebelisa molemong oa hau.

4.2 Mongolo oa pele oa ns-3

Haeba u kentse sistimi joalo ka ha ho khothalelitsoe kaholimo, u tla ba le tokollo ea ns-3 bukeng e bitsoang repos bukeng ea hau ea lapeng. Eya ho directory ho lokolloa

Haeba ha u na bukana e joalo, ho bolela hore ha ua hlakisa bukana ea tlhahiso ha u theha mofuta oa tokollo oa ns-3, haha ​​​​joalo ka:
$ ./waf configure -build-profile=release -out=build/lokolla,
$ ./waf haha

moo o lokela ho bona sebopeho sa directory se ts'oanang le se latelang:

AUTHORS       examples      scratch       utils       waf.bat*
bindings      LICENSE       src           utils.py    waf-tools
build         ns3           test.py*      utils.pyc   wscript
CHANGES.html  README        testpy-output VERSION     wutils.py
doc           RELEASE_NOTES testpy.supp   waf*        wutils.pyc

Eya ho directory mehlala/thupelo. U lokela ho bona faele e fumanehang moo e bitsoang pele.cc. Ona ke mongolo o tla theha khokahano e bonolo ea ntlha-to-point lipakeng tsa li-node tse peli le ho fetisa pakete e le 'ngoe lipakeng tsa li-node. Ha re shebeng mongolo ona ka mola; ho etsa sena, bula pele.cc ho mohlophisi oa hau oo u o ratang.

4.2.1 Boilerplate khoutu
Mohala oa pele faeleng ke mola oa mokhoa oa mohlophisi emacs. E bolella emacs ka mekhoa ea ho fometa (mokhoa oa likhoutu) oo re o sebelisang khoutung ea rona ea mohloli.

/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */

Taba ena e lula e le taba e tsosang khang, kahoo re tlameha ho lokisa litaba hore e tlosoe tseleng hang-hang. Morero oa ns-3, joalo ka merero e mengata e meholo, o amohetse mokhoa oa ho khouta oo likhoutu tsohle tse tlatselitsoeng li tlamehang ho o latela. Haeba u batla ho kenya letsoho ka khoutu ea hau morerong, qetellong u tla tlameha ho ikamahanya le maemo a khouto a ns-3, joalo ka ha a hlalositsoe faeleng. doc/codingstd.txt kapa e bonts'itsoe leqepheng la projeke: https://www.nsnam.org/develop/contributing-code/coding-style/.

Re khothaletsa hore o tloaelane le chebahalo le maikutlo a ns-3 khoutu mme o sebelise mokhoa ona neng kapa neng ha o sebetsa ka khoutu ea rona. Sehlopha sohle sa nts'etsopele le batšehetsi ba ile ba lumellana le sena kamora ho korotla. Mohala oa emacs o kaholimo o etsa hore ho be bonolo ho fomata ka nepo haeba o sebelisa mohlophisi oa emacs.

NS-3 simulator e fuoa tumello ea ho sebelisoa GNU General Public License. U tla bona sehlooho se nepahetseng sa molao sa GNU faeleng e 'ngoe le e 'ngoe ea kabo ea ns-3. Hangata u tla bona tsebiso ea litokelo tsa molao bakeng sa se seng sa litsi tse nkang karolo morerong oa ns-3 ka holimo ho mongolo oa GPL le sengoli, tse bontšitsoeng ka tlase.

/* 
* This program is free software; you can redistribute it and/or modify 
* it under the terms of the GNU General Public License version 2 as 
* published by the Free Software Foundation; 
*
* This program is distributed in the hope that it will be useful, 
* but WITHOUT ANY WARRANTY; without even the implied warranty of 
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 
* GNU General Public License for more details. 
* 
* You should have received a copy of the GNU General Public License 
* along with this program; if not, write to the Free Software 
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 
*/

4.2.2 Li-plug-ins

Khoutu ka boeona e qala ka letoto la lipolelo tsa kenyelletso (kenyeletsa).

#include "ns3/core-module.h"
#include "ns3/network-module.h"
#include "ns3/internet-module.h"
#include "ns3/point-to-point-module.h"
#include "ns3/applications-module.h"

Ho thusa basebelisi ba rona ba boemo bo holimo ba ho ngola ho sebetsana ka katleho le palo e kholo ea lifaele tsa lihlooho tse teng tsamaisong, re li arola ho latela ts'ebeliso ea tsona ho li-module tse kholo. Re fana ka faele e le 'ngoe ea hlooho e tla kenya lifaele tsohle tsa lihlooho tse sebelisoang mojuleng o fanoeng. Sebakeng sa ho tlameha ho batla hantle hore na o hloka hlooho efe mme mohlomong u fumane lethathamo le nepahetseng la litšepeho, re u fa bokhoni ba ho khoasolla sehlopha sa lifaele ka granularity e kholo. Ha se mokhoa o sebetsang ka ho fetisisa, empa ka sebele o etsa hore ho ngola mangolo ho be bonolo haholo.

E 'ngoe le e' ngoe ea ns-3 e kenyelletsa lifaele e behiloe bukeng e bitsoang ns3 (aha subdirectory) ho qoba likhohlano tsa mabitso a faele nakong ea ts'ebetso ea kaho. Faele ns3/core-module.h e lumellana le ns-3 module, eo u tla e fumana bukeng src/core tokollong eo o e kentseng. Lethathamong la bukana ena u tla fumana palo e kholo ea lifaele tsa lihlooho. Ha u etsa kopano, Waf e beha lifaele tsa lihlooho tsa sechaba bukeng ea ns3 bukeng e nyane haha/hlakola

Haeba ha u na bukana e joalo, ho bolela hore ha ua hlakisa bukana ea tlhahiso ha u theha mofuta oa tokollo oa ns-3, haha ​​​​joalo ka:
$ ./waf lokisa --build-profile=debug --out=build/debug
$ ./waf haha
kapa
$ ./waf lokisa --build-profile=optimized --out=build/optimized
$ ./waf haha

kapa haha/ ntlafala, ho ipapisitse le tlhophiso ea hau. Waf e tla boela e hlahise mojule o kenyelletsa faele ho kenya lifaele tsohle tsa lihlooho tsa sechaba. Kaha ehlile u latela tataiso ena ka bolumeli, u se u entse joalo

$ ./waf -d debug --enable-examples --enable-tests configure

ho lokisa morero hore o tsamaise meaho ea debug e kenyelletsang mehlala le liteko. Le uena u entse joalo

$ ./waf

ho kopanya morero. Kahoo joale ha u sheba bukeng ../../build/debug/ns3, joale moo u tla fumana, har'a tse ling, lifaele tsa lihlooho tsa li-module tse 'nè tse bontšitsoeng ka holimo. U ka sheba litaba tsa lifaele tsena 'me u fumane hore li kenyelletsa lifaele tsohle tsa sechaba tse sebelisoang ke li-module tse lumellanang.

4.2.3 ns3 sebaka sa mabitso

Mola o latelang ho script pele.cc ke phatlalatso ea sebaka sa mabitso.

using namespace ns3;

Morero oa ns-3 o kengoa tšebetsong sebakeng sa mabitso sa C++ se bitsoang ns3. Sena se kopanya liphatlalatso tsohle tse amanang le ns-3 sebakeng se kantle ho sebaka sa mabitso sa lefats'e, seo ka tšepo se tla thusa ho hokahanngoa le khoutu e ngoe. Ho sebelisa C++ opareitara ho hlahisa sebaka sa mabitso sa ns-3 sebakeng sa phatlalatso sa hajoale (lefats'e). Ona ke mokhoa o majabajaba oa ho bolela hore ka mor'a phatlalatso ena, ha ho hlokahale hore u thaepe ns3::opereishene ea tumello ea scope pele ho khoutu eohle ea hau ea ns-3 ho e sebelisa. Haeba u sa tloaelane le libaka tsa mabitso, sheba hoo e batlang e le buka efe kapa efe ea C++ 'me u bapise sebaka sa mabitso sa ns3 u sebelisa std namespace le declaration. using namespace std; mehlaleng ya ho sebetsa le mosebeletsi wa sephetho theko le melapo.

4.2.4 Ho rema lifate

Mola o latelang oa script ke,

NS_LOG_COMPONENT_DEFINE ("FirstScriptExample");

Re tla sebelisa polelo ena e le sebaka se loketseng ho buisana ka tsamaiso ea rona ea litokomane Oksijene. Ha u sheba webosaete ea morero oa ns-3, u tla fumana sehokelo sa Litokomane sebakeng sa ho sesa. Haeba u tobetsa sehokelo sena u tla isoa leqepheng la rona la litokomane. Ho na le sehokelo sa "Tokollo ea Haufinyane" se tla u isa litokomaneng tsa mofuta oa morao-rao o tsitsitseng oa ns-3. Haeba u khetha sehokelo sa "API Documentation", u tla isoa leqepheng la litokomane tsa ns-3 API.

Ka lehlakoreng le letšehali la leqephe u tla fumana setšoantšo sa setšoantšo sa sebopeho sa litokomane. Sebaka se setle sa ho qala ke "buka" ea Modules ns-3 sefateng sa ho tsamaea sa ns-3. Ha o senola dimmojule, u tla bona lethathamo la litokomane tsa ns-3 modules. Joalokaha ho boletsoe ka holimo, mohopolo oa module mona o amana ka kotloloho le lifaele tse kenyellelitsoeng mojuleng o kaholimo. Tsamaiso e nyane ea ho rema lifate ea ns-3 e tšohloa karolong Ho Sebelisa Mojule oa ho Logging, kahoo re tla khutlela ho eona hamorao thutong ena, empa u ka ithuta ka polelo e ka holimo ka ho sheba mojule. konokonoebe o bula buka Lisebelisoa tsa ho rarolla mathataebe o khetha leqephe Ho kena lipalaneng. Tobetsa ho Ho kena lipalaneng.

Hona joale o lokela ho hlahloba litokomane Oksijene bakeng sa mojule Ho kena lipalaneng. Lethathamong la li-macro tse kaholimo ho leqephe, u tla bona keno ea NS_LOG_COMPONENT_DEFINE. Pele o tobetsa sehokelo, etsa bonnete ba hore o sheba "Tlhaloso e Felletseng" ea mojule oa ngoliso ho utloisisa hore na e sebetsa joang ka kakaretso. Ho etsa sena o ka tsamaisetsa tlase kapa khetha "More ..." ka tlase ho chate.

Ha u se u e-na le mohopolo o akaretsang oa se etsahalang, tsoela pele 'me u shebe litokomane tsa NS_LOG_COMPONENT_DEFINE e khethehileng. Nke ke ka qopitsa litokomane mona, empa ho akaretsa, mohala ona o phatlalatsa karolo ea ngoliso e bitsoang. FirstScriptExample, e u lumellang ho nolofalletsa kapa ho tima ho rengoa ha melaetsa ea console ka ho bua ka lebitso.

4.2.5 Mosebetsi o ka sehloohong

Meleng e latelang ea script u tla e bona,

int 
main (int argc, char *argv[])
{ 

Ena ke phatlalatso ea mosebetsi oa mantlha oa lenaneo la hau (script). Joalo ka lenaneo lefe kapa lefe la C ++, o hloka ho hlalosa ts'ebetso ea mantlha, sena se etsoa pele. Ha ho letho le ikhethang mona. Sengoliloeng sa hau sa ns-3 ke lenaneo la C++ feela. Mohala o latelang o beha qeto ea nako ho 1 nanosecond, e leng ea kamehla:

Time::SetResolution (Time::NS);

Qeto ea nako, kapa qeto e bonolo feela, ke boleng bo bonyenyane ka ho fetisisa ba nako bo ka sebelisoang (phapang e nyane ka ho fetesisa e ka hlahang lipakeng tsa makhetlo a mabeli). U ka fetola qeto hantle hang. Mochine o fanang ka phetoho ena o ja mohopolo, kahoo hang ha qeto e behiloe ka ho hlaka, re lokolla mohopolo, ho thibela lintlafatso tse ling. (Haeba u sa behe qeto ka ho hlaka, e tla lula e le nanosecond e le 'ngoe ebe memori e tla lokolloa ha papiso e qala.)

Mela e 'meli e latelang ea script e sebelisoa ho nolofalletsa likarolo tse peli tsa ho rema lifate tse hahelletsoeng lits'ebetsong EchoClient и EchoServer:

LogComponentEnable("UdpEchoClientApplication", LOG_LEVEL_INFO); LogComponentEnable("UdpEchoServerApplication", LOG_LEVEL_INFO);

Haeba u bala litokomane tsa karolo ea Ho Rema lifate, u tla bona hore ho na le mekhahlelo e mengata ea ho rema lifate / granularity eo u ka e lumellang karolong ka 'ngoe. Melao ena e 'meli ea khoutu e nolofalletsa ho rema lifate ho isa boemong ba INFO bakeng sa bareki ba echo le li-server. Boemong bona, ts'ebeliso e tla hatisa melaetsa ha e ntse e romella le ho amohela lipakete nakong ea papiso.

Joale re tla theohela khoebong ea ho theha topology le ho tsamaisa papiso. Re sebelisa lintho tse thusang tsa topology ho etsa hore mosebetsi ona o be bonolo kamoo ho ka khonehang.

4.2.6 Ho sebelisa bathusi ba topology

Mela e 'meli e latelang ea khoutu ho script ea rona e tla etsa lintho tsa Node ns-3 tse tla emela lik'homphieutha ka papiso.

NodeContainer nodes;
nodes.Create (2);

Pele re tsoela pele, a re fumaneng litokomane tsa sehlopha NodeContainer. Tsela e 'ngoe ea ho fumana litokomane tsa sehlopha se fanoeng ke ka tab litlelase maqepheng Oksijene. Haeba u se u ntse u e-na le Doxygen e butsoeng, tsamaisa feela ho ea holimo ho leqephe ebe u khetha Taba ea Lihlopha. U lokela ho bona sete e ncha ea li-tab, e 'ngoe ea tsona e leng lethathamo la lihlopha. Tlas'a tab ena u tla bona lethathamo la lihlopha tsohle tsa ns-3. Tsamaisetsa tlase ho ns3::NodeContainer. Ha u fumana sehlopha, se khethe ho ea litokomaneng tsa sehlopha.

Joalo ka ha re hopola, e 'ngoe ea lintlha tsa rona tsa bohlokoa ke node. E emela komporo eo re tla kenya lintho ho eona joalo ka li-protocol stacks, applications, le likarete tsa peripheral. Mothusi oa Topology NodeContainer e fana ka mokhoa o bonolo oa ho bopa, ho laola le ho fihlella lintho life kapa life noute, eo re e bōpang ho tsamaisa papiso. Mola oa pele o ka holimo o bolela feela NodeContainer, tseo re li bitsang nodes. Mohala oa bobeli o bitsa Theha mokhoa holim'a ntho ea li-node mme o kopa setshelo ho etsa li-node tse peli. Joalokaha ho hlalositsoe ho Oksijene, setshelo se kopa sistimi ea ns-3 ho etsa lintho tse peli noute le ho boloka litsupa tsa lintho tsena ka hare.

Li-node tse entsoeng ka har'a script ha li etse letho. Mohato o latelang oa ho haha ​​​​topology ke ho hokahanya li-node tsa rona ho marang-rang. Mokhoa o bonolo ka ho fetisisa oa marang-rang oo re o tšehetsang ke khokahanyo ea ntlha-to-point pakeng tsa li-node tse peli. Joale re tla theha khokahano e joalo.

PointToPointHelper

Re theha khokahanyo ea ntlha-to-point ka ho sebelisa mokhoa o tloaelehileng, ho sebelisa ntho e thusang ea topology ho etsa mosebetsi o tlaase o hlokahalang bakeng sa ho hokahanya. Hopola hore likarolo tsa rona tse peli tsa bohlokoa NetDevice и Channel. Lefatšeng la 'nete, mantsoe ana a batla a lumellana le likarete tsa peripheral le likhoele tsa marang-rang. Ka tloaelo, lintho tsena tse peli li amana haufi-ufi, 'me ha ho motho ea ka itšetlehang ka ho arolelana, mohlala, lisebelisoa Ethernet holim'a kanale e se nang mohala. Bathusi ba rona ba topology ba latela kamano ena e haufi mme ka hona o tla sebelisa ntho e le 'ngoe boemong bona PointToPointHelper bakeng sa ho theha le ho hokahanya lintho tsa ns-3 PointToPointNetDevice и PointToPointChannel. Mela e meraro e latelang sengolong:

PointToPointHelper pointToPoint;
pointToPoint.SetDeviceAttribute ("DataRate", StringValue ("5Mbps")); 
pointToPoint.SetChannelAttribute ("Delay", StringValue ("2ms"));

Mohala oa pele,

PointToPointHelper pointToPoint;

e bopa mohlala wa ntho hodima stack PointToPointHelper. Ho tloha boemong bo holimo ba pono mola o latelang,

pointToPoint.SetDeviceAttribute ("DataRate", StringValue ("5Mbps"));

e bolella ntho PointToPointHelper sebelisa boleng "5 Mbit/s" (megabits tse hlano ka motsotsoana) e le "DataRate".

Ho ea ka pono e tobileng haholoanyane, khoele "DataRate" e lumellana le seo re se bitsang tšobotsi PointToPointNetDevice. Haeba u sheba Oksijene bakeng sa sehlopha ns3::PointToPointNetDevice le litokomaneng tsa mokhoa GetTypeId u tla fumana lethathamo la litšobotsi tse hlalosoang bakeng sa sesebediswa. Har'a tsona ho tla ba le tšobotsi "DataRate" Boholo ba lintho tse bonahalang tsa ns-3 li na le manane a tšoanang a litšobotsi. Re sebelisa mokhoa ona ho theha papiso habonolo ntle le ho kopanya hape, joalo ka ha u tla bona karolong e latelang.

E tšoana le "DataRate" ho PointToPointNetDevice, u tla fumana tšobotsi ea "Delay" e amanang le PointToPointChannel. Mola oa ho qetela

pointToPoint.SetChannelAttribute ("Delay", StringValue ("2ms"));

e re PointToPointHelper sebelisa boleng "2 ms" (li-milliseconds tse peli) joalo ka boleng ba tieho ea phatlalatso bakeng sa sehokelo sa ntlha-to-point seo e se thehang hamorao.

NetDeviceContainer

Hajoale re na le script NodeContainer, e nang le li-node tse peli. Re na le PointToPointHelper, e lokiselitsoeng ho bopa dintho PointToPointNetDevices le ho li hokahanya u sebelisa ntho ea PointToPointChannel. Joalo ka ha re sebelisitse ntho ea mothusi oa NodeContainer topology ho theha li-node, re tla botsa PointToPointHelper etsa mosebetsi bakeng sa rona o amanang le pōpo, tlhophiso le ho kenya lisebelisoa tsa rona. Re hloka lethathamo la lintho tsohle tse entsoeng NetDevice, kahoo re sebelisa NetDeviceContainer ho di boloka ka tsela eo re neng re sebedisa ka yona NodeContainer ho boloka dinoko tseo re di entseng. Mela e 'meli e latelang ea khoutu,

NetDeviceContainer devices;
devices = pointToPoint.Install (nodes);

phethela sesebelisoa le ho seta mocha. Mohala oa pele o phatlalatsa setshelo sa sesebelisoa se boletsoeng ka holimo, 'me sa bobeli se etsa mosebetsi o ka sehloohong. Mokhoa kenya ntho PointToPointHelper ea amohela NodeContainer joalo ka parameter. Hare NetDeviceContainer bakeng sa node ka 'ngoe e teng NodeContainer e thehiloe (bakeng sa puisano ea ntlha-to-point ho tlameha ho ba le tse peli hantle tsa tsona) PointToPointNetDevice e entsoe le ho bolokoa ka har'a setshelo sa sesebelisoa. PointToPointChannel e bōpiloe 'me tse peli li khomaretsoe ho eona PointToPointNetDevices. Ka mor'a ho theha lintho, litšoaneleho li bolokoa ho PointToPointHelper, li sebelisetsoa ho qala litšobotsi tse lumellanang le lintho tse entsoeng.

Kamora ho letsa pointToPoint.Kenya (nodes) re tla ba le li-node tse peli, e 'ngoe le e' ngoe e na le sesebelisoa sa marang-rang sa ntlha-to-point se kentsoeng le sehokelo se le seng sa ntlha-to-point pakeng tsa bona. Lisebelisoa tsena ka bobeli li tla lokisetsoa ho fetisetsa data ka lebelo la megabits tse hlano motsotsoana ka ho lieha ha phetisetso ea li-milliseconds tse peli holim'a mocha.

InternetStackHelper

Hona joale re na le li-node le lisebelisoa tse hlophisitsoeng, empa li-node tsa rona ha li na li-protocol stacks tse kentsoeng. Mela e 'meli e latelang ea khoutu e tla hlokomela sena.

InternetStackHelper stack;
stack.Install (nodes);

InternetStackHelper - ke mothusi oa topology bakeng sa mekotla ea Marang-rang, e ts'oanang le PointToPointHelper bakeng sa lisebelisoa tsa marang-rang tsa ntlha-to-point. Mokhoa kenya e nka NodeContainer e le parameter. Ha e phethiloe, e tla kenya marang-rang a marang-rang (TCP, UDP, IP, joalo-joalo) sebakeng se seng le se seng sa setshelo.

IPv4AtereseHelper

Ebe re hloka ho amahanya lisebelisoa tsa rona le liaterese tsa IP. Re fana ka mothusi oa topology ho laola kabo ea aterese ea IP. API e le 'ngoe feela e bonahalang ho mosebedisi ke ho beha aterese ea IP ea motheo le netmask ho e sebelisa ha ho etsoa kabo ea aterese ea sebele (sena se etsoa ka tekanyo e tlaase ka hare ho mothusi). Mela e 'meli e latelang ea khoutu molemong oa rona oa mohlala pele.cc,

Ipv4AddressHelper address;
address.SetBase ("10.1.1.0", "255.255.255.0");

phatlalatsa ntho ea mothusi oa aterese 'me u e bolelle hore e lokela ho qala ho fana ka liaterese tsa IP ho tloha marang-rang 10.1.1.0, ho sebelisa bitmask 255.255.255.0 ho tseba. Ka nako e sa lekanyetsoang, liaterese tse fanoeng li tla qala ho e 'ngoe' me li eketsehe monotonically, kahoo aterese ea pele e fanoeng ho tloha setsing sena e tla ba 10.1.1.1, ebe 10.1.1.2, joalo-joalo. Ha e le hantle, boemong bo tlaase, tsamaiso ea ns-3 e hopola liaterese tsohle tsa IP tse fanoeng mme e hlahisa phoso e bolaeang haeba ka phoso u etsa boemo boo aterese e tšoanang e hlahisoang ka makhetlo a mabeli (ka tsela, phoso ena e thata ho e lokisa).

Mola o latelang oa khoutu,

Ipv4InterfaceContainer interfaces = address.Assign (devices);

e etsa mosebetsi oa 'nete oa aterese. Ho ns-3 re theha khokahano lipakeng tsa aterese ea IP le sesebelisoa se sebelisang ntho eo IPv4 Interface. Feela joalokaha ka linako tse ling re hloka lethathamo la lisebelisoa tsa marang-rang tse entsoeng ke mothusi bakeng sa tšebeliso ea morao-rao, ka linako tse ling re hloka lethathamo la lintho IPv4 Interface. IPv4InterfaceContainer e fana ka tshebetso ena.

Re thehile marang-rang a ntlha-to-point, a kentsoeng li-stacks le liaterese tsa IP. Hona joale re hloka lits'ebetso sebakeng se seng le se seng ho hlahisa sephethephethe.

4.2.7 Ho Sebelisa Application

E 'ngoe ea lintlha tse ka sehloohong tsa tsamaiso ea ns-3 ke kopo (kopo). Tabeng ena, re sebelisa mefuta e 'meli ea lihlopha tse peli kopo ns-3 bitsoa UdpEchoServerApplication и UdpEchoClientApplication. Joalo ka maemong a fetileng, re sebelisa lintho tse thusang ho hlophisa le ho laola lintho tsa motheo. Mona re sebelisa UdpEchoServerHelper и UdpEchoClientHelper lintho tse re nolofaletsang bophelo.

UdpEchoServerHelper

Mela e latelang ea khoutu bukeng ea rona ea mohlala ea pele ea cc e sebelisetsoa ho lokisa UDP echo server application ho e 'ngoe ea li-node tseo re li entseng pejana.

UdpEchoServerHelper echoServer (9);

ApplicationContainer serverApps = echoServer.Install (nodes.Get (1));
serverApps.Start (Seconds (1.0));
serverApps.Stop (Seconds (10.0));

Mothalo oa pele oa khoutu ho snippet e ka holimo oa theha UdpEchoServerHelper. Joalo ka tloaelo, sena ha se ts'ebeliso ka boeona, ke ntho e re thusang ho theha lits'ebetso tsa 'nete. E 'ngoe ea likopano tsa rona ke ho fetisetsa litšoaneleho tse hlokahalang ho moetsi oa ntho e thusang. Tabeng ena, mothusi a ke ke a etsa letho le molemo ntle le haeba a fuoa nomoro ea koung eo seva e tla mamela lipakete, nomoro ena e tlameha ho tsejoa hape ho mofani. Tabeng ena, re fetisetsa nomoro ea koung ho moetsi oa mothusi. Moetsi le eena o etsa joalo SetAttribute ka boleng bo fetisitsoeng. Hamorao, haeba u lakatsa, u ka sebelisa SetAttribute ho beha boleng bo fapaneng bakeng sa tšobotsi ea Port.

Joalo ka lintho tse ling tse ngata tse thusang, ntho UdpEchoServerHelper e na le mokhoa kenya. Ho sebelisa mokhoa ona ka katleho ho theha ts'ebeliso ea mantlha ea echo server mme e e tlama ho moamoheli. Hoa thahasellisa hore mokhoa kenya ea amohela NodeContainer joalo ka parameter joalo ka tse ling kenya mekhoa eo re e boneng.

Phetoho e hlakileng ea C ++ e sebetsang mona e nka sephetho sa mokhoa node.Fumana(1) (e khutlisetsang pointer e bohlale nthong ea node - Ptr ) mme o e sebelisa ho sehahi bakeng sa ntho e sa tsejoeng NodeContainereo ebe e fetisetsoa mokgoeng kenya. Haeba u sa khone ho tseba hore na ho C++ khoutu ea mofuta ofe ho tekenoa le ho etsoa, ​​sheba har'a liphetoho tse hlakileng.

Jwale re bona seo echoServer.Kenya mabapi le ho kenya kopo UdpEchoServerApplication ka fumanoa ka NodeContainereo re e sebelisang ho laola li-node tsa rona, node e nang le index 1. Mokhoa kenya e tla khutlisa sets'oants'o se nang le lisupa lits'ebetsong tsohle (tabeng ena e le 'ngoe, kaha re fetisitse motho ea sa tsejoeng NodeContainer, e nang le node e le 'ngoe) e entsoeng ke mothusi.

Lisebelisoa li hloka ho hlakisa hore na li qala ho hlahisa sephethephethe neng "qala" 'me e kanna ea hloka ho hlakisa nako ea ho e emisa "Ema". Re fana ka likhetho ka bobeli. Linako tsena li behiloe ho sebelisoa mekhoa Setshelo sa kopo Qala и Ema. Mekhoa ena e amohela liparamente tsa mofuta Time. Tabeng ena re sebelisa tatellano e hlakileng ea liphetoho tsa C ++ ho nka C++ habeli 1.0 ebe o e fetolela ho ntho ea tns-3 Nako e sebelisang ntho ea Seconds ho fetolela metsotsoana. Hopola hore melao ea ho sokoloha e ka laoloa ke mongoli oa mohlala, 'me C ++ e na le melao ea eona, kahoo u ke ke ua lula u itšetlehile ka litekanyo tse fetotsoeng ka tsela eo u neng u lebeletse ka eona. Mela e 'meli

serverApps.Start (Seconds (1.0));
serverApps.Stop (Seconds (10.0));

e tla etsa hore sesebelisoa sa seva sa echo se qale (bulela ka bohona) motsotsoana o le mong ka mor'a hore ketsiso e qale ebe e emisa (e tima) kamora metsotsoana e leshome ea papiso. Ka lebaka la hore re phatlalalitse ketsahalo ea papiso (ketsahalo ea ho emisa kopo), e tla etsoa ka metsotsoana e leshome, bonyane metsotsoana e leshome ea ts'ebetso ea marang-rang e tla etsoa.

UdpEchoClientHelper

Sesebelisoa sa Client Echo e hlophisitsoeng ka mokhoa o batlang o tšoana le seva. Ho na le ntho ea motheo UdpEchoClientApplication, e laoloang
UdpEchoClientHelper.

UdpEchoClientHelper echoClient (interfaces.GetAddress (1), 9);
echoClient.SetAttribute ("MaxPackets", UintegerValue (1));
echoClient.SetAttribute ("Interval", TimeValue (Seconds (1.0)));
echoClient.SetAttribute ("PacketSize", UintegerValue (1024));

ApplicationContainer clientApps = echoClient.Install (nodes.Get (0));
clientApps.Start (Seconds (2.0));
clientApps.Stop (Seconds (10.0));;

Leha ho le joalo, bakeng sa moreki oa echo re hloka ho beha litšobotsi tse hlano tse fapaneng. Litšobotsi tse peli tsa pele li behiloe nakong ea pōpo UdpEchoClientHelper. Re fetisa liparamente tse sebelisoang (ka hare ho mothusi) ho beha litšobotsi "RemoteAdress" и "RemotePort" ho latela tumellano ea rona ea ho fetisetsa litekanyo tse hlokahalang ho moetsi oa mothusi.

A re hopoleng hore re kile ra sebelisa IPv4InterfaceContainer ho latela liaterese tsa IP tseo re li abetseng lisebelisoa tsa rona. Sebopeho se se nang letho ka har'a setshelo sa li-interfaces se tla lumellana le aterese ea IP ea node e se nang letho ka har'a setshelo sa nodes. Sehokelo sa pele ka har'a setshelo sa li-interfaces se lumellana le aterese ea IP ea node ea pele ka har'a setshelo sa nodes. Kahoo, moleng oa pele oa khoutu (ka holimo), re theha mothusi mme re e bolella hore aterese e hole ea moreki e tla ba aterese ea IP e abetsoeng moamoheli moo seva e leng teng. Re boetse re re re lokisetse hore lipakete li romeloe boema-kepeng ba robong.

Sebopeho sa "MaxPackets" se bolella moreki palo e kholo ea lipakete tseo re ka li romellang nakong ea papiso. Sebopeho sa "Interval" se bolella moreki hore na o eme nako e kae lipakeng tsa lipakete, 'me tšobotsi ea "PacketSize" e bolella moreki hore na moputso oa pakete o lokela ho ba moholo hakae. Ka motsoako ona oa tšobotsi re bolella moreki hore a romelle pakete e le 'ngoe ea 1024-byte.

Joalo ka seva sa echo, re beha litšoaneleho tsa moreki oa echo Qala и Ema, empa mona re qala mofani ka motsotsoana ka mor'a hore seva se bulehe (metsotsoana e 'meli ka mor'a ho qala ha papiso).

4.2.8 Simulator

Mothating ona re hloka ho tsamaisa papiso. Sena se etsoa ho sebelisoa ts'ebetso ea lefats'e Moetsisi:: matha.

Simulator::Run ();

Ha re bitsa mekhoa pele,

serverApps.Start (Seconds (1.0));
serverApps.Stop (Seconds (10.0));
... 
clientApps.Start (Seconds (2.0));
clientApps.Stop (Seconds (10.0));

re hlile re hlophisitse liketsahalo ho simulator ka metsotsoana e 1,0, metsotsoana e 2,0, le liketsahalo tse peli ka metsotsoana e 10,0. Kamora mohala Moetsisi:: matha, sistimi e tla qala ho sheba lenane la liketsahalo tse reriloeng le ho li phetha. E tla qala ho chesa ketsahalo ka mor'a metsotsoana e 1,0, e tla qala ts'ebeliso ea seva ea echo (ketsahalo ena le eona e ka hlophisa liketsahalo tse ling tse ngata). E tla chesa ketsahalo e reriloeng ho t=2,0 metsotsoana e tla hlahisa kopo ea echo client. Hape, ketsahalo ena e kanna ea ba le liketsahalo tse ling tse ngata tse reriloeng. Ts'ebetso ea ketsahalo ea ho qala ho moreki oa echo e tla qala karolo ea phetisetso ea data ea papiso ka ho romella pakete ho seva.

Ketso ea ho romela sephutheloana ho seva e tla qala letoto la liketsahalo tse tla hlophisoa ka bo eona ka morao ho liketsahalo le tse tla kenya tšebetsong mechanics ea ho romella pakete ea echo ho latela li-parameter tsa nako tseo re li behileng sengolong.

Ka lebaka leo, kaha re romella pakete e le 'ngoe feela (hopola, tšobotsi MaxPackets e ne e behiloe ho e 'ngoe), letoto la liketsahalo tse qaliloeng ke ping ena ea moreki a le mong li tla fela 'me ketsiso e tla kena boemong ba standby. Hang ha sena se etsahala, liketsahalo tse setseng tse hlophisitsoeng e tla ba liketsahalo Ema bakeng sa seva le moreki. Ha liketsahalo tsena li etsoa, ​​​​ho ke ke ha e-ba le liketsahalo tse setseng bakeng sa ts'ebetso e tsoelang pele le Moetsisi:: matha e tla khutlisa taolo. Ketsiso e phethiloe.

Ho setseng ke ho itlhoekisa. Sena se etsoa ka ho letsetsa tšebetso ea lefatše lohle Simulator:: Senya. Hobane mesebetsi ea mothusi (kapa khoutu e tlaase ea ns-3) e ne e bitsoa, ​​e hlophisitsoeng e le hore lihakisi li kenngoe ka har'a simulator ho senya lintho tsohle tse bōpiloeng. Ho ne ho sa hlokahale hore u latele e 'ngoe ea lintho tsena ka bouena - sohle seo u neng u tlameha ho se etsa ke ho letsetsa Simulator:: Senya mme o tswe. Sistimi ea ns-3 e tla u etsetsa mosebetsi ona o boima. Methalo e setseng ea script ea rona ea pele ea ns-3, first.cc, etsa joalo feela:

Simulator::Destroy ();
return 0;
}

Simulator e tla emisa neng?

ns-3 ke simulator ea ketsahalo ea discrete (DE). Ho simulator e joalo, ketsahalo e 'ngoe le e' ngoe e amahanngoa le nako ea eona ea ts'ebetso, 'me papiso e tsoela pele ka ho sebetsana le liketsahalo ka tatellano eo li etsahalang ka eona ha papiso e ntse e tsoela pele. Liketsahalo li ka etsa hore liketsahalo tsa kamoso li hlophisoe (mohlala, sebala nako se ka itlhophisa ho qeta ho bala nakong e tlang).

Liketsahalo tsa pele hangata li qalisoa ke setheo, mohlala IPv6 e tla hlophisa ho sibolloa ha lits'ebeletso marang-rang, likopo tsa moahelani, jj. Sesebelisoa se hlophisa ketsahalo ea pele ea ho romella pakete, joalo-joalo. Ha ketsahalo e sebetsoa, ​​e ka hlahisa lefela, e le 'ngoe, kapa ho feta. Ha papiso e ntse e tsoela pele, liketsahalo li etsahala, ebang ke ho fela kapa ho hlahisa tse ncha. Papiso e tla ema ka bo eona haeba mokoloko oa ketsahalo o se na letho kapa ketsahalo e khethehileng e fumanoa Ema. Ketsahalo Ema e hlahisoang ke mosebetsi Moetsisi::Emisa (nako ea ho emisa).

Ho na le ketsahalo e tloaelehileng moo Simulator::Emisa ho hlokahala ho emisa ketsiso: ha ho na le liketsahalo tse iphelisang. Liketsahalo tse iphelisang (kapa tse pheta-phetoang) ke liketsahalo tse lulang li hlophisoa bocha. Ka lebaka leo, ba lula ba boloka letoto la liketsahalo le se na letho. Ho na le liprothokholo le li-module tse ngata tse nang le liketsahalo tse pheta-phetoang, mohlala:

• FlowMonitor - ho hlahloba nako le nako bakeng sa lipakete tse lahlehileng;

• RIPng – kgaso ya nako le nako ya diapdeite tsa ditafole;

• joalo-joalo.

Maemong a joalo Moetsisi::Emisa ho hlokahala ho emisa ketsiso ka nepo. Ntle le moo, ha ns-3 e le maemong a emulation, RealtimeSimulator e sebelisoa ho hokahanya oache ea papiso le oache ea mochini, le Moetsisi::Emisa ho hlokahala ho emisa ts'ebetso.

Mananeo a mangata a ketsiso a bukeng ha a letse Moetsisi::Emisa ka ho hlaka, kaha li fela ka botsona ha liketsahalo tse moleng li felile. Leha ho le joalo, mananeo ana a tla amohela Simulator::Emisa mohala. Mohlala, polelo e latelang ea lenaneo la mohlala oa pele e ka hlophisa ho emisa ka mokhoa o hlakileng ka metsotsoana e 11:

+ Simulator::Stop (Seconds (11.0));
  Simulator::Run ();
  Simulator::Destroy ();
  return 0;
}

Lintlha tse ka holimo li ke ke tsa fetola boitšoaro ba lenaneo lena, kaha papiso ena ka tlhaho e fela ka mor'a metsotsoana e 10. Empa haeba u ne u ka fetola nako ea ho emisa polelong e ka holimo ho tloha ho metsotsoana e 11 ho isa ho metsotsoana e 1, u ne u tla hlokomela hore ketsiso e emisa pele tlhahiso leha e le efe e fihla skrineng (kaha tlhahiso e etsahala ka mor'a metsotsoana e ka bang 2 ea nako ea papiso).

Ho bohlokoa ho letsetsa Simulator::Ema pele o letsetsa Simulator::Matha; ho seng joalo Simulator:: Ho matha ho kanna ha se ke ha khutlisa taolo lenaneong la mantlha ho etsa setopong!

4.2.9 Ho aha mongolo oa hau

Re entse hore ho etsa mangolo a hau a bonolo ho be bobebe. Seo u tlamehang ho se etsa feela ke ho kenya script ea hau bukeng ea ho qala 'me e tla hahoa ka bo eona haeba u matha Waf. Ha re lekeng. Khutlela bukeng ea boemo bo holimo 'me u kopitse mehlala/tutorial/first.cc ho lethathamong la libuka mengoapo

$ cd ../.. 
$ cp examples/tutorial/first.cc scratch/myfirst.cc

Joale theha mohlala oa hau oa pele o sebelisa waf:

$ ./waf

U lokela ho bona melaetsa e bontšang hore mohlala oa hau oa pele o entsoe ka katleho.

Waf: Entering directory `/home/craigdo/repos/ns-3-allinone/ns-3-dev/build'
[614/708] cxx: scratch/myfirst.cc -> build/debug/scratch/myfirst_3.o
[706/708] cxx_link: build/debug/scratch/myfirst_3.o -> build/debug/scratch/myfirst
Waf: Leaving directory `/home/craigdo/repos/ns-3-allinone/ns-3-dev/build'
'build' finished successfully (2.357s)

Joale o ka tsamaisa mohlala (hlokomela hore haeba u theha lenaneo la hau bukeng ea ho qala, u tlameha ho e tsamaisa ho tsoa. mengoapo):

$ ./waf --run scratch/myfirst

U lokela ho bona tlhahiso e tšoanang:

Waf: Entering directory `/home/craigdo/repos/ns-3-allinone/ns-3-dev/build'
Waf: Leaving directory `/home/craigdo/repos/ns-3-allinone/ns-3-dev/build'
'build' finished successfully (0.418s) Sent 1024 bytes to 10.1.1.2
Received 1024 bytes from 10.1.1.1
Received 1024 bytes from 10.1.1.2

Mona u ka bona hore sistimi ea kaho e netefatsa hore faele e hahiloe ebe e ea e tsamaisa. U bona karolo e kenang ho moreki oa echo e bonts'a hore e rometse pakete e le 'ngoe ea 1024-byte ho seva sa echo 10.1.1.2. Le uena u bona karolo ea ho rema lifate ho seva sa echo ho bolela hore e amohetse li-byte tse 1024 ho tloha 10.1.1.1. Seva ea echo e pheta sephutheloana ka khutso 'me u ka bona ho log ea moreki oa echo hore e amohetse pakete ea eona ho tsoa ho seva.

4.3 ns-3 khoutu ea mohloli

Kaha joale u se u sebelisitse bathusi ba ns-3, u ka sheba tse ling tsa khoutu ea mohloli e sebelisang ts'ebetso ena. Khoutu ea morao-rao e ka bonoa ho seva sa rona sa marang-rang sehokelong se latelang: https://gitlab.com/nsnam/ns-3-dev.git. Ha u le moo u tla bona leqephe la kakaretso la Mercurial bakeng sa sefate sa rona sa nts'etsopele ea ns-3. Kaholimo ho leqephe u tla bona lihokelo tse 'maloa,

summary | shortlog | changelog | graph | tags | files

Tsoela pele 'me u khethe lihokelo tsa lifaele. Sena ke seo boemo bo holimo ba boholo ba polokelo ea rona bo tla shebahala ka sona:

drwxr-xr-x                               [up]
drwxr-xr-x                               bindings python  files
drwxr-xr-x                               doc              files
drwxr-xr-x                               examples         files
drwxr-xr-x                               ns3              files
drwxr-xr-x                               scratch          files
drwxr-xr-x                               src              files
drwxr-xr-x                               utils            files
-rw-r--r-- 2009-07-01 12:47 +0200 560    .hgignore        file | revisions | annotate
-rw-r--r-- 2009-07-01 12:47 +0200 1886   .hgtags          file | revisions | annotate
-rw-r--r-- 2009-07-01 12:47 +0200 1276   AUTHORS          file | revisions | annotate
-rw-r--r-- 2009-07-01 12:47 +0200 30961  CHANGES.html     file | revisions | annotate
-rw-r--r-- 2009-07-01 12:47 +0200 17987  LICENSE          file | revisions | annotate
-rw-r--r-- 2009-07-01 12:47 +0200 3742   README           file | revisions | annotate
-rw-r--r-- 2009-07-01 12:47 +0200 16171  RELEASE_NOTES    file | revisions | annotate
-rw-r--r-- 2009-07-01 12:47 +0200 6      VERSION          file | revisions | annotate
-rwxr-xr-x 2009-07-01 12:47 +0200 88110  waf              file | revisions | annotate
-rwxr-xr-x 2009-07-01 12:47 +0200 28     waf.bat          file | revisions | annotate
-rw-r--r-- 2009-07-01 12:47 +0200 35395  wscript          file | revisions | annotate
-rw-r--r-- 2009-07-01 12:47 +0200 7673   wutils.py        file | revisions | annotate

Lingoliloeng tsa rona tsa mohlala li lethathamong mehlala. Haeba u tobetsa mehlala u tla bona lethathamo la subdirectories. E 'ngoe ea lifaele tse bukeng e nyane thupelo - pele.cc. Haeba u tobetsa pele.cc u tla bona khoutu eo u sa tsoa ithuta eona.

Khoutu ea mohloli e fumaneha haholo bukeng Src. U ka sheba khoutu ea mohloli ka ho tobetsa lebitsong la directory kapa ho tobetsa sehokelo sa lifaele ka letsohong le letona la lebitso la directory. Haeba u tobetsa src directory, u tla fumana lethathamo la li-subdirectories tsa src. Haeba o tobetsa ho subdirectory ea mantlha, o tla fumana lethathamo la lifaele. Faele ea pele eo u tla e bona (ka nako ea ho ngola tataiso ena) ke ntša mpa.h. Haeba u tobetsa sehokelo ntša mpa.h, o tla romelloa faeleng ea mohloli bakeng sa ntša mpa.h, e nang le li-macro tse molemo bakeng sa ho tsoa mangolong haeba maemo a sa tloaelehang a fumanoa. Khoutu ea mohloli bakeng sa bathusi bao re e sebelisitseng khaolong ena e ka fumanoa bukeng src/Applications/helper. Ikutloe u lokolohile ho pota-pota sefate sa directory ho fumana hore na ho hokae le ho utloisisa mokhoa oa mananeo a ns-3.

Source: www.habr.com

Eketsa ka tlhaloso