-
Implement the protocol over TCP (It should be possible to list the routes from this router to other routers)
- Implement flooding (maintain database synchronization)
- serialize a map and transmit it from a client from a server
- Routes should age and refreshed
- Implement flooding (maintain database synchronization)
-
Understand the protocol
-
Technical reference
-
Read the RFC https://www.ietf.org/rfc/rfc2328.txt
-
Raw socket development
- Client + Server communicating OSPF packets using raw sockets
- Listen to artificial TCP packets
- Listening on raw sockets
- IP SPOOFING with BSD RAW SOCKETS INTERFACE
- Raw socket tutorial
- Server listens to many clients on different interfaces
- Send and receive OSPF packages
-
-
Configure many interfaces on container (each of them needs an IP)
-
Create a daemon
- Mixing C and C++ code
- Make the build completely machine independent and autonomous
- Separate executables for a client and a server on cmake
- Learn to install build essentials or development support directly from the dockerfile
- https://theboostcpplibraries.com/boost.graph-vertices-and-edges
- https://theboostcpplibraries.com/
- https://hub.docker.com/_/gcc
https://www.tcpdump.org/manpages/tcpdump.1.html https://hackertarget.com/tcpdump-examples/ https://dzone.com/articles/parallel-tcpip-socket-server-with-multi-threading https://codereview.stackexchange.com/questions/143286/multithreaded-client-server-communication https://www.geeksforgeeks.org/socket-programming-in-cc-handling-multiple-clients-on-server-without-multi-threading/
Multiple executables Raw sockets Basic sockets Lifecycle of a docker container Network analyzer docker image More docs about OSPF
Versions of boost: boost 1.65 Ubuntu, boost 1.68 Macos