TCP implementation using C

Affiliation: Electrical and Computer Engineering
Resolution: Individual | Duration: Two to four hours



Deeper understanding of TCP protocol implementation in software. Students will program a TCP client and server in C programing language. They must write a program in C that creates a 3-way handshake between the server and client. They must also accurately implement the acknowledgements and requests being exchanged. Most operating systems use C, so the programming C will be accurate. Students will improve their programing skills and how a TCP network connection is established. The tools that can be used are a linux terminal or any c coding application.

Learning Objectives

After the completion of the task the student will have an in-depth knowledge of server and client creation in C language. In more detail the student will learn how to make sockets in C and how to create and kill child processes using fork, waitpid, send and receive calls. The students will also have an in-depth understanding of the way a TCP connection is established, used and terminated. They will learn how the requests and acknowledgments are send and replied to.


The assignment contains knowledge from both the subjects of “Programming in C” and “Computer Networks”. It is designed for an undergraduate studies program in Electrical and Computer Engineering, covering the sections of “Computer Software” and “Systems and Telecommunications”. The general goal of these sections is to learn the principles of computer networking, communication and how it is programmed using the C language.