COMN: Computer Communications and Networks
Welcome to Computer Communications and Networks
This page is under construction - course content, schedule and assessments haven't been finalized yet.
Our online activities for work, study and life in general for the most part are underpinned by communication networks (local or wide area networks and, a combination of wired and wireless networks), especially the Internet. This is a comprehensive introductory course on communication networks. In practice, much of our online activity is enabled by connecting to the “Internet”, which is by far the largest and most widely used network out there. Not only that, the Internet is very much live and constantly evolving, growing in scale over time to connect not just user devices but all kinds of ”things”. As such, we’ll use Internet as a case study throughout this course to learn about networks.
This course will introduce basic networking concepts, including: protocol, network architecture, reference models, layering, service, interface, multiplexing, switching and standards. An overview of digital communication from the perspective of computer networking will also be provided. Topics covered in this course include: Internet (TCP/IP) architecture and protocols, network applications, congestion/flow/error control, routing and internetworking, data link protocols, error detection and correction, and various communication media. It will cover recent advances in network control and management architectures by introducing the concepts of software-defined networking (SDN). It will also provide advanced topics including datacenter networking and modern networking technologies over the Internet. Students taking this course will gain hands-on experience in network programming using the socket API; network traffic/protocol analysis; and on assessment of alternative networked systems and architectures.
It will be co-taught by Michio Honda and Paul Patras.
Learning Outcomes
On successful completion of this course, you should be able to:
- Explain key networking concepts, principles, design issues and techniques at all protocol layers.
- Contrast between different types of networks (e.g., wide area networks vs. local area networks, wired vs. wireless) in terms of their characteristics and protocols used.
- Describe different types of networked applications and what underlying network protocols are needed to meet their diverse requirements.
- Distinguish between control and data planes in computer networks, and their corresponding architectures in real-world networks (including the Internet).
- Understand reliable transport protocols and networked system architectures via implementation using Socket APIs, measurement and analysis.
Course Outline
Syllabus wise, we will cover the following topics in this course:
- Introduction to Computer Networks, the Internet, TCP/IP architecture and protocols
- Key networking concepts: protocol, network architecture, reference models, layering, service, interface, multiplexing, switching and standards
- Network performance metrics
- Physical layer overview
- Application Layer
- Representative Internet applications (Web/HTTP, P2P, multimedia, etc.)
- Developing network applications using socket API
- Transport Layer
- Connectionless vs. connection-oriented communications
- Reliable data transfer
- Congestion/flow/error control
- UDP and TCP protocols
- Network Layer
- Control and data planes: routing vs. forwarding
- IP protocol and addressing
- Routing algorithms
- Software-defined networking (SDN) – control plane, generalized forwarding, OpenFlow API and protocol
- Router internals
- Link Layer and Local Area Networks (LANs)
- Link layer services and implementation
- Error detection and correction
- Channel allocation and multiple access protocols
Ethernet and switched LANs
- Wireless and Mobile Networks (time permitting)