首页 » Python辅导 » Python辅导 | ECE 586: Computer Networks

Python辅导 | ECE 586: Computer Networks

这个project是使用python完成基于卷积神经网络(CNN)的新颖流量分类方案

ECE 586: Computer Networks

Project Description (Oct. 17, 2019)

Project Overview

This course project is required for the graduate students in ECE 586: Computer Network. All the students, including both undergraduate and graduate, are required to attend all the project presentations. The (2) attendance will be counted as part of your homework grading.

Project Topic 1: Network Traffic Classification

In this topic, you will explore a novel traffic classification scheme based on Convolutional Neural Network (CNN). CNN has been widely applied in image classification and pattern recognition. A CNN extracts features from the input and uses categorical probability computed by the Softmax function for classification. Here, we will apply CNN to build a traffic classifier for network traffic monitoring.

For simplicity, a database is available to you. The raw data packets are originally captured with Wireshark. Each packet is a series of bytes with a maximum length of 1480. They are reformatted as shown in Fig. 1.

image

Figure 1. Procedures of packet pre-processing.

The CNN-based classifier will process the input through convolutional layer, dense layers and a Softmax classification layer as shown in Fig. 2. The CNN will output based on the categorical probabilities computed by the Softmax layer.

image

Figure 2. Network traffic classification

In this topic you are asked to update this CNN-based traffic classifier by using provided database (or the packets collected on your own). You are given a Matlab script (ECE586_Proj.m) and pre-trained CNN model (N1.mat) to work on following tasks:

  1. Load the pre-trained CNN-based classifier (N1.mat) and the first dataset (D1.mat). Three variables will appear in the Workspace after loading these two files:

    1. “net” is the pre-trained CNN-based classifier,

    2. “D1_data” is the set of converted data packets in the dataset

    3. “D1_label” is the set of the corresponding labels of the packets in “D1_data”.

      You may want to check what applications are these packets collected from by simply using “tabulate( )” over the loaded variable “D1_label” which is the labels of the data.

  2. Test the pre-trained classifier with the provided dataset (D1.mat) and plot the confusion matrix. “classify(<neural network>,<data>)” can help you to use the pre-trained classifier to classify the given data and gives you a list of classification result. You are asked to evaluate the classification performance by comparing the classification results and the true labels. A confusion matrix can be computed by using “plotconfusion(<true label>,<classification result>)”. You need to summarize the classification performance and try to interpret the confusion matrix.
  3. Load the second dataset (D2.mat) to test the classifier and report the confusion matrix. In this sub task, you are asked to report the classes of the packets in the second dataset and test the classifier with the dataset. A confusion matrix needs to be plotted along with an appropriate interpretation.
  1. Update the pre-trained classifier with a new dataset (D3.mat) through transfer learning. Before updating the classifier, packets and their corresponding labels in “D3.mat” need to be loaded. Number of packet classes needs to be defined based on your observation from “D3.mat”. The required code for transfer learning is provided, where several parameters can be adjusted for extensive trying. CPU will be used by default. It is highly recommended that you set “ env = ‘gpu’ ” to speed up the training if you have a compatible GPU. The transfer learning process will take a while and it will save the updated classifier as “N2.mat”.
  2. Evaluate the updated classifier (N2.mat) by using the second dataset (D2.mat). Generate a confusion matrix to evaluate the classification performance of the updated classifier. What can be conclude by comparing the new generated confusion matrix with the one generated in Task.c?
  1. (Optional with bonus) Build your own dataset to further update the classifier. You can use Wireshark to capture packets in the active network of one application at your choice. Save the captured packets in a ‘.pcap’ file. You may need to close other active applications which send and receive packets in the background so that the collected packets most likely belong to the application you chose. If you need help parsing the .pcap file, the team at the Advanced Communication and Network Security Laboratory, ECE Department, University of Dayton can help you (let’s limit it to one help for each student). To seek help, send your .pcap file to udeceacns@gmail.com before 11/15/2019. The process data (will be named as “D4.mat”) will be returned ASAP.

    Note:

Project Topic 2: Routing Protocols in Mobile Ad-hoc Network (MANET)

In this topic, you will explore routing protocols in MANET. A MANET is an infrastructure-less network with mobile nodes. An illustration of MANET is given in Fig. 1. For example, if vehicles are communication nodes and they are free to communicate with any nodes that are within transmission range, it will form a MANET. Note that since nodes are moving, the topology is not fixed. Some links may not be available in the next time slot. Fig. 2 illustrates a different topology in another time slot.

O

D

O

D

Figure 1. A MANET topology. Figure 2. Changing topology due to mobility.

A routing protocol specifies how to select routes between any two nodes in a computer network.

