[CS Dept., U Chicago]


Michael J. O'Donnell (Mike)

The Teacher

Courses

Strategic Choices in Designing the Internet

Course Syllabus


Short description

In this course we discuss the design choices that allowed the Internet to grow from a small experimental service for a few research departments to an essential worldwide service for business and society. By understanding the principles determining these choices, such as the "end-to-end principle," we may

Prerequisites

To be ready for this course, you should understand how basic internetworking works, including IP, UDP, TCP, and DNS. It is most important to understand the network and application layers. You will not need details of the lower layers, but you should remember the basic capabilities of Ethernet, token rings, and ATM, and how they are used to support IP forwarding and routing. I will review some topics, including basic IP forwarding and DNS. If you need to review other topics, please suggest them by email to me (michael_odonnell@acm.org) and Ms. Zhao (bbzhao@ustc.edu.cn).

Use of texts

Our course discussion uses ideas from chapters 4-6, 8, and 9.1 in Peterson and Davie, Computer Networks (P&D), and several IETF RFCs and other short articles. I suggest specific readings for course topics in the outline below, enclosed in square brackets [...]. The codes refer to the Readings page. Most readings are available online.

Some of the RFC readings cover the same topics as the textbook readings. It is important for network professionals to be able to find information in the primary technical documents, which are mostly RFCs. You may use the textbook to help identify and understand the crucial points in the RFCs.

Outline

This course studies many of the same networking techniques in your previous networking course, but we focus on choices made in designing those techniques. We try to illuminate the reasons for those choices, and we critique their consequences. Toward the end, we study some possible future steps to develop the Internet further, and consider the choices that must be made in future design. We study mostly the network and application layers, and go into lower layers only to notice important interactions with the higher layers.

I will try to discuss topics 1-5 (through congestion control) on 10-11 July. I will decide to skip topics if we don't have enough time.

  1. Introduction

    1. Layers of design vs. layers of implementation [P&D 1.3]

    2. Strategic design choices

    3. Evaluating choices from principles, consequences

  2. RFC791: INTERNET PROTOCOL

  3. IP forwarding [P&D 4.1-4.3; RFC 791]

    1. Review forwarding algorithm

    2. Design decisions in forwarding algorithm

      1. No state in router, message

      2. Address structure (2-level, subnet, CIDR)

    3. CIDR routing tables

  4. The end-to-end principle [SR&C; RS&C]

    1. Reliability through acknowledgment

      1. Analyze intermediate acknowledgment

      2. Example: Interplanetery IP (IPN)

    2. Active networking

    3. Principles

      1. Reliability, correctness, etc. at low level only affect performance at high level.

      2. Design infrastructure bottom-up.

      3. Most important applications: not invented yet.

  5. Congestion control [P&D 6.1-6.3; 6.6 (especially the "Open Issue")]

    1. Effect of congestion on performance ("congestion collapse")

    2. Analyzing cause of dropped packets

    3. Congestion control: end-to-end, or in routers?

    4. Adaptive Hop-By-Hop Aggregation (Greenwald)

  6. Quality of Service, guarantees, reservations [P&D 6.5-6.6; B&S sections 1-2 (especially the significance of convex vs. concave value functions)]

    1. Reservations reshape the statistical distribution of success/failure

    2. {Super sub}linear value functions

    3. How will reservation question be decided?

  7. Names and handles [P&D 9.1; RFC 1034, 1035, 2672; O'D; B1]

    1. Review DNS, including record types (in preparation) [B2]

    2. Levels of identifiers: routes, addresses, handles, names

    3. Pseudohistory, need for each level

    4. Principles in design of identifier structure

  8. Public Key Infrastructure [P&D 8.1-8.2, 8.5]

    1. Review DES, RSA, MD5, SHA (functionality, not math)

    2. Chain/Web of trust

    3. Alternative flat PKI

      1. Identity relation vs. identities as objects

      2. Identities from authority (top-down) vs. identities from experience (bottom-up)

      3. Public-key protocol (PKP), analogous to IP

      4. Services on top of PKP

    4. Leveraging flat PKI through other systems of identifiers

      1. Public-keys in domain names (handles)

      2. Survey DNSSEC [RFC 2535]

      3. Implementing PKI in DNSSEC

    5. Securing the network with PKI (in preparation)

      1. Performance limitations for router-verified signature

      2. Approximate authentication


Valid HTML 4.0!


Last modified: Mon Dec 5 19:14:50 CST 2005