omnet cong cu mo phong

Upload: doanh252258

Post on 04-Apr-2018

229 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/29/2019 Omnet Cong Cu Mo Phong

    1/145

    OMNet++ Bo co thc tp chuyn ngnh

    Trang 1

    PHN I - TNG QUAN V OMNET++ .....................................................................51. GII THIU ..........................................................................................................5

    1.1. OMNeT++ l g?.............................................................................................51.2. Cc thnh phn chnh ca OMNeT++ ............................................................51.3. ng dng ........................................................................................................51.4. M hnh trong OMNeT++ ..............................................................................6

    2. TNG QUAN........................................................................................................72.1. Khi nim m hnh ho...................................................................................72.1.1. Cu trc phn cp ca cc module...........................................................72.1.2. Kiu module.............................................................................................72.1.3. Message, cng, lin kt............................................................................82.1.4. M hnh truyn gi tin .............................................................................92.1.5. Tham s..................................................................................................102.1.6. Phng php m t topology.................................................................10

    2.2. Lp trnh thut ton .......................................................................................102.3. S dng OMNeT++ ......................................................................................11

    2.3.1. Xy dng v chy th cc m hnh m phng ......................................112.3.2. H thng file ..........................................................................................12

    3. NGN NGNED...............................................................................................143.1 Tng quan v NED ........................................................................................14

    3.1.1. Cc thnh phn ca ngn ng m t NED.............................................143.1.2. Cc t kho ............................................................................................143.1.3. t tn....................................................................................................143.1.4. Ch thch................................................................................................15

    3.2. Cc ch dn import ........................................................................................153.3. Khai bo cc knh.........................................................................................153.4. Khai bo cc module n gin......................................................................16

    3.4.1. Cc tham s ca module n gin .........................................................163.4.2. Cc cng ca module n gin..............................................................17

    3.5. Khai bo module kt hp ..............................................................................183.5.1. Cc tham s v cng ca module kt hp..............................................193.5.2. Cc module con......................................................................................193.5.3. Tham s tn kiu module con................................................................203.5.4. Gn gi tr cho cc tham s ca cc module con ...................................223.5.5. Khai bo kch thc ca cc vector cng ca module con....................233.5.6. Khai bo gatesizes v tham s c iu kin...........................................233.5.7. Kt ni....................................................................................................24

    3.6. Khai bo mng..............................................................................................273.7. Cc biu thc ................................................................................................27

    3.7.1. Hng s ..................................................................................................283.7.2. Tham chiu.............................................................................................28

    3.7.3. Cc ton t .............................................................................................293.7.4. Ton t sizeof() v index .......................................................................303.7.5. Ton t xmldoc() ...................................................................................303.7.6. XML v XPath.......................................................................................313.7.7. Hm........................................................................................................313.7.8. Gi tr ngu nhin...................................................................................323.7.9. Khai bo mt hm mi...........................................................................33

    4. GII THIU GNED ............................................................................................354.1. Giao din.......................................................................................................35

  • 7/29/2019 Omnet Cong Cu Mo Phong

    2/145

    OMNet++ Bo co thc tp chuyn ngnh

    Trang 2

    4.2. Mt s thao tc cbn..................................................................................384.3. Lm vic vi nhiu file NED - Cc chc nng chnh sa nng cao .............43

    5. MODULE N GIN........................................................................................505.1 Module n gin trong OMNeT++................................................................505.2 Cc s kin trong OMNeT++ ........................................................................505.3 M hnh ho hot ng truyn gi tin............................................................50

    5.4 Khai bo kiu module n gin.....................................................................515.4.1 Tng quan ...............................................................................................515.4.2 ng k kiu module ..............................................................................52

    5.5 Xy dng hm cho Module............................................................................525.5.1 Hm handleMessage() ............................................................................525.5.2 Hm activity() .........................................................................................535.5.3 Hm initialize() v finish()......................................................................54

    5.6 Gi v nhn cc message ...............................................................................545.6.1 Gi cc message .....................................................................................545.6.2 Broadcasts ...............................................................................................545.6.3 Gi c tr (Delayed sending).............................................................555.6.4 Gi trc tip message .............................................................................55

    5.6.5 Gi nh k .............................................................................................555.7 Truy nhp cc cng v kt ni .......................................................................55

    5.7.1 i tng cng (gate object) ..................................................................555.7.2 Cc tham s kt ni.................................................................................56

    5.8 Tng to module .......................................................................................566. MESSAGE...........................................................................................................58

    6.1. Message v Packet ........................................................................................586.1.1. Lp cMessage ........................................................................................586.1.2. Self-Message..........................................................................................596.1.3. M hnh ho gi tin ................................................................................606.1.4. ng gi (Encapsulation) ......................................................................626.1.5. Thm i tng v tham s ...................................................................63

    6.2. nh ngha message......................................................................................646.2.1. Gii thiu ...............................................................................................646.2.2. S dng enum ........................................................................................666.2.3. Khi to cho mt message.....................................................................666.2.4. Quan h k tha v hp thnh ...............................................................696.2.5. S dng cc kiu c sn ca C++..........................................................716.2.6. Thay i cc file C++ ............................................................................726.2.7. S dng STL trong cc lp message .....................................................75

    7. CHY CC NG DNG OMNeT++ ...............................................................787.1 S dng gcc....................................................................................................797.2 S dng Microsoft Visual C++......................................................................79

    8. M HNH N GIN - TICTOC......................................................................80Phn II TNG QUAN V WLAN...........................................................................861. GII THIU ........................................................................................................86

    1.1 u im ca mng LAN khng dy..............................................................861.2 Mt sng dng thc t ca WLAN ti Vit Nam.......................................88

    1.2.1 ng dng trong Wireless LAN Telemedicine........................................881.2.2 H thng WiFi VNN...............................................................................90

    2. CC M HNH MNG C BN......................................................................912.1 M hnh cs(Infrastructure network).........................................................91

  • 7/29/2019 Omnet Cong Cu Mo Phong

    3/145

    OMNet++ Bo co thc tp chuyn ngnh

    Trang 3

    2.1.1 Tp hp dch v cbn (BSS - Basic Service Set).................................922.1.2 Tp hp cc dch v mrng (ESS Extended Service Set)....................92

    2.2 M hnh Adhoc c lp (Independent network)............................................963. HOT NG CA CC CHUN LIN QUAN .............................................97

    3.1 Cc bng tn ISM...........................................................................................973.1.1 Bng tn ISM (ISM bands).....................................................................97

    3.1.2 Bng tn UNII (UNII bands) ..................................................................983.2 Cc chun 802.11 (IEEE 802.11 family).......................................................993.2.1 IEEE 802.11............................................................................................993.2.2 IEEE 802.11b..........................................................................................993.2.3 IEEE 802.11a ..........................................................................................993.2.4 IEEE 802.11g..........................................................................................993.2.5 Mt s chun khc trong h IEEE 802.11 ............................................100

    4. M HNH CU TRC CA MNG WLAN .................................................1034.1 Tng vt l (PHY layer)...............................................................................103

    4.1.1 Cc k thut tri ph .............................................................................1044.1.2 Cu trc khung PLCP (General PLCP Frame Format).........................1084.1.3 PLCP trong di ph dch tn FHSS ......................................................109

    4.1.4 PLCP cho DSSS v HR/DSSS..............................................................1094.1.5 PLCP trong OFDM ...............................................................................1104.1.6 Th tc truyn PLCP ............................................................................1104.1.7 Th tc nhn PLCP...............................................................................1114.1.8 Tng PMD ( PMD sublayer)................................................................112

    4.2 Tng kim sot truy nhp ng truyn MAC.........................................1134.2.1 DCF - Distributed Coordination Function ............................................1134.2.2 PCF Point Coordination Function......................................................1164.2.3 Phn tch cc hot ng cbn.............................................................116

    4.3 Tng mng v cc giao thc dn ng trong WLAN................................1214.3.1 Cc giao thc tm ng trong mng Ad-hoc ......................................1224.3.2 Cc giao thc mrng cho MANET....................................................1234.3.3 M t chi tit giao thc AODV.............................................................125

    PHN III PHN TCH THIT KNG DNG M PHNG MNG ADHOC....................................................................................................................................130

    1. M HNH CHUNG...........................................................................................1302. CU TRC H THNG ..................................................................................131

    2.1 Tng vt l (Physical model) .......................................................................1312.2 Tng iu khin truy nhp (Mac Layer) ......................................................1312.3 Tng mng (Routing model) ........................................................................1332.4 Mobility models ...........................................................................................1362.5 Tng ng dng .............................................................................................1372.6 Lin kt gia cc tng..................................................................................138

    2.7 Thit lp cc thng s cho h m phng......................................................1382.7.1 Thng s ca Map v Hosts..................................................................1382.7.2 Physical Layer.......................................................................................1392.7.3 Mac Layer .............................................................................................1392.7.4 Routing..................................................................................................1392.7.5 Application............................................................................................140

    3. KT QU THC HIN ...................................................................................1413.1 Topo .............................................................................................................1413.2 Gi cc gi tin Hello....................................................................................142

  • 7/29/2019 Omnet Cong Cu Mo Phong

    4/145

    OMNet++ Bo co thc tp chuyn ngnh

    Trang 4

    3.3 Gi gi tin RREQ ........................................................................................142Phn IV - PH LC..................................................................................................143

    1. SO SNH OMNET++ V NS/2.......................................................................1432.TI LIU THAM KHO ..................................................................................145

  • 7/29/2019 Omnet Cong Cu Mo Phong

    5/145

    OMNet++ Bo co thc tp chuyn ngnh

    Trang 5

    PHN I - TNG QUAN V OMNET++

    1. GII THIU

    1.1. OMNeT++ l g?

    OMNeT++ l vit tt ca cm t Objective Modular Network Testbed in C++.

    OMNeT++ l mt ng dng cung cp cho ngi s dng mi trng tin hnh mphng hot ng ca mng. Mc ch chnh ca ng dng l m phng hot ngmng thng tin, tuy nhin do tnh ph cp v linh hot ca n, OMNeT++ cn cs dng trong nhiu lnh vc khc nh m phng cc h thng thng tin phc tp, ccmng kiu hng i (queueing networks) hay cc kin trc phn cng...

    OMNeT++ cung cp sn cc thnh phn tng ng vi cc m hnh thc t. Ccthnh phn ny (cn c gi l cc module) c lp trnh theo ngn ng C++, sau

    c tp hp li thnh nhng thnh phn hay nhng m hnh ln hn bng mtngn ng bc cao (NED). OMNeT++ h trgiao din ho, tng ng vi cc mhnh cu trc ca n ng thi phn nhn m phng (simulation kernel) v ccmodule ca OMNeT++ cng rt d dng nhng vo trong cc ng dng khc.

    1.2. Cc thnh phn chnh ca OMNeT++

    Th vin phn nhn m phng (simulation kernel)

    Trnh bin dch cho ngn ng m t hnh trng (topology description language)- NED (nedc)

    Trnh bin tp ho (graphical network editor) cho cc file NED (GNED) Giao din ho thc hin m phng, cc lin kt bn trong cc file thc hin

    m phng (Tkenv)

    Giao din dng lnh thc hin m phng (Cmdenv)

    Cng c (giao din ho) v th kt qu vectoru ra (Plove)

    Cng c (giao din ho) m t kt qu v hng u ra (Scalars)

    Cng c ti liu ho cc m hnh

    Cc tin ch khc

    Cc ti liu hng dn, cc v d m phng...

    1.3. ng dng

    OMNeT++ l mt cng c m phng cc hot ng mng bng cc module c thitk hng i tng. OMNeT++ thng c s dng trong cc ng dng ch yunh:

    M hnh hot ng ca cc mng thng tin

  • 7/29/2019 Omnet Cong Cu Mo Phong

    6/145

    OMNet++ Bo co thc tp chuyn ngnh

    Trang 6

    M hnh giao thc

    M hnh ho cc mng kiu hng i

    M hnh ho cc h thng a b vi x l (multiprocesser) hoc cc h thngphn cng theo m hnh phn tn khc (distributed hardware systems)

    nh gi kin trc phn cng

    nh gi hiu qu hot ng ca cc h thng phc tp...

    1.4. M hnh trong OMNeT++

    Mt m hnh trong OMNeT++ bao gm cc module lng nhau c cu trc phn cp. su ca ca cc module lng nhau l khng gii hn, iu ny cho php ngi sdng c th biu din cc cu trc logic ca cc h thng trong thc t bng cc cutrc m hnh. Cc module trao i thng tin vi nhau thng qua vic gi cc message(message). Cc message ny c th c cu trc phc tp tu . Cc module c th gicc message ny theo hai cch, mt l gi trc tip ti a ch nhn, hai l gi i theo

    mt ng dn c nh sn, thng qua cc cng v cc kt ni.Cc module c th c cc tham s ca ring n. Cc tham s ny c thc s dng chnh sa cc thuc tnh ca module v biu din cho topology ca m hnh.

    Cc module mc thp nht trong cu trc phn cp ng gi cc thuc tnh. Ccmodule ny c coi l cc module n gin, v chng c lp trnh trong ngn ngC++ bng cch s dng cc th vin m phng.

  • 7/29/2019 Omnet Cong Cu Mo Phong

    7/145

    OMNet++ Bo co thc tp chuyn ngnh

    Trang 7

    2. TNG QUAN

    2.1. Khi nim m hnh hoOMNeT++ cung cp cho ngi s dng nhng cng c hiu qu m t cu trcca cc h thng thc t.

    Cc module lng nhau c cu trc phn cp

    Cc module l cc i tng c th ca cc kiu module

    Cc module trao i thng tin bng cc message qua cc knh

    Cc tham s ca module linh hot

    Ngn ng m t topology

    2.1.1. Cu trc phn cp ca cc module

    Mt m hnh trong OMNeT++ cha cc module lng nhau c cu trc phn cp, traoi thng tin vi nhau bng cch gi cc message. Mi m hnh ny thng biu dincho mt h thng mng. Module mc cao nht trong cu trc phn cp c gi lmodule h thng. Module ny c th cha cc module con, cc module con cng cth cha cc module con ca ring n. su phn cp i vi cc module l khnggii hn, iu ny cho php ngi s dng c th d dng biu din mt cu trc logicca mt h thng trong thc t bng cu trc phn cp ca OMNeT++.

    Cu trc ca m hnh c thc m t bng ngn ng NED ca OMNeT++

    Hnh I-2.1 - Cc module n gin v kt hp

    Cc module c th cha nhiu module con v c gi l module kt hp. Ccmodule n gin l cc module c cp thp nht trong cu trc phn cp. Cc modulen gin cha cc thut ton ca m hnh. Ngi s dng trin khai cc module ngin bng ngn ng C++, s dng cc th vin m phng ca OMNeT++.

    2.1.2. Kiu module

    Tt c cc module d l n gin hay phc tp u l cc i tng c th ca cckiu module. Trong khi m t cc m hnh, ngi s dng nh ngha ra cc kiu

    module kt hp

    module h thng module n gin

  • 7/29/2019 Omnet Cong Cu Mo Phong

    8/145

    OMNet++ Bo co thc tp chuyn ngnh

    Trang 8

    module; cc i tng c th ca cc kiu module ny c s dng nh cc thnhphn ca cc kiu module phc tp hn. Cui cng, ngi s dng to module hthng nh mt i tng c th ca kiu module c nh ngha trc , tt ccc module ca mng u l module con (hoc l con ca module con) ca module hthng.

    Khi mt kiu module c s dng nh mt khi dng sn (building block), s khngth phn bit l mt module n gin hay phc tp. iu ny cho php ngi sdng c th tch cc module n gin ra thnh nhiu module n gin c nhngtrong mt module kt hp, v ngc li c th tp hp cc chc nng ca mt modulekt hp trong mt module n gin m khng nh hng g n cc kiu module c ngi s dng nh ngha.

    Kiu module c thc lu tr trong mt file ring r. iu ny cho php ngi sdng c th nhm cc kiu module li v to ra mt th vin thnh phn

    2.1.3. Message, cng, lin kt

    Cc module trao i thng tin bng vic gi cc message. Trong thc t, message c

    dng khung (frame) hoc l cc gi tin (packet) c truyn i trong mng. Ccmessage c th c cu trc phc tp tu . Cc module n gin c th gi ccmessage i mt cch trc tip n v tr nhn hoc gi i theo mt ng dn nh snthng qua cc cng v cc lin kt.

    Thi gian m phng a phng (local simulation time) ca mt module tng lnkhi module nhn c mt message. Message c thn t mt module khc hocn t cng mt module (message ca chnh bn thn module - self-message cdng thc hin bnh thi).

    Cng (gate) l cc giao tip vo ra ca module. Message c gi i qua cc cng rav c nhn vo thng qua cc cng vo.

    Mi kt ni (connection) hay cn gi l lin kt (link) c to bn trong mt mc

    n trong cu trc phn cp ca cc module: bn trong mt module kt hp, mt ktni c thc to ra gia cc cng tng ng ca hai module con, hoc gia cngca module con vi cng ca module kt hp.

    Hnh I-2.2 - Cc kt ni

    Tng ng vi cu trc phn cp ca mt m hnh, cc message thng di chuynqua mt lot cc kt ni vi im bt u v kt thc l cc module n gin. Tp cckt ni i t mt module n gin v n mt module n gin c gi l route. Ccmodule kt hp hot ng ging nh cc cardboard box trong m hnh, trong suttrong vic chuyn tip cc message gia cc thnh phn bn trong v th gii bnngoi.

    S1 S2 S1 S2

    module cha module cha

    module con kt ni vi nhau module con kt ni vi module cha

  • 7/29/2019 Omnet Cong Cu Mo Phong

    9/145

    OMNet++ Bo co thc tp chuyn ngnh

    Trang 9

    2.1.4. M hnh truyn gi tin

    Mt kt ni c th c ba tham sc trng. Nhng tham s ny rt thun tin cho ccm hnh m phng mng thng tin nhng khng hu dng lm cho cc kiu m hnhkhc. Ba tham s ny bao gm:

    trng truyn (propagation delay) tnh bng s - giy.

    T s li bit, c tnh bng s li/bit.

    T s d liu, c tnh bng s bit/s.

    Cc tham s ny l tu chn. Gi tr ca cc tham s ny l khc nhau trn tng ktni, ph thuc vo kiu ca lin kt (hay cn gi l kiu ca knh truyn - channeltype).

    trng truyn l tng thi gian n ca message b tri khi truyn qua knh.

    T s li bit nh hng n qu trnh truyn message qua knh. T s ny l xc sutcc bit b truyn sai. Do xc sut mt message di n bit truyn i chnh xcl:

    P(message gi i c nhn chnh xc) = (1 - ber)ntrong ber l t s li bit v n l s bit ca message.

    Cc message truyn i u c mt c li, cny sc thit lp khi vic truynmessage c li.

    T s d liu c tnh theo n v bit/s, v n c s dng tnh thi gian truyn mt gi tin. Khi t s ny c s dng, qu trnh gi message i trong mhnh s tng ng vi vic truyn bit u tin v message c tnh l n ni sau khi

    bn nhn nhn c bit cui cng.

    Hnh I-2.3 - Truyn message

    A B

    tA tB

    Message nhn c

    Message gi i

    truyn b tr

    trng truyn

  • 7/29/2019 Omnet Cong Cu Mo Phong

    10/145

    OMNet++ Bo co thc tp chuyn ngnh

    Trang 10

    2.1.5. Tham s

    Cc module c th cc tham s.Cc tham s ny c thc t gi tr trong cc fileNED hoc cc file cu hnh ompnetpp.ini.

    Cc tham s ny c thc dng thay i cc thuc tnh ca cc module n ginhoc dng biu din cho topology ca m hnh.

    Cc tham s c th c kiu l chui, s hc, gi tr logic hoc cng c th cha cy dliu XML (XML data tree). Cc bin kiu s trong cc biu thc c th nhn gi tr tcc tham s khc, gi hm, s dng cc bin ngu nhin t cc ngun phn tn hocnhn gi tr trc tip c nhp vo bi ngi s dng.

    Cc tham s c kiu s c thc dng cu hnh topology rt d dng. Nm trongcc module kt hp, cc tham s ny c thc dng ch ra s module con, scng giao tip v cch cc kt ni ni bc to ra.

    2.1.6. Phng php m t topology

    Ngi s dng dng ngn ng NED (Network Description) m t cu trc ca cc

    m hnh

    2.2. Lp trnh thut ton

    Cc module n gin c th cha cc thut ton nh cc hm ca C++. S linh hotv sc mnh ca C++, kt hp vi cc th vin m phng ca OMNeT++ to iukin d dng cho ngi s dng. Cc lp trnh vin m phng c th chn la vic mt theo s kin hay theo tin trnh, c th d dng s dng nhng khi nim ca lptrnh hng i tng (nha hnh, k tha) v thit k cc mu th (pattern) mrng chc nng ca qu trnh m phng.

    Cc i tng m phng (message, module, queue...) c th hin qua cc lp ca

    C++. Mt s lp cbn trong th vin m phng ca OMNeT++: Module, cng, lin kt...

    Cc tham s

    Message

    Cc lp Container (mng, hng i...)

    Cc lp Data Collection

    Cc lp ny c thc s dng nh nhng cng c cho php ngi s dng c thduyt qua tt c cc i tng khi chy th m hnh ng thi hin th thng tin vchng nh tn ca i tng, tn lp, cc bin trng thi v ni dung bn trong. cim ny cng cho php to ra cc m hnh m phng c giao din ho (GUI) vi

    phn cu trc bn trong c che i.

  • 7/29/2019 Omnet Cong Cu Mo Phong

    11/145

    OMNet++ Bo co thc tp chuyn ngnh

    Trang 11

    2.3. S dng OMNeT++

    2.3.1. Xy dng v chy thcc m hnh m phng

    Mt m hnh OMNeT++ bao gm nhng phn sau:

    Ngn ng m t topology - NED (file c phn mrng .ned): m t cu trc

    ca module vi cc tham s, cc cng... Cc file .ned c thc vit bng btk b son tho hoc s dng chng trnh GNED c trong OMNeT++.

    nh ngha cu trc ca cc message (cc file c phn mrng .msg): Ngis dng c thnh ngha rt nhiu kiu messsage v thm cc trng d liucho chng. OMNeT++ s dch nhng nh ngha ny sang cc lp C++ y .

    M ngun ca cc module n gin. y l cc file C++ vi phn m rngl .h hoc .cc.

    H thng m phng cung cp cho ta cc thnh phn sau:

    Phn nhn m phng. Phn ny cha code qun l qu trnh m phng vcc th vin lp m phng. N c vit bng C++, c bin dch v c

    t cng dng vi cc file th vin (cc file c phn mrng l .a hoc .lib).

    Giao din ngi s dng. Giao din ny c s dng khi thc hin qu trnhm phng, to s d dng cho qu trnh sa li, biu din (demonstration)hoc khi thc hin m phng theo tng khi (batch execution of simulations).C mt vi kiu giao din trong OMNeT++, tt cu c vit bng C++,c bin dch v t cng nhau trong cc th vin (cc file c phn mrngl .a hoc .lib).

    Thc hin m phng v phn tch kt qu

    Cc chng trnh thc hin m phng (the simulation executable) l cc chng trnhc lp, tc l n c th chy trn cc my khc khng ci t OMNeT++ hay cc filem hnh tng ng. Khi chng trnh khi ng, n bt u c file cu hnh (thngthng l file omnetpp.ini). File ny cha cc thit lp iu khin qu trnh m

    phng thc hin, cc bin cho cc tham s ca m hnh... File cu hnh cng c thc s dng iu khin nhiu qu trnh m phng, trong trng hp n ginnht l cc qu trnh m phng ny sc thc hin ln lt bi mt chng trnhm phng (simulation program).

    u ra ca qu trnh m phng l cc file d liu. Cc file ny c th l cc file vector,cc file v hng hoc cc file ca ngi s dng. OMNeT++ cung cp mt cng c ho Plove xem v v ra ni dung ca cc file vector. Tuy nhin chng ta cngnn hiu rng kh m c th x l y cc file kt qu m ch dng ringOMNeT++; cc file ny u l cc file c nh dng c thc c bi cc gi

    x l ton hc ca cc chng trnh nh Matlab hay Octave, hoc c thc avo bng tnh ca cc chng trnh nh OpenOffice Calc, Gnumeric hay MicrosoftExcel. Tt c cc chng trnh ny u c chc nng chuyn dng trong vic phntch s ho, v biu din (visualization) vt qua kh nng ca OMNeT++.

    Cc file v hng cng c thc biu din bng cng c Scalar. N c th vccc biu , cc th da vo tp hp cc to (x, y) v c th xut d liu voclipboard c th s dng trong cc chng trnh khc nhm a nhng phn tchchi tit hn.

  • 7/29/2019 Omnet Cong Cu Mo Phong

    12/145

    OMNet++ Bo co thc tp chuyn ngnh

    Trang 12

    Giao din ngi sdng

    Mc ch chnh ca giao din ngi s dng l che nhng phn phc tp bn trongcu trc ca cc m hnh i vi ngi s dng, d dng iu khin qu trnh m

    phng, v cho php ngi s dng c kh nng thay i cc bin hay cc i tngbn trong ca m hnh. iu ny l rt quan trng i vi pha pht trin v sa litrong d n. Giao din ho cng c thc s dng trnh din hot ng cam hnh.

    Cng mt m hnh ngi s dng c th trn nhiu giao din khc nhau m khngcn phi thay i g trong cc file m hnh. Ngi s dng c th kim th v sa lirt d dng qua giao din ho, cui cng c th chy n da trn mt giao din ngin v nhanh chng c h trthc hin theo khi (batch execution).

    Cc thvin thnh phn

    Cc kiu module c thc lu ti nhng v tr c lp vi ch m chng thc sc s dng. c im ny cung cp cho ngi s dng kh nhm cc kiu moduleli vi nhau v to ra cc th vin thnh phn.

    Cc chng trnh m phng c lp

    Cc chng trnh thc hin qu trnh m phng c thc lu nhiu ln, khng phthuc vo cc m hnh, s dng cng mt thit lp cho cc module n gin. Ngis dng c th ch ra trong file cu hnh m hnh no sc chy. iu ny to khnng cho ngi s dng c th xy dng nhng chng trnh thc hin ln bao gmnhiu qu trnh m phng, v phn phi n nh mt cng c m phng c lp. Khnng linh hot ca ngn ng m t topology cng h trcho hng tip cn ny.

    2.3.2. H thng file

    Sau khi ci t OMNet++, th mc omnetpp trn h thng my ca bn nn cha ccth mc con di y.

    H thng m phng:

    omnetpp/ th mc gc ca OMNeT++bin/ cc cng c trong OMNeT++ (GNED, nedtool...)include/ cc file header cho m hnh m phnglib/ cc file th vin

    bitmaps/ cc biu tng hodoc/ cc file hng dn, readme...

    manual/ file hng dn dng HTMLtictoc-tutorial/ gii thiu s dng OMNeT++api/ API tham chiu dng HTMLnedxml-api/ API tham chiu cho th vin NEDXMLsrc/ m ngun ca ti liu

    src/ m ngun ca OMNeT++nedc/ nedtool, trnh bin dch messagesim/ phn nhn m phng

    parsim/ cc file dnh cho vic thc hin phn tnnetbuilder/ cc file dnh cho vic c ng cc file NED

    envir/ m ngun cho giao din ngi s dngcmdenv/ giao din ngi dng dng lnh

  • 7/29/2019 Omnet Cong Cu Mo Phong

    13/145

    OMNet++ Bo co thc tp chuyn ngnh

    Trang 13

    tkenv/ giao din ngi s dng da trn Tcl/tkgned/ cng c son tho file NED

    plove/ cng c v v phn tch u ra dng vectorscalars/ cng c v v phn tch u ra dng v hngnedxml/ th vin NEDXMLutils/ cc tin ch khc...

    test/ b kim th licore/ b kim th li cho th vin m phngdistrib/ b kim th li...

    Cc qu trnh m phng mu c cha trong th mc samplessamples/ th mc cha cc m hnh m phng mu

    aloha/ m hnh ca giao thc Alohacqn/ Closed Queue Network...

    Th mc contrib cha cc chng trnh c th kt hp vi OMNeT++contrib/

    octave/ script ca Octave dng x l kt qu

    emacs/ bnh du c php NED cho EmacsNgoi ra bn cng c th tm thy cc th mc khc nh msvc/, cha cc thnh phntch hp cho Microsoft Visual C++...

  • 7/29/2019 Omnet Cong Cu Mo Phong

    14/145

    OMNet++ Bo co thc tp chuyn ngnh

    Trang 14

    3. NGN NG NED

    3.1 Tng quan v NEDNED c s dng m t topology ca mt m hnh trong OMNeT++. NED sdng phng php m t module ho. iu ny c ngha l mt mng c thc mt nh mt tp hp cc m t thnh phn (cc knh, cc kiu module n gin hay kthp). Cc knh, cc kiu module n gin v kt hp c s dng m t mtmng no c thc s dng li khi m t mt mng khc.

    Cc file cha m t mng thng c phn mrng l .ned. Cc file NED c thcload ng vo cc chng trnh m phng, hay c thc dch sang C++ bng b

    bin dch ca NED v c lin kt bn trong cc chng trnh thc hin.

    3.1.1. Cc thnh phn ca ngn ngm t NED

    Mt filel NED bao gm cc phn nh sau:

    Cc ch dn import

    Khai bo cc knh

    Khai bo cc module n gin v kt hp

    Khai bo mng

    3.1.2. Cc tkho

    Ngi s dng cn phi ch khng s dng nhng t kho c sn ca NED ttn cho cc i tng khc. Cc t kho cbn ca NED bao gm:

    import channel endchannel simple endsimple module endmodule error delay datarateconst parameters gates submodules connections atesizes if for do endfor networkendnetwork nocheck ref ancestor true false like input numeric string bool char xmlxmldoc

    3.1.3. t tn

    Trong NED ngi s dng c tht tn cho cc module, cc knh, cc module con,cc tham s, cc cng, cc thuc tnh v hm chc nng ca knh... Cc tn ny c th

    bao gm cc ch ci ting Anh, cc ch s v du gch di _. Tn lun c tbt u bng ch ci hoc du gch di. Trong trng hp mun t tn bt ubng ch s, bn c th s dng thm mt du gch di t u, v d nh_3Com...

    Nu tn bao gm nhiu t nn vit hoa u mi t hoc c th s dng du gchdi. Tn ca cc module, knh v mng nn bt u bng ch ci in hoa cn tn catham s, cng v cc module con nn bt u bng ch ci thng.

    NED l mt ngn ng c phn bit hoa thng.

  • 7/29/2019 Omnet Cong Cu Mo Phong

    15/145

    OMNet++ Bo co thc tp chuyn ngnh

    Trang 15

    3.1.4. Ch thch

    Cc dng ch thch c tht bt k v tr no trong file NED. Tng t nh cphp ca C++, cc dng ch thch trong NED bt u bng du //.

    Ch thch trong NED c thc s dng trong nhng cng c to ti liu (documentgenerator) nh JavaDoc, Doxygen

    3.2. Cc ch dn import

    T kho import c s dng thm cc khai bo trong cc file m t khc. Sau khi import, ngi s dng c th s dng tt c cc thnh phn c nh nghatrong file m t.

    Ch khi thm mt file m t, ch c cc thng tin khai bo c s dng. Cngtng t nh vy khi mt file c thm vo khng c ngha l n sc dch khifile cha n c dch. Ngi s dng s phi dch tt c cc file ch khng phi chl file mc cao nht.

    Bn c th xc nh mt file thm vo m c hoc khng vit phn mrng.V d:

    import ethenet; //import ethernet.ned

    Bn cng c th s dng ng dn trong khi s dng t kho import hoc tt hn lbn s dng trnh bin dch ca NED vi tham s -I t tn cho th mc cha ccfile m bn mun import.

    3.3. Khai bo cc knh

    Mt nh ngha knh c dng xc nh kiu kt ni. Tn ca knh c thcs dng sau trong file to cc lin kt vi cc tham s khc.

    C php:

    channel Tn knh

    //...

    endchannel

    Ba tham s c thc gn gi tr trong phn thn ca on m khai bo knh, tt ccc tham s ny u l cc tu chn: tr, li v tc d liu (datarate). tr lthi gian tr trn ng truyn c tnh bng giy. Li l tham sc trng cho xcsut truyn sai mt bit trn ng truyn. Tc d liu l tham sc tnh bng

    rng bng thng ca knh truyn, c tnh bng bit/s v c dng tnh thi giantruyn ca mt gi tin. Cc thuc tnh c th xut hin theo bt k th t no trongkhai bo.

    Gi tr ca cc tham s (thuc tnh) nn l cc hng s.

    V d:

    channel LeasedLine

    delay 0.0018 // sec

  • 7/29/2019 Omnet Cong Cu Mo Phong

    16/145

    OMNet++ Bo co thc tp chuyn ngnh

    Trang 16

    error 1e-8

    datarate 128000 // bit/sec

    endchannel

    3.4. Khai bo cc module n ginCc module n gin l cc khi chng trnh c xy dng sn cho cc modulekhc (c th l cc module kt hp). Cc module c khai bo bng tn v theo quyc tn ca cc module ny c t tn bt u bng ch ci in hoa.

    Cc module n gin c khai bo thng qua cc cng v cc tham s.

    C php:

    simple SimpleModuleName

    parameters:

    //...

    gates:

    //...

    endsimple

    3.4.1. Cc tham s ca module n gin

    Cc tham s l cc bin ph thuc vo tng m hnh. Tham s ca cc module ngin c s dng bi cc hm (hay cn c gi l cc thut ton ca module) khai

    bo trong chnh module. Theo quy c cc tham s sc t tn bt u bng chci thng.

    Cc tham sc khai bo bng cch lit k tn sau t kho parameters. Kiu ca cctham s c th l kiu s (numeric), hng s (numeric const hay vit gn l const), gitr logic (bool), kiu chui (string) hoc xml. Khi tham s khng khai bo r kiu thmc nh kiu ca tham s l numeric.

    V d:

    simple TrafficGen

    parameters:

    interarrivalTime,

    numOfMessages : const,

    address : string;

    gates: //...

    endsimple

    Cc tham s c thc gn gi tr t NED (khi cc module c s dng nh cckhi dng sn ca mt khi kt hp ln hn) hoc t file cu hnh omnetpp.ini.

    Tham s ngu nhin v hng s

  • 7/29/2019 Omnet Cong Cu Mo Phong

    17/145

    OMNet++ Bo co thc tp chuyn ngnh

    Trang 17

    Cc tham s c kiu s c thc t tr v mt gi tr ngu nhin theo dngphn phi u (uniformly distributions) hoc cc dng phn phi khc

    Trong a s trng hp, cc tham s thng ch nhn gi tr ngu nhin khi bt ukhi gn, sau gi tr ny c gi nguyn. Khi cc tham s ny phi c khai

    bo l hng s - const. Khai bo mt tham s l const th gi tr ca tham s scxc nh mt ln duy nht khi bt u thc hin m phng v sau gi tr sccoi l hng s. (Ch OMNeT++ khuyn khch vic khai bo mi tham s l consttr nhng trng hp bn mun s dng chc nng to s ngu nhin).

    Tham s XML

    i khi cc module cn u vo l nhng thng tin phc tp hn kh nng m t cacc tham s, khi bn c th s dng mt file cu hnh mrng. OMNeT++ c thc v x l cc file ny thng qua mt tham s cha tn ca file.

    T cc phin bn 3.0 trln, XML c coi l mt dng chun cho cc file cu hnhv OMNeT++ cng tch hp sn cc cng c cho php ngi s dng c th lm vicc vi cc file XML. OMNeT++ cha b phn tch c php XML (XML parser),c kh nng c cc file DTD, s dng b nhm nhcc file (trong trng hpmt file XML c tham chiu ti nhiu module th n s cng ch phi load mt ln),cung cp cho ngi s dng kh nng chn lc cc phn trong ti liu thng quaXPath, th hin ni dung ca file XML thng qua DOM.

    3.4.2. Cc cng ca module n gin

    Cng l cc im kt ni ca module. im bt u v kt thc mt kt ni gia haimodule chnh l cc cng. OMNeT++ h trkiu kt ni mt chiu (n cng) do c hai loi cng l cng vo v cng ra. Cc message c gi i t cng ra v cnhn vo t cng vo. Theo quy c, cc cng c t tn bt u bng ch cithng.

    y chng ta c khi nim v cc vector cng trong mt vector cng l mt tphp bao gm nhiu cng n.

    Cng c khai bo bng cch khai bo tn sau t kho gates. Cp du [] th hinmt vector cng. Cc thnh phn ca mt vector cng c nh s bt u t 0.

    V d:

    simple NetworkInterface

    parameters: //...

    gates:

    in: fromPort, fromHigherLayer;

    out: toPort, toHigherLayer;endsimple

    simple RoutingUnit

    parameters: //...

    gates:

    in: output[];

  • 7/29/2019 Omnet Cong Cu Mo Phong

    18/145

    OMNet++ Bo co thc tp chuyn ngnh

    Trang 18

    out: input[];

    endsimple

    Kch thc ca mt vector cng c thc xc nh sau do mi i tng c thca mt m hnh c th c cc vector cng c kch thc khc nhau.

    3.5. Khai bo module kt hp

    Module kt hp l cc module c th cha mt hoc nhiu cc module con. Bt kkiu module no (n gin hay kt hp) u c thc dng nh l mt module con.Cng ging nh cc module n gin, cc module kt hp cng c cc cng, cctham s v chng c thc s dng bt k ch no m cc module n gin cthc s dng.

    Hnh tng ho chng ta c th tng tng cc module kt hp ging nh cc hpba cng m chng ta c th giu phn m hnh m phng v cc cu trc phc tpbn trong n. Khng c cc hnh vi tch cc (active behaviour) no lin quan n ccmodule kt hp - chng chn gin l mt nhm cc module kt hp trong mtthnh phn ln hn c thc s dng nh mt m hnh hoc nh mt khi dngsn cho cc module kt hp khc.

    Theo quy c, tn ca cc module (bao gm c kiu module kt hp) u c btu bng ch hoa.

    Cc module con c th s dng cc tham s ca module cha. Cc module con ny cth kt ni vi nhau hoc/v kt ni vi module kt hp cha chng.

    Vic khai bo cc module kt hp cng tng t nh khai bo cc module n gin.Phn khai bo cng bao gm cc t kho parameters v gates, ngoi ra n cn sdng thm hai t kho l submodules v connections.

    C php:

    module Tn_module

    parameters:

    //...

    gates:

    //...

    submodules:

    //...

    connections:

    //...

    endmodule

    Ch l tt c cc khai bo trn (parameters, gates, submodules, connections) ch ltu chn.

  • 7/29/2019 Omnet Cong Cu Mo Phong

    19/145

    OMNet++ Bo co thc tp chuyn ngnh

    Trang 19

    3.5.1. Cc tham s v cng ca module kt hp

    Cc tham s v cng ca module kt hp cng c khai bo v hot ng tng tnh cc tham s v cng ca cc module n gin.

    Cc tham s ca module kt hp c thc s dng bi cc module con v thngc dng khi to gi tr cho cc tham s ca cc module con.

    Cc tham s cng c thc s dng xc nh cu trc bn trong ca cc modulekt hp: s cc module con, kch thc ca cc vector cng mt khc cc tham s nycng c thc s dng xc nh cc kt ni bn trong module kt hp.

    Cc tham snh hng n cu trc bn trong ca module nn c khai bo l const gi tr ca tham s khng thay i theo cc ln truy nhp. Tri li nu cc tham sc khai bo l cc gi tr ngu nhin, ngi s dng c th s c cc gi tr khcnhau mi ln tham sc truy nhp trong qu trnh x l ca module kt hp.

    V d:

    module Router

    parameters:

    packetsPerSecond : numeric,

    bufferSize : numeric,

    numOfPorts : const;

    gates:

    in: inputPort[];

    out: outputPort[];

    submodules: //...

    connections: //...

    endmodule

    3.5.2. Cc module con

    Cc module con c khai bo sau t kho submodules. Theo quy c cc modulecon c t tn bt u vi ch ci thng.

    Cc module con c th l mt module n gin hoc mt module kt hp. Trnh bindch NED phi bit c kiu ca module do cc module con phi c khai bosm hn hoc c import t cc file NED khc.

    Ngi s dng cng c kh nng to ra cc vector module con v kch thc cavector ny c th nhn vo t gi tr ca mt tham s. Khi khai bo cc module con,

    bn cn phi gn gi tr cho cc tham s ca module v nu kiu module tng ng cs dng cc vector cng th bn phi xc nh cho n mt kch thc c th.

    V d:

    module Tn_Module_kt_hp

    //...

    submodules:

  • 7/29/2019 Omnet Cong Cu Mo Phong

    20/145

    OMNet++ Bo co thc tp chuyn ngnh

    Trang 20

    tn_module_con_1: Kiu_Module_1

    parameters:

    //...

    gatesizes:

    //...tn_module_con_2: Kiu_Module_2

    parameters:

    //...

    gatesizes:

    //...

    endmodule

    Vector module

    Vector module l mt tp hp (mt mng) cc module con. Kch thc ca vector cthc biu din bng mt biu thc t trong cp du ngoc vung []. Biu thcny c th tham chiu n cc tham s ca module. Gi tr 0 cho s cc module cngc chp nhn.

    V d:

    module CompoundModule

    parameters:

    size: const;

    submodules:

    submod1: Node[3]

    //...

    submod2: Node[size]

    //...

    submod3: Node[2*size+1]

    //...

    endmodule

    3.5.3. Tham s tn kiu module con

    Vic s dng tn ca cc kiu module nh cc tham s to iu kin d dng cho sdng cc module con. Ly v d, cho rng mc ch ca qu trnh m phng l sosnh s khc nhau gia cc thut ton tm ng. Gi s bn lp trnh cc thutton tm ng cn thit nh cc module n gin DistVecRoutingNode,AntNetRouting1Node, AntNetRouting2Node, ... Bn cng to ra mt topologymng nh mt module kt hp gi l RountingTestNetwork phc v cho vic nhgi hot ng ca cc thut ton. Hin ti RountingTestNetworkang s dng thutton DistVecRoutingNode (tt c cc module con u c kiu ny) v bn mun c

  • 7/29/2019 Omnet Cong Cu Mo Phong

    21/145

    OMNet++ Bo co thc tp chuyn ngnh

    Trang 21

    th chuyn i qua li mt cch d dng gia cc thut ton tin li cho vic nhgi.

    thc hin iu ny ta c th s dng thm mt bin l routingNodeType chomodule RoutingTestNetwork. ng thi bn cng khai bo cho NED cc module conca RoutingTestNetwork khng c kiu cnh, m kiu ca cc module ny c lgi tr ca bin routingNodeType. Khi mng m phng ca bn c th d dngthay i cc thut ton trn thng qua gi tr ca tham s nhDistVectRoutingNode, AntNetRouting1Node hoc AntNetRouting2Node.Trong trng hp gi tr ca tham s l sai (cha tn ca mt kiu khng tn ti) qutrnh m phng s b li khi bt u chy - module type definition not found (khai bokiu module khng c tm thy).

    Bn trong module RoutingTestNetwork, ta c th gn gi tr cho cc tham s v tinhnh kt ni vi cc module cha cc thut ton tm ng tng ng. Tuy nhin tng tnh chnh xc, m bo tn ca tham s v cng m bn s dng l chnh xc,

    NED cn c s gip t bn. Bn c th khai bo thm mt module (gi s tn lRoutingNode) v phi m bo chc chn rng tt c cc module m nh s dngthng qua tham s routingNodeType u c cc tham s v cc cng ging nh ca

    module RoutingNode.C php:

    module RoutingTestNetwork

    parameters:

    routingNodeType: string; // should hold the name

    // of an existing module type

    gates: //...

    submodules:

    node1: routingNodeType like RoutingNode;node2: routingNodeType like RoutingNode;

    //...

    connections nocheck:

    node1.out0 --> node2.in0;

    //...

    endmodule

    on m ny nu nhn theo gc ca ngn ng C++ th RoutingNode ng vai trca mt lp cs, DistVecRoutingNode, AntNetRouting1Node l cc lp k tha t

    lp RoutingNode. Tham s routingNodeType tng ng vi con tr tr ti lp cs.Module RoutingNode khng cn c thc hin trong C++ bi khng c i tng cth no ca n c to ra, n chn thun c dng kim tra tnh chnh xc cafile NED. Mt khc, cc module thc s s c thay th (v d nhDistVecRoutingNode, AntNetRouting1Node,...) s khng cn phi khai bo trong file

    NED.

  • 7/29/2019 Omnet Cong Cu Mo Phong

    22/145

    OMNet++ Bo co thc tp chuyn ngnh

    Trang 22

    T kho like cho php bn to ra mt h cc module phc v cho cng mt mc ch,c cng giao tip ging nhau (c cng cc tham s v cc cng) v s dng chngthay th nhau trong file NED.

    3.5.4. Gn gi tr cho cc tham s ca cc module con

    C th gn gi tr cho cc tham s ca cc module con trong phn khai boparameters ca cc module con. Cc tham s ca module con c thc gn gi trnh cc hng s hoc c th s dng ngay cc tham s ca module kt hp cha n,hoc cng c khi gn bng mt biu thc.

    Khng bt buc tt c cc tham su phi khi gn gi tr. Gi tr ca tham s c thnhn trong lc thc hin hoc nhn t file cu hnh hoc trong trng hp gi tr catham s khng c trong file cu hnh, qu trnh m phng s nhc bn. Tuy nhin nucc tham s trong file cu hnh, s d dng hn cho vic sa cha gi tr ca cctham s.

    V d:

    module CompoundModule

    parameters:

    param1: numeric,

    param2: numeric,

    useParam1: bool;

    submodules:

    submodule1: Node

    parameters:

    p1 = 10,

    p2 = param1+param2,p3 = useParam1==true ? param1 : param2;

    //...

    endmodule

    Trong khi m hnh hot ng, cc biu thc gn gi tr vn c tnh ton nu cctham s tng ng c gi n. Ngoi ra gi mt tham s ca module con ta cth s dng c php nh sau: submodule.parametername (hocsubmodule[index].parametername).

    Tkho input

    Khi mt tham s khng nhn gi tr trc tip trong file NED hoc trong file cu hnh,ngi s dng sc nhc nhp gi tr cho tham s khi qu trnh m phng btu thc hin. Tuy nhin nu bn mun chng nhp gi tr tham s khi bt u qutrnh m phng, bn c th s dng t kho input. T kho input cng cho php ngis dng c th thit lp thng bo nhp gi tr hay t gi tr mc nh cho tham s.

    C php:

    parameters:

  • 7/29/2019 Omnet Cong Cu Mo Phong

    23/145

    OMNet++ Bo co thc tp chuyn ngnh

    Trang 23

    numCPUs = input(10, "Number of processors?"), //gi tr mc

    //nh, du nhc

    processingTime = input(10ms), //thng bo nhp gi tr

    cacheSize = input;

    3.5.5. Khai bo kch thc ca cc vector cng ca module conKch thc ca cc vector cng c khai bo bng t kho gatesizes. Kch thc nyc thc khai bo nh mt hng s, mt tham s hay mt biu thc.

    V d:

    simple Node

    gates:

    in: inputs[];

    out: outputs[];

    endsimple

    module CompoundModule

    parameters:

    numPorts: const;

    submodules:

    node1: Node

    gatesizes:

    inputs[2], outputs[2];

    node2: Node

    gatesizes:

    inputs[numPorts], outputs[numPorts];

    //...

    endmodule

    gatesizes l khng bt buc, nu bn mun b qua vic khai bo gatesizes cho vectorcng n sc t bng 0. Mt l do b qua vic gn gi tr cho gatesizes l bns s dng gate++ (extend gate vector with a new gate - vector cng m rng vimt cng mi). gate++ sc trnh by khn trong phn Connection.

    3.5.6. Khai bo gatesizes v tham s c iu kin

    Kch thc ca vector cng v cc tham s trong module con thng c khai bokm thm iu kin.

    V d:

    module Chain

    parameters: count: const;

  • 7/29/2019 Omnet Cong Cu Mo Phong

    24/145

    OMNet++ Bo co thc tp chuyn ngnh

    Trang 24

    submodules:

    node : Node [count]

    parameters:

    position = "middle";

    parameters if index==0:position = "beginning";

    parameters if index==count-1:

    position = "end";

    gatesizes:

    in[2], out[2];

    gatesizes if index==0 || index==count-1:

    in[1], out[1];

    connections:

    //...

    endmodule

    Ch cc gi tr mc nh nn c khai bo u tin bi v NED s duyt t trnxung di, nu gp iu kin ng th cc gi tr tng ng sc chn vo cc gitr mc nh trc . Trong trng hp khai bo gi tr mc nh cui cng, gi trmc nh s c th chn vo gi tr ca mt trng hp iu kin ng trc .

    3.5.7. Kt ni

    Cc kt ni ch ra c th cch cc cng ca module kt hp giao tip vi cc cngtng ng ca module con.

    Kt ni c thc to ra gia hai module con hoc gia module con vi module cha(module kt hp) trc tip cha n (trong mt s t trng hp, mt kt ni cng cthc to ra gia hai cng ca cng mt module kt hp). iu ny c ngha l

    NED khng cho php mt kt ni a cp (kt ni gia hai module xa nhau trong cutrc phn cp). Hn ch ny lm tng tnh c lp v kh nng dng li ca mimodule. Ngoi ra, hng ca module cng rt trong quan trng khi to kt ni. Khngth to mt kt ni gia hai cng ra hoc gia hai cng vo vi nhau.

    NED ch h trkiu kt ni mt-mt do mt cng ring bit c s dng ch xuthin mt ln trong mt kt ni. Kiu kt ni mt-nhiu v nhiu-mt cng c thc to ra bng cch s dng cc module n gin trong cc lung message cnhn i hoc c ghp thm (duplicate message or merge message flows).

    Cc kt ni c lit k sau t kho connections v c phn tch vi nhau bng duchm phy.

    V d:

    module CompoundModule

    parameters: //...

    gates: //...

  • 7/29/2019 Omnet Cong Cu Mo Phong

    25/145

    OMNet++ Bo co thc tp chuyn ngnh

    Trang 25

    submodules: //...

    connections:

    node1.output --> node2.input;

    node1.input node[1].in++;

    node[0].in++ node[2].in++;

    node[1].in++ node[4].in++;

    node[1].in++ node[4].in++;

    node[3].in++ node[5].in++;

    node[4].in++

  • 7/29/2019 Omnet Cong Cu Mo Phong

    26/145

    OMNet++ Bo co thc tp chuyn ngnh

    Trang 26

    C th xut hin trong mt vng lp ( to ra nhiu kt ni).

    C th l iu kin.

    Kt ni n v knh truyn

    Nu bn khng xc nh mt knh truyn, th kt ni s khng c tr v khng c bit

    li khi truyn. Bn c th xc nh mt knh truyn thng qua tn.V d:

    node1.outGate --> Fiber --> node2.inGate;

    Trong trng hp ny file NED phi c khai bo loi knh truyn trn. Hoc ngis dng cng c th xc nh trc tip mt knh truyn qua cc tham sc trng.

    V d:

    node1.outGate --> error 1e-9 delay 0.001 --> node2.inGate;

    Khng nht nh phi khai bo y cc tham s v cc tham s c thc khaibo theo bt k th t no.

    Kt ni vng lp

    Nu module con hoc cc vector cng c s dng, NED cho php ngi s dngc th to ra nhiu hn mt kt ni vi mt khai bo. c gi l mt a kt nihay mt kt ni vng lp.

    for i=0..4 do

    node1.outGate[i] --> node2[i].inGate

    endfor;

    Mt a kt ni thc cht l mt tp hp cc kt ni n c khai bo gn hn nhcu lnh vng lp for...do...endfor.

    Hnh I-3.1 - a kt ni

    Cc kt ni c iu kin

    Ngi s dng c th s dng t kho if rng buc iu kin khi to cc kt ni.V d:

    for i=0..n do

    node1.outGate[i] --> node2[i].inGate if i%2==0;

    endfor;

    Nocheck

  • 7/29/2019 Omnet Cong Cu Mo Phong

    27/145

    OMNet++ Bo co thc tp chuyn ngnh

    Trang 27

    Mc nh, NED quy nh tt c cc cng u phi c kt ni do vy trong nhiutrng hp vic kim tra ny c th gy nhiu phin phc. tt b chc nng ny

    bn c th s dng t kho nocheck.

    3.6. Khai bo mng

    thc s to mt m hnh m phng chy c th ngi s dng phi khai bomng. Vic khai bo mng s to ra mt m hnh m phng nh l mt i tng cth ca mt kiu module nh ngha trc . Kiu module y thng l mtmodule kt hp, tuy nhin cng c th to ra mt mng ch l mt module n ginc lp.

    C th khai bo nhiu mng trong mt hoc nhiu file NED. Chng trnh m phngs dng cc file NED s c th chy bt c mt mng no. Nu bn mun c thmt mng no c thc hin bn c th ch r trong file cu hnh (omnetpp.ini).

    C php khai bo mng cng tng t nh khai bo cc module con:

    network wirelessLAN: WirelessLAN

    parameters:

    numUsers=10,

    httpTraffic=true,

    ftpTraffic=true,

    distanceFromHub=truncnormal(100,60);

    endnetwork

    y WirelessLAN l tn ca mt kiu module kt hp nh ngha t trc, trong c th cha cc kiu module kt hp khc nh WirelessHost, WirelessHub... Mt

    cch t nhin, ch cc kiu module khng c cng mi c thc dng trong cckhai bo mng.

    3.7. Cc biu thc

    Cc biu thc c s dng trong NED c vit theo c php ca C++. Cc biuthc dng cc ton t ca C++, c th s dng cc tham s theo c hai hnh thctruyn theo tham tr hoc tham bin, c th gi cc hm ca C++, nhn cc gi trngu nhin hoc yu cu nhp t ngi s dng...

    Khi mt tham sc gn tr bng mt biu thc th gi tr biu thc chc tnhmi ln tham s c gi ti (tr khi tham sc khai bo const). iu ny c

    ngha l mt module n gin s dng mt tham s khng c khai bo const snhn c cc gi tr khc nhau mi ln gi tham s trong qu trnh m phng. Cc

    biu thc khc (cha cc tham sc khai bo const) s chc tnh mt ln. Cctham s c kiu XML c thc dng truy nhp vo cc file XML hay mt phnno ca cc file ny. Tham s kiu XML c thc gn gi tr bng ton txmldoc().

  • 7/29/2019 Omnet Cong Cu Mo Phong

    28/145

    OMNet++ Bo co thc tp chuyn ngnh

    Trang 28

    3.7.1. Hng s

    Hng s hc

    Hng s hc thng l cc s dng thp phn hoc cc s thp phn vi du phyng.

    Hng chui k t

    Hng chui k tc khai bo gia cp du ngoc kp.

    Hng thi gian

    s dng hng thi gian bn phi s dng thm cc t kho chn v thi gian.

    V d:

    ...

    parameters:

    propagationDelay = 560ms, // 0.560 giy

    connectionTimeout = 6m 30s 500ms, // 390.5 giy

    recoveryIntvl = 0.5h; // 30 pht

    Cc n v thi gian c thc s dng:

    n v ngha

    ns nano giy

    us micro giy

    ms mili giy

    s giy

    m pht (60 giy)

    h gi(3600 giy)

    d ngy (86400 giy)

    3.7.2. Tham chiu

    Cc biu thc c th s dng cc tham s ca module kt hp trc tip cha n v cacc module n gin c khai bo trc trong file NED.

    C php: submod.param hoc submod[index].param.

    C hai t kho c thc s dng vi tn ca tham s: ancestor v ref.

    ancestor c ngha l nu mt module kt hp khng cha mt tham s no, th thams s c tm kim trong cc module cp cao hn trong cu trc phn cp.ancestor khng c khuyn khch s dng bi v n xm phm ti khi nim ng

  • 7/29/2019 Omnet Cong Cu Mo Phong

    29/145

    OMNet++ Bo co thc tp chuyn ngnh

    Trang 29

    gi thng tin (encapsulation) v c th chc kim tra trong thi gian chy. N chnn c s dng trong mt s t nhng trng hp thc s cn thit.

    ref ly gi tr ca tham s bng phng php tham chiu, c ngha l vic thay i gitr ca tham s trong thi gian chy s gy nh hng ti tt c cc module thamchiu ti tham s ny. Cng ging nh ancestor, ref nn c s dng hn ch. Mttrng hp c th s dng ref l khi phi iu chnh m hnh trong thi gian chy tm iu kin ti u. Ngi s dng c th khai bo mt tham smc cao nht cam hnh v t cc module khc tham chiu ti tham s ny. Khi bn thay i thams ny trong thi gian chy, n s nh hng ti ton b m hnh. Trong mt strng hp khc, cc tham sc tham chiu c thc dng nh cc bin trngthi i vi cc module bn cnh.

    3.7.3. Cc ton t

    Cc ton tc h tr trong NED cng tng t nh cc ton t trong C/C++, tuynhin cng c mt s khc bit:

    Du ^ c dng cho php tnh lu tha (khng phi l php XOR cc bit nh trong

    C).Du # c s dng cho php ton logic XOR (tng t nh du !=) v ## c dngcho php ton bit XOR.

    Th tu tin ca cc php ton bit (&, |, #) l cao nht so vi cc ton t quan hkhc.

    Tt c cc bin trong NED u c kiu doubles. i vi cc ton t bit, kiu doublesc chuyn thnh kiu unsigned long bng hm chuyn i c sn ca C/C++ (typecast), sau khi php ton c thc hin kt qu sc chuyn i li thnh kiudoubles. Tng t i vi cc ton t logic &&, || v ##, cc ton hng s cchuyn sang kiu bool (type cast) v sau kt qu s li c i v kiu doubles.i vi php chia ly phn d (%), ton hng sc chuyn sang kiu long.

    Danh sch cc ton t v th tu tin:

    Ton t ngha

    -, !, ~ du m, phnh, ly phn b ca bit

    ^ php ton lu tha

    *, /, % php nhn, chia, chia ly phn d

    +, - php cng, tr

    php dch bit

    &, |, # php ton bit and, or, xor

    ==

    !=

    so snh bng

    so snh khc

  • 7/29/2019 Omnet Cong Cu Mo Phong

    30/145

    OMNet++ Bo co thc tp chuyn ngnh

    Trang 30

    >, >=

  • 7/29/2019 Omnet Cong Cu Mo Phong

    31/145

    OMNet++ Bo co thc tp chuyn ngnh

    Trang 31

    xmldoc() nhn vo tn file.V d: xmlparam = xmldoc(someconfig.xml);

    xmldoc() nhn vo tn file cng thm XPath, biu thc ch ra mt element c thc chn trong file XML.V d: xmlparam = xmldoc("someconfig.xml", "/config/profile[@id=2]");

    3.7.6. XML v XPath

    Tham s XPath ca ton t xmldoc() ch ra mt element c th trong file XML, iuny cho php d dng ni nhiu file cu hnh dng XML nh thnh mt file ln hn.

    Nu biu thc XPath ph hp vi nhiu element trong file th element u tin (th tduyt theo chiu su) sc chn.

    C php ca biu thc:

    Biu thc cha ng dn trong cc thnh phn c phn tch bng du / hoc//.

    Cc thnh phn ca ng dn c th l tn th (tag name) ca cc element, du *,. hoc ... Tn th ca cc element v du * c th c thm biu thc m tthuc tnh ca element theo dng [v tr] hoc [@thuc_tnh=gi tr]. V tr cacc element trong file XML c tnh bt u t 0.

    Du / c ngha l xt cc element con; du // s xt n cc element bt k cpno nm di element hin thi.

    Du ., .. v * ln lt i din cho element hin thi, element cha v mtelement vi tn bt k.

    V d:

    /foo element gc (root element) c tn l

    /foo/bar element con u tin ca element gc

    //bar element u tin bt k cp no (duyt theo chiu su)/*/bar element con u tin ca element gc c tn bt k

    /*/*/bar element con u tin di hai cp ca element gc

    /*/foo[0] element con u tin ca element gc

    /*/foo[1] element con th hai ca element gc

    /*/foo[@color=green] element con u tin c thuc tnh color c gi trbng green

    //bar[1] mt element v tr bt k nhng phi l element th hai

    //*[@color=yellow] bt k element no bt k v tr no c thuc tnh "color" cgi tr bng "yellow"

    //*[@color=yellow]/foo/bar element con u tin ca element con u tin ca mt element c thuc tnh color bng yellow v tr bt k.

    3.7.7. Hm

    Trong NED, bn c th s dng cc hm ton hc sau:

  • 7/29/2019 Omnet Cong Cu Mo Phong

    32/145

    OMNet++ Bo co thc tp chuyn ngnh

    Trang 32

    Rt nhiu hm c trong th vin ton ca C (math.h) nh exp(), log(), sin(), cos(),floor(), ceil()...

    Cc hm to gi tr ngu nhin: uniform, exponential, normal...

    3.7.8. Gi tr ngu nhin

    Cc tham s tr khi c khai bo l const, nu khng gi tr ca cc tham s thngl cc gi tr ngu nhin. Cc gi tr ny l khc nhau mi ln tham sc gi n.Cc gi tr ngu nhin c sinh ra nh b to s ngu nhin (Random NumberGenerator - RNG) ca OMNeT++.

    Hm M t

    Lut phn phi lin tc

    uniform(a, b, rng=0) lut phn phi u trong khong [a, b)

    exponential(mean, rng=0) lut phn phi theo lut s m vi gi tr trung bnhmean

    normal(mean, stddev, rng=0) lut phn phi bnh thng vi gi tr trung bnhmean v lch chun stddev

    truncnormal(mean, stddev,rng=0)

    lut phn phi bnh thng loi b cc s khngm

    gamma_d(alpha, beta, rng=0) lut phn phi gamma vi alpha > 0 v beta > 0

    beta(alpha1, alpha2, rng=0) lut phn phi beta vi alpha1>0 v alpha2>0

    erlang_k(k, mean, rng=0) lut phn phi Erlang vi k>0 pha v gi tr trungbnh mean

    chi_square(k, rng=0) lut phn phi chi_square vi k>0 t do

    student_t(i, rng=0) lut phn phi student_t vi i>0 t do

    cauchy(a, b, rng=0) lut phn phi Cauchy vi cc tham s a, b trongb>0

    triang(a, b, c, rng=0) lut phn phi tam gic vi cc tham s a0, b>0

    pareto_shifted(a, b, c, rng=0) lut phn phi Pareto tng qut vi cc tham s a,

  • 7/29/2019 Omnet Cong Cu Mo Phong

    33/145

    OMNet++ Bo co thc tp chuyn ngnh

    Trang 33

    b v dch c.

    Lut phn phi ri rc

    intuniform(a, b, rng=0) lut phn phi u vi cc s nguyn nm trongkhong a..b

    bernoulli(p, rng=0) kt qu ca php th Bernoulli vi xc sut p,0

  • 7/29/2019 Omnet Cong Cu Mo Phong

    34/145

    OMNet++ Bo co thc tp chuyn ngnh

    Trang 34

    mt tn khc vi tn m hm c gi khi s dng. Trong trng hp hm khng trv kiu double bn cng c th lm tng t.

    #include

    long factorial(int k)

    {

    ...

    }

    static double _wrap_factorial(double k)

    {

    return factorial((int)k);

    }

    Define_Function2(factorial, _wrap_factorial, 1);

  • 7/29/2019 Omnet Cong Cu Mo Phong

    35/145

    OMNet++ Bo co thc tp chuyn ngnh

    Trang 35

    4. GII THIU GNED

    4.1. Giao din

    Giao din ca GNED h trhai ch:

    ho (Graphics): l giao din mc nh.

    M ngun (NED Source): cho php ngi s dng c th sa li m ngunmt cch trc tip.

    Hai kiu giao din ny c thanh Command Bar l khc nhau. i vi ch ho,thanh Command Bar c dng:

    New NED file: to mt file NED mi. GNED cho php to nhiu file NED cngmt lc.

    Open NED file: mmt file NED.

    Save Document: Ghi file NED hin thi.

  • 7/29/2019 Omnet Cong Cu Mo Phong

    36/145

    OMNet++ Bo co thc tp chuyn ngnh

    Trang 36

    Add new component to current NED file: mt danh sch th xung (dropdownlist) cho php ngi s dng mt trong 5 thnh phn c th thm vo file NED:Import, Channel, Simple Module, Compound Module v Network.

    Back to previous view: quay li ch giao din trc trong History.

    Forward to next view: chuyn ti ch giao din tip theo trong History.

    Select, move or resize items button: khi nt ny c kch hot, n cho phpngi s dng c th chn, di chuyn v thay i kch thc cc i tng trong ch ho.

    Draw submodules and connection tool: Cng c to cc module con v cc ktni. Kch chut v ko r to cc module con. Kch chut bn trong mt modulecon ko r sang module khc to kt ni mt chiu gia hai module. to mtkt ni hai chiu ta thc hin vic to kt ni mt chiu hai ln theo chiu ngc nhau.

    Appearance of selected items: Chc nng hot ng khi mt (v ch mt) itng c chn. N s lm xut hin cc trnh n nh Submodule Appearance,Module Appearance hay Connection Appearance. Cc trnh n ng cnh ny cho

    php bn m t chi tit cho i tng c chn.

    Properties of selected items: thuc tnh ca i tng c chn.

    Snap to grid on/off switch: bt/tt ch bt dnh vo li im.

    Fit compound module to area content: n nt ny s lm cho bin ca modulecha c mrng ra cha trn vn bin ca tt c cc module con.

    Trong ch NED Source, thanh Command Bar c dng:

    Bn nt u c chc nng tng t nh trong ch Graphic.

    Back to previous module: kch hot module chn trc .

    Forward to next module: kch hot module tip theo.

    Cut: di chuyn vo clipboard.

    Copy: sao chp vo clipboard.

    Paste: dn t clipboard.

    Undo: hu b thao tc va thc hin.

    Redo: lp li thao tc va hu b.

    Find Text: tm kim trong vn bn. Chc nng ny s lm xut hin hp thoi:

  • 7/29/2019 Omnet Cong Cu Mo Phong

    37/145

    OMNet++ Bo co thc tp chuyn ngnh

    Trang 37

    Hp thoi cho php tm kim vi cc chc nng (b lc): regular expression, casesensitive...

    Phn bn tri ca giao din l Tree View. Tree View cho php quan st tt c cc filev cc module ang c m.

    Hai mc nedfile Untitled c nh du mu nhc nh l hai file ny chaSave.

    Nu bn kch phi chut vo mt mc no trong Tree View, mt trnh n ng

    cnh s hin ra. Trnh n ny cha cc thao tc cbn m bn c th thao tc vi itng tng ng.

    Khi bn mi s dng GNED, s thng c mt ca s nh hin ln mi ln bn thchin mt thao tc. Ca s ny gii thch cho bn cch thc hot ng ca mt s chcnng phc tp trong giao din ca GNED. Bn c tt chc nng ny bng cch nhdu vo hp chn pha di ca ca s. y l mt chc nng rt hu ch v vy khi

    bn tt chc nng ny i, mun n xut hin trli bn phi xo file .gnedrc.

  • 7/29/2019 Omnet Cong Cu Mo Phong

    38/145

    OMNet++ Bo co thc tp chuyn ngnh

    Trang 38

    4.2. Mt s thao tc c bn

    To mt module con trong module kt hp

    Kch thc ca module kt hp s tng iu chnh cho ph hp vi module conc to ra. Nh ni trn nu bn l mt ngi s dng mi, s c mt ca shng dn nh xut hin:

    Nhn OK, tng t bn to thm mt vi module nh trong hnh v:

  • 7/29/2019 Omnet Cong Cu Mo Phong

    39/145

    OMNet++ Bo co thc tp chuyn ngnh

    Trang 39

    Tip theo ta s dng cng c chn mt trong cc module con va c to ra.Bin ca module c chn chuyn thnh mu .

    n nt , bn s thy trnh n ng cnh Submodule Appearance:

    Trnh n ny cho php ngi s dng c th thay i hnh dng ca module contng ng. Kch chn chc nng Icon chn mt Icon biu din cho module quatrnh duyt ho.

  • 7/29/2019 Omnet Cong Cu Mo Phong

    40/145

    OMNet++ Bo co thc tp chuyn ngnh

    Trang 40

    Bn c th s dng nhng Icon c sn ca OMNeT++ hoc c th thm cc Icon caring mnh bng cch copy cc file bitmap vo th mc bitmap ca OMNeT++.

    Chn Icon ball vi kch thc trung bnh (normal). Ta cng c th thay i musc cho cc Icon.

    Chuyn Icon ball t mu xm sang mu xanh: kch vo hnh ch nht bn cnh Colorize icon, mt bng chn mu s hin ra

  • 7/29/2019 Omnet Cong Cu Mo Phong

    41/145

    OMNet++ Bo co thc tp chuyn ngnh

    Trang 41

    Sau khi chn mu xanh, by gibn c th xem li hnh dng ca module con m bnva mi thay i so vi hnh ch nht ca cc module c.

    Chuyn sang ch nhn NED Source

    Bn c th thy m ngun ca m hnh m bn va to:

    Ch l i vi module con th nht nhng thay i v mt hnh thc ca n cdin t trong chui i=ball, #0080ff. Bng cch s dng cc chc nng copy, paste ta

  • 7/29/2019 Omnet Cong Cu Mo Phong

    42/145

    OMNet++ Bo co thc tp chuyn ngnh

    Trang 42

    c th thay i hnh thc cho cc module con cn li m khng cn phi mtrnh nSubmodule Appearance cho tng module tng ng.

    sinh ng hn, ta thay i tham s mu sc cho cc module cn li, submod1thnh #ff80ff v submod2 thnh #ff8000. Kt quc th hin hnh di:

    Nh vy trong GNED, hai ch giao din c nh hng qua li ln nhau. Nhngthay i trong ch ny cng nh hng n ch cn li.

    By gichng ta s s dng cc module ny th nghim chc nng ca b to s

    ngu nhin (Random Number Generator - RNG). Trc tin, kch phi chut vo tngmodule v chn chc nng Rename i tn cho cc module theo th t ln lt lrng, checker v counter.

    rng s sinh ra cc s ri chuyn qua cho checker. checker s tnh li trn mi sv ch chuyn cho counter cc s chn, cc s l s b bi. counter s ghi li slng s chn m nhn c trong tng pht, v s ny sc truyn i cho ccthnh phn bn ngoi khi c yu cu.

    Ta s dng cng c to kt ni theo m hnh m ttrn. rng phi ni vichecker v checker ni vi counter.

  • 7/29/2019 Omnet Cong Cu Mo Phong

    43/145

    OMNet++ Bo co thc tp chuyn ngnh

    Trang 43

    counter cn c nhim v nhn v gi message vi cc thnh phn bn ngoi, do ta phi to thm cc kt ni cn thit. kt ni mt module vi bn ngoi, ko rchut t tm module ti bin ca vng mu xm. kt ni ny l hai chiu, ta tinhnh to kt ni theo chiu ngc li t bin vo tm ca module.

    By gi ta i tn cho module kt hp thnh rnd_eval bng cch kch phi chutvo dng ch Module nm gc trn tri ca vng mu xm, chn chc nng

    Rename trong trnh n ng cnh tng ng.Save file vi tn Random_Number_Evaluator.ned, chng ta c mt file NEDhon chnh.

    4.3. Lm vic vi nhiu file NED - Cc chc nng chnh sanng cao

    Nhn nt to mt ti liu NED mi. To mt module con mi c tn lconductor.

  • 7/29/2019 Omnet Cong Cu Mo Phong

    44/145

    OMNet++ Bo co thc tp chuyn ngnh

    Trang 44

    Sau ko r module rnd_eval ca file ta va to trn vo module Module cafile mi ba ln.

    Cc module rnd_eval s ln lt c t tn l rnd_eval, rnd_eval1,rnd_eval2. Sau ta to kt ni hai chiu gia module conductor vi cc modulernd_eval va thm vo. Module conductor s thnh thong yu cu cc s liu cacc module rnd_eval v cc module ny s gi message tr li.

  • 7/29/2019 Omnet Cong Cu Mo Phong

    45/145

    OMNet++ Bo co thc tp chuyn ngnh

    Trang 45

    Quan st trn Tree View, ta s thy cc kt ni va c tng to ra

    V file NED cng c nhng thay i tng ng

  • 7/29/2019 Omnet Cong Cu Mo Phong

    46/145

    OMNet++ Bo co thc tp chuyn ngnh

    Trang 46

    Save file mi ny vi tn conductor.ned.

    th nghim ca chng ta thc s hot ng, chng ta cn phi khai bo Rnd,Checker, Counter nh cc module n gin.

    Bc u tin, chng ta to 3 module n gin. n nt , hoc s dng trnh nng cnh trn Tree View thm vo mt module n gin. Ca s ModuleProperties xut hin, chn tab Reneral v g vo Name tn ca module Rnd.

    Chn tab Parameters nh ngha cc tham s (cc tham s ny c th sc ccRNG s dng), bng cch ny bn c th cu hnh li sau ny.

  • 7/29/2019 Omnet Cong Cu Mo Phong

    47/145

    OMNet++ Bo co thc tp chuyn ngnh

    Trang 47

    Chn tab Gates v khai bo mt cng, qua cc s ngu nhin sinh ra s ctruyn i. Bn c th s dng trng End-line comment vit ch thch cho chcnng ca cng.

    By gimodule Rnd sn sng v bn c thiu khin hot ng ca module nythng qua cc file tng ng Rnd.cc v Rnd.h.

    Tng t nh trn, ta tip tc khai bo cc module n gin c kiu Checker vCounter.

    Tip theo ta thay i kiu ca mi module con bn trong module rnd_eval cho phhp vi cc kiu module n gin mi m ta va to ra. Kch chut phi vo tnmodule rng, chn Properties..., sau chn trong Type kiu Rnd.

  • 7/29/2019 Omnet Cong Cu Mo Phong

    48/145

    OMNet++ Bo co thc tp chuyn ngnh

    Trang 48

    Thay i tng ti vi cc module cn li, sau save file li.

    Bn thy rng cc module con rng, checker v counter c cc kiu moduletng ng. Ngoi ra, nu bn kch chut phi vo simple Rnd v chn Show NEDcode..., bn s thy nhng khai bo bn thc hin trong ca s Module Properties trn c th hin di dng m:

    Quay li vi fiel Conductor.ned, file ny s dng module rnd_eval, mt modulekt hp c nh ngha trong file Random_Number_Evaluator.ned. Do bn

  • 7/29/2019 Omnet Cong Cu Mo Phong

    49/145

    OMNet++ Bo co thc tp chuyn ngnh

    Trang 49

    phi import file Random_Number_Evaluator.ned c th s dng modulernd_eval.

    n nt v chn mc Imports

    G tn Random_Number_Evaluator vo trng Name (ch khng g thm phnmrng .ned). Ngoi ra bn c th thm vo cc li ch thch hai ct tip theo.

    Save file conductor.ned.

    Bn hon thnh mt m hnh mng n gin. chy c m hnh ny, bn phitrin khai cc module n gin trong C++ v xy dng cc file .exe.

  • 7/29/2019 Omnet Cong Cu Mo Phong

    50/145

    OMNet++ Bo co thc tp chuyn ngnh

    Trang 50

    5. MODULEN GIN

    5.1 Module n gin trong OMNeT++Ta s dng C++ xy dng cc simple module thc hin cc s kin, hay nikhc i l thc hin cc hot ng (behaviour) ca m hnh.

    Cc module do ngi lp trnh xy dng thng l cc lp k tha t lpcSimpleModule trong th vin ca OMNeT++.

    Mi module thng cha cc hm sau:

    void initialize()

    void handleMessage(cMessage *msg)

    void activity()

    void finish()

    Hm khi to initialize()

    Trong qu trnh khi to, OMNeT++ s xy dng mng: n to ra cc module n vcc module kt hp (compound module). Sau kt ni chng theo cc khai bo vnh ngha trong file NED.

    Hm handleMessage() and activity()

    Cc hm ny c gi khi trong qu trnh x l s kin. Nh vy hu ht hot ngca h thng c m phng s c lp trnh trong cc hm ny. HmhandleMessage() sc nhn m phng (simulation kernel) gi khi module nhn

    c mt gi tin. V thng thng, ta ch yu xy dng hm handleMessage() thayv hm activity().

    Hm finish()

    Hm finish() c gi khi qu trnh m phng kt thc thnh cng. Ngoi ra, mtng dng ch yu ca hm ny cn l thu thp cc thng k v qu trnh m phng.

    5.2 Cc s kin trong OMNeT++

    OMNeT++ s dng cc message biu din cc s kin. Mi s kin c biu dinbi mt i tng ca lp cMessage hoc lp con ca lp ny.

    5.3 M hnh ho hot ng truyn gi tin

    Tng t nh trnh by trong phn 2.1.4, Mt kt ni c th c ba tham sctrng. Nhng tham s ny rt thun tin cho cc m hnh m phng mng thng tinnhng khng hu dng lm cho cc kiu m hnh khc. Ba tham s ny bao gm:

    trng truyn (propagation delay) tnh bng s - giy.

  • 7/29/2019 Omnet Cong Cu Mo Phong

    51/145

    OMNet++ Bo co thc tp chuyn ngnh

    Trang 51

    T s li bit, c tnh bng s li/bit.

    T s d liu, c tnh bng s bit/s.

    Cc tham s ny l tu chn. Gi tr ca cc tham s ny l khc nhau trn tng ktni, ph thuc vo kiu ca lin kt (hay cn gi l kiu ca knh truyn - channeltype).

    5.4 Khai bo kiu module n gin

    5.4.1 Tng quan

    Mt module vit bng C++ bao gm:

    Khai bo lp module: lp do ngi lp trnh xy dng l lp con ca lpcSimpleModule.

    ng k kiu ca module (module type registration): Define_Module() hocDefine_Module_Like() macro.

    Trin khai c th lp module.

    Xt VD sau:

    // file: swp.cc

    #include

    // module class declaration:

    class SlidingWindowProtocol : public cSimpleModule

    {

    Module_Class_Members(SlidingWindowProtocol,cSimpleModule,0)

    virtual void handleMessage(cMessage *msg);

    };

    // module type registration:

    Define_Module( SlidingWindowProtocol );

    // implementation of the module class:

    void SlidingWindowProtocol::handleMessage(cMessage *msg)

    {

    ...

    }

    Module trn c khai bo trong file NED nh sau:

    // file: swp.ned

  • 7/29/2019 Omnet Cong Cu Mo Phong

    52/145

    OMNet++ Bo co thc tp chuyn ngnh

    Trang 52

    simple SlidingWindowProtocol

    parameters:

    windowSize: numeric const;

    gates:

    in: fromNetw, fromHigherLayer;out: toNetw, toHigherLayer;

    endsimple

    5.4.2 ng k kiu module

    Trong VD trn cha cu lnh:

    Define_Module(SlidingWindowProtocol);

    Dng lnh ny s khin cho OMNeT++ bit rng ta mun dng lpSlidingWindowProtocol di dng 1 module n. ng thi OMNeT++ framework s

    tm file NED c cng tn cha khai bo v module ny(simple SlidingWindowProtocol...endsimple)

    xc nh cc cng v cc tham s m module ny cn c.

    5.5 Xy dng hm cho Module

    5.5.1 Hm handleMessage()

    Hm handleMessage() c gi khi mi message n module. Khi hm ny s xl gi tin v tr li kt qu ngay lp tc.

    Ch rng cc module hm handleMessage() KHNG c tng gi, m phinhn c gi tin t module khc. Mun ta phi thm cc self-message t hm khito initialize() th hm handleMessage() s bt u lm vic m khng cn phi nhngi tin t module khc.

    s dng hm handleMessage() trong mt module, ta phi xc nh kch thc cazero stack size cho module . Bi l kch thc ca zero stack s khin OMNeT++

    bit ta mun s dng hm handleMessage() hay activity().

    Mt s hm thng dng m ta c th s dng trong hm handleMessage():

    Cc hm send(): gi gi tin ti cc module khc.

    Hm scheduleAt(): nh k mt s kin (thng l module t gi gi tincho chnh n)

    Hm cancelEvent(): hy bnh k mt s kin nhhm scheduleAt()

    Ch rng cc hm receive() v wait() khng c s dng trong vic xy dng hmhandleMessage(), m ch dng khi ta mun xy dng hm activity().

    VD 1:

  • 7/29/2019 Omnet Cong Cu Mo Phong

    53/145

    OMNet++ Bo co thc tp chuyn ngnh

    Trang 53

    class FooProtocol : public cSimpleModule

    {

    protected:

    // state variables

    // ...

    virtual void processMsgFromHigherLayer(cMessage *packet);

    virtual void processMsgFromLowerLayer(FooPacket *packet);

    virtual void processTimer(cMessage *timer);

    public:

    Module_Class_Members(FooProtocol, cSimpleModule, 0);

    virtual void initialize();

    virtual void handleMessage(cMessage *msg);

    };

    // ...

    void FooProtocol::handleMessage(cMessage *msg)

    {

    if (msg->isSelfMessage())

    processTimer(msg);

    else if (msg->arrivedOn("fromNetw"))

    processMsgFromLowerLayer(check_and_cast(msg));

    else

    processMsgFromHigherLayer(msg);

    }

    5.5.2 Hm activity()

    Cc hm quan trng m ta c th gi trong hm ny bao gm:

    receive()

    wait()

    send()

    scheduleAt()

    cancelEvent()

    end()

  • 7/29/2019 Omnet Cong Cu Mo Phong

    54/145

    OMNet++ Bo co thc tp chuyn ngnh

    Trang 54

    5.5.3 Hm initialize() v finish()

    Hm initialize(): khi to cc gi tr cn thit cho qu trnh m phng

    Hm finish(): hm ny c s dng ghi li cc thng s trng thi cn thit khiqu trnh m phng kt thc.

    5.6 Gi v nhn cc message

    5.6.1 Gi cc message

    Sau khi to ra cc gi tin, ta c th gi n thng qua mt cng vo/ra nhhm send()vi c php nh sau:

    send(cMessage *msg, const char *gateName, int index=0);

    send(cMessage *msg, int gateId);

    send(cMessage *msg, cGate *gate);

    V d:

    send(msg, "outGate");

    send(msg, "outGates", i); // send via outGates[i]

    on m sau s to ra v gi cc gi tin sau mi 5 giy.

    int outGateId = findGate("outGate");

    while(true)

    {

    send(newcMessage("packet"), outGateId);

    wait(5);

    }

    5.6.2 Broadcasts

    Khi ta mun cng mt gi tin ti nhiu nt ch ng thi, th dng phng php tora nhiu bn sao ca gi tin v gi chng i.

    V d:

    for (int i=0; idup();

    send(copy, "out", i);

    }

    delete msg;

  • 7/29/2019 Omnet Cong Cu Mo Phong

    55/145

    OMNet++ Bo co thc tp chuyn ngnh

    Trang 55

    5.6.3 Gi c tr (Delayed sending)

    wait( someDelay );

    send( msg, "outgate" );

    C php cng tng t nh trn, ch thm tham s thi gian tr

    sendDelayed(cMessage *msg, double delay, const char *gateName, int index);

    sendDelayed(cMessage *msg, double delay, int gateId);

    sendDelayed(cMessage *msg, double delay, cGate *gate);

    V d:

    sendDelayed(msg, 0.005, "outGate");

    5.6.4 Gi trc tip message

    S dng hm sendDirect() gi trc tip gi tin t module ny ti module kia mkhng cn quan tm n thng qua cng no.

    sendDirect(cMessage *msg, double delay, cModule *mod, int gateId)

    sendDirect(cMessage *msg, double delay, cModule *mod, const char *gateName,int index=-1)

    sendDirect(cMessage *msg, double delay, cGate *gate)

    V d

    cModule *destinationModule = parentModule()->submodule("node2");

    double delay = truncnormal(0.005, 0.0001);

    sendDirect(new cMessage("packet"), delay, destinationModule, "inputGate");

    5.6.5 Gi nh k

    scheduleAt(absoluteTime, msg);

    scheduleAt(simtime()+delta, msg);

    5.7 Truy nhp cc cng v kt ni

    5.7.1 i tng cng (gate object)Module cng l mt i tng ca lp cGate. Hm gate() s tr v 1 con tr ti itng cGate. V mun truy cp vo tng thnh phn ca cng , ta thc hin chnghm

    cGate *outgate = gate("out");

    cGate *outvec5gate = gate("outvec",5);

  • 7/29/2019 Omnet Cong Cu Mo Phong

    56/145

    OMNet++ Bo co thc tp chuyn ngnh

    Trang 56

    Gate ID

    Cc module cng c lu tr trong mt mng. Vi tr ca cng trong mng i lgate ID. xc nh gate ID, ta dng hm id()hoc hm findGate()

    int id = outgate->id();

    or:

    int id1 = findGate("out");

    int id2 = findGate("outvect",5);

    Nh, c th gi v nhn gi tin thng qua tham s l gate ID. Thng thng thvic s dng gate ID s nhanh hn l dng tn cng.

    5.7.2 Cc tham s kt ni

    Cc thng s thng s cbn ca ng truyn: tr, t l bit li, tc truyn cbiu din thng qua i tng channel.

    cChannel *chan = outgate->channel();

    cBasicChannel *chan = check_and_cast(outgate->channel());

    double d = chan->delay();

    double e = chan->error();

    double r = chan->datarate();

    5.8 Tng to module

    Trong mt s tnh hung, ta cn phi tng to v hy cc module. Chng hn khim phng mt mng di ng, ta cn to mt module mi khi ngi dng tin vovng kt ni v hy module ny khi ngi ra khi vng kt ni.

    Qu trnh trn gm 5 bc:

    1. Tm loi module.

    2. To module

    3. Thit lp cc tham s v kch thc cng (nu cn)

    4. Gi hm xy dng (build out) cc module con v hon thnh module chnh.

    5. Gi hm to cc gi tin chng (activation message) cho mi module n.V d:

    // find factory object

    cModuleType *moduleType = findModuleType("WirelessNode");

    // create (possibly compound) module and build its submodules (if any)

  • 7/29/2019 Omnet Cong Cu Mo Phong

    57/145

    OMNet++ Bo co thc tp chuyn ngnh

    Trang 57

    cModule *module = moduleType->create("node", this);

    module->buildInside();

    // create activation message

    module->scheduleStart( simTime() );

    Hy module

    module->deleteModule();

    To cc kt ni

    srcGate->connectTo(destGate);

    To 2 module v kt ni chng vi nhau:

    cModuleType *moduleType = findModuleType("TicToc");

    cModule *a = modtype->createScheduleInit("a",this);

    cModule *b = modtype->createScheduleInit("b",this);

    a->gate("out")->connectTo(b->gate("in"));

    b->gate("out")->connectTo(a->gate("in"));

    Hy kt ni

    srcGate->disconnect();

  • 7/29/2019 Omnet Cong Cu Mo Phong

    58/145

    OMNet++ Bo co thc tp chuyn ngnh

    Trang 58

    6. MESSAGE

    6.1. Message v Packet6.1.1. Lp cMessage

    cMessage l mt lp trung tm ca OMNeT++. i tng ca lp cMessage v cclp con ca n c th m hnh ho c rt nhiu i tng nh cc message, cc gitin (packet), frame, cell, bit, cc tn hiu truyn trong mng, cc thc th truyn trongmt h thng...

    Thuc tnh

    Mt i tng ca lp cMessage c mt s thuc tnh, mt sc s dng bi phnnhn m phng, mt s khc c cung cp cho ngi lp trnh.

    Tn - name: thuc tnh l mt chui (const char *) m ngi lp trnh c ths dng tu . Tn ca message xut hin rt nhiu ni trong Tkenv v nnc chn c ngha. Thuc tnh ny k tha t lp cObject.

    Kiu message - message kind: thuc tnh ny cha thng tin v kiu camessage.

    di - length (c tnh theo bit): c s dng tnh tr khi messagec truyn thng qua mt kt ni c tc truyn d liu c gn gi trxc nh.

    C bit li - bit error flag: thuc tnh ny c thit lp bng true bi phnnhn m phng vi xc sut bng 1-(1-ber)length khi message c gi thng

    qua mt kt ni c tc truyn d liu xc nh (ber). Quyn u tin - priority: c s dng bi phn nhn m phng sp xp

    cc message trong danh sch hng i (message queue - FES) c cng thigian ti.

    Mc thi gian - time stamp: thuc tnh ny cho php ngi s dng nh duthi gian v d nhnh du thi im message c xp vo hng i hocc gi li.

    Cc thuc tnh khc v cc thnh phn d liu gip cho ngi lp trnh lmvic d dng hn nh: danh sch tham s (parameter list), message ng gi(encapsulated message), thng tin iu khin (control info) v con tr ng

    cnh (context pointer. Mt s cc thuc tnh chc (read-only attribute) lu gi cc thng tin v

    vic gi message, cc thng tin v cc module, cng ngun v ch, thi giangi v thi gian ti ca cc message. Hu ht cc thuc tnh ny u c sdng bi phn nhn m phng khi cc message nm trong FES, tuy nhin khicc module nhn c message, cc thng tin ny vn cn tn ti.

    Cch sdng

  • 7/29/2019 Omnet Cong Cu Mo Phong

    59/145

    OMNet++ Bo co thc tp chuyn ngnh

    Trang 59

    Hm khi to ca lp cMessage c th nhn mt vi i s. Thng thng, mt itng ca lp cMessage s nhn vo hai i s l tn (kiu string) v kiu message(kiu int):

    cMessage *msg = new cMessage("MessageName", msgKind);

    Tt c cc i su l tu chn, do khai bo mt i tng nh sau cng hp l

    cMessage *msg = new cMessage();

    hay

    cMessage *msg = new cMessage("MessageName");

    Khi khng c i s, mc nh i tng mi to ra c tn l v kiu l 0. Hm toca lp cMessage c th nhn vo nhiu i s hn (length, priority, bit error flag),tuy nhin t gi tr cho cc thuc tnh ta cng khng nht thit phi s dng hmto. Ta c th s dng hm set...() gn gi tr cho tng thuc tnh.

    msg->setKind( kind );

    msg->setLength( length );

    msg->setPriority( priority );msg->setBitError( err );

    msg->setTimestamp();

    msg->setTimestamp( simtime );

    Ngoi ra ta c th s dng cc hm sau ly gi tr ca cc tham s:

    int k = msg->kind();

    int p = msg->priority();

    int l = msg->length();

    bool b = msg->hasBitError();simtime_t t = msg->timestamp();

    Nhn i message

    Ta c th thc hin sao chp mt message bng cch:

    cMessage *copy = (cMessage *) msg->dup();

    hoc

    cMessage *copy = new cMessage( *msg );

    Cch ny c th p dng vi bt k mt i tng no trong OMNeT++. Messagemi c to l mt bn copy chnh xc ca message c, bao gm c cc tham s...

    6.1.2. Self-Message

    Sdng self-message

    Cc message thng c s dng m t cc s kin xy ra bn trong ca mtmodule. Trong mt s trng hp, message c th coi nh mt bnh thi dng xc nh thi im din ra mt s kin no . Nhng message s dng trong nhng

  • 7/29/2019 Omnet Cong Cu Mo Phong

    60/145

    OMNet++ Bo co thc tp chuyn ngnh

    Trang 60

    trng hp nh vy c gi l self-message. Tuy nhin self-message vn l messagebnh thng, l mt i tng ca lp cMessage hoc mt lp con k tha t n.

    Khi mt message c phn n mt module bi phn nhn m phng, bn c th gihm isSelfMessage() kim tra xem n c phi l mt self-message hay khng; nimt cch khc l kim tra xem message nhn c c phi l mt scheduledmessage (cc message dng nh thi im din ra mt s kin trong module) hayl cc message c gi bi mt hm send...() no . Ngoi ra ngi s dng c ths dng hm isScheduled() kim tra, hm ny s tr v true nu message nhnc l mt scheduled message (nhng message c xc nh bi hmscheduleAt()). Mt scheduled message cng c th b hu b bi hm cancelEvent().

    bool isSelfMessage();

    bool isScheduled();

    Cc hm sau tr v thi gian to, thit lp v thi gian ti ca mt message. simtime_tcreationTime()

    simtime_t sendingTime();

    simtime_t arrivalTime();Khi mt self-message c thit lp, thi gian ti ca message s l thi gian n sc chuyn ti module cn thit.

    Con tr ngcnh (Context Pointer)

    Xt hai hm setContextPointer() v contextPointer():

    Hm setContextPointer() nhn mt con tr ng cnh (kiu void) lm i s thitlp ng cnh cho message.

    Hm contextPointer() tr v mt con tr kiu void, cha ng cnh ca message tngng.

    void *context =...;msg->setContextPointer( context );

    void *context2 = msg->contextPointer();

    Ngi lp trnh c th s dng con tr ng cnh cho nhiu mc ch v phn nhn mphng khng can thip n con tr ny. Tuy nhin trn thc t, con tr ng cnhthng c s dng khi mt module thit lp mt vi self-message (bnh thi),module s cn phi xc nh c khi no mt self-message quay li module, hay nimt cch khc n cn phi xc nh c khi no bnh thi hot ng v phi lmg sau . Khi con tr ng cnh sc to ra tr ti mt cu trc d liu camodule, mang y thng tin ng cnh v s kin sp din ra.

    6.1.3. M hnh ho gi tin

    Cng nhn v thi gian ti ca mt message

    Cc hm ch ra v tr nhn v gi ca mt message:

    int senderModuleId();

    int senderGateId();

  • 7/29/2019 Omnet Cong Cu Mo Phong

    61/145

    OMNet++ Bo co thc tp chuyn ngnh

    Trang 61

    int arrivalModuleId();

    int arrivalGateId();

    Hai hm c s dng kt hp module id vi gate id thnh mt con tri tngcng (gate object pointer):

    cGate *senderGate();

    cGate *arrivalGate();

    Cc hm dng kim tra xem message gi n c nhn vo t cng no thngqua id hoc tn + ch s ca cng:

    bool arrivedOn(int id);

    bool arrivedOn(const char *gname, int gindex=0);

    Cc hm tr li thi gian to message, thi gian gi ln cui cng v thi gian ti camessage:

    simtime_t creationTime()

    simtime_t sendingTime();simtime_t arrivalTime();

    Thng tin iu khin

    Mt trong nhng lnh vc ng dng ch yu ca OMNeT++ l mng thng tin. Tronglnh vc ny, cc lp giao thc thng c trin khai nh nhng module lm nhimtrao i cc gi tin. Lp cMessage cng cung cp mt lp con ca n khai bo ccgi tin.

    Tuy nhin, vic thng tin gia cc lp giao thc cn phi c nhng thng tin phc gn km cng vi gi tin. Ly v d, khi lp TCP gi mt gi tin xung lp IP,gi tin cn phi c a ch IP nhn v mt s tham s khc na. Khi lp IP chp nhn

    gi tin t lp TCP (c thng tin a ch IP nhn trong phn header ca gi tin), n schuyn ngc cc thng tin cn thit ln cho lp TCP, t nht l a ch IP ngun gigi tin.

    Cc thng tin thm vo c coi l cc i tng thng tin iu khin (control infoobject) trong OMNeT++. Cc i tng thng tin iu khin ny l i tng ca lpcon k tha t lp cPolymorphic (mt lp khng c thnh phn d liu), v c gnkm vo cc gi tin. Cc hm c th s dng cho mc ch ny:

    void setControlInfo(cPolymorphic *controlInfo);

    cPolymorphic *controlInfo();

    cPolymorphic *removeControlInfo();

    Xc nh giao thc

    Trong cc m hnh giao thc ca OMNeT++, kiu giao thc thng c i din bicu trc ca cc gi tin s dng trong giao thc v c th hin nh mt lpmessage. V d nh lp IPv6Datagram tng ng vi cc datagram ca IPv6, hay lpEthernetFrame tng ng vi cc frame ca Ethernet. Cc kiu n v d liu cagiao thc (PDU - Protocol Data Unit) thng c th hin nh mt trng trong lpmessage.

  • 7/29/2019 Omnet Cong Cu Mo Phong

    62/145

    OMNet++ Bo co thc tp chuyn ngnh

    Trang 62

    Trong C++, ton t dynamic_cast c thc s dng kim tra xem mt i tngmessage c thuc mt kiu giao thc xc nh no hay khng.

    cMessage *msg = receive();

    if (dynamic_cast(msg) != NULL)

    {

    IPv6Datagram *datagram = (IPv6Datagram *)msg;

    ...

    }

    6.1.4. ng gi (Encapsulation)

    ng gi gi tin

    Thc s cn thit phi ng gi mt message khi bn tin hnh m phng cc lpgiao thc ca mt mng my tnh. Cc tt nht ng gi mt message l thm vomessage mt danh sch cc tham sc bit. OMNeT++ cung cp cho ngi s dng

    hm encapsulate() ng gi cc message. Kch thc (chiu di) ca cc messages tng ln mt phn bng kch thc ca phn thng tin thm vo.

    cMessage *userdata = new cMessage("userdata");

    userdata->setLength(8*2000);

    cMessage *tcpseg = new cMessage("tcp");

    tcpseg->setLength(8*24);

    tcpseg->encapsulate(userdata);

    ev length() 8*2024 = 16192

    Mt message ch c th mang mt phn thng tin thm. iu ny c ngha l nu hmencapsulate() c gi ln th hai, n s sinh ra li. Ngoi ra li cng pht sinh numessage c ng gi khng thuc mt module no.

    Bn c th ly li phn thng tin thm vo bng hm decapsulate()

    cMessage *userdata = tcpseg->decapsulate();

    Hm decapsualate() s lm chiu di ca message (tr trng hp phn thm vo cchiu di bng 0). Nu chiu di ca message sau khi thc hin lnh trthnh s m,s xut hin li.

    Hm e