For example, if a route is needed between 𝑂 (origin) and 𝐷 (destination), the shortest routing protocol will find the route as shown in Fig. 3. (Note: distance in an ad-hoc network is usually

measured in the number of hops.) There are many routing protocols, e.g., OSPF, Dijkstra, etc.

O

D

Figure 3. A shortest route from 𝑂 to 𝐷.

The implementation requirement.

Implementation of routing protocols in MANET using simulation tools (NS-3 is recommended. A bit knowledge of LINUX and Python is required. It’s a good time to learn if not. Alternatively, you may try Matlab with Simulink.) You are expected to conduct network simulation in NS3 with the following requirements:

  1. Set up a MANET environment with 10-20 nodes. The nodes should be randomly deployed in an area. You may start from a static grid topology. An example is given in Fig. 4. Small circles are nodes, dashed lines are possible communication links, big circles indicate transmission range of a node. A node cannot establish direct communication beyond its transmission range, thus the grid topology. Assume the transmission range does not change for each node.image

    Figure 4. An example of grid topology and transmission range.

  2. Use any existing wireless transmission modules (e.g., Wi-Fi or basic BPSK transmission) provided by NS-3 for direct transmission links.
  3. Randomly choose two nodes as 𝑂 and 𝐷, apply two different routing protocols to establishtransmission routes and send packets.
  4. Record routing establishment time (run it for at least 100 times, get the average value)
  5. Record end-to-end delay (run it for at least 100 times, get the average value)
  6. Bonus Credit (up to 5 pts): Propose a NEW routing protocol.

    1. You need to design a routing protocol that is different from existing ones. It doesn’t have to be completely novel. For example, you may change just one or two aspects.

    2. Apply your protocol to the network, record routing establishment time ad end-to-end delay

      Note: NS-3 (https://www.nsnam.org/ ) is a discrete-event network simulator for Internet systems, targeted primarily for research and educational use. You will need a LINUX environment to run NS3.

      • The easiest way is to install LINUX (UBUNTU recommended https://www.ubuntu.com/) on your computer.
      • Or, you may run a virtual machine. VMware is provided for free. Download it from https://ud.onthehub.com/
      • NS-3 does not have a GUI. You can use NetAnim for animation (https://www.nsnam.org/docs/release/3.12/models/html/animation.html).
      • Self-motivated learning is required.
      • Teamwork is encouraged on setting up the NS-3 environment. But you must finish the network implementation and project report individually.

        Project Proposal, Report and Presentation

      • Project proposal:

        You need to submit a 1-page proposal on Oct. 31, 2019, presenting an abstract of the topic, your possible approaches to finish the project, and your weekly schedule.

      • Project report:

        • If topic 1, your project report can be reported directly by using “Publish” in Matlab. Relevant interpretation for the plots can also be including in your Matlab code as comments in the corresponding task sections.
          1. (10% bonus in topic 1) You are encouraged to collect new packets by yourselves. Select one Internet application and use Wireshark to capture the packets and save it as a .pcap file. You will obtain a new dataset by sending .pcap file to udeceacns@gmail.com before the data listed in Task.f to get the bonus.
  • Presentation: You need to present your work to the class at the end of the semester. Each student should prepare a 15-minute presentation for your project. Presentation shall be made with the media or tool you feel most effective. MS PowerPoint is recommended to make the slides. Please also get ready for demonstration, e.g., through pre-recorded video.

    Grading Guideline:

    Total points: (max 100 + 10 bonus)

    • Project Proposal (10)
    • Final Report (depending on the creativity, difficulty of the implementations, quality of the demo if applied, etc.) (70)
    • Presentation (20)
    • Bonus (10)

      Due Date and Submission:

    • Project Proposal: Oct. 31, 2019
    • Initial Final Report: Tuesday Dec. 3, 2019 (5:05 PM)

    • Presentation Slides: Tuesday Dec. 3, 2019 (5:05 PM)
    • The presentations will be held on Dec. 3 & Dec. 5, 2019, in class.

Your report and slides (plus codes and compiled programs if necessary) should be submitted on Isidore on or before due date. You may keep updating your final report and finalizing your programs until mid-night Dec, 8 2019. Submit your final report and program to Isidore.

(Resubmission on Isidore will be allowed before Due.)


程序辅导定制C/C++/JAVA/安卓/PYTHON/留学生/PHP/APP开发/MATLAB


blank

本网站支持 Alipay WeChatPay PayPal等支付方式

E-mail: vipdue@outlook.com  微信号:vipnxx


如果您使用手机请先保存二维码,微信识别。如果用电脑,直接掏出手机果断扫描。

blank

发表评论

您的电子邮箱地址不会被公开。