You are on page 1of 21

TRNG I HC BCH KHOA H NI

Vin in T Vin Thng

BI TP LN
ti :Mng hng i
Ging vin hng dn: TS.Trn Th Ngc Lan
Nhm : 08
Sinh vin thc hin:
H v tn
MSSV
Lp
L Minh H
20111458
TTT-05-K56
Nguyn Vn Lm
20111744
TTT-02-K56
Phm V Trung Kin 20111727
TTT-02-K56
Giang Quang t
20111371
TTT-05-K56
Giang Quc Vit
20112499
TTT-09-K56

H ni, thng 12 nm 2014

Mc lc
Trang

Chng I : Nghin cu s b........................................................................


1.Gii thiu
2.Tm hiu Omnet++..............................................................................................
2.1. Omnet++ l g ?
2.2. Cc thnh phn chnh ca OMNET++
2.3. ng dng
2.4. M hnh trong OMNET++
2.5. Cu trc lin kt ca mt chng trnh m phng
3.K hoch lm vic...............................................................................................

Chng II : Phn tch h thng...................................................................


Chng III : Thit k h thng..........................................................
1.
2.
3.
4.
5.

M phng
Mt s hnh nh m phng
X l kt qu m phng
Tnh s lng gi i c n ch
La chn tc phc v nh nht s gi truyn c n ch l ln
nht

Chng IV: Kt lun...........................................................................


Ti Liu Tham Kho

Chng I : Nghin cu s b
1.Gii thiu
Trong mn C s truyn s liu , chng em c lm quen vi phng php
nh gi hot ng ca mt h thng thng tin bng phng php phn tch ton
hc, c bit l cc m hnh lin quan n h thng hng i n, mng hng i.
Trong phn bi tp ln ny, chng em c lm quen vi mt phng php khc
nh gi hiu nng , l phng php m phng . Cng c m phng c s
dng y l : cng c m phng OMNET++ - cng c m phng mng thng
dng nht hin nay.

2. Tm hiu v OMNET++
2.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
m phng hot ng ca mng. Mc ch chnh ca ng dng l m phng hot
ng mng thng tin, tuy nhin do tnh ph cp v linh hot ca n, OMNeT++
cn c s dng trong nhiu lnh vc khc nh m phng cc h thng thng tin
phc tp, cc mng 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. Cc
thnh 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
mt ngn ng bc cao (NED). OMNeT++ h tr giao din ho, tng ng vi
cc m hnh cu trc ca n ng thi phn nhn m phng (simulation kernel) v
cc module ca OMNeT++ cng rt d dng nhng vo trong cc ng dng khc.
2.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 vector u 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...
2.3. ng dng
OMNeT++ l mt cng c m phng cc hot ng mng bng cc module c
thit k hng i tng. OMNeT++ thng c s dng trong cc ng dng ch
yu nh:
M hnh hot ng ca cc mng thng tin
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 thng
phn 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...
2.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
s dng c th biu din cc cu trc logic ca cc h thng trong thc t bng cc
cu trc 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 gi cc 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 th c 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. Cc
module 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.
2.5. Cu trc lin kt ca mt chng trnh m phng

3. K hoch lm vic
Sau khi nh gi s b v thc trng, yu cu ra, kh nng nhm pht trin
cng nh qu trnh vn hnh d n c th c pht trin theo trnh t:

Chng II : Phn tch h thng


H thng gm :

Mng hng i bao gm 2 hng i Q1 1= 80 (gi/s) v Q2 2= 50 (gi/s).


Ngun pht tun theo phn b Poisson vi tham s =30 (gi/s).
Yu cu :
1. Hy chy kch bn m phng trn cho khong thi gian 5s v 200s. Tnh ton s
lng gi TB, Tr trung bnh trong mng hng i. So snh vi kt qu m phng .
2. Gi s hng i 1 c chiu di hng i K =2 cc hng i khc vn c di
bng v cng. Cc thng s khc gi nguyn. Hy tnh ton cc tham s ca hng
i nh: N, T v Nq, Tq ca tng hng i. v tc gi n ch. So snh vi kt
qum phng trong thi gian 200s .

