------------------------------------------------------------------------ Most important topics in this course: - reliable communication over unreliable channels - congestion control - routing - error detection and correction - medium access control (MAC) - switched LAN - TCP/IP/Ethernet - addressing (IP) - throughput/delay estimation Things that will be tested in the final: - routing algorithms (shortest path, link state, distance vector) - TCP congestion control - project no. 2 (reliable communication protocols, CRC checksum) - throughput/delay estimation - explain how things work in the Internet (the question in the first lecture). Problem types: 1) True/False/Multiple choices 2) Definition 3) Explanation 4) Calculation 5) Coding (project No. 2) =========================================================================== All lecture notes Sections in the books. ------------------------------------------------------------------------ Chapter 1: Introduction (Chapter 1 Tanenbaum, Chapter 1 Kurose) Concepts: packet switching/circuit switching point-to-point/broadcast networks multiplexing LAM/WAN Computer Networks Components in Computer Networks delay/throughput Layer architecture (Why?) protocol/service interface connection-oriented service/connectionless service reliable and unreliable service elements in a protocol network architecture Layers in the OSI/ISO reference model Layers in the TCP/IP reference model Basic facts about the layers Calculation: computer effective delay and throughput ------------------------------------------------------------------------ Chapter 2: Application layer (Chapter 2 Kurose) Concepts: TCP API TCP/UDP service model sequence of system calls in TCP clients/servers application architectures: client-server peer-to-peer, hybrid Email: SMTP, Pop, Message format HTTP: persistent/non-persistent HTTP examples of different types of messages cookies DNS: functionality of DNS How DNS system is organized root name servers/top-level domain servers/authoritative DNS servers/local name servers How to access DNS? recursive query/iterated query Coding: Project No. 1 ------------------------------------------------------------------------ Chapter 3: Physical Layer (Chapter 2, Tanenbaum, 2.1.2) Concepts: Bandwidth capacity bit rate/baud rate modulation: amplitude modulation, frequency modulation, phase modulation PCM code, differential pulse code, delta modulation, predictive encoding simplex/duplex/half duplex communication multiplexing: TDM, FDM, code division multiplexing components in a physical layer protocol Calculation: Nyquist's theorem and Shannon's theorem ------------------------------------------------------------------------- Chapter 4: Data link layer (Chapter 3, Tanenbaum, 3.1, 3.2, 3.3, 3.4, 3.6) Concepts: design issues in data link layer framing character count byte oriented framing with character stuffing bit oriented framing with bit stuffing physical level code violation flow control PAR, Go-back-N sliding/selective repeat sliding window Hamming distance relation between hamming distance with error correction and detection capability CRC code calculation: Error detection and correction capability for a given code CRC checksum calculation throughput/delay calculation with PAR and sliding window ------------------------------------------------------------------------ Chapter 5: Medium access control (Chapter 4, Tanenbaum, 4.1, 4.2, 4.3) Concepts: ALOHA, slotted ALOHA, CSAM, CSMA/CD bitmap/binary countdown adaptive tree walk Ethernet CSMA/CD + binary exponential backoff relation between minimum frame size and network size Issues with Fast Ethernet and Gigabit Ethernet Calculation: relation between minimum frame size and network size =========================================================================== Chapter 5: switched Ethernet (Chapter 5.5, 5.6, James F. Kurose) Internetworking at different layers repeaters/bridges/routers/application gateway transparent bridges/switches: self-learning forwarding algorithm spanning tree algorith (why?) Chapter 6: The network layer (Chapter 5, Tanenbaum, 5.1, 5.2, 5.3, 5.5, 5.6) network layer design issues service interface/routing/congestion control/internetworking virtual circuit networks/datagram networks longest prefix matching forwarding/routing IP, what does it do? What does it not do? fragmentation & reassembly IP addressing subnets tunneling IPv6 routing adaptive/non-adaptive routing static/dynamic routing flooding shortest path algorithm (dijkstra/bellman-ford) distance vector algorithm link state algorithm count to infinity problem congestion control techniques leaky bucket/token bucket traffic shaping/admission control/choke packet/load shedding RIP/OSPF/BGP Chapter 7: The transport layer (Chapter 3, James Kurose) Concepts: transport layer issues - multiplexing/demultiplexing - reliable data transfer (error control) - flow control - congestion control UDP functionality: - segment structure - how is multiplexing/demultiplexing done? - how is checksum done? TCP functionality: - segment structure - TCP reliable communication protocol - TCP timer management - TCP connection management - TCP flow control - TCP congestion control * How does TCP detect congestion? * TCP rate related to window size. * AIMD * slow start Calculation: compute effective throughput with TCP slow start/AIMD ------------------------------------------------------------------------