Richard Yang

Logo

My Personal Site

- About
- Coursework
- Resources
- Essays
- Recommendations
View My GitHub Profile

Networks

My notes for the fall 2024 CS:3640 class at the University of Iowa

Week 1

What is a network? A collection of nodes connected by edges

Examples: -highways, brain

Goals: resource sharing, communication

Nodes are computing devices, edges are transmission media

A network has one type of transmission media

The Internet The internet is not a network; the internet ties different networks together. The internet is a set of protocols to allow different networks to communicate.

Design goals for networks: speed, cost, reliability

Design goals for the Internet: interoperability, scalability, fault-tolerance

Abstraction/Layering

Most networks share certain common operations. These operations lie in a hierarchy. With modular design, we could reuse these

Layers:

Each operation goes in one layer, and each layer provides the operation as a service to the next layer

NETWORK

Network layer protocol: Internet Protocol Best effort service makes no guarantees that data will reach destination:

Why? Every device implements the Internet Protocol, so it must be simple and have as few requirement as possible!

TRANSPORT

APPLICATION

-networking logic

Picture of the internet

End-hosts are devices using the Internet.

What layers should be implemented on end hosts? Answer: every layer. Each layer depends on the ones below it.

Access Networks connect end hosts to Internet infrastructure. What ISPs do.

What layers should be implemented on access networks? Answer: only the Network and Link layers. The app and transport layers are implemented on the end-host by each specific app.

Encapsulation

Data is broken into units at each layer. PDU: protocol data units.

Packets are data + transport header + network header. Frames are data + transport header + network header + link header. Frames are rewritten at every node. Packets are read and stay the same at every hop.

Network header needs:

At intermediate routers, the network header is examiend to identify the next router.

End to End Principle

Motivating example: suppose Anna wants to send Bob a file through the Internet. It’s bad if the file gets corrupted as it travels to Bob. Should we implement fault tolerance at the network layer or the transport layer?

Answer: implement at transport layer. Why? Bob must put the file back together and examine it for correctness anyway. So it is prohibitively expensive to do the same thing at the network layer.

The e2e principle says that functionality should be implemented at a lower layer iff:

In this case, implementing in the network layer:

Question: Who benefits from e2e? Who benefits from violating it?

For next week: Fate-sharing