3. Gi s hng i 2 c chiu di hng i K =0 cc hng i khc vn c di


bng v cng. Cc thng s khc gi nguyn. Hy tnh ton cc tham s ca hng
i nh: N, T v Nq, Tq ca tng hng i. v tc gi n Q1 v Q2. So snh
vi kt qu m phng trong thi gian 200s .

Chng III : Thit k h thng


1. M phng :
Cc bc tin hnh :
B1 : Chy chng trnh Omnet++ . To new omnet++ project , t tn cho
project mi va to.
B2 : Add th vin queueinglib vo project va to bng cch: chut phi
vo project properties project references queueinglib ok .
B3 : To file .NED ( file ny dng m t mng ).
B4 : Design Trn giao din ca file .NED va to Creat network type.
Sau thit k mng hng i theo yu cu bi : 2 hng i (Q1, Q2). y ta
cn thm ngun (source)v ch (sink) v delay(delay) trong m phng, sau
kt ni chng li vi nhau.
B5 : To file omnetpp.ini (file cu hnh - cc tham s c gn gi tr t file
ny). Chn network tng ng bc ny.
B6 : Trong file omnetpp.ini va to chn mc Parameters add cc tham
s thi gian nh thi gian phc v , thi gian n, s gi cng vic. Ci t
thi gian chy m phng th vo General simulation time limit.
B7 : Vo Run run configurations new_configuration
B8: To file .anf . Sau vo Results ko th 2 file ( .sca v .vec ). Xem cc
thng s thu c.
B9 : Chy m phng.

2. Mt s hnh nh m phng :

2.1.To file .ned m t cu trc mng hng i:

Code :

[General]
network = manghangdoi
sim-time-limit = 200s
**.source.interArrivalTime = exponential(1s/20)
**.source.stopTime = 200s
*.delay.delay = 1s/1000000
*.source.startTime = 0s
*.Q2.serviceTime = exponential(1s/50)
*.Q2.tyle = 1/2
*.Q1.serviceTime = exponential(1s/80)
*.Q1.tyle = 1/4
Code hng i thay i :
//
//
//
//
//
//
//
//

This file is part of an OMNeT++/OMNEST simulation example.


