Real-Time Monitor System in SDN via P4

By Yun Zi, Illinois Institute of Technology; This is a class project in IIT guided by Dr. Nik Sultana

In today’s interconnected world, networks play a vital role in enabling communication and data transfer between devices. Network interconnection devices refer to any hardware that connects different network resources, allowing these various devices to exchange information through different protocols and technologies. This enables the sharing and seamless flow of information among these devices, facilitating mutual connectivity and data exchange. 

Network performance monitoring involves continuously monitoring the behavior and performance of a network to identify potential issues, optimize performance, and ensure reliable communication. [1] Networks can be as small as a home network connecting a few devices or as vast as the global internet, connecting billions of devices worldwide. Understanding the function of networks and ensuring their optimal performance is crucial in modern computer science. 

Real-time monitoring systems provide administrators with instant insights into network performance. These software-based solutions capture, process, and analyze network data in real time, allowing prompt issue detection and resolution. Such systems optimize data transfer and minimize downtime, ensuring efficient network operation. 

Software-Defined Networking (SDN) is an approach to network management that enables dynamic, programmatically efficient network configuration in order to improve network performance and monitoring. [2] SDN is the decoupling of the network into distinct control (software) and data (hardware) planes.[3] 

P4 (Programming Protocol-Independent Packet Processors) is a programming language designed for network devices.[4] It allows administrators to customize packet processing and forwarding behavior, facilitating adaptation to new protocols and network performance optimization.[5]

This blog focuses on implementing a Real-Time Monitor System in SDN using the P4 language. By utilizing P4 to program the data plane of SDN switches, the system captures and processes network data in real-time, providing valuable insights into network performance. Network infrastructure impacts various aspects of our lives, and reliable, optimized networks ensure efficient internet access, seamless online services, and reliable communication.

The Real-Time Monitor System enhances network understanding and management, empowering administrators to promptly address performance issues. Its significance extends beyond computer science, as networks are vital for modern communication and information exchange. This research contributes to improving network infrastructure, benefiting individuals and society as a whole.

Components of the Real-Time Monitor System

vcadzc

This figure shows the architecture of the system.

The Real-Time Monitor System includes several key components that work together to capture, process, and analyze network data in real-time. These components include:

  • The test package generator, plays a crucial role in generating test data for monitoring purposes.
  • The sender, responsible for transmitting test data, has the ability to add additional data for evaluating specific network conditions.
  • SDN switches perform functions such as forwarding network traffic, adding necessary headers, and calculating routing information.
  • The receiver receives packets and passes them to the local collector.
  • The local collector is responsible for performing initial data processing and storing the information in a dedicated database (db).
  • The global analyzer and the Text User Interface (TUI),[6] work in conjunction to deeply process and present data for system performance analysis.

These components provide administrators with valuable insights into network performance, enabling them to make informed decisions regarding network optimization and troubleshooting.

Metrics And Results

As the picture shows, it can employ various metrics to evaluate network performance. These metrics provide valuable insights into different aspects of the system’s behavior. Key metrics include:

  1. Initial Packet Size, represents the packet length of the first switch in the system. 
  2. Average Packet Size, denotes the mean value of packet lengths recorded across all switches. 
  3. Latency, an essential metric, measures the time taken for a packet to travel from the source to the destination (host time). 
  4. Jitter is calculated based on latency and mean latency values, quantifies the standard deviation of packet delay.
  5. Bandwidth, calculates the data transfer rate in kilobits per second (Kbps).
  6. Throughput, represents the data transfer rate in bytes per second (bytes/s).

These metrics enable administrators to assess network performance, identify bottlenecks, and make data-driven decisions to enhance network efficiency.

klsl

This is the screenshot of the system, it shows the result of metrics.

In conclusion, the Real-Time Monitor System in this project implemented in SDN via P4 plays a vital role in network performance analysis. Its ability to capture, process, and analyze network data in real-time empowers administrators to proactively manage and optimize their networks. The current progress of this project is the implementation of all modules, each with complete and extensible connections.

References 

[1] Network Performance Management.https://www.manageengine.com/network-monitoring/network-performance-management.html

[2]Benzekki, Kamal; El Fergougui, Abdeslam; Elbelrhiti Elalaoui, Abdelbaki (2016). “Software-defined networking (SDN): A survey”. Security and Communication Networks. 9 (18): 5803–5833.https://onlinelibrary.wiley.com/doi/epdf/10.1002/sec.1737

[3] Software-Defined Networking (SDN) Explained.https://dgtlinfra.com/software-defined-networking-sdn

[4] P4: programming protocol-independent packet processors.https://dl.acm.org/doi/abs/10.1145/2656877.2656890 

[5] The P4 Language Specification.https://p4.org/p4-spec/p4-14/v1.0.5/tex/p4.pdf

[6] https://rich.readthedocs.io/en/stable/introduction.html

Leave a Reply