0% found this document useful (0 votes)
70 views

Transmission Control Protocol (TCP)

TCP provides reliable data transfer over an unreliable internet by using error detection, retransmissions, sequence numbers and acknowledgments. It is connection-oriented, with a three-way handshake to establish connections between two endpoints. TCP headers include fields for sequence numbers, acknowledgment numbers, windows and checksums. TCP ensures reliability, flow control and congestion control through mechanisms like sliding windows, buffers and dynamically adjusting transmission speeds. Connections are established and terminated through defined message exchanges using SYN, ACK and FIN packets.

Uploaded by

Diwakar Singh
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
70 views

Transmission Control Protocol (TCP)

TCP provides reliable data transfer over an unreliable internet by using error detection, retransmissions, sequence numbers and acknowledgments. It is connection-oriented, with a three-way handshake to establish connections between two endpoints. TCP headers include fields for sequence numbers, acknowledgment numbers, windows and checksums. TCP ensures reliability, flow control and congestion control through mechanisms like sliding windows, buffers and dynamically adjusting transmission speeds. Connections are established and terminated through defined message exchanges using SYN, ACK and FIN packets.

Uploaded by

Diwakar Singh
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 16

Transmission Control

Protocol (TCP)

Prepared By: Diwakar Singh(17MCMC14),


Praveen Mishra(17MCMC15)
Introduction
• UDP is a simple protocol, but for most Internet applications, reliable,
sequenced delivery is needed. UDP cannot provide this, so another
protocol is required. It is called TCP.

• TCP (Transmission Control Protocol) was specifically designed to


provide a reliable end-to-end byte stream over an unreliable
internetwork.

• In order to provide reliable data transfer, TCP relies on many


principles such as error detection, retransmissions, cumulative
acknowledgments, timers, and header fields for sequence and
acknowledgment numbers.
The TCP Connection
 TCP is said to be connection-oriented because before one application
process can begin to send data to another, the two processes must
first “handshake” with each other – that is, they must send some
preliminary segments to each other to establish connection.

 A TCP connection provides a full-duplex service. If there is a TCP


connection between Process A on one host and Process B on another
host, then application-layer data can flow from Process A to Process B
at the same time as application layer data flows from Process B to
Process A.

 A TCP connection is also always point-to-point, that is, between a


single sender and a single receiver.
TCP Header
 TCP pairs each chunk of client data with a TCP header, thereby
forming TCP segments.
TCP Header Fields
• Sequence Number: position of the data in the sender’s byte stream
• Acknowledgment Number: position of the byte that the source expects
to receive next (valid if ACK bit set)
• Header Length: header size in 32-bit units. Value ranges from [5-15]
• Window: advertised window size in bytes
• Urgent
• defines end of urgent data (or “out-of-band”) data and start of
normal data
• Added to sequence number (valid only if URG bit is set)
• Checksum: 16-bit CRC (Cyclic Redundancy Check) over header and
data
• Options: up to 40 bytes of options
5
TCP Services & Features
• TCP must perform typical transport layer functions:
 Segmentation  breaks message into packets
 End-to-end error control since IP is an unreliable Service
 End-to-end flow control  to avoid buffer overflow

• TCP is [originally described in RFC 793, 1981]


 Reliable
 Connection-oriented  virtual circuit
 Stream-oriented  users exchange streams of data
 Full duplex  concurrent transfers can take place in both
directions
 Buffered  TCP accepts data and transmits when appropriate (can
be overridden with “push”)
Reliability
 Requires ACK and performs retransmission.
 If ACK not received, retransmit and wait a longer time for ACK.
After a number of retransmissions, will give up
 How long to wait for ACK? (dynamically compute SampleRTT for
estimating how long to wait for ACKs, might be ms for LANs or
seconds for WANs)
Est. RTT =  * Est. RTT + (1 - ) * SampleRTT
where  = 0.125
 Most common, Retransmission time = 2 * RTT.
 Acknowledgments can be “piggy-backed” on reverse direction data
packets or sent as separate packets.
Sequence Numbers
 Associated with every byte that it sends.
 To detect packet loss, reordering and duplicate removal.
 Two fields are used sequence number and acknowledgment
number. Both refer to byte number and not segment number.
 Sequence number for each segment is the number of the first byte
carried in that segment.
 The ACK number denotes the number of the next byte that this
party expects to receive (cumulative)
 If an ACK number is 5643  received all bytes from beginning
up to 5642.
 This acknowledges all previous bytes as received error-free.

8
Sending and Receiving Buffers
 Senders and receivers may not produce and consume data at same
speed.
 2 buffers for each direction (sending and receiving buffer).

9
Sliding Window Mechanism
 Sender maintains 3 pointers for each connection
 Pointer to bytes sent and acknowledged
 Pointer to bytes sent, but not yet acknowledged
 Sender window includes bytes sent but not acknowledged
 Pointer to bytes that cannot yet be sent

10
Flow Control
 Tell peer exactly how many bytes it is willing to accept (advertised
window  sender can not overflow receiver buffer)
 Sender window includes bytes sent but not acknowledged
 Receiver window (number of empty locations in receiver buffer)
 Receiver advertises window size in ACKs

 Sender window <= receiver window (flow control)


 Sliding sender window (without a change in receiver’s advertised
window)
 Expanding sender window (receiving process consumes data faster
than it receives  receiver window size increases)
 Shrinking sender window (receiving process consumes data more
slowly than it receives  receiver window size reduces)
 Closing sender window (receiver advertises a window of zero)
11
Error Control
 Mechanisms for detecting corrupted segments, lost segments, out-
of-order segments, and duplicated segments
 Tools: checksum (corruption), ACK, and time-out (one time-out
counter per segment)
 Lost segment or corrupted segment are the same situation:
segment will be retransmitted after time-out (no NACK in TCP)
 Duplicate segment (destination discards)
 Out-of-order segment (destination does not acknowledge, until
it receives all segments that precede it)
 Lost ACK (loss of an ACK is irrelevant, since ACK mechanism is
cumulative)

12
Congestion Control
 TCP assumes the cause of a lost segment is due to congestion in
the network
 If the cause of the lost segment is congestion, retransmission of
the segment does not remove the problem, it actually aggravates
it
 The network needs to tell the sender to slow down (affects the
sender window size in TCP)
 Actual window size = Min (receiver window size, congestion
window size)
 The congestion window is flow control imposed by the sender
 The advertised window is flow control imposed by the receiver

13
TCP Connection Establishment

• SYN: Synchronize
• ACK: Acknowledge
14
TCP Connection Termination

• FIN: Finish
• Step 1 can be sent with data
• Steps 2 and 3 can be combined into 1
segment
15
Thank You!

You might also like