ns-3 network simulator tutorial. Chitsauko 4

ns-3 network simulator tutorial. Chitsauko 4
Chitsauko 1,2
chitsauko 3

4 Pfupiso yepfungwa
4.1 Mazano akakosha
4.1.1 Node
4.1.2 Kushandisa
4.1.3 Channel
4.1.4 Net Device
4.1.5 Topological vabatsiri
4.2 Chekutanga ns-3 chinyorwa
4.2.1 Boilerplate kodhi
4.2.2 Plug-ins
4.2.3 ns3 nzvimbo yezita
4.2.4 Kutema matanda
4.2.5 Basa guru
4.2.6 Kushandisa topology vabatsiri
4.2.7 Kushandisa Application
4.2.8 Simulator
4.2.9 Kuvaka chinyorwa chako
4.3 ns-3 Kunobva kodhi

Chitsauko 4

Concept overview

Chinhu chekutanga chatinofanira kuita tisati tatanga kudzidza kana kunyora ns-3 kodhi kutsanangura mashoma mashoma epfungwa uye abstractions muhurongwa. Zvakawanda zveizvi zvingaita sezviri pachena kune vamwe, asi tinokurudzira kutora nguva yekuverenga chikamu ichi kuti uve nechokwadi chekuti uri kutanga panheyo yakasimba.

4.1 Mazano akakosha

Muchikamu chino, tichatarisa mamwe mazwi anonyanya kushandiswa padandemutande asi ane zvaanoreva mu ns-3.

4.1.1 Node

Mumutauro weInternet, mudziyo wekombuta unobatanidza netiweki unonzi host kana dzimwe nguva end system. Nekuti ns-3 inetiweki simulator uye kwete yeInternet simulator, isu nemaune hatishandise izwi rekuti mugadziri, sezvo izvi zvine hukama neInternet uye mapuroteni ayo. Pane kudaro, isu tinoshandisa izwi rinowanzo shandiswa, rinoshandiswawo nemamwe masimulator, anobva mudzidziso yegirafu: node (node).

Mu ns-3, kubviswa kwepasi kwechigadzirwa chekombuta kunonzi node. Uku kubviswa kunomiririrwa muC ++ nekirasi yeNode. Kirasi NodeNode (node) inopa nzira dzekugadzirisa zvinomiririra zvemakomputa zvishandiso mukuenzanisa.

Unofanira kunzwisisa Node sekombuta yaunowedzera kushanda kwairi. Iwe uchawedzera zvinhu zvakaita semaapplication, maprotocol stacks, uye makadhi ekutenderera ane madhiraivha anobvumira komputa kuita basa rinobatsira. Isu tinoshandisa imwecheteyo yekutanga modhi mu ns-3.

4.1.2 Kushandisa

Kazhinji, komputa software yakakamurwa kuita makirasi maviri akafara. Sistimu yesoftware inoronga zviwanikwa zvekombuta zvakasiyana siyana sendangariro, processor cycles, disk, network, etc. zvichienderana neimwe computing model. Sistimu software kazhinji haishandise zviwanikwa izvi kuita mabasa anobatsira mushandisi zvakananga. Mushandisi anowanzo mhanyisa application kuti azadzise chinangwa chaicho, icho chinotora uye chinoshandisa zviwanikwa zvinodzorwa neiyo system software.

Kazhinji mutsara wekuparadzanisa pakati pesystem uye application software inodhonzwa pane ropafadzo level shanduko dzinoitika mukushandisa system misungo. ns-3 haina fungidziro chaiyo yeiyo inoshanda sisitimu uye saka hapana pfungwa yemhando yeropafadzo kana kufona system. Isu tine, zvisinei, tine zano rekushandisa. Sezvakangoita mu "nyika chaiyo" maapplication esoftware anomhanya pamakomputa kuita mabasa, ns-3 maapplication anomhanya pane ns-3 node kudzora mafanidzo munyika yakateedzerwa.

Mu ns-3, iyo yakakosha yekubvisa kune chirongwa chemushandisi chinoburitsa chimwe chiitiko chekuenzanisira ndeye application. Uku kubviswa kunomiririrwa muC ++ nekirasi yekushandisa. Kirasi yeChishandiso inopa nzira dzekunyengedza maonero eyedu-ye-level vhezheni yemashandisirwo mumienzaniso. Vagadziri vanotarisirwa hunyanzvi kirasi yeChishandiso mune yakanangana nechinhu chirongwa chekugadzirisa pfungwa kugadzira maapplication matsva. Muchidzidzo ichi, isu tichashandisa hunyanzvi hwekirasi yekushandisa inonzi UdpEchoClientApplication ΠΈ UdpEchoServerApplication. Sezvaungatarisira, izvi zvikumbiro zvinogadzira seti yemutengi / sevha application inoshandiswa kugadzira uye echo network mapaketi.

4.1.3 Channel

Munyika chaiyo, unogona kubatanidza komputa kune network. Kazhinji midhiya pamusoro peiyo data inofambiswa mumatiweki aya inonzi machaneli. Paunobaira tambo yeEthernet mudura repamadziro, unenge uchibatanidza komputa yako neEthernet link. Munyika yakaitwa ns-3, node yakabatana nechinhu chinomiririra nzira yekutaurirana. Pano, iyo yekutanga kubviswa kweiyo subnetwork yekutaurirana inonzi chiteshi uye inomiririrwa muC ++ neChannel kirasi.

Chikoro ChannelChannel inopa nzira dzekugadzirisa kupindirana kwezvinhu zve subnet uye kubatanidza node kwavari. Zviteshi zvinogona zvakare kuve nyanzvi nevagadziri mune yakatarisana-yakatarisana nehurongwa hwekuita. Channel specialization inogona kutevedzera chinhu chakareruka sewaya. Iyo yakazvipira chiteshi inogona zvakare kuenzanisira zvinhu zvakaoma senge hombe Ethernet switch kana matatu-dimensional nzvimbo izere nezvipingamupinyi mune isina waya network.

