Upload
alvin-fitzgerald
View
221
Download
0
Embed Size (px)
Citation preview
1
Internet Engineering
University of ilam
Dr. Mozafar Bag-Mohammadi
Transport Layer
2
Course Materials
Course Web page– visit regularly
Textbook– مهندسی اینترنت، احسان ملکیان، انتشارات نص– “Computer Networks, A system approach”. Peterson & Davie
3rd edition Grading
– Homework 10%– Project 15%– Midterm 30%– Final 50%
3
Prerequisition
General knowledge in Computer. Fluency in English, specially reading. C++ programming. Knowledge of UNIX (LINUX) system and
programming.
4
Outline
Connection Establishment/Termination Sliding Window Revisited Flow Control Adaptive Timeout
5
End-to-End Protocols
Underlying best-effort network– drop messages– re-orders messages– delivers duplicate copies of a given message– limits messages to some finite size– delivers messages after an arbitrarily long delay
Common end-to-end services– guarantee message delivery– deliver messages in the same order they are sent– deliver at most one copy of each message– support arbitrarily large messages– support synchronization– allow the receiver to flow control the sender– support multiple application processes on each host
6
Transport Layer Function(s)
Multiplexing/demultiplexing between network application processes.
Others?– Error Detection within a segment– Reliability– Flow Control.– Congestion control.– Connection Management.
Difference between Error detection and reliability? Difference between flow control and congestion control?
7
Simple Demultiplexor (UDP)
Unreliable and unordered datagram service Adds multiplexing No flow control Endpoints identified by ports
– servers have well-known ports– see /etc/services on Unix
Header format
Optional checksum– pseudo header + UDP header + data
SrcPort DstPort
Checksum Length
Data
0 16 31
8
Using UDP
Non-standard protocols can be implemented on top of UDP.
– Non-standard = non-TCP in practice– use the port addressing provided by UDP– implement their own reliability, flow control, ordering,
congestion control ? Examples:
– remote procedure calls– multimedia– distributed computing
9
TCP Overview
Connection-oriented Byte-stream
– app writes bytes– TCP sends segments– app reads bytes
Application process
Writebytes
TCPSend buffer
Segment Segment Segment
Transmit segments
Application process
Readbytes
TCPReceive buffer
…
… …
Full duplex Flow control: keep sender from
overrunning receiver Congestion control: keep sender
from overrunning network
10
High level TCP Characteristics
Connection-oriented reliable byte-stream protocol.– Used for file transfers, telnet, web access, ….
Two way connections.– control information for one direction piggy-backed on data flow in
other direction– header fields fall in three classes: general, forward flow, opposite
flow Protocol has evolved over time and will continue to do
so.– Nearly impossible to change the header– Uses options to add information to the header– Change processing at endpoints– Backward compatibility is what makes it TCP
11
Data Link Versus Transport
Potentially connects many different hosts (logical connection)
– need explicit connection establishment and termination Potentially different RTT
– need adaptive timeout mechanism Potentially reordering packets. (How far?), Maximum
segment life time. Currently 120 sec. Potentially long delay in network
– need to be prepared for arrival of very old packets– Delay X bandwidth?– Buffer size
12
Data Link Versus Transport (cont)
Potentially different capacity at destination – need to accommodate different node capacity
Potentially different network capacity– need to be prepared for network congestion
13
Data delivery in TCP
TCP is byte oriented, however transmit data in segments (messages).
How TCP knows the time for delivery?– Maximum Segment Size (MSS)– Timer– Pushed by the application. Like telnet.
14
Segment Format
Options (variable)
Data
Checksum
SrcPort DstPort
HdrLen 0 Flags
UrgPtr
AdvertisedWindow
SequenceNum
Acknowledgment
0 4 10 16 31
15
Segment Format (cont)
Each connection identified with 4-tuple:– (SrcPort, SrcIPAddr, DsrPort, DstIPAddr)
Sliding window + flow control– acknowledgment, SequenceNum, AdvertisedWinow
Checksum– pseudo header + TCP header + data
Sender
Data (SequenceNum)
Acknowledgment +AdvertisedWindow
Receiver
16
Segment Format (cont)
Flags– SYN, FIN, RESET, PUSH, URG, ACK– SYN and FIN for establish and tear down connection.
– ACK indicates the Ack field is valid.– URG shows some part of data is urgent.(Up to UrgPtr).
– PUSH shows the sender had push operation.– RESET shows confusion in receiver.
17
Connection Establishment and Termination
Active participant(client)
Passive participant(server)
SYN, SequenceNum = x
SYN + ACK, SequenceNum = y,
ACK, Acknowledgment = y + 1
Acknowledgment = x + 1
Client does active connection. Server must do passive connection first.
Closing is symmetric, both side must tear down the connection.
Three way handshaking. Connection parameter are exchanged first.Acknowledgment shows the next expected sequence number.
18
State Transition Diagram
CLOSED
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 two segment lifetimes
FIN/ACK
ACK
ACK
ACK
Close /FIN
Close
CLOSED
Active open /SYN
19
State Transition (cont)
Sliding window is in ESTABLISHED. All connections start with CLOSED. Arcs are tagged with event/action. Triggering a transition.
– Arriving a segment from a peer.– Envoking by an application.
20
Sliding Window Revisited
Sending side– LastByteAcked < = LastByteSent
– LastByteSent < = LastByteWritten
– buffer bytes between LastByteAcked and LastByteWritten
Sending application
LastByteWrittenTCP
LastByteSentLastByteAcked
Receiving application
LastByteReadTCP
LastByteRcvdNextByteExpected
Receiving side– LastByteRead < NextByteExpected
– NextByteExpected < = LastByteRcvd +1
– buffer bytes between LastByteRead and LastByteRcvd
21
Flow Control
Send buffer size: MaxSendBuffer Receive buffer size: MaxRcvBuffer Receiving side
– LastByteRcvd - LastByteRead < = MaxRcvBuffer– AdvertisedWindow = MaxRcvBuffer - (NextByteExpected -
LastByteRead) Sending side
– LastByteWritten - LastByteAcked < = MaxSendBuffer– block sender if (LastByteWritten - LastByteAcked) + y >
MaxSenderBuffer
– LastByteSent - LastByteAcked < = AdvertisedWindow– EffectiveWindow = AdvertisedWindow - (LastByteSent -
LastByteAcked) Always send ACK in response to arriving data segment Persist when AdvertisedWindow = 0
22
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
23
Keeping the Pipe Full
16-bit AdvertisedWindow
Bandwidth Delay x Bandwidth Product
T1 (1.5 Mbps) 18KB
Ethernet (10 Mbps) 122KB
T3 (45 Mbps) 549KB
FDDI (100 Mbps) 1.2MB
STS-3 (155 Mbps) 1.8MB
STS-12 (622 Mbps) 7.4MB
STS-24 (1.2 Gbps) 14.8MB
24
TCP Extensions
Implemented as header options Store timestamp in outgoing segments Extend sequence space with 32-bit
timestamp (PAWS) Shift (scale) advertised window
25
Adaptive Retransmission (Original Algorithm)
Measure SampleRTT for each segment/ ACK pair Compute weighted average of RTT
– EstRTT = x EstRTT + x SampleRTT– where + = 1 between 0.8 and 0.9 between 0.1 and 0.2
Set timeout based on EstRTT– TimeOut = 2 x EstRTT
26
Karn/Partridge Algorithm
Do not sample RTT when retransmitting Double timeout after each retransmission
Sender Receiver
Original transmission
ACK
Sam
pleR
TT
Retransmission
Sender Receiver
Original transmission
ACK
Sam
pleR
TT
Retransmission
27
Jacobson/ Karels Algorithm
New Calculations for average RTT Diff = SampleRTT - EstRTT EstRTT = EstRTT + ( x Diff) Dev = Dev + ( |Diff| - Dev)
– where is a factor between 0 and 1 Consider variance when setting timeout value TimeOut = x EstRTT + x Dev
– where = 1 and = 4 Notes
– algorithm only as good as granularity of clock (500ms on Unix)– accurate timeout mechanism important to congestion control (later)