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