Skip to content

philipfleischer/Networks

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Network

This repository contains my project work from the course IN3230 – Network and Communication Security at the University of Oslo (UiO).

The course provides a fundamental introduction to how modern communication systems work, including addressing, routing, flow control, reliability, error handling, and synchronization. The projects in this repository focus on low-level networking concepts implemented in C, tested in controlled network environments.

Project Histories

Projects (with full original history)

This repository contains two major projects based on the implementation of a Minimal Internet Protocol (MIP) stack and routing mechanisms, developed and tested using Mininet.

Each project includes source code, documentation, and reports describing design choices, protocol behavior, and testing results.

Project Description Browse Commit History
Project 1 Minimal Internet Protocol (MIP) IP_Project Commits
Project 2 MIP with Routing IP_Rouring_Project Commits

Project Descriptions

Project 1 – Minimal Internet Protocol (MIP)

This project implements a Minimal Internet Protocol (MIP) in C, providing a simplified model of IP-style packet communication.

Key features:

  • Custom packet format and addressing
  • Packet forwarding between nodes
  • Basic reliability and error handling
  • Communication between hosts in a virtual network
  • Extensive testing using Mininet

The goal of this project is to understand how fundamental network-layer functionality can be implemented from scratch.

Project 2 – MIP with Routing

This project extends the MIP implementation with dynamic routing functionality.

Key features:

  • Routing tables
  • Distance-vector routing
  • Poison reverse to prevent routing loops
  • Multi-hop packet forwarding
  • Failure handling and route updates

The project demonstrates how routing protocols work internally and how network topologies adapt to changes.

Course Information

  • Course name: Networks
  • Course code: IN3230
  • Institution: University of Oslo (UiO)

Topics covered in the course

  • Addressing and packet forwarding
  • Routing and congestion control
  • Reliability and error handling
  • Synchronization and flow control
  • Wired and wireless communication
  • Network architectures and protocols
  • Development of communicating programs

Learning Outcomes

After completing this course and the projects in this repository, I am able to:

  • Explain how packets are routed through a network
  • Implement basic communication protocols in C
  • Develop and test networked programs
  • Understand routing algorithms and loop prevention mechanisms
  • Use virtual network environments such as Mininet for testing
  • Reason about reliability, congestion, and fault handling in networks

Technologies and Tools

  • Language: C
  • Network simulation: Mininet
  • Protocols: Custom MIP implementation
  • Routing: Distance Vector, Poison Reverse
  • Version control: Git and GitHub
  • Documentation: Markdown and in-code comments

Purpose

This repository demonstrates:

  • Practical understanding of networking fundamentals
  • Ability to implement low-level network protocols
  • Structured and well-documented C code
  • Experience with network simulation and testing
  • A solid foundation for further work in networking and security

Author

Philip Elias Fleischer Bachelor’s student in Informatics: Programming and System Architecture University of Oslo (UiO)

About

Minimal IP Stack, IP daemon + Routing Daemon

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published