1 lecture 14 mpls intro to transport, reliability, and tcp 15-441 networking, spring 2007 as usual,...

39
1 Lecture 14 MPLS Intro to Transport, Reliability, and TCP 15-441 Networking, Spring 2007 As usual, adapted from Srini Seshan and David Anderson, 15-441, Fall ‘06

Post on 19-Dec-2015

216 views

Category:

Documents


1 download

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

13

Transport Layer

Transport introduction

Error recovery & flow control

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

24

Outline

Transport introduction

Error recovery & flow control

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

35

Go-Back-N in Action

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

37

Selective Repeat: Sender, Receiver

Windows

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

39

Next Lecture

Congestion control

TCP Reliability