Tichange tichishandisa shanduro dzehunyanzvi dzechiteshi mune ino tutorial inonzi CsmaChannelCsmaChannel, PointToPointChannelPointToPointChannel ΠΈ WifiChannelWifiChannel. CsmaChannel, semuenzaniso, inoenzanisira shanduro ye subnet yekutaurirana iyo inoshandisa carrier-sense multiple access communications environment. Izvi zvinotipa Ethernet-yakafanana nekushanda.

4.1.4 Net Device

Zvaimboitika kuti kana waida kubatanidza komputa kune network, waifanira kutenga chaiyo network tambo uye mudziyo wehardware unonzi (muPC terminology) kadhi reparipheral raida kuiswa mukombuta. Kana kadhi remukati rakaita mamwe mabasa etiweki, ainzi network interface makadhi kana network makadhi. Nhasi, makomputa mazhinji anouya neyakasanganiswa network interface hardware uye haaonekwe nevashandisi semidziyo yakasiyana.

Kadhi retiweki harishande pasina mutyairi wesoftware anodzora Hardware yayo. MuUnix (kana Linux), chidimbu chemidziyo yemukati inoiswa semudziyo. Midziyo inogadziriswa uchishandisa madhiraivha emidziyo, uye network zvishandiso (NICs) inogadziriswa uchishandisa network madhiraivha.network mudziyo vatyairi) uye pamwe chete anonzi network network (net devices) MuUnix neLinux, iwe unoreva kunetiweki zvishandiso nemazita akadai eth0.

Mu ns-3, iyo network network abstraction inovhara zvese mutyairi wesoftware uye hardware iri kuenzanisirwa. Mukuenzanisa, mudziyo wetiweki "wakaiswa" mune node kuti uibvumire kutaurirana nemamwe manodhi kuburikidza nemachaneli. Kungofanana nekombuta chaiyo, node inogona kubatana kune akawanda chiteshi kuburikidza nemidziyo yakawanda NetDevices.

Iyo network abstraction yemudziyo inomiririrwa muC ++ nekirasi NetDevice. Kirasi NetDevice inopa nzira dzekugadzirisa zvinongedzo kune Node uye Channel zvinhu; uye inogona kuve yakasarudzika nevagadziri munzira yekumisikidza-yakatarisana nechirongwa. Muchidzidzo ichi tichashandisa akati wandei ehunyanzvi shanduro dzeNetDevice dzinodanwa CsmaNetDevice, PointToPointNetDevice ΠΈ WifiNetDevice. Kungofanana neEthernet network adapta yakagadzirirwa kushanda netiweki Ethernet, CsmaNetDevice yakagadzirirwa kushanda nayo CsmaChannel, PointToPointNetDevice yakagadzirirwa kushanda nayo PointToPointChanneluye WifiNetDevice - yakagadzirirwa kushanda nayo WifiChannel.

4.1.5 Topological vabatsiri

Mune network chaiyo, iwe unowana anotambira makomputa ane network makadhi akawedzerwa (kana akavakirwa-mukati). Mu ns-3 tingati iwe uchaona node dzine NetDevices dzakabatanidzwa. Mune yakakura simulated network, iwe unozofanirwa kuronga zvinongedzo pakati pezvinhu zvakawanda Node, NetDevice ΠΈ mugero.

Kubva kubatanidza NetDevices kune node, NetDevices kune zvinongedzo, kugovera IP kero, nezvimwe. mu ns-3 ibasa rinowanzoitwa, kuita kuti izvi zvive nyore sezvinobvira isu tinopa vanonzi topology vabatsiri. Semuenzaniso, kugadzira NetDevice, unofanirwa kuita akawanda ns-3 kernel mashandiro, wedzera kero yeMAC, isa network network muNode, gadzira iyo node's protocol stack, uye wozobatanidza NetDevice kuChannel. Zvakatowanda basa rinozodikanwa kubatanidza michina yakawanda kune multipoint link uye wozobatanidza iwo ega network mune yeInternetworks network. Isu tinopa topology mubatsiri zvinhu zvinosanganisa aya akawanda maoperation kuita iri nyore kushandisa modhi kuti zvikuitire nyore.

4.2 Chekutanga ns-3 chinyorwa

Kana iwe ukaisa iyo sisitimu sezvataurwa pamusoro, iwe unenge uine iyo ns-3 kuburitswa mune dhairekitori inonzi repos mune yako dhairekitori repamba. Enda kune dhairekitori kuregedzera

Kana iwe usina dhairekitori rakadaro, zvinoreva kuti hauna kutsanangura dhairekitori rekubuda paunenge uchivaka vhezheni yekuburitsa ns-3, gadzira seizvi:
$ ./waf gadzirisa -vaka-profile=release -out=kuvaka/kusunungura,
$ ./waf kuvaka

ipapo iwe unofanirwa kuona dhairekitori chimiro chakafanana neinotevera:

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

Enda kune dhairekitori mienzaniso/dzidziso. Iwe unofanirwa kuona faira iri ipapo inonzi first.cc. Ichi chinyorwa chinozogadzira hukama hwakareruka-kune-poinzi pakati pemanodhi maviri uye kutumira pakiti imwe pakati pemanodhi. Ngatitarisei iyi script mutsara nemutsara; kuti uite izvi, vhura chekutanga.cc mupepeti yako yaunofarira.

4.2.1 Boilerplate kodhi
Mutsara wekutanga mufaira ndiyo mutsara weeditor mode emacs. Inotaurira emacs nezve mafomati magungano (coding style) yatinoshandisa mune yedu sosi kodhi.

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

Iyi inogara iri nyaya ine gakava, saka isu tinofanirwa kurongedza rekodhi kuti ibve munzira ipapo ipapo. Iyo ns-3 purojekiti, semapurojekiti makuru mazhinji, yatora maitiro ekukodha ayo ese anopihwa kodhi anofanira kuenderana nawo. Kana iwe uchida kupa kodhi yako kupurojekiti, iwe unozopedzisira waenderana neiyo ns-3 coding standard, sezvakatsanangurwa mufaira. doc/codingstd.txt kana kuratidzwa pane peji rewebhu reprojekiti: https://www.nsnam.org/develop/contributing-code/coding-style/.

