COMP-4621 Details
COMP 4621 Computer Networking
Course description
This course covers many important aspects of modern computer networking, including a substantial amount of network programming in a low level language (C/C++). Specific topics are:
- The application layer, overview of the Internet, network throughput calculations
- Application layer protocols: HTTP(S)/DNS/FTP/SSH/SMTP, etc.
- UDP client/server programming in C/C++
- Sockets and addresses/types in *nix/Windows
- The transport layer, overview, UDP vs. TCP
- Building reliable channels over unreliable network channels
- TCP/UDP multiplexing, logical connections at the transport layer
- The network layer: IP addressing, IP packet format, checksum calculation, IP subnetting, CIDR
- TCP client/server programming in C/C++
- Asynchronous programming, select/poll for handling multiple connections; non-blocking sockets
- Routing: data plane vs. control plane, traditional forwarding vs. SDN, routing protocols (BGP/OSPF)
- Routing: protocols DV vs. LS, routers and routing algorithms, forwarding tables
- The link layer: MAC addressing, switching, NAT, LANs, Ethernet
Course learning objectives
After taking this course students will know:
- The 5 layers of the Internet stack as well as the OSI model
- How to calculate transmission time, transmission delays, end-to-end delays in network connections
- How to write programs using posix system primitives to create UDP/TCP clients and servers
- Wire protocols, how to create them, how to send and receive their data, etc.
- The most common application layer protocols in use, such as HTTP/DNS/DHCP/SSH/FTP, etc.
- Multiplexing and demultiplexing process at each layer in the network stack, as well as TDM and FDM techniques
- The TCP state machine, transitions and performance of TCP connections
- Principles of reliable data transfer over unreliable links
- Internet checksums and how they are calculated, techniques for lossy channels at multiple layers
- What an AS is, how inter and intra AS routing is performed
- Common routing algorithms and protocols (DV/LS, RIP/OSPF/BGP) and their strengths and weaknesses
- The differences between layer 2 switching/routing/forwarding and layer 3 switching/routing/forwarding
- Asynchronous programming for networking with select/poll/epoll