My Personal Site
- AboutMy notes for the fall 2024 CS:3640 class at the University of Iowa
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
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 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!
-networking logic
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.
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.
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