Copyright (C) 2006-2008 OpenSim Ltd.
This file is distributed WITHOUT ANY WARRANTY. See the file
`license' for details on this and other legal matters.

#include "Queue.h"
#include "Job.h"
namespace queueing {
Define_Module(Queue);
Queue::Queue()
{
jobServiced = NULL;
endServiceMsg = NULL;
}
Queue::~Queue()
{
delete jobServiced;
cancelAndDelete(endServiceMsg);
}
void Queue::initialize()
{
droppedSignal = registerSignal("dropped");
queueingTimeSignal = registerSignal("queueingTime");
queueLengthSignal = registerSignal("queueLength");
emit(queueLengthSignal, 0);
busySignal = registerSignal("busy");
emit(busySignal, 0);
endServiceMsg = new cMessage("end-service");
fifo = par("fifo");
capacity = par("capacity");
queue.setName("queue");
}
void Queue::handleMessage(cMessage *msg)
{
if (msg==endServiceMsg)
{
endService( jobServiced );
if (queue.empty())
{
jobServiced = NULL;
emit(busySignal, 0);
}
else
{
jobServiced = getFromQueue();
emit(queueLengthSignal, length());
simtime_t serviceTime = startService( jobServiced );
scheduleAt( simTime()+serviceTime, endServiceMsg );
}
}
else
{

Job *job = check_and_cast<Job *>(msg);


arrival(job);

if (!jobServiced)
{
// processor was idle
jobServiced = job;
emit(busySignal, 1);
simtime_t serviceTime = startService( jobServiced );
scheduleAt( simTime()+serviceTime, endServiceMsg );
}
else
{
// check for container capacity
if (capacity >=0 && queue.length() >= capacity)
{
EV << "Capacity full! Job dropped.\n";
if (ev.isGUI()) bubble("Dropped!");
emit(droppedSignal, 1);
delete job;
return;
}
queue.insert( job );
emit(queueLengthSignal, length());
job->setQueueCount(job->getQueueCount() + 1);
}

if (ev.isGUI()) getDisplayString().setTagArg("i",1, !jobServiced ? "" : "cyan3");


}
Job *Queue::getFromQueue()
{
Job *job;
if (fifo)
{
job = (Job *)queue.pop();
}
else
{
job = (Job *)queue.back();
// FIXME this may have bad performance as remove uses linear search
queue.remove(job);
}
return job;
}
int Queue::length()
{
return queue.length();
}
void Queue::arrival(Job *job)
{
job->setTimestamp();

}
simtime_t Queue::startService(Job *job)
{
// gather queueing time statistics
simtime_t d = simTime() - job->getTimestamp();
emit(queueingTimeSignal, d);
job->setTotalQueueingTime(job->getTotalQueueingTime() + d);
EV << "Starting service of " << job->getName() << endl;
job->setTimestamp();
return par("serviceTime").doubleValue();
}
void Queue::endService(Job *job)
{
EV << "Finishing service of " << job->getName() << endl;
simtime_t d = simTime() - job->getTimestamp();
job->setTotalServiceTime(job->getTotalServiceTime() + d);
double tl=par("tyle");
int test = bernoulli (tl,0);
if (test)
send(jobServiced, "out",0);
else send(jobServiced, "out",1);
}
void Queue::finish()
{
}
}; //namespace

2.2. Thit lp cc thng s v la chn cu hnh :

Ci t cc thng s m phng :

2.3. Mt s hnh nh chy m phng :

2.4. File .elog

3. X l kt qu m phng:
3.1.L thuyt lin quan:
3.1.1. L thuyt mng hng i :

Mt mng hng i c nh ngha bng k nt mng, mi nt mng i l


mt h thng hng i n bao gm 1 hng i v ci server. Cc yu cu
i vo hng i ti mt s nt xc nh v i ra t mt s nt khc.
iu khin lung v kim sot tc nghn trong mng
Sau khi c phc v xong mt nt mng yu cu c th:

- Ri khi nt mng
- i vo nt k tip
- Quay tr li nt n i qua trc
Gi thit dng lu lng i vo nt i tun theo phn b Poisson vi tham s 1
Tc phc v ca server ti nt mng j tun theo phn b Poisson vi tham s j
Xc sut 1 yu cu sau khi ri nt i c gi ti nt j l r ij( gi l xc
sut nh tuyn), xc sut n ri khi mng l ri0.
3.1.2 . Hng i M/M/1
Lc trng thi:

Chui Markov ca hng i M/M/1.


. Tin trnh n v tin trnh phc v c thuc tnh Markov (tin trnh khng nh, tc
trng thi tip theo ch ph thuc trng thi hin ti, nhng c lp vi vic n c
c nh th no).
- Thi gian gia hai ln n v thi gian phc v tun theo phn b m.
- H thng c 1 server, dung lng m l v hn.
- Tc gi n l (gi/s).
- Tc phc v l (gi/s).

- Mt lu lung: =

- S lng gi trung bnh trong h thng: N= 1

- S lung gi trung bnh trong server: Ns =P(N1)= 1-P(N=0) = 1- (1- ) =


2

-S lng gi trung bnh trong hng i: Nq = N - Ns =

( )
(1)

-Thi gian trung bnh lu trong h thng ca mi gi: T =


2

()
Thi gian i trung bnh ca mi gi : Tq =T-Ts = (1 )

3.1.3 . Hng i M/M/1/K


Lc trng thi:

Chui Markov ca hng i M/M/1/k

Vi s khch hng l k
n
Pn= .Po; 0<=n<=k
2
k+1
Pn= (1 )(1 )

(k +1) k+1
L= 1 - 1 k+1

Xc sut khch hang n h thng b t chi l Pk

(1 )

Pk=

1
k+1
1

Tc n thc t =(1- Pk)

3.2 Tnh ton l thuyt


Tnh ton cc tham s N, T v Nq, Tq ca tng hng i

1/

1
4 +

2
2

1=
3 = 3 x 20 =

3 1
4

= 2 = 2 x 20 = 40
1

160
3

= 1 =
2
2

2
3

4
= 5

Hng i Q1:
N1 =

1
1 1

2/3
= 12/3

=2

Tr TB : T Ts = 1 1 - 1 = 80160/3 - 80 = 0,025
Hng i Q2 :
2

4/5

N2 = 1 2 = 14 /5 = 4

1
2 2

Tr TB : T Ts =

1
2

1
5040

1
50

= 0,08

S gi trung bnh trong h thng : N = N + N = 2+4= 6


1
2

Tr trung bnh : 0,025 +0,08 = 0,105


2/ Hng i Q1 c k = 2

xc sut khch hng n b t chi : Pk =

k
1

Ta c:

Tnh li

'

1824

47 ,

1368
47

38
65

= 0,58

Hng i Q1: N1 =

T1 =

2
8

x(1- 65
2

3 1
4

2=

'

1
4 +

N1
1

Nq1 = N1 =

( k +1) 1k+1
1 1k+1

= 0,026
1
+ k 1k +1

1 1 1 1k+1 = 0,43

1
1 1

= 1,015

1 1
k+1
1 1

8
65

Tq1 = 0,011
Hng i Q2 : N2 =
N2
2

T2 =

2
1 2

= 1,4

= 0,048

Nq2 = N2 Ns2 = 1,4 - 2 = 0,82


Tq2 = T2 Ts2 = 0,048 1/ 50 = 0,028
3/ Hng i Q2 c k = 0
Hng i Q2

N=

= 0,44

Ta c:
1/

1
4 +

3 1
4 (1-0,44)

= 37

1=0,4625
Hng i Q1 :
1

N1 = 1 1 = 0,86
T1 =

N1
1

= 0,023

2
2

Nq1 = N1 Ns1 = 0,86 - 1 = 0,4


Tq1 = T1 Ts1 = 0,023 1/ 80 = 0,0105

Kt qu tng hp di dng bng:


Cu 1:

Cu 2:

Cu 3

Nhn xt kt qu m phng vi l thuyt

- Da vo cc s liu thu c t m phng v so snh vi l thuyt, chng em nhn thy


vi thi gian chy m phng nh th kt qu sai lch ln so vi l thuyt. Khi tng thi
gian chy kch bn ln, th kt qu m phng gn vi l thuyt hn. Trong trng hp
ny ta xt vi thi gian chy m phng 5s v 200s c kt qu nh trn.

nh gi v kt lun :
Qua s liu tnh ton theo l thuyt v kt qu m phng, ta nhn thy:
-Vi thi gian m phng 5s th kt qu m phng c sai s kh nhiu so vi l thuyt.
- Vi thi gian m phng 200s th kt qu m phng xp x vi tnh ton theo l thuyt.

Chng IV : Kt Lun
Trong mn C s truyn s liu , chng em c lm quen vi phng php nh gi
hot ng ca mt h thng thng tin bng phng php phn tch ton hc, c bit l
cc m hnh lin quan n h thng hng i n, mng hng i. Trong phn bi tp
ln ny, chng em c lm quen vi mt phng php khc nh gi hiu nng ,
l phng php m phng . Cng c m phng c s dng y l : cng c m
phng OMNET++ - cng c m phng mng thng dng nht hin nay. Do hn ch v
mt thi gian cng nh l kin thc, bi lm khng th trnh khi nhng thiu st, chng
em mong c s nht xt, nh gi ca C gio.
Cui cng, chng em xin chn thnh cm nC: TS. Trn Th Ngc Lan tn tnh
hng dn chng em trong bi tp ln ny !

Ti liu tham kho


[1] website: http://vntelecom.org/diendan/showthread.php?t=7968
[2] website: http://www.omnetpp.org/home/videos
[3] website: http://www.scribd.com/doc/31770594/Omnet-Tieng-Viet
[4] Sch: C s mng thng tin-Vin in t vin thng,HB HN

You might also like