Python辅导 | ECE 586: Computer Networks

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

ECE 586: Computer Networks

Project Description (Oct. 17, 2019)

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.

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:

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

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

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

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

A reference is available here: Wang, Pan, Feng Ye, Xuejiao Chen, and Yi Qian. “Datanet: Deep learning based encrypted network traffic classification in sdn home gateway.” IEEE Access 6 (2018): 55380-55391. https://ieeexplore.ieee.org/abstract/document/8473682

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.

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.

Figure 3. A shortest route from 𝑂 to 𝐷.

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:

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

Bonus Credit (up to 5 pts): Propose a NEW routing protocol.

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.

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.

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.

https://www.ieee.org/conferences_events/conferences/publishing/templates.html

This is an individual project with no teamwork.

Total points: (max 100 + 10 bonus)

Initial Final Report: Tuesday Dec. 3, 2019 (5:05 PM)

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