cse 30264 computer networks prof. aaron striegel department of computer science & engineering...

24
CSE 30264 Computer Networks Prof. Aaron Striegel Department of Computer Science & Engineering University of Notre Dame Lecture 14 – February 23, 2010

Upload: breana-gerrard

Post on 16-Dec-2015

216 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: CSE 30264 Computer Networks Prof. Aaron Striegel Department of Computer Science & Engineering University of Notre Dame Lecture 14 – February 23, 2010

CSE 30264

Computer Networks

Prof. Aaron StriegelDepartment of Computer Science & Engineering

University of Notre Dame

Lecture 14 – February 23, 2010

Page 2: CSE 30264 Computer Networks Prof. Aaron Striegel Department of Computer Science & Engineering University of Notre Dame Lecture 14 – February 23, 2010

CSE 30264 2

Today’s Lecture

• Mid-Term Exam• Transport

– UDP– TCP

Spring 2010

Physical

Data

Network

Transport

Application

Page 3: CSE 30264 Computer Networks Prof. Aaron Striegel Department of Computer Science & Engineering University of Notre Dame Lecture 14 – February 23, 2010

CSE 30264 3

Mid-Term Exam

• Two pages notes– Front / back– Typed or hand written

• Exam components– Short answer

• Is CSMA / CD deterministic or non-deterministic?– Exercises

• Compute a netmask / write pseudocode– Scenarios

• X notes that A > B, is that true?

Spring 2010

Page 4: CSE 30264 Computer Networks Prof. Aaron Striegel Department of Computer Science & Engineering University of Notre Dame Lecture 14 – February 23, 2010

CSE 30264 4

Mid-Term Exam

• 75 minutes– Normal class period

• Tips– Read exam through before starting– Record the answers to key points

in your two pages of notes– Example code blurbs– When in doubt, ASK!

Spring 2010

Page 5: CSE 30264 Computer Networks Prof. Aaron Striegel Department of Computer Science & Engineering University of Notre Dame Lecture 14 – February 23, 2010

Spring 2009 CSE30264 5

Reliable Byte-Stream (TCP)

OutlineConnection Establishment/TerminationSliding Window Revisited Flow ControlAdaptive Timeout

Page 6: CSE 30264 Computer Networks Prof. Aaron Striegel Department of Computer Science & Engineering University of Notre Dame Lecture 14 – February 23, 2010

Spring 2009 CSE30264 6

TCP Segment Format

Options (variable)

Data

Checksum

SrcPort DstPort

HdrLen 0 Flags

UrgPtr

AdvertisedWindow

SequenceNum

Acknowledgment

0 4 10 16 31

Page 7: CSE 30264 Computer Networks Prof. Aaron Striegel Department of Computer Science & Engineering University of Notre Dame Lecture 14 – February 23, 2010

Spring 2009 CSE30264 7

Segment Format (cont)• Each connection identified with 4-tuple:

– (SrcPort, SrcIPAddr, DstPort, DstIPAddr)• Sliding window + flow control

– ACK, SequenceNum, AdvertisedWindow

• Flags– SYN, FIN, RESET, PUSH, URG, ACK

• Checksum– pseudo header + TCP header + data

Sender

Data (SequenceNum)

Acknowledgment +AdvertisedWindow

Receiver

Page 8: CSE 30264 Computer Networks Prof. Aaron Striegel Department of Computer Science & Engineering University of Notre Dame Lecture 14 – February 23, 2010

Spring 2009 CSE30264 8

Connection Establishment

Active participant(client)

Passive participant(server)

SYN, SequenceNum =x

ACK, Acknowledgment =y+1

Acknowledgment =x+1

SYN+ACK,

SequenceNum=y,

Page 9: CSE 30264 Computer Networks Prof. Aaron Striegel Department of Computer Science & Engineering University of Notre Dame Lecture 14 – February 23, 2010

Spring 2009 CSE30264 9

Connection Termination

First participant Second participant

FIN, SequenceNum =x

ACK, Acknowledgment =y+1

ACK,

Acknowledgment=x+1,

