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
Link Layer
- 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