Computer Networking - Spring 2020
Course Program
Warning: this page contains a preliminary program. It is
therefore subject to change, and in fact it is most likely out of sync
with respect to
the actual course
schedule. Please, monitor the
announcements
page and always refer to the
schedule
page for more details on the topics covered in the course.
- Introduction to networking and the Internet [4 hours]
- the course in one lecture: a tour of all the topics of the
course through an end-to-end scenario
- the layered architecture
- what is a protocol
- basic network services: connection-oriented and connectionless
service; packet switching vs. circuit switching.
- Application layer [16 hours]
- the Web: HTTP; web caching;
- e-mail: transfer protocol (SMTP); access protocols (POP and IMAP);
message format (MIME).
- implementing a simple client/server program and the OS primitives;
- DNS
- peer to peer systems (BitTorrent)
- Transport layer [16 hours]
- multiplexing/demultiplexing
- UDP: connectionless transport protocols
- principles of reliable data transfer
- principles of congestion control
- TCP: header format, reliability features, congestion-control features.
- Network layer [16 hours]
- forwarding and routing for datagram and virtual-circuit services
- general router architecture: interfaces, switching fabric, queues
- IP: header formats (IPv4 and IPv6), addressing, extensions,
fragmentation, IP forwarding
- Routing algorithms and principles: link-state and distance vector
routing, hierarchical routing
- IP Routing: OSPF, RIP, BGP
- Cross-layer Topics [4 hours]
- basic elements of communication security: block ciphers, modes of
operation, public-key cryptography, RSA.