Electrical Engineering
      and Computer Sciences

Electrical Engineering and Computer Sciences


UC Berkeley



EE 122. Introduction to Communication Networks

Current Schedule (Spring 2014)


Catalog Description: (4 units) This course is an introductory survey of the design and implementation of computer networks. We will focus on the concepts and fundamental design principles that have contributed to the global Internet's scalability and robustness and will survey the underlying technologies --- e.g., Ethernet, Switches, and Optical Links --- that have led to the Internet's phenomenal success. Topics include: congestion/flow/error control, routing, addressing, multicast, packet scheduling, switching, internetworking, network security, and networking programming interfaces. There will be both written and programming assignments in the class.

Prerequisites: CS61B, Math 53 or 54.

Course objectives: This course introduces the operating and design principles of the Internet and its associated technologies. The students are introduced to network programming and to simulation tools for networks in addition to basic modeling and performance evaluation techniques.

Topics covered:

  • Introduction ¿ Network Examples; Applications: Web, VoIP.
  • Architecture ¿ Protocols; Layering; End-to-end Argument.
  • Models ¿ Bits; Packets; Queues; Metrics: Rate, throughput, spectrum, delay, delay jitter, loss rate.
  • Physical Layer ¿ Fibers; Cable and Wires; Wireless; Capacity, coding; Examples: Ethernet, SONET, ADSL, WiFi.
  • Link Layer ¿ MAC: TDMA, Aloha, CSMA/CA, CSMA/CD; Examples: Hub-Ethernet, WiFi, WiMax.
  • Network Layer ¿ Routing: Link state, distance vector, path vector; Examples: OSPF, RIP, BGP; IP: Domains, CIDR.
  • Switch Design ¿ Architectures: Shared bus, switched bus, queuing structure; Examples: PC-router, GSM router.
  • Transport ¿ Service Models of UDP and TCP; Congestion control: Goals, AIMD; TCP: Phases, state machine, slow start, congestion avoidance, fast recovery, fast retransmit; Variations: TCP-SAC, Vegas and Fast.
  • Applications ¿ WWW: HTTP; DNS: Architecture, queries; VoIP: RTP, SIP.
  • Network programming ¿ Socket; Examples; Discussion of project
  • Scheduling ¿ Controlling performance; Leaky buckets and WFQ.
  • Distributed Algorithms ¿ Correctness, Impossibility Results; Convergence of Bellman-Ford.
  • Sensor Networks ¿ Examples; Issues: Routing, energy, queries, localization.
  • Security ¿ Objectives: Authentication, privacy, anonymity; Mechanisms: Encryption (Public or Private Key), hashing; Systems: Digital signature, key exchange, kerberos, PGP.
  • P2P and Overlay ¿ BitTorrent; Chord; Overlay multicast and routing.

General Catalog

Undergraduate Student Learning Goals