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
- design new applications and extensions to work effectively with
other Internet activities;
- avoid decisions that harm the value of the Internet to people
around the world;
- be prepared to adjust to future changes in the Internet as it
grows and adapts to new activities.
Prerequisites
- Computer network and security technology, covering chapters 1-8 of
Tanenbaum, Computer Networks.
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.
- Introduction
- Layers of design vs. layers of implementation [P&D
1.3]
- Strategic design choices
- Evaluating choices from principles, consequences
- RFC791: INTERNET PROTOCOL
- IP forwarding [P&D 4.1-4.3; RFC 791]
- Review forwarding algorithm
- Design decisions in forwarding algorithm
- No state in router, message
- Address structure (2-level, subnet, CIDR)
- CIDR routing tables
- The end-to-end principle [SR&C; RS&C]
- Reliability through acknowledgment
- Analyze intermediate acknowledgment
- Example: Interplanetery IP (IPN)
- Active networking
- Principles
- Reliability, correctness, etc. at low level only affect
performance at high level.
- Design infrastructure bottom-up.
- Most important applications: not invented yet.
- Congestion control [P&D 6.1-6.3; 6.6 (especially the "Open
Issue")]
- Effect of congestion on performance ("congestion
collapse")
- Analyzing cause of dropped packets
- Congestion control: end-to-end, or in routers?
- Adaptive Hop-By-Hop
Aggregation (Greenwald)
- 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)]
- Reservations reshape the statistical distribution of
success/failure
- {Super sub}linear value functions
- How will reservation question be decided?
- Names and handles [P&D 9.1; RFC 1034, 1035, 2672; O'D; B1]
- Review DNS, including record types (in preparation)
[B2]
- Levels of identifiers: routes, addresses, handles,
names
- Pseudohistory, need for each level
- Principles in design of identifier structure
- Public Key Infrastructure [P&D 8.1-8.2,
8.5]
- Review DES, RSA, MD5, SHA (functionality, not math)
- Chain/Web of trust
- Alternative flat PKI
- Identity relation vs. identities as objects
- Identities from authority (top-down) vs. identities from
experience (bottom-up)
- Public-key protocol (PKP), analogous to IP
- Services on top of PKP
- Leveraging flat PKI through other systems of identifiers
- Public-keys in domain names (handles)
- Survey DNSSEC [RFC 2535]
- Implementing PKI in DNSSEC
- Securing the network with PKI (in preparation)
- Performance limitations for router-verified
signature
- Approximate authentication
|
|
|
Last modified: Mon Dec 5 19:14:50 CST 2005