Isu tinokukurudzira kuti ujairane nekutaridzika uye kunzwa kwe ns-3 kodhi uye shandisa iyi chiyero pese paunoshanda nekodhi yedu. Boka rese rebudiriro nevabatsiri vakabvumirana nazvo mushure mekugunun'una. Iyo emacs modhi mutsetse uri pamusoro inoita kuti zvive nyore kufomatidza nemazvo kana uri kushandisa emacs mupepeti.

Iyo ns-3 simulator inobvumirwa kushandisa GNU General Public License. Iwe uchaona yakakodzera GNU yepamutemo musoro mune yega yega ns-3 yekugovera faira. Kazhinji unozoona chiziviso chekodzero yeimwe yemasangano ari kutora chikamu muchirongwa che ns-3 pamusoro pezvinyorwa zveGPL nemunyori, anoratidzwa pazasi.

/* 
* 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 Plug-ins

Iyo kodhi pachayo inotanga nenhevedzano yekubatanidza zvirevo (inosanganisira).

#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"

Kuti tibatsire vashandisi vedu vepamusoro-soro kutarisana nenhamba huru yemafaira emusoro aripo muhurongwa, tinoabatanidza maererano nekushandiswa kwawo mumamodule makuru. Isu tinopa imwechete yemusoro faira iyo inodzokorodza kurodha mafaera ese emusoro anoshandiswa mune yakapihwa module. Panzvimbo yekuti utsvage kuti ndeupi musoro waunoda uye pamwe nekuwana iyo chaiyo rondedzero yekutsamira, tinokupa iwe kugona kudhawunirodha boka remafaira mune yakakura granularity. Haisi iyo inonyanya kushanda nzira, asi zvechokwadi inoita kuti kunyora zvinyorwa kuve nyore.

Imwe neimwe ye ns-3 inosanganisira mafaera anoiswa mune dhairekitori inonzi ns3 (vaka subdirectory) kudzivirira kupokana kwezita refaira panguva yekuvaka. File ns3/core-module.h inoenderana ne ns-3 module, yauchawana mudhairekitori src/core mukusunungurwa kwawakaisa. Mukunyorwa kweiyi dhairekitori iwe unowana nhamba huru yemafaira emusoro. Paunoita gungano. Waf inoisa mafaera emusoro weruzhinji mune ns3 dhairekitori mune subdirectory kuvaka/debug

Kana iwe usina dhairekitori rakadaro, zvinoreva kuti hauna kutsanangura dhairekitori rekubuda paunenge uchivaka vhezheni yekuburitsa ns-3, gadzira seizvi:
$ ./waf gadzirisa --build-profile=debug --out=build/debug
$ ./waf kuvaka
kana
$ ./waf gadzirisa --kuvaka-profile=yakagadziridzwa --out=vaka/yakagadziridzwa
$ ./waf kuvaka

kana kuvaka/optimized, zvichienderana nekugadzirisa kwako. Waf ichaitawo otomatiki module inosanganisira faira kurodha ese eruzhinji musoro mafaera. Sezvo urikutevera gwara iri nechitendero, watozviita

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

kugadzirisa purojekiti kuti iite debug kuvaka iyo inosanganisira mienzaniso uye bvunzo. Wakadarowo

$ ./waf

kuunganidza chirongwa. Saka ikozvino paunotarisa mudhairekitori ../../build/debug/ns3, ipapo iwe uchawana, pakati pevamwe, iwo musoro mafaira emamodule mana anoratidzwa pamusoro. Iwe unogona kutarisa zviri mukati memafaira aya uye woona kuti anosanganisira ese eruzhinji mafaera anoshandiswa nemamodule anoenderana.

4.2.3 ns3 nzvimbo yezita

Mutsara unotevera mune script first.cc chiziviso chenzvimbo yezita.

using namespace ns3;

Iyo ns-3 chirongwa chinoitwa munzvimbo yeC ++ namespace inonzi ns3. Izvi zvikwata zvese ns-3-zvinechekuita zviziviso kuita scope kunze kwepasi rose namespace, izvo zvinozobatsira nekubatanidzwa nemamwe kodhi. Kushandisa C++ opareta kunosuma iyo ns-3 namespace munzvimbo ino (yepasi rose) inozivisa. Iyi inzira yakanaka yekureva kuti mushure mekuzivisa uku, hauzoda kutaipa ns3::scope mvumo opareta pamberi pese ns-3 kodhi yako kuti uishandise. Kana usiri kujairana nemazita enzvimbo, tarisa kune chero bhuku reC ++ uye enzanisa iyo ns3 namespace uchishandisa iyo std namespace uye chiziviso. using namespace std; mumienzaniso yekushanda nemushandisi wekubuda mutengo nehova.

4.2.4 Kutema matanda

Mutsara unotevera wescript ndeiyi:

NS_LOG_COMPONENT_DEFINE ("FirstScriptExample");

Tichashandisa chirevo ichi senzvimbo yakanakira kukurukura hurongwa hwedu hwezvinyorwa Dorojeni. Kana iwe ukatarisa iyo ns-3 purojekiti webhusaiti, iwe unowana Chinyorwa chinongedzo mubhawa rekufambisa. Kana ukadzvanya iyi link unoendeswa kupeji redu rezvinyorwa. Pane "Yazvino Kuburitswa" link inokuendesa kune zvinyorwa zveyazvino vhezheni yakatsiga yens-3. Kana ukasarudza "API Documentation" link, iwe uchaendeswa kune ns-3 API zvinyorwa peji.

Kurutivi rworuboshwe rwepeji iwe unowana graphical inomiririra yezvinyorwa zvinyorwa. Nzvimbo yakanaka yekutanga iModules ns-3 "bhuku" mumuti we ns-3 wekufamba. Kana ukaratidza modules, iwe uchaona runyoro rwe ns-3 modules zvinyorwa. Sezvakakurukurwa pamusoro, iyo pfungwa yemodule pano yakanangana nemafaira akaiswa mumodule iri pamusoro. Iyo ns-3 yekutema matanda subsystem inokurukurwa muchikamu Kushandisa Logging Module, saka tichazodzoka kwazviri gare gare muchidzidzo chino, asi iwe unogona kudzidza nezve chirevo chiri pamusoro nekutarisa module. moyondokubva avhura bhuku racho Debugging zvishandisouye wozosarudza peji kutema. Dzvanya pa kutema.

Iwe zvino unofanirwa kuongorora zvinyorwa Dorojeni zve module kutema. Mune runyorwa rwemacros kumusoro kwepeji, uchaona chinyorwa cheNS_LOG_COMPONENT_DEFINE. Usati wadzvanya chinongedzo, iva nechokwadi chekutarisa iyo "Dzidziso Yakadzama" yekunyoresa module kuti unzwisise kuti inoshanda sei mune zvese. Kuti uite izvi unogona kupenengura pasi kana kusarudza "Zvimwe ..." pazasi pechati.

Kana uchinge wava neruzivo rwakakwana rwezviri kuitika, enda mberi utarise zvinyorwa zveiyo chaiyo NS_LOG_COMPONENT_DEFINE. Ini handisi kuzodzokorora zvinyorwa pano, asi muchidimbu, mutsara uyu unozivisa chikamu chekunyoresa chinonzi. FirstScriptExample, iyo inokutendera kuti ugone kugonesa kana kudzima console kutema mameseji nekutarisa kune zita.

4.2.5 Basa guru

Mumitsetse inotevera yescript iwe uchaona,

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

Ichi chingori chiziviso chebasa guru rechirongwa chako (script). Sezvakaita chero chirongwa cheC ++, unofanirwa kutsanangura basa guru, rinoitwa kutanga. Hapana chakakosha apa. Yako ns-3 script ingori chirongwa cheC++. Mutsara unotevera unoseta nguva yekugadzirisa kune 1 nanosecond, inova ndiyo yakasarudzika:

Time::SetResolution (Time::NS);

Kugadzirisa nguva, kana kungogadzirisa, ndiyo idiki nguva kukosha inogona kushandiswa (mudiki unomiririrwa musiyano pakati penguva mbiri). Iwe unogona kushandura sarudzo chaizvo kamwe chete. Iyo meshini inopa iyi shanduko inopedza ndangariro, saka kana kugadzirisa kwangoiswa pachena, tinosunungura ndangariro, kudzivirira zvimwe zvigadziriso. (Kana ukasaisa gadziriso yacho zvakajeka, inozogara kune imwe nanosecond uye ndangariro ichasunungurwa kana simulation yatanga.)

Mitsetse miviri inotevera yescript inoshandiswa kugonesa zvikamu zviviri zvekutema matanda zvakavakwa mumaapplication EchoClient ΠΈ EchoServer:

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

Kana iwe ukaverenga zvinyorwa zveLogging chikamu, uchaona kuti kune akati wandei mazinga ekutema/granularity aunogona kugonesa pane chimwe nechimwe chikamu. Iyi mitsara miviri yekodhi inogonesa debug matanda kune iyo INFO level ye echo vatengi nemaseva. Pane iyi nhanho, iyo application ichadhinda mameseji sezvainotumira uye inogamuchira mapaketi panguva yekufananidza.

Iye zvino tichadzika kune bhizinesi rekugadzira iyo topology uye nekumhanyisa simulation. Isu tinoshandisa topology mubatsiri zvinhu kuita kuti basa iri rive nyore sezvinobvira.

4.2.6 Kushandisa topology vabatsiri

Mitsetse miviri inotevera yekodhi mune yedu script ichanyatso gadzira iyo Node ns-3 zvinhu izvo zvinomiririra makomputa mukufananidza.

NodeContainer nodes;
nodes.Create (2);

Tisati taenderera mberi, ngatitsvagei zvinyorwa zvekirasi NodeContainer. Imwe nzira yekusvika kune zvinyorwa zvekirasi yakapihwa ndeye kuburikidza neiyo tab Classes pamapeji Dorojeni. Kana iwe uchitova neDooxygen yakavhurika, ingo penya kumusoro kwepeji uye sarudza iyo Makirasi tebhu. Iwe unofanirwa kuona seti nyowani yematabu, imwe yacho irondedzero yemakirasi. Pasi peiyi tab iwe uchaona runyoro rweese ns-3 makirasi. Bhura pasi ku ns3::NodeContainer. Kana wawana kirasi, sarudza kuti uende kune zvinyorwa zvekirasi.

Sezvatinorangarira, chimwe chezvakakosha zvekubvisa ndiyo node. Inomiririra komputa yatiri kuwedzera zvinhu zvakaita seprotocol stacks, application, uye makadhi ekutenderera. Topology mubatsiri NodeContainer inopa nzira iri nyore yekugadzira, kubata uye kuwana chero zvinhu Node, iyo yatinogadzira kuti tiite simulation. Mutsetse wekutanga uri pamusoro unongozivisa NodeContainer, atinoti nodes. Mutsetse wechipiri unodana Gadzira nzira pane node chinhu uye unobvunza mudziyo kuti ugadzire node mbiri. Sezvakatsanangurwa mu Dorojeni, mudziyo unokumbira ns-3 system kugadzira zvinhu zviviri Node uye zvitoro zvinonongedzera kuzvinhu izvi mukati.

Manodhi akagadzirwa muscript haaite chinhu parizvino. Nhanho inotevera mukuvaka iyo topology kubatanidza node dzedu kune network. Iyo yakapfava nzira yetiweki yatinotsigira ndeyekunongedza-ku-point yekubatanidza pakati pemanodhi maviri. Iye zvino tichagadzira kubatana kwakadaro.

PointToPointHelper

Isu tinogadzira chinongedzo-ku-point yekubatanidza tichishandisa maitiro anozivikanwa, tichishandisa topology mubatsiri chinhu kuita basa rakaderera rinodiwa pakubatanidza. Rangarira kuti edu maviri akakosha abstractions NetDevice ΠΈ mugero. Munyika chaiyo, aya mazwi anoenderana nemakadhi ekutenderera uye netiweki tambo. Kazhinji, zvinhu zviviri izvi zvine hukama kune mumwe nemumwe, uye hapana anogona kuvimba nekugovana, semuenzaniso, zvishandiso Ethernet pamusoro pechiteshi chisina waya. Vedu topology vabatsiri vanotevera hukama hwepedyo uye saka iwe uchashandisa chinhu chimwe chete mune ino mamiriro PointToPointHelper yekumisikidza nekubatanidza ns-3 zvinhu PointToPointNetDevice ΠΈ PointToPointChannel. Mitsetse mitatu inotevera mune script:

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

Mutsara wekutanga,

PointToPointHelper pointToPoint;

inogadzira muenzaniso wechinhu pane stack PointToPointHelper. Kubva padanho repamusoro rekuona mutsara unotevera,

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

inoudza chinhu PointToPointHelper shandisa kukosha "5 Mbit/s" (megabits mashanu pasekondi) se "DataRate".

Kubva pane imwe nzvimbo yekuona, tambo "DataRate" inoenderana nezvatinoti hunhu PointToPointNetDevice. Kana iwe ukatarisa Dorojeni zvekirasi ns3::PointToPointNetDevice uye mune zvinyorwa zveiyo nzira GetTypeId iwe uchawana runyoro rwehunhu hunotsanangurwa kune mudziyo. Pakati pavo pachava nehunhu β€œDataRate" Zvizhinji zvemushandisi-zvinooneka ns-3 zvinhu zvine mazita akafanana ehunhu. Isu tinoshandisa iyi michina kumisikidza nyore kutevedzera pasina kudzoreredza, sezvauchaona muchikamu chinotevera.

Zvakafanana ne "DataRate" muPointToPointNetDevice, iwe unowana iyo "Delay" hunhu hwakabatana nePointToPointChannel. Mutsara wekupedzisira

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

anoti PointToPointHelper shandisa kukosha kwe "2 ms" (mamilliseconds maviri) sehuwandu hwekunonoka kwekuparadzira kweiyo point-to-point link iyo inozogadzira.

NetDeviceContainer

Parizvino tine mune script NodeContainer, iyo ine nodes mbiri. Tine PointToPointHelper, iyo yakagadzirirwa kugadzira zvinhu PointToPointNetDevices uye kuvabatanidza vachishandisa PointToPointChannel chinhu. Sezvatakashandisa iyo NodeContainer topology mubatsiri chinhu kugadzira node, isu tichabvunza PointToPointHelper ita basa kwatiri rine chekuita nekugadzirwa, kugadzirisa uye kuiswa kwemidziyo yedu. Tinoda runyoro rwezvinhu zvose zvakasikwa NetDevice, saka tinoshandisa NetDeviceContainer kuzvichengeta nenzira yataishandisa NodeContainer kuchengetedza node dzatakagadzira. Mitsetse miviri inotevera yekodhi,

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

zadzisa mudziyo uye kuseta chiteshi. Mutsara wekutanga unozivisa mudziyo wemudziyo wataurwa pamusoro, uye wechipiri unoita basa guru. Nzira gadza object PointToPointHelper anotora NodeContainer separameter. Mukati NetDeviceContainer kune imwe neimwe node iri mukati NodeContainer inosikwa (kune-point-to-point kutaurirana panofanirwa kunge paine maviri chaiwo) PointToPointNetDevice inogadzirwa uye inochengetwa mumudziyo wemudziyo. PointToPointChannel inosikwa uye maviri akabatanidzwa pairi PointToPointNetDevices. Mushure mekugadzira zvinhu, hunhu hwakachengetwa mukati PointToPointHelper, anoshandiswa kutanga hunhu hunoenderana muzvinhu zvakasikwa.

Mushure mekufona pointToPoint.Isa (node) tichava node mbiri, imwe neimwe ine point-to-point network mudziyo wakaiswa uye imwe point-to-point link pakati pavo. Midziyo miviri ichagadziriswa kufambisa data nekumhanya kwemamegabits mashanu pasekondi nekunonoka kwekutapurirana kwemamilliseconds maviri pamusoro pechiteshi.

InternetStackHelper

Iye zvino tine node uye zvishandiso zvakagadzirirwa, asi node dzedu hadzina protocol stacks yakaiswa. Mitsara miviri inotevera yekodhi ichatarisira izvi.

InternetStackHelper stack;
stack.Install (nodes);

InternetStackHelper - mubatsiri wetopology yeInternet stacks, yakafanana nePointToPointHelper yepoint-to-point network zvishandiso. Nzira gadza inotora NodeContainer separameter. Kana yaitwa, ichaisa iyo Internet stack (TCP, UDP, IP, nezvimwewo) pane yega yega mudziyo.

IPv4AddressHelper

Ipapo tinoda kubatanidza zvishandiso zvedu ne IP kero. Isu tinopa topology mubatsiri kubata IP kero kugoverwa. Iyo chete API inoonekwa kumushandisi iri kuseta iyo base IP kero uye netmask yekushandisa paunenge uchiita chaiyo kugovera kero (izvi zvinoitwa pamwero wakaderera mukati memubatsiri). Mitsetse miviri inotevera yekodhi mune yedu muenzaniso script first.cc,

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

zivisa kero yemubatsiri chinhu uye uudze kuti inofanira kutanga kugovera IP kero kubva kune network 10.1.1.0, uchishandisa bitmask 255.255.255.0 kuona. Nekusagadzika, kero dzakagoverwa dzichatanga pane imwe uye dzichiwedzera monotonically, saka kero yekutanga yakagoverwa kubva pachigadziko ichi ichava 10.1.1.1, ipapo 10.1.1.2, nezvimwe. Muchokwadi, pamwero wakaderera, iyo ns-3 sisitimu inorangarira ese akagoverwa IP kero uye inogadzira kukanganisa kunouraya kana iwe netsaona ukagadzira mamiriro apo iyo kero imwechete inogadzirwa kaviri (nenzira, kukanganisa uku kwakaoma kugadzirisa).

Mutsara unotevera wekodhi,

Ipv4InterfaceContainer interfaces = address.Assign (devices);

inoita kero chaiyo yekugovera. Mu ns-3 tinomisa hukama pakati pekero yeIP uye mudziyo uchishandisa chinhu IPv4Interface. Sezvo isu dzimwe nguva tichida runyorwa rwetiweki zvishandiso zvakagadzirwa nemubatsiri kuti azoshandiswa gare gare, isu dzimwe nguva tinoda runyorwa rwezvinhu IPv4Interface. IPv4InterfaceContainer inopa kushanda uku.

Isu takavaka point-to-point network, ine stacks yakaiswa uye IP kero yakapihwa. Iye zvino isu tinoda maapplication mune imwe neimwe node kugadzira traffic.

4.2.7 Kushandisa Application

Chimwe chezvinyanya kukosha zve ns-3 system ndeye kunyoresa (chikumbiro). Muchiitiko ichi tiri kushandisa maviri base base kirasi nyanzvi kunyoresa ns-3 inodaidzwa UdpEchoServerApplication ΠΈ UdpEchoClientApplication. Sezvakaitika muzviitiko zvakapfuura, tinoshandisa zvinhu zvekubatsira kugadzirisa uye kugadzirisa zvinhu zvepasi. Pano tinoshandisa UdpEchoServerHelper ΠΈ UdpEchoClientHelper zvinhu kuita kuti hupenyu hwedu huve nyore.

UdpEchoServerHelper

Mitsetse inotevera yekodhi mune yedu yekutanga.cc muenzaniso script inoshandiswa kugadzirisa UDP echo server application pane imwe yemanodhi yatakagadzira kare.

UdpEchoServerHelper echoServer (9);

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

Mutsetse wekutanga wekodhi mune iri pamusoro snippet inogadzira UdpEchoServerHelper. Semazuva ese, ichi hachisi chishandiso pachacho, chinhu chinotibatsira kugadzira chaiwo maapplication. Imwe yemagungano edu ndeyekupfuudza hunhu hunodiwa kumugadziri wechinhu chemubatsiri. Muchiitiko ichi, mubatsiri haakwanisi kuita chero chinhu chinobatsira kunze kwekunge apiwa nhamba yechiteshi iyo sevha ichateerera pamapakiti, nhamba iyi inofanirawo kuzivikanwa kune mutengi. Muchiitiko ichi, tinopfuudza nhamba yechiteshi kumugadziri wekubatsira. Mugadziri, zvakare, anongoita SetAttribute nemari yakapfuura. Gare gare, kana uchida, unogona kushandisa SetAttribute kuseta kukosha kwakasiyana kweiyo Port hunhu.

Kufanana nezvimwe zvakawanda zvekubatsira zvinhu, chinhu UdpEchoServerHelper ane nzira gadza. Kuita iyi nzira zvinobudirira kunogadzira yakakosha echo server application uye inoisungira kune iyo saiti. Sezvineiwo, nzira gadza anotora NodeContainer separameter sezvakangoita mamwe gadza nzira dzatakaona.

Iko C ++ kutendeuka kwakazara kushanda pano kunotora mhedzisiro yenzira node.Tora(1) (iyo inodzorera smart pointer kune node chinhu - Ptr ) uye anoishandisa mugadziri wechinhu chisingazivikanwe NodeContaineriyo inobva yapfuudzwa kune nzira gadza. Kana iwe usingakwanise kuona muC ++ kodhi kuti ndeipi nzira siginicha inounganidzwa uye inoitwa, saka tarisa pakati pekutendeuka kwakazara.

Zvino tinozviona echoServer.Install nezve kuisa application UdpEchoServerApplication inowanikwa mu NodeContaineriyo yatinoshandisa kubata node dzedu, node ine index 1. Method gadza inodzosa mudziyo une anonongedzera kune ese maapplication (mune iyi kesi imwe, sezvo isu takapfuura asingazivikanwe NodeContainer, ine node imwe) yakagadzirwa nemubatsiri.

Zvishandiso zvinofanirwa kudoma nguva yekutanga kugadzira traffic "tanga" uye ingangoda kudomawo nguva yekuimisa "mira". Tinopa zvose zvingasarudzwa. Idzi nguva dzakarongwa uchishandisa nzira ApplicationContainer kutanga ΠΈ mira. Nzira idzi dzinogamuchira parameters yemhando nguva. Muchiitiko ichi tinoshandisa kutevedzana kwakajeka kweC ++ kutendeuka kutora C ++ kaviri 1.0 wochishandura kuita tns-3 Nguva chinhu chinoshandisa chinhu cheSecond kushandura kuita masekonzi. Yeuka kuti mitemo yekushandura inogona kudzorwa nemunyori wemuenzaniso, uye C ++ ine mitemo yayo, saka haugoni kugara uchivimba nemiganhu inoshandurwa nenzira yawaitarisira. Mitsetse miviri

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

ichaita kuti echo server application itange (batidza otomatiki) sekondi imwe chete mushure mekunge simulation yatanga uye kumira (kudzima) mushure memasekondi gumi ekufananidza. Nekuda kwekuti isu takazivisa chiitiko chekufananidza (chikumbiro chekumisa chiitiko), icho chichaitwa mumasekonzi gumi, angangoita masekonzi gumi ekushanda kwetiweki achateedzerwa.

UdpEchoClientHelper

Client application echo yakagadzirirwa nenzira yakada kufanana nesevha. Pane base chinhu UdpEchoClientApplication, iyo inodzorwa
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));;

Nekudaro, kune echo mutengi isu tinofanirwa kuseta zvishanu zvakasiyana hunhu. Hunhu huviri hwekutanga hwakaiswa panguva yekusika UdpEchoClientHelper. Isu tinopfuudza ma parameter anoshandiswa (mukati memubatsiri) kuseta hunhu "RemoteAddress" ΠΈ "RemotePort" maererano nechibvumirano chedu kupfuudza ma parameter anodiwa kumubatsiri anovaka.

Ngatirangarirei kuti takashandisa IPv4InterfaceContainer kuronda kero dzeIP dzatakapa kumidziyo yedu. Iyo null interface mumudziyo wekupindirana ichaenderana neiyo IP kero yeiyo null node mumudziyo wenodhi. Yekutanga interface mumudziyo wekupindirana inoenderana neiyo IP kero yekutanga node mumudziyo wenodhi. Saka, mumutsara wekutanga wekodhi (pamusoro), tinogadzira mubatsiri uye tinomuudza kuti kero iri kure yemutengi ichava IP kero inopiwa kune muenzi apo sevha iripo. Isu tinoti zvakare tinoda kuronga kuti mapaketi atumirwe kuchiteshi chepfumbamwe.

Iyo "MaxPackets" hunhu hunoudza mutengi huwandu hwakanyanya hwemapaketi atinogona kutumira panguva yekufananidza. Iyo "Interval" hunhu hunoudza mutengi kuti inguva yakadii kumirira pakati pemapakiti, uye "PacketSize" hunhu hunoudza mutengi kuti mubhadharo wepacket unofanirwa kuve wakakura sei. Neiyi hunhu musanganiswa tinoudza mutengi kuti atumire imwechete 1024-byte packet.

Sezvakaita echo server, isu tinoisa hunhu hwemutengi echo kutanga ΠΈ mira, asi pano tinotanga mutengi kwechipiri mushure mekunge sevha yakavhurwa (masekonzi maviri mushure mekutanga kwekufananidza).

4.2.8 Simulator

Panguva ino tinofanira kumhanyisa simulation. Izvi zvinoitwa pachishandiswa basa renyika yose Simulator::Mhanyai.

Simulator::Run ();

Patakambodaidza nzira,

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

isu chaizvo takaronga zviitiko musimulator pamasekonzi 1,0, 2,0 masekonzi, uye zviitiko zviviri pa10,0 masekonzi. Mushure mekufona Simulator::Mhanyai, iyo sisitimu ichatanga kuona rondedzero yezviitiko zvakarongwa uye kuzviita. Inotanga kupisa chiitiko mushure memasekonzi 1,0, izvo zvinokonzeresa echo server application (chiitiko ichi chinogona kurodha zvimwe zviitiko zvakawanda). Inobva yapisa chiitiko chakarongwa pa t = 2,0 masekondi iyo ichavhura echo mutengi application. Zvekare, chiitiko ichi chinogona kunge chine zvimwe zvakawanda zvakarongwa. Iyo yekutanga chiitiko kuitiswa mu echo mutengi ichatanga iyo data yekufambisa chikamu chekufananidza nekutumira pakiti kune server.

Chiito chekutumira pakiti kune sevha chinokonzeresa chiitiko chezviitiko izvo zvinozorongwa otomatiki kuseri kwezviitiko uye izvo zvinozoita mechanics ekutumira echo packet zvinoenderana nenguva maparamita atakaisa mune script.

Nekuda kweizvozvo, sezvo tiri kutumira pakiti imwe chete (rangarira, hunhu MaxPackets yakaiswa kune imwe), ketani yezviitiko zvakatangwa neiyi mutengi ping inopera uye simulation ichapinda mune yekumira mode. Kana izvi zvangoitika, zvakasara zvakarongwa zviitiko zvichave zviitiko mira kune server uye mutengi. Kana zviitiko izvi zvaitwa, hapazovi nezviitiko zvasara kuti zvigadziriswe uye Simulator::Mhanyai achadzorera kutonga. The simulation yakakwana.

Chasara kuchenesa mushure mako. Izvi zvinoitwa nekudaidza iyo global function Simulator::Paradzai. Nokuti mabasa emubatsiri (kana pasi-level ns-3 code) akadanwa, ayo akarongwa kuitira kuti zvikorekedzo zvipinzwe musimulator kuti zviparadze zvinhu zvose zvakasikwa. Iwe waisafanirwa kuteedzera chero cheizvi zvinhu iwe - zvese zvawaifanira kuita kufona Simulator::Paradzai wobuda. Iyo ns-3 system ichakuitira basa rakaoma iri. Mitsetse yasara yekutanga ns-3 script, first.cc, ita izvozvo chaizvo:

Simulator::Destroy ();
return 0;
}

Iyo simulator ichamira riini?

ns-3 chiitiko chakasarudzika (DE) simulator. Mune simulator yakadaro, chiitiko chega chega chinosanganiswa nenguva yaro yekuuraya, uye kuenzanisa kunoenderera mberi nekugadzirisa zviitiko mukurongeka kwazvinoitika sezvo kuenzanisa kunofambira mberi. Zviitiko zvinogona kuita kuti zviitiko zvemunguva yemberi zvirongwe (semuenzaniso, chibatiso chenguva chinogona kuzvironga kuti chipedze kuverenga munguva inotevera).

Zviitiko zvekutanga zvinowanzotangwa nesangano, semuenzaniso IPv6 inoronga kuwanikwa kwesevhisi panetiweki, zvikumbiro zvevavakidzani, nezvimwe. Iyo application inoronga yekutanga packet kutumira chiitiko, zvichingodaro. Kana chiitiko chikagadziriswa, chinogona kuburitsa zero, chimwe, kana zvimwe zviitiko. Sezvo kuenzanisa kunofambira mberi, zviitiko zvinoitika, kupera kana kugadzira zvitsva. Iyo simulation inomira yega kana mutsara wechiitiko usina chinhu kana chiitiko chakakosha chikaonekwa mira. Chiitiko mira yakagadzirwa nebasa Simulator::Mira (kumira nguva).

Pane chiitiko chakajairwa apo Simulator ::Mira inodiwa kumisa simulation: kana paine zviitiko zvinozvitsigira. Kuzvimirira (kana kudzokorora) zviitiko zviitiko zvinogara zvichirongwa patsva. Nekuda kweizvozvo, vanogara vachichengeta mutsara wechiitiko usina chinhu. Kune akawanda maprotocol nemamodule ane anodzokorora zviitiko, semuenzaniso:

β€’ FlowMonitor - nguva nenguva kutarisa mapepa akarasika;

β€’ RIPng - nhepfenyuro yenguva nenguva yezvigadziriso zvetafura yenzira;

β€’ nezvimwewo.

Muzviitiko zvakadaro Simulator::Mira zvakakodzera kumisa simulation nemazvo. Pamusoro pezvo, kana ns-3 iri mu emulation mode, iyo RealtimeSimulator inoshandiswa kuwiriranisa wachi yekufananidza newachi yemuchina, uye Simulator::Mira zvakakosha kumisa maitiro.

Mazhinji emapurogiramu ekufananidza ari mubhuku haafone Simulator::Mira zvakajeka, sezvo ivo vanopera otomatiki kana zviitiko zvemutsetse zvapera. Nekudaro, zvirongwa izvi zvichagamuchirawo Simulator::Misa kufona. Semuenzaniso, inotevera chirevo chekuwedzera mumuenzaniso wekutanga chirongwa chaizoronga kumira kwakajeka pamasekonzi gumi nerimwe:

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

Izvo zviri pamusoro hazvizonyatso shandura maitiro echirongwa ichi, sezvo iyi simulation inopera mushure memasekonzi gumi. Asi kana iwe waizoshandura nguva yekumira muchirevo chiri pamusoro apa kubva pamasekonzi gumi nerimwe kuenda kusekondi 10, waizoona kuti simulation inomira isati yabuda chero yarova chidzitiro (sezvo chinobuda chichiitika mushure memasekonzi maviri enguva yekufananidza).

Zvakakosha kufonera Simulator::Mira usati wafonera Simulator::Mhanya; zvikasadaro Simulator:: Mhanya inogona kusazodzosa kutonga kuchirongwa chikuru kumisa kumira!

4.2.9 Kuvaka chinyorwa chako

Taita kuti kugadzira zvinyorwa zvako zviri nyore zvive zvisina basa. Zvese zvaunofanirwa kuita kuisa script yako mune yekutanga dhairekitori uye inozovakwa otomatiki kana iwe uchimhanya Waf. Ngatiedzei. Dzokera kudhairekitori repamusoro uye kopi mienzaniso/tutorial/first.cc kucatalog muvare

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

Zvino gadzira yako yekutanga script script uchishandisa waf:

$ ./waf

Iwe unofanirwa kuona mameseji anoratidza kuti muenzaniso wako wekutanga wakagadzirwa zvinobudirira.

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)

Iye zvino unogona kumhanyisa muenzaniso (ona kuti kana iwe ukavaka chirongwa chako mune yekutanga dhairekitori, saka unofanirwa kuimhanyisa kubva muvare):

$ ./waf --run scratch/myfirst

Iwe unofanirwa kuona mhedzisiro yakafanana:

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

Pano iwe unogona kuona kuti iyo yekuvaka system inosimbisa kuti faira rakavakwa uye wobva warimhanyisa. Iwe unoona chikamu chinopinda pane echo client inoratidza kuti yakatumira imwechete 1024-byte packet kune echo server 10.1.1.2. Iwewo unoona chikamu chekutema pane echo server kutaura kuti yakagamuchira 1024 bytes kubva 10.1.1.1. Iyo echo server inodzokorora chinyararire pakiti uye iwe unogona kuona mune echo mutengi wegi kuti yakagamuchira pakiti yayo kubva kuseva.

4.3 ns-3 Kunobva kodhi

Zvino zvawashandisa vamwe ns-3 vabatsiri, unogona kutarisa kune imwe kodhi kodhi inoshandisa basa iri. Iyo yazvino kodhi inogona kutariswa pawebhu server pane inotevera link: https://gitlab.com/nsnam/ns-3-dev.git. Ikoko iwe uchaona iyo Mercurial pfupiso peji ye yedu ns-3 yekuvandudza muti. Pamusoro pe peji iwe uchaona akati wandei ma link,

summary | shortlog | changelog | graph | tags | files

Enda mberi uye sarudza iyo mafaira link. Izvi ndizvo zvichange zvakaita chikamu chepamusoro chezvizhinji zvezvinyorwa zvedu:

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

Yedu mienzaniso zvinyorwa zviri mudhairekitori mienzaniso. Kana iwe ukadzvanya pamienzaniso uchaona runyoro rwe subdirectories. Imwe yemafaira mune subdirectory chidzidzo - first.cc. Kana ukadzvanya pa first.cc iwe uchaona kodhi yauchangobva kudzidza.

Iyo source code inonyanya kuwanikwa mudhairekitori Src. Iwe unogona kuona iyo kodhi kodhi nekudzvanya pazita redhairekitori kana kudzvanya pane iyo mafaera link kurudyi rwezita redhairekitori. Kana iwe ukadzvanya pane src dhairekitori, iwe unowana runyorwa rwe src subdirectories. Kana iwe ukadzvanya pane yakakosha subdirectory, iwe unowana runyoro rwemafaira. Iyo yekutanga faira yauchaona (panguva yekunyora iri gwara) iri kubvisa.h. Kana ukadzvanya pane link kubvisa.h, iwe uchatumirwa kune iyo faira faira ye kubvisa.h, iyo ine macros anobatsira ekunyora zvinyorwa kana mamiriro asina kujairika akaonekwa. Kodhi yevabatsiri vatakashandisa muchitsauko chino inogona kuwanikwa mudhairekitori src/Applications/helper. Inzwa wakasununguka kutenderedza dhairekitori muti kuti uone kuti kupi uye unzwisise maitiro e ns-3 zvirongwa.

Source: www.habr.com

Voeg