Skip to content

hjiema/UINT

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

UNIT

UNIT is a network management algorithm based on IBN. The algorithm optimizes network traffic forwarding through our adaptive strategy formulation and advanced deployment mechanism, significantly reducing network latency and packet interarrival time, ultimately improving user QoS.

Highlights

  • We design a predictor for forecasting the type of network traffic requested by users, achieving an accuracy rate of 98%.
  • We propose an adaptive strategy formulation and advance deployment algorithm that effectively optimizes network resource utilization and improves Quality of Service (QoS).
  • Our dynamic strategy adjustment mechanism can update strategies in real-time according to network resource usage and prediction results.
  • Experimental evaluations show that our algorithm performs exceptionally well in various network environments, meeting the latency and interarrival requirements of different traffic types.
  • Our research significantly enhances the stability and adaptability of network services.

Contents

.
├── dataset: the snip dataset.
├── cases: cases used in this work.
├── scripts: script file in simulation experiment.
├── category.py: classification tree class.
├── main.py: the main function.
├── predict.py: model reading and prediction class.
├── report.py: print evaluation report.
├── utils.py: helper codes.
└── topology.py: network topology.

The Architecture of UNIT


The Architecture of UNIT

The Flow Chart of Different Algorithms


The Flow Chart of Different Algorithms
  1. When user-requested traffic arrives at the switch without a matching forwarding flow table, the switch sends this traffic to the IBN controller (step 3), either awaiting the controller to issue an appropriate forwarding policy (step 4) or forwarding it based on a default route.
  2. Our Predictor module predicts the type of traffic requested by the user (step 3). It optimizes forwarding strategies based on the QoS requirements and network conditions associated with that traffic type (step 4). These strategies are then deployed to the switch before the user’s traffic reaches it (step 5).

About user intents prediction experiment

Requirements

python >= 3.6
numpy==1.19.2
scipy==1.5.4
scikit-learn==0.23.2
jieba==0.42.1
tqdm==4.54.1

How to predict the intent of user's request experiments

  1. Download Snip Dataset from here.
  2. Data processing The processed data is shown in the folder cases.
  3. Training prediction model python3 main.py
  4. Print the reports python3 report.py
  5. make predictions using the trained model python3 predict.py

About the traffic scheduling experiments

Environmental requirement

  1. Linux OS (e.g., CentOS, RedHat, Ubuntu).
  2. Miniet (with OpenFlow version 1.3)
  3. Ryu controllers
  4. MGEN (Multi-Generator traffic generation tool)
  5. nload (Real-time network traffic monitor)
  6. bmon (Real-time network traffic monitor)
  7. Trpr (TRace Plot Real-time)
  8. tcpdump (a powerful command-line packet analyzer)
  9. gunplot (An Interactive Plotting Program)

Network topology


The Prototype Topology Network of Our Simulation Experiment.

How to run

step1: Start the RYU controller in the terminal ryu-manager example_switch_13.py.

step2: Run mininet in another terminal miniet mn --controller=remote (we can also use a custom network topology with python3 topology.py).

step3: Open terminals S1 and T2 xterm S1 T2.

step4: As the traffic sender, S1 runs the Mgen script file mgen input test_input.mgn.

step5: As the traffic receiver, T1 runs the Mgen script file mgen input test_listen.mgn output test_output.drc.

step6: Use bmon to monitor the network bandwidth in real time and write to the bandwidth.txt file ./scripts/bmon.sh. And then Use data.py to extract bandwidth data from the bandwidth.txt file python3 data.py.

step7: At the same time, monitor network traffic in real time using nload.

step7: Use trpr to analyze information such as delay and interarrival according to the monitored information. ../trpr interarrival drec input test_output.drc auto X output late.txt and ../trpr latency drec input test_output.drc auto X output late.txt.

step8: Plot using gunplot gunplot gunplot.txt.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 99.0%
  • Shell 1.0%