ATM
- Asynchronous Transfer Mode
- cells
- adaptation layers
- Virtual Circuits:
virtual channels,
virtual paths,
cell switching,
signaling
- Quality of Service
- ATM LANs
- Packet Switches: Addresses, Forwarding, Routing
- Project 2 assigned
ATM Background
- 1990s, Asynchronous Transfer Mode (as opposed to SONET)
- designed for telephony: real-time plus data,
short- or long-distance, high reliability
- 53-byte cells
- ATM Forum: telcos + networking companies
- UNI (User-Network Interface) between hosts and switches
- NNI (Network-Network Interface) between switches (P-NNI within a
private network)
- in-order delivery, low loss
ATM Cells
- 53 bytes = 424 bits
- cells sent when ready (Asynchronous Transfer Mode)
- 5 byte header + 48 byte payload
- Header (40 bits):
- GFC (4 bits; UNI only),
- VPI (8 bits/UNI, 12 bits/NNI),
- VCI (16),
- Payload Type (3),
- Cell Loss Priority (1),
- Header Error Correction (CRC, 1)
- No sequence numbers (in-order delivery), payload CRC, addresses,
or payload length
ATM AAL
- Adaptation Layer:
- AAL 1: constant-bit-rate (CBR) traffic
- AAL 3/4: data (full service)
- AAL 5: data (simpler)
- AAL Structure:
- Segmentation and Reassembly (cell-level services)
- Convergence (message-level services)
- Service Data Unit (SDU) is a packet
- Only done by end-systems, not switches
AAL 5: Segmentation and Reassembly
- Segmentation:
- SDU from the higher layer
- add 4-byte header (not used), 0-47 byte pad, length and CRC
- break it into 48-byte payloads
- add 5-byte ATM headers
- send
- Reassembly:
- receive 53-byte cells in order
- check HEC and strip header
- reassemble
- when SDU complete (specified by bit in header), check
length/CRC, then deliver
Virtual Circuits
- like a telephone connection, but more efficient: statistical multiplexing
- A transmission link may carry a number of virtual paths (VPs),
each identified by a VPI
- A virtual path may carry a number of virtual channels,
each identified by a VCI
- The combination of (link, VPI, VCI) uniquely identifies
a virtual circuit
Virtual Circuit Switching
- cell incoming on a link l has VPI and VCI
- Switch has table from incoming (l, VPI, VCI) to outgoing
(l', VPI', VCI')
- to route cells, change VPI to VPI' and VCI to VCI',
and places the cell on l' (for path, leave VCI unchanged)
- multicast is easy
- in-class exercise:
given this table, forward cell from link 5, VPI=33, VCI=7
| from | from | from | to | to | to |
|
link | VPI | VCI | link | VPI | VCI |
|
5 | 33 | 7 | 3 | 3 | 1 |
|
1 | 3 | * | 2 | 7 | * |
|
2 | 7 | 3 | 4 | 9 | 7 |
|
|
Signaling
- Permanent Virtual Circuits (PVCs)
- Switched Virtual Circuits (SVCs):
- Host sends request (on reserved VPI/VCI) to switch
- Switch finds route, sends request to next switch
- Final switch sends request to destination
- Destination replies, accepting/rejecting
- Acceptance only if all switches and destination accept
(may depend on resources requested)
- In case of rejection, switch may try alternate route (crankback)
- Switches must set up routing tables when successful reply comes back
QoS
- Quality of Service: what the network provides to the connection
- Traffic Descriptor: what the host provides to the network
(traffic contract)
- Service classes:
- Constant bit-rate (CBR)
- Variable bit-rate (VBR): Real-Time (RT), Non-Real-Time(NRT)
- Available bit-rate (ABR)
- Unspecified bit-rate (UBR)
- QoS parameters include maximum Cell Delay Variation (CDV)
and Cell Loss Ratio (CLR)
Traffic Descriptors
- Dual Leaky Bucket, in parallel (any overflow is tagged by Cell
Loss Priority)
- Each Leaky Bucket has:
- maximum rate R (cells/s)
- capacity C (cells)
- Peak rate leaky bucket: PCR (Peak Cell Rate), CDVT (Cell
Delay Variation Tolerance)
- Mean rate leaky bucket: SCR (Sustained Cell Rate), BT (Burst
Tolerance)
ATM LANs
- 20-byte ATM addresses (telephone number superset, hierarchical)
- once connected, transfer (including multicast) is easy
- how to find an ATM address given a higher-level address?
- broadcast every message to everyone in the Virtual LAN (VPN) --
this is LAN emulation, LANE
- configure end systems with the ATM address of an address
server. The server records my addresses when I connect, and
provides translations of others' addresses.
Subsequent transfers occur over a regular ATM connection --
CLassical IP over ATM, CLIP
Packet Switches
- a computer with multiple interfaces that is programmed to
move packets from one interface to another is a packet switch
- some interfaces are connected to computers, some are connected
to long-distance networks (Wide-Area Network, WAN)
- the same packet switch (hardware/software combination)
can generally be used for many different specific networks, usually
with some configuration required
- the packet switch stores each packet in its memory, then
forwards it on the appropriate interface: store-and-forward
- packets are saved in queues until the outgoing line becomes available
Next-Hop Forwarding
- a switch forwarding a packet needs to know where to send it:
- a switch does not have a map of the network, or even if it does,
it would take too long to search for the destination
- a switch keeps a table of destinations and the interface that can
be used to reach that destination
- this table is the routing table, and this switch is a router
- every possible destination must be in every routing table: universal
routing
- the routing table should show the shortest path to each destination:
optimal routing
- independent of source address
Hierarchical Addresses
- if addresses are hierarchically assigned based on a computer's
packet switch, the routing table only needs to store the addresses
of packet switches (and directly-connected computers)
- if a switch (or host) sends most of its traffic to a particular
router, perhaps because it is the only router it is connected to,
that router can be the default router, requiring only one routing
table entry to cover all destinations not otherwise listed
Routing
- networks can be represented by graphs where each node of the
graph is a switch (or host) in the network, and each edge of the graph
is a physical connection in the network
- the path taken by a packet in the network is a path (that is,
an ordered set of edges) in the graph
- if my route for destination D sends packets to S, and S's route
to D sends packets to me, I have a routing loop because my
routing table is inconsistent with S's
- routing tables are constructed:
- statically (configuration)
- dynamically (routing algorithm)
Dijkstra's shortest path algorithm
- given:
- a set of nodes n in N
- a starting node a in N
- the set N' = N - {a}
- a set of links l in N * N
- link metrics m(l) > 0
- calculates distance d(n) from a to each node in N'
Dijkstra's shortest path algorithm
- for all n in N' set d(n) = oo
- the set of nodes with known distances is K: initially, K = {}.
- loop:
compute the distance for each node n in N' - K:
d(n) = min(d(n), minn' in N", l in (n' * n)(d(n')+m(l))
the set N" is: N" = N' - K - n
- find the node n in (N' - K) with minimum distance d(n),
add the node to K
- if N' = K, we are done, otherwise return to step "loop"
Why the Algorithm Works
- node distances (d(n)) can only decrease, never increase
- if a path to n goes through n', then at the end
d(n) > d(n'), since for all l, m(l) > 0
- if a node n is chosen for K, d(n) <=
the distance of all nodes still in N - K
- therefore, the distance of all nodes in K is less than
or equal to the distance of each node in N - K
- therefore, the distance of all nodes in K can never decrease
beyond the current value of d(n)
- therefore, the distance of all nodes in K is the shortest path distance