Computer Networks: 2017-2018
OverviewThis course examines the science underpinning computer communications, such as the basic architectural principles of computer networking and specifically how the Internet works today. Covered topics include data representation, how errors in transmission can be detected and dealt with, the way information is routed over a large network, how congestion can be avoided, aspects of network security, and socket programming.
At the end of the course the students should:
- Understand the architectural principles of computer networking and compare different approaches to organising networks.
- Understand good network design: simplicity, scalability, performance, and the end-to-end principle.
- Understand how the Internet works today.
- Judge the effectiveness of existing or similar network protocols.
- Be conversant with primitives of network application programming.
Network architecture: Packetization, Protocol layers and services, End-to-end principle, Internet structure
Link and access technologies: Multiple access protocols, Sliding window protocols, LANs (Ethernet), Error detection and correction
Network layer: IP packet switching, IP addressing and forwarding, Routing
Network services: Address assignment (DHCP), Address resolution (ARP), Error reporting and monitoring (ICMP), DNS
Traffic: Queuing models, packet dropping models, workloads
Switch architecture: Routers and switches
Transport layer: Ports, TCP (handshake, windowing, congestion control), UDP
Security: Elements of cryptography, Denial-of-service attacks and vulnerabilities at various layers (TCP spoofing, ARP poisoning, DNS cache poisoning), IPsec, DNSsec, SBGP, Firewalls, VPN, Securing TCP
The need for computer networks; layered models; Ethernet; IP; network routing and congestion control; network security.
- Peterson and Bruce S. Davie "Computer Networks: A systems approach (4th ed)", Morgan Kaufmann, 2007.
- S. Tanenbaum, Computer Networks (3rd ed), Prentice-Hall International, 1996.