You are on page 1of 50

‫اء ا

‬ ‫______‬ ‫   آ ات ‪NS2‬‬

‫‪1‬‬
‫اء ا ‬ ‫______‬ ‫   آ ات ‪NS2‬‬

‫‬
‫  
ﻝ‬

‫ آ ات ‪NS2‬‬

‫اﻝء اﻝ‬

‫ﻝ‬
‫أ" "!  اﻝی اﻝ‬

‫‪2‬‬
‫اء ا ‬ ‫______‬ ‫   آ ات ‪NS2‬‬

‫اﻝ!  ‪ 0‬رب اﻝ ﻝ  واﻝ‪*-‬ة واﻝ*م ( أ'‪%‬ف اﻝ ‪  !"  %‬و‪(1‬‬


‫‪4‬ﻝ‪ 2‬وﺹ!‪ 2‬و أ"  ‪.‬‬
‫أو? أﺡ ‪ 11‬ا‪ 0‬أن ی‪ %11‬ﻝ‪ 11‬آ; ‪ 11‬ه‪ 9811‬اﻝ‪ 11‬واﻝ‪811‬ي أرﺝ‪ 11" 11‬ا‪ 0‬أن ی‪11
@11AB‬‬
‫اﻝ  ‪.‬‬

‫‪ H‬م ه‪ 98‬اﻝ ‪%F‬ﺡ‪% 2‬ی‪ 2   G


 H‬و‪%F‬ح أ‪ 2‬و"‪A‬ه ‪ ، 21‬واﻝ;‪ 1‬أ‪1‬ل‬
‫* ﻝ ‪
;K11F‬وردًا ‪(11‬‬‫ا‪ 11
0‬أن ‪ 11K‬ن   ‪ ً1‬ﻝ
; ‪ 11L 11‬ه‪811‬ا اﻝ ‪11‬ل وأن ‪ 11K‬ن ﺡ ‪ً 1‬‬
‫أ‪L ،
;N‬ل ا‪ 0‬أن ی ‪ L BHL‬آ; ;
 وأن ی‪8‬آ‪ M " 
L %‬وأن ی  ‪1" 
L B‬‬
‫ﺝ
‪ M‬و" أﺹ‪  L M‬ا‪ 0‬و" أ‪P‬ت ‪ A  L‬واﻝ‪1F‬ن ‪ ....‬واﻝ
‪ 1‬إ‪1 1‬ﻝ‪ً1  Q‬‬
‫*‪.‬‬
‫? ‪ ًS‬و * ";‪ً H‬‬ ‫‪ ً L‬ورز‪ ًT‬ﺡ* ً‬

‫وا‪ 8‬أ‪7‬ل أن ‪ ),3 4 -"5.‬وأن ‪  --.‬ه ﺵ) وأن ‪ +, -./.‬ا * ا)ﺵد إ& و ذ‪ $‬وا"در‬
‫‪. &,9‬‬

‫أ ‪ 9 /4 /‬ا‪ /9 =./‬ا<‪;,‬‬


‫ا)‪ /.‬ا?>)و ‬
‫‪amjedns2@gmail.com‬‬
‫م‪2009‬ادان –‬

‫‪,,S‬‬
‫‪,,‬ا ‪ + W‬إ‪  W‬ﺝ>& ‪ S‬وأ‪ + T‬ا ن إذا ﺵ‪ً  TU‬‬

‫‪3‬‬
‫اء ا‬ ______ NS2 ‫   آ ات‬

‫ت‬.> 4‫)س ا‬5

5 "H"
6 X"‫ا‬%‫ آ;  اﻝ‬L ‫"
رات أ‬ ‫ول‬Y‫اب ا‬

8 global ‫ام رة‬Z;‫اﻝ


