<?xml version="1.0" encoding="Big5"?>
<?xml-stylesheet type="text/css" href="document.css"?>
<document xmlns:HTML="http://www.w3.org/1999/xhtml">
	<title>
	前言
	</title>
	<content>
	<subject>→ 為什麼要用 Simulator 做模擬?</subject>
	就如同我們撰寫一套軟體一樣, 需要花人力下去測試, 也可能用其它的數學正規式的方法下去做驗證...等, 
	來測試看看寫出來的軟體是不是正確的.
	<HTML:BR/>
	在網路上, 許許多多的演算法不斷地被發展、被演進, 一樣是要做測試, 來驗證是那個演算法好. 舉個例子來說：
	網路上 search 資料的演算法很多, 假設你今天想出了一個新的演算法, 那你該如何知道你這個演算法比較好？
	<HTML:BR/>
	傳統做模擬的方法, 通常要寫程式碼來實做一個演算法, 可能要很多的機器, 有的負責做 router, 有的負責當 server, 
	有的則當 client 來做測試. 甚至需要有比較多設備的實驗室、開發測試平台...等等. 光想到這就聯想到要花一筆不小
	的經費, 即使將來程式碼寫出來了, 測試完都還不一定對, 也許 bug 一堆. 接下來的問題也很頭大了：假設在實驗室中
	的測試都 ok, 可是既然是網路上的演算法, 當然就要用在網路上. 在實驗室中的電腦較少, 測試的環境也比較單純, 或
	許在實驗室中慢慢測試、慢慢修改、調整, 最後達到原本預期的結果. 但一旦開始在現在架構這麼大的網路世界中開始
	使用、測試, 是不是效率依舊良好、是不是真的能發揮原本的演算法想做的事, 都還是個未知數。
	<HTML:BR/>
	很幸運地, 今天我們要介紹的是由 
	<HTML:A href="http://www.isi.edu/nsnam/vint/index.html">VINT project</HTML:A> 
	開發出來的一套網路模擬軟體：NS2 (Network Simulator - version 
	2). 利用這套軟體, 我們可以比以前更容易去模擬一個演算法. 簡單的先建立起自己的情境模擬、需要的可能網路狀況, 
	然後設定好相關的參數、通訊協定...組態後, 交給 NS2 去執行, 得出一個輸出檔, 再透過一些軟體如 Nam、Xgraph 的
	輔助, 做進一步的分析. 比起傳統的做法容易得多, 也省了不少經費和時間. 這就是為什麼我們要用 Simulator 來做模
	擬.
	<HTML:BR/>
	<HTML:IMG src="graph/ns_intro_1.PNG" border="1"/>
	<HTML:BR/>
	<HTML:IMG src="graph/ns_intro_2.PNG" border="1"/>
	</content>
	<content>
	<subject>→ 為什麼要用 NS2?</subject>
	除了免費這個好處之外, 主要是因為 Open Source 帶來的可擴充性. 
	<HTML:BR/>
	NS2 雖然內建了不少的 protocols (TCP、UDP...) 可以提供我們使用, 但網路上的 protocols 並不止於那些而已. 而
	正因為 NS2 是 Open Source, 而且網路上現在也提供了不少的範例及文件教學, 可以讓我們學習怎麼去替 NS2 新增自
	己所需要的 protocols. 這算是一個滿大的便利性, 從事網路研究的人不必被設限在只能用某一套網路模擬軟體來做研
	究, 當該軟體不提供所需要的功能時, 研究將無法再進行下去. 
	<HTML:BR/>
	也許有人會想問, 要新增一個新的 protocol 會不會很難呢? 基本上您只要會 C++、OTcl 及 Object-Oriented 的概念, 
	應該不難學習怎麼新增一個 protocol. NS2 本身架構在 Object-Oriented 之上, 配合一些 OTcl 的設定, 讓 OTcl / 
	C++ 之間搭配之後, 就是現在看到的 NS2.
	<HTML:BR/>
	相關文件可參考：
		<item>
		1. NS Manual : 
		<HTML:A href="http://www.isi.edu/nsnam/ns/doc/index.html">
	    http://www.isi.edu/nsnam/ns/doc/index.html
		</HTML:A>	
		</item>
		<item>
		2. NS by Example : 
		<HTML:A href="http://nile.wpi.edu/NS/">
		http://nile.wpi.edu/NS/
		</HTML:A>
		(Extending NS 一節)
		</item>	
	<HTML:BR/>
	此外, NS2 在目前的網路研究上, 可以說已經成為一套標準了. 許許多多的人幫忙做測試、幫忙新增許多的範例以及一些 
	protocols, 使得這些東西愈來愈穩定, 愈有它的公信力在. 讓大家能夠比較相信這個模擬軟體所模擬出來的結果. 
	除了用在網路研究的社群之外, 在教育上其實也用得蠻廣泛的.	
	</content>
	<content>
	<subject>→ NS2 和另一套模擬軟體 OPNET 的比較</subject>
	OPNET 的使用畫面
	<HTML:BR/>
	<HTML:IMG src="graph/ns_intro_3.PNG" border="1"/>
	<HTML:BR/>
	NS2 和 OPNET 的比較
	<HTML:BR/>
	<HTML:IMG src="graph/ns_intro_4.PNG" border="1"/>
	</content>
	<content>
	<subject>→ NS2 和 TCP/IP、OSI 7-Layer 的大致對應關係</subject>
	<HTML:IMG src="graph/ns_intro_5.PNG" border="0"/>
	</content>
</document>

