NS3 Tutorial 中文版:第二章 资源
【聲明】允許轉(zhuǎn)載,轉(zhuǎn)載時(shí)請(qǐng)務(wù)必以超鏈接形式標(biāo)明文章 原始出處 、作者信息和本聲明。否則將追究法律責(zé)任。
http://yangfei1.blog.51cto.com/1471532/368585
轉(zhuǎn)載的文章中給的原文地址已經(jīng)失效,我這里重新整理了原文地址,方便大家查看對(duì)照,如果也失效了,可以直接去官網(wǎng)找Tutorial
官網(wǎng)的英文原文地址:
ns-3 Tutorial https://www.nsnam.org/docs/tutorial/html/
原文目錄如下:
2 資源
翻譯: 伍迪 劉小洋 545139109@qq.com
校稿: Xiaochuan Shen xcs105@zepler.net
編輯: ProbibidoAmor banana.0420@yahoo.com.cn
2.1 網(wǎng)絡(luò)資源
NS-3用戶有必要知道幾個(gè)重要的網(wǎng)站:
主站點(diǎn)位于http://www.nsnam.org, 提供NS-3系統(tǒng)的基本信息。
詳細(xì)文檔位于主站點(diǎn)的http://www.nsnam.org/documents.html. 您也可以從這個(gè)網(wǎng)頁(yè)上得到系統(tǒng)架構(gòu)的相關(guān)信息。
維基百科網(wǎng)頁(yè)http://www.nsnam.org/wiki可以作為NS-3主站點(diǎn)的補(bǔ)充。您可以在那里找到用戶和開發(fā)者的FAQs,以及相關(guān)問題的解決途徑,第三方的共享代碼、論文等等。
NS-3的源碼可以在http://code.nsnam.org 找到。讀者也可以在名為ns3-dev的源碼倉(cāng)庫(kù)找到當(dāng)前的NS-3開發(fā)樹。還有NS-3的之前發(fā)行版本和最新測(cè)試版本的代碼。
2.2 源碼管理系統(tǒng)Mercurial
復(fù)雜的軟件系統(tǒng)需要一種途徑,用于管理和組織對(duì)現(xiàn)有代碼和文檔的修改。有很多種方法可以實(shí)現(xiàn)這種管理,讀者可能已聽說過某些版本控制軟件,CVS(Concurrent Version System)或許是其中最常見的一個(gè)。
NS-3項(xiàng)目采用Mercurial系統(tǒng)作為它的源碼管理系統(tǒng)。盡管讀者在閱讀本教程時(shí)不需要知道太多的Mercurial相關(guān)知識(shí),但我們建議讀者能夠熟悉Mercurial,并用于查看 NS-3源碼。
Mercurial的網(wǎng)址為http://www.selenic.com/mercurial/,
讀者可以從上面獲取到這個(gè)軟件配置管理系統(tǒng)(Software Configuration management, SCM)的二進(jìn)制程序和源碼。
Mercurial的開發(fā)者Selenic提供了一個(gè)Mercurial教程,網(wǎng)址為http://www.selenic.com/mercurial/wiki/index.cgi/Tutorial/,以及快速入門指南:http://www.selenic.com/mercurial/wiki/index.cgi/QuickStart/ .
在NS-3的主頁(yè)上,讀者也可以獲取到有關(guān)Mercurial和NS-3配合使用的最常用信息。
2.3 編譯系統(tǒng)Waf
讀者下載NS-3的源碼到本地系統(tǒng)之后,需要對(duì)源碼進(jìn)行編譯來生成可執(zhí)行程序。正如源碼管理方式多種多樣,編譯源碼也有多種工具。最常用的工具是make. Make最出名的一點(diǎn):它可能是編譯大型和高可配置型系統(tǒng)最難的一種方法。因此,有很多替代工具被開發(fā)出來。最近,大型高可配置系統(tǒng)的編譯工具大多選擇用Python語(yǔ)言來開發(fā)。
NS-3的編譯系統(tǒng)采用了Waf。它是用Python開發(fā)的新一代編譯管理系統(tǒng)。讀者不必掌握python,即可編譯現(xiàn)有的NS-3項(xiàng)目。如果讀者想要擴(kuò)展現(xiàn)有的NS-3系統(tǒng),大多數(shù)情況只需了解Python知識(shí)的很少且非常直觀的一個(gè)子集。
對(duì)于想了解Waf細(xì)節(jié)的讀者,可以訪問http://code.google.com/p/waf/ .
2.4 開發(fā)環(huán)境
正如以上所述,NS-3的腳本由C++或者Python編寫。從NS-3.2開始,NS3的API提供了python語(yǔ)言接口,但是所有的模塊都是由C++編寫的。這里,我們假定讀者掌握C++知識(shí)和了解面向?qū)ο蟮南嚓P(guān)概念。我們將在用到一些高級(jí)的概念或者讀者可能不熟悉的語(yǔ)言特性、習(xí)慣用語(yǔ)或設(shè)計(jì)模式時(shí)適當(dāng)?shù)鼗ㄐr(shí)間復(fù)習(xí)它們。但是我們也不希望本教程變成C++教程,所以我們希望讀者能夠掌握基本的C++命令。在網(wǎng)站上和書籍中,你可以找到無數(shù)的關(guān)于C++知識(shí)的信息。
如果讀者是個(gè)C++新手,那么您在繼續(xù)閱讀本指南之前可能需要找一些C++教程或者網(wǎng)站,至少必須熟悉一下C++的基本語(yǔ)言特征。例如,Cplusplus教程。
NS-3系統(tǒng)開發(fā)過程中使用了許多的GNU 工具鏈(toolchain)組件。所謂軟件的工具鏈?zhǔn)侵冈诮o定環(huán)境中可用編程工具的集合。如果讀者想要快速地了解一下GNU 工具鏈所包含的內(nèi)容,請(qǐng)瀏覽http://en.wikipedia.org/wiki/GNU_toolchain . NS-3使用gcc,GNU binutils,以及gdb. 但是,我們并不使用GNU編譯系統(tǒng)工具(build system tools),既不用make,也不用autotools,而是使用Waf來作為編譯管理工具。
通常,NS-3使用者的工作環(huán)境為L(zhǎng)inux或者類Linux系統(tǒng)。對(duì)于Windows環(huán)境,有幾種可以不同程度模擬Linux環(huán)境的軟件,比如Cygwin。NS-3支持在Cygwin環(huán)境下的開發(fā)。Windows用戶可以瀏覽http://www.cygwin.com/ 獲取該軟件(雖然有許多工程維護(hù)者使用MinGW,但是MinGW現(xiàn)在還沒有得到官方支持)。Cygwin可以提供許多流行的Linux系統(tǒng)命令。但是,某些情況下它也會(huì)出現(xiàn)問題,因?yàn)樗吘怪皇荓inux系統(tǒng)的模擬。Cygwin和Windows中其他程序的交互也有可能會(huì)導(dǎo)致程序出現(xiàn)問題。
如果讀者正在使用Cygwin或者M(jìn)inGW;并使用著Logitech的某些軟件產(chǎn)品,我們或許可以讓您少點(diǎn)麻煩:建議您去看一看MinGW FAQ。
搜索Logitech并閱讀FAQ條目:“為什么當(dāng)我編譯源碼時(shí),make經(jīng)常崩潰,留下一個(gè)sh.exe.stackdump文件”。無論您相信與否,當(dāng)運(yùn)行Logitech時(shí),Logitech 進(jìn)程監(jiān)視器潛入了每個(gè)正在系統(tǒng)中運(yùn)行的動(dòng)態(tài)連接庫(kù)(DLL)當(dāng)中。它可能導(dǎo)致您的Cygwin或者M(jìn)inGw的動(dòng)態(tài)連接庫(kù)奇怪地中止,常常也會(huì)阻止調(diào)試器的運(yùn)行。所以當(dāng)運(yùn)行Cygwin的時(shí)候,一定要小心您的Logitech軟件。
替代Cygwin的一種選擇是安裝虛擬機(jī),比如在VMware上安裝Linux虛擬機(jī)。
2.5 套接字編程
我們假定讀者對(duì)本教程所舉例子中的Berkeley套接字API基本熟悉。如果您不了解套接字,我們建議您學(xué)習(xí)一下這些API和一些常見的使用例程。TCP/IP Sockets in C這本書可以幫助您很好地理解TCP/IP套接字。
網(wǎng)站http://cs.baylor.edu/~donahoo/practical/CSockets/ 包含了Socket in C書中所舉例子的源碼。
如果讀者理解了該書中的前四章(如果讀者沒有這本書的話,可以看上面網(wǎng)站中的源代碼),您會(huì)更好的理解本教程的內(nèi)容。這里還有一本關(guān)于多播套接字(Multicast Sockets)的書籍(Multicast Sockets, Makofske and Almeroth)。如果您想學(xué)習(xí)本書中有關(guān)多播的例子,該書里面有些資料您可能需要了解。
總結(jié)
以上是生活随笔為你收集整理的NS3 Tutorial 中文版:第二章 资源的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【嵌入式】上学期末整理的一些知识点
- 下一篇: AUTOSAR架构中的配置文件