Transmission Control Protocol, ATM Network Layer
- TCP algorithms:
- Sender/Receiver Silly Window Syndrome
- Jacobson timeout
- Karn selection of RTT estimates
- summary of TCP congestion and flow control
- ATM Network Layer
- ATM cell format
- ATM connection establishment
- ATM forwarding
- ATM service categories
- ATM Quality of Service (QoS)
- ATM congestion control
- ATM LANs
Silly Window Syndrome
- I am sending a 5000-byte buffer with an MSS of 540
- the last segment only has 100 bytes of data
- then I start sending the next buffer
- when receiver acks that last segment, my window will only increase
by 100 bytes
- if I am being held up by the flow control window, I can only send
a 100-byte segment!
- avoidance:
- sender side: hold off sending until we have 1 MSS or 1/2 the maximum
receiver window
- receiver side: hold off sending ack until we have received 1 MSS or
a timer expires
Timeout Computation
- Jacobson/Karels algorithm
- keep a running average of the round-trip time:
- keep track of time t0 at which we sent packet i
- if the ack for that packet returns at time tr,
the new round-trip-time estimate is RTTi = tr - t0
- the new average is RTTave = alpha RTTave + beta RTTi
(typically, alpha = 0.875 and beta = 0.125)
- also keep a running average of the RTT deviation:
dave = alpha' dave + beta' |RTTi - RTTave|
( alpha' = 0.75 and beta' = 0.25)
- timeout = RTTave + 4 * dave
RTT Estimates
- if I send a segment at time t0, retransmit it at time t1,
and get an ack for it at time t2, is my RTT estimate
t2 - t0 or t2 - t1?
- we can't tell
- Karn: for timeout estimation, only use packets that were
not retransmitted
Congestion and Flow control
- Sender can only send when it has space in the window
- window can be reduced by receiver (window carried in every ack segment)
- Sender reduces its window for congestion control if packets
are dropped
- "slow" start: start at one segment, add one segment to
the congestion window for each segment acknowledged, up to a threshold
- linear increase: add one segment to the congestion window for
every window acknowledged
- multiplicative decrease: if a packet is lost, cut the threshold
to 1/2 the current window and go back to slow start
In-Class Exercise
- 5 minutes
- work alone
- at the beginning, RTTave = 80 ms, dave = 0
- what is the timeout?
- you now receive acks for the following packets:
sequence | send time | ack time |
1234 | 12:10:15.111 | 12:10:15.831 |
2234 | 12:10:15.115 | 12:10:16.456 |
3234 | 12:10:15.125 | 12:10:15.525 |
2234 | 12:10:15.220 | 12:10:16.456 |
|
(packet 2234 was retransmitted, only one ack was received)
- compute RTTave, dave, and the new timeout (round integer
division up or down)
ATM cell format
- UNI:
- 4-bit GFC
- 8-bit VPI
- 16-bit VCI
- 3-bit payload type (PTI)
- 1-bit cell loss priority (CLP)
- 8-bit CRC
- 48-bit payload
- NNI:
- 12-bit VPI
- 16-bit VCI
- ...
ATM connection establishment
- Setup
- Call proceeding
- connect
- connect ack
- ...
- release
- release complete
ATM forwarding
- routing happens at connection setup time:
- identify route
- reserve resources (if any)
- set up forwarding tables
- forwarding table:
incoming | incoming | outgoing | outgoing |
port | VPI/VCI | port | VPI/VCI |
1 | 99 | 4 | 14 |
1 | 93/77 | 4 | 15/82 |
4 | 14 | 1 | 99 |
... | | | |
|
- forwarding can be done in hardware: fixed-size cells, simple
table lookup
ATM service categories
- CBR: constant bit rate (voice, uncompressed video)
- VBR: variable bit rate (compressed video, other real-time and
non-real-time applications)
- ABR: available bit rate (PCR/MCR specification, "slow down"
feedback from network)
- UBR: unspecified bit rate (loss is acceptable, higher layers
will deal with it)
ATM Quality of Service (QoS)
- PCR: Peak Cell Rate
- SCR: Sustained Cell Rate
- MCR: Minimum Cell Rate
- CDVT: Cell Delay Variation Tolerance
- CLR: Cell Loss Ratio
- CTD: Cell Transfer Delay
- CDV: Cell Delay Variation
ATM congestion control
- leaky bucket outflow is SCR, capacity is CDVT
- unless there is congestion, forward non-conforming cells,
but with CLP = 1
- Resource Management (RM) cell can be sent by sender, travels
along route, records maximum bandwidth to use
ATM LANs
- different solutions
- every host has a connection to a LAN server, which broadcasts to
all other hosts
- every host has a connection to an ARP server (ATMARP), which provides
IP to ATM address translations. Each host can then establish an ATM connection
to every other host in the LAN with which it communicates
- VLAN (Virtual LAN): some hosts on the same ATM network might be
using different ATMARP server, they "look" like they are on different LANs
(simple-minded security)