Lecture 20: end of FS, start of networking

Networking

A network is a collection of computers (sometimes called hosts) that communicate with each other. A network could be a small group of computers that communicate directly with each other (a local area network or LAN), or a wide-area network (WAN): a collection of local area networks that communicate with each other (so that communication between two hosts passes through many other hosts).

OSI layers

The protocols that control network communication are organized in a "stack", with each layer of the stack using the properties of the lower layers to provide features to higher layers.

We have already discussed the physical and link layers; these sit at the bottom of the stack. With only link layer protocols, a machine can send a fixed-size packet of data to another machine on the same local area network.

The network (or internet) layer sits above the link layer and connects together multiple local area networks. With the network layer, a machine can send a packet to another machine anywhere on the internet.

The transport layer uses the network layer and provides the ability for processes on different machines to communicate with each other. The transport layer may also provide reliable, in-order delivery of data.

The session layer gives applications the ability to establish and tear down connections with other processes. It is closely tied to the transport layer.

The presentation layer defines the translation from abstract concepts (such as "integers") to concrete arrays of bytes. For example, the presentation layer might specify the endianness of integers contained in messages, or how strings are encoded. The presentation layer is closely tied to the application layer.

The application layer is the application-specific protocol that individual clients and servers use to communicate.

In the coming lectures, we will make our way up the network stack, discussing the operation of each layer.

Protocols by analogy

It helps to have analogies for the different layers. Note that this is not one big analogy: to talk to someone on the phone, you don't write down what you're saying on a bunch of postcards; different parts of the network stack are easier to visualize on different size or time scales.

Physical layer: network topology

We discussed a few strawmen for the design of a physical layer:

The Bus topology turns out to be what is used in practice: it's extremely cheap and simple. We'll handle collisions at the link layer.