SlideShare a Scribd company logo
1
Transmission Control Protocol
K. PALANIVEL
Systems Analyst, Computer Centre
Pondicherry University, Puducherry – 605014.
LECTURE 8
COMS 525: TCPIP
COURSE
TOPIC
Part - II
What is Flow/Congestion/Error Control ?
• Flow Control: Algorithms to prevent that the sender
overruns the receiver with information
• Error Control: Algorithms to recover or conceal the
effects from packet losses
• Congestion Control: Algorithms to prevent that the
sender overloads the network
• The goal of each of the control mechanisms are
different.
• In TCP, the implementation of these algorithms is
combined
Acknowledgements in TCP
• TCP receivers use acknowledgments (ACKs) to confirm
the receipt of data to the sender
• Acknowledgment can be added (“piggybacked”) to a data
segment that carries data in the opposite direction
• ACK information is included in the the TCP header
• Acknowledgements are used for flow control, error
control, and congestion control
Data for B
A BData for A ACK
ACK
Sequence Numbers and Acknowledgments in TCP
• TCP uses sequence numbers to keep track of transmitted and
acknowledged data
• Each transmitted byte of payload data is associated with a
sequence number
• Sequence numbers count bytes and not segments
• Sequence number of first byte in payload is written in SeqNo
field
• Sequence numbers wrap when they reach 232-1
• The sequence number of the first sequence number (Initial
sequence number) is negotiated during connection setup
Sequence number (SeqNo) (32 bits)
Source Port Number Destination Port Number
Acknowledgement number (AckNo)(32 bits)
window size
header
length
0 Flags
TCP checksum urgent pointer 4
Sequence Numbers and Acknowledgments in TCP
• An acknowledgment is a confirmation of delivery of data
• When a TCP receiver wants to acknowledge data, it
– writes a sequence number in the AckNo field, and
– sets the ACK flag
IMPORTANT: An acknowledgment confirms receipt for all
unacknowledged data that has a smaller sequence number
than given in the AckNo field
Example: AckNo=5 confirms delivery for 1,2,3,4 (but not 5).
Sequence number (SeqNo) (32 bits)
Source Port Number Destination Port Number
Acknowledgement number (AckNo)(32 bits)
window size
header
length
0 Flags
TCP checksum urgent pointer
5
Cumulative Acknowledgements
• TCP has cumulative acknowledgements:
An acknowledgment confirms the receipt of all
unacknowledged data with a smaller sequence number
6
A
B
Cumulative Acknowledgements
• With cumulative ACKs, the receiver can only
acknowledge a segment if all previous segments
have been received
• With cumulative ACKs, receiver cannot
selectively acknowledge blocks of segments:
e.g., ACK for S0-S3 and S5-S7 (but not for S4)
• Note: The use of cumulative ACKs imposes
constraints on the retransmission schemes:
– In case of an error, the sender may need to retransmit
all data that has not been acknowledged
7
Rules for sending Acknowledgments
• TCP has rules that influence the transmission of
acknowledgments
• Rule 1: Delayed Acknowledgments
– Goal: Avoid sending ACK segments that do not carry data
– Implementation: Delay the transmission of (some) ACKs
• Rule 2: Nagle’s rule
– Goal: Reduce transmission of small segments
– Implementation: A sender cannot send multiple segments
with a 1-byte payload (i.e., it must wait for an ACK)
8
Observing Delayed Acknowledgements
9
• Remote terminal applications (e.g., Telnet) send characters to a
server. The server interprets the character and sends the output at
the server to the client.
• For each character typed, you see three packets:
1. Client  Server: Send typed character
2. Server  Client: Echo of character (or user output) and
acknowledgement for first packet
3. Client  Server: Acknowledgement for second packet
Observing Delayed Acknowledgements
• This is the output of typing 3 (three) characters :
Time 44.062449: Argon  Neon: Push, SeqNo 0:1(1), AckNo 1
Time 44.063317: Neon  Argon: Push, SeqNo 1:2(1), AckNo 1
Time 44.182705: Argon  Neon: No Data, AckNo 2
Time 48.946471: Argon  Neon: Push, SeqNo 1:2(1), AckNo 2
Time 48.947326: Neon  Argon: Push, SeqNo 2:3(1), AckNo 2
Time 48.982786: Argon  Neon: No Data, AckNo 3
Time 55.116581: Argon  Neon: Push, SeqNo 2:3(1) AckNo 3
Time 55.117497: Neon  Argon: Push, SeqNo 3:4(1) AckNo 3
Time 55.183694: Argon  Neon: No Data, AckNo 4
10
Argon Neon
Telnet session
from Argon
to Neon
Why 3 segments per character?
• We would expect four
segments per character:
• But we only see three
segments per character:
• This is due to delayed
acknowledgements
11
character
ACK of character
ACK of echoed character
echo of character
character
ACK and echo of character
ACK of echoed character
Delayed Acknowledgement
• TCP delays transmission of ACKs for up to 200ms
• Goal: Avoid to send ACK packets that do not carry data.
– The hope is that, within the delay, the receiver will have data
ready to be sent to the receiver. Then, the ACK can be
piggybacked with a data segment
In Example:
– Delayed ACK explains why the “ACK of character” and the
“echo of character” are sent in the same segment
– The duration of delayed ACKs can be observed in the example
when Argon sends ACKs
Exceptions:
• ACK should be sent for every second full sized segment
• Delayed ACK is not used when packets arrive out of order
12
• Because of delayed ACKs, an ACK is often
observed for every other segment
13
Delayed Acknowledgement
A
B
Max. Delay
for an ACK
Observing Nagle’s Rule
• This is the output of typing 7 characters :
Time 16.401963: Argon  Tenet: Push, SeqNo 1:2(1), AckNo 2
Time 16.481929: Tenet  Argon: Push, SeqNo 2:3(1) , AckNo 2
Time 16.482154: Argon  Tenet: Push, SeqNo 2:3(1) , AckNo 3
Time 16.559447: Tenet  Argon: Push, SeqNo 3:4(1), AckNo 3
Time 16.559684: Argon  Tenet: Push, SeqNo 3:4(1), AckNo 4
Time 16.640508: Tenet  Argon: Push, SeqNo 4:5(1) AckNo 4
Time 16.640761: Argon  Tenet: Push, SeqNo 4:8(4) AckNo 5
Time 16.728402: Tenet  Argon: Push, SeqNo 5:9(4) AckNo 8
argon.cs.virginia.edu
3000
miles
tenet.cs.berkeley.edu
Telnet session
between argon.cs.virginia.edu
and
tenet.cs.berkeley.edu
Observing Nagle’s Rule
• Observation: Transmission
of segments follows a
different pattern, i.e., there
are only two segments per
character typed
• Delayed acknowledgment
does not kick in at Argon
• The reason is that there is
always data at Argon ready
to sent when the ACK arrives
• Why is Argon not sending
the data (typed character) as
soon as it is available?
15
char1
ACK of char 1 + echo of char1
ACK + char2
ACK + echo of char2
ACK + char3
ACK + echo of char3
ACK + char4-7
ACK + echo of char3
Observing Nagle’s Rule
• Observations:
– Argon never has multiple unacknowledged segments
outstanding
– There are fewer transmissions than there are characters.
This is due to Nagle’s Rule:
– Each TCP connection can have only one small (1-byte)
segment outstanding that has not been acknowledged
• Implementation: Send one byte and buffer all subsequent
bytes until acknowledgement is received.Then send all
buffered bytes in a single segment. (Only enforced if byte is
arriving from application one byte at a time)
• Goal of Nagle’s Rule: Reduce the amount of small segments.
• The algorithm can be disabled.
16
• Only one 1-byte segment can be in transmission (Here: Since no
data is sent from B to A, we also see delayed ACKs)
17
A
B
Nagle’s Rule
Typed
characters
Delayed ACKDelayed ACK Delayed ACK
18
TCP Flow Control
TCP Flow Control
• TCP uses a version of the sliding window flow
control, where
• Sending acknowledgements is separated from
setting the window size at sender
• Acknowledgements do not automatically
increase the window size
• During connection establishment, both ends of a TCP
connection set the initial size of the sliding window
19
Window Management in TCP
• The receiver is returning two parameters to the sender
• The interpretation is:
• I am ready to receive new data with
SeqNo= AckNo, AckNo+1, …., AckNo+Win-1
• Receiver can acknowledge data without opening the
window
• Receiver can change the window size without
acknowledging data
20
AckNo
window size
(win)
32 bits 16 bits
Sliding Window Flow Control
1 2 3 4 5 6 7 8 9 10 11
Advertised window
sent but not
acknowledged can be sent
USABLE
WINDOW
sent and
acknowledged
can't sent
21
• Sliding Window Protocol is performed at the byte level:
• Here: Sender can transmit sequence numbers 6,7,8.
Sliding Window: “Window Closes”
1 2 3 4 5 6 7 8 9 10 11
1 2 3 4 5 6 7 8 9 10 11
Transmit Byte 6
1 2 3 4 5 6 7 8 9 10 11
AckNo = 5, Win = 4
is received
22
• Transmission of a single byte (with SeqNo = 6) and
acknowledgement is received (AckNo = 5, Win=4):
Sliding Window: “Window Opens”
1 2 3 4 5 6 7 8 9 10 11
1 2 3 4 5 6 7 8 9 10 11
AckNo = 5, Win = 6
is received
23
• Acknowledgement is received that enlarges the window to the
right (AckNo = 5, Win=6):
• A receiver opens a window when TCP buffer empties (meaning
that data is delivered to the application).
Sliding Window: “Window Shrinks”
1 2 3 4 5 6 7 8 9 10 11
1 2 3 4 5 6 7 8 9 10 11
AckNo = 5, Win = 3
is received
24
• Acknowledgement is received that reduces the window from
the right (AckNo = 5, Win=3):
• Shrinking a window should not be used
Sliding Window: Example
3K
2K SeqNo=0
Receiver
Buffer
0 4K
Sender
sends 2K
of data
2K
AckNo=2048 Win=2048
Sender
sends 2K
of data 2K SeqNo=2048
4K
AckNo=4096 Win=0
AckNo=4096 Win=1024
Senderblocked
26
Back to TCP
TCP Error Control
Error Control in TCP
• TCP maintains a Retransmission Timer for each
connection:
– The timer is started during a transmission. A
timeout causes a retransmission
• TCP couples error control and congestion control
(i.e., it assumes that errors are caused by congestion)
– Retransmission mechanism is part of congestion
control algorithm
• Here: How to set the timeout value of the
retransmission timer?
TCP Retransmission Timer
• Retransmission Timer:
– The setting of the retransmission timer is crucial for
efficiency
– Timeout value too small  results in unnecessary
retransmissions
– Timeout value too large  long waiting time before
a retransmission can be issued
– A problem is that the delays in the network are not
fixed
– Therefore, the retransmission timers must be adaptive
28
Round-Trip Time Measurements
• The retransmission mechanism of TCP is adaptive
• The retransmission timers are set based on round-
trip time (RTT) measurements that TCP performs
29
Segment 1
Segment 4
ACK for Segment 1
Segment 2
Segment 3
ACK for Segment 2 + 3
Segment 5
ACK for Segment 4
ACK for Segment 5
RTT#1RTT#2RTT#3
The RTT is based on time
difference between segment
transmission and ACK
But:
TCP does not ACK each
segment
Each connection has only one
timer
Round-Trip Time Measurements
• Retransmission timer is set to a Retransmission
Timeout (RTO) value.
• RTO is calculated based on the RTT measurements.
• The RTT measurements are smoothed by the following
estimators srtt and rttvar:
srttn+1 = a RTT + (1- a ) srttn
rttvarn+1 = b ( | RTT - srttn+1 | ) + (1- b )
rttvarn
RTOn+1 = srttn+1 + 4 rttvarn+1
• The gains are set to a =1/4 and b =1/8
• srtt0 = 0 sec, rttvar0 = 3 sec, Also: RTO1 = srtt1 + 2
rttvar1
30
Karn’s Algorithm
• If an ACK for a retransmitted
segment is received, the sender
cannot tell if the ACK belongs
to the original or the
retransmission.
31
segment
ACK
retransmissionof segment
Timeout !
RTT?
RTT?
Karn’s Algorithm:
Don’t update srtt on any segments that have been
retransmitted.
Each time when TCP retransmits, it sets:
RTOn+1 = max ( 2 RTOn, 64) (exponential backoff)
Measuring TCP Retransmission Timers
32
ellington.cs.virginia.edu satchmo.cs.virginia.edu
ftp session
from ellington
to satchmo
•Transfer file from ellington to satchmo
• Unplug Ethernet cable in the middle of file transfer
Exponential Backoff
• Scenario: File transfer
between two machines.
Disconnect cable.
• The interval between
retransmission attempts in
seconds is:
1.03, 3, 6, 12, 24, 48, 64, 64,
64, 64, 64, 64, 64.
• Time between retrans-
missions is doubled each
time (Exponential Backoff
Algorithm)
• Timer is not increased
beyond 64 seconds
• TCP gives up after 13th
attempt and 9 minutes.
0
100
200
300
400
500
600
Seconds
0 2 4 6 8 10 12
Transmission Attempts
33
34
Back to TCP
TCP Congestion Control
TCP Congestion Control
• TCP has a mechanism for congestion control. The
mechanism is implemented at the sender
• The window size at the sender is set as follows:
Send Window = MIN (flow control window,
congestion window)
where
– flow control window is advertised by the receiver
– congestion window is adjusted based on feedback
from the network
35
TCP Congestion Control
• TCP congestion control is governed by two
parameters:
– Congestion Window (cwnd)
Slow-start threshhold Value (ssthresh)
Initial value is 216-1
• Congestion control works in two modes:
– slow start (cwnd < ssthresh)
– congestion avoidance (cwnd ≥ ssthresh
36
Slow Start
• Initial value: Set cwnd = 1
» Note: Unit is a segment size. TCP actually is based on bytes
and increments by 1 MSS (maximum segment size)
• The receiver sends an acknowledgement (ACK) for each Segment
» Note: Generally, a TCP receiver sends an ACK for every
other segment.
• Each time an ACK is received by the sender, the congestion window is
increased by 1 segment:
cwnd = cwnd + 1
» If an ACK acknowledges two segments, cwnd is still
increased by only 1 segment.
» Even if ACK acknowledges a segment that is smaller than
MSS bytes long, cwnd is increased by 1.
• Does Slow Start increment slowly? Not really.
In fact, the increase of cwnd is exponential
37
Slow Start Example
• The congestion
window size grows
very rapidly
– For every ACK,
we increase cwnd
by 1 irrespective
of the number of
segments ACK’ed
• TCP slows down
the increase of
cwnd when
cwnd > ssthresh
38
segment 1
ACK for segment 1
cwnd = 1
cwnd = 2 segment 2
segment 3
ACK for segments 2
cwnd = 4 segment 4
segment 5
segment 6
ACK for segments 4
cwnd = 7
ACK for segments 3
ACK for segments 5
ACK for segments 6
Congestion Avoidance
• Congestion avoidance phase is started if cwnd has
reached the slow-start threshold value
• If cwnd ≥ ssthresh then each time an ACK is
received, increment cwnd as follows:
• cwnd = cwnd + 1/ cwnd
• So cwnd is increased by one only if all cwnd
segments have been acknowledged.
39
Example of
Slow Start/Congestion Avoidance
Assume that ssthresh = 8
40
cwnd = 1
cwnd = 2
cwnd = 4
cwnd = 8
cwnd = 9
cwnd = 10
0
2
4
6
8
10
12
14
t=0
t=2
t=4
t=6
Roundtrip times
Cwnd(insegments)
ssthresh
Responses to Congestion
• So, TCP assumes there is congestion if it detects a packet loss
• A TCP sender can detect lost packets via:
• Timeout of a retransmission timer
• Receipt of a duplicate ACK
• TCP interprets a Timeout as a binary congestion signal. When
a timeout occurs, the sender performs:
– cwnd is reset to one:
cwnd = 1
– ssthresh is set to half the current size of the congestion
window:
ssthressh = cwnd / 2
– and slow-start is entered
41
Summary of TCP congestion control
Initially:
cwnd = 1;
ssthresh =
advertised window size;
New Ack received:
if (cwnd < ssthresh)
/* Slow Start*/
cwnd = cwnd + 1;
else
/* Congestion Avoidance */
cwnd = cwnd + 1/cwnd;
Timeout:
/* Multiplicative decrease */
ssthresh = cwnd/2;
cwnd = 1;
42
Slow Start / Congestion Avoidance
• A typical plot of cwnd for a TCP connection (MSS
= 1500 bytes) with TCP Tahoe:
43
Acknowledgments in TCP
• Receiver sends ACK to sender
– ACK is used for flow control,
error control, and congestion
control
• ACK number sent is the next
sequence number expected
• Delayed ACK: TCP receiver normally
delays transmission of an ACK (for
about 200ms)
• ACKs are not delayed when packets
are received out of sequence
– Why?
1K SeqNo=0
AckNo=1024
1K SeqNo=1024
AckNo=2048
SeqNo=2048
SeqNo=3072
AckNo=2048
1K
1K
44
Lost segment
Acknowledgments in TCP
• Receiver sends ACK to sender
– ACK is used for flow control,
error control, and congestion
control
• ACK number sent is the next
sequence number expected
• Delayed ACK: TCP receiver
normally delays transmission of an
ACK (for about 200ms)
– Why?
• ACKs are not delayed when
packets are received out of
sequence
– Why?
1K SeqNo=0
AckNo=1024
1K SeqNo=1024
AckNo=2048
SeqNo=3072
AckNo=2048
SeqNo=2048 1K1K
45
Out-of-order arrivals
Fast Retransmit
• If three or more duplicate ACKs
are received in a row, the TCP
sender believes that a segment
has been lost.
• Then TCP performs a
retransmission of what seems to
be the missing segment, without
waiting for a timeout to happen.
• Enter slow start:
ssthresh = cwnd/2
cwnd = 1
1K SeqNo=0
AckNo=1024
AckNo=1024
1K SeqNo=1024
SeqNo=2048
1K
AckNo=1024
SeqNo=3072
1K
SeqNo=4096
1K
1. duplicate
2. duplicate
AckNo=1024
SeqNo=1024
1K
SeqNo=5120
1K
3. duplicate
46
Fast Recovery
• Fast recovery avoids slow start after a fast
retransmit
• Intuition: Duplicate ACKs indicate that
data is getting through
• After three duplicate ACKs set:
– Retransmit packet that is presumed
lost
– ssthresh = cwnd/2
– cwnd = cwnd+3
– (note the order of operations)
– Increment cwnd by one for each
additional duplicate ACK
• When ACK arrives that acknowledges
“new data” (here: AckNo=6148), set:
cwnd=ssthresh
enter congestion avoidance
1K SeqNo=0
AckNo=1024
AckNo=1024
1K SeqNo=1024
SeqNo=2048
1K
AckNo=1024
SeqNo=3072
1K
SeqNo=4096
1K
1. duplicate
2. duplicate
AckNo=1024
SeqNo=1024
1K
SeqNo=5120
1K
3. duplicate
cwnd=12
sshtresh=5
cwnd=12
sshtresh=5
cwnd=12
sshtresh=5
cwnd=12
sshtresh=5
cwnd=15
sshtresh=6
AckNo=6148cwnd=6
sshtresh=6
ACK for new data
47
SACK
• SACK = Selective acknowledgment
• Issue: Reno and New Reno retransmit at most 1 lost packet per
round trip time
• Selective acknowledgments: The receiver can acknowledge
non-continuous blocks of data (SACK 0-1023, 1024-2047)
• Multiple blocks can be sent in a single segment.
• TCP SACK:
– Enters fast recovery upon 3 duplicate ACKs
– Sender keeps track of SACKs and infers if segments are
lost. Sender retransmits the next segment from the list of
segments that are deemed lost.
48
QUESTIONS ???
Ad

More Related Content

What's hot (19)

Introduction to TCP
Introduction to TCPIntroduction to TCP
Introduction to TCP
Pradeep Kumar TS
 
9 ipv6-routing
9 ipv6-routing9 ipv6-routing
9 ipv6-routing
Olivier Bonaventure
 
Computer Networking : Principles, Protocols and Practice - lesson 1
Computer Networking : Principles, Protocols and Practice - lesson 1Computer Networking : Principles, Protocols and Practice - lesson 1
Computer Networking : Principles, Protocols and Practice - lesson 1
Olivier Bonaventure
 
Tcpip 1
Tcpip 1Tcpip 1
Tcpip 1
myrajendra
 
Network scan
Network scanNetwork scan
Network scan
penetration Tester
 
6 app-tcp
6 app-tcp6 app-tcp
6 app-tcp
Olivier Bonaventure
 
Namp
Namp Namp
Namp
penetration Tester
 
An overview of TCP (Transmission Control Protocol)
An overview of TCP (Transmission Control Protocol)An overview of TCP (Transmission Control Protocol)
An overview of TCP (Transmission Control Protocol)
Ammad Marwat
 
Networks lab
Networks labNetworks lab
Networks lab
svijiiii
 
Tcp Analysis Through wiresshark
Tcp Analysis Through wiressharkTcp Analysis Through wiresshark
Tcp Analysis Through wiresshark
Suman_kumari1
 
Beyond TCP: The evolution of Internet transport protocols
Beyond TCP: The evolution of Internet transport protocolsBeyond TCP: The evolution of Internet transport protocols
Beyond TCP: The evolution of Internet transport protocols
Olivier Bonaventure
 
Important tcpudp protocols
Important tcpudp protocolsImportant tcpudp protocols
Important tcpudp protocols
Saravanan Kanagasabapathi
 
Future Internet protocols
Future Internet protocolsFuture Internet protocols
Future Internet protocols
Olivier Bonaventure
 
Importance of sliding window protocol
Importance of sliding window protocolImportance of sliding window protocol
Importance of sliding window protocol
eSAT Journals
 
Week5 lec1-bscs1
Week5 lec1-bscs1Week5 lec1-bscs1
Week5 lec1-bscs1
syedhaiderraza
 
Part 5 : Sharing resources, security principles and protocols
Part 5 : Sharing resources, security principles and protocolsPart 5 : Sharing resources, security principles and protocols
Part 5 : Sharing resources, security principles and protocols
Olivier Bonaventure
 
TCP protocol flow control
TCP protocol flow control TCP protocol flow control
TCP protocol flow control
anuragjagetiya
 
MQTC V2.0.1.3 - WMQ & TCP Buffers – Size DOES Matter! (pps)
MQTC V2.0.1.3 - WMQ & TCP Buffers – Size DOES Matter! (pps)MQTC V2.0.1.3 - WMQ & TCP Buffers – Size DOES Matter! (pps)
MQTC V2.0.1.3 - WMQ & TCP Buffers – Size DOES Matter! (pps)
Art Schanz
 
Ntdd
NtddNtdd
Ntdd
DIKSHA_LAHRANI
 
Computer Networking : Principles, Protocols and Practice - lesson 1
Computer Networking : Principles, Protocols and Practice - lesson 1Computer Networking : Principles, Protocols and Practice - lesson 1
Computer Networking : Principles, Protocols and Practice - lesson 1
Olivier Bonaventure
 
An overview of TCP (Transmission Control Protocol)
An overview of TCP (Transmission Control Protocol)An overview of TCP (Transmission Control Protocol)
An overview of TCP (Transmission Control Protocol)
Ammad Marwat
 
Networks lab
Networks labNetworks lab
Networks lab
svijiiii
 
Tcp Analysis Through wiresshark
Tcp Analysis Through wiressharkTcp Analysis Through wiresshark
Tcp Analysis Through wiresshark
Suman_kumari1
 
Beyond TCP: The evolution of Internet transport protocols
Beyond TCP: The evolution of Internet transport protocolsBeyond TCP: The evolution of Internet transport protocols
Beyond TCP: The evolution of Internet transport protocols
Olivier Bonaventure
 
Importance of sliding window protocol
Importance of sliding window protocolImportance of sliding window protocol
Importance of sliding window protocol
eSAT Journals
 
Part 5 : Sharing resources, security principles and protocols
Part 5 : Sharing resources, security principles and protocolsPart 5 : Sharing resources, security principles and protocols
Part 5 : Sharing resources, security principles and protocols
Olivier Bonaventure
 
TCP protocol flow control
TCP protocol flow control TCP protocol flow control
TCP protocol flow control
anuragjagetiya
 
MQTC V2.0.1.3 - WMQ & TCP Buffers – Size DOES Matter! (pps)
MQTC V2.0.1.3 - WMQ & TCP Buffers – Size DOES Matter! (pps)MQTC V2.0.1.3 - WMQ & TCP Buffers – Size DOES Matter! (pps)
MQTC V2.0.1.3 - WMQ & TCP Buffers – Size DOES Matter! (pps)
Art Schanz
 

Similar to 09 coms 525 tcpip - tcp 2 (20)

TCP Part I How does it work - module13-tcp1.ppt
TCP Part I How does it work - module13-tcp1.pptTCP Part I How does it work - module13-tcp1.ppt
TCP Part I How does it work - module13-tcp1.ppt
JeanLuc86
 
tcpflowcontrolanurag-150513130509-lva1-app6892 (1).pptx
tcpflowcontrolanurag-150513130509-lva1-app6892 (1).pptxtcpflowcontrolanurag-150513130509-lva1-app6892 (1).pptx
tcpflowcontrolanurag-150513130509-lva1-app6892 (1).pptx
GOKULKANNANMMECLECTC
 
6610-l14.pptx
6610-l14.pptx6610-l14.pptx
6610-l14.pptx
ArvindRamesh22
 
Transmission Control Protocol (TCP) connection oriented
Transmission Control Protocol (TCP) connection orientedTransmission Control Protocol (TCP) connection oriented
Transmission Control Protocol (TCP) connection oriented
devarahul1
 
Flow Control (1).ppt
Flow Control (1).pptFlow Control (1).ppt
Flow Control (1).ppt
sarthakgithub
 
Lecture 5
Lecture 5Lecture 5
Lecture 5
ntpc08
 
Part5-tcp-improvements.pptx
Part5-tcp-improvements.pptxPart5-tcp-improvements.pptx
Part5-tcp-improvements.pptx
Olivier Bonaventure
 
14-Error Detection Techniques-22-01-2025.pdf
14-Error Detection Techniques-22-01-2025.pdf14-Error Detection Techniques-22-01-2025.pdf
14-Error Detection Techniques-22-01-2025.pdf
abhimanyuyadav2022
 
TCP/IP
TCP/IPTCP/IP
TCP/IP
Anju Kanjirathingal
 
Transmission control protocol ...............................
Transmission control protocol ...............................Transmission control protocol ...............................
Transmission control protocol ...............................
SwatiHans10
 
Transmission control protocol _
Transmission control protocol            _Transmission control protocol            _
Transmission control protocol _
SwatiHans10
 
Olumide pidan b
Olumide pidan bOlumide pidan b
Olumide pidan b
Amit Ranjan
 
Eshcol tech solutions pvt ltd
Eshcol tech solutions pvt ltdEshcol tech solutions pvt ltd
Eshcol tech solutions pvt ltd
Ojas Kumar
 
NE #1.pptx
NE #1.pptxNE #1.pptx
NE #1.pptx
tahaniali27
 
the TCP transmission control protocol
the     TCP transmission control protocolthe     TCP transmission control protocol
the TCP transmission control protocol
anushka8340
 
Go back-n protocol
Go back-n protocolGo back-n protocol
Go back-n protocol
STEFFY D
 
Module15: Sliding Windows Protocol and Error Control
Module15: Sliding Windows Protocol and Error Control Module15: Sliding Windows Protocol and Error Control
Module15: Sliding Windows Protocol and Error Control
gondwe Ben
 
Mobile comn.pptx
Mobile comn.pptxMobile comn.pptx
Mobile comn.pptx
DAMANDEEPSINGH61
 
TCP timers.ppt
TCP timers.pptTCP timers.ppt
TCP timers.ppt
Jayaprasanna4
 
TCP Part I How does it work - module13-tcp1.ppt
TCP Part I How does it work - module13-tcp1.pptTCP Part I How does it work - module13-tcp1.ppt
TCP Part I How does it work - module13-tcp1.ppt
JeanLuc86
 
tcpflowcontrolanurag-150513130509-lva1-app6892 (1).pptx
tcpflowcontrolanurag-150513130509-lva1-app6892 (1).pptxtcpflowcontrolanurag-150513130509-lva1-app6892 (1).pptx
tcpflowcontrolanurag-150513130509-lva1-app6892 (1).pptx
GOKULKANNANMMECLECTC
 
Transmission Control Protocol (TCP) connection oriented
Transmission Control Protocol (TCP) connection orientedTransmission Control Protocol (TCP) connection oriented
Transmission Control Protocol (TCP) connection oriented
devarahul1
 
Flow Control (1).ppt
Flow Control (1).pptFlow Control (1).ppt
Flow Control (1).ppt
sarthakgithub
 
Lecture 5
Lecture 5Lecture 5
Lecture 5
ntpc08
 
14-Error Detection Techniques-22-01-2025.pdf
14-Error Detection Techniques-22-01-2025.pdf14-Error Detection Techniques-22-01-2025.pdf
14-Error Detection Techniques-22-01-2025.pdf
abhimanyuyadav2022
 
Transmission control protocol ...............................
Transmission control protocol ...............................Transmission control protocol ...............................
Transmission control protocol ...............................
SwatiHans10
 
Transmission control protocol _
Transmission control protocol            _Transmission control protocol            _
Transmission control protocol _
SwatiHans10
 
Eshcol tech solutions pvt ltd
Eshcol tech solutions pvt ltdEshcol tech solutions pvt ltd
Eshcol tech solutions pvt ltd
Ojas Kumar
 
the TCP transmission control protocol
the     TCP transmission control protocolthe     TCP transmission control protocol
the TCP transmission control protocol
anushka8340
 
Go back-n protocol
Go back-n protocolGo back-n protocol
Go back-n protocol
STEFFY D
 
Module15: Sliding Windows Protocol and Error Control
Module15: Sliding Windows Protocol and Error Control Module15: Sliding Windows Protocol and Error Control
Module15: Sliding Windows Protocol and Error Control
gondwe Ben
 
Ad

More from Palanivel Kuppusamy (17)

16 coms 525 tcpip - routing protocols -all
16    coms 525 tcpip - routing protocols -all16    coms 525 tcpip - routing protocols -all
16 coms 525 tcpip - routing protocols -all
Palanivel Kuppusamy
 
15 coms 525 tcpip - border gateway protocols
15    coms 525 tcpip - border gateway protocols15    coms 525 tcpip - border gateway protocols
15 coms 525 tcpip - border gateway protocols
Palanivel Kuppusamy
 
14 coms 525 tcpip - applications - snmp
14    coms 525 tcpip - applications - snmp14    coms 525 tcpip - applications - snmp
14 coms 525 tcpip - applications - snmp
Palanivel Kuppusamy
 
13 coms 525 tcpip - applications - file transfer protocol
13   coms 525 tcpip - applications - file transfer protocol13   coms 525 tcpip - applications - file transfer protocol
13 coms 525 tcpip - applications - file transfer protocol
Palanivel Kuppusamy
 
12 coms 525 tcpip - applications - http - telnet
12   coms 525 tcpip - applications - http - telnet12   coms 525 tcpip - applications - http - telnet
12 coms 525 tcpip - applications - http - telnet
Palanivel Kuppusamy
 
11 coms 525 tcpip - internet protocol - forward
11   coms 525 tcpip - internet protocol - forward11   coms 525 tcpip - internet protocol - forward
11 coms 525 tcpip - internet protocol - forward
Palanivel Kuppusamy
 
10 coms 525 tcpip - internet protocol - ip
10   coms 525 tcpip -  internet protocol - ip10   coms 525 tcpip -  internet protocol - ip
10 coms 525 tcpip - internet protocol - ip
Palanivel Kuppusamy
 
08 coms 525 tcpip - tcp 1
08   coms 525 tcpip - tcp 108   coms 525 tcpip - tcp 1
08 coms 525 tcpip - tcp 1
Palanivel Kuppusamy
 
07 coms 525 tcpip - udp
07    coms 525 tcpip - udp07    coms 525 tcpip - udp
07 coms 525 tcpip - udp
Palanivel Kuppusamy
 
07 coms 525 tcpip - udp [autosaved]
07    coms 525 tcpip - udp [autosaved]07    coms 525 tcpip - udp [autosaved]
07 coms 525 tcpip - udp [autosaved]
Palanivel Kuppusamy
 
06 coms 525 tcpip - dhcp and dns
06   coms 525 tcpip - dhcp and dns06   coms 525 tcpip - dhcp and dns
06 coms 525 tcpip - dhcp and dns
Palanivel Kuppusamy
 
05 coms 525 tcpip - icmp
05   coms 525 tcpip - icmp05   coms 525 tcpip - icmp
05 coms 525 tcpip - icmp
Palanivel Kuppusamy
 
04 coms 525 tcpip - arp and rarp
04   coms 525 tcpip - arp and rarp04   coms 525 tcpip - arp and rarp
04 coms 525 tcpip - arp and rarp
Palanivel Kuppusamy
 
03 coms 525 tcpip - ip address
03   coms 525 tcpip -  ip address03   coms 525 tcpip -  ip address
03 coms 525 tcpip - ip address
Palanivel Kuppusamy
 
02 coms 525 tcpip - introduction to tcpip
02   coms 525 tcpip -  introduction to tcpip02   coms 525 tcpip -  introduction to tcpip
02 coms 525 tcpip - introduction to tcpip
Palanivel Kuppusamy
 
01 coms 525 tcpip - networking concepts review
01   coms 525 tcpip - networking concepts review01   coms 525 tcpip - networking concepts review
01 coms 525 tcpip - networking concepts review
Palanivel Kuppusamy
 
00 coms 525 tcpip - introduction to networks
00   coms 525 tcpip -  introduction to networks00   coms 525 tcpip -  introduction to networks
00 coms 525 tcpip - introduction to networks
Palanivel Kuppusamy
 
16 coms 525 tcpip - routing protocols -all
16    coms 525 tcpip - routing protocols -all16    coms 525 tcpip - routing protocols -all
16 coms 525 tcpip - routing protocols -all
Palanivel Kuppusamy
 
15 coms 525 tcpip - border gateway protocols
15    coms 525 tcpip - border gateway protocols15    coms 525 tcpip - border gateway protocols
15 coms 525 tcpip - border gateway protocols
Palanivel Kuppusamy
 
14 coms 525 tcpip - applications - snmp
14    coms 525 tcpip - applications - snmp14    coms 525 tcpip - applications - snmp
14 coms 525 tcpip - applications - snmp
Palanivel Kuppusamy
 
13 coms 525 tcpip - applications - file transfer protocol
13   coms 525 tcpip - applications - file transfer protocol13   coms 525 tcpip - applications - file transfer protocol
13 coms 525 tcpip - applications - file transfer protocol
Palanivel Kuppusamy
 
12 coms 525 tcpip - applications - http - telnet
12   coms 525 tcpip - applications - http - telnet12   coms 525 tcpip - applications - http - telnet
12 coms 525 tcpip - applications - http - telnet
Palanivel Kuppusamy
 
11 coms 525 tcpip - internet protocol - forward
11   coms 525 tcpip - internet protocol - forward11   coms 525 tcpip - internet protocol - forward
11 coms 525 tcpip - internet protocol - forward
Palanivel Kuppusamy
 
10 coms 525 tcpip - internet protocol - ip
10   coms 525 tcpip -  internet protocol - ip10   coms 525 tcpip -  internet protocol - ip
10 coms 525 tcpip - internet protocol - ip
Palanivel Kuppusamy
 
07 coms 525 tcpip - udp [autosaved]
07    coms 525 tcpip - udp [autosaved]07    coms 525 tcpip - udp [autosaved]
07 coms 525 tcpip - udp [autosaved]
Palanivel Kuppusamy
 
06 coms 525 tcpip - dhcp and dns
06   coms 525 tcpip - dhcp and dns06   coms 525 tcpip - dhcp and dns
06 coms 525 tcpip - dhcp and dns
Palanivel Kuppusamy
 
04 coms 525 tcpip - arp and rarp
04   coms 525 tcpip - arp and rarp04   coms 525 tcpip - arp and rarp
04 coms 525 tcpip - arp and rarp
Palanivel Kuppusamy
 
02 coms 525 tcpip - introduction to tcpip
02   coms 525 tcpip -  introduction to tcpip02   coms 525 tcpip -  introduction to tcpip
02 coms 525 tcpip - introduction to tcpip
Palanivel Kuppusamy
 
01 coms 525 tcpip - networking concepts review
01   coms 525 tcpip - networking concepts review01   coms 525 tcpip - networking concepts review
01 coms 525 tcpip - networking concepts review
Palanivel Kuppusamy
 
00 coms 525 tcpip - introduction to networks
00   coms 525 tcpip -  introduction to networks00   coms 525 tcpip -  introduction to networks
00 coms 525 tcpip - introduction to networks
Palanivel Kuppusamy
 
Ad

Recently uploaded (20)

Pope Leo XIV, the first Pope from North America.pptx
Pope Leo XIV, the first Pope from North America.pptxPope Leo XIV, the first Pope from North America.pptx
Pope Leo XIV, the first Pope from North America.pptx
Martin M Flynn
 
How to Configure Extra Steps During Checkout in Odoo 18 Website
How to Configure Extra Steps During Checkout in Odoo 18 WebsiteHow to Configure Extra Steps During Checkout in Odoo 18 Website
How to Configure Extra Steps During Checkout in Odoo 18 Website
Celine George
 
114P_English.pdf114P_English.pdf114P_English.pdf
114P_English.pdf114P_English.pdf114P_English.pdf114P_English.pdf114P_English.pdf114P_English.pdf
114P_English.pdf114P_English.pdf114P_English.pdf
paulinelee52
 
How To Maximize Sales Performance using Odoo 18 Diverse views in sales module
How To Maximize Sales Performance using Odoo 18 Diverse views in sales moduleHow To Maximize Sales Performance using Odoo 18 Diverse views in sales module
How To Maximize Sales Performance using Odoo 18 Diverse views in sales module
Celine George
 
BÀI TẬP BỔ TRỢ TIẾNG ANH 9 THEO ĐƠN VỊ BÀI HỌC - GLOBAL SUCCESS - CẢ NĂM (TỪ...
BÀI TẬP BỔ TRỢ TIẾNG ANH 9 THEO ĐƠN VỊ BÀI HỌC - GLOBAL SUCCESS - CẢ NĂM (TỪ...BÀI TẬP BỔ TRỢ TIẾNG ANH 9 THEO ĐƠN VỊ BÀI HỌC - GLOBAL SUCCESS - CẢ NĂM (TỪ...
BÀI TẬP BỔ TRỢ TIẾNG ANH 9 THEO ĐƠN VỊ BÀI HỌC - GLOBAL SUCCESS - CẢ NĂM (TỪ...
Nguyen Thanh Tu Collection
 
"Bridging Cultures Through Holiday Cards: 39 Students Celebrate Global Tradit...
"Bridging Cultures Through Holiday Cards: 39 Students Celebrate Global Tradit..."Bridging Cultures Through Holiday Cards: 39 Students Celebrate Global Tradit...
"Bridging Cultures Through Holiday Cards: 39 Students Celebrate Global Tradit...
AlionaBujoreanu
 
Classification of mental disorder in 5th semester bsc. nursing and also used ...
Classification of mental disorder in 5th semester bsc. nursing and also used ...Classification of mental disorder in 5th semester bsc. nursing and also used ...
Classification of mental disorder in 5th semester bsc. nursing and also used ...
parmarjuli1412
 
How to Manage Cross Selling in Odoo 18 Sales
How to Manage Cross Selling in Odoo 18 SalesHow to Manage Cross Selling in Odoo 18 Sales
How to Manage Cross Selling in Odoo 18 Sales
Celine George
 
Chemotherapy of Malignancy -Anticancer.pptx
Chemotherapy of Malignancy -Anticancer.pptxChemotherapy of Malignancy -Anticancer.pptx
Chemotherapy of Malignancy -Anticancer.pptx
Mayuri Chavan
 
The role of wall art in interior designing
The role of wall art in interior designingThe role of wall art in interior designing
The role of wall art in interior designing
meghaark2110
 
The History of Kashmir Lohar Dynasty NEP.ppt
The History of Kashmir Lohar Dynasty NEP.pptThe History of Kashmir Lohar Dynasty NEP.ppt
The History of Kashmir Lohar Dynasty NEP.ppt
Arya Mahila P. G. College, Banaras Hindu University, Varanasi, India.
 
MCQ PHYSIOLOGY II (DR. NASIR MUSTAFA) MCQS)
MCQ PHYSIOLOGY II (DR. NASIR MUSTAFA) MCQS)MCQ PHYSIOLOGY II (DR. NASIR MUSTAFA) MCQS)
MCQ PHYSIOLOGY II (DR. NASIR MUSTAFA) MCQS)
Dr. Nasir Mustafa
 
How to Share Accounts Between Companies in Odoo 18
How to Share Accounts Between Companies in Odoo 18How to Share Accounts Between Companies in Odoo 18
How to Share Accounts Between Companies in Odoo 18
Celine George
 
Aerospace Engineering Homework Help Guide – Expert Support for Academic Success
Aerospace Engineering Homework Help Guide – Expert Support for Academic SuccessAerospace Engineering Homework Help Guide – Expert Support for Academic Success
Aerospace Engineering Homework Help Guide – Expert Support for Academic Success
online college homework help
 
How to Add Button in Chatter in Odoo 18 - Odoo Slides
How to Add Button in Chatter in Odoo 18 - Odoo SlidesHow to Add Button in Chatter in Odoo 18 - Odoo Slides
How to Add Button in Chatter in Odoo 18 - Odoo Slides
Celine George
 
MCQS (EMERGENCY NURSING) DR. NASIR MUSTAFA
MCQS (EMERGENCY NURSING) DR. NASIR MUSTAFAMCQS (EMERGENCY NURSING) DR. NASIR MUSTAFA
MCQS (EMERGENCY NURSING) DR. NASIR MUSTAFA
Dr. Nasir Mustafa
 
YSPH VMOC Special Report - Measles Outbreak Southwest US 5-17-2025 .pptx
YSPH VMOC Special Report - Measles Outbreak  Southwest US 5-17-2025  .pptxYSPH VMOC Special Report - Measles Outbreak  Southwest US 5-17-2025  .pptx
YSPH VMOC Special Report - Measles Outbreak Southwest US 5-17-2025 .pptx
Yale School of Public Health - The Virtual Medical Operations Center (VMOC)
 
Mental Health Assessment in 5th semester bsc. nursing and also used in 2nd ye...
Mental Health Assessment in 5th semester bsc. nursing and also used in 2nd ye...Mental Health Assessment in 5th semester bsc. nursing and also used in 2nd ye...
Mental Health Assessment in 5th semester bsc. nursing and also used in 2nd ye...
parmarjuli1412
 
How to Change Sequence Number in Odoo 18 Sale Order
How to Change Sequence Number in Odoo 18 Sale OrderHow to Change Sequence Number in Odoo 18 Sale Order
How to Change Sequence Number in Odoo 18 Sale Order
Celine George
 
Cyber security COPA ITI MCQ Top Questions
Cyber security COPA ITI MCQ Top QuestionsCyber security COPA ITI MCQ Top Questions
Cyber security COPA ITI MCQ Top Questions
SONU HEETSON
 
Pope Leo XIV, the first Pope from North America.pptx
Pope Leo XIV, the first Pope from North America.pptxPope Leo XIV, the first Pope from North America.pptx
Pope Leo XIV, the first Pope from North America.pptx
Martin M Flynn
 
How to Configure Extra Steps During Checkout in Odoo 18 Website
How to Configure Extra Steps During Checkout in Odoo 18 WebsiteHow to Configure Extra Steps During Checkout in Odoo 18 Website
How to Configure Extra Steps During Checkout in Odoo 18 Website
Celine George
 
114P_English.pdf114P_English.pdf114P_English.pdf
114P_English.pdf114P_English.pdf114P_English.pdf114P_English.pdf114P_English.pdf114P_English.pdf
114P_English.pdf114P_English.pdf114P_English.pdf
paulinelee52
 
How To Maximize Sales Performance using Odoo 18 Diverse views in sales module
How To Maximize Sales Performance using Odoo 18 Diverse views in sales moduleHow To Maximize Sales Performance using Odoo 18 Diverse views in sales module
How To Maximize Sales Performance using Odoo 18 Diverse views in sales module
Celine George
 
BÀI TẬP BỔ TRỢ TIẾNG ANH 9 THEO ĐƠN VỊ BÀI HỌC - GLOBAL SUCCESS - CẢ NĂM (TỪ...
BÀI TẬP BỔ TRỢ TIẾNG ANH 9 THEO ĐƠN VỊ BÀI HỌC - GLOBAL SUCCESS - CẢ NĂM (TỪ...BÀI TẬP BỔ TRỢ TIẾNG ANH 9 THEO ĐƠN VỊ BÀI HỌC - GLOBAL SUCCESS - CẢ NĂM (TỪ...
BÀI TẬP BỔ TRỢ TIẾNG ANH 9 THEO ĐƠN VỊ BÀI HỌC - GLOBAL SUCCESS - CẢ NĂM (TỪ...
Nguyen Thanh Tu Collection
 
"Bridging Cultures Through Holiday Cards: 39 Students Celebrate Global Tradit...
"Bridging Cultures Through Holiday Cards: 39 Students Celebrate Global Tradit..."Bridging Cultures Through Holiday Cards: 39 Students Celebrate Global Tradit...
"Bridging Cultures Through Holiday Cards: 39 Students Celebrate Global Tradit...
AlionaBujoreanu
 
Classification of mental disorder in 5th semester bsc. nursing and also used ...
Classification of mental disorder in 5th semester bsc. nursing and also used ...Classification of mental disorder in 5th semester bsc. nursing and also used ...
Classification of mental disorder in 5th semester bsc. nursing and also used ...
parmarjuli1412
 
How to Manage Cross Selling in Odoo 18 Sales
How to Manage Cross Selling in Odoo 18 SalesHow to Manage Cross Selling in Odoo 18 Sales
How to Manage Cross Selling in Odoo 18 Sales
Celine George
 
Chemotherapy of Malignancy -Anticancer.pptx
Chemotherapy of Malignancy -Anticancer.pptxChemotherapy of Malignancy -Anticancer.pptx
Chemotherapy of Malignancy -Anticancer.pptx
Mayuri Chavan
 
The role of wall art in interior designing
The role of wall art in interior designingThe role of wall art in interior designing
The role of wall art in interior designing
meghaark2110
 
MCQ PHYSIOLOGY II (DR. NASIR MUSTAFA) MCQS)
MCQ PHYSIOLOGY II (DR. NASIR MUSTAFA) MCQS)MCQ PHYSIOLOGY II (DR. NASIR MUSTAFA) MCQS)
MCQ PHYSIOLOGY II (DR. NASIR MUSTAFA) MCQS)
Dr. Nasir Mustafa
 
How to Share Accounts Between Companies in Odoo 18
How to Share Accounts Between Companies in Odoo 18How to Share Accounts Between Companies in Odoo 18
How to Share Accounts Between Companies in Odoo 18
Celine George
 
Aerospace Engineering Homework Help Guide – Expert Support for Academic Success
Aerospace Engineering Homework Help Guide – Expert Support for Academic SuccessAerospace Engineering Homework Help Guide – Expert Support for Academic Success
Aerospace Engineering Homework Help Guide – Expert Support for Academic Success
online college homework help
 
How to Add Button in Chatter in Odoo 18 - Odoo Slides
How to Add Button in Chatter in Odoo 18 - Odoo SlidesHow to Add Button in Chatter in Odoo 18 - Odoo Slides
How to Add Button in Chatter in Odoo 18 - Odoo Slides
Celine George
 
MCQS (EMERGENCY NURSING) DR. NASIR MUSTAFA
MCQS (EMERGENCY NURSING) DR. NASIR MUSTAFAMCQS (EMERGENCY NURSING) DR. NASIR MUSTAFA
MCQS (EMERGENCY NURSING) DR. NASIR MUSTAFA
Dr. Nasir Mustafa
 
Mental Health Assessment in 5th semester bsc. nursing and also used in 2nd ye...
Mental Health Assessment in 5th semester bsc. nursing and also used in 2nd ye...Mental Health Assessment in 5th semester bsc. nursing and also used in 2nd ye...
Mental Health Assessment in 5th semester bsc. nursing and also used in 2nd ye...
parmarjuli1412
 
How to Change Sequence Number in Odoo 18 Sale Order
How to Change Sequence Number in Odoo 18 Sale OrderHow to Change Sequence Number in Odoo 18 Sale Order
How to Change Sequence Number in Odoo 18 Sale Order
Celine George
 
Cyber security COPA ITI MCQ Top Questions
Cyber security COPA ITI MCQ Top QuestionsCyber security COPA ITI MCQ Top Questions
Cyber security COPA ITI MCQ Top Questions
SONU HEETSON
 

09 coms 525 tcpip - tcp 2

  • 1. 1 Transmission Control Protocol K. PALANIVEL Systems Analyst, Computer Centre Pondicherry University, Puducherry – 605014. LECTURE 8 COMS 525: TCPIP COURSE TOPIC Part - II
  • 2. What is Flow/Congestion/Error Control ? • Flow Control: Algorithms to prevent that the sender overruns the receiver with information • Error Control: Algorithms to recover or conceal the effects from packet losses • Congestion Control: Algorithms to prevent that the sender overloads the network • The goal of each of the control mechanisms are different. • In TCP, the implementation of these algorithms is combined
  • 3. Acknowledgements in TCP • TCP receivers use acknowledgments (ACKs) to confirm the receipt of data to the sender • Acknowledgment can be added (“piggybacked”) to a data segment that carries data in the opposite direction • ACK information is included in the the TCP header • Acknowledgements are used for flow control, error control, and congestion control Data for B A BData for A ACK ACK
  • 4. Sequence Numbers and Acknowledgments in TCP • TCP uses sequence numbers to keep track of transmitted and acknowledged data • Each transmitted byte of payload data is associated with a sequence number • Sequence numbers count bytes and not segments • Sequence number of first byte in payload is written in SeqNo field • Sequence numbers wrap when they reach 232-1 • The sequence number of the first sequence number (Initial sequence number) is negotiated during connection setup Sequence number (SeqNo) (32 bits) Source Port Number Destination Port Number Acknowledgement number (AckNo)(32 bits) window size header length 0 Flags TCP checksum urgent pointer 4
  • 5. Sequence Numbers and Acknowledgments in TCP • An acknowledgment is a confirmation of delivery of data • When a TCP receiver wants to acknowledge data, it – writes a sequence number in the AckNo field, and – sets the ACK flag IMPORTANT: An acknowledgment confirms receipt for all unacknowledged data that has a smaller sequence number than given in the AckNo field Example: AckNo=5 confirms delivery for 1,2,3,4 (but not 5). Sequence number (SeqNo) (32 bits) Source Port Number Destination Port Number Acknowledgement number (AckNo)(32 bits) window size header length 0 Flags TCP checksum urgent pointer 5
  • 6. Cumulative Acknowledgements • TCP has cumulative acknowledgements: An acknowledgment confirms the receipt of all unacknowledged data with a smaller sequence number 6 A B
  • 7. Cumulative Acknowledgements • With cumulative ACKs, the receiver can only acknowledge a segment if all previous segments have been received • With cumulative ACKs, receiver cannot selectively acknowledge blocks of segments: e.g., ACK for S0-S3 and S5-S7 (but not for S4) • Note: The use of cumulative ACKs imposes constraints on the retransmission schemes: – In case of an error, the sender may need to retransmit all data that has not been acknowledged 7
  • 8. Rules for sending Acknowledgments • TCP has rules that influence the transmission of acknowledgments • Rule 1: Delayed Acknowledgments – Goal: Avoid sending ACK segments that do not carry data – Implementation: Delay the transmission of (some) ACKs • Rule 2: Nagle’s rule – Goal: Reduce transmission of small segments – Implementation: A sender cannot send multiple segments with a 1-byte payload (i.e., it must wait for an ACK) 8
  • 9. Observing Delayed Acknowledgements 9 • Remote terminal applications (e.g., Telnet) send characters to a server. The server interprets the character and sends the output at the server to the client. • For each character typed, you see three packets: 1. Client  Server: Send typed character 2. Server  Client: Echo of character (or user output) and acknowledgement for first packet 3. Client  Server: Acknowledgement for second packet
  • 10. Observing Delayed Acknowledgements • This is the output of typing 3 (three) characters : Time 44.062449: Argon  Neon: Push, SeqNo 0:1(1), AckNo 1 Time 44.063317: Neon  Argon: Push, SeqNo 1:2(1), AckNo 1 Time 44.182705: Argon  Neon: No Data, AckNo 2 Time 48.946471: Argon  Neon: Push, SeqNo 1:2(1), AckNo 2 Time 48.947326: Neon  Argon: Push, SeqNo 2:3(1), AckNo 2 Time 48.982786: Argon  Neon: No Data, AckNo 3 Time 55.116581: Argon  Neon: Push, SeqNo 2:3(1) AckNo 3 Time 55.117497: Neon  Argon: Push, SeqNo 3:4(1) AckNo 3 Time 55.183694: Argon  Neon: No Data, AckNo 4 10 Argon Neon Telnet session from Argon to Neon
  • 11. Why 3 segments per character? • We would expect four segments per character: • But we only see three segments per character: • This is due to delayed acknowledgements 11 character ACK of character ACK of echoed character echo of character character ACK and echo of character ACK of echoed character
  • 12. Delayed Acknowledgement • TCP delays transmission of ACKs for up to 200ms • Goal: Avoid to send ACK packets that do not carry data. – The hope is that, within the delay, the receiver will have data ready to be sent to the receiver. Then, the ACK can be piggybacked with a data segment In Example: – Delayed ACK explains why the “ACK of character” and the “echo of character” are sent in the same segment – The duration of delayed ACKs can be observed in the example when Argon sends ACKs Exceptions: • ACK should be sent for every second full sized segment • Delayed ACK is not used when packets arrive out of order 12
  • 13. • Because of delayed ACKs, an ACK is often observed for every other segment 13 Delayed Acknowledgement A B Max. Delay for an ACK
  • 14. Observing Nagle’s Rule • This is the output of typing 7 characters : Time 16.401963: Argon  Tenet: Push, SeqNo 1:2(1), AckNo 2 Time 16.481929: Tenet  Argon: Push, SeqNo 2:3(1) , AckNo 2 Time 16.482154: Argon  Tenet: Push, SeqNo 2:3(1) , AckNo 3 Time 16.559447: Tenet  Argon: Push, SeqNo 3:4(1), AckNo 3 Time 16.559684: Argon  Tenet: Push, SeqNo 3:4(1), AckNo 4 Time 16.640508: Tenet  Argon: Push, SeqNo 4:5(1) AckNo 4 Time 16.640761: Argon  Tenet: Push, SeqNo 4:8(4) AckNo 5 Time 16.728402: Tenet  Argon: Push, SeqNo 5:9(4) AckNo 8 argon.cs.virginia.edu 3000 miles tenet.cs.berkeley.edu Telnet session between argon.cs.virginia.edu and tenet.cs.berkeley.edu
  • 15. Observing Nagle’s Rule • Observation: Transmission of segments follows a different pattern, i.e., there are only two segments per character typed • Delayed acknowledgment does not kick in at Argon • The reason is that there is always data at Argon ready to sent when the ACK arrives • Why is Argon not sending the data (typed character) as soon as it is available? 15 char1 ACK of char 1 + echo of char1 ACK + char2 ACK + echo of char2 ACK + char3 ACK + echo of char3 ACK + char4-7 ACK + echo of char3
  • 16. Observing Nagle’s Rule • Observations: – Argon never has multiple unacknowledged segments outstanding – There are fewer transmissions than there are characters. This is due to Nagle’s Rule: – Each TCP connection can have only one small (1-byte) segment outstanding that has not been acknowledged • Implementation: Send one byte and buffer all subsequent bytes until acknowledgement is received.Then send all buffered bytes in a single segment. (Only enforced if byte is arriving from application one byte at a time) • Goal of Nagle’s Rule: Reduce the amount of small segments. • The algorithm can be disabled. 16
  • 17. • Only one 1-byte segment can be in transmission (Here: Since no data is sent from B to A, we also see delayed ACKs) 17 A B Nagle’s Rule Typed characters Delayed ACKDelayed ACK Delayed ACK
  • 19. TCP Flow Control • TCP uses a version of the sliding window flow control, where • Sending acknowledgements is separated from setting the window size at sender • Acknowledgements do not automatically increase the window size • During connection establishment, both ends of a TCP connection set the initial size of the sliding window 19
  • 20. Window Management in TCP • The receiver is returning two parameters to the sender • The interpretation is: • I am ready to receive new data with SeqNo= AckNo, AckNo+1, …., AckNo+Win-1 • Receiver can acknowledge data without opening the window • Receiver can change the window size without acknowledging data 20 AckNo window size (win) 32 bits 16 bits
  • 21. Sliding Window Flow Control 1 2 3 4 5 6 7 8 9 10 11 Advertised window sent but not acknowledged can be sent USABLE WINDOW sent and acknowledged can't sent 21 • Sliding Window Protocol is performed at the byte level: • Here: Sender can transmit sequence numbers 6,7,8.
  • 22. Sliding Window: “Window Closes” 1 2 3 4 5 6 7 8 9 10 11 1 2 3 4 5 6 7 8 9 10 11 Transmit Byte 6 1 2 3 4 5 6 7 8 9 10 11 AckNo = 5, Win = 4 is received 22 • Transmission of a single byte (with SeqNo = 6) and acknowledgement is received (AckNo = 5, Win=4):
  • 23. Sliding Window: “Window Opens” 1 2 3 4 5 6 7 8 9 10 11 1 2 3 4 5 6 7 8 9 10 11 AckNo = 5, Win = 6 is received 23 • Acknowledgement is received that enlarges the window to the right (AckNo = 5, Win=6): • A receiver opens a window when TCP buffer empties (meaning that data is delivered to the application).
  • 24. Sliding Window: “Window Shrinks” 1 2 3 4 5 6 7 8 9 10 11 1 2 3 4 5 6 7 8 9 10 11 AckNo = 5, Win = 3 is received 24 • Acknowledgement is received that reduces the window from the right (AckNo = 5, Win=3): • Shrinking a window should not be used
  • 25. Sliding Window: Example 3K 2K SeqNo=0 Receiver Buffer 0 4K Sender sends 2K of data 2K AckNo=2048 Win=2048 Sender sends 2K of data 2K SeqNo=2048 4K AckNo=4096 Win=0 AckNo=4096 Win=1024 Senderblocked
  • 26. 26 Back to TCP TCP Error Control
  • 27. Error Control in TCP • TCP maintains a Retransmission Timer for each connection: – The timer is started during a transmission. A timeout causes a retransmission • TCP couples error control and congestion control (i.e., it assumes that errors are caused by congestion) – Retransmission mechanism is part of congestion control algorithm • Here: How to set the timeout value of the retransmission timer?
  • 28. TCP Retransmission Timer • Retransmission Timer: – The setting of the retransmission timer is crucial for efficiency – Timeout value too small  results in unnecessary retransmissions – Timeout value too large  long waiting time before a retransmission can be issued – A problem is that the delays in the network are not fixed – Therefore, the retransmission timers must be adaptive 28
  • 29. Round-Trip Time Measurements • The retransmission mechanism of TCP is adaptive • The retransmission timers are set based on round- trip time (RTT) measurements that TCP performs 29 Segment 1 Segment 4 ACK for Segment 1 Segment 2 Segment 3 ACK for Segment 2 + 3 Segment 5 ACK for Segment 4 ACK for Segment 5 RTT#1RTT#2RTT#3 The RTT is based on time difference between segment transmission and ACK But: TCP does not ACK each segment Each connection has only one timer
  • 30. Round-Trip Time Measurements • Retransmission timer is set to a Retransmission Timeout (RTO) value. • RTO is calculated based on the RTT measurements. • The RTT measurements are smoothed by the following estimators srtt and rttvar: srttn+1 = a RTT + (1- a ) srttn rttvarn+1 = b ( | RTT - srttn+1 | ) + (1- b ) rttvarn RTOn+1 = srttn+1 + 4 rttvarn+1 • The gains are set to a =1/4 and b =1/8 • srtt0 = 0 sec, rttvar0 = 3 sec, Also: RTO1 = srtt1 + 2 rttvar1 30
  • 31. Karn’s Algorithm • If an ACK for a retransmitted segment is received, the sender cannot tell if the ACK belongs to the original or the retransmission. 31 segment ACK retransmissionof segment Timeout ! RTT? RTT? Karn’s Algorithm: Don’t update srtt on any segments that have been retransmitted. Each time when TCP retransmits, it sets: RTOn+1 = max ( 2 RTOn, 64) (exponential backoff)
  • 32. Measuring TCP Retransmission Timers 32 ellington.cs.virginia.edu satchmo.cs.virginia.edu ftp session from ellington to satchmo •Transfer file from ellington to satchmo • Unplug Ethernet cable in the middle of file transfer
  • 33. Exponential Backoff • Scenario: File transfer between two machines. Disconnect cable. • The interval between retransmission attempts in seconds is: 1.03, 3, 6, 12, 24, 48, 64, 64, 64, 64, 64, 64, 64. • Time between retrans- missions is doubled each time (Exponential Backoff Algorithm) • Timer is not increased beyond 64 seconds • TCP gives up after 13th attempt and 9 minutes. 0 100 200 300 400 500 600 Seconds 0 2 4 6 8 10 12 Transmission Attempts 33
  • 34. 34 Back to TCP TCP Congestion Control
  • 35. TCP Congestion Control • TCP has a mechanism for congestion control. The mechanism is implemented at the sender • The window size at the sender is set as follows: Send Window = MIN (flow control window, congestion window) where – flow control window is advertised by the receiver – congestion window is adjusted based on feedback from the network 35
  • 36. TCP Congestion Control • TCP congestion control is governed by two parameters: – Congestion Window (cwnd) Slow-start threshhold Value (ssthresh) Initial value is 216-1 • Congestion control works in two modes: – slow start (cwnd < ssthresh) – congestion avoidance (cwnd ≥ ssthresh 36
  • 37. Slow Start • Initial value: Set cwnd = 1 » Note: Unit is a segment size. TCP actually is based on bytes and increments by 1 MSS (maximum segment size) • The receiver sends an acknowledgement (ACK) for each Segment » Note: Generally, a TCP receiver sends an ACK for every other segment. • Each time an ACK is received by the sender, the congestion window is increased by 1 segment: cwnd = cwnd + 1 » If an ACK acknowledges two segments, cwnd is still increased by only 1 segment. » Even if ACK acknowledges a segment that is smaller than MSS bytes long, cwnd is increased by 1. • Does Slow Start increment slowly? Not really. In fact, the increase of cwnd is exponential 37
  • 38. Slow Start Example • The congestion window size grows very rapidly – For every ACK, we increase cwnd by 1 irrespective of the number of segments ACK’ed • TCP slows down the increase of cwnd when cwnd > ssthresh 38 segment 1 ACK for segment 1 cwnd = 1 cwnd = 2 segment 2 segment 3 ACK for segments 2 cwnd = 4 segment 4 segment 5 segment 6 ACK for segments 4 cwnd = 7 ACK for segments 3 ACK for segments 5 ACK for segments 6
  • 39. Congestion Avoidance • Congestion avoidance phase is started if cwnd has reached the slow-start threshold value • If cwnd ≥ ssthresh then each time an ACK is received, increment cwnd as follows: • cwnd = cwnd + 1/ cwnd • So cwnd is increased by one only if all cwnd segments have been acknowledged. 39
  • 40. Example of Slow Start/Congestion Avoidance Assume that ssthresh = 8 40 cwnd = 1 cwnd = 2 cwnd = 4 cwnd = 8 cwnd = 9 cwnd = 10 0 2 4 6 8 10 12 14 t=0 t=2 t=4 t=6 Roundtrip times Cwnd(insegments) ssthresh
  • 41. Responses to Congestion • So, TCP assumes there is congestion if it detects a packet loss • A TCP sender can detect lost packets via: • Timeout of a retransmission timer • Receipt of a duplicate ACK • TCP interprets a Timeout as a binary congestion signal. When a timeout occurs, the sender performs: – cwnd is reset to one: cwnd = 1 – ssthresh is set to half the current size of the congestion window: ssthressh = cwnd / 2 – and slow-start is entered 41
  • 42. Summary of TCP congestion control Initially: cwnd = 1; ssthresh = advertised window size; New Ack received: if (cwnd < ssthresh) /* Slow Start*/ cwnd = cwnd + 1; else /* Congestion Avoidance */ cwnd = cwnd + 1/cwnd; Timeout: /* Multiplicative decrease */ ssthresh = cwnd/2; cwnd = 1; 42
  • 43. Slow Start / Congestion Avoidance • A typical plot of cwnd for a TCP connection (MSS = 1500 bytes) with TCP Tahoe: 43
  • 44. Acknowledgments in TCP • Receiver sends ACK to sender – ACK is used for flow control, error control, and congestion control • ACK number sent is the next sequence number expected • Delayed ACK: TCP receiver normally delays transmission of an ACK (for about 200ms) • ACKs are not delayed when packets are received out of sequence – Why? 1K SeqNo=0 AckNo=1024 1K SeqNo=1024 AckNo=2048 SeqNo=2048 SeqNo=3072 AckNo=2048 1K 1K 44 Lost segment
  • 45. Acknowledgments in TCP • Receiver sends ACK to sender – ACK is used for flow control, error control, and congestion control • ACK number sent is the next sequence number expected • Delayed ACK: TCP receiver normally delays transmission of an ACK (for about 200ms) – Why? • ACKs are not delayed when packets are received out of sequence – Why? 1K SeqNo=0 AckNo=1024 1K SeqNo=1024 AckNo=2048 SeqNo=3072 AckNo=2048 SeqNo=2048 1K1K 45 Out-of-order arrivals
  • 46. Fast Retransmit • If three or more duplicate ACKs are received in a row, the TCP sender believes that a segment has been lost. • Then TCP performs a retransmission of what seems to be the missing segment, without waiting for a timeout to happen. • Enter slow start: ssthresh = cwnd/2 cwnd = 1 1K SeqNo=0 AckNo=1024 AckNo=1024 1K SeqNo=1024 SeqNo=2048 1K AckNo=1024 SeqNo=3072 1K SeqNo=4096 1K 1. duplicate 2. duplicate AckNo=1024 SeqNo=1024 1K SeqNo=5120 1K 3. duplicate 46
  • 47. Fast Recovery • Fast recovery avoids slow start after a fast retransmit • Intuition: Duplicate ACKs indicate that data is getting through • After three duplicate ACKs set: – Retransmit packet that is presumed lost – ssthresh = cwnd/2 – cwnd = cwnd+3 – (note the order of operations) – Increment cwnd by one for each additional duplicate ACK • When ACK arrives that acknowledges “new data” (here: AckNo=6148), set: cwnd=ssthresh enter congestion avoidance 1K SeqNo=0 AckNo=1024 AckNo=1024 1K SeqNo=1024 SeqNo=2048 1K AckNo=1024 SeqNo=3072 1K SeqNo=4096 1K 1. duplicate 2. duplicate AckNo=1024 SeqNo=1024 1K SeqNo=5120 1K 3. duplicate cwnd=12 sshtresh=5 cwnd=12 sshtresh=5 cwnd=12 sshtresh=5 cwnd=12 sshtresh=5 cwnd=15 sshtresh=6 AckNo=6148cwnd=6 sshtresh=6 ACK for new data 47
  • 48. SACK • SACK = Selective acknowledgment • Issue: Reno and New Reno retransmit at most 1 lost packet per round trip time • Selective acknowledgments: The receiver can acknowledge non-continuous blocks of data (SACK 0-1023, 1024-2047) • Multiple blocks can be sent in a single segment. • TCP SACK: – Enters fast recovery upon 3 duplicate ACKs – Sender keeps track of SACKs and infers if segments are lost. Sender retransmits the next segment from the list of segments that are deemed lost. 48
  翻译: