Computer networks have become an indispensable part of our daily lives. Our devices are constantly using the Internet for communication and data retrieval. It is essential to understand the principles of networking that make this possible. In this course, we will cover the principles of computer networks, including the design and implementation of the Internet, its protocols and applications. The following topics will be covered:
Internet networking stack
Network programming using sockets
Concurrent programming
Reliability, congestion control, and routing
Selected topics on network security and wireless networking