1 lecture 14 mpls intro to transport, reliability, and tcp 15-441 networking, spring 2007 as usual,...
Post on 19-Dec-2015
216 views
TRANSCRIPT
1
Lecture 14MPLS
Intro to Transport, Reliability, and TCP
15-441 Networking, Spring 2007
As usual, adapted from Srini Seshan and David Anderson, 15-441, Fall ‘06
2
Multi Protocol Label Switching - MPLS
Selective combination of VCs + IP» Today: MPLS useful for traffic engineering, reducing core
complexity, and VPNs
Core idea: Layer 2 carries VC label» Could be ATM (which has its own tag)
» Could be a “shim” on top of Ethernet/etc.:
» Existing routers could act as MPLS switches just by examining that shim -- no radical re-design. Gets flexibility benefits, though not cell switching advantages
Layer 2 header
Layer 3 (IP) header
Layer 2 header
Layer 3 (IP) header
MPLS label
3
MPLS + IP
Map packet onto Forward Equivalence Class (FEC)» Simple case: longest prefix match of destination address
» More complex if QoS of policy routing is used
In MPLS, a label is associated with the packet when it enters the network and forwarding is based on the label in the network core.
» Label is swapped (as ATM VCIs)
Potential advantages.» Packet forwarding can be faster
» Routing can be based on ingress router and port
» Can use more complex routing decisions
» Can force packets to followed a pinned route
4
MPLS core, IP interface
A
B
R2
R1
R3
R4
C1
2
3
4
3
3
3
1
1
1
2
2
4
4
4
2
D
IP IP
MPLS tag assigned
IP
IP
MPLS forwarding in core
MPLS tag stripped
5
MPLS use case #1: VPNs
A
B
R2
R1
R3
R4
C1
2
3
4
3
3
3
1
1
1
2
2
4
4
4
2
D
10.1.0.0/24
10.1.0.0/24
10.1.0.0/24
10.1.0.0/24
MPLS tags can differentiate green VPN from orange VPN.
6
MPLS use case #2: Reduced State Core
A R2
R1
R3
R4
C
.
EBGP EBGP
A R2
R1
R3
R4
C1
2
3
4
3
3
3
1
1
1
2
2
4
4
4
2
EBGP
IP Core
MPLS Core
A-> C pkt
Internal routers must know all C destinations
R1 uses MPLS tunnel to R4.
R1 and R4 know routes, but R2 and R3 don’t.
7
MPLS use case #3: Traffic Engineering
As discussed earlier -- can pick routes based upon more than just destination
Used in practice by many ISPs, though certainly not all.
8
MPLS Mechanisms
MPLS packet forwarding: implementation of the label is technology specific.
» Could be ATM VCI or a short extra “MPLS” header
Supports stacked labels.» Operations can be “swap” (normal label swapping),
“push” and “pop” labels.
– VERY flexible! Like creating tunnels, but much simpler -- only adds a small label.
Label CoS S TTL
20 3 1 8
9
MPLS Discussion
Original motivation.» Fast packet forwarding:
– Use of ATM hardware
– Avoid complex “longest prefix” route lookup
– Limitations of routing table sizes
» Quality of service
Currently mostly used for traffic engineering and network management.
» LSPs can be thought of as “programmable links” that can be set up under software control
» on top of a simple, static hardware infrastructure
10
Further reading - MPLS
MPLS isn’t in the book - sorry. Juniper has a few good presentations at NANOG (the North American Network Operators Group; a big collection of ISPs):» http://www.nanog.org/mtg-0310/minei.html» http://www.nanog.org/mtg-0402/minei.html» Practical and realistic view of what people are
doing _today_ with MPLS.
11
Packets over SONET
Same as statically configured ATM pipes, but pipes are SONET channels.
Properties.– Bandwidth
management is much less flexible
+ Much lower transmission overhead (no ATM headers)
muxmux
muxmux
muxmuxOC-48
12
Take Home Points
Costs/benefits/goals of virtual circuits Cell switching (ATM)
» Fixed-size pkts: Fast hardware» Packet size picked for low voice jitter. Understand trade-
offs.» Beware packet shredder effect (drop entire pkt)
Tag/label swapping» Basis for most VCs. » Makes label assignment link-local. Understand
mechanism. MPLS - IP meets virtual circuits
» MPLS tunnels used for VPNs, traffic engineering, reduced core routing table sizes
14
Transport Protocols
Lowest level end-to-end protocol.
» Header generated by sender is interpreted only by the destination
» Routers view transport header as part of the payload
77
66
55
77
66
55
TransportTransport
IPIP
DatalinkDatalink
PhysicalPhysical
TransportTransport
IPIP
DatalinkDatalink
PhysicalPhysical
IPIP
router
22 22
11 11
15
Functionality Split
Network provides best-effort delivery End-systems implement many functions
» Reliability
» In-order delivery
» Demultiplexing
» Message boundaries
» Connection abstraction
» Congestion control
» …
16
Transport Protocols
UDP provides just integrity and demux TCP adds…
» Connection-oriented
» Reliable
» Ordered
» Point-to-point
» Byte-stream
» Full duplex
» Flow and congestion controlled
17
UDP: User Datagram Protocol [RFC 768]
“No frills,” “bare bones” Internet transport protocol
“Best effort” service, UDP segments may be:
» Lost
» Delivered out of order to app
Connectionless:» No handshaking between
UDP sender, receiver
» Each UDP segment handled independently of others
Why is there a UDP? No connection establishment
(which can add delay) Simple: no connection state
at sender, receiver Small header No congestion control: UDP
can blast away as fast as desired
18
UDP, cont. Often used for
streaming multimedia apps» Loss tolerant» Rate sensitive
Other UDP uses (why?):» DNS, SNMP
Reliable transfer over UDP» Must be at application
layer» Application-specific error
recovery
Source port # Dest port #
32 bits
Applicationdata
(message)
UDP segment format
Length ChecksumLength, in
bytes of UDPsegment,includingheader
19
UDP Checksum
Sender: Treat segment contents as
sequence of 16-bit integers Checksum: addition (1’s
complement sum) of segment contents
Sender puts checksum value into UDP checksum field
Receiver: Compute checksum of
received segment Check if computed
checksum equals checksum field value:
» NO - error detected
» YES - no error detected
But maybe errors nonethless?
Goal: detect “errors” (e.g., flipped bits) in transmitted segment – optional use!
20
High-Level TCP Characteristics
Protocol implemented entirely at the ends» Fate sharing
Protocol has evolved over time and will continue to do so
» Nearly impossible to change the header
» Use options to add information to the header
» Change processing at endpoints
» Backward compatibility is what makes it TCP
21
TCP Header
Source port Destination port
Sequence number
Acknowledgement
Advertised windowHdrLen Flags0
Checksum Urgent pointer
Options (variable)
Data
Flags: SYNFINRESETPUSHURGACK
22
Evolution of TCP
1975 1980 1985 1990
1982TCP & IP
RFC 793 & 791
1974TCP described by
Vint Cerf and Bob KahnIn IEEE Trans Comm
1983BSD Unix 4.2
supports TCP/IP
1984Nagel’s algorithmto reduce overhead
of small packets;predicts congestion
collapse
1987Karn’s algorithmto better estimate
round-trip time
1986Congestion
collapseobserved
1988Van Jacobson’s
algorithmscongestion avoidance and congestion control(most implemented in
4.3BSD Tahoe)
19904.3BSD Renofast retransmitdelayed ACK’s
1975Three-way handshake
Raymond TomlinsonIn SIGCOMM 75
23
TCP Through the 1990s
1993 1994 1996
1994ECN
(Floyd)Explicit
CongestionNotification
1993TCP Vegas
(Brakmo et al)delay-based
congestion avoidance
1994T/TCP
(Braden)Transaction
TCP
1996SACK TCP(Floyd et al)
Selective Acknowledgement
1996Hoe
NewReno startup and loss recovery
1996FACK TCP
(Mathis et al)extension to SACK
25
Stop and Wait
Time
Packet
ACKTim
eou
t
ARQ» Receiver sends acknowledgement
(ACK) when it receives packet
» Sender waits for ACK and timeouts if it does not arrive within some time period
Simplest ARQ protocol Send a packet, stop and
wait until ACK arrives
Sender Receiver
26
Recovering from Error
Packet
ACK
Tim
eou
t
Packet
ACK
Tim
eou
t
Packet
Tim
eou
t
Packet
ACKT
ime
out
Time
Packet
ACK
Tim
eou
t
Packet
ACK
Tim
eou
t
ACK lost Packet lost Early timeoutDUPLICATEPACKETS!!!
27
How to recognize a duplicate Performance
» Can only send one packet per round trip
Problems with Stop and Wait
28
How to Recognize Resends?
Use sequence numbers» both packets and acks
Sequence # in packet is finite How big should it be? » For stop and wait?
One bit – won’t send seq #1 until received ACK for seq #0
Pkt 0
ACK 0
Pkt 0
ACK 1
Pkt 1ACK 0
29
How to Keep the Pipe Full?
Send multiple packets without waiting for first to be acked
» Number of pkts in flight = window
Reliable, unordered delivery» Several parallel stop & waits
» Send new packet after each ack
» Sender keeps list of unack’ed packets; resends after timeout
» Receiver same as stop & wait
How large a window is needed?» Suppose 10Mbps link, 4ms delay,
500byte pkts
– 1? 10? 20?
» Round trip delay * bandwidth = capacity of pipe
30
Sliding Window
Reliable, ordered delivery Receiver has to hold onto a packet until all
prior packets have arrived» Why might this be difficult for just parallel stop & wait?
» Sender must prevent buffer overflow at receiver
Circular buffer at sender and receiver» Packets in transit buffer size
» Advance when sender and receiver agree packets at beginning have been received
31
ReceiverReceiverSenderSender
Sender/Receiver State
… …
Sent & Acked Sent Not Acked
OK to Send Not Usable
… …
Max acceptable
Receiver window
Max ACK received Next seqnum
Received & Acked Acceptable Packet
Not Usable
Sender window
Next expected
32
Sequence Numbers
How large do sequence numbers need to be?» Must be able to detect wrap-around
» Depends on sender/receiver window size
E.g.» Max seq = 7, send win=recv win=7
» If pkts 0..6 are sent succesfully and all acks lost
– Receiver expects 7,0..5, sender retransmits old 0..6!!!
Max sequence must be send window + recv window
33
Window Sliding – Common Case
On reception of new ACK (i.e. ACK for something that was not acked earlier)
» Increase sequence of max ACK received
» Send next packet
On reception of new in-order data packet (next expected)» Hand packet to application
» Send cumulative ACK – acknowledges reception of all packets up to sequence number
» Increase sequence of max acceptable packet
34
Loss Recovery
On reception of out-of-order packet» Send nothing (wait for source to timeout)
» Cumulative ACK (helps source identify loss)
Timeout (Go-Back-N recovery)» Set timer upon transmission of packet
» Retransmit all unacknowledged packets
Performance during loss recovery» No longer have an entire window in transit
» Can have much more clever loss recovery
36
Selective Repeat Receiver individually acknowledges all correctly received
pkts» Buffers packets, as needed, for eventual in-order delivery to upper
layer
Sender only resends packets for which ACK not received» Sender timer for each unACKed packet
Sender window» N consecutive seq #’s
» Again limits seq #s of sent, unACKed packets
38
Important Lessons
Transport service» UDP mostly just IP service
» TCP congestion controlled, reliable, byte stream
Types of ARQ protocols» Stop-and-wait slow, simple
» Go-back-n can keep link utilized (except w/ losses)
» Selective repeat efficient loss recovery
Sliding window flow control» Addresses buffering issues and keeps link utilized