Getting started
Last updated
Last updated
Programming computer interactions on the network is a fun but challenging task. Many underlying procedures must be executed, and several data points must be moved around for your application to deliver a message to another computer. Understanding everything that goes under the socket interface might be too much for a bachelor-level course, thus, we are focusing on application-layer development. To start, the following sections of the manual will introduce you to the basics of socket programming and the low-level concepts required to interact with the socket abstraction. We also provide a very basic Python guide to facilitate the development of the assignments.
Although we are using Python for the lab, it is essential to understand that the socket abstraction exists in every programming language and behaves the same, with slight syntax modifications. Under the hood, all languages use the Unix socket abstraction,
Computer Networks is not a Python course, but rather we are using Python as our tool for learning about network programming. Nonetheless, as with any programming language, we want to follow its style and design patterns, which is why we guide you towards the required knowledge for the lab environment.
In the unlikely case that you have not followed the course material yet, it is important to mention that the following resource is not a substitute for the knowledge gained via the textbook, lectures, or tutorials. Many concepts related to the layered networking architecture will come into play during the lab, and we expect you to be able to put the theory into practice. If you are up-to-date with the course material, the reference documentation serves as a handbook for solving the assignments.