IF YOU'RE LOOKING FOR THE FALL 2006 SITE, TAUGHT BY RAHUL SAMI, GO HERE

 

SI540: Understanding Networked Computing

Fall 2005 Semester Syllabus

Tuesdays and Thursdays, 10:30-Noon, 409 West Hall

Please note: This syllabus is regularly updated. The subject material and assignment due dates are correct, but the readings may change over the course of the semester. Please check the course web site for the most current list.

Last modified 9/4/05– PR

Table of Contents

Contact Info
Course objectives
Coursework
Policy
Grades
Schedule

Related Documents

Self-assessment: preparation and pre-requisites
Placing out if you know the material already

Contact Information

Professor: Paul Resnick

Office hours: Mondays 4-5 pm, 3246C SI North. Tuesdays 12-1, lunch outings near West hall. Sign up on the Wiki at http://icd.si.umich.edu/twiki/bin/view/Main/PROfficeHours

If you’d like to schedule a time, send email: presnick@umich.edu

 

GSI: Nat Bulkley

Section: Friday 9-10 and 10:30-11:30, 412 West Hall

Office hours: Thursday noon-1 pm, Espresso Royale (E. University & S.

University) and by appointment
email: natb@umich.edu

 

Other Information

This syllabus: http://www.si.umich.edu/Classes/540/
CTools (for assignments): https://ctools.umich.edu/portal
Twiki (for class discussion): http://icd.si.umich.edu/twiki/bin/view/TWiki/TWikiRegistration (register using the WikiName you wrote on the class sheet, or email your WikiName to me after you register.)  After you've registered: http://www.socialcomputingresearch.net/twiki/bin/viewauth/SI540/WebHome

 

Course Objectives       

The networking of computers has transformed them from devices for computation and individual productivity into devices for communication and coordination. We are beginning to see profound effects of this transformation in organizations and in the public life of our society, most visibly in the amazing growth of the Internet. An understanding of networked computing will equip you to participate in and help guide society's transformation.

After mastering the material in SI540, you should be able to:

·        quickly understand the opportunities created by networked application software you haven't seen before and explain them to people who have less technical background than you;

·        participate with engineers in design discussions about new networked application software or variants of existing ones;

·        read the information technology trade press and recognize application opportunities and strategic business implications;

·        contribute a technologically informed voice to information policy discussions.

 

Themes

Although the course surveys a wide range of content, there are several recurring themes in networked, distributed computing. We will illustrate these themes with examples from the Internet; where applicable, eBay will serve as our running example throughout the semester. The following goals have motivated many of the innovations in computing over the last 20 years and will continue to motivate future innovations:

·        Modularity/independence. It is difficult for people to keep track of systems involving lots of parts, and especially how the parts interact with each other. Hence, one goal of system design is to minimize dependencies between parts, and to document clearly those dependencies that exist.

·        Reuse. Because it is expensive to design, implement and especially maintain software systems, designers strive to reuse software rather than creating each new application from scratch.

·        Compatibility. People use different software and maintain different collections of data. Often, they'd like their software and data to work together, despite any differences.

·        Scalability. A service should be able to serve an increasing population of users or tasks merely by adding more resources (an extra CPU, more disk space, or another employee). Ideally, the service should serve twice the population without using twice the resources, and certainly not using more than twice the resources.

·        Reliability. A service should rarely malfunction and when it does, it should do so in a graceful way.

·        Security. In a distributed environment, some of the actors may not behave as you'd like them to. Authentication and access restrictions can limit the availability of services to only designated people or systems, and restricted execution environments can limit the damage that untrusted software can inflict.

In order to achieve these goals, a few fundamental techniques have been developed.

·        Abstraction. Abstraction hides details, focusing attention on the aspects of a system that are most important for a particular purpose.

·        Representation. Data or information in one format can be transformed into another format that is more easily manipulated, stored, or transmitted, or is less easily understood or modified by adversaries.

·        Standards. A standard specifies some feature that will be present in all implementations that conform to the standard. In networked computing, typically a standard specifies how two things work together, allowing independence among the implementations of things but preserving compatibility between them.

·        Indirection and local namespaces. When referring to things, indirection can isolate the referrer from irrelevant and changeable features of those things, such as their current location. Local namespaces allow for independent reuse of convenient names for things, without creating a danger of confusion about which things are being referred to.

