A layered architecture
Dividing a problem into several sub-problems and then solve each sub-problem is a very successful strategy. When implementing services this becomes very evident; we will explore how to build a communication stack as a layered architecture. The stack will implement flow control, reliable and ordered message passing etc.
This is also an example of using finite state machines in modelling a solution to a problem.
Before the lecture
Before the lecture you should the concepts of the OSI model for network communication. You should also repeat finite state automata theory from the course in discrete mathematics.
Follow the instructions in the assignment and implement the communication service. During the lecture we will look at different aspects of the implementation and discuss how the program can be extended.