Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 16 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
16
Dung lượng
574,41 KB
Nội dung
ĐẠI HỌC QUỐC GIA TP HCM TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN - Báo Cáo NETWORK SIMULATION NS-3 TOOL Môn: Đánh giá hiệu hệ thống mạng máy tính Lớp: NT531.K21 Giảng viên: Nguyễn Khánh Thuật Thực hiện: 17521276 – Hoàng Gia Vương 17521271 – Mai Hoàng Vũ 17521184 – Nguyễn Đang Trường 3/2020 Mục lục I TỔNG QUAN Network Simulation gì? 2 Network Simulator gì? .2 NS – Tool II ĐẶT VẤN ĐỀ .5 III Cài đặt ns-3 mô OLSR – AODV Cài đặt ns3 .5 Xây dựng mơ hình mơ OLSR AODV .6 IV KẾT LUẬN 15 PHÂN CÔNG CÔNG VIỆC 16 I TỔNG QUAN Network Simulation gì? Để nghiên cứu mạng máy tính, Network Simulation (hay cịn gọi mơ mạng) kỹ thuật mà chương trình phần mềm mơ hình hóa hoạt động mơ hình mạng cách tính tốn thực thể khác (routers, switches, nodes, access points, links,…) Hầu hết trình giả lập sử dụng mô kiện rời rạc - mơ hình hóa hệ thống biến trạng thái thay đổi điểm riêng biệt theo thời gian Hành vi mạng ứng dụng dịch vụ khác mà hỗ trợ quan sát phịng thí nghiệm thử nghiệm; thuộc tính khác mơi trường sửa đổi theo cách kiểm sốt để đánh giá cách thức hoạt động mạng / giao thức điều kiện khác Network Simulator gì? Network Simulator (hay cịn gọi trình mô mạng) phần mềm mô hoạt động mạng máy tính Vì mạng truyền thơng nên phức tạp phương pháp phân tích truyền thống để cung cấp thơng tin xác hoạt động hệ thống mạng Đây lí mà Network Simulator đưa vào sử dụng Trong trình mơ phỏng, mạng máy tính mơ hình hóa với thiết bị, ứng dụng, liên kết, v.v hiệu suất mạng ghi lại Bộ mô mạng hỗ trợ công nghệ mạng phổ biến như: 3G, 4G, IoT, WLAN, MANET, Wireless Sensor Network,… Các trình mô mạng thương mại thường điều khiển dạng GUI( Graphic User Interface) Ví dụ như: Cisco Packer Tracer Một số điều khiển dạng CLI(command-line Interface) Mơ hình hay cấu hình mạng mơ tả mạng(Nodes, Routers, Switches, Link,…) kiện (truyền liệu, gói lỗi,…) Kết đầu bao gồm Level Metric, Link Metric, Device Metric,… Hơn nữa, Network Simulator ghi lại file log packet, kiện để người dùng phân tích mơ hình mạng Có số Network Simulator mã nguồn mở miễn phí như: OPNET, Tetcos Netsim, NS2/NS3 NS – Tool a Khái niệm trình phát triển Ns-3 simulator chương trình mơ mã nguồn mở, hỗ trợ mô kiện truyền thông rời rạc ( discrete event simulation ) nhiều giao thức mạng khác WLAN, AODV, OSLR, … Ns-3 viết ngôn ngữ C++ , nhiên người sử dụng cần nắm ngôn ngữ C++ mức để hiểu xây dựng kịch mơ mong muốn Năm 2006, nhóm Tom Henderson, George Riley, Sally Floyd Sumit Roy dẫn đầu nộp đơn xin nhận tài trợ từ Quỹ khoa học quốc gia Hoa Kỳ (NSF) để xây dựng thay cho ns-2, gọi ns-3 Nhóm hợp tác với dự án Planete INRIA Sophia Antipolis, với Mathieu Lacage người lãnh đạo phần mềm tạo thành dự án nguồn mở Trong trình phát triển ns-3, người ta định từ bỏ hồn tồn khả tương thích ngược với ns-2 Trình giả lập viết từ đầu, sử dụng ngơn ngữ lập trình C ++ Sự phát triển ns-3 bắt đầu vào tháng năm 2006 b Một số khái niệm: Node Trong ns-3, sử dụng khái niệm chung thường sử dụng trình mơ mạng khác node để biểu diễn cho thiết bị tính tốn Khái niệm biểu diễn lớp Node ngơn ngữ C++ ns-3 Có thể xem mơt Node máy tính mà thêm chức cho việc cài thêm ứng dụng dụng mạng, thêm tầng giao thức, gắn thêm card wifi, Bluetooth với driver tương thích Application Trong ns-3, khơng cần quan tâm đến node sử dụng hệ điều hành cấu trúc lệnh hệ thống để lập trình mơ giao thức mạng mà mong muốn Tuy nhiên, ns-3, tồn khái niệm Application biểu diễn với lớp tên C++ Lớp cung cấp phương thức để hỗ trợ xây dựng tính mơ tầng ứng dụng mong muốn (Vd: FTP, HTTP,…) Các nhà phát triển mở rộng lớp Application để tạo ứng dụng cụ thể phục vụ cho việc giả lập Channel Trong thực tế, để kết nối máy tính vào mạng, thông thường liệu truyền dẫn qua mạng thơng qua kênh truyền – Channel Ví dụ kết nối cáp Ethernet vào ổ cắm tường, kết nối vào kênh giao tiếp Ethernet Trong trình mơ ns-3, kết nối Node tới đối tượng biểu diễn cho kênh truyền – Channel Lớp Channel cung cấp phương thức để quản lý, lập trình cách thức truyền thông thông Nodes Những lớp Channel cụ thể đặc tả mơ hình phức tạp Ethernet Switch, môi trường truyền dẫn mạng không dây thực (không gian chiều) Một số lớp thông dụng mô tả kênh truyền thông thực tế CsmaChannel, PointToPointChannel WifiChannel Ví dụ CsmaChannel, mơ hình phiên mơi trường mạng khơng dây mà can thiệp vào điều chỉnh thơng số liên quan đến tính Carrier Sense Multiple Access /Collision Avoidance phục vụ cho mô Net Device Trong ns-3, net device mô hình dùng mơ cho card mạng (NIC) mơ thông số card software drivver Một net device cài đặt lên Node để truyền thông với node khác khác môi trường mô thông qua kênh (Channel) Ns-3 cung cấp lớp NetDevice với phương thức để quản lý kết nối đến đối tượng Node Channel; thể đặc tả củ thể nhà phát triển lập trình Trong nội dung thực hành, sử dụng nhiều phiên khác NetDevice CsmaNetDevice, PointToPointNetDevice WifiNetDevice Lưu ý: NetDevice sử dụng Channel tương thích, Ethernet NIC thiết kế để sử dụng với Ethernet Network, CsmaNetDevice làm việc với CsmaChannel, PointToPointNetDevice làm việc với PointToPointChannel WifiNetDevice tương thích với WifiChannel Topology Helpers Trong ns-3, thấy Nodes gắn liền với NetDevices Trong mô mạng lớn, cần đặt nhiều connections Nodes, NetDevices Channels Khi kết nối NetDevice với Nodes, NetDevices với Channels, gán địa IP, v.v , tác vụ phổ biến ns-3, topology helpers cung câp1 để đơn giản hóa cơng việc Ví dụ, nhiều thao tác ns-3 vừa nêu để tạo NetDevice , thêm MAC address, cài đặt net device lên node, cấu hình tầng giao thức kết nối NetDevice tới Channel Và cần nhiều thời gian để kết nối thiết bị tới nhiều điểm kết nối mạng lại với nhau, tạo thành internetwork Ns-3 cung cấp lớp topology helper NodeContainer, NetDeviceContainer, PointToPointHelper hay InternetStackHelper giúp thực tác vụ cách nhanh chóng tiện lợi II.ĐẶT VẤN ĐỀ Để tìm hiểu giao thức định tuyến Optimized Link State Routing (OLSR) Ad hoc On-Demand Distance Vector (AODV) sử dụng Mobile Ad-hoc Network (MANET) Vấn đề đưa đây, giao thức OLSR AODV: - Hoạt động nào? - Cài đặt hai giao thức ns-3 nào? - Giữa hai giao thức này, giao thức hoạt động hiệu hơn? Kịch cho hai giao thức: Trong mơ hình có tổng cộng node, node0 node1 đứng cố định chỗ Ban đầu node3 nằm vùng truyền thông node0 node1 (phạm vi node tối đa 250m), node2 nằm ngồi vùng truyền thơng Sau đó, node2 node3 di chuyển lần lược với vận tốc m/s 15 m/s theo hướng node2 bên phải vào vùng truyền thông node0 node1, node3 phía khỏi vùng truyền thông node0 node1 Trên node1 cài đặt UDP Sink Application, node0 cài đặt UDP sender liên tục gửi packet đến địa IP node1 Thực nghiệm quan sát trình tái định tuyến node3 khỏi vùng truyền thông node0 node1, node2 vào vùng giao thức định tuyến AODV để thiết lập kênh truyền Mobile Ad-hoc Network (MANET) node0 node1, từ tái thiết lập kết nối UDP node0 node1 III Cài đặt ns-3 mô OLSR – AODV Cài đặt ns3 A.Yêu cầu: Cài đặt máy ảo Ubuntu 14.04 VMware B Cài gói thư viện: $ sudo apt-get update $ sudo apt-get install python-pip python-setuptools python-pip libxml2 $ sudo apt-get install gtk+2.0 qt4-dev-tools $ sudo apt-get install graphviz libgraphviz-dev pkg-config $ sudo apt-get install python-dev python-pygraphviz graphviz-dev python-kiwi python-pygoocanvas python-gnome2 python-gnome2-dev python-rsvg C Install PygraphViz: Download Links: https://pypi.org/project/pygraphviz/#files Giải nén file zip tải về: pygraphviz-1.5.zip $ cd pygraphviz-1.3.1 $ sudo python setup.py install library-path=/usr/lib/graphviz Hoặc sử dụng Pip $ sudo pip uninstall pygraphviz $ pkg-config libs-only-L libcgraph $ pkg-config cflags-only-I libcgraph $ pip install pygraphviz install-option=" include-path=/usr/include/graphviz" install-option=" library-path=/usr/lib/graphviz/" Kiểm tra pygraphviz dc install $ python $ >> import pygraphviz as pgv D.Build NS-3 Download link: https://www.nsnam.org/release/ns-allinone-3.25.tar.bz2 Kiểm tra gói thư viện cài đặt đầy đủ configure $ tar xjvf ns-allinone-3.25.tar.bz2 $ cd ns-allinone-3.25/ns-3.25 $ /waf enable-sudo build-profile=debug enable-examples enable-tests configure $ /waf clean $ cd / Cài đặt $ /build.py Xây dựng mơ hình mơ OLSR AODV A Xây dựng mơ hình mô OLSR Olsr.cc Khai báo thư viện #include "ns3/core-module.h" #include "ns3/network-module.h" #include "ns3/internet-module.h" #include "ns3/applications-module.h" #include "ns3/mobility-module.h" #include "ns3/wifi-module.h" #include "ns3/olsr-module.h" #include "ns3/flow-monitor-module.h" #include "ns3/mobility-module.h" #include "myapp.h" Chuẩn bị mơ hình di chuyển cho node Ptr Ptr cvmm3; Tạo kênh kết nối wifi (YansWifiChannel cvmm2; ns-3) WifiHelper wifi; YansWifiPhyHelper wifiPhy = YansWifiPhyHelper::Default (); wifiPhy.SetPcapDataLinkType(YansWifiPhyHelper::DLT_IEEE802_ 11); Cài đặt thông số công suất truyền để khoảng cách truyền tối đa 250m wifiPhy.Set ("TxPowerStart", DoubleValue(33)); wifiPhy.Set ("TxPowerEnd", DoubleValue(33)); wifiPhy.Set ("TxPowerLevels", UintegerValue(1)); wifiPhy.Set ("TxGain", DoubleValue(0)); wifiPhy.Set ("RxGain", DoubleValue(0)); wifiPhy.Set ("EnergyDetectionThreshold",DoubleValue(-1.8)); wifiPhy.Set ("CcaMode1Threshold", DoubleValue(-64.8)); Cấu hình chế độ ad-hoc cho kênh truyền cài đặt lên NetDevices NqosWifiMacHelper wifiMac wifiMac.SetType // Set wifi.SetStandard = NetDeviceContainer devices = wifi.Install (wifiPhy, wifiMac, c); NqosWifiMacHelper::Default (); ("ns3::AdhocWifiMac"); 802.11b standard (WIFI_PHY_STANDARD_80211b); devices; Cấu hình OSLR sử dụng q trình truyền thơng // Khởi OlsrHelper Ipv4ListRoutingHelper list.Add // Cài đặt OLSR cho InternetStackHelper internet.SetRoutingHelper internet.Install (c); tạo (olsr, node protocol list olsr; list; 10); nodeContainer “c” internet; (list); Các IP address cho netDevices thuộc nodes Ipv4AddressHelper NS_LOG_INFO ("Assign IP ipv4.SetBase ("10.1.1.0", Ipv4InterfaceContainer ifcont = ipv4.Assign (devices); ipv4; Addresses."); "255.255.255.0"); Các bước cài đặt UDP Sink app UDP Sender Ptr app = CreateObject (); app->Setup (ns3UdpSocket, sinkAddress, 1040, 100000, DataRate ("250Kbps")); //Ptr app1 = CreateObject (); //app1->Setup (ns3UdpSocket, sinkAddress, 2000, 100000, DataRate ("1000Kbps")); c.Get (0)->AddApplication (app); //c.Get (0)->AddApplication (app1); //app1->SetStartTime (Seconds (10.)); //app1->SetStopTime (Seconds (40.)); app->SetStartTime (Seconds (1.)); app->SetStopTime (Seconds (40.)); Cài đặt vị trí cho node MobilityHelper Ptr positionAlloc (); positionAlloc ->Add(Vector(0, 0, positionAlloc ->Add(Vector(300, 0, positionAlloc ->Add(Vector(0, 110, positionAlloc ->Add(Vector(600, -150, mobility.SetPositionAllocator(positionAlloc) = 0)); 0)); 0)); 0)); mobility; CreateObject // // // // node0 node1 node2 node3 Cài đặt tốc độ hướng di chuyển cho node // Vận tốc theo trục x cho node2 node3 Vector vel2 (10, 0, 0); Vector vel3 (-20, 0, 0); Ptr mover2 = c.Get(2); Ptr mover3 = c.Get(3); mobility.SetMobilityModel("ns3::ConstantVelocityMobilityMod el"); mobility.Install(c); cvmm2 = mover2->GetObject(); cvmm2->SetVelocity(vel2); cvmm3 = mover3->GetObject(); cvmm3->SetVelocity(vel3); Ghi lại file PCAP để phân tích wifiPhy.EnablePcap ("lab3-3-olsr-dev0", devices.Get(0)); wifiPhy.EnablePcap ("lab3-3-olsr-dev1", devices.Get(1)); wifiPhy.EnablePcap ("lab3-3-olsr-dev2", devices.Get(2)); wifiPhy.EnablePcap ("lab3-3-olsr-dev3", devices.Get(3)); B Xây dựng mơ hình mơ AODV Với phần xây dựng mơ hình mơ AODV, khác phần cài đặt giao thức AODV aodv.cc AodvHelper Ipv4ListRoutingHelper list.Add // Cài đặt AODV cho InternetStackHelper internet.SetRoutingHelper internet.Install (c); (aodv, node aodv; list; 10); nodeContainer “c” internet; (list); C Chạy mô Trước chạy, thêm vào thư mục Download/ ns-allinone-3.25/ns-3.25/scratch thêm thư mục myapp.h #include "ns3/applications-module.h" #include "ns3/core-module.h" using namespace ns3; class MyApp : public Application { public: MyApp (); virtual ~MyApp(); void Setup (Ptr socket, Address address, uint32_t packetSize, uint32_t nPackets, DataRate dataRate); private: virtual void StartApplication (void); virtual void StopApplication (void); 10 void ScheduleTx (void); void SendPacket (void); Ptr m_socket; Address m_peer; uint32_t m_packetSize; uint32_t m_nPackets; DataRate m_dataRate; EventId m_sendEvent; bool m_running; uint32_t m_packetsSent; }; MyApp::MyApp () : m_socket (0), m_peer (), m_packetSize (0), m_nPackets (0), m_dataRate (0), m_sendEvent (), m_running (false), m_packetsSent (0) { } MyApp::~MyApp() { m_socket = 0; } void MyApp::Setup (Ptr socket, Address address, uint32_t packetSize, uint32_t nPackets, DataRate dataRate) { m_socket = socket; m_peer = address; m_packetSize = packetSize; m_nPackets = nPackets; m_dataRate = dataRate; } void 11 MyApp::StartApplication (void) { m_running = true; m_packetsSent = 0; m_socket->Bind (); m_socket->Connect (m_peer); SendPacket (); } void MyApp::StopApplication (void) { m_running = false; if (m_sendEvent.IsRunning ()) { Simulator::Cancel (m_sendEvent); } if (m_socket) { m_socket->Close (); } } void MyApp::SendPacket (void) { Ptr packet = Create (m_packetSize); m_socket->Send (packet); if (++m_packetsSent < m_nPackets) { ScheduleTx (); } } void MyApp::ScheduleTx (void) { if (m_running) { Time tNext (Seconds (m_packetSize * / static_cast 12 (m_dataRate.GetBitRate ()))); m_sendEvent &MyApp::SendPacket, this); } = Simulator::Schedule (tNext, } $Download/ Download/ ns-allinone-3.25/ns-3.25 /waf run scratch/olsr.cc vis $ Download/ Download/ ns-allinone-3.25/ns-3.25 /waf run scratch/aodv.cc vis D So sánh thời gian cho việc tái định tuyến giao thức AODV OLSR từ sau giây thứ 10 Thời gian định tuyến lại aodv nhanh so với olsr Aodv 14s 13 Olsr 20s: Do Giao thức aodv lúc node nguồn gửi gói request hình thành nhiều đường dẫn đến đích, cần hình thành đường dãn chiều đến đích gửi gói tin Trong giao thức olsr pháie thời gian hình thành đường dẫn chiều node Khi có lỗi xảy node giao thức aodv thông báo tới nguồn để khởi tạo lại đường Cịn olsr phải hình thành lại đường dãn chiều node IV KẾT LUẬN Network Simulation kỹ thuật có lợi ích lớn việc nghiên cứu tìm hiểu hoạt động mạng giao thức, hoạt động,… Nodes, Routes, Switches, Links,… Thay phải làm device thực tế gây tốn để tính tốn được, Network Simulation lựa chọn tốt để nghiên cứu Ngoài ra, Network Simulation cịn thực cơng nghệ khác như: WLAN, UDP, TCP,… PHÂN CÔNG CÔNG VIỆC MSSV 1752127 Họ Tên Hồng Gia Vương Cơng việc - Chuẩn bị môi trường - Xây dựng kịch 14 1752127 1752118 Mai Hoàng Vũ Nguyễn Đang Trường - Làm PowerPoint, Báo cáo - Build OLSR, phân tích PCAP OLSR - Build AODV, phân tích AODV - Quay chỉnh sửa video 15 ... viện #include "ns3 /core-module.h" #include "ns3 /network- module.h" #include "ns3 /internet-module.h" #include "ns3 /applications-module.h" #include "ns3 /mobility-module.h" #include "ns3 /wifi-module.h"... Network Simulation gì? 2 Network Simulator gì? .2 NS – Tool II ĐẶT VẤN ĐỀ .5 III Cài đặt ns- 3 mô OLSR – AODV Cài đặt ns3 ... #include "ns3 /olsr-module.h" #include "ns3 /flow-monitor-module.h" #include "ns3 /mobility-module.h" #include "myapp.h" Chuẩn bị mơ hình di chuyển cho node Ptr Ptr