Assignment 2 submissions are now available for browsing on the course web site http://www.media.mit.edu/~stefan/mas890. Thank you for your very interesting submissions ! If you haven't turned yours in yet, please do so as soon as possible, especially if you were not at our discussion last week, so we can all share our experiences. Assignment 3 presentations will happen at the next class meeting. See the web site for the description of the assignment and some submission guidelines. Talk to me or Mike if you need help or have any questions. * * * Recapping our last meeting - I presented some technical details about the Internet, the way it operates, the protocols in use, and so on, as a starting point for understanding some of its affordances and limitations for online collaboration spaces. I summarize my points at the end of this message. We proceeded to begin a discussion on some of the readings in which we attempted to focus on some of the human issues associated with designing online collaboration spaces, especially the methods by which we might evaluate and study the impact of these spaces. I would like to see if we can continue this discussion more fervently in future meetings. There is a tendency to focus on iCom as a source of examples and remarks, because it is the system we are using (for the moment) to hold the class, but I am really hoping we can broaden the discussion. Let's try to avoid heavy traffic on this email list, but I want to invite anyone who wishes to comment on some of the readings to write a message to the list, as a starting point for conversations in future meetings. * * * Summarizing my technical survey of the Internet: The Internet Protocol suite, also known as the TCP/IP Protocol suite, was developed starting in the 1960s through a US government-funded research program on packet-switching networks. Now it is the most popular protocol suite in use in the world. Protocols often come in multiple layers, or levels of abstraction, where each layer hides details from what's below it in order to provide a higher-level interface. The Internet protocol suite is commonly described in 4 layers: 1. Application layer (Telnet, FTP, Email) - handles the communication details between 2 applications on 2 different "hosts" (computers connected to the network) 2. Transport layer (TCP, UDP) - handles the flow of data between 2 distant hosts or end points on the network 3. Network layer (IP, ICMP, IGMP) - handles the details of moving packets around between nodes 4. Link layer (Ethernet, FDDI, ATM) - handles the details of interfacing with the physical devices, cables, etc. The Application and Transport layers might be thought of as "end-to-end" layers, whereas the Network and Link layers are more "hop-to-hop" layers. Some other useful terminology: internet (small i) - a collection of interconnected networks that use the same protocol suite router - a device that connects 2 or more physical networks at the NETWORK layer. Essentially a computer with more than one network interface that receives packets, looks at them, figures out where they should go, and forwards them on another network interface. bridge - a device that connects 2 or more physical networks at the LINK layer (more of a physical interface that copies packets from one network to another without any intelligent forwarding). gateway - a node that connects 2 or more networks that use DIFFERENT protocol suites, in which there is some translation necessary. The important protocols: IP - concerned with moving packets around between nodes on the network and is unreliable (packets may be dropped/reordered/duplicated for various reasons). UDP - enables sending "datagrams" between two end points on the network. Sits on top of IP and is also unreliable in the same way as IP. iCom is implemented completely with UDP connections (if it loses a frame of video or a couple packets of audio, the effect is negligible). TCP - enables a continuous two-way stream of data between two end points on the internet. Sits on top of IP as well, however TCP is reliable in that data transmitted is guaranteed not to be lost or arrive to the application out of order. This is achieved with a complex system of acknowledgments, timeouts, and retransmission rules. Internet addresses are 32 bit numbers (4 bytes), typically separated into 4 numbers and written in "dotted-decimal" notation like this: 18.85.45.136. Every interface on the internet has a unique address. Humans deal better with names, and a distributed database system called DNS (Domain name system) enables matching host names with addresses. This way you can type "yahoo.com" into your web browser instead of "216.115.109.7". Each of the protocols described above includes information about what kind of data is "encapsulated" within their packets. For example, an IP packet header contains a field that indicates if the packet contains TCP or UDP data (or something else), so that the IP driver can forward it to the appropriate subsystem on the machine. Similarly, TCP and UDP packets contain "port numbers" in their headers that indicate which service on the machine the packet is intended for (Telnet, ssh, HTTP, FTP, Email, NFS, etc.). Port numbers are like phone numbers on a machine. A server program running on the machine can "listen" for connections on a particular port number. For example, web servers listen for connections on port 80. Email servers listen on port 25. A client (such as a web browser or mail program) contacts a particular internet address and port number to establish a connection. Certain port numbers (1-1023) are only accessible to processes running with superuser (or administrator) privileges. Port numbers for widely-used services (and other kinds of information) are standardized by an agency called the IANA (Internet Assigned Numbers Authority). Check out http://www.iana.org/ for a dizzying array of information. An interesting reading on the history of the Internet is at http://www.isoc.org/internet/history/brief.shtml. For lots of technical details, I recommend the TCP/IP Illustrated book series (Addison-Wesley) of which I have a copy at MLE and there are probably copies at MITML as well. s t e f a n