1 / 135

NCTUNS 網路模擬器操作 與 模擬 程式開發

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

zanta
Download Presentation

NCTUNS 網路模擬器操作 與 模擬 程式開發

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. NCTUNS網路模擬器操作與模擬程式開發 柯志亨 國立金門大學資訊工程學系 副教授 smallko@gmail.com http://csie.nqu.edu.tw/smallko

  2. 大綱 • 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

  3. 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

  4. 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.

  5. 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)‏

  6. 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, ...

  7. Features (4)‏ • Kernel re-entering methodology

  8. 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

  9. Utilization (2)‏ • Each simulation server = kernel modifications + nctunsse + protocol modules + coordinator

  10. 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

  11. 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

  12. Utilization (5)‏ • How to use the GUI?

  13. Utilization (6)‏ • Draw topology NCTUns - Professor Nelson Fonseca

  14. Utilization (7)‏

  15. Utilization (8)‏ • Edit property

  16. Utilization (9)‏

  17. Utilization (10)‏ • Run simulation

  18. Utilization (11)‏

  19. Utilization (12)‏

  20. Utilization (13)‏ • Playback

  21. Utilization (14)‏

  22. Utilization (15)‏

  23. Utilization (16)‏

  24. 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

  25. 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

  26. Examples (1)‏ • Scenario 1 • Network topology: 2 hosts connected by an ethernet link • Protocols: TCP and UDP • Applications: rtcp/stcp • Devices:

  27. 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

  28. Examples (3)‏

  29. 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

  30. 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

  31. Basic performance evaluation • Tools • Wireshark (封包觀測) • yum install wireshark* • Gnuplot (繪圖) • yum install gnuplot • Throughput Measurement (Application and MAC Level)

  32. 封包觀測 hub udp_c 1.0.1.3 udp_s Example: hub tcpdump –i eth1 –U –w mylog wiresharkmylog

  33. client  server

  34. server->client

  35. 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

  36. At Node 4 Throughput: Application level vs. MAC level

  37. 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

  38. 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

  39. *.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

  40. 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

  41. How to manually set the routes in the wireless simulations? $node_(NID) + entry-changing time + "set-next-hop" + SrcNode + DstNode + NextHop + "chan" + channel

  42. 無線網路異常問題 (Performance Anomaly Problem) 1 • 在IEEE的標準裡802.11a/b/g分別利用不同的編碼方式可支援多種不同的傳輸速度,802.11b提供了四種傳輸速度,(1M/2M/5.5M/11M),802.11a則提供多達八種傳輸速度。 • 較低的傳輸速度對於訊號的抗干擾性較強,反之較高的傳輸速度則較弱。當訊號不良的時候選擇低速的傳輸速度,當訊號收訊良好時則選擇高速的傳輸。所以在一個無線區域網路中,可能同時存在具有不同傳輸速率的行動節點,我們通常稱這樣這網路為多速率網路環境(multi-rate wireless network)。

  43. 無線網路異常問題 (Performance Anomaly Problem) 2 • 假設所有無線網路所有傳輸的封包大小都是相同的,在此假設下,當低速節點得到通道存取機會時,需要較久的時間才能把封包傳送完畢;另外,若是高速節點和低速節點發生傳輸碰撞,則高速節點還是需要等待低速節點把整個封包傳送過程完成後,才能重新競爭通到存取機會。以上兩個情況是主要造成整個無線網路效能變差的原因。

More Related