The Internet and IP
IP
Why is the IP service so simple?
- low cost to build and maintain.
- The end-to-end principle: Where possible, implement features in the end hosts.
- Allows a variety of reliable services to be built on
- Works over any link layer.
Time To Live (TTL)
- Ip doesn't guarantee loops won't happen, it just tries to limit the damage caused
- IP simply adds a hop-count field in the header of every datagram, called TTL.
- It starts at a number like 128 and then is decremented by every router it passes through.
- If it reaches zero, Ip concludes that it must be stuck in a loop.
The IP Service Model
- Datagram: Individually routed packets. Hop-by-hop routing.
- Urreliable: Packets might be dropped.
- Best Effort: but only if necessary
- Connectionless: No pre-flow state. Packets might be mis-sequenced.
Life of a Packet
Each router has a forwarding table, if there's no match for the destination address, it falls to the default link.
Packet Switching
Packet: A self-contained unit of data that carries information necessary for it to reach its destination.
Packet Switching: Independently for each arriving packet, pick its outgoing link. If the link is free, send it. Else hold the packet for later.
Packet switching has two really nice properties.
- The first is that a switch can make individual, local decisions for each packet. It just forwards packets. This greatly simplifies the switch.
- The second is that it lets a switch efficiently share a link between many parties.
Flow : A collection of datagrams belonging to the same end-to-end communication. e.g a TCP connection.
Packet switches don't need state for each flow - each packet is self-contained.
Efficient sharing of links Data traffic is bursty: rather than always sending and receiving data at a fixed rate, usage jumps and drops, goes up and down, over time.
This idea of taking a single resource and sharing it across multiple users in a probabilistic or statistical way is called statistical multiplexing.
Summary
Packet switches are simple: they forward packets independently, and don't need to know about flows.
Packet switching is efficient: It lets us efficiently share the capacity among many flows sharing a link.