# Netflow & Rich-Club

## Goals:
    - Gain the ability to process real network data using netflow capture.
    - Learn to decompose netflow data into service subnets.
    - Learn to detect a possible rich-club.

## Tasks:
    1. Load input data (CSV files) and convert them to the proper data structure.
   
    2. Find out the basic characteristics of the communication network:
      - total number of netflow records,
      - total number of packets transmitted,
      - total number of source IP addresses (0.1b),
      - total number of destination IP addresses (0.1b),
      - distribution of transport layer protocol usage (0.2b).
  
    3. Select only netflow related to TCP and UDP protocols.
   
    4. Create a communication network between IP addresses (0.2b).
  
    5. Calculate and visualize the distribution of target ports of transport traffic across the entire range 0-65535 and the system port range 0-1023 (0.4b).
   
    6. For each system destination port with a netflow occurrence count greater than 200 and a corresponding destination address count greater than 10:
      - create a subgraph of the communication network between source IP addresses and destination IP addresses contacted on the given destination port, including its appropriate visualization (0.8b),
      - calculate and visualise the degree distribution in such a network; use undirected graph (0.2),
      - determine the rich-club coefficient for each degree value in such a network and display this dependence; use undirected graph (1.0b),
      - visualize the rich-club subgraph that has the highest coefficient value; if there are more than one, choose the one with the most IP addresses; use undirected graph (1.0b).