FIN, SequenceNum = y,

Acknowledgment = x+1

Page 10: CSE 30264 Computer Networks Prof. Aaron Striegel Department of Computer Science & Engineering University of Notre Dame Lecture 14 – February 23, 2010

Spring 2009 CSE30264 10

State Transition DiagramCLOSED

LISTEN

SYN_RCVD SYN_SENT

ESTABLISHED

CLOSE_WAIT

LAST_ACKCLOSING

TIME_WAIT

FIN_WAIT_2

FIN_WAIT_1

Passive open Close

Send/SYNSYN/SYN + ACK

SYN + ACK/ACK

SYN/SYN + ACK

ACK

Close/FIN

FIN/ACKClose/FIN

FIN/ACKACK + FIN/ACK

Timeout after twosegment lifetimes

FIN/ACK

ACK

ACK

ACK

Close/FIN

Close

CLOSED

Active open/SYN

Page 11: CSE 30264 Computer Networks Prof. Aaron Striegel Department of Computer Science & Engineering University of Notre Dame Lecture 14 – February 23, 2010

Spring 2010 CSE30264 11

Sliding Window Revisited

• Sending side– LastByteAcked < = LastByteSent

– LastByteSent < = LastByteWritten

– buffer bytes between LastByteAcked and LastByteWritten

• Receiving side– LastByteRead < NextByteExpected

– NextByteExpected < = LastByteRcvd +1

– buffer bytes between LastByteRead and LastByteRcvd

Sending application

LastByteWrittenTCP

LastByteSentLastByteAcked

Receiving application

LastByteReadTCP

LastByteRcvdNextByteExpected

(a) (b)

Page 12: CSE 30264 Computer Networks Prof. Aaron Striegel Department of Computer Science & Engineering University of Notre Dame Lecture 14 – February 23, 2010

CSE 30264 12

Example – Sequence / Ack

Spring 2010

Page 13: CSE 30264 Computer Networks Prof. Aaron Striegel Department of Computer Science & Engineering University of Notre Dame Lecture 14 – February 23, 2010

Spring 2010 CSE30264 13

Flow Control• Send buffer size: MaxSendBuffer• Receive buffer size: MaxRcvBuffer• Receiving side

– LastByteRcvd - LastByteRead < = MaxRcvBuffer– AdvertisedWindow = MaxRcvBuffer - ((NextByteExpected -

1) - LastByteRead)• Sending side

– LastByteSent - LastByteAcked < = AdvertisedWindow– EffectiveWindow = AdvertisedWindow - (LastByteSent - LastByteAcked)

– LastByteWritten - LastByteAcked < = MaxSendBuffer– block sender if (LastByteWritten - LastByteAcked) + y > MaxSenderBuffer

• Always send ACK in response to arriving data segment• Persist when AdvertisedWindow = 0

Page 14: CSE 30264 Computer Networks Prof. Aaron Striegel Department of Computer Science & Engineering University of Notre Dame Lecture 14 – February 23, 2010

CSE 30264 14

TCP Rate Control - Brief

Spring 2010

Page 15: CSE 30264 Computer Networks Prof. Aaron Striegel Department of Computer Science & Engineering University of Notre Dame Lecture 14 – February 23, 2010

Spring 2010 CSE30264 15

Protection Against Wrap Around• 32-bit SequenceNum

Bandwidth Time Until Wrap AroundT1 (1.5 Mbps) 6.4 hoursEthernet (10 Mbps) 57 minutesT3 (45 Mbps) 13 minutesFDDI (100 Mbps) 6 minutesSTS-3 (155 Mbps) 4 minutesSTS-12 (622 Mbps) 55 secondsSTS-24 (1.2 Gbps) 28 seconds

Page 16: CSE 30264 Computer Networks Prof. Aaron Striegel Department of Computer Science & Engineering University of Notre Dame Lecture 14 – February 23, 2010

Spring 2010 CSE30264 16

Silly Window Syndrome

• How aggressively does sender exploit open window?

• Receiver-side solutions– after advertising zero window, wait for space equal to a

maximum segment size (MSS)– delayed acknowledgements