·        Caching. It is useful to keep copies of frequently used data in a place where it can be accessed quickly.

·        Notification. When important events occur at unpredictable times, it useful to notify relevant entities about these events rather than expecting the entities to continually check for the occurrence of such events.

·        Concurrency control. Consider the case of two people co-authoring a paper. If on Tuesday, they each edit their own copy, on Wednesday they may have a problem merging their changes. This is an instance of a much more general problem that plagues any system that distributes work among multiple components, including distributed databases, file systems (ever wish you hadn't left a particular document at home?), and real-time cooperative work applications. Some of the techniques for dealing with concurrency include locking, timestamps, and merge algorithms.

·        Incentive engineering. Economic and legal mechanisms can help individual interests to align with overall system goals.

·        Load balancing. Assign work so that no one component is overloaded while others are idle.

·        Access control. Allow some people but not others to do certain operations, based on some method of authenticating the entity that requests the operation.

Coursework

Reading

There is a required course pack, which is available at Dollar Bill (665-9200) and costs approximately $28.  It only contains readings that are not available online.

Optional textbook (recommended): David Messerschmitt, Understanding Networked Applications: A First Course. A copy of this text is available at the reserve desk in the undergraduate library (checkout desk on first floor, not room 2002), call number TK5105.5 .M461 2000.

Other readings will be handed out in class or available online. Please check the online syllabus each week.  You will notice that there are many optional readings.  These readings often address the concepts used in the problem sets in greater detail.

If you want to know more about a particular subject, HowStuffWorks.com (http://www.howstuffworks.com) is a reasonably good online reference. Bear in mind, however, that this is a for-profit content provider. References to or recommendation for specific brands or technologies may be advertising, and should viewed skeptically.  PC Lube and Tune also offers a number of articles that you may find useful (http://pclt.cis.yale.edu/pclt/).  In past years, students have also used Wikipedia.com and WhatIs.com, though these sites tend to offer less detail and are sometimes inaccurate.

You are also encouraged to scan the technology press (e.g., HotWired, InformationWeek, Network Computing, MIT’s Technology Review) for stories related to the course.

Discussion section

Attending section is optional, but strongly encouraged. Discussion section provides an informal, highly interactive environment for exploring the topics covered during lecture and on the homework. Some weeks, the instructor will have material prepared, other weeks he will respond to your questions and interests. If you choose to attend, please be prepared to contribute to the discussion.

Problem Sets

Most weeks, homework will be assigned. It may involve one or more of the following activities:

·        Answer questions posed as exercises (the most common activity).

·        Use an application to get a feel for it.

·        Configure an application or a server.

·        Write or modify very simple computer programs.

 

How the problem sets are graded

The main purpose of the homework is to serve as a learning tool, not an assessment tool. To that end, we will provide you with solution sets and an opportunity to fix your own errors before we comment on your work. In order to provide some motivation to keep up with the work throughout the semester, we will grade the homework. However, the grading system is designed to reward effort and learning rather than performance – we fully expect that most students will score 100% of the available points for homework assignments.

Each assignment is worth a maximum of 2 points.  You get 1 point for answering every question on your own and submitting these answers via CourseTools by the due date.  You will receive a 0 on the homework if you fail to do either of these.  You get the second point for turning in a printed and revised copy of your homework in class the following week.  In the revision, you must identify all your errors and demonstrate that you have exerted reasonable effort to understand and correct them to get the additional point.

How to get full credit for the problem sets

You are to submit each homework assignment via CourseTools by the date listed on the syllabus. We will post the solution set to the class web site the following day. You then have approximately one week to review and comment on your initial work, identifying, explaining, and attempting to correct all errors. There may be more than one correct answer to some questions, so it is perfectly acceptable to write a comment on your original work arguing why it was correct, even though it is different from the solution set. When correcting your assignment, do not just copy answers from the solution set; instead, try to understand how you can correct the answer you gave.  To get credit for the revision, you should do the following:

1.      Leave your original answer.  Indicate errors by crossing out or circling the mistake.

2.      Describe the problem with the original answer

3.      Provide your best attempt at correcting the answer, and indicate how this resolves the problem identified.  If you can’t figure out how to fix the problem, explain where you are stuck.

Submit a printed copy of the original assignment with your additional comments in class the following week. One of the instructors will read and write comments on this printed copy before returning it to you.

There will be 13 assignments, and we will drop the two lowest scores. Thus, even if you get 0 on a homework assignment (which may happen early in the semester, as you are figuring out what is expected of you), you can still score 100% on the homework portion of the course grade.

Weekly comments

Each week you are also required to share a question or comment about the course material with the class.  Your contributions can take many different forms.  For example, you may ask questions about the lecture, the readings, or the homework; you may expand on each other’s comments; you may answer other student’s questions; you may suggest other resources that you’ve found useful (include a detailed and accurate summary, not just a link); you may share an example from the technology press or your own experience that you consider to be relevant to course material covered that week; and so on.  Your submissions will be used in discussion in the weekly sections.  The submission should be posted to the Twiki site by 7PM Thursday. 

Exams

There will be an open-book, take-home midterm exam. It will be distributed on Nov. 1 and due at the start of class on Nov. 8.

There will be an open-book, in-class final exam.  The exam will be on December 20 from 3:00-5:00 p.m.  Check the syllabus close to the date for the location.

Policies

Study Groups, Collaboration, and Plagiarism

There are no group projects in this class, though some exercises will require you to work with a partner. You are strongly encouraged to form study groups. We can't emphasize this enough. It's more fun and you'll learn more. If you'd like to be in a study group, but aren't sure how to get one started, please contact one of the instructors and we'll help. Please do this early in the semester. For homework, you may (and are encouraged to) collaborate as much as you want.

You must, however, write your own answers. All cases of plagiarism (unattributed quotation or even paraphrasing) of anyone else’s work, whether from someone else’s answers to the exercises or from published materials or materials on the Internet, will be officially reported and dealt with according to Rackham policies.  For additional information about plagiarism, see the “Academic and Professional Integrity Policy Statement” in the SI Master’s Student Handbook (http://www.si.umich.edu/academics/masters-handbook.pdf) and Appendix B of the Rackham Graduate Student Handbook (http://www.rackham.umich.edu/StudentInfo/Publications/GSH/html/APPB.html). If  the expectations of this university are not familiar to you, please be sure to read these guidelines and talk to the instructors if you’re still not sure. We don’t expend a lot of effort policing this, but the penalties can be severe when we do notice violations.

Students with special needs should inform us early in the semester so we can make accomodations in a timely manner.

There will be no collaboration during the exams.

Computer lab access

Some assignments require that you have access to SI’s computer resources, including the DIAD. If you’re not an SI student, you need to fill out paperwork to get a computing account.  Take it to SI Computing on the 4th floor of West Hall.

Accommodations

Please contact me if you require special accommodations due to learning disabilities, religious practices, physical requirements, medical needs, or any other reason.

Grades

Homework exercises (13 at 2 points each; count your best 10)   20%

Weekly comments posted to the wiki 5%

Midterm   30%

Final   45%

We expect B+ to be the median grade, with just under half the class getting A and A-, and just over half getting B+ or lower. Occasionally, a class as a whole will perform exceptionally well or exceptionally poorly over the course of a semester, in which case the overall distribution of grades might shift up or down.

Schedule (return to top of syllabus)

Note: Readings in the course pack are not linked. They are also followed by **.

#

Date

Topic

Read before class

Assignment Due

1

9/6

 

 

Introduction;
Course Logistics; eBay (semester-long case study);
Key Concepts

"The Brawn Behind EBay's Always-On Auction," Information Week, Dec. 10, 2001, http://www.informationweek.com/story/IWK20011207S0003

 

EBay sold on grid http://www.eweek.com/print_article/0,1761,a=134210,00.asp

 

Optional readings:

Messerschmitt textbook Chapter 1, 2.1, 2.2, 3.1

And more on eBay's past stability problems:

http://www.internetweek.com/newslead01/lead011101.htm
http://www.internetwk.com/lead/lead061799.htm
http://news.com.com/2100-1017-879240.html

 

2

9/8

Brief History of Computing; Introduction to LMC

Stuart E. Madnick, "Understanding the Computer (Little Man Computer)"**. (pages 1-12 plus top half of page 13 only)

 

Optional readings:

Interactive "Little Man Computer" simulator, http://www.herts.ac.uk/ltdu/projects/mm5/ 

Instruction set for a real CPU – Intel Architecture Software Developer's Manual, Volume 2., http://developer.intel.com/design/pentium/manuals/24319101.pdf

If you want to find other example, try a web search using the CPU name (e.g., motorola 68000, powerpc, etc) and "instruction set" or "opcodes".

Campbell-Kelly, M., & Aspray, W. (1996).  Computer: a history of the information machine.  ( ed.).  New York, NY:  BasicBooks.

 

 

9/9

Section

Those attending this section will work cooperatively to write an LMC program to compute the minimum of a series of inputs.

 

 

 

Note

The schedule for the next four sessions is only approximate. Some topics may take more than one class, and others less.

 

3

9/13

Representation

 

(optional supplemental slides, not covered in class this year:

Representation - supplement

Compression

Paul Resnick's notes on Representation

Documentation on eBay's automatic currency conversion, http://pages.ebay.com/help/buy/intl-buy-payment.html

 

 

Optional readings:

Erik Cheever, Professor Of Engineering, Swarthmore College, on binary mathematics,
http://www.swarthmore.edu/NatSci/echeeve1/Ref/BinaryMath/NumSys.html#Intro

Karen Markey’s notes on representing colors digitally

About.com comparison of bitmapped and vector graphics,

http://graphicdesign.about.com/library/weekly/aa042398.htm

Mustek comparison of bitmap and vector graphics,

http://www.mustek.com/class/bit_vec.html

InfoWeblinks vector-bitmap conversion,

http://www.infoweblinks.com/content/vector-bitmapconversion.htm

A tutorial on character code issues (Unicode and UTF-8)
http://www.cs.tut.fi/~jkorpela/chars.html

ASCII table provided by Michael Pusateri, Penn State Electrical Engineering, http://labs.ee.psu.edu/courses/ee324/Reference/ascii.pdf

 

HowStuffWorks.com article on compression, http://www.howstuffworks.com/file-compression.htm/printable

Warren Hagey's article on Huffman codes

Messerschmitt textbook 20.3, 20.4, 20.5

HW1 to CourseTools:
LMC

(Use the CourseTools - Assignments section to download the assignment and to post your answers)

 

4

9/15

Computer Architecture: Instruction sets, storage, input/output, memory hierarchy

Paul Resnick's notes on Computer Architecture

HowStuffWorks.com article on Computer Memory, http://computer.howstuffworks.com/computer-memory.htm/printable

 HowStuffWorks.com article on Virtual Memory, http://www.howstuffworks.com/virtual-memory.htm/printable

Optional readings:

Marshal Brain, "How Microprocessors Work", HowStuffWorks, http://computer.howstuffworks.com/microprocessor.htm/printable

CNET Labs' guide to buying RAM: Types of RAM, http://computers.cnet.com/hardware/0-1103-8-20088841-3.html?tag=st.c o.1103-8-20088841-1.txt.1103-8-20088841-3

ARS Technica, Skinny on RAID (intro to parity bits), http://www.arstechnica.com/paedia/r/raid-3.html

Howard Gilbert, “The I/O Bus,” on PC Lube and Tune, http://pclt.cis.yale.edu/pclt/PCHW/BUS.HTM

An index of links to information on bus standards is available at http://www.techfest.com/hardware/bus.htm

Consumer Search on buying a computer equipment, http://www.consumersearch.com/www/computers/

 

5

9/20

Operating Systems: Resource management and useful interfaces

HowStuffWorks.com article on Operating Systems (save section on Application Interfaces for next time), http://www.howstuffworks.com/operating-system.htm/printable

Abraham Silberschatz's Operating System Concepts, 1994, chapter 1.**

Solaris spec sheet (an Operating System that eBay's has used): http://wwws.sun.com/software/solaris/ds/ds-sol9oe/sol9oe.pdf

 

Optional readings:

Messerschmitt textbook 16

Messerschmitt chapter 16 lecture slides on middleware http://www.eecs.berkeley.edu/%7Emesser/netappc/Slides/16b.pdf

Why do PalmOS applications work with different CPUs?  See, “More details on the Palm ready program released,” http://www.palminfocenter.com/print.asp?ID=2151 and “Motorola MX1 First Certified CPU for Palm OS 5,” http://www.palminfocenter.com/print.asp?ID=3737

District Court’s finding of fact in "UNITED STATES OF AMERICA v. MICROSOFT CORPORATION, http://www.usdoj.gov/atr/cases/f3800/msjudgex.htm

HW2 to CourseTools:
Representation

 

Revised HW1 in class

(Use the CourseTools - Assignments to download the solution set; submit your revisions in class)
 

6

9/22

Programming Languages: Programs, special purpose languages, local v. global variables, and APIs

Paul Resnick's notes on Programming Languages

Librenix article on "Programming Language Tradeoffs: 3GL vs 4GL", http://librenix.com/?inode=1023

Example of a simple Special Purpose Language (used for controlling web crawling bots), http://www.robotstxt.org/wc/exclusion-admin.html

HowStuffWorks.com section on Application Interfaces in the article on Operating Systems, http://www.howstuffworks.com/operating-system.htm/printable

Sample programs: Jscript loop, and Jscript loop with subroutines

What is the eBay API?, http://developer.ebay.com/DevProgram/developer/api.asp

Overview of eBay's developer program and fee-based API access, http://developer.ebay.com/join/benefits/

 

Optional readings:

Chart of eBay's API calls, http://developer.ebay.com/help/docs

KlipFolio Auction Monitor Clip retrieves auction data from eBay and presents it using the Klipfolio user interface, http://www.klipfarm.com/farm.php?page=info&klip=910

Sakai is a collaboratory system being developed at four universities including Michigan that is based on a collection of APIs, http://www.sakaiproject.org/

 

Google also makes a set of APIs available to developers, http://www.google.com/apis/

Cox, John, “Make way for the 'browserless Web' (discusses APIs), Network World, 01/29/01, http://www.nwfusion.com/news/2001/0129browserless.html

Steve Champeon, "JavaScript: How Did We Get Here?," http://www.oreillynet.com/pub/a/javascript/2001/04/06/js_history.html

 

7

9/27

Programming Languages: Interpreters, compilers, revision control, and test suites

Wikipedia article on program interpreters, http://en.wikipedia.org/wiki/Interpreter_%28computing%29

Sample programs: Hello World, and Scribble

Revision control with CVS, sections 1.1 and 1.2,

http://ximbiot.com/cvs/manual/cvs-1.11.20/cvs_1.html#SEC1

 

Optional readings:

JClassLib Java Byte Code Viewer,

http://www.ej-technologies.com/products/jclasslib/overview.html

HW3 to CourseTools:
Memory Hierarchy, Operating Systems

 

Revised HW2 in class

8

9/29

Architecture Concepts: Hierarchy, abstraction, encapsulation, and the open-closed principle

Intro to chapters 5 and 6 of David A. Watt's Programming language concepts and paradigms, 1990.**

Messerschmitt textbook 4.2, 4.3, 4.4, 5, 6.**

 

9

10/4

Architecture Concepts: Peer-to-peer, client-server, ASPs, layering and a layered view of information

HowStuffWorks.com article on (peer-to-peer) file sharing (up to "The Pressplay alternative"), http://www.howstuffworks.com/file-sharing.htm/printable

Industry news on Peer-to-peer networking, http://www.wired.com/news/technology/0,1282,38413,00.html

HowStuffWorks.com article on Application Service Providers, http://www.howstuffworks.com/asp.htm/printable

FAQ and informal design schematic for a wireless eBay client, http://www.workspot.com/ebay/techsupp.html
http://www.workspot.com/ebay/linux/

 

Optional readings:

BitTorrent web site, http://bitconjurer.org/BitTorrent/

"eBay: One outage too many," Network World Fusion, April 15, 2002, http://www.nwfusion.com/newsletters/asp/2002/01311268.html

"eBay Selects Intel Online Services For Web Hosting Facilities," Intel Press Release, April 2, 2002. (Note that Intel subsequently announced that it will be shutting down this business unit.), http://www.intel.com/pressroom/archive/releases/20020402corp.htm

HW4 to CourseTools:
Special Purpose Languages, Local v. Global Variables, APIs

 

Revised HW3 in class

10

10/6

Communication Links: Message latency, propagation delay, bit-rate, transmission time

See also:

Representation - supplement

Messerschmitt textbook 20 (sections on communication links).**

Animations, message latency, bit-rate comparison, propagation delay comparison, propagation delay comparison version 2

"How to snipe on eBay," David Coursey in ZDNet News, July 25, 2000, http://zdnet.com.com/2100-11-522481.html

 

Optional reading:

Alvin E. Roth and Axel Ockenfels, "Last-minute bidding and the rules for ending second-price auctions: evidence from eBay and Amazon auctions on the Internet," American Economic Review, Sept. 2002 v92, n4, 1093-1103, http://www.cs.princeton.edu/courses/archive/spr04/cos444/papers/ockenfels_roth_2002.pdf

 

11

10/11

Communication Links: Spectrum allocation, diagnosing and remedying bottlenecks (caching, streaming media, etc.), sharing a channel, high-speed access at home

David Messerschmitt's Web supplement on shared communication links,
http://www.eecs.berkeley.edu/%7Emesser/netappc/Supplements/20-maccess.pdf

HowStuffWorks.com article on DSL, http://computer.howstuffworks.com/dsl.htm/printable

HowStuffWorks.com article on Cable modems, http://computer.howstuffworks.com/cable-modem.htm/printable

Rebecca Perry, “Wireless Fidelity, How Wi-Fi works” and the associated animation, Technology Review, September 2003. http://www.technologyreview.com/articles/03/09/visualize0903.asp

 

Animations, bit-rate versus propagation delay

GPS tutorial http://electronics.howstuffworks.com/gps.htm/printable

Optional reading:

Scientific American articles on high-speed connections to the home (much more technical detail):

High-Speed Data Races Home; October 1999; by Clark

The Internet via Cable; October 1999; by Medin, Rolls

The Internet via Cable; October 1999; by Medin, Rolls

The Broadest Broadband; October 1999; by Shumate, Jr.

Satellites: The Strategic High Ground; October 1999

LMDS: Broadband Wireless Access; October 1999

The Light at the End of the Pipe; October 1999; by Bane, Bradley

To view these files, go to Scientific American archives, https://www.sciamarchive.com/If you're accessing from off campus, you need to authenticate using MIRLYNweb first.  Then use the Browse option to find the October 1999 issue.

HW5 to CourseTools:
Compiling, Interpreters v. Compilers; Revision Control, Open-Closed Principle, Encapsulation, Abstraction

 

Revised HW4 in class

12

10/13

Network Communications Protocols: IP (packets, addressing, routing), NAP/ISP interconnections, and spanning layers

Jeff MacKie-Mason's What is the Structure of the Internet?,
http://www.sims.berkeley.edu/resources/infoecon/FAQs/node10.html

Tanenbaum, Andrew. Computer Networks, Third Edition, Chapter 1.**

HowStuffWorks.com article on the Internet infrastructure, up to the section called "What's in a name?", http://computer.howstuffworks.com/internet-infrastructure.htm/printable

Davidson, Paul, "Calling via Internet has suddenly arrived," USAToday, 7/6/2003,
http://www.usatoday.com/tech/news/2003-07-06-netphone_x.htm#

MPEG Video, Warriors of the Net (warning: 150MB file)

 

Optional reading:

Messerschmitt textbook 12.2, 18, 19

HowStuffWorks.com article on IP telephony, http://computer.howstuffworks.com/ip-telephony.htm/printable

Clark, David, "Interoperation, Open Interfaces, and Protocol Architecture," draft white paper at NII 2000 Forum, Washington, DC, May 23, 1995 (on spanning layers),
http://www.csd.uch.gr/%7Ehy490-05/lectures/Clark_interoperation.htm

"Deep Space Web?," Wired News Report, 7/22/1998, http://www.wired.com/news/print/0,1294,13909,00.html

IPv6 information page, http://www.ipv6.org

Cisco's more general and more technical intro to Internetworking , http://www.cisco.com/univercd/cc/td/doc/cisintwk/ito_doc/introint.htm

Cisco's guide to bridges and switches, http://www.cisco.com/univercd/cc/td/doc/cisintwk/ito_doc/bridging.htm

 

 

10/18

 

No class today – Fall Break

 

13

10/20

Network Communications Protocols: TCP (fragmentation and reassembly, delivery guarantee, conversational context, process)

Shweta Sinha, "A TCP tutorial",
http://www.ssfnet.org/Exchange/tcp/tcpTutorialNotes.html

Jason Yanowitz, “Under the hood of the Internet: An overview of the TCP/IP Protocol Suite,”  ACM Crossroads, 1(1), September 1994, http://www.acm.org/crossroads/xrds1-1/tcpjmy.html

J.H. Saltzer, D.P. Reed and D.D. Clark, "End-to-end arguments in system design",
http://web.mit.edu/Saltzer/www/publications/endtoend/endtoend.pdf

Also available here:

http://www.reed.com/Papers/EndtoEnd.html

 

Optional reading:

 

Internet Assigned Numbers Authority (IANA) Port assignments directory, http://www.iana.org/assignments/port-numbers

TCP Viewer, a TCP socket viewer for Windows, http://www.sysinternals.com/ntw2k/source/tcpview.shtml

“Packet tracking promises ultra-fast Internet,” New Scientist, June 5, 2003, http://www.newscientist.com/news/print.jsp?id=ns99993799

FAST protocols for ultrascale networks, California Institute of Technology NETLAB, http://netlab.caltech.edu/FAST/

HowStuffWorks.com article on an Interplanetary Internet, http://computer.howstuffworks.com/interplanetary-internet.htm/printable

HowStuffWorks.com article on NAT, http://computer.howstuffworks.com/nat.htm/printable

Internet Assigned Numbers Authority (IANA) IP address service, http://www.iana.org/ipaddress/ip-addresses.htm

David Clark and Marjory Blumenthal, Version for TPRC submission, August 10, 2000, "Rethinking the design of the Internet: The end to end arguments vs. the brave new world"

Jeff MacKie-Mason and Hal Varian, "Pricing Congestible Network Resources," http://www-personal.umich.edu/~jmm/papers/Pricing_Congestible_Resources.pdf

Yakov Rekhter, Paul Resnick, and Steve Bellovin, "Financial Incentives for Route Aggregation and Efficient Address Utilization in the Internet," http://www.si.umich.edu/%7Epresnick/papers/piara/

 HW6 to CourseTools:
ASPs, Layered view of information, Identifying and Remedying Communication Bottlenecks, Sharing Communication Channels


Revised HW5 in class

14

10/25

Higher Layer Internet Protocols: HTTP, SMTP/IMAP, Cookies

 

Midterm Exam Preparation

 

Optional

Supplemental slides on routing contracts

HTTP specification (sections 1.4, 3.2, 4, 5.1, 6.1, 8.1.1, 9.3-9.7, 13.2, 14.21, 14.23, 14.36, 14.43).  The complete RFC is available here, http://www.ietf.org/rfc/rfc2616.txt.

HowStuffWorks.com article on DNS, http://www.howstuffworks.com/dns.htm/printable

HowStuffWorks article on email, http://computer.howstuffworks.com/email.htm/printable

Comparing Two Approaches to Remote Mailbox Access: IMAP vs. POP, http://www.imap.org/papers/imap.vs.pop.brief.html

Bontrager, William, "How to Use Cookies," MasterCGI, http://www.willmaster.com/support/howtoinfo/cookies.shtml

Documentation on eBay's use of cookies,

http://pages.ebay.com/help/newtoebay/help-with-cookies.html

 

Optional readings:

"Understanding HTTP” by PerlfectSolutions, http://www.perlfect.com/articles/http.shtml

Internet Assigned Numbers Authority (IANA) Domain Name Service information, http://www.iana.org/domain-names.htm

IANA TLD Code index, http://www.iana.org/cctld/cctld-whois.htm

Internet Corporation for Assigned Names and Numbers, http://www.icann.org/

Optional lab exercises

eBay documentation on the sign-in process, http://pages.ebay.com/help/welcome/signin.html

About.com, UDP vs. TCP: Speed vs. Reliability , http://compnetworking.about.com/library/weekly/aa071200b.htm 

RFC821: SMTP, http://www.ietf.org/rfc/rfc821.txt, especially sections 1-3.2 and Appendix F (scenario 8)

Lawrence Lessig and Paul Resnick, "Zoning Speech on the Internet: A Legal and Technical Model," http://www.si.umich.edu/%7Epresnick/papers/lessig98/index.html

IETF Cookie protocol, RFC2109, http://www.ietf.org/rfc/rfc2109.txt

Optional lab exercises

 

 

 

HW7 to CourseTools:
TCP/IP, Spanning Layers

 

Revised HW6 in class

15

10/27

Higher Layer Internet Protocols

 

 

16