Introduction to the theoretical and pragmatic principles and practices of computer networking, with an emphasis on the TCP/IP (Internet) protocol stack, and modern techniques and concerns such as security and software defined networking.

We focus on the Internet, especially the TCP/IP protocol stack, the world-wide-web, Internet standards, and network security.

Course Topics:

Basic Networking Concepts

  • Packet vs. circuit switching
  • Protocols and service models
  • Protocol layering concepts
  • Standards and organizations

Application Layer

  • HTTP
  • FTP
  • DNS
  • Basic socket programming

Transport Layer

  • Mux and demux
  • TCP and UDP
  • Reliable data transport principles and Go-back-n, selective repeat
  • Congestion control principles and algorithms

Network Layer

  • Routing and forwarding
  • IP datagram format
  • IP addressing
  • ICMP
  • Decentralized routing algorithms: Link State and Distance Vector
  • Internet ASs and routing
  • Basic error detection
  • MAC protocols: CSMA

Network Security

  • Security properties
  • Dolev-Yao model
  • Diffie-Hellman protocol
  • Certificate formats
  • TLS
  • Real-world vulnerabilities and countermeasures DDoS, Buffer overflow attacks, Heartbleed, Mirai

Advanced Topics: Software Defined Networking

Basic concepts
Language (OpenFlow) and implementation support
Network federation and security concerns