1.35k likes | 1.77k Views
NCTUNS 網路模擬器操作 與 模擬 程式開發. 柯志亨 國立金門大學資訊工程學系 副教授 smallko@gmail.com http://csie.nqu.edu.tw/smallko. 大綱. 1. NCTUNS 簡介與 GUI 操作 2. LAN & W L AN 3 . Emulation 4 . How to insert a new module into NCTUNS? http :// csie.nqu.edu.tw/smallko/nctuns/sfifo.htm
E N D
NCTUNS網路模擬器操作與模擬程式開發 柯志亨 國立金門大學資訊工程學系 副教授 smallko@gmail.com http://csie.nqu.edu.tw/smallko
大綱 • 1. NCTUNS簡介與GUI操作 • 2. LAN & WLAN • 3.Emulation • 4. How to insert a new module into NCTUNS? http://csie.nqu.edu.tw/smallko/nctuns/sfifo.htm • 5. How to Get/Set a variable at the run-time? http://csie.nqu.edu.tw/smallko/nctuns/run_time.htm • 6. How to write a simple MAC for wireless network? http://csie.nqu.edu.tw/smallko/nctuns/simple-mac.htm • 7. How to write a flooding module for wireless simulations? http://csie.nqu.edu.tw/smallko/nctuns/flooding.htm
1. NCTUNS簡介與GUI操作 • Simulates and emulates network protocols • Open source • Modified Linux kernel • GUI and shell commands • Client-server model to allow communication between simulation/emulation engine and interface • Uses native Linux TCP/IP stack • Interacts with real devices in virtual networks • Allows experiments with real applications • There is no need to change the real applications • Allows remote simulations and concurrent simulations • Easy to create simulation servers • Can take advantage of multiple cores/processors
Features (1) • Support to several protocols is already included: • IEEE 802.3, IEEE 802.11, IEEE 802.16, Learning bridge protocol, Spanning tree protocol, ... • IP, Mobile IP, RIP, OSPF, OBS, GPRS, ... • TCP, UDP, SDP, ... • HTTP, FTP, telnet, ... (+ any real application) • Some specific applications included: • stcp/rtcp - Greedy TCP traffic • ttcp - Greedy TCP/UDP trafic • stg/rtg - Greedy TCP/UDP traffic, trace driven, self-similar traffic, on-off, constant-bit-rate, and various packet streams.
Features (2) • Support to several links and devices is already included • PPP link, ethernet link, ... • Host, hub, switch, router, ... • QoS Diffserv boundary/interior routers • Optical burst/circuit switch • External host, external router (emulation)
Features (3) • Creates virtual interfaces to simulate the devices of the scenario • Inspiration from loopback interface • Utilizes IP address 1.0.0.0 • During the simulation it is possible to “see” the interfaces with the commands /sbin/ifconfig or /sbin/route • Interfaces named tun0, tun1, tun2, ...
Features (4) • Kernel re-entering methodology
Utilization (1) • Basic components (binaries) • nctunsclient – GUI interface between user and system • nctuns – shell interface between user and system • nctunsse – NCTUns core • dispatcher – Manage the simulation requests. Can control multiple coordinators running in different machines • coordinator – Receives the simulation from the dispatcher and forward it to the nctunsse
Utilization (2) • Each simulation server = kernel modifications + nctunsse + protocol modules + coordinator
Utilization (3) • Folders organization • tools = executable programs of various applications and tools pre-installed (/usr/local/nctuns/tools) • bin = executable programs of the GUI program, dispatcher, coordinator, and the simulation engine (/usr/local/nctuns/bin) • etc = configuration files needed by the dispatcher and coordinator programs (/usr/local/nctuns/etc) • BMP = icon bmp files uses by the GUI program (/usr/local/nctuns/BMP) • lib = libraries used by the simulation engine
Utilization (4) • Execution order • dispatcher • Waits client connection via TCP port 9800 • Waits coordinator connection via TCP port 9810 • coordinator • Connects to dispatcher • nctunsclient or nctuns • Connects to dispatcher to send the scenario and waits the end of the simulation. The nctunsse is started by the coordinator
Utilization (5) • How to use the GUI?
Utilization (6) • Draw topology NCTUns - Professor Nelson Fonseca
Utilization (8) • Edit property
Utilization (10) • Run simulation
Utilization (13) • Playback
Utilization (17) • Main simulation files • .emu: external routing table (needed to emulation) • .ndt: nodes identification • .tfc: list of commands to be executed • .srt-l: internal routing table (tun[0-9]* devices) • .tcl: scenario details • One example of each file is available athttp://www.lrc.ic.unicamp.br/~daniel/trento/nctuns/ See p54~p70 in DeveloperManual.pdf NCTUns - Professor Nelson Fonseca
Utilization (18) • To run without the GUI • Create the basic scenario from the GUI (It is easier) • Make the necessary changes in the files • Run nctuns <file.tcl> • <file.tcl> is generated by the GUI • Wait for the results
Examples (1) • Scenario 1 • Network topology: 2 hosts connected by an ethernet link • Protocols: TCP and UDP • Applications: rtcp/stcp • Devices:
Examples (2) • Scenario 1 – Applications configuration • To simulate data transfer between host 1 (1.0.1.1) and hosts 2 (1.0.1.2) via TCP using stcp and rtcp • Host 1: stcp -p 8000 1.0.1.2 • Sending TCP segments to 1.0.1.2 at port 8000 • Host 2: rtcp -p 8000 • Receiving TCP segments from port 8000
Examples (4) • Scenario 2 • To simulate data transfer between host 1 (1.0.1.1) and host 2 (1.0.1.2) via UDP using stg and rtg • Host 1: stg -u 1000 50 -m 50 50 -p 8000 1.0.1.2 • Sending UDP datagrams to 1.0.1.2 at port 8000. Transmission rate limited to 50Mbps and packet size equal to 1000 bytes. • Host 2: rtg -u -p 8000 • Receiving UDP datagrams from port 8000
2. LAN & WLAN • Basic performance evaluation • Routing (Static routing vs. Dynamic routing) • Performance Anomaly Problem • Performance evaluation of ad hoc routing protocols • Performance evaluation of IEEE 802.11b wireless networks
Basic performance evaluation • Tools • Wireshark (封包觀測) • yum install wireshark* • Gnuplot (繪圖) • yum install gnuplot • Throughput Measurement (Application and MAC Level)
封包觀測 hub udp_c 1.0.1.3 udp_s Example: hub tcpdump –i eth1 –U –w mylog wiresharkmylog
Example: switch Application level switch 0~30s: ttcp –r –s – p 1234 –w thr_n2n5 3~30s: ttcp –t –s –p 1234 1.0.1.4 5~30s: ttcp –t –s –p 4321 1.0.1.3 0~30s: ttcp –r –s –p 4321 –w thr_n3n4 MAC level
Dynamic routing vs. Static Routing Bandwidth=10Mbps Link down = 5 ~ 25 sec (from R3 to R4) Run time:1~100 seconds stcp 1.0.2.1 rtcp Example: routing_wired
How to manually set the routing tables in wired simulation ? 1.0.3.2 1.0.4.1 1.0.4.2 1.0.5.1 1.0.3.1 1.0.2.1 1.0.5.2 1.0.2.2 1.0.6.1 1.0.1.1 rtcp 1.0.1.2 Example: routing_wired_static stcp 1.0.6.2 1.0.6.2
*.srt-l 1.0.3.2 1.0.4.1 1.0.4.2 1.0.5.1 1.0.3.1 1.0.2.1 1.0.5.2 1.0.2.2 1.0.6.1 1.0.1.1 rtcp 1.0.1.2 stcp 1.0.6.2 1.0.6.2
1.0.4.1 1.0.3.2 1.0.4.2 1.0.3.1 1.0.5.1 1.0.2.1 1.0.5.2 1.0.2.1 1.0.2.2 1.0.6.1 1.0.1.2 1.0.6.2
How to manually set the routes in the wireless simulations? $node_(NID) + entry-changing time + "set-next-hop" + SrcNode + DstNode + NextHop + "chan" + channel
無線網路異常問題 (Performance Anomaly Problem) 1 • 在IEEE的標準裡802.11a/b/g分別利用不同的編碼方式可支援多種不同的傳輸速度,802.11b提供了四種傳輸速度,(1M/2M/5.5M/11M),802.11a則提供多達八種傳輸速度。 • 較低的傳輸速度對於訊號的抗干擾性較強,反之較高的傳輸速度則較弱。當訊號不良的時候選擇低速的傳輸速度,當訊號收訊良好時則選擇高速的傳輸。所以在一個無線區域網路中,可能同時存在具有不同傳輸速率的行動節點,我們通常稱這樣這網路為多速率網路環境(multi-rate wireless network)。
無線網路異常問題 (Performance Anomaly Problem) 2 • 假設所有無線網路所有傳輸的封包大小都是相同的,在此假設下,當低速節點得到通道存取機會時,需要較久的時間才能把封包傳送完畢;另外,若是高速節點和低速節點發生傳輸碰撞,則高速節點還是需要等待低速節點把整個封包傳送過程完成後,才能重新競爭通到存取機會。以上兩個情況是主要造成整個無線網路效能變差的原因。