This course will introduce the principles and practice of computer networking, with emphasis on the Internet. Students will learn concepts, principles, protocols, and applications of computer networks, including packet switching, layered architectures, TCP/IP, physical layer, error control, window flow control, local area networks (Ethernet, Token Ring; FDDI), network layer, congestion control, quality of service, multicast, network programming interfaces, networked applications.
- 50.005 Computer System Engineering or
- A working knowledge of programming in Python and a strong foundation in computer systems
- Explain fundamental network protocols.
- Describe the organisation of computer networks, and classify factors influencing computer network development and the reasons for having variety of different types of networks.
- Solve standard problems in interconnections between autonomous networks.
- Model the Internet structure and derive operational parameters.
- Design optimized network topology for given problem settings.
- Analyze and evaluate a provided network setup.
- Design and implement a server-client architecture based on sockets.
- Description of the essential features of different networking protocols, such as TCP, IP, DNS, and ARP.
- Conceptual design of a computer network based on a set of provided operational requirements.
- Application of routing algorithms to determine the shortest path in an network such as the internet, modeled as a weighted graph.
- Model and analysis of a network of autonomous systems.
- Analysis of a real network setup and critique of the design decisions.
- Design and implementation of a client-server application program using sockets.