You are on page 1of 9

Cu trc mt file

bm vt
Khi bm vt trong mt file ascii u ra, trace c t chc thnh 12
trng nh sau. ngha ca cc trng l:

g l:

ng l

ngha ca cc trng
o event: thao tc c thc hin trong m phng
o time: thi gian xut hin s kin
o from node: node 1 l node c trace
o to node: node 2 l node c trace
o pkt type: loi packet
o pkt size: kch c packet
o flags: c
o fid: m lung
o src addr: a ch node ngun
o dst addr: a ch node ch
o seq num: s trnh t
o pkt id: m packet duy nht
Trng u tin l kiu s kin. c a ra bng mt trong 4 biu
tng
r,+,-,d ln lt tng ng vi nhn ( u ra ca knh truyn), xp

Mt v d, xt on m u ca trace sinh ra bng vic chy mt kch bn


tcl c a ra trong bng:
+ 0.5 0 5 tcp 40 ------- 1 0.0 3.0 0 0
- 0.5 0 5 tcp 40 ------- 1 0.0 3.0 0 0
r 0.51032 0 5 tcp 40 ------- 1 0.0 3.0 0 0
+ 0.51032 5 6 tcp 40 ------- 1 0.0 3.0 0 0
- 0.51032 5 6 tcp 40 ------- 1 0.0 3.0 0 0
r 0.52064 5 6 tcp 40 ------- 1 0.0 3.0 0 0
+ 0.52064 6 7 tcp 40 ------- 1 0.0 3.0 0 0
- 0.52064 6 7 tcp 40 ------- 1 0.0 3.0 0 0
r 0.53096 6 7 tcp 40 ------- 1 0.0 3.0 0 0
+ 0.53096 7 3 tcp 40 ------- 1 0.0 3.0 0 0
- 0.53096 7 3 tcp 40 ------- 1 0.0 3.0 0 0
r 0.54128 7 3 tcp 40 ------- 1 0.0 3.0 0 0
+ 1 0 5 tcp 40 ------- 2 0.1 4.0 0 1
- 1 0 5 tcp 40 ------- 2 0.1 4.0 0 1

Cch vit mt file awk trong linux

AWK l ngn ng lp trnh c nhm mc ch x l cc file ch (text


file) theo nguyn l khp mu (pattern matching)
Cng c awk cho php chng ta thc hin mt s chc nng x l n
gin trn cc file d liu nh l tnh trung bnh cc gi tr a ra trn mt
ct,tnh tng..
Trong bi vit ny em xin trnh by cch tnh bng thng,tr v mt gi
bng cch s dng ngn ng awk

Thut ton tnh bng thng


Nh chng ta bit th bng thng c tnh bng cng thc:
bandwidth=dungluong/time
Vy thut ton ca em a ra nh sau:
BEGIN {dungluong=0;time=0;}
{
action = $1;time = $2;from = $3; to = $4; type = $5; pktsize = $6; flow_id =
$8;src = $9; dst = $10; seq_no = $11;packet_id = $12;
if(($1=="?")&&($4=="?")&&($8== "?"))
{dungluong=dungluong+$6*8;}
if(time>time+0.5)
{
thr=dungluong/$2-time);
dungluong=0;
print time " "thr >> "bandwidth.tr";}
}
END{}

Thut ton tnh tr


Khi mt node bt u truyn bn tin:tggui=$2
Khi mt node bt u nhn bn tin:tgnhan=$2
tgtruyen=tgnhan-tggui
Do em a ra thut ton tnh delay:
BEGIN {tggui[5000];tgnhan[5000];tgtruyen[5000];sogoi=0;}
{
action = $1; time = $2; from = $3; to = $4; type = $5; pktsize = $6; flow_id = $8; src = $9; dst =
$10; seq_no = $11; packet_id = $12;
if (($1 == "?") && ($3= "?"))
{
tggui[$12 ] = time;
}
if (($1== "?") && ($4 == "?"))
{
tgnhan[$12] = $2;
tgtruyen[$12 ] = tgnhan[$12]-tggui[$12];
if(tgtruyen[$12 ]>1)
{
sogoi=sogoi+1;

Thut ton tnh mt gi


Gi s gi tin gi i:sendpackets
S gi tin nhn:receive
S gi tin b mt:drop
T l mt gi c tnh theo cng thc:
tilematgoi=100*drop/(send+drop)
Vy thut tan a ra nh sau:
BEGIN { Drop=0;Send = 0;count=0;}
{
action = $1; time = $2; from = $3; to = $4; type = $5; pktsize = $6; flow_id =
$8; src = $9; dst = $10; seq_no = $11; packet_id = $12;
if ($3=="?" && $4=="?" && $1 == "?" && $8=="?")
{
Send++;
if (time>count+0.5)
{
print $2,"\t",(100*Drop/(Drop+Send)) >> "lost.tr"

if ($3=="?" && $4=="?" && $8=="?" && $1== "?")


{
Drop++;
if (time>count+0.5)
{
print $2,"\t",(100*Drop/(Drop+Send)) >> "lost.tr"
count=time;
}
}
}
END {}

You might also like