رة ا[وﻝ( ا‬
10 X"%‫ آ;  اﻝ‬L ‫ت‬L A- ‫ واﻝ‬M ‫ام اﻝ ا‬Z;‫اﻝ
رة اﻝ ا‬
12 " ‫ " داﻝ أو‬%‫ أآ‬L X"%‫اﻝ
رة اﻝﻝ  زی@ اﻝ‬
13 X"%‫ اﻝ‬c‫ا   ﺙ‬%‫اﻝ
رة اﻝ‬
14 KF‫ ل ( "  "ت " اﻝ‬-!‫اﻝ‬ ‫اب ا‬

16 Network Parameter KF‫ات اﻝ‬%e;"


20 Monitoring KF‫ ( اﻝ‬T‫ا‬% ‫ اﻝ‬c
28 Analysis of Network KF‫ اﻝ‬G! [‫اب ا‬

30 Tracing ‫ء‬F‫ إ‬A‫آ‬


31 Trace File G!;‫" اﻝ‬
36 G!;‫ اﻝ‬L grep ‫ام ا[داة‬Z;‫ا‬
38 G!;‫ اﻝ‬L awk e‫ام ﻝ‬Z;‫ا‬
40 %
 ‫ اﻝ‬M! X"%‫واﺝ
 اﻝ‬ \‫اب ا)ا‬

40 NSBM(NS By Mouse) ‫وع‬%F"


42 NSG(NS2 Scenario Generator) ‫وع‬%F"
43 NSBench(NS2 workBench) ‫وع‬%F"
45 GeF;‫ أ  اﻝ‬L ‫‚ اﻝ !آ‬-B ‫ق‬%S
50 @‫اﺝ‬% ‫اﻝ‬

4
‫اء ا ‬ ‫______‬ ‫   آ ات ‪NS2‬‬

‫ "‪: /‬‬
‫ی‪ K%‬ه‪8‬ا اﻝء ( '‪%‬ح " „  ‪،‬ی;!ث اﻝ „ ع ا[ول " ه‪8‬ا اﻝء  اﻝ
رات ا[ اﻝ;‬

‫ی‚  ‪%L‬ه ﻝ‪  ;K‬اﻝ‪%‬ا"‪ X‬اﻝ‪%K‬ة و ;‪ %‬آ  ﻝ ‪ L X"%‬آ;  ‪ 2"%‬آ‪%S " %‬ی‪. H‬‬
‫‪ 11L‬اﻝ „‪ 11‬ع اﻝ‪ 11" 11‬اﻝ‪11;K‬ب ی;!‪11‬ث ‪ 11‬اﻝ;!‪ G11‬و‪%11S‬ق ﺝ ‪ @11‬اﻝ  "‪11‬ت "‪ 11‬اﻝ‪ K11F‬وی;‪%11‬ق إﻝ‪ (11‬أه‪ 11‬آ*‪11‬‬
‫" ﺝ‪ 11‬دی ‪ 11L‬اﻝ !‪11‬آ واﻝ‪811‬ي ی‪ ;11‬ا‪Z;11‬ا"
 ‪%11K‬ة ﻝ!‪ 11-‬ل ‪11"  " (11‬ت ‪ 11L 11‬ﺡ‪11‬ب ";‪%11e‬ات ا[داء‬
‫‪ G11" Performance Metrics‬ا?;ﺝ‪ 11‬و"‪11H‬ار اﻝ;‪ %P11‬و"‪11H‬ار ا‪*
;11‬ك اﻝ‪ K11F‬ﻝ ‪11-‬در اﻝ ;ﺡ‪Utilization 11‬‬
‫و‰‪%‬ه‪.‬‬
‫? اﻝ; ‪%‬ف ( ﺹ‪ " e‬اﻝ;!‪ Trace file G‬واﻝ‪8‬ي  ‪%S‬ی‪ 2H‬ی ‪ 1K‬أیŠ‪ ً1‬اﻝ!‪ 1-‬ل ‪(1‬‬
‫ ﻝ‪ B‬ﻝ;!‪ ‚L G‬أو ً‬
‫;ﺉ‪Z; X‬ام ‪%S‬ق اﻝ‪%;A‬ة ﻝ  أو ;‪Z‬ام ‪%‬ا"‪ X‬ﺝهة ‪ H‬م ;!‪ G‬اﻝ  وا;‪%Z‬اج اﻝ‪;B‬ﺉ‪%1'" X‬ة ﺙ‪ 1 1‬ذﻝ‪Q1‬‬
‫ی دور اﻝ‪ %‬اﻝ اﻝ‪8‬ي ی „Ž اﻝ‪;B‬ﺉ‪ X‬اﻝ;  اﻝ ﺹ ل إﻝ
 ‪ GK' L‬ر ‪.‬‬
‫‪ 11L‬ه‪811‬ا اﻝ‪11;K‬ب ﺝ ‪ @11‬ا?"‪ 11‬اﻝ ‪811‬آ رة ی‪11 (11 11
H ;11‬م ﻝ‪11 11L 11
; %  K11L K11B‬م ﻝ‪ K11B‬أو ‪Z;11‬ام‬
‫ ‪ Vmware X"%‬اﻝ‪8‬ي ی Ž ﻝ‪ ‚-B; Q‬ﻝ‪ ( KB‬وی‪B‬وز ﻝ  أراد اﻝ ‪ 1N (1 G‬اﻝ ی‪1B‬وز آ ‪ 1‬ی ﺝ‪X"1% 1‬‬
‫‪ " %P4‬ا;ج '‪%‬آ ‪ Sun Microsystem‬ا ‪ VirtualBox 2‬أیŠً ی ‪ K‬اﻝ; "‪ 1L 2 G‬وی‪1B‬وز آ‪81‬ﻝ‪ Q‬ی ﺝ‪%1S 1‬ق‬
‫أ‪%P‬ى ی ‪ K‬اﻝ ‪  
G‬ا ًَء ‪ L‬م ﻝ‪ KB‬أو وی‪B‬وز ; اﻝ;‪%‬ق ﻝ
 ?ﺡ‪ L ًH‬ه‪8‬ا اﻝء‪.‬‬

‫‪5‬‬
‫اء ا ‬ ‫______‬ ‫   آ ات ‪NS2‬‬

‫اب ا‪Y‬ول‬

‫ رات أ‪ 5 ,‬آ> ا)ا ^‬

‫‪6‬‬
‫اء ا ‬ ‫______‬ ‫   آ ات ‪NS2‬‬

‫ "‪ /‬‬
‫? أن ‪ H‬م ;  ‪%S‬ی‪ H‬آ;  ‪%‬ا"‪ 2‬ﺙ ‪ 1 Q‬ذﻝ‪ 1  Q1‬‬
‫ﻝ‪ K K‬ن "!;‪ L ًL%‬ا;‪Z‬ام اﻝ !آ ی‚ ‪ Q‬أو ً‬
‫آ‪ K'  - A‬ﺙ !
 و ?„‪ L‬ﻝ‪8‬ﻝ‪–L Q‬ن ه‪B‬ك • اﻝ
رات اﻝ‪ "%‬اﻝ; إذا ‪;L 
 ; M T‬ك ‪(1‬‬
‫آ;  ‪%‬ا"‪ T X‬ی و
 و"‪ "
A‬وآ‪8‬ﻝ‪%1S ( Q  Q‬ق "‪ 1A;Z‬ﻝ‪ 1 ;K‬اﻝ‪%1‬ا"‪ X‬اﻝ;‪ 1‬ی ‪ 1K‬أن ‪ %1-;Z‬آ‪ً%1‬ا "‪1‬‬
‫ا[‪ %‬اﻝ‪ "%‬ه‪ 98‬اﻝ
رات أ ;  ا;‪Z‬ام آ  ‪ L global‬داﻝ ‪ finish‬وآ ی ‪ " Z G  K‬اﻝ‪*1K‬س‬
‫‪ ، Simulator‬ﺙ  ذﻝ‪ Q‬ی ا;‪Z‬ام "‪
A‬م اﻝ ا ‪ M‬واﻝ ‪L A-‬ت ‪ L‬آ; ‪ 1‬اﻝ‪ X"1%‬وآ‪ (1 1 1‬ا‪1-;P‬ر‬
‫آ;  اﻝ‪.X"%‬‬
‫ﻝ;‪ B‬اﻝ‪ X"%‬إذا آن ﺡ ‪ 2‬آ‪ً%‬ا ‪  K L‬زی@ اﻝ‪ X"%‬إﻝ( دوال ﺹ‪%e1‬ة أو إﻝ‪1A" (1‬ت وه‪ 1" 1‬اﻝ
‪1‬رات اﻝ;‪1‬‬
‫أد‪
A" 
P‬م ‪) Object-oriented‬اﻝ‪ "%‬اﻝ‪.(NF‬‬
‫‪11
" %11P4‬رة وه‪% " 11‬و‪ 11L 11L‬ﺝ ‪ @11‬ﻝ‪11e‬ت اﻝ‪ 11"%‬و ;‪ 11" %11‬أه‪ 11‬اﻝ
‪11‬رات اﻝ;‪ 11‬ی‪ (11 ‚11‬اﻝ ‪11
  X"%11‬‬
‫وا;‪Z‬ا"
 وه اﻝ; ﺙ‪   ، c‬ﺙ‪ c‬اﻝ‪ " X"%‬ا['ء اﻝ
 ﺝًا ‪  
L‬اﻝ ‪81 (1 X"%1‬آ‪1T 1" %‬م ‪1 L 21‬‬
‫  و „Ž ‪ G‬اﻝ‪% X"%‬ی‪  B" H‬و"‪ "
A‬وه " ‪%‬ی أن ‪ L 2H‬اﻝ‪%‬ا"‪ X‬اﻝ; ‪Z;1 
;K‬ام "!‪1‬آ‬
‫اﻝ‪KF‬ت ‪ " 
L NS2‬اﻝ‪%‬ا"‪ X‬اﻝ; ون اﻝ; ﺙ‪% Ž- c‬ا"‪ X‬ﺹ  اﻝ‪
A‬ﻝ‪ B‬ﻝ‪H‬رئ‪.‬‬

‫‪7‬‬
‫اء ا ‬ ‫______‬ ‫   آ ات ‪NS2‬‬

‫ رات ا‪ 5 ,‬آ> ا) ^‬


‫ی ﺝ‪ 11‬اﻝ ی‪ 11" 11‬اﻝ
‪1‬رات اﻝ;‪ 11 11‬ف ;‪%11‬ق ﻝ
‪*11P 11" 11‬ل اﻝ ا„‪ @11‬اﻝ;‪%11' ;11 11‬ﺡ
‬
‫واﻝ ‪ -H‬د ﻝ
رات أي "
‪1‬رات آ; ‪ 1‬اﻝ‪ X"1%‬و‪ 1‬ف ;‪%1‬ق [آ‪%S 1" %1‬ی‪ 1H‬ﻝ‪ 1 ;K‬اﻝ‪ 1K‬د وذﻝ‪Q1‬‬
‫ﻝ;
‪   G‬اﻝ‪  "  %‬ا?ﺝ‪%‬اءات واﻝ ‪A‬ت‪.‬‬

‫ا‪4‬رة ا‪Y‬و‪ a‬ا>`‪/‬ام ‪9‬رة ‪:global‬‬


‫‪ 11L‬داﻝ‪? finish 11‬ﺡ‪ ž11‬ی ﺝ‪11 11‬رة ‪ global‬ﻝ; „‪ Ž11‬أن اﻝ ;‪%11e‬ات ه‪ 9811‬ه‪%11e;" 11‬ات " ‪11L%‬‬
‫‪P‬رج ا?ﺝ‪%‬اء وإذا ﻝ ‪ 98
H‬اﻝ   ف ی  اﻝ‪ X"%‬رﻝ ‪ P‬أﺙ‪B‬ء اﻝ;‪[) 8AB‬ن اﻝ‪ 1K‬د ه‪ 1‬ﻝ‪1e‬‬
‫* إذا آ‪1‬ن اﻝ‪ 1L 1Z‬اﻝ‪ %1‬اﻝ‪@ 1‬‬
‫‪ OTCL‬وه ﻝ‪ Scripting e‬ﻝ‪8‬ﻝ‪ Q‬اﻝ;‪ 8AB‬ی‪ K‬ن ‪ً%‬ا ‪%1‬اً ‪ً 1 L‬‬
‫; ‪ 8AB‬ا[‪ %‬اﻝ; ا[وﻝ‪ (1‬و‪ 1B‬اﻝ‪ %
;1 @ 1‬ر‪1‬ﻝ اﻝ‪ (1Z‬واﻝ;‪ H1 1‬ل ان اﻝ ;‪ %1e‬اﻝ‪81‬ي ‪ 1‬‬
‫ا;‪Z‬ا"‪ 2‬دا‪ GP‬ه‪8‬ا ا?ﺝ‪%‬اء ‰‪% " %‬وف "ل   ( ذﻝ‪: Q‬‬
‫]‪set ns [new Simulator‬‬
‫"‪set message "finish program‬‬
‫{ }{ ‪proc finish‬‬
‫‪global ns message‬‬
‫‪$ns flush-trace‬‬
‫‪puts $message‬‬
‫}‬
‫‪ L‬ه‪8‬ا اﻝ ‪1‬ل ﻝ‪1 Ž1" 1 1‬رة ‪  1 global ns message‬اﻝ‪1 ً1P X"1%‬ن اﻝ ;‪%1‰ ns %1e‬‬
‫?‪.‬‬
‫" ‪%‬ف دا‪ GP‬ا?ﺝ‪%‬اء ;ر‪ 9‬اﻝ‪8‬ي ‪ 8AB‬أو ً‬
‫رة ‪ global‬ه‪ ns object G F B‬واﻝ ;‪%1e‬ات ا?‪%1P‬ى ‪ ،‬و!‪%1  1‬ف ان آ‪ G1‬اﻝ‪1‬وال ‪1B‬رج !‪M1‬‬
‫‪ ns object‬واﻝ‪8‬ي   ;‪ 2‬ه‪ L B‬اﻝ ل ‪.ns‬‬

‫ی ﺝ‪ 11‬داﻝ‪ 11L 11‬اﻝ !‪11‬آ  ‪ instance ( 1‬ی‪ ;11‬ا‪ ;11‬ﻝ


 "‪ classes @11‬وی ‪ 11K‬ا‪Z;11‬ا"
 "‪ @11‬اﻝ‪*11K‬س‬
‫? " ا‪Z;1‬ام ‪1‬رة‬
‫‪ Simulator‬ﻝ ‪ " Z G‬اﻝ‪*K‬س ‪ Simulator‬اﻝ ﺝ د ‪ L‬اﻝ‪ X"%‬اﻝ!ﻝ  ً‬
‫‪ global‬وذﻝ‪ Q‬ﻝ‪%‬ی‪ H‬اﻝ;ﻝ‪:‬‬

‫‪8‬‬
‫اء ا‬ ______ NS2 ‫   آ ات‬
set ns [new Simulator]
proc finish {} {
set ns_ [Simulator instance]
$ns_ flush-trace
}
%1e ‫ل‬1 ‫ اﻝ‬1AL ، ns ‫رﺝ‬1Z‫ اﻝ‬Object A ‫ وه‬Simulator ‫*س‬K‫ " اﻝ‬Z G   ‫ اﻝ ل‬L
Simulator ‫*س‬11K‫ اﻝ‬%11e;" ‫ن‬11 ‫اء‬%11‫ر ا?ﺝ‬11P‫ ا‬11K ‫ ی‬211‫ د أ‬11-H ‫ﻝ‬L ns_ (11‫ إﻝ‬ns 11" %11e; ‫ اﻝ‬11‫ا‬
‫*س‬11‫ آ‬11" Z11 G11 11‫ واﻝ‬global ‫رة‬11 ‫ام‬Z;11 (11‫; ا[وﻝ‬H‫ی‬%11 ‫اء‬%11‫ ا?ﺝ‬G11P‫ف دا‬%11 "
.‫رﺝ‬Z‫ اﻝ‬Simulator

9
‫اء ا‬ ______ NS2 ‫   آ ات‬

:^ )‫ آ> ا‬5 ‫ت‬5cd4‫ وا‬T‫ام اا‬/`>‫ ا‬,‫رة ا‬4‫ا‬


? 1
L M1 ‫ ﻝ ا‬1B‫ ﻝ‬G‫ی‬1 ;‫ اﻝ‬%1 1" 1‫ وی‬G1ŠL‫ أ‬1H‫ی‬% X"1%‫
اﻝ‬L (  
L
:‫ "ل‬TCL e‫ ﻝ‬L ‫ات اﻝ دی‬%e; ‫;  اﻝ‬Z
set numbers 10
set num 2
for {set i 0} { $i < $numbers} {incr i} {
puts "the multiplication table of $num * $i = [expr $i * $num]"
}
‫ول‬1‫* ﺝ‬
ً 1" ‫ب‬1!‫ ﻝ‬X"1%‫ل اﻝ‬1  ‫ أن‬1‫–ذا أرد‬1L ‫ 
 ﺝا‬X"%‫ ﻝ‬K!;‫ا اﻝ ل   اﻝ‬8‫ ه‬L ž‫?ﺡ‬
.num %e; ‫  اﻝ‬T %e ‫  ى‬B  L 3 ‫ ﻝ د‬B‫ب ﻝ‬%Š‫اﻝ‬

associative array ( 1‫ة وی‬%1K ‫م‬Z;1"‫ت و‬L A1- ‫ اﻝ‬1" G1 ‫ ع ﺝ‬1 1‫ ﺝ‬L ‫ت‬L A1- ‫ ﻝ‬B‫ ﻝ‬
:Q‫س "ل ( ذﻝ‬%
L ‫ه ا‬%‫ﺹ‬B ‫ی‬% ; ‫ م‬H ;‫واﻝ‬
set num("first") 1
set num("second") 2
set sum [expr $num("first")+ $num("second")]
puts "the sum = $sum"

:   ‫ "ل‬L Q‫  ذﻝ‬%; HB‫ﻝ‬


set ns [new Simulator]
#open nam file
set nf [open out.nam w]
$ns namtrace-all $nf
#set variables of topology
set lanNodes 5
set link("bandwidth") 5mb
set link("delay") 2ms
set link("queue") DropTail

10
‫اء ا‬ ______ NS2 ‫   آ ات‬
#define two routers
set router0 [$ns node]
set router1 [$ns node]
#link two routers
$ns duplex-link $router0 $router1 2mb 2ms DropTail
#create and connect nodes with routers
for {set i 0}{$i < $lanNodes}{incr i} {
set n($i) [$ns node]
set n([expr $i+5]) [$ns node]
$ns duplex-link $n($i) $router0 $link("bandwidth") $link("delay") $link("queue")
$ns duplex-link $n([expr $i+5]) $router1 $link("bandwidth") $link("delay") $link("queue")
}
G11 ;‫ ﻝ‬5-9 11" 11H ‫ واﻝ‬router0 @11" 11
 ‫( ور‬11‫ ا[وﻝ‬K11F‫ة اﻝ‬11
‫ أﺝ‬G11 ;‫ ﻝ‬0-4 11" 11H ‫ اﻝ‬11‫ی‬% ; 11B T 11H!‫ اﻝ‬G11P‫دا‬
.5 ‫ة‬H ‫ اﻝ‬T‫ یدة ر‬B T B‫م  ری„ وه‬H‫م ﻝ‬Z; ;‫ واﻝ‬expr e‫ام ﺹ‬Z; ‫ اﻝ‬KF‫أﺝ
ة اﻝ‬
‫ ن‬1K‫ ی‬2"‫ا‬Z;‫ أ‰‚ ا‬K‫ص ﻝ !آ ﻝ‬P ‫ آ د‬L ‫ت‬L A- ‫ ع " اﻝ‬B‫ا اﻝ‬8‫ام ه‬Z;‫ ا‬A‫ "ل  ی „Ž آ‬HL ‫ا‬8‫ه‬
‫ا‬81‫ام ه‬Z;1‫ ا‬21L ;1 K1*‫ت اﻝ‬K1F‫ص ﻝ‬1P ‫ د‬1‫;Ž أي آ‬1A M T L wireless K*‫ت اﻝ‬KF‫ أآ اد اﻝ‬L ً‫‰ﻝ‬
.%‫ آ‬2?  ;K‫ اﻝ‬L ‚ ‫
وﺹ‬A‫ اﻝ‬L G
‫ ا‬2BK‫ ﻝ‬HH‫ا ﺡ‬8
‫ت و? ی ﺝ آ د آ‬L A- ‫ ع " اﻝ‬B‫اﻝ‬
proc finish { } {
global ns nf
close $nf
$ns flush-trace
exec nam out.nam
exit
}
$ns at 5 "finish"
$ns run
" 10 (‫; إﻝ‬KF‫ اﻝ‬L ‫* إذا أرد زیدة د ا[ﺝ
ة‬
ً  L ‫و‬%" %‫ أآ‬X"%‫ اﻝ‬G ‫ات ی‬%e; ‫ت واﻝ‬L A- ‫ام اﻝ‬Z;
router0 ‫ ﻝـ‬KF‫ ر  اﻝ‬L Ž„‫ رة أو‬- X"%‫اءة اﻝ‬%T K ‫ أیŠً ی‬، lanNodes %e; ‫  اﻝ‬T %e ?‫ إ‬HL B
.%‫ اﻝ‬GK' " bandwidth , delay and queue L% "‫ و‬%‫اءة اﻝ‬%T K ‫ی‬

11
‫اء ا ‬ ‫______‬ ‫   آ ات ‪NS2‬‬

‫ا‪4‬رة ا ز‪ \.‬ا) ^ ‪ 5‬أآ) = دا أو ; ‪:‬‬


‫وذﻝ‪ Q‬ن ‪ ‚;K‬اﻝ‪ K‬د اﻝ ‪  µ;Z‬ا‪F‬ء '‪ GK‬اﻝ‪ L KF‬إﺝ‪%‬اء )داﻝ( ﻝ‪
L " G
 K‬‬
‫اﻝ‪ X"%‬واﻝ;  "‪
A‬م " "‪A‬ه ﻝ‪e‬ت اﻝ‪ "%‬ی ‪%‬ف ‪L Readability‬ﻝ‪ X"%‬إذا ﻝ ی‪ K‬أي‬
‫'‪ %‰ µZ‬آ‪ 2‬ی;@ ‪ 2
L‬أو ";  ‪ 98AB‬ی ;‪ X"% %‬ی‪ 2-HB‬ه‪8‬ا اﻝ ‪
A‬م وه‪8‬ا ه اﻝ‪A‬رق اﻝ‪8‬ي‬
‫‪ 2L MLB‬ﻝ‪e‬ت اﻝ‪."%‬‬
‫إذًا ی‪ L GŠA‬آ;  ‪%‬ا"‪!" X‬آ اﻝ‪KF‬ت ‪ Ns2‬أن ‪%‬ا( ه‪ 98‬اﻝ‪ HB‬وی; ذﻝ‪  ;K Q‬اﻝ‪ K‬د اﻝ ‪µ;Z‬‬
‫* –‪F‬ء '‪ GK‬اﻝ‪ L KF‬اﺝ‪%‬اء ﺙ   ا‪F‬ء ‪  " traffic‬وا‪B‬د‪ 9‬إﻝ( ‪H‬ة ‪ L‬اﺝ‪%‬اء ‪%P4‬‬
‫" ً‬
‫و‰‪.9%‬‬
‫اﻝ‪ e-‬اﻝ " ﻝ; ‪%‬ی ا?ﺝ‪%‬اء‪:‬‬
‫{ } ‪proc proc_name {parameters‬‬
‫‪#code of procedure‬‬
‫}‬
‫* ی ‪ K‬و„@ أآ‪ %‬اﻝوال ا;‪Z‬ا"ً ‪ " L‬واؤ‪9‬‬
‫ی ‪ K‬أیŠً  زی@ اﻝ‪ ( X"%‬أآ‪ً " " " %‬‬
‫? " آ; ;‪ " 2‬ﺝی وه "‪
A‬م أیŠً " ‪%‬وف ‪ L‬ﻝ‪e‬ت اﻝ‪ "%‬ی ( ‪reusability‬‬
‫‪ L‬اﻝ‪%‬ا"‪ً  X‬‬
‫ی ‪ (B‬ادة ا?;‪Z‬ام ‪ ،‬وی;  ‪ G‬ذﻝ‪Z; Q‬ام اﻝ‪  K‬اﻝ ! زة ‪) source‬اﻝ;  ﺙ‪ L G‬ﻝ‪ e‬اﻝ‪L‬‬
‫‪ import‬و‪ L‬ﻝ‪ (include C/C++ e‬ﺙ ا اﻝ  ﺙ ه "'‪%‬ة ی ‪ K‬اء اي ";‪ %e‬أو اﺝ‪%‬اء‬
‫" ﺝ دة ‪ L‬ه‪8‬ا اﻝ ‪.‬‬
‫اﻝ‪ e-‬اﻝ " ‪:‬‬
‫‪source procs.tcl‬‬
‫]‪set avg [getAverage 10 22 32 54‬‬
‫ﺡ‪ ¹‬ا?ﺝ‪%‬اء ‪ " getAverage‬ﺝ د ‪ L‬اﻝ  ‪.procs.tcl‬‬
‫ی ‪ K‬اء اي داﻝ " ﺝ دة ‪ L‬ه‪8‬ا اﻝ   رة ‪ source‬وه‪8‬ا ﻝ@ ی‪ A‬آ‪%‬ا ‪ L‬ﺝ ‪ G1‬اﻝ‪1‬وال أو‬
‫ا?ﺝ‪%‬اءات اﻝ ;‪%K "Z‬ة  „@ ‪ " L‬ی; ا;‪Z‬ا"‪ L 2‬ا[آ اد ون اﻝ! ﺝ ﻝ‪ " 
; ;K‬ﺝی‪.‬‬

‫‪12‬‬
‫اء ا‬ ______ NS2 ‫   آ ات‬

: ^ )‫* ا‬,‫رة ا)ا ﺙ‬4‫ا‬


‫ د‬K‫رئ اﻝ‬H‫ وﻝ‬% X"%‫ اﻝ‬%‫آ‬8;‫ ی‬K‫ ﻝ‬X"%‫‚ اﻝ‬K‫ ﻝ‬B‫وه " اﻝ
رات اﻝ
 ﺝًا ﻝ‬
H‫ی‬%S " %‫ اﻝ
رة و  أآ‬98‫آ ( ه‬% ‫ى‬%P[‫ت ا‬e‫ اﻝ‬AL ، GŠL‫ أ‬H‫ی‬% ‫ د‬K‫
اﻝ‬A‫ ی‬K‫ﻝ‬
c‫ اﻝ; ﺙ‬K ‫ ی‬L‫ ﺝ‬e‫ ﻝ‬L *
ً  L % " %‫ أو آ;  أآ‬HL ‫ واﺡ‬%  ;‫ آ‬K ‫ ی‬¹‫ ﺡ‬c‫;  اﻝ; ﺙ‬K‫ﻝ‬
: ;H‫ی‬%
.% " %‫;  أآ‬K‫ ﻝ‬/* */ ‫ أو‬HL ‫ واﺡ‬%  ;K‫ ﻝ‬// ‫ام‬Z;‫ ا‬K ‫ی‬
:*
ً " # "%‫ اﻝ‬c‫ی‬%S  ‫ واﺡة وه‬H‫ی‬% OTCL e‫ ﻝ‬L c‫ی; اﻝ; ﺙ‬
#define nodes
set n0 [$ns node]
set n1 [$ns node]
#connect two nodes
$ns duplex-link $n0 $n1 2mb 2ms DropTail

13
‫اء ا ‬ ‫______‬ ‫   آ ات ‪NS2‬‬

‫اب ا ‬

‫ا ‪d‬ل ‪  a9‬ت = ا ‬

‫‪14‬‬
‫اء ا ‬ ‫______‬ ‫   آ ات ‪NS2‬‬

‫ "‪ /‬‬
‫اﻝ‪%P[ HB" " ;Z 
;  KF‬ى وآ‪%1e;" 81P K' G‬ات أو 
‪% 1N‬ی‪ ‚1B 1B " 1H‬و„‪، 
1‬‬
‫‪!" %L L‬آ اﻝ‪KF‬ت ‪ NS2‬أآ‪%S " %‬ی‪ H‬ﻝ;
‪ K" N‬ت اﻝ‪ KF‬واﻝ; ‪º 
H‬ﺙ‪ ( %‬أداء اﻝ‪.KF‬‬

‫ ;‪ %‬أدوات "‪%‬ا‪ T‬اﻝ‪ " KF‬ا[دوات اﻝ


 ﺝًا ﻝ ی‪ %‬اﻝ‪ KF‬واﻝ;‪ 1‬ی‪*P 1" @;1‬ﻝ
‪! 1‬ی‪ 1‬أداء اﻝ‪K1F‬‬
‫و" ‪F" L%‬آ
 و
‪ G‬ﺡ
 ‪ ،‬وی ﺝ‪%1S 1‬ق ‪1‬ة ﻝ ‪%‬ا‪ 1T‬اﻝ‪ 1L monitoring K1F‬اﻝ ا‪ ، @1T‬وی‪ 1H‬م اﻝ !‪1‬آ ;‪%L 1‬‬
‫‪4‬ﻝ ﻝ!‪ -‬ل ‪ (1‬اﻝ  "‪1‬ت اﻝ;‪ 1‬ی!;ﺝ
‪1" 1‬ی‪ %‬اﻝ‪ K1F‬ﻝ ‪ 1L%‬أداء اﻝ‪%S 1 K1F‬ی‪%1e;" c1‬ات ;‪ 1
T %1e‬اﺙ‪1B‬ء‬
‫اﻝ;‪ 8AB‬و‪%1T‬اءة ه‪ 981‬اﻝ‪ 1H‬ی‪ 1L 1‬اﻝ!‪ 1-‬ل ‪1T 1L 1 1"  " (1‬س أداء اﻝ‪ K1F‬اﻝ;‪1H 1‬س ‪1B‬ء ‪1 " (1‬ی‪%‬‬
‫و"‪11H‬ی ی‪ ;11‬ا‪11T 
;11‬س ا[داء و ‪، Performance Metrics ( 1‬و‪%11' ;11‬ح آ‪ 11  c11 11A‬اﻝ ‪%‬ا‪11T‬‬
‫ﻝ‪%S  KF‬ی‪ c‬اﻝ !آ ‪? L‬ﺡ‪ L ًH‬ه‪8‬ا اﻝب‪.‬‬

‫‪15‬‬
‫اء ا ‬ ‫______‬ ‫   آ ات ‪NS2‬‬

‫ >‪),g‬ات ا ‪: Network Parameter‬‬


‫  أن   ‪ L B‬اﻝء ا?ول آ‪ 1A‬آ; ‪ 1‬اﻝ‪ ، X"1%‬و‪ c1; 1B T‬اﻝ‪ K1F‬اﻝ;‪% 1‬ی‪
 1- 1‬‬
‫ ا»ن ﻝ‪ HB‬م ;‪  • %e‬ك اﻝ‪ KF‬وذﻝ‪ Q‬ی; ;‪%1e;" %e‬ات أو " ‪*"1‬ت ‪Parameters ( 1‬‬
‫واﻝ; ‪º‬ﺙ‪ GK' ( %‬اﻝ ‪%Z‬ﺝت و ;‪ " %‬ا['ء اﻝ
 ﺝًا واﻝ; ی‚ " ‪ L 
;L%‬اﻝ !آ واﻝ;‪1‬‬
‫"‪*P 11‬ﻝ
‪ @;11 11‬أن !‪11"  " (11 G11-‬ت ‪ 11‬اﻝ‪ K11F‬واﻝ;‪ 11  11L 
"Z;11B 11‬اﻝ;!‪11L G11‬‬
‫ا[ اب اﻝ‪H‬د"‪.‬‬
‫  !‪ G‬اﻝ‪ KF‬ه " اﻝ ت ا? ﻝ‪%F" GK‬وع ‪L‬ي "‪%F‬وع ‪ L‬اﻝ‪e‬ﻝ‚ ی‪ 1K‬ن ‪1‬رة‬
‫ ا‪%;T‬اح ﺝی أو ‪ module‬ﺝی او " ﺝ د "‪ ًH‬و !‪ 2B‬و‪%‬ی ا‪;P‬ر‪%S  9‬ی‪ c‬اﻝ !آ ‪AL‬‬
‫ه‪ 98‬اﻝ!ﻝ ی‚ أن ‪ H‬م ;
‪ N‬اﻝ‪ ( KF‬ﺡ‚ اﻝرا وی‪ K‬ن ذﻝ‪ Q‬ﻝ;‪ L %e‬ه‪ 98‬اﻝ "*ت‪.‬‬
‫اﻝ !آ ‪ NS2‬ه "!آ ‰‪ 1B‬ﺝ‪ً1‬ا ﻝ ‪*"1‬ت واﻝ;‪ 1‬ی‪ 1H‬م „‪ 
1‬و‪Z‬ی‪ 1" 1L 1
B‬واﺡ‪ 1‬وی‪ 1H‬م‬
‫ ‪%;11111‬ﺝع ‪ 11111T‬ه‪ 9811111‬اﻝ ‪*"11111‬ت "‪ 211111B‬اﺙ‪11111B‬ء ‪ 811111AB‬اﻝ‪ ، X"11111%‬ی ﺝ‪ 11111‬ه‪811111‬ا اﻝ ‪ 11111L 11111‬اﻝ ‪11111‬ر‬
‫‪ ns2.31/tcl/lib/ns-default.tcl‬و'‪ Ž„ " 2K‬ﻝ‪ -‬رة اﻝ;ﻝ ‪:‬‬

‫?ﺡž "  '‪ GK‬اﻝ ;‪%e‬ات ‪ 8P‬اﻝ‪B‬ری اﻝ;ﻝ‬


‫‪Agent/TCP set rtt_ 0‬‬
‫" ‪B‬ه „@ اﻝ‪  H‬ا?‪%;L‬ا„ ﻝ‪ B‬ﻝـ ‪ 0 Round Trip Time‬اﻝ‪Z‬ص ﻝ Š ‪TCP‬‬

‫‪16‬‬
‫اء ا‬ ______ NS2 ‫   آ ات‬

1‫ وآ‬1H‫ اﻝ‬981‫ ه‬%e ‫ أن‬B‫ ﻝ‬K ‫ آ ی‬K‫


 اﻝ !آ وﻝ‬G ‫ا„ اﻝ; ی‬%;L?‫ ا‬H‫ ه أ‰‚ اﻝ‬98‫إذا ه‬
Sink (1‫ إﻝ‬M1‫ وﺹ‬1;‫م اﻝ‬1!‫د اﻝ‬1 ‫ "* ﻝ!ب‬B " „‫   ری‬L 
; T " A; ‫ أن‬B‫ ﻝ‬K ‫ی‬
‫؟‬Q‫ اﻝ
ا»ن آ ذﻝ‬، Q‫ ذﻝ‬%‰‫و‬
: ‫ آ  ی‬2‫  ﻝ‬H‫* ﺙ ارﺝع اﻝ‬
ً " %e;" ‫ی‬% ; ‫ة أو‬%'" 
"‫ا‬Z; Q‫ی; ذﻝ‬
set interv [$app set interval_]
1 T ‫د‬B1‫ ا‬1‫ ﺡﻝ‬1L "‫
 اﻝ !آ أ‬G ‫ا„ اﻝ; ی‬%;L?‫  ا‬H‫ ل ( اﻝ‬-!‫ ﺡﻝ ارﺝع أو اﻝ‬L 98‫ه‬
:» ‫ م‬H „‫ا‬%;L?‫  ا‬H‫"
 ل اﻝ‬Z;‫ی " اﻝ !آ أن ی‬%‫ﺝیة و‬
$app set interval_ 0.02
$app set packetSize_ 1000
.„‫ا‬%;L?‫  ا‬H‫  ﺝیة ل اﻝ‬T ‫د‬B‫ اﻝ; ی;
 ا‬H‫ی‬%‫وه اﻝ‬
: G"‫ "ل   آ‬L 
!„‫و‬
set ns [Simulator]
set nf [open out.nam w]
$ns namtrace-all $nf
proc finish { } {
global ns nf
close $nf
$ns flush-trace
exec nam out.nam
exit
}
set n0 [$ns node]
set n1 [$ns node]
$ns duplex-link $n0 $n1 5mb 2ms DropTail
set udp [new Agent/UDP]
$ns attach-agent $n0 $udp

17
‫اء ا‬ ______ NS2 ‫   آ ات‬

set udpsink [new Agent/Null]


$ns attach-agent $n1 $udpsink
set app [new Application/Traffic/CBR]
$app attach-agent $udp
$app set interval_ 0.02
$app set packetSize_ 1000
$ns at 0.0 "$app start"
$ns at 3.0 "$app stop"
$ns at 4 "finish"
$ns run

.‫ وا[زرق‬B‫ات "  ﻝ ن اﻝ‬%e; ‫ اﻝ‬9*‫ اﻝ ل أ‬L


:»‫ ا‬Q‫ ل ﻝ‬T‫* و‬
ً -A %‫ إﻝ( "; ى أآ‬Q GH; ‫ا‬8‫ً  ه‬B‫ﺡ‬
: ‫ !یًا وه‬TCL e‫ ﻝ‬L ‫ اﻝ !آ‬L ‫" "@ أي آ*س‬Z; ‫ات اﻝ‬%e; ‫ی ﺝ  ن " اﻝ‬
- Class Variable.
- Instance Variable.
‫ ؟‬B‫ی اﻝ‬8‫" ه  ه‬
:Q‫ًا ﻝ‬%‫آ‬8 ‫ وه‬ns-default.tcl " L ‫ات‬%e; ‫ اﻝ‬e‫ ﺹ‬GT GT ‫ت‬%‫ذآ‬
Agent/TCP set rtt_ 0
:‫آ رة‬8 ‫ اﻝ‬e-‫
 وه ( ﺡ‚ اﻝ‬L G‫ اﻝ; ی‬e‫ت أیŠً ﺹ‬%‫وذآ‬
$agent set rtt_ 1
( 1 ‫ ی‬11‫ اﻝ‬e11-‫ اﻝ‬11L %11e; ‫ واﻝ‬Class Variable ( 1 ‫( ی‬11‫ ا[وﻝ‬e11-‫ اﻝ‬11L ‫ د‬11‫ اﻝ ﺝ‬%11e; ‫اﻝ‬
. Instance Variable

18
‫اء ا ‬ ‫______‬ ‫   آ ات ‪NS2‬‬

‫أآ‪ 11" %11‬ذﻝ‪ Q11‬ذآ‪%11‬ت ﻝ‪ Q11‬أ‪ 211‬ی ‪ %11e Q11BK‬اﻝ‪ 11 H‬ا?‪%;L‬ا„‪%S 11 11‬ی‪ c11‬اﻝ‪ e11-‬اﻝ‪ 11L 11‬اﻝ‪ 11K‬د‬
‫وو„!;
 ‪ L‬اﻝ ل اﻝ ‪، c‬أیŠً ی ‪ %e QBK‬اﻝ‪  H‬ا?‪%;L‬ا„ ‪%S 1‬ی‪ c1‬اﻝ‪ e1-‬ا[وﻝ‪ (1‬وﻝ‪1" 1K‬‬
‫ه اﻝ‪%A‬ق ؟؟؟‬
‫اﻝ‪%A‬ق ه أن ا;‪Z‬ام اﻝ‪ e1-‬ا[وﻝ‪ 1H (1‬م ; ‪1‬ی‪ ;1" (1 G‬ى آ‪ G1‬اﻝ‪1*K‬ت اﻝ ﺝ‪ 1‬دة ‪Q1"% 1L‬‬
‫ ‪  B‬ا;‪Z‬ام اﻝ‪ e-‬اﻝ ‪ H‬م ﻝ; ی‪ ;" ( G‬ى اﻝ‪*K‬س ‪.HL‬‬
‫‪  " GZ : S‬ه‪8‬ا اﻝ‪B‬ری !‬
‫  ً‬
‫ ‪ X"%‬ی!; ي ( ‪ H 5‬وی;‪Z‬م ‪%‬و آ ل ‪ L TCP‬اﻝ ‪H‬ة ا[وﻝ( واﻝ واﻝﻝ واﻝ‪%‬ا  وی‪ H‬م‬
‫ ?رل إﻝ( اﻝ ‪H‬ة اﻝ‪."Z‬‬
‫ﻝ;‪  T %e‬ﺡ اﻝ!" ‪% L‬و آ ل ‪ L TCP‬اﻝ ‪H‬ة ا[وﻝ( ی; ا;‪Z‬ام ‪Instance Variable‬‬
‫و‪ H‬م »‪:‬‬
‫‪$tcpnode1 set packetSize_ 2000‬‬
‫ﻝ;‪  T %e‬ﺡ اﻝ!م ﻝ‪ GK‬اﻝ Š‪A‬ت "  ع ‪ TCP‬ی; ا;‪Z‬ام ‪:Class Variable‬‬
‫‪Agent/TCP set packetSize_ 1500‬‬
‫اﻝ‪*Z‬ﺹ‪ Class Variable 11 T 11L %11e 11‬ی‪ 11H‬م ;‪ %11e‬اﻝ‪ 11 H‬ا?‪%;L‬ا„‪ 11‬ﻝ‪ G11K‬اﻝ Š‪A11‬ت اﻝ;‪ 11‬ی‪ ;11‬‬
‫ا‪F‬ؤه ‪ L‬اﻝ‪.X"%‬‬

‫‪19‬‬
‫اء ا ‬ ‫______‬ ‫   آ ات ‪NS2‬‬

‫<‪ *,‬ا‪)4‬ا‪ a9 m‬ا ‪:Monitoring‬‬


‫? ی‪% " X"% Z‬ا"‪ X‬اﻝ !آة " ﺝ @ "  "ت وا;‪%Z‬اج ;ﺉ‪ X‬واﺡ‪-‬ﺉت ﻝ ‪H‬ر;
 "@‬
‫م أو ‪%;H" module‬ح ‪ ،‬ﻝ‪8‬ﻝ‪ Q‬ی ‪ %L‬اﻝ !آ "  آ‪%‬ة " اﻝ ;‪%e‬ات اﻝ; ‪ H‬م ﻝ ة ‪L‬‬
‫ﺝ @ "  "ت " اﻝ‪ KF‬و" ه‪ 98‬اﻝ‪%‬ق اﻝ ‪%‬ا‪ Monitoring T‬وی ﺝ ‪%S‬ی‪ ;H‬ا[وﻝ( ‪ K‬ن (‬
‫"; ى اﻝ‪ Queue -‬واﻝ ( "; ى اﻝ Š ‪.Agent‬‬

‫‪ -‬ا‪)4‬ا‪> a9 m‬ى ا‪:Queue ;d‬‬


‫?‬
‫أي ﺡ" ‪ L‬اﻝ !آ  ا
 ‪ %  routing, data, acknowledge packet …etc‬أو ً‬
‫? و‪ L‬ه‪98‬‬
‫ ﻝ‪–L -‬ذا آن اﻝ‪%‬ا  ‪ link‬أو ‪ !" %‰ Media‬ز ی; ﺡ‪8‬ف اﻝ!" " اﻝ‪ -‬أو ً‬
‫اﻝ!ﻝ ﻝ‪ B‬ﻝ‪ K -‬ن اﻝ!" ‪ L‬ﺡث اﻝ ‪e‬درة ‪ " departure‬اﻝ‪ -‬اﻝ ﺝ د ‪ L‬اﻝ ‪H‬ة‬
‫اﻝ!ﻝ  ذﻝ‪ Q‬ی; ارﻝ
 ‪ %‬اﻝ‪%‬ا  إﻝ( اﻝ ! اﻝ;ﻝ ﺡ‚ ﺝول ‪.routing table‬‬
‫‪ -‬ا‪)4‬ا‪> a9 m‬ى ا م ‪:Agent‬‬
‫ه‪% GK‬آ‚ اﻝ‪ KF‬یأ " "; ى ‪H‬ة ‪ node‬ﺙ "Š ‪ agent‬ﺙ ‪ application c‬آ  ‪L‬‬
‫اﻝ‪ GKF‬اﻝ;ﻝ‪:‬‬

‫‪ L‬اﻝ‪ GKF‬اﻝ ‪ c‬اذا ا‪ B„%;L‬أن اﻝ ‪H‬ة اﻝ; ﻝ ن ا[ﺡ ‪% %‬ی ا?رل إﻝ( اﻝ ‪H‬ة اﻝ; ﻝ ن ا[‪%ŠP‬‬
‫ ( اﻝ ‪H‬ة اﻝ ‪ %‬اﻝ ‪-‬ر ‪ source‬واﻝ ‪H‬ة اﻝ ;‪ H‬ﻝ ‪? ، sink ‚-‬ﺡž أیŠً أن اﻝ ‪H‬ة اﻝ ‪%‬‬

‫‪20‬‬
‫اء ا ‬ ‫______‬ ‫   آ ات ‪NS2‬‬

‫ی ‪ K‬أن ی‪ K‬ن
 اآ‪-" " %‬ر وه‪8‬ا ی ‪ B‬أ
 ی ‪ K‬أن ‪ G%‬و;‪ A L GH‬اﻝ"‪ ،‬اﻝ‪8‬ي أری‬
‫أن أﺹ‪ G‬إﻝ‪ " 2‬آ‪ G‬ه‪8‬ا اﻝ‪%F‬ح أ‪ 2‬ی ‪%" K‬ا‪ T‬اﻝ ‪ sink ‚-‬ﻝ!ب د اﻝ!م أو آ  ‪ bytes‬اﻝ;‬
‫* ‪ L‬ﺡب ‪Bandwidth‬‬
‫ا;‪%Z;? 
H‬اج "  " ا?ﺡ‪-‬ﺉت اﻝ; ی ‪ K‬ا?;‪A‬دة "‪ً " 
B‬‬
‫وا?;ﺝ ‪ Throughput‬و‰‪%‬ه‪.‬‬
‫* ‬
‫? أن ;‪ً T K‬‬
‫ ا»ن إﻝ( " ‪ L%‬آ‪ c A‬ه‪8‬ا اﻝ‪*K‬م ‪ -‬رة   وﻝ‪H‬م ‪8‬ﻝ‪ Q‬ی‚ أو ً‬
‫اﻝ ;‪%e‬ات اﻝ; ‪ 8PB‬اﻝ‪.
B" H‬‬
‫ی‪ H‬م اﻝ !آ ;‪Z‬ی اﻝ ;‪%e‬ات اﻝ‪Z‬ﺹ ﻝ‪%‬و آ ?ت واﻝ‪ B‬ذج اﻝ ‪ L H‬اﻝ  اﻝ ﺝ د ‪L‬‬
‫اﻝ ر ‪ ns2.31/tcl/lib/ns-default.tcl‬واﻝ‪ e-‬اﻝ ‪   ;K‬ذآ‪%‬ه  ‪ ، ًH‬اﻝ
ی ﺝ آ*‬
‫"
 ﺝًا وی; *ن آ‪ً%‬ا ‪ L‬ﺝ @ د " ا?ﺡ‪-‬ﺉت واﻝ  "ت  اﻝ‪ KF‬وه ‬
‫‪ QueueMonitor and LossMonitor‬وه  ی!; ین ( د " اﻝ ;‪%e‬ات اﻝ; ‪ H‬م ;‪Z‬ی‬
‫"  "ت  اﻝ‪ KF‬واﻝ; " „! ﻝ‪ -‬رة اﻝ;ﻝ‪:‬‬
‫اﻝ‪*K‬س ا[ول ‪QueueMonitor :‬‬

‫اﻝ‪*K‬س اﻝ‪LossMonitor :‬‬

‫‪ L‬اﻝ‪  %‬ا[وﻝ( آ*س ‪ QueueMonitor‬واﻝ‪8‬ي ی ﺝ ‪ 2‬د " اﻝ ;‪%e‬ات ‪: 


B" 8P‬‬
‫‪size_ : size of queue in bytes.‬‬
‫ﺡ اﻝ!م اﻝ ﺝ دة ‪ L‬اﻝ‪ -‬ﺡة ‪.byte‬‬
‫‪pks_ : Number of packets in queue.‬‬

‫‪21‬‬
‫اء ا‬ ______ NS2 ‫   آ ات‬

.-‫ اﻝ‬L ً‫د اﻝ!م اﻝ ﺝ دة ﺡﻝ‬


parrivals_ : Number of packets arrive in queue.
.-‫ ﺡﻝً إﻝ( اﻝ‬M‫د اﻝ!م اﻝ; وﺹ‬
barrivals_ : The size of packets arrive to queue in bytes.
.byte ‫ ﺡة‬-‫ ﺡﻝً إﻝ( اﻝ‬M‫ﺡ اﻝ!م اﻝ; وﺹ‬
pdepartures_ : Number of packets depart from queue.
.-‫د اﻝ!م اﻝ; ‰درت ﺡﻝً " اﻝ‬
bdepartures_ : The size of packets depart from queue in bytes.
.byte ‫ ﺡة‬-‫ﺡ اﻝ!م اﻝ; ‰درت ﺡﻝً " اﻝ‬

G ( 
B" 8P ًŠ‫ات أی‬%e; ‫ د " اﻝ‬2 ‫ي ی ﺝ‬8‫ اﻝ‬LossMonitor ‫  اﻝ آ*س‬%‫ اﻝ‬L
:‫اﻝ ل‬
nlost_ : Number of lost packet.
.‫ دة‬HA ‫د اﻝ!م اﻝ‬
npkts_ : Number of packets.
.MH;‫د اﻝ!م اﻝ; ا‬
bytes_ : The size of packets have been received in bytes.
.byte ‫ ﺡة‬MH;‫ﺡ اﻝ!م اﻝ; ا‬
:‫
 آﻝ;ﻝ‬L X"%‫ اﻝ‬L 
"‫ا‬Z;‫
 وا‬T ( ‫ ل‬-!‫ اﻝ‬A‫أ"  آ‬
set ns [new Simulator]

#Open the output file


set f0 [open out0.tr w]

#Create 5 nodes
set n0 [$ns node]
set n1 [$ns node]
set n2 [$ns node]
set n3 [$ns node]

#Connect the nodes


$ns duplex-link $n0 $n2 1Mb 2ms DropTail
$ns duplex-link $n1 $n2 1Mb 2ms DropTail
$ns duplex-link $n2 $n3 1Mb 2ms DropTail
22
‫اء ا‬ ______ NS2 ‫   آ ات‬

#Define a 'finish' procedure


proc finish {} {
global f0
#Close the output files
close $f0
exit 0
}

#Create a UDP agent and attach it to the node


set source [new Agent/UDP]
$ns attach-agent $n0 $source

#Create an Expoo traffic agent and set its configuration parameters


set traffic [new Application/Traffic/CBR]
$traffic set packetSize_ 1000
$traffic set rate_ 100k

# Attach traffic source to the traffic generator


$traffic attach-agent $source

#Create traffic sink and attach them to the node n3


set sink [new Agent/NULL]

$ns attach-agent $n3 $sink

#Connect the source with the sink


$ns connect $source $sink

# set up the queue-monitor


#monitor-queue node0 node1 File {sampleInterval}
set qmon [$ns monitor-queue $n2 $n3 $f0 0.5]
# sampleInterval is optional and defaults to 0.1 seconds

#Define a procedure which periodically records the number of packets


proc recordpkt {} {
global qmon f0
#Get an instance of the simulator
set ns [Simulator instance]

#Set the time after which the procedure should be called again
set time 0.5

#How many bytes have been received by queue?


set pktbytes [$qmon set size_]

#Get the current time


set now [$ns now]

#put no of packet in file


puts $f0 "$now $pktbytes"

23
‫اء ا‬ ______ NS2 ‫   آ ات‬

#Re-schedule the procedure


$ns at [expr $now+$time] "recordpkt"
}
#Start logging the number of packets
$ns at 0.0 "recordpkt"

#Start the traffic source


$ns at 10.0 "$traffic start"

#Stop the traffic source


$ns at 50.0 "$traffic stop"

#Call the finish procedure after 60 seconds simulation time


$ns at 60.0 "finish"

#Run the simulation


$ns run

(n2,n3) ‫ة ا[وﻝ( واﻝ‬H ‫ا  "  اﻝ‬%‫ ( اﻝ‬T‫ا‬% ‫   اﻝ‬G A; B T ‫;  ﺙ‬K‫;Ž " ﻝ‬A B T
‫ی وﺡب‬Z;‫ ﻝ‬2"‫ا‬Z;‫ار ی; ا‬H ‫ا اﻝ‬8‫ار ه‬H"‫ة ا[وﻝ( واﻝ ﺙ اﻝ  و‬H ‫ل اﻝ‬H; ‫ م‬H ‫واﻝاﻝ‬
.B ‫;ر اﻝ‬P‫ " ل ا‬sample Interval ( ‫ ی‬Q‫ﻝ‬8‫ ﺙ ﻝ‬0.5 G‫ آ‬X‫;ﺉ‬B‫اﻝ‬
‫ ﺝ @ اﻝت‬H‫ی‬%S L ;Z‫ و‬QueueMonitor ‫*س‬K‫ اﻝ‬µ‫ﺉ‬-P 8P ‫ " آ*س‬%‫ی ﺝ أآ‬
cL ‫ ﻝ ر‬B‫ ن ﻝ‬K ‫ أن‬K ‫ ی‬G  "  ‫ أو را‬link L%S  HL ‫ ﺝ @ "  "ت ﻝ‬K L
98‫د" " ه‬H‫ ا[ﺝاء اﻝ‬L "H;" @„‫ " ا‬L 
B K;B ;‫ واﻝ‬GH;"‫ و‬G%"  ‫( اﻝت‬flow)
.‫اﻝ‬

24
‫اء ا‬ ______ NS2 ‫   آ ات‬

Ž„ B‫ و‬G"‫ ل   آ‬2‫ﺡ‬%F ‫ م‬H‫ و‬LossMonitor ‫*س اﻝ وه‬K‫ إﻝ( اﻝ‬GH;B ‫أ" ا»ن‬
:% ‫*س ﻝ ن ا[ﺡ‬K‫ام اﻝ‬Z;‫ ات ا‬P
set ns [new Simulator]

#Open the output file


set f0 [open out0.tr w]
set f1 [open out1.tr w]
set f2 [open out2.tr w]

#Create 5 nodes
set n0 [$ns node]
set n1 [$ns node]
set n2 [$ns node]
set n3 [$ns node]
set n4 [$ns node]

#Connect the nodes


$ns duplex-link $n0 $n3 1Mb 100ms DropTail
$ns duplex-link $n1 $n3 1Mb 100ms DropTail
$ns duplex-link $n2 $n3 1Mb 100ms DropTail
$ns duplex-link $n3 $n4 1Mb 100ms DropTail

#Define a 'finish' procedure


proc finish {} {
global f0 f1 f2

#Close the output files


close $f0
close $f1
close $f2

exit 0
}

#Define a procedure that attaches a UDP agent to a previously created


node
#'node' and attaches an Expoo traffic generator to the agent with the
#characteristic values 'size' for packet size 'burst' for burst time,
#'idle' for idle time and 'rate' for burst peak rate. The procedure
connects
#the source with the previously defined traffic sink 'sink' and
returns the
#source object.
proc attach-expoo-traffic { node sink size burst idle rate } {

#Get an instance of the simulator


set ns [Simulator instance]

#Create a UDP agent and attach it to the node


set source [new Agent/UDP]
$ns attach-agent $node $source

25
‫اء ا‬ ______ NS2 ‫   آ ات‬

#Create an Expoo traffic agent and set its configuration


parameters
set traffic [new Application/Traffic/Exponential]

$traffic set packetSize_ $size


$traffic set burst_time_ $burst
$traffic set idle_time_ $idle
$traffic set rate_ $rate

# Attach traffic source to the traffic generator


$traffic attach-agent $source

#Connect the source and the sink


$ns connect $source $sink
return $traffic
}

#Define a procedure which periodically records the bandwidth received


by the
#three traffic sinks sink0/1/2 and writes it to the three files
f0/1/2.
proc record {} {
global sink0 sink1 sink2 f0 f1 f2

#Get an instance of the simulator


set ns [Simulator instance]

#Set the time after which the procedure should be called again
set time 0.5

#How many bytes have been received by the traffic sinks?


set bw0 [$sink0 set bytes_]
set bw1 [$sink1 set bytes_]
set bw2 [$sink2 set bytes_]

#Get the current time


set now [$ns now]

#Calculate the bandwidth (in MBit/s) and write it to the files


puts $f0 "$now [expr $bw0/$time*8/1000000]"
puts $f1 "$now [expr $bw1/$time*8/1000000]"
puts $f2 "$now [expr $bw2/$time*8/1000000]"

#Reset the bytes_ values on the traffic sinks


$sink0 set bytes_ 0
$sink1 set bytes_ 0
$sink2 set bytes_ 0

#Re-schedule the procedure


$ns at [expr $now+$time] "record"
}

26
‫اء ا‬ ______ NS2 ‫   آ ات‬

#Create three traffic sinks and attach them to the node n4


set sink0 [new Agent/LossMonitor]
set sink1 [new Agent/LossMonitor]
set sink2 [new Agent/LossMonitor]

$ns attach-agent $n4 $sink0


$ns attach-agent $n4 $sink1
$ns attach-agent $n4 $sink2

#Create three traffic sources


set source0 [attach-expoo-traffic $n0 $sink0 200 2s 1s 100k]
set source1 [attach-expoo-traffic $n1 $sink1 200 2s 1s 200k]
set source2 [attach-expoo-traffic $n2 $sink2 200 2s 1s 300k]

#Start logging the received bandwidth


$ns at 0.0 "record"

#Start the traffic sources


$ns at 10.0 "$source0 start"
$ns at 10.0 "$source1 start"
$ns at 10.0 "$source2 start"

#Stop the traffic sources


$ns at 50.0 "$source0 stop"
$ns at 50.0 "$source1 stop"
$ns at 50.0 "$source2 stop"

#Call the finish procedure after 60 seconds simulation time


$ns at 60.0 "finish"

#Run the simulation


$ns run

Q‫ ذﻝ‬L ‫م‬Z;‫ت وا‬A" L 2B‫ی‬Z; ‫ م‬H‫ وی‬KF‫ اﻝ‬L Bandwidth ‫اءة‬%T‫ و‬G; ‫ م‬H‫ د ی‬K‫ا اﻝ‬8‫ه‬
Agent ‫ ﻝـ‬B‫‚ ﻝ‬- ‫*س آ‬K‫د اﻝ‬B‫ت ﺙ ا‬A ‫;Ž اﻝ‬A ‫ م‬H‫ اﻝای ی‬AL ، LossMonitor ‫آ*س‬
H; ‫ اﻝ‬bytes ‫اءة د‬%T ‫ًا‬%P‫ وأ‬UDP @" ?‫ إ‬G ‫*س ? ی‬K‫ا اﻝ‬8
L UDP ‫ "  ع‬c;‫ ﻝ‬B‫ ﻝ‬
. ‫ اﻝ‬L 
‫و‬

27
‫اء ا‬ ______ NS2 ‫   آ ات‬

[‫اب ا‬

‫ ا‬+, 
Analysis of Network

28
‫اء ا ‬ ‫______‬ ‫   آ ات ‪NS2‬‬

‫ ‪ +,‬ا ‪Analysis of Network‬‬


‫  أن  ‪%S ( BL%‬ی‪%S " ;H‬ق اﻝ!‪ -‬ل ( "  "ت " اﻝ‪ KF‬ی ا»ن دور اﻝ;!‪G‬‬
‫ﻝ ‪ L%‬ﺹ! اﻝ‪;B‬ﺉ‪.X‬‬
‫!‪ G‬اﻝ‪!" L KF‬آ اﻝ‪KF‬ت ‪ NS2‬ی; ; ‪%‬ی " ﻝ‪  ;K‬أﺡاث اﻝ‪ 2 KF‬ی ( ه‪8‬ا‬
‫اﻝ   اﻝ;!‪ " ، Trace File G‬ه‪8‬ا اﻝ  ;@ !‪ 2‬آ‪%S " %‬ی‪  L ، H‬اﻝ‪%‬ق أن‬
‫‪ H‬م ;‪Z‬ام واﺡة " ا[دوات اﻝ ﺝ دة ‪ L‬م اﻝ‪ KB‬وه ‪ grep‬وه ‪ H‬م ﻝ!‪   ¹‬‬
‫"  ‪ L‬اﻝ  و‪ H‬م  اﻝ‪ %‬اﻝ‪8‬ي  ‪ H " M‬اﻝ‪.2  B‬‬
‫* اﻝ‪Z‬ﺹ ‪%‬و آ ل ‪Z; TCP‬ام ه‪ 98‬ا[داة ‪ K‬ن اﻝ‪ XB‬ﺝ @‬
‫ی; ﺡب ا[‪ً " %‬‬
‫ا[‪ %‬اﻝ; !; ي ( آ  ‪ TCP‬واﻝ; ه واﺡة " اﻝ!‪ H‬ل اﻝ ﺝ دة ‪ Trace File " L‬‬
‫ذﻝ‪ Q‬ی; ا;‪Z‬ام اﻝ‪;B‬ﺉ‪ L X‬ﺡب "* د اﻝ!م اﻝ; أر‪  " M‬ع ‪ TCP‬وه‪8K‬ا‪.‬‬
‫أیŠً " اﻝ‪%‬ق اﻝ; ی ‪ K‬ا;‪Z‬ا"
 ا;‪Z‬ام أداة اﻝ‪%;A‬ة ‪ Awk‬وه رة  ﻝ‪8 H;" e‬ا
 ﻝ
‬
‫ﺹ‪ L B " e‬آ;  اﻝ‪ K‬د اﻝ‪Z‬ص
 "
 "‪ G‬ﻝ‪ Perl e‬اﻝ; ی ‪ K‬ایŠً ا;‪Z‬ا"
 ‪  L‬‬
‫اﻝ;!‪.G‬‬
‫آ‪8‬ﻝ‪ " Q‬اﻝ‪%‬ق ا;‪Z‬ام ‪%‬ا"‪ H X‬م ;‪H‬ل " ‪ Trace File‬و‪ H‬م ;!‪ 2‬وا;‪%Z‬اج اﻝ‪;B‬ﺉ‪( X‬‬
‫'‪ GK‬ر م  ‪ ،‬و" أ'
‪ %‬ه‪ 98‬اﻝ‪%‬ا"‪ Tracegraph X‬اﻝ‪8‬ي ی‪ H‬م ;!‪ G‬اﻝ  وا;‪%Z‬اج د‬
‫آ‪ %‬ﺝًا " اﻝ;‪H‬ری‪ GK' ( %‬إﺡ‪-‬ﺉت ور م  ﺙ‪B‬ﺉ وﺙ*ﺙ ا[ د‪.‬‬
‫وا»ن ‪!;B‬ث ‪:‬‬
‫‪ -‬آ‪ A‬إ‪F‬ء " اﻝ;!‪.G‬‬
‫‪ " -‬اﻝ;!‪.G‬‬
‫‪ -‬ا;‪Z‬ام ا[داة ‪ L grep‬اﻝ;!‪.G‬‬
‫‪ -‬ا;‪Z‬ام ﻝ‪ L awk e‬اﻝ;!‪.G‬‬

‫‪29‬‬
‫اء ا‬ ______ NS2 ‫   آ ات‬

:+, >‫ إء ; ا‬,c,‫آ‬


:»‫ آ‬2 2 ;K‫;Ž " ﻝ‬A ‫ م‬H ‫? أن‬
ً ‫ ی‚ أو‬G!;‫ء " اﻝ‬F?
set tf [open out.tr]
c‫ی‬%S   "  ‫ أیŠً !ی را‬K ‫ وی‬KF‫ اﻝ‬G‫ آ‬L KF‫ ﺝ @ أﺡاث اﻝ‬G trace-all ‫ داﻝ‬c‫ی‬%S  K ‫ی‬
:[‫ ة آ‬Z‫ اﻝ‬98‫ و; ه‬KF‫ اﻝ‬L  "  ‫ واﻝ; !د را‬trace-queue ‫داﻝ‬
$ns trace-all $tf
Or
$ns trace-queue $n0 $n2 $tf
" L  ;K‫م ﻝ‬Z; K‫ ﻝ‬HL ‫ اﻝاﻝ‬A ‫ ?ﺡž ه‬namtrace-all ‫  اﻝاﻝ‬B‫ اﻝء ا[ول " اﻝ !ﺙ‬L
:‫ام اﻝاﻝ‬Z;‫ ایŠ ً ا‬K ‫ وی‬Nam X"% ‫ض‬%  ‫ي‬8‫ اﻝ‬nam file ‫ض‬% ‫اﻝ‬
$ns namtrace-queue $n2 $n4 $nf
.Nam X"% L  ‫ا‬%‫ اﻝ واﻝ‬H ‫ض ا[ﺡاث "  اﻝ‬% ‫ﻝ‬
:‫ ن آﻝ;ﻝ‬K‫ و‬finish ‫ داﻝ‬L Q‫
 وذﻝ‬X‫;ﺉ‬B‫ž اﻝ‬A!‫;!
 ﻝ‬A B T ;‫ت اﻝ‬A ‫ م –‰*ق اﻝ‬H ‫ أن‬H
proc finish {} {
global ns nf tf
$ns flush-trace
close $nf
close $tf
}

30
‫اء ا ‬ ‫______‬ ‫   آ ات ‪NS2‬‬

‫‪ ; -‬ا> ‪:Trace File +,‬‬


‫ی ;‪ " %‬اﻝ;!‪ G‬ه اﻝ  اﻝ‪8‬ي ی‪ H‬م ‪ X"%‬اﻝ !آ ‪Z; NS2‬ی ﺝ @ ا[ﺡاث اﻝ ; ‪! H‬آة‬
‫اﻝ‪ L 2 KF‬ﺹ‪ 2B " e‬رة  "  " ا[ ة‪.‬‬
‫ﺹ‪ " e‬اﻝ;!‪: G‬‬
‫ی ﺝ أآ‪ " %‬ﺹ‪ e‬ﻝ
‪8‬ا اﻝ  ‪B
L‬ك ﺹ‪ e‬أ‪%P‬ى ‪P‬ﺹ ﻝ‪KF‬ت اﻝ*‪ K‬و! ه‪!;B HL B‬ث‬
‫ اﻝ‪KF‬ت اﻝ‪ K‬وﺹ‪ 
;e‬آ»‪:‬‬
‫>‪<event> <time> <from> <to> <pkt> <size> -- <fid> <src.port> <dst.port> <seq> <pktID‬‬
‫‪+‬‬ ‫‪1.0‬‬ ‫‪1‬‬ ‫‪2‬‬ ‫‪cbr 210 ---- 0‬‬ ‫‪1.0‬‬ ‫‪3.1‬‬ ‫‪0‬‬ ‫‪0‬‬
‫‪-‬‬ ‫‪1.2‬‬ ‫‪1‬‬ ‫‪2‬‬ ‫‪cbr 210 ---- 0‬‬ ‫‪1.0‬‬ ‫‪3.1‬‬ ‫‪0‬‬ ‫‪0‬‬
‫‪r‬‬ ‫‪2.0234 1‬‬ ‫‪2‬‬ ‫‪cbr 210 ---- 0‬‬ ‫‪1.0‬‬ ‫‪3.1‬‬ ‫‪0‬‬ ‫‪0‬‬
‫‪d‬‬ ‫‪3.04‬‬ ‫‪2‬‬ ‫‪3‬‬ ‫‪cbr 210 ---- 0‬‬ ‫‪2.0‬‬ ‫‪3.1‬‬ ‫‪0‬‬ ‫‪1‬‬
‫!; ي اﻝ‪ e-‬آ  ه " „! ﻝ ل ( ‪:‬‬
‫>‪ : <event‬وه  ع اﻝ!ث وی‪ 8P‬أر  ‪ (B + T‬د‪ P‬ل اﻝ!" إﻝ( اﻝ‪ (enqueue) Queue -‬واﻝ‪8‬ي‬
‫? إﻝ( اﻝ‪ -‬ﺙ ی; ارﻝ
 ‪%P (B - ،‬وج اﻝ!" " اﻝ‪r ، (dequeue) -‬‬
‫!ﺙ‪ ًH  B‬ن اﻝ!" ‪ GP‬أو ً‬
‫ ‪ (B‬وﺹ ل اﻝ!" إﻝ( اﻝ ﺝ
 اﻝ; ‪-H‬ه أو اﻝ
ف )‪ (B d ، (receive‬ه‪ 98‬اﻝ!"  ﺡ‪ 
L8‬إ" ‚‬
‫اﻝﺡ  أو ا‪H‬ع را  " اﻝ‪ KF‬و‰‪.(drop) 9%‬‬
‫>‪ : <time‬ز" اﻝ !آة ‪ (B‬أن اﻝ!ث ﺡ‪ L G-‬ه‪8‬ا اﻝ"‪.‬‬
‫>‪ (B : <from‬أن ه‪8‬ا اﻝ!ث ﺹر  اﻝ!" اﻝ ‪ %‬ر‪ T‬آ‪8‬ا ی ‪ B‬اﻝ ‪H‬ة ا[وﻝ( ‪ L‬اﻝ ل‪.‬‬
‫>‪ (B : <to‬أن ه‪8‬ا اﻝ!" ";
‪ 2‬إﻝ( اﻝ ‪H‬ة ر‪ T‬آ‪8‬ا‪.‬‬
‫>‪  : <pkt‬ع اﻝ!" ‪ AL‬ه‪8‬ا اﻝ ل ‪ CBR‬واﻝ; ی; ا‪B‬ده "@ ‪%‬و آ ل ‪–L ،UDP‬ذا آ‪ M‬ﺡ" ‪P‬ﺹ‬
‫ ‪%‬و آ ل ‪ ‚;K TCP‬ﻝ
 ‪.tcp‬‬
‫>‪ : <size‬ﺡ اﻝ!"‪.‬‬
‫‪ (  : ----‬ه‪ 98‬اﻝ‪Z‬ت ‪ flags‬ی; ا;‪Z‬ا"
 "@ اﻝ‪KF‬ت اﻝ*‪.K‬‬
‫* اﻝ ‪H‬ة ر‪1 T‬‬
‫>‪ flow ID : <fid‬آ  ‪" B  flow‬ر ‪ cL‬اﻝت " "‪-‬ر "  إﻝ( هف "  ‪ ،‬ی ‪ً " B‬‬
‫‪%‬ی ا?رل إﻝ( اﻝ ‪H‬ة ر‪  L 5 T‬اﻝ  أن  ‪ %‬ه‪ 98‬اﻝ!" د " اﻝ ‪"  BL 2,3,4 G" H‬ر ه‪ 98‬اﻝ!"‬
‫" ﻝ! ‪%P‬وﺝ
 " اﻝ ‪H‬ة ر‪ 1 T‬إﻝ( اﻝ ‪H‬ة ر‪ 5 T‬ر ‪ cL‬اﻝت ‪ flow‬وی; ا;‪Z‬ام ه‪8‬ا اﻝ‪ T%‬أي ‪flowID‬‬
‫‪    L‬ی اﻝ!م اﻝ ;
 ‪ L‬ه‪8‬ا اﻝ ر  ن "  ی;  ‪%‬ی‪ L 2A‬اﻝ‪ X"%‬و
‪; %‬ﺉ‪، Nam X"% L 2‬‬
‫* واﻝ‪8‬ي ;‪Z‬م ‪   L‬اﻝ ‪%‬ا‪ T‬ﻝ @‬
‫أیŠً ی; ا;‪Z‬ا"‪"   L 2‬ر اﻝت ﻝ ‪" L%‬ر اﻝ!" آ" ً‬
‫"  "ت " اﻝ‪ L KF‬ﺡﻝ "‪%‬ا‪" T‬ر ت "  ‪ L‬اﻝ‪.KF‬‬

‫‪31‬‬
‫اء ا‬ ______ NS2 ‫   آ ات‬

‫ د‬-H ‫ و" اﻝ‬port  ‫( آ‬B " Ž„  ‫? أن‬
ً ‫ ی‚ أو‬H!‫ی اﻝ‬8‫( ه‬B " Ž„  K‫ ﻝ‬: <src.port><dst.port>
:G!;‫ " اﻝ‬L‫ اﻝ !آ و‬L
:ًP‫ة دا‬H ‫ اﻝ‬GK'  %  ;‫  ﺝا واﻝ‬%‫ اﻝ‬98‫ إﻝ( ه‬%‫أ‬

port 211 %11" addr_classifier 11‫ ی ﺝ‬11P‫ ا‬classifier 11‫ ی ﺝ‬9*11‫  ا‬1%‫ اﻝ‬11L 11 " ž11‫?ﺡ‬
agent 1" %1‫ وی ﺝ أآ‬port classifier L dmux_ ‫ ـ‬%" Agents ًŠ‫ و?ﺡž أی‬Classifier
.Unicast ‫ م رل‬H ‫ة‬H ‫ ﻝ‬GK
‫ ه اﻝ‬GKF‫ا اﻝ‬8‫ ه‬،
‫ ا[ ء؟؟؟‬98
‫ د‬-H ‫  و" اﻝ‬%‫ اﻝ‬98‫( ه‬B " " ‫‚؟؟‬S
B- ‫ اﻝ!" إﻝ( اﻝ‬2‫
 ی;  ﺝ‬B" ‫ة‬H ‫ ﻝ‬GP" %; ‫ و‬entry_ ( ‫ ی‬B‫ة وه‬H ‫ اﻝ‬GP" " ?‫أ أو‬B‫ﻝ‬
.‫وری‬%Š‫م  • اﻝ ت اﻝ‬H‫ واﻝ‬classifier
‫ ؟‬classifier B- ‫" ه اﻝ‬
:G" ‫ت‬AB- ‫ ه رة  آ*س ی!; ى ( ة أ اع " اﻝ‬B- ‫اﻝ‬
address classifier, multicast classifier, multipath classifier,…etc

32
‫اء ا‬ ______ NS2 ‫   آ ات‬

‫م‬Z;1 1HL ‫ و  ﺝ


زی‬K ‫ م رل‬H B[ B‫ "ﻝ‬L‫ و‬B " ‫ت‬H L 
B" G‫م آ‬Z;‫واﻝ; ی‬
.address classifier
‫؟‬dmux_ ‫" ه‬
‫ـ‬11‫ر ﻝ‬11-;P‫ ا‬11 K‫ اﻝ‬9811‫ ه‬dmux_ 11 ‫ آ‬11‫  ی ﺝ‬11%‫ اﻝ‬M11!‫( و‬11[‫ ا‬11L Port Classifier 11‫ی ﺝ‬
11" 11 ‫ آ‬GH;11‫ي ی‬811‫ت واﻝ‬11‫و‬%;K‫ ا?ﻝ‬11L ‫وف‬%11 " 11‫@ وه‬11  ‫( اﻝ‬11B 11‫ وه‬DeMultiplexer
‫ م‬1
A ‫ اﻝ‬1A ‫ام‬Z;1‫ ا‬1 B‫ ه‬،B " ‫ج ( ﺡ‚ ا'رة‬%Z‫ ﻝ‬HL ‫ف واﺡ‬%S FB; ‫ م‬H‫*ت وی‬P ‫اﻝ‬
1Š" 1" %‫ة أآ‬H ‫ اﻝ‬L ‫ر "  وی ﺝ‬-" " "‫د‬T‫ و‬HL ‫ ن ";
 ﻝ Š واﺡ‬K "!‫[ن اﻝ‬
1Š ‫ اﻝ‬1HL 1FB ;1‫!Ž ی‬1-‫ اﻝ‬1Š ‫( اﻝ‬1‫ اﻝ!" إﻝ‬2; KL ‫ "!د‬port L ‫ "Š " ﺝ د‬G‫آ‬
1FB‫ ی‬5 ‫ن‬1‫ وإذا آ‬port 1 1FB ;1‫ ی‬1 ‫ن‬1‫–ذا آ‬L "!‫ اﻝ‬L ‫ اﻝ ﺝ د‬port ‫ ان‬B ‚‫!Ž ( ﺡ‬-‫اﻝ‬
.‫ا‬8K‫ وه‬port 5
A L 
‫ﻝ‬H;‫ أو ا‬link  ‫ اﻝ!م وی; ارﻝ
 إﻝ( روا‬G- 
L% ‫ة‬H ‫ ه‬Q""‫ي أ‬8‫ اﻝ‬GKF‫ا اﻝ‬8‫ه‬
. ‫ ه اﻝ
ف‬M‫ة إذا آ‬H ‫اﻝ‬
:%‫  آ ل ی „Ž أآ‬%‫اﻝ‬%‫ً ا‬B‫* ﺡ‬
ً T •"‰ ‫*م‬K‫یو اﻝ‬

n0 n1

Port Port
Classifier dst_= 1.0 Classifier dst_= 0.0
Addr Agent/TCP Addr Agent/TCPSink
Classifier 0 agents_ Classifier 0
agents
0 dmux_ 1 dmux_
entry_ 1 Link n0-n1 entry_ 0
classifier_ classifier_

Link n1-n0

: ‫ری‬B‫ا اﻝ‬8‫ "  ه‬GZ


11;‫ واﻝ‬entry_ 11H (11‫ه‚ إﻝ‬811;L n0 (11‫ة ا[وﻝ‬11H ‫ اﻝ‬11L (Agent/TCP) 11Š ‫ اﻝ‬11" 11"!‫ اﻝ‬c11B
‫ص‬1Z‫ اﻝ‬1HL ‫ ان‬1B ‫ إﻝ( اﻝء اﻝ  ي " اﻝ‬%B‫ي ی‬8‫ واﻝ‬Classifier B- ‫ار اﻝ!" إﻝ( اﻝ‬%" ‫ م‬H
33
‫اء ا ‬ ‫______‬ ‫   آ ات ‪NS2‬‬

‫ ﻝ
ف ‪ 1 8PL dst=1.0‬وی‪ H‬م ‪%"1‬ار اﻝ!"‪ 1L 1‬اﻝ ‪1‬ر ر‪81;L 1 1T‬ه‚ ‪) downstream‬اﻝ ‪ 1-H‬د‬

‪ 11‬أن اﻝ!"‪ 11‬ﺹ‪11‬درة "‪ 11‬اﻝ ‪11H‬ة و";
‪ 11‬إﻝ‪11H (11‬ة ا‪%11P‬ى و‪ upstream 
11K‬وی ‪ 11B‬ان اﻝ!"‪11‬‬
‫";
‪ ! 11‬ه‪ 11  11
L acknowledge G11" 11‬د إﻝ‪ (11‬اﻝ ‪11-‬ر آ‪11‬ـ ‪ (upstream‬إﻝ‪ (11‬اﻝ ‪11H‬ة اﻝ;ﻝ‪%11 11‬‬
‫اﻝ‪%11‬ا  ‪ G11-;L‬إﻝ‪ 11L entry_ 11H (11‬اﻝ ‪11H‬ة اﻝ‪811;L 11‬ه‚ إﻝ‪ (11‬اﻝ ‪ %11BL B11-‬إﻝ‪ (11‬اﻝ‪11‬ء اﻝ ‪ 11‬ي‬
‫? إﻝ‪port (1‬‬
‫)‪ (highest bit‬وه ‪ HL 1‬م "‪%‬اره ‪ %‬اﻝ ر ‪ 1‬واﻝ‪8‬ي ی‪ GP‬إﻝ( اﻝ Š ‪8L‬ه‚ أو ً‬
‫‪ classifier‬اﻝ‪8‬ي ی‪ %B‬إﻝ( اﻝء ا»‪ 1" %1P‬اﻝ ‪ 1B‬ان وه‪ 1HL 0 1‬م ‪B1‬د‪ 9‬إﻝ‪ (1‬اﻝ Š‪ 1‬اﻝ ﺝ‪ 1‬د ‪1L‬‬
‫‪ port 0‬وی‪ 1H‬م اﻝ ‪ ‚1-‬ﻝ ‪ 1‬اﻝ ‪Z;1 1K‬ام ‪ dst_=0.0‬وی‪ 1H‬م ر‪1‬ل ‪ acknowledge‬ﻝ;آ‪11‬‬
‫وﺹ ل اﻝ!" ‪ L‬ﺡﻝ ا;‪Z‬ام ‪%‬و آ ل ‪.upstream 9 TCP‬‬
‫‪8
L‬ا ه " ‪ src.port and dst.port (B‬اﻝ ‪8‬آ رة ‪ " L‬اﻝ;!‪.G‬‬
‫"< ‪; T : 4‬ءل آ ی ‪%‬ف ه‪ 98‬ا[ر‪T‬م و( أي أس ی; و„
 ؟‬
‫ی‪ ;111‬و„‪ @1 1‬ه‪ 98111‬ا[ر‪111T‬م ‪ (111‬ﺡ‪ ‚111‬اﻝ‪%111‬ا  ﺡ‪ ¹111‬ی‪ ;111‬و„‪ @111‬ر‪ 111T‬اﻝ ‪111H‬ة ‪ 111L‬اﻝ‪111‬ء اﻝ ‪ 111‬ي "‪111‬‬
‫* اذا آ‪1‬ن ‪1‬‬
‫‪ addr_calssifier‬ور‪ T‬اﻝ ‪H‬ة اﻝ ‪ L‬اﻝ‪%‬ف ا»‪ " %P‬اﻝ‪%‬ا  ‪ L‬اﻝء اﻝ‪ً 1 L A‬‬
‫اﻝ ‪H‬ة ‪ n0,n1‬ی‪ K‬ن "‪ G‬اﻝ‪ GKF‬اﻝ ‪ c‬وإذا آن اﻝ‪%‬ا  "  اﻝ ‪ n2,n4 H‬ی‪ K‬ن اﻝء اﻝ ‪ 1‬ي "‪1‬‬
‫‪ 2 addr_classifier‬واﻝء اﻝ‪ 3 A‬و"‪ L 2‬اﻝ‪%‬ف ا»‪ K;L %P‬ن ‪ 3‬ﺙ ‪. 2‬‬
‫* إذا آن ﻝی‪H B‬ة ‪ K n1,n2 H S %" n1‬ن و„@ اﻝ ‪H‬ة ‪ n0‬ﻝ‪ GKF‬اﻝ;ﻝ‪:‬‬
‫‪ًL‬‬

‫‪0‬‬
‫‪0‬‬ ‫‪.‬‬
‫‪1‬‬ ‫‪.‬‬

‫_‪entry‬‬ ‫‪0‬‬
‫‪0‬‬
‫‪2‬‬
‫‪1‬‬
‫‪.‬‬ ‫‪.‬‬
‫‪.‬‬ ‫‪.‬‬

‫‪8L‬ﻝ‪ Q‬ی ‪ K‬أن ی‪ K‬ن ‪ L‬اﻝ ‪H‬ة اﻝ اﺡ‪1‬ة أآ‪ agent 1Š" 1" %1‬وآ‪ " 1Š" G1‬ﺝ‪ 1‬د ‪1 " port 1L‬‬
‫وه‪8K‬ا ‪ 98
L‬اﻝ‪%‬ی‪ H‬ی ‪ K‬ر  اﻝ ‪H‬ة اﻝ اﺡة آ‪H " %‬ة ﻝ‪B‬ء '‪ K‬وآ‪8‬ﻝ‪ Q‬ی ‪ K‬ارل ﺡ"‪ 1‬إﻝ‪(1‬‬
‫أآ‪ H L Š" " %‬أ‪%P‬ى ‪ A L‬اﻝ ‪ MT‬وه " ی ( ‪.broadcast‬‬

‫‪34‬‬
‫اء ا ‬ ‫______‬ ‫   آ ات ‪NS2‬‬

‫"<„„ أ‪)„„3‬ى ‪: „„4‬اذا آ‪11‬ن آ‪ 11" %11 G11‬أ‪ 11" %11‬اﻝ;!‪ G11‬ی ‪ 11 %11‬ﺡ‪11‬ث ‪%11  11KL‬ف أن ه‪9811‬‬
‫اﻝ!" ار‪ M‬ا اﻝ ‪H‬ة ر‪ 2 T‬و";
 إﻝ( اﻝ ‪H‬ة ر‪ ، 5 T‬آ ؟؟‬
‫‪+‬‬ ‫‪1.0‬‬ ‫‪1‬‬ ‫‪2‬‬ ‫‪cbr 210 ---- 0‬‬ ‫‪1.0‬‬ ‫‪3.1‬‬ ‫‪0‬‬ ‫‪0‬‬
‫?ﺡž ‪ src.port and dst.port‬وه اﻝ; ‚  اﻝ‪º‬ال وه  ‪1-" G‬ر اﻝ!"‪ 1‬و"‪ 1‬أي "‪1B‬ء‬
‫‪%P port‬ﺝ‪ M‬وإﻝ( "‪B‬ء ;‪8‬ه‚ ‪ L‬اﻝ
ف ‪.dst.port‬‬
‫>‪ : <seq><pktID‬ی; ا;‪Z‬ام ‪%  L sequence number and packet id‬ی اﻝ!" ﻝ; ه‬
‫ ‪ T‬اﻝ!م ‪ ;L ،‬ا;‪Z‬ام ‪ packet id‬ﻝ;  اﻝ!"  ‪ T‬اﻝ!م و‪ sequence number‬اﻝ‪8‬ي‬
‫ی; ا;‪Z‬ا"‪   L 2‬ا?رل ﻝ;آ " أ‪ 2‬ﻝ ی; ار‪1‬ل ‪ 1A‬اﻝ!"‪ 1‬أآ‪%1" 1" %1‬ة ی‪ ;1‬ایŠ‪ ً1‬ذآ‪%1‬‬
‫ه‪8‬ا اﻝ‪" L T%‬ل ‪%‬ی اﻝ  "ت واﻝ; ‪ K‬ن ‪ L‬إدة ا?رل ﻝ!"‪ 1" 1‬واﻝ;‪ %1;  1‬ه‪ 1‬م ‪(1‬‬
‫اﻝ‪ KF‬ی ( ‪81
L reply attack‬ا اﻝ !‪1‬آ ی‪ 1H‬م !آ‪1‬ة و? ی;‪ G1 1B " K1' GK1F 1H‬ی‪ 1H‬م „‪@1‬‬
‫"  "ت " ی ‪ K‬ا;‪Z‬ا"
 ‪ L‬أآ‪" " %‬ل‪.‬‬

‫‪35‬‬
‫اء ا ‬ ‫______‬ ‫   آ ات ‪NS2‬‬

‫ا>`‪/‬ام ا‪Y‬داة ‪ 5 grep‬ا> ‪:+,‬‬


‫ی ‪ %L‬م ‪ "  " linux‬ا[دوات وا[وا"‪ %‬اﻝ; ی ‪ K‬ا;‪Z‬ا"
 ‪?" L‬ت آ‪%‬ة و" ه‪ 98‬ا[وا"‪ %‬أ"‪grep %‬‬
‫اﻝ‪8‬ي و‪ 2;AÃ‬ا[ اﻝ!‪ L ¹‬اﻝ ‪A‬ت    "  ‪–L‬ذا وﺝ اﻝ‪ L  B‬آ  " آ ت اﻝ‪ %‬ی; ‪ S‬اﻝ‪%‬‬
‫ آ ‪ 2‬آ‪.8AB XB‬‬
‫ﺡ‪ ًB‬آ ;‪ 
"Z‬؟؟‬
‫  أن " اﻝ;!‪ G‬ی!; ي ( "  "ت آ‪%‬ة ‪  L‬اﻝ ‪ K‬أن أ‪ T‬م ;‪%Z‬اج أ‪ 2B " %‬ﺡ‚   "  آ‪XB‬‬
‫ی ‪ K‬آ; ;‪ 2‬آ;‪%H‬ی‪ %‬واﻝ‪8‬ي ی ‪ K‬ر ‪. " L ً 2‬‬
‫ﺹ‪ e‬ه‪8‬ا ا["‪:%‬‬
‫‪grep pattern file‬‬
‫ﻝ‪ 8PB‬أ" ;‪Z‬ام ه‪8‬ا ا["‪ %‬واﻝ‪8‬ي ‪ HB‬م ;‪%Z‬اج د " اﻝ;‪H‬ری‪ %‬ا;‪:2‬‬
‫‪ -‬ﺡب د اﻝ!م اﻝ ‪ L %‬اﻝ‪:KF‬‬
‫ﻝ!ب ذﻝ‪ ‚;K Q‬ا["‪ %‬اﻝ;ﻝ ‪:‬‬
‫‪grep + out.tr‬‬ ‫‪or grep ^+ out.tr‬‬
‫ﺡ‪ H ¹‬م  ﺝ @ ا[‪ %‬اﻝ;‪ 1;! 1‬ي ‪%1  1! ،+ 1"* (1‬ف أن ‪ +‬ه‪ 1‬اﻝ!‪1‬م اﻝ;‪ 1‬أر‪ 1" M1‬اﻝ ‪1H‬ة‬
‫ود‪ MP‬إﻝ( اﻝ‪.-‬‬
‫ی ‪ %L‬م اﻝ‪ KB‬أیŠً أ"‪ً%1‬ا أ‪ً%1P‬ا ی‪( 1‬‬ ‫ ا»ن ﻝ!ب د ه‪ 98‬ا[‪ %‬ه‪ HB G‬م !ب ده یویً ! آ*‬
‫)‪ wc(word count‬واﻝ‪8‬ي ی‪ H‬م !ب د ا[‪ %‬واﻝ‪ K‬ت وا[ﺡ‪%‬ف ‪." " L‬‬
‫آ‪8‬ﻝ‪ Q‬ی ﺝ "ة راﺉ  ﺝًا ‪ L‬أوا"‪ %‬اﻝ‪ KB‬وه "  ( ‪ pipe‬واﻝ; " ‪B‬ه أ‪ 21‬ی ‪ 1K‬ا‪Z;1‬ام أآ‪ 1" %1‬أ"‪1L %1‬‬
‫أ"‪ %‬واﺡ !‪ ¹‬ی‪ K‬ن ‪ X‬آ‪ G‬أ"‪ GP" %‬إﻝ( ا["‪ %‬اﻝ‪8‬ي ی‪ 2‬واﻝ *" " ﺝ دة ‪ L‬ﻝ ﺡ اﻝ ‪ ŽA‬ی  ﺡ‪%1‬ف اﻝ‪1‬ء أو‬
‫ی  *" یوي‪.‬‬
‫إذا ‪ K‬ن ا["‪ %‬ﻝ!ب د ا[‪ %‬و ;‪Z‬ام *" ‪ pipe‬آﻝ;ﻝ‪:‬‬
‫‪grep ^+ out.tr | wc -l‬‬
‫اﻝ‪Z‬ر ‪!L line 9B " –l‬ب د ا[‪ –l ‚;K %‬وﻝ!‪1‬ب ‪1‬د اﻝ‪1 K‬ت ‪ –w ‚1;K‬وﻝ!‪1‬ب ‪1‬د ا[ﺡ‪%1‬ف ‪‚1;K‬‬
‫اﻝ‪Z‬ر ‪ –c‬وﻝ!
ﺝ   ‪ HL wc HL ‚;K‬م ا["‪
; %‬ﺝ  ً‪.‬‬
‫‪ -‬ﺡب د اﻝ!م اﻝ ‪ L %‬اﻝ‪  " HL KF‬ع ‪: tcp‬‬
‫‪ L‬اﻝ ل اﻝ ‪! B T c‬ب د اﻝ!م اﻝ ‪ " K L %‬اﻝ;‪ B‬اﻝ ‪ H‬ﺡ‪1‬ب ‪ 1HL‬ا[‪ %1‬اﻝ;‪ tcp 1
  1‬وی‪ ;1‬‬
‫ذﻝ‪ Q‬آ»‪:‬‬
‫‪grep ^+ out.tr | grep tcp | wc –l‬‬
‫‪or grep ^+ out.tr | grep tcp | wc –l > output.tr‬‬

‫‪36‬‬
‫اء ا ‬ ‫______‬ ‫   آ ات ‪NS2‬‬
‫ه‪ " B‬ا["‪ %‬ا[ول ‪ X;B‬آ‪ G‬اﻝ!‪1‬م اﻝ ‪ 1%‬و‪ 1L‬ا["‪ %1‬اﻝ‪ X;B1 1‬اﻝ!‪1‬م اﻝ ‪ 1 1" 1HL 1%‬ع ‪ tcp‬و‪ 1L‬ا["‪%1‬‬
‫ا[‪ ; %P‬ﺡب د ا[‪ %‬اﻝ‪ B‬و‪ ( 
;S‬اﻝ‪ 'F‬أو ‪ S‬اﻝ ‪%Z‬ﺝت ‪%S 1 output.tr 1" 1L‬ی‪c1‬‬
‫*" اﻝ; ﺝ‪.redirect 2‬‬

‫?ﺡž "  أن ه‪ 98‬ا[داة ‪ H‬م ‪ HL‬ﻝ ‪ ;" ( G‬ى اﻝ‪ A-‬ف و? ‪ H‬م ﻝ ‪ ;" ( G‬ى ا[ ة أي اﻝ!‪¹‬‬
‫" دیً ‪ L‬اﻝ  ‪8L‬ﻝ‪ Q‬د اﻝ;‪H‬ری‪ %‬اﻝ; ی ‪ K‬اﻝ!‪ -‬ل 
 " ه‪ 98‬ا[داة "!‪ -‬رة ﺝًا ‪ G ( K L‬اﻝ ل‬
‫ﺡب ‪H‬ری‪ %‬أ‪%P‬ى "‪: G‬‬
‫‪ -‬د اﻝ!م اﻝ ‪ HA‬دة "  ع ‪! ) .cbr‬ب د ‪(grep ^d out.tr : d‬‬
‫‪ -‬د اﻝ!م اﻝ; ا;‪ L MH‬اﻝ‪! ) . KF‬ب د ‪(grep ^r out.tr : r‬‬
‫‪ -‬د اﻝ!م اﻝ ; ﺝ
 إﻝ( اﻝ ‪H‬ة ‪2‬‬
‫و‰‪%‬ه‪.‬‬

‫‪37‬‬
‫اء ا ‬ ‫______‬ ‫   آ ات ‪NS2‬‬

‫ا>`‪/‬ام ‪ 5 awk g‬ا> ‪:+,‬‬


‫*  ﻝ‪e‬ت اﻝ‪"%‬‬
‫ﻝ‪ awk e‬ه رة  ﻝ‪ script language 
  "% e‬و‪%S‬ی‪ً T ;Z 
  H‬‬
‫ا[‪%P‬ى اﻝ; ‪B‬رج !‪ M‬ه‪8‬ا اﻝ‪ B‬ع وی‪ ‚e‬ا;‪Z‬ام ه‪ 98‬اﻝ‪   L e‬اﻝ‪%;A‬ة ﻝ ‪A‬ت‪ ،‬و;  
 ی ‪ 
BK‬اﻝ ‪( G‬‬
‫"; ى اﻝ ‪A‬ت " دیً واﻝ; ‪ %H;A‬إﻝ
 ا[داة ‪. grep‬‬
‫‪ H L‬م ‪%F‬ح ه‪ 98‬ا[داة [
 آ  ذآ‪%‬ت ﻝ‪T "% e‬ﺉ  ‪8‬ا
‪.‬‬
‫ﺹ‪ e‬اﻝ‪ L X"%‬اﻝ‪: e‬‬
‫}… { ‪BEGIN‬‬
‫{‬
‫‪….‬‬
‫}‬
‫}… { ‪END‬‬

‫ﺡ‪ ¹‬أ‪  " 2‬أ‪ T‬اس ‪ BEGIN‬ی;  ‪%‬ی اﻝ ;‪%e‬ات واﻝ ادات واﺉ
 اﻝ‪ H‬ا? ;اﺉ ‪ ،‬و" ‬
‫أ‪ T‬اس ‪ END‬ی; آ;  '‪ GK‬اﻝ ‪%Z‬ﺝت " ‪  " GKF S‬و‰‪ ،9%‬أ" ا[‪ T‬اس اﻝ ﺝ د ‪L‬‬
‫اﻝ ‪8AB ;L -;B‬ه ‪/‬د أ<) ا‪.;4‬‬
‫* ‪ e‬اﻝ‪ L‬أو ﻝ‪e‬‬
‫‪ " L‬اﻝ;!‪ G‬ی!; ي ( ‪?4‬ف ا[‪–L %‬ذا ‪ X"%  ;K B T‬دي " ً‬
‫اﻝ و‪%H B T‬اءة اﻝ‪ %‬ﺙ ﺡ ‪ 2‬ﺡ‚ '‪%‬ط "  ‪–L‬ن اﻝ‪ X"%‬ﻝ ‪ K " % N‬ﻝ‪?» K‬ف ا[‪%‬‬
‫* ﺝاً‪ ،‬ﻝ‪ L K‬ه‪ 98‬اﻝ‪ e‬ه ﻝ‪% e‬ی  و; ‪@" G‬‬
‫‪ T‬ی‪ H‬اﻝ‪ " X"%‬اﻝ;‪ 8AB‬أو ‪ T‬ی‪ 8P‬و‪ S ً;T‬ی ً‬
‫‪?4‬ف ا[‪[ 
[ %‬س ﺹ ‪ M‬ﻝ‪8‬ﻝ‪ H 
L Q‬م ;‪ 8AB‬ا[وا"‪ %‬اﻝ ﺝ دة ‪ L‬ا[‪ T‬اس اﻝ ﺝ دة "‬
‫  ‪ BEGIN and END  T‬د أ‪ %‬اﻝ  "   ‪ %L‬اﻝ‪ " %K‬اﻝ ‪ MT‬وی  ;ﺉ‪.% X‬‬
‫‪ L‬اﻝ;!‪ G‬ی ﺝ ه‪B‬ك ‪H‬ری‪ ? %‬ی ‪ K‬ﺡ
 ;‪Z‬ام ا[داة ‪ @; ? 
? grep‬اﻝ ‪( G‬‬
‫* ا?;ﺝ واﻝ; !;ج ‪ 
L‬ﻝ ‪ L%‬اﻝ" "@ ﺡ اﻝ!م اﻝ; ا;‪MH‬‬
‫"; ى اﻝ  " دیً ‪ً  L‬‬
‫آ‪8‬ﻝ‪ propagation delay Q‬واﻝ‪8‬ي ی ‪ K‬ﺡ ‪%S  2‬ی‪ c‬ا[ﺡاث واﻝ" ‪.‬‬
‫ﻝ;‪ 8AB‬اﻝ‪Z; X"%‬ام ﻝ‪ H awk e‬م ‪  ;K‬اﻝ;ﻝ‪:‬‬
‫‪awk -f avgStat.awk out.tr‬‬
‫‪%" B T‬ار " اﻝ‪%S  e‬ی‪ c‬اﻝ‪Z‬ر ‪ –f‬ﻝ‪ awk %"É‬ﺙ اﻝ ‪*P‬ت ه " اﻝ;!‪.G‬‬

‫‪38‬‬
‫اء ا‬ ______ NS2 ‫   آ ات‬

%‫ری‬H ( ‫ و!; ي‬M%;?‫ة ( ا‬%L ;" 


L e‫ اﻝ‬98‫ام ه‬Z; %‫ری‬H;‫ اﻝ‬98‫ آ;  ه‬AK‫ق ﻝ‬%‫ﻝ أ‬
.‫ ﺙ "!وﻝ آ; ;
 " ﺝی‬e‫? "   اﻝ‬
ً  
‫ی‬B‫
 و‬B ¹!‫ اﻝ‬K L 
%‫ " اﻝ; ذآ‬%‫أآ‬
:%‫ری‬H;‫ اﻝ‬2 ‫ ﺝ‬L M%;?‫ ا‬L 2B ¹!‫ اﻝ‬K ‫ ی‬avgStat.rar ‫آ ر‬8 ‫اﻝ  اﻝ‬
- Avg Throughput.
- Avg Delay.
- Avg Jitter.
- Instant Throughput.
- Instant Delay.
."[‫ت "@ ا‬A ‫ اﻝ‬98‫ام ه‬Z;‫ ا‬A‫ ی!; ي ( أ" وآ‬readme.txt " ‫وی ﺝ‬

39
‫اء ا ‬ ‫______‬ ‫   آ ات ‪NS2‬‬

‫واﺝ ا) ^  ‪ T‬ا‪:)4‬‬


‫ی ;‪11!" %11‬آ اﻝ‪K11F‬ت ‪ 11" NS2‬اﻝ !آ‪11‬ت اﻝ;‪ 11‬ا;‪%11F‬ت ا;‪11F‬رًا وا‪ ً 11‬ﺡ‪ 11‬ل اﻝ ‪11‬ﻝ وآ‪M11‬‬
‫اﻝ ‪ KF‬ﻝ اﻝ‪8‬ی ی‪ ‰%‬ن ‪ 2   L‬ه ﺹ  ا?;‪Z‬ام ?„‪ L‬ﻝŠ  اﻝ اﺝ
 اﻝ‪ " %‬اﻝ;‪1‬‬
‫" ‪*P‬ﻝ
 ی ‪ K‬ا‪F‬ء اﻝ‪ L -Z' ¹! M HL KF‬ه‪8‬ا اﻝ „ ع و‪;  ;K M T‬ﺉ‪ X‬ه‪8‬ا اﻝ!‪1 ¹‬‬
‫أیی‪ K‬واﻝ; ‪%‬آ ( ا;‪Z‬ام اﻝ !آ ‪ L‬اﻝ;  ‪:‬‬
‫اﺝ‪%‬ی‪ M1‬اﻝ ی‪ 1" 1‬اﻝرا‪1‬ت ﺡ‪ 1‬ل ا‪Z;1‬ام اﻝ !‪1‬آ ‪ 1L‬اﻝ; ‪ 1‬وﻝ‪ 1K‬ه‪ G1‬ی ‪ 2K1F 1K‬ه‪81‬ا أن ی‪11‬‬
‫اﻝ ( ‪"
L‬دة اﻝ‪KF‬ت ;‪Z‬ام ‪ ، NS2‬ی ﺝ ‪1‬د "‪ 1‬اﻝ ‪1F‬ری@ اﻝ;‪ 1‬اه; ‪81
M1‬ا اﻝ ‪1‬ل ‪1 L‬‬
‫ه‪ 981‬اﻝ ‪1F‬ری@ )‪ NSBM(Network Simulation By Mouse‬اﻝ‪81‬ي ‪1‬أ ‪1 1L‬م ‪2004-2007‬‬
‫واﻝ
ف "‪ 2B‬اﻝ‪H‬رة ( ا;‪Z‬ام و ‪% G‬ا"‪Z; X‬ام اﻝ !آ ‪ NS2‬ون آ;  ‪ 1"% %1‬واﺡ‪1‬‬
‫وا?آ;‪11A‬ء ‪11 11HL‬ر اﻝ ‪11‬وس و ‪ M11‬درا‪ (11 11 " 11‬اﻝ‪*11‬ب وی ﺝ‪ 11‬ور‪%11F 11 11  11T‬ه ‪ 11‬‬
‫اﻝ ‪%F‬وع ‪%F‬ح اﻝ‪;B‬ﺉ‪ X‬اﻝ;  اﻝ ﺹ‪ G‬ﻝ
 ‪ ،‬وﻝ;‪;!; 2eF‬ج ‪ HL‬ﻝ;‪%‬آ‚ ‪ jdk1.6‬اﻝ‪Z‬ص ‪ 1e‬اﻝ‪1L‬‬
‫ﻝ;‪A" GeF‬ت ‪ jar‬اﻝ‪8‬ي ه ا";اد اﻝ‪.nsbm.jar X"%‬‬
‫'‪ GK‬اﻝ‪: X"%‬‬

‫‪1‬‬

‫‪2‬‬

‫‪3‬‬

‫‪40‬‬
‫اء ا ‬ ‫______‬ ‫   آ ات ‪NS2‬‬

‫ی ‪ K‬ه‪8‬ا اﻝ‪ 1" X"%‬ا‪1F‬ء '‪%S 1 K1‬ی‪ c1‬ا‪Z;1‬ام اﻝ ‪1‬وس ﻝŠ‪ 1L e1‬اﻝ ‪1‬ﺡ اﻝŠ‪1‬ء ور‪ 1‬‬
‫اﻝ‪ K11F‬وا‪11;P‬ر ‪ 11‬ع اﻝ ‪ 11 11" %11'º‬را ‪ 11‬و‪11H‬ة و"‪ %11'º‬ی ‪ G11 ! KB11K‬اﻝ‪ X"11%‬و‪11" 11
L 211; %‬‬
‫اﻝ‪%‬ا"‪ X‬اﻝ ة ( ا‪1F‬ء اﻝ‪1„Ë K1F‬ف ﻝ‪81‬ﻝ‪ Q‬واﻝ ‪1‬ة اﻝ
‪ 1‬ﺝ‪1‬اً ی‪ 1H‬م ; ﻝ‪ 1‬اﻝ‪ 1K‬د اﻝ ‪ G1 H‬ﻝ ‪1‬‬
‫‪ 2NFB‬وی ‪ QBK‬ﺡ‪ žA‬اﻝ  ‪
 GK‬ﻝ‪.‬‬
‫'‪%‬ح اﻝ‪:  %‬‬
‫‪ -1‬ی ‪ K‬ه‪8‬ا اﻝء " ا‪F‬ء ";‪%e‬ات ی ‪ K‬ا;‪Z‬ا"
 ‪   L‬اﻝ;
‪.N‬‬
‫‪ -2‬ه‪8‬ا اﻝء ی!;‪ 1‬ي ‪ (1‬ﺙ*ﺙ‪ 1‬أزرار ا[ول ی ‪
1 G1‬و ‪ + 1"* 2A1‬واﻝ‪%1e‬ض "‪%! 1
B‬ی‪Q1‬‬
‫اﻝ ‪ H‬ﻝ;‪ L 
B‬اﻝ ﺡ اﻝŠء‪ ،‬اﻝر اﻝ‪
1 1‬وا‪ 2A1‬ﺡ‪%1‬ف ‪ N‬وا‪1-;P‬ر ﻝ ‪1H‬ة ‪Node‬‬
‫وی ‪ " K‬ر اﻝ ‪1H‬ة ‪%S 1‬ی‪ c1‬اﻝŠ‪ 1L e1‬اﻝ ‪1‬ﺡ اﻝŠ‪1‬ء ‪! 1‬ی‪ ،91‬اﻝ‪1‬ر اﻝﻝ‪
1 ¹1‬‬
‫أ‪ 2A‬ﺡ‪%1‬ف ‪ L‬وه‪ 1‬ا‪1-;P‬ر ‪ Link‬وی ‪ 1" 1K‬إ‪1F‬ء را ‪%S 1 1H 1 1" 1‬ی‪! c1‬ی‪1‬‬
‫اﻝ ‪H‬ة ا[وﻝ( ﻝŠ‪ 
 e‬واﻝŠ‪ ( e‬اﻝ ‪H‬ة اﻝ ﻝŠ‪ 
 e‬أیŠً ‪ FBL‬اﻝ‪%‬ا  ‪.
B‬‬
‫‪ P HB" G  -3‬ز" اﻝ !آة واﻝ‪8‬ي  ‪%S‬ی‪ 2H‬ی‪ ;1‬ﺝوﻝ‪ 1‬ا[ﺡ‪1‬اث أي اﻝ;‪1H‬ت ‪ 1‬ا‪1F‬ءه‬
‫‪ L‬اﻝ‪ KF‬ﻝ!‚ ( ا";اد اﻝ‪ Z‬ﻝ;!ی ای ارل اﻝ;‪ c‬و"‪.2‬‬

‫‪41‬‬
‫اء ا ‬ ‫______‬ ‫   آ ات ‪NS2‬‬

‫اﻝ ‪%F‬وع اﻝ ه )‪ NSG(NS2 Scenario Generator‬وه "‪%F‬وع  ‪ 2008 B L‬واﻝ
ف‬
‫"‪ 2B‬أیŠ ً 
‪ G‬اﻝ; "‪ @" G‬اﻝ !آ ﻝ‪ K‬اﻝ‪A‬رق اﻝ‪8‬ي   ‪ 2‬أ‪ 2‬ی‪ 1H‬اﻝ ‪%1F‬وع ‪1HS (1‬ت ‪layers‬‬
‫‪ 11HS‬اﻝ ‪%11‬ض و‪ 11HS‬اﻝ ‪11H‬ة و‪ 11HS‬اﻝ‪%11‬ا  و‪ 11HS‬اﻝ Š‪ 11‬و‪ 11HS‬اﻝ;‪ c11‬و‪ 11B‬ا‪11;P‬ر أي "‪ 11‬ه‪9811‬‬
‫* إذا ‪;P B T‬ر ‪ HS‬اﻝ ‪H‬ة ‪%S 1 K L‬ی‪1
H‬‬
‫اﻝ‪H‬ت ‪–L‬ن اﻝ;!‪ K K‬ن ‪P‬ص
‪ 98‬اﻝ‪ H‬ی ‪ً " B‬‬
‫ا‪F‬ء ‪ H‬و? ی ‪ HS L K‬ا‪%P‬ى آ‪8‬ﻝ‪ " Q‬اﻝ ای اﻝ‪%‬اﺉ  أ‪ 21‬ی‪ 1H‬م ; ﻝ‪B1 1‬ری ‪ %L 1L‬إذا آ‪1L 1B‬‬
‫‪ 11HS‬اﻝ ‪11H‬ة ا‪11F‬ء ‪ GK11F 11H‬أ‪ 11HL‬أو رأ‪ 11‬أو ‪ grid K11' GK11' (11‬أو ‪ 11F‬اﺉ و!ی‪11 11‬د اﻝ ‪11H‬‬
‫واﻝ ‪. 
B L‬‬
‫'‪ GK‬اﻝ‪:X"%‬‬

‫ی; ‪ HB" H‬اﻝ ‪ G1‬إﻝ‪1HS (1‬ت ‪ 1HS‬اﻝ ‪%1‬ض و‪ 1HS‬اﻝ ‪1H‬ة و‪ 1HS‬اﻝ‪%1‬ا  و‪ 1HS‬اﻝ Š‪ 1‬و‪1HS‬‬
‫اﻝ;‪ c‬و‪ HS‬اﻝ ;‪%e‬ات و‪ HS‬اﻝ‪ K‬د واﻝ;‪ 1
B" 1‬ی‪ ;1‬ا‪1F‬ء اﻝ‪ 1K‬د ﺡ‪ ¹1‬ی‪ %1e ;1‬اﻝ;
‪ (1 1N‬ﺡ‪‚1‬‬
‫اﻝ‪ H‬وی; اﻝ‪%S  %‬ی‪ c‬اﻝŠ‪ e‬ر اﻝ وس ‪ L‬اﻝ ‪ HB‬اﻝŠء اﻝ وﻝ‪.‬‬

‫‪42‬‬
‫اء ا ‬ ‫______‬ ‫   آ ات ‪NS2‬‬

‫اﻝ ‪%F‬وع اﻝﻝ‪ ¹‬ه "‪%F‬وع ‪ GT‬اﻝ ‪F‬ری@ اﻝ ‪ H‬أ " ‪ 2004 B‬و !ی‪ 2‬و ی‪ 2‬و‪ 1 Z %P4‬‬
‫ 
 ه‪ M1  beta Z1 1‬ه‪ 981‬اﻝ‪ 2009 B1‬وا‪ 1‬اﻝ ‪%1F‬وع )‪NSBench(NS-2 Workbench‬‬
‫واﻝ‪%e‬ض "‪ 2B‬أیŠً 
‪ G‬آ;  ‪%‬ا"‪ NS2 X‬ﻝ‪ K‬اﻝ  ﺝًا ‪ @" 2L‬أ‪ ? 2‬ی‪ G-‬إﻝ( درﺝ اﻝ ‪%F‬و‬
‫اﻝ ‪ " H‬ﺡ اﻝ‪ GKF‬وا?;‪Z‬ام ﻝ‪ K‬ی;‪ A‬ق 
 ‪%K‬ة اﻝ ‪ K‬ت واﻝ‪1 B‬ذج اﻝ;‪ 1‬ی‪ 1
e‬وی‪
1‬‬
‫آ ‪ 11‬ی‪ 11‬اﻝ;‪%11'" 811AB‬ة ‪%S 11‬ی‪%11F" G11" 211" 211H‬وع ‪ NSBM‬آ ‪ 11‬ی‪11" %L 11‬ة ﺝی‪11‬ة وه‪ 11‬ا"‪11K‬‬
‫ @ اﻝ ‪ 
Š @" H‬اﻝ • واﻝ; "‪ 
" G‬آ   واﺡة‪.‬‬
‫و'‪ GK‬اﻝ‪:X"%‬‬

‫ی; اﻝ‪%S AB %‬ی‪ H‬اﻝ‪ "%‬اﻝ ‪   K L H‬ذﻝ‪


 Q‬ﻝ ‪ *L‬ی ﺝ ‪%L‬ق آ‪.
B %‬‬
‫ی ‪ G ! KBK‬ه‪ 98‬اﻝ‪%‬ا"‪ X‬واﻝ ‪  
 G‬اء ‪ N L‬م اﻝ;‪ GeF‬وی‪B‬وز أو ﻝ‪ HL KB‬ی‪B ‚1‬ی‪G1‬‬
‫اﻝ‪ L‬ا?ﺹارة اﻝد ‪. jdk1.6‬‬
‫ه‪ 98‬اﻝ ‪F‬ری@ ‪1‬ت آ‪ً%1‬ا ‪ G
1 1L‬آ; ‪ 1‬وا‪1F‬ء اﻝ‪%1‬ا"‪Z;1 X‬ام "!‪1‬آ اﻝ‪K1F‬ت ‪K 1L NS2‬‬
‫ﻝﻝ‪ ‚11‬اﻝ ‪ 11L G11‬اﻝای‪ 9811
11‬اﻝ‪%11‬ا"‪ X‬إﻝ‪ (11‬أن ی!;‪%11‬ف و ‪ 11‬ذﻝ‪ Q11‬ی;!‪ 11‬ل إﻝ‪ ;11" (11‬ى اﻝ‪ 11K‬د أي آ; ‪11‬‬
‫اﻝ‪%‬ا"‪Z; X‬ام اﻝ‪ K‬د ‪ ; % ،‬اﻝ‪ -ZF‬أت ;ری " ‪ G‬اﻝ‪KF‬ت ﻝ ة ‪ 1AL ;B1‬اﻝ‪ B1‬ا[وﻝ‪(1‬‬
‫‪; M T‬ری اﻝ  ‪%S‬ی‪ c‬اﻝ‪ K‬د "'‪%‬ة ﺡ‪ ¹‬آ‪ MB‬ا'‪%‬ح ﻝ
‪A‬ﺹ‪ G‬اﻝ‪ K‬د ‪ L‬ﺝت ﺹ‪  1‬ﻝ‪1e‬‬
‫‪43‬‬
‫اء ا ‬ ‫______‬ ‫   آ ات ‪NS2‬‬

‫‪  L‬ﺹ‪ G‬اﻝ‪
A‬اﻝ  ب ﻝ
وآن اﻝ‪%e‬ض ا[ " اﻝ ‪ G‬ه ری اﻝ ‪A‬ه اﻝ; ی; أ‪8P‬ه ‪L‬‬
‫اﻝء اﻝ‪%B‬ي ‪ L‬اﻝ ‪ G‬ﻝ‪ K‬آ‪ M‬اﻝ‪ K ;B‬ذﻝ‪ Q‬ﺡ‪ ¹‬آن ‪%‬آ اﻝ ( ‪ 1
L‬اﻝ‪ 1K‬د و‪%S‬ی‪1H‬‬
‫آ;  اﻝ‪ X"%‬وﻝ‪ L K‬اﻝ‪ B‬اﻝ ‪ M T‬ﻝ;‪1‬ری ‪Z;1‬ام ‪ L NSG X"1%‬ﺝ‪1‬ت ‪L‬ر‪ ً1T‬آ‪ً%1‬ا ﺝ‪ً1‬ا‬
‫ﺡ‪ ¹‬اﺹŽ ‪%‬آ اﻝ ( " یرس ﻝ
وﻝ‪%S (1 1‬ی‪ 1H‬ا‪Z;1‬ام اﻝ‪L X"1%‬ﻝ‪ G
1 X"1%‬ﺝ‪ً1‬ا‬
‫و? ی ﺝ ﺹ  ‪ ، 21   1L‬ﺡ;‪ (1‬ا‪ Ž!1-; M1 T 1B‬ا‪1;P‬ر اﻝ‪%1B‬ي ﻝ ‪1‬دة ‪ L‬ﺝ‪1‬ت اﺝ ‪1‬ت [‪N1‬‬
‫ی ;‪ %‬اﻝء اﻝ  ﺝء "‪ 1‬ا?ﺝ ‪ 1‬ﺡ‪ ¹1‬آ‪ M1‬ا?ﺝ ‪ 1‬اﻝ‪Z‬ﺹ‪1 1‬ﻝء اﻝ ‪ 1‬ﺹ‪ !!1‬آ
‪1 B 1‬‬
‫ا[‪P‬ء ‪ L‬اﻝ‚ اﻝ‪%B‬ي ﻝ دة ;ر أن اﻝﻝ‚ ی‪ H‬م ‪%H‬اءة اﻝء اﻝ‪%B‬ي "‪ G1T 1‬ا?";!‪1‬ن ‪ 1‬م‬
‫أو ی " ‪  % MKL،‬راﺉ  ‪  " Ž-L‬یر ن ‪ L‬اﻝ" ت أن ی;‪ "Z‬ا ه‪ 98‬اﻝ‪%1‬ا"‪1A" 1
L X‬ة‬
‫ﺝًا وﺝ  ﺝًا و اﻝ ( ا?; ب أآ‪ %‬و‪
L‬اﻝ دة اﻝ ‪%H‬رة ﻝ
‪ %‬و
ﻝ ‪.‬‬
‫‪ ! %P4‬آن ‪ OPNET X"% L‬اﻝ;ري اﻝ‪8‬ي ی ﺝ ‪ 21B" 1   Z‬ﻝ‪ 1‬وه‪ 1" 1‬وﻝ‪1K‬‬
‫‪ H;A‬ﻝ ی " اﻝ ات اﻝ ﺝ دة ‪ L‬اﻝ‪ ZB‬اﻝ‪ 1"K‬واﻝ;‪% 1 1‬ه "‪ @1A%‬ﺝ‪ً1‬ا ‪ ،‬اﻝ
‪ 1‬وﺝ‪1‬ت درا‪1‬‬
‫‪ OPNET‬ا‪1111‬‬ ‫‪IT‬‬ ‫ ‪ 2005 B1111 M1111‬آ‪ 1111B M1111‬ان اﻝ;‪1111‬ری ‪Z;1111‬ام ‪Guru X"1111%‬‬
‫‪ Dr. Vasil Y. Hnatyshin‬اﻝ‪F‬ه "‪ 1‬اﻝ „‪ 1‬ع أن ه‪81‬ا اﻝ‪1‬آ; ر و„‪1 " Ž1‬ات و‪ 1‬ب اﻝ‪X"1%‬‬
‫وأ‪ 2‬یی اﻝ ‪ ( Î‬اﻝ رس وﺹ ‚ اﻝ‪
A‬ﻝ‪ B‬ﻝ ‪8L‬ﻝ‪  Q‬اﻝ;! ل إﻝ( ‪ NS2‬و‪ 1‬ا‪Z;1‬ا"‪1L 2‬‬
‫اﻝ;  ووﺝ " ات آ‪%‬ة أه
 ا"‪ K‬اﻝ; ی‪ G‬ﺡ;( ﻝ آ‪ M‬اﻝ ‪%‬اﺝ@ ‰‪%L 1;" %1‬ة ‪ L‬ﺝ‪ 1‬اﻝ‪1" %1K‬‬
‫اﻝ; ‪11‬ری واﻝرا‪11‬ت اﻝ;‪ 11‬ا»ن " ﺝ‪ 11‬دة ‪ (11‬ا?;‪ K 11L M11%‬ا?‪ 211  ;11‬ﻝ‪ 11HL 11K‬ی‪ 11H;A‬إﻝ‪
11 (11‬ﻝ‬
‫  ‪ 2‬ﻝ ;ﺉ وآ  ا‪%‬دت ‪ L‬ﺝ أآ‪%F" " %‬وع ‪ 1" c1S‬ﺡ‪ 1‬اﻝ; ‪ ، 1‬آ‪81‬ﻝ‪ 1H Q‬أ‪%1P‬ة ی‪1AK‬‬
‫‪ 11HL‬أن ‪ 11K‬ن أ‰‪11F" ‚11‬ری@ "‪ c11 IEEE 11 B‬و‪Z;11 %11FB‬ام ‪11L NS2‬رﺝ أن ی‪ 11 B‬اﻝ; ‪11L 11‬‬
‫اﻝول اﻝ ‪  %‬و;‪Z‬م اﻝ ﺉ‪ G‬اﻝ!ی ‪ L‬اﻝ;  ﻝ‪ FB K‬اﻝ! ث واﻝرات ‪ L‬اﻝ ‪ S‬اﻝ ‪. %‬‬

‫‪44‬‬
‫اء ا ‬ ‫______‬ ‫   آ ات ‪NS2‬‬

‫Ž)ق ‪ Œ,d-‬ا‪ 4‬آ ‪ 5‬أ‹‪ 4‬ا>‪:+,g‬‬


‫ی ‪ K‬اﻝ ‪!" ( G‬آ اﻝ‪KF‬ت ( " اﻝ;‪ GeF‬ﻝ‪ KB‬ووی‪B‬وز ﻝ‪%‬ق اﻝ;ﻝ‪:‬‬
‫‪ -‬اﻝ ‪1 (1 G1‬م ﻝ‪ Centos, RedHat, Ubuntu, Fedora, …etc G1" K1B‬وذﻝ‪%S 1 Q1‬ی‪c1‬‬
‫و  ذﻝ‪ QL Q‬اﻝŠ‪ 1 e1‬اء‬ ‫‪http://www.isi.edu/nsnam/ns/,‬‬ ‫! ‪ G‬اﻝ‪ " X"%‬اﻝ ‪ @T‬اﻝ‪  %‬ﻝ‪X"%‬‬
‫? ﻝ ر اﻝ‪ X"%‬اﻝ‪81‬ي ﺡ ‪ 21L G1‬إذا آ‪1‬ن‬
‫( ‪%S‬ی‪ c‬اﻝ ﺡة اﻝ‪%S  Terminal L%‬ی‪ c‬اﻝ‪8‬هب أو ً‬
‫‪ 11L‬اﻝ‪811‬ر اﻝ‪%‬ﺉ‪ root 11‬أو إذا آ‪11‬ن ‪11" 11L‬ر ‪ Ž11 G11" %11P4‬اﻝ ‪ K11L ‚11;K‬اﻝ‪811‬هب إﻝ‪%S 11 211‬ی‪c11‬‬
‫ا["‪:%‬‬
‫‪cd /Desktop‬‬
‫و‪ QL‬اﻝŠ‪%S  e‬ی‪ c‬ا["‪%‬‬
‫‪tar -zxvf ns-allinone-2.31.gz.tar‬‬
‫‪or‬‬
‫‪tar -xvf ns-allinone-2.31.tar.tar‬‬
‫  ذﻝ‪ Q‬ا"‪ %‬اﻝ;‪‚-B‬‬
‫‪./install‬‬
‫* و ‪ 1‬ا?;
‪1‬ء ی‪ 1H‬م ‪%1‬ض ر‪1‬ﻝ  „‪ Ž1‬أ‪ 21‬ی‪ Q1 ‚1‬أن ‪ 1H‬م‬
‫  ذﻝ‪ Q‬ی; ‪ ‚-B‬اﻝ‪ X"1%‬آ‪ً "1‬‬
‫* ‪ L‬ﺝ
زك‪.‬‬
‫ ?"‪
" %‰
L ./validate %‬وإﻝ( ه‪ 98‬اﻝ‪ Z‬ة ی‪ K‬ن اﻝ !آ ‪ ً-B ‚- T‬آ" ً‬
‫اﻝ ‪F‬آ‪ G‬اﻝ; ‪! T‬ث ‪ L‬أ  اﻝ;‪ GeF‬ﻝ‪ 
 KB‬ه ‪ 1L µH‬اﻝ!‪1‬م اﻝ;‪ 1‬ی ; ‪ 1
 1‬اﻝ !‪1‬آ‬
‫‪   L‬اﻝ;‪ ‚-B‬وﻝ!
 ی‚ ‪ ‚-B‬أدوات اﻝ;‪ 1‬ی‪ Development Tools %‬اﻝ‪Z‬ﺹ‪ 1‬ﻝ‪1B‬م "‪@1‬‬
‫‪ G A‬آ‪ G‬اﻝ‪Z‬رات وآ‪8‬ﻝ‪ Q‬اﻝ!م اﻝ‪Z‬ﺹ ﻝ اﺝ
 ‪–L‬ذا آن اﻝ‪B‬م ی ‪ ‚1-B ;1L GNOME‬ﺡ‪1‬م‬
‫اﻝ اﺝ
 اﻝ‪Z‬ﺹ ‪ 2‬زاﺉ أدوات اﻝ; ی‪ %‬اﻝ‪Z‬ﺹ ‪ 2‬أیŠً ‪ G   ،‬ذﻝ‪ Q‬ﻝ ی‪ K‬ن ه‪B‬ك أي "‪F‬آ‪ G‬وإذا‬
‫آ‪ M‬ه‪B‬ك "‪F‬آ‪ G" G‬م ‪L‬ورا ‪L‬ﻝ ‪ KF‬م وﺝ د ﺡ" ‪ tk‬واﻝ;  اﻝ اﺝ
 اﻝ‪ 1„ " %‬‬
‫اﻝ!م اﻝ‪Z‬ﺹ ﻝ اﺝ
 اﻝ‪ " %‬ﻝ‪1B‬م ‪ G1 ! K 1L‬اﻝ!‪1‬م اﻝ;‪ tk 1 1‬ﻝ‪1B‬م ‪1L‬ورا و ‪1‬ه ﻝ‪1‬‬
‫ی‪ K‬ن ه‪B‬ك "‪F‬آ‪ G‬ذن ا‪.0‬‬

‫‪45‬‬
‫اء ا ‬ ‫______‬ ‫   آ ات ‪NS2‬‬

‫‪ -‬اﻝ‪%‬ی‪ 11H‬اﻝ‪ ‚11-B 11‬اﻝ !‪11‬آ ‪11 11L‬م وی‪11B‬وز واﻝ‪811‬ي ی ‪ Ge11F 11K‬اﻝ !‪11‬آ ‪11 211‬آ‪11" %‬‬
‫‪%S‬ی‪:H‬‬
‫‪ o‬ا‪Z;11‬ام ‪ CYGWIN X"11%‬اﻝ‪811‬ي ی ‪ emulator G11‬ﻝ‪ 11B‬ﻝ‪11B‬م ﻝ‪GK11' 11L K11B‬‬
‫ ‪ Dos X"%‬اﻝ‪Z‬ص ‪B‬م وی‪B‬وز ‪ ،‬وی ﺝ اﻝ ی " اﻝ ‪%‬اﺝ@ اﻝ; ‪%F‬ح آ‪2-B A‬‬
‫وه‪ " 11‬ﺝ‪ 11‬دة ‪ 11L‬اﻝ ‪ @11T‬اﻝ‪  1 %‬ﻝ !‪11‬آ زاﺉ‪ cygwin @11T " 11‬اﻝ‪811‬ي ی ‪G11 ! 11K‬‬
‫اﻝ‪.2B" X"%‬‬
‫‪ o‬ا;‪Z‬ام ‪%1‬ا"‪ 1H virtual machine X‬م ;‪ Ge1F‬ا‪ 1‬ات "‪ 1‬اﻝ‪ 1B‬ع ‪ iso‬وی ‪1 1K‬‬
‫‪%S‬ی‪ ‚-B 2H‬م اﻝ;‪ GeF‬ﻝ‪ L KB‬م وی‪B‬وز و‪%S 1 2e1F‬ی‪ c1‬اﻝ‪1 L X"1%‬‬
‫أ'
‪ %‬ه‪ 98‬اﻝ‪%‬ا"‪ Vmware and VirtualBox X‬واﻝ‪8‬ان ی ‪%L‬ان اﻝ ی " اﻝ ‪1‬ات ‪،‬‬
‫"‪ 11 Q11 11‬ى ! ‪ G11‬اﺹ‪11‬ارة ﻝ‪11;" K11B‬اد ‪ iso‬و"‪ 11‬ﺙ‪%S 11 
e11F 11‬ی‪ c11‬ه‪9811‬‬
‫اﻝ‪%‬ا"‪.X‬‬
‫‪ o‬ا;‪Z‬ام ‪ Live CD‬وه ‪% " BH‬و‪ L‬و  ‪%S  G‬ی‪ c‬ا?‪ 1‬ا ‪ CD‬و ‪ 1‬ا‪%1P‬اج‬
‫ا? ا آن '‪ ًN‬ﻝ ی‪ K‬وی; ا?;  ﻝ
ردی‪ Q‬ﻝ;‪Z‬ی " ی‪B;1" 1" 21  ;1‬ات‬
‫وأآ‪ 1‬اد و‰‪ ،9%1‬ی ﺝ‪ 1T NS2 Live CD 1‬ﻝ!‪81
¹1‬ا ا?‪ 1‬و‪ ;1‬اﺹ‪1‬ارة ﻝ‪K1B‬‬
‫رة  ‪.NS2 X"% 
Live CD‬‬
‫و‪%
Ã‬ت أیŠً ‪ L‬ا»و ا[‪%P‬ة ‪ Live USB BH‬وه رة  أ  ‪G1  Ge1F‬‬
‫" ‪*P‬ل ‪*L‬ش ‪ USB‬و? أ‪ T‬ل أن ه‪ 98‬اﻝ;‪ " BH‬ﺝ دة ‪ @" HL‬م اﻝ;‪ Ge1F‬ﻝ‪G1 K1B‬‬
‫ه " ﺝ دة أیŠً ‪ L‬م اﻝ;‪ GeF‬وی‪1B‬وز ‪ L‬ﺝ‪ windows live cd 1‬ﻝ‪81 1
BK‬آ‪@1" %‬‬
‫اﻝ‪  %L  ? 
[ KB‬ى أ'ء  ﺝا ? ‪1H‬رن "‪ @1‬اﻝ;‪%L  1‬ه‪ 1‬أ ‪ 1‬اﻝ‪K1B‬‬
‫* ی ﺝ‪ 1‬أﺹ‪1‬ارة ا‪ puppy linux 
1‬وه‪1 1‬رة ‪ Live USB 1‬و'‪1A 
K1‬‬
‫‪ًL‬‬
‫'‪ GK‬م ‪ 1" Vista‬ﺡ‪ Graphics 1‬و? ی ﺝ‪1 1L 1‬م وی‪1B‬وز ‪ Live USB‬ﺡ;‪(1‬‬
‫ا»ن‪.‬‬

‫‪46‬‬
‫اء ا‬ ______ NS2 ‫   آ ات‬

:‫ت اﻝ;ﻝ‬A ‫ اﻝ‬G ! ;‫ي ی‬8AB  ‫ اﻝ !آ آ‬GeF c‫ی‬%S  ‫ة وه‬%P[‫ ا‬H‫ی‬%‫ اﻝ‬o
ns.exe 
nam.exe 
tcl830.exe 
tfd170a.zip 
tcl83.zip 
1L 
1„ 1T‫
 و‬e1„ QA T A" ( tfd170a.zip " ‫ ی!; ي‬¹‫ ﺡ‬
‫ـ‬1 T‫ و‬C:\Program Files\Tcl\bin 211-B 11 TCL ‫ر‬11" 11L bin 11L
Ž1-L ns.exe and nam.exe A" ‫ا اﻝ  زاﺉ‬8‫ ه‬GP‫ دا‬A ‫ی اﻝ‬8‫ ه‬c-
ns.exe, nam.exe, todos.exe and ‫ت‬1111A ‫( اﻝ‬1111 ‫ ي‬1111;!‫ ی‬bin
(11111111111‫ إﻝ‬tcl83.dll 11111111111;K ‫ اﻝ‬11111111111" Ò11111111111B 11111111111T 11111111111‫ ﺙ‬fromdos.exe
c111‫ی‬%S 111 ‫ل‬111" ‫ أي‬Ge111F; 111T Q111‫ ذﻝ‬111 ‫ و‬C:\WINDOWS\system32
.example.tcl  ‫;Ž ا ﻝ‬L c‫ی‬%S  ns.exe
:‫ت‬A ‫ اﻝ‬Ò   ‫ اﻝ‬GK' ‫ا ه‬8‫ه‬

47
‫اء ا ‬ ‫______‬ ‫   آ ات ‪NS2‬‬

‫وه‪8‬ا ه '‪ GK‬اﻝ‪. 98AB  X"%‬‬


‫وه‪ 11HL 11B‬ی ‪ 811AB Q11BK‬أ"‪ 11‬ﻝ‪ 11K‬اذا آ‪% M11B‬ی‪ 11‬اﻝ; ‪11‬ی‪ (11 G‬اﻝ‪ *11L X"11%‬ی ‪ G11  Q11BK‬ذﻝ‪ @11" Q11‬ه‪9811‬‬
‫اﻝ‪%‬ی‪.H‬‬

‫‪48‬‬
‫اء ا ‬ ‫______‬ ‫   آ ات ‪NS2‬‬

‫أ‪ً),3‬ا ‪:‬‬
‫‪
 L‬ی ه‪8‬ا اﻝء ‪ 1BT%‬ﻝ ی‪ 1" 1‬اﻝ ا„‪ @1‬واﻝ‪ 1‬آ‪1‬ن أ‰
‪%1 1‬ي وه‪ 1
" %1;  1‬ﺝ‪ً1‬ا ‪1
L‬‬
‫ ( ‪
L‬اﻝ !آ أآ‪ %1‬وأآ‪ %1‬وآ‪1‬ن اﻝ
‪1‬ف "‪ 1‬ه‪81‬ا اﻝ‪1‬ء ا?ﺝ ‪ 1 " (1 1‬ا[‪ N1‬اﻝ;‪1T 1‬‬
‫ور ‪ L‬ذه أي ";ئ ‪   L‬ه‪8‬ا اﻝ !آ‪.‬‬

‫أری أن أﻝ‪ % MA‬اﻝ


;  "‪ %‬ه‪8‬ا اﻝ !آ أن ی‪%KA‬وا أآ‪ " %‬ﺡ اﻝ;  وأن ی; اﻝ; ﺝ‪ 2‬إﻝ( آ; ‪1‬‬
‫ ‪ •11‬اﻝ;‪11‬رب اﻝ;‪11
 11‬ف إﻝ‪ 11  (11‬اﻝ !‪11‬آ و" ر‪ 2;11‬و‪ 11K‬ن  ‪ X
B11" 11‬ی;‪ 11L @11‬اﻝ" ‪11‬ت ‪11L‬‬
‫اﻝ;ری ﻝ‪ K‬ی; اﻝ; ﺹ‪ G1‬إﻝ‪ X
B1" (1‬ی ‪ 1" 1 " G1‬اﻝ;‪1‬رب اﻝ ‪ 1‬اﻝ;‪ G1  1‬آ‪ 1‬رس اﻝ‪K1F‬ت‬
‫و‪%F‬ح "دئ و"‪A‬ه اﻝ‪KF‬ت ‪%‬ی‪ 
 H‬و   ( ‪
L‬أ‪ GŠL‬ﻝ‪.‬‬

‫‪......ً .)m‬‬
‫ا„„ء ا„„[ إن '‪11‬ء ا‪ K11 0‬ن ﺡ‪ 11‬ل اﻝ ‪11A‬ه اﻝ;‪ extending of ns 11  (11 11 11‬واﻝ‪811‬ي‬
‫!; ي ( اﻝ ی " ا[" واﻝ ‪F‬ری@ اﻝ ! ﻝ واﻝ;‪%‬ق [‰‚ اﻝ ‪F‬آ‪ G‬اﻝ‪ 1  " B‬اﻝ; ‪1‬ی‪G‬‬
‫واﻝ‪8‬ي ‪ G F‬ا„‪ K" L‬ن ﺝی ﻝ‪ B‬ﻝ ?ت اﻝ;ﻝ‪:‬‬
‫‪Wireless, routing, mobile, agents, application, Queue Management Algorithms‬‬
‫‪and protocols.‬‬
‫آ  ی; ‪%‬ض "  " اﻝرات ‪ L case studies‬أآ‪1" " %‬ل "‪ @1‬آ‪ 1A‬اﻝ;‪ c1‬وا‪%Z;1‬اج‬
‫اﻝ‪ %‬م اﻝ ‪ graphs‬وآ‪ A‬اﻝ!‪ -‬ل ( اﻝ  "ت اﻝ*ز" ﻝ ‪ G‬اﻝ‪ %‬اﻝ‪.‬‬
‫واﻝ‪8‬ي ی ;‪ %‬أه ﺝء ﻝ‪[ B‬آ‪ %‬اﻝ
;  ‪ L‬ه‪8‬ا اﻝ ل واﻝ‪8‬ي ی ‪ " %95 G‬ا[‪1‬ب اﻝ;‪ 1‬د‪M1‬‬
‫اﻝ ﻝ; ‪%‬ف ( اﻝ !آ اﻝ‪8‬ي ه   "‪ 8AB‬ﻝرا  اء آ‪ M1‬درا‪1K 1‬ﻝ‪%‬ی س أو "ﺝ‪ %;1‬أو‬
‫دآ; را‪ ،9‬ا‪F‬ء ا‪ K 0‬ن اﻝء   دﻝ‪   G‬ﻝ  ا?„‪ L‬واﻝ; @‪.‬‬
‫وه„„ „„‪,‬ن أﺹ„„Œ ﺝ„„ء و‪„„> .‬ج „„‪ „„5 )„„ >„„. „„ 9/‬دور ا‪ )„„-‬وŽ‪ „„g &„„>9‬ا)‪ „„,‬‬
‫وا‪ .,W‬و‪ ,4 >,‬د‪ +./ 5 $,‬وإ’‪ 5‬و‪ \,‬آ ات ‪ NS2‬و„‪,‬ن ﺝ„ء „=‬
‫ا و‪ =4‬اراد ا‪ 9/‬ا‪)4‬ا ‪ )9‬ا‪amjedns2@gmail.com +,4.W‬‬

‫‪49‬‬
‫اء ا‬ ______ NS2 ‫   آ ات‬

:\‫)اﺝ‬4‫ا‬
Slides:
- Teaching with OPNET Software :Dr. Vasil Y. Hnatyshin ,Department of Computer
Science ,Rowan University,2005.
- Networks and Communication Course - NS-2 Network Simulator: University of
Alexandria ,Faculty of Engineering-Computer and Systems Engineering
Department .
- Network Simulator "ns" by Chadi Barakat , INRIA Sophia Antipolis ,France,
PLANETE research group
- Ns Tutorial , 2006
- NS Simulator for beginners, Jeonghoon Park, Chapter 2. ns Simulator Preliminaries,
2007-04-14
- A introduction to Ns2: Luo Tao 27. Mrz 2009
- ns-2 Introduction : mort (Richard Mortier) , Microsoft Research Cambridge.

Books:
- An Introduction to NS-2: Giovanni Perbellini, Verona, 12/09/2005
- NS Simulator for beginners.
- Introduction to Network Simulator NS2 , Teerawat Issariyakul • Ekram
Hossain,2009
- The ns Manual, January 6,2009
- Ns by example, WPI.
- Tutorial for the Network Simulator "ns".

0‫ ا‬%Ae;‫ا‬
0‫ ا‬%Ae;‫ا‬
0‫ ا‬%Ae;‫ا‬
0‫اﻝ
ﺹ و ( ر ل ا‬
‫ و‬2 0‫ﺹ( ا‬
50

You might also like