Lecture 002

Network

Network: assume infrastructure is shared by many users. Infrastructure defines a network. We usually use Internet as "the network" but there exists other network in early years.

Network = Domain. Domains are Internet Service Providers (blue) or client networks (yellow). We have two types of links: inter-domain (red) and intra-domain (black)

Network = Domain. Domains are Internet Service Providers (blue) or client networks (yellow). We have two types of links: inter-domain (red) and intra-domain (black)

Internet: a network of networks

Networks that is not Internet: radio, cable TV, phone. They all designed for one application.

Telephone Network

Telephone Network

Switch: transfer the information from one node to another

Planes:

Instead of continuous stream, package with queue allow us to do concurrent connections

Instead of continuous stream, package with queue allow us to do concurrent connections

Protocol

Protocol: An agreement between parties on how communication should take place.

Internet Design 101

The challenge is that Internet is complex (as picture below)

Internet is Complex

Internet is Complex
And most people are competeing against each other

Modules

Distributed System is on Application Layer (well, if you are building an application that is within network, then you don't need the between-network layer. But it is easier to include between-network protocol)

Distributed System is on Application Layer (well, if you are building an application that is within network, then you don't need the between-network layer. But it is easier to include between-network protocol)

Network has failures, for example:

Question: in what layer should we correct the failures Answer: there is no fixed answer. Some application allow some error, others are not. Inforcing correctness requires effort. So we don't build any error correction in non-application level (end-to-end error correction). We let application correct itself. (But WiFi is an exception because of its huge packet loss rate, hop-by-hop error correction) Further Reading: “End-to-End Arguments in System Design.” Saltzer, Reed, and Clark.

Open Systems Interconnection (OSI) Model

Layers:

Note that TCP/IP is different from TCP protocol. TCP/IP is a network model that is compared to OSI model. TCP protocol is compared to UDP protocol in Transport layer of OSI model.

The stack has two types of interfaces:

How many version of protocol in each layer: we see IPv4 hard to change because everything is depended on it

How many version of protocol in each layer: we see IPv4 hard to change because everything is depended on it

Internet Goals:

Survivability: it is costly if a stateful switch fails, then it need time to restore the states after it get back up. Stateless switches and routers are preferred. (Now most switches are stateful but can recover quickly)

Life of a packet between different networks

Life of a packet between different networks

For horizontal connections, we need to ensure all nodes can talk to each other within their layer, this is done by adding headers.

Headers: we add headers of different protocol as we go down, read and remove headers as we go up

Headers: we add headers of different protocol as we go down, read and remove headers as we go up

Demultiplexing Field: actual field

Demultiplexing Field: actual field

Demultiplexing Field: layer in the bottom let top know which protocol to use

Demultiplexing Field: layer in the bottom let top know which protocol to use

How do the receiver know which protocol (TCP or UDP) in one layer? We add a demultiplexing field to Transport Layer.

The Internet Engineering Task Force (IEF):

Table of Content