Sender Receiver

Page 17: CSE 30264 Computer Networks Prof. Aaron Striegel Department of Computer Science & Engineering University of Notre Dame Lecture 14 – February 23, 2010

Spring 2010 CSE30264 17

Nagle’s Algorithm

• How long does sender delay sending data?– too long: hurts interactive applications– too short: poor network utilization– strategies: timer-based vs self-clocking

when application produces data to send

if both the available data and the window >= MSS

send a full segment

else

if there is unACKed data in flight

buffer the new data until an ACK arrives

else

send all the new data now

Page 18: CSE 30264 Computer Networks Prof. Aaron Striegel Department of Computer Science & Engineering University of Notre Dame Lecture 14 – February 23, 2010

Spring 2010 CSE30264 18

Adaptive Retransmission

• Round-Trip Time Estimation:– wait at least one RTT before retransmitting– importance of accurate RTT estimators:

• Low RTT -> unneeded retransmissions• High RTT -> poor throughput

– RTT estimator must adapt to change in RTT• But not too fast, or too slow!

– problem: If the instantaneously calculated RTT is 10, 20, 5, 12, 3 , 5, 6; what RTT should we use for calculations?

– EstimatedRTT = a * EstimatedRTT + (1 - a) SampleRTT– recommended value for a: 0.8 - 0.9– retransmit timer set to b RTT, where b = 2

Running average

Page 19: CSE 30264 Computer Networks Prof. Aaron Striegel Department of Computer Science & Engineering University of Notre Dame Lecture 14 – February 23, 2010

Spring 2009 CSE30264 19

Retransmission Ambiguity

A B

ACK

A BOriginal transmission

retransmissionSampleRTT

Original transmission

retransmission

ACK

Page 20: CSE 30264 Computer Networks Prof. Aaron Striegel Department of Computer Science & Engineering University of Notre Dame Lecture 14 – February 23, 2010

Spring 2009 CSE30264 20

Karn/Partridge Algorithm

• Accounts for retransmission ambiguity• If a segment has been retransmitted:

– don’t count RTT sample on ACKs for this segment– reuse RTT estimate only after one successful

transmission– double timeout after each retransmission

Page 21: CSE 30264 Computer Networks Prof. Aaron Striegel Department of Computer Science & Engineering University of Notre Dame Lecture 14 – February 23, 2010

Spring 2009 CSE30264 21

Jacobson/Karels Algorithm

• Key observation:– using b RTT for timeout doesn’t work– at high loads round trip variance is high

• Solution:– if D denotes mean variation– timeout = RTT + 4D

Page 22: CSE 30264 Computer Networks Prof. Aaron Striegel Department of Computer Science & Engineering University of Notre Dame Lecture 14 – February 23, 2010

Spring 2009 CSE30264 22

Jacobson/Karels Algorithm

• New Calculations for average RTT• Diff = SampleRTT - EstimatedRTT• EstimatedRTT = EstimatedRTT + (d * Diff)• Dev = Dev + d * (|Diff| - Dev)

– where d is a factor between 0 and 1

• Consider variance when setting timeout value• TimeOut = m * EstimatedRTT + f * Dev

– where m = 1 and f = 4

Page 23: CSE 30264 Computer Networks Prof. Aaron Striegel Department of Computer Science & Engineering University of Notre Dame Lecture 14 – February 23, 2010

Spring 2009 CSE30264 23

Record Boundaries

• Byte-stream protocol: write 8+2+20 bytes and read 5+5+5+5+5+5 (loop).

• TCP offers two features to insert record boundaries:– URG flag – push operation

Page 24: CSE 30264 Computer Networks Prof. Aaron Striegel Department of Computer Science & Engineering University of Notre Dame Lecture 14 – February 23, 2010

Spring 2009 CSE30264 24

TCP Extensions

• Implemented as header options• Better way to measure RTT (use actual system

clock for sending time and add timestamp to segment).

• 64-bit sequence numbers: 32-bit sequence number in low-order 32 bits, timestamp in high-order 32 bits.

• Shift (scale) advertised window.