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

Module 6 Transport Layer-converted

The document provides an overview of the Transport Layer in networking, detailing its role in process-to-process communication and the protocols it utilizes, such as TCP and UDP. It explains the functionalities of the Transport Layer, including error control, flow control, and the addressing mechanism through port numbers. Additionally, it covers concepts like multiplexing, demultiplexing, connection-oriented and connectionless services, and congestion control methods.

Uploaded by

vitpythonboy
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
2 views

Module 6 Transport Layer-converted

The document provides an overview of the Transport Layer in networking, detailing its role in process-to-process communication and the protocols it utilizes, such as TCP and UDP. It explains the functionalities of the Transport Layer, including error control, flow control, and the addressing mechanism through port numbers. Additionally, it covers concepts like multiplexing, demultiplexing, connection-oriented and connectionless services, and congestion control methods.

Uploaded by

vitpythonboy
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 82

Transport Layer

Data Communictions and Networking1/


Conten
ts

Introduction to Transport
Layer Process-to-Process
Delivery Protocols in
Transport Layer
TCP - Transmission Control
Protocol UDP - User DataGram
Protocol
Congestion Control

Data Communictions and Networking2/


Introduction to Transport
Layer
It is located between the Application layer and the
Network layer.
It provides a process-to-process communication between
two application layers, one at the local host and the
other at the remote host.
Communication is provided using a logical connection,
which means that the two application layers, which can
be located in different parts of the globe, assume that
there is an imaginary direct connection through which
they can send and receive messages.
All modules and procedures pertaining to transportation
of data or data stream are categorized into this layer.
It offers peer-to-peer and end-to-end connection
between two processes on remote hosts.
It takes data from upper layer (i.e. Application layer) and
then breaks it into smaller size segments, numbers
each byte, and hands over to lower layer (Network
Data Communictions and Networking3/
Exampl
e..

Data Communictions and Networking4/


Transport layer
Functionalities
Functionalities:
It facilitates the communicating hosts to carry on a
conversation.
It provides an interface for the users to the underlying
network.
It can provide for a reliable connection. It can also carry
out error checking, flow control, and verification.

Protocols used in Transport Layer


Transmission Control Protocol (TCP): It is a reliable
connection-oriented protocol that transmits data from
the source to the destination machine without any error.
User Datagram Protocol (UDP): It is a message-oriented
protocol that provides a simple unreliable,
connectionless, unacknowledged service.
Stream Control Transmission Protocol (SCTP): It combines
the features of both TCP and UDP. It is message oriented
Data Communictions and Networking5/
Process-to-Process
Delivery
The Data Link Layer is responsible for delivery of
frames between two neighboring nodes over a link.
This is called Node-to-Node delivery.
The Network layer is responsible for delivery of
datagrams between two hosts. This is called Host-to-
Hostdelivery.
Communication on the Internet is not defined as the
exchange of data between two nodes or between two
hosts.
Real communication takes place between two processes.
So that we need Process-to-Processdelivery.
However, at any moment, several processes may be
running on the source host and several on the
destination host.
To complete the delivery, we need a mechanism to
deliver data from one of these processes running on the
source host to the corresponding process
Data Communictions running on the
and Networking6/
Process-to-Process
Delivery
The transport layer is responsible for process-to-process
delivery-the delivery of a packet, part of a message,
from one process to another

Data Communictions and Networking7/


Client/Server
Paradigm
There are several ways to achieve process-to-process
communication; the most common one is through the
client/server paradigm.

A process on the local host, called a Client, needs


services from a process usually on the remote host,
called a Server.

Both processes (Client/Server) have the same name. For


example, to get the day and time from a remote
machine, we need a Daytime client process running on
the local host and a Daytime server process running on
a remote machine.

A remote computer can run several server programs at


the same time, just as local computers can run one or
more client programs at the same time.
For Communication, need to define the following:
Local Host & Local Process Data Communictions and Networking8/
Addressin
g
Whenever we need to deliver something to one specific
destination among many, we need an address

At the DLL, need a MAC address to choose one node


among several nodes if the connection is not point-to-
point. A frame in the data link layer needs a destination
MAC address for delivery and a source address for the
next node’s reply.

At the NL, need an IP address to choose one host


among millions. A datagram in the network layer needs
a destination IP address for delivery and a source IP
address for the destination’s reply.

At the TL, we need a transport layer address, called a port


number, to choose among multiple processes running on
the destination host. The destination port number is
needed for delivery; the source port number is needed
for the reply. Data Communictions and Networking9/
Addressi
ng

Data Communictions and Networking10


IP Address and Port
Numbers
In Internet, port numbers are 16-bit integers between 0
and 65,535.
The client program defines itself with a port number,
chosen randomly by the transport layer software
running on the client host. This is theephemeralport
number.
The server process also defines its port number. However,
cannot be chosen randomly.
If the computer at the server site runs a server process
and assigns a random number as the port number, the
process at the client site that wants to access that server
and use its services will not know the port number.
Every client process knows the well-known port
number of the corresponding server process.
Example : The Daytime client process, can use an
ephemeral (temporary) port number 52,000 to identify
itself, the Daytime server process must use the well-
known (permanent) port number 13.
Data Communictions and Networking11
IP Address and Port
Numbers

Data Communictions and Networking12


IANA
Ranges
The lANA (Internet Assigned Number Authority) has
divided the port numbers into three ranges:
Well-known ports: The ports ranging from 0 to 1023
are assigned and controlled by lANA.
Registered ports: The ports ranging from 1024 to
49,151 are not assigned or controlled by lANA. They
can only be registered with lANA to prevent
duplication.
Dynamic ports: The ports ranging from 49,152 to 65,535
are neither controlled nor registered. They can be used
by any process. These are the ephemeral ports.

Data Communictions and Networking13


Socket
Address

Process-to-Process delivery needs two identifiers,IP


addressand the Port number, at each end to make a
connection. The combination of an IP address and a
port number is called a socket address.

The client socket address defines the client process


uniquely just as the server socket address defines the
server process uniquely.

Data Communictions and Networking14


Multiplexing and
DeMultiplexing
The addressing mechanism allows multiplexing and
demultiplexing by the transport layer.
Multiplexing:
At the sender site, there may be several processes that
need to send packets.
However, there is only one transport layer protocol at any
time. This is a many-to-one relationship and requires
multiplexing.
The protocol accepts messages from different
processes, differentiated by their assigned port
numbers.
After adding the header, the transport layer passes the
packet to the network layer.
DeMultiplexing:
At the receiver site, the relationship is one-to-many and
requires demultiplexing.
The transport layer receives datagrams from the network
layer. After error checking and dropping of the header, the
transport layer delivers each message to the appropriate
process based on the port Datanumber.
Communictions and Networking15
Multilexing and
DeMultiplexing

Data Communictions and Networking16


Error Control in Transport
Layer

Data Communictions and Networking17


Encapsulation and
Decapsulation

Data Communictions and Networking18


Connectionless Versus Connection- vic
Oriented Ser e

A transport layer protocol can either be


connectionless or connection-oriented.

Connectionless Service: In a connectionless service, the


packets are sent from one party to another with no need
for connection establishment or connection release. The
packets are not numbered; they may be delayed or lost
or may arrive out of sequence. There is no
acknowledgment either. UDP, is connectionless.

Connection-Oriented Service: In a connection-oriented


service, a connection is first established between the
sender and the receiver. Data are transferred. At the
end, the connection is released. The TCP and SCTP are
connection-oriented protocols.

Data Communictions and Networking19


Protocols in Transport
Layer

Data Communictions and Networking20


Data Communictions and
Networking
TCP - Transmission Control Protocol

Data Communictions and Networking21


Transmission Control
Protocol
It is one of the most important protocols of Internet Protocols
suite. It is most widely used protocol for data transmission in
communication network such as internet.
Features :
TCP is reliable protocol (Acknowledgement(+ve/-ve)).
TCP ensures that the data reaches intended destination
in the same order it was sent.
TCP is connection oriented, provides error-checking,
recovery mechanism and end-to-end
communication.
TCP provides flow control and quality of
service. TCP operates in Client/Server
point-to-point mode.
TCP provides full duplex server, i.e. it can perform
roles of both receiver and sender.
Data Communictions and Networking22
TCP
Header

Data Communictions and Networking23


TCP
Header....
The length of TCP header is minimum 20 bytes long and
maximum 60 bytes
Source Port(16-bits) - It identifies source port of the
application process on the sending device.
Destination Port(16-bits) - It identifies destination
port of the application process on the receiving
device.
Sequence Number(32-bits) - Sequence number of data
bytes of a segment in a session.
Acknowledgement Number(32-bits) - When ACK flag is
set, this number contains the next sequence number
of the data byte expected and works as
acknowledgement of the previous data received.
Data Offset(4-bits) - This field implies both, the size of
TCP header (32-bit words) and the offset of data in
current packet in the whole TCP segment.

Data Communictions and Networking24


TCP
Header...
Reserved(3-bits) - Reserved for future use and all are
set zero by default.
Flags(1-bit each) :
NS- Nonce Sum bit is used by Explicit Congestion
Notification signaling process.
CWR- When a host receives packet with ECE bit set, it
sets Congestion Windows Reduced to acknowledge that
ECE received. ECE-It has two meanings:
If SYN bit is clear to 0, then ECE means that the IP packet
has its CE (congestion experience) bit set.
If SYN bit is set to 1, ECE means that the device is ECT
capable.
URG- It indicates that Urgent Pointer field has significant
data and should be processed.
ACK- It indicates that Acknowledgement field has
significance. If ACK is cleared to 0, it indicates that
packet does not contain any acknowledgement.

Data Communictions and Networking25


TCP
Header...
Flags(1-bit each) :
PSH- When set, it is a request to the receiving station
to PUSH data (as soon as it comes) to the receiving
application without buffering it.
RST- Reset flag has the following features:
It is used to refuse an incoming
connection. It is used to reject a
segment.
It is used to restart a connection.
SYN- This flag is used to set up a
connection between hosts.
FIN- This flag is used to release a connection and no more
data is exchanged thereafter. Because packets with SYN
and FIN flags have sequence numbers, they are processed
in correct order.

Windows Size- This field is used for flow control


between two stations and indicates the amount of
buffer (in bytes) the receiver has allocated for a
Data Communictions and Networking26
TCP
Header...
Checksum- This field contains the checksum of Header,
Data and Pseudo Headers.

Urgent Pointer- It points to the urgent data byte if URG


flag is set to 1.

Options- It facilitates additional options which are not


covered by the regular header. Option field is always
described in 32-bit words. If this field contains data less
than 32-bit, padding is used to cover the remaining bits
to reach 32-bit boundary.

Addressing: TCP communication between two remote hosts


is done by means of port numbers (TSAPs).
Ports numbers can range from 0 – 65535 which are divided
as:
System Ports (0 – 1023)
User Ports ( 1024 – 49151)
Private/Dynamic Ports (49152Data– Communictions
65535) and Networking27
TCP Connection
Establishment
It uses Three-way handshaking is used for connection
management.

ASYNsegment
cannot carry data,
but it consumes
one sequence
number.
ASYN + ACKseqgment
can’t carry data, but
does consume one
sequence number.
AnACKsegment, if
carrying no data,
consumes no
sequence number.

Data Communictions and Networking28


Data Transfer and Connection
Termination
Data Connection
transfer Termination

TheFINsegment consumes one sequence number if it


doesn’t carry data.
Data Communictions and Networking29
TCP Well Defined
Ports

Data Communictions and Networking30


Stream Delivary in
TCP

Data Communictions and Networking31


Sending and Receiving
Buffers

Data Communictions and Networking32


TCP
Segments

Data Communictions and Networking33


Error Control & Flow
Control
TCP uses port numbers to know what application
process it needs to handover the data segment.
Along with that, it uses sequence numbers to
synchronize itself with the remote host.
All data segments are sent and received with sequence
numbers.
The Sender knows which last data segment was
received by the Receiver when it gets ACK.
The Receiver knows about the last segment sent by the
Sender by referring to the sequence number of
recently received packet.
If the sequence number of a segment recently received
does not match with the sequence number the receiver
was expecting, then it is discarded and NACK is sent
back.
If two segments arrive with the same sequence
Data Communictions and Networking34
Multiplexing in
TCP
The technique to combine two or more data streams in
one session is called Multiplexing.

When a TCP client initializes a connection with Server, it


always refers to a well-defined port number which
indicates the application process. The client itself uses a
randomly generated port number from private port
number pools.

Using TCP Multiplexing, a client can communicate with


a number of different application process in a single
session.

For example, a client requests a web page which in turn


contains different types of data (HTTP, SMTP, FTP etc.)
the TCP session timeout is increased and the session is
kept open for longer time so that the three-way
handshake overhead can be avoided.

This enables the client system to receive multiple


Data Communictions and Networking35
Congestion
Control
When large amount of data is fed to system which is not
capable of handling it, congestion occurs.
TCP controls congestion by means of Window
mechanism. TCP sets a window size telling the other
end how much data segment to send.
TCP may use three algorithms for congestion control:

Additive increase, Multiplicative


Decrease Slow Start
Timeout React

Data Communictions and Networking36


Timer
Management
TCP uses different types of timer to control and manage
various tasks:

Keep-alive timer:

This timer is used to check the integrity and validity of a


connection. When keep-alive time expires, the host sends
a probe to check if the connection still exists.

Timed-Wait:
After releasing a connection, either of the hosts
waits for a Timed-Wait time to terminate the
connection completely.
This is in order to make sure that the other end has
received the acknowledgement of its connection
termination request.
Timed-out can be a maximum of 240 seconds (4
minutes).

Data Communictions and Networking37


Timer
Management
TCP uses different types of timer to control and
management various tasks:

Retransmission timer:
This timer maintains stateful session of data sent.
If the acknowledgement of sent data does not receive
within the Retransmission time, the data segment is
sent again.

Persist timer:
TCP session can be paused by either host by sending
Window Size 0. To resume the session a host needs to send
Window Size with some larger value.
If this segment never reaches the other end, both ends
may wait for each other for infinite time.
When the Persist timer expires, the host re-sends its
window size to let the other end know.
Persist Timer helps avoid deadlocks in communication.

Data Communictions and Networking38


Crash
Recovery
TCP is very reliable protocol. It provides sequence
number to each of byte sent in segment.

It provides the feedback mechanism i.e. when a host


receives a packet, it is bound to ACK that packet
having the next sequence number expected (if it is
not the last segment).

When a TCP Server crashes mid-way communication


and re-starts its process it sends TPDU broadcast to all
its hosts.

The hosts can then send the last data segment which
was never unacknowledged and carry onwards.

Data Communictions and Networking39


Data Communictions and
Networking
UDP - User Datagram Protocol

Data Communictions and Networking40


User Datagram
Protocol
The User Datagram Protocol (UDP) is simplest
Transport Layer communication protocol available of
the TCP/IP protocol suite.

It involves minimum amount of communication


mechanism.

UDP is said to be an unreliable transport protocol but


it uses IP services which provides best effort delivery
mechanism.

In UDP, the receiver does not generate an


acknowledgement of packet received and in turn,
the sender does not wait for any acknowledgement
of packet sent.

This shortcoming makes this protocol unreliable as well


as easier on processing.
Data Communictions and Networking41
Requirement of
UDP
A question may arise, why do we need an unreliable
protocol to transport the data?

We deploy UDP where the acknowledgement


packets share significant amount of bandwidth
along with the actual data.

For Example, in case of video streaming, thousands of


packets are forwarded towards its users. Acknowledging
all the packets is troublesome and may contain huge
amount of bandwidth wastage.

The best delivery mechanism of underlying IP protocol


ensures best efforts to deliver its packets, but even if
some packets in video streaming get lost, the impact is
not calamitous and can be ignored easily.

Loss of few packets in video and voice traffic


sometimes goes unnoticed
Data Communictions and Networking42
Features of
UDP
UDP is used when acknowledgement of data does
not hold any significance.

UDP is good protocol for data flowing in one

direction. UDP is simple and suitable for query

based communications. UDP is not connection

oriented (Connectionless).

UDP does not provide congestion control

mechanism. UDP does not guarantee

ordered delivery of data.


UDP is stateless.

UDP is suitable protocol for streaming applications


such as VoIP, multimedia streaming.
Data Communictions and Networking43
User Datagram
format

Source Port- is 16 bits information, used to identify the


source port. Destination Port- is 16 bits information, used
identify application level service on destination machine.
Length- specifies the length of UDP packet (including
header). It is 16-bits field and minimum value is 8-byte, i.e.
the size of UDP header itself.
Checksum- It stores the checksum value generated by the
sender before sending. IPv4 has this field as optional so when
checksum field does not contain any value it is made 0 and
all its bits are set to zero. Data Communictions and Networking44
UDP
Applications
UDP is suitable for a process that requires simple
request-response communication with little concern for
flow and error control. It is not usually used for a
process such as FTP that needs to send bulk data.
UDP is suitable for a process with internal flow and error-
control mechanisms. For example, the Trivial File Transfer
Protocol (TFTP) process includes flow and error control. It
can easily use UDP.
UDP is a suitable transport protocol for multicasting.
Multicasting capability is embedded in the UDP
software but not in the TCP software.
UDP is used for management processes such as SNMP.
UDP is used for some route updating protocols such
as Routing Information Protocol (RIP).
UDP is normally used for interactive real-time applications
that cannot tolerate uneven delay between sections of a
received message Data Communictions and Networking45
UDP
Services

ConnectionLess Service:
UDP provides a connectionless service. This means that
each user datagram sent by UDP is an independent
datagram.
There is no relationship between the different user
datagrams even if they are coming from the same source
process and going to the same destination program.
The user datagrams are not numbered.

Flow Control:
UDP is a very simple protocol. There is no flow control,
and hence no window mechanism.
The receiver may overflow with incoming messages. The
lack of flow control means that the process using UDP
should provide for this service, if needed.

Data Communictions and Networking46


UDP
Services...
Error Control
There is no error control mechanism in UDP except for the
checksum. This means that the sender does not know if
a message has been lost or duplicated.
When the receiver detects an error through the
checksum, the user datagram is silently discarded.
The lack of error control means that the process using
UDP should provide for this service, if needed.

Encapsulation and Decapsulation


To send a message from one process to another, the UDP
protocol encapsulates and decapsulates messages.

Check Sum:
UDP checksum calculation includes three sections: a
pseudoheader, the UDP header, and the data coming
from the application layer.

Data Communictions and Networking47


Pseudo Header for Checksum
Calculation
Checksum..
..!

Data Communictions and Networking48


Checksum calculation for
Simple UDP

Checksum
Checksum.. Calculation
..!

Data Communictions and Networking49


TCP versus
UDP
TCP UDP
Connection-oriented Connectionless protocol.
protocol.
Messages contain packets
Reads data as streams of
bytes, and the message is that were sent one by
transmitted to segment one. It also checks for
boundaries. integrity at the arrival
time.
TCP messages make their It is not connection-based,
way so one program can
across the internet from send lots of packets
one computer to to another.
another.
UDP protocol has no fixed
TCP rearranges data order
packets in the specific
because all packets
order.
are independent of
each other.
UDP is faster as error
The speed for TCP is slower. Data Communictions and Networking50
TCP versus
UDP
TCP UDP
TCP is heavy-weight.
UDP is lightweight.
TCP needs three packets to
No tracking
set up a socket connection
connections,
before
Ordering of
any user data can be sent.
messages, etc.
It does error checking and UDP performs error
also makes error recovery. checking,
but it discards erroneous
packets.
Acknowledgment segments No Acknowledgment
segments
Using handshake protocol No handshake
like SYN, SYN-ACK, ACK (so connectionless protocol)
TCP is reliable as it The delivery of data to the
guarantees destination can’t be
delivery of data to the guaranteed in UDP.
destination router.
It offers extensive error
UDP has just a single
Data Communictions and Networking51
Data Communictions and
Networking
Congestion Control and Quality of Service

Data Communictions and Networking52


Congestion Control and
QoS
Congestion control and Quality of Service(QoS) are
two issues so closely bound together that improving
one means improving the other and ignoring one
usually means ignoring the other.

The techniques to prevent or eliminate congestion


also improve the QoS in a network.
Data Traffic: is the amount of data moving across a
network at a given point of time.
In Congestion Control - Avoid Traffic Congestion
In QoS : creates an appropriate environment for the
traffic.

Data Communictions and Networking53


Traffic
Descriptors -I
Traffic descriptors are qualitative values that represent
a data flow

Average Rate: is the number of bits sent during a


period of time, divided by the number of seconds in
that period.
It indicates the average bandwidth needed by the
traffic. Amount_of
Average_Data_Rate : Tim
_Data e

Data Communictions and Networking54


Traffic
Descriptors -II

Peak Rate: defines the maximum data rate of the


traffic.

Maximum Burst Rate: refers to the maximum length of


time the traffic is generated at the peak rate.

Effective Bandwidth: is the bandwidth that the


network needs to allocate for the flow of traffic.
It is a function of three values:
Average data rate
Peak data rate,
and Maximum
burst size.

Data Communictions and Networking55


Trafic
Profiles

Constant-bit-rate(CBR),
or a fixed-rate - Data
rate that doesn’t
change.
Variable-bit-rate(VBR) -
the rate of the data
flow changes in time,
with the changes
smooth instead of
sudden and sharp.
Bursty Data rate- the
data rate changes
suddenly in a very
short time.

Data Communictions and Networking56


Congesti
on
It is an Important issue in a packet-switched network.
Congestion in a network may occur
if the load on the network, i.e., The number of packets
sent to the network is greater than the capacity of the
network
The number of packets a network can handle.
Congestion Control...
It refers to the mechanisms and techniques to control the
congestion and keep the load below the capacity.

Data Communictions and Networking57


Queues in
Router/Switches

Congestion in a network occurs because routers and


switches have
queues-buffers that hold the packets before and after
processing.

Data Communictions and Networking58


Network
Performance
Congestion control involves 2 factors to measure the Network
Performance :
Delay: refers to the amount of time it takes for a packet to go
from point A to point B
Throughput: refers to how much data (No. of Packets)
can be transferred from source to destination within a
given timeframe

Data Communictions and Networking59


Congestion
Control
Congestion Control...
It refers to the mechanisms and techniques to control the
congestion and keep the load below the capacity.
In general, we can divide congestion control mechanisms
into two broad categories: open-loop congestion control
(prevention) and closed-loop congestion control (removal).

Data Communictions and Networking60


Open-loop Congestion
Control
Re-transmission Policy:
If the sender feels that a sent packet is lost or corrupted,
the packet needs to be retransmitted.
Re-transmission may increase congestion in the
network. However, a good re-transmission policy can
prevent congestion.

Window Policy:
The type of window at the sender may also affect
congestion. The Selective Repeat window is better than
the Go-Back-N window
for congestion control.
In the Go-Back-N window, when the timer for a packet
times out, several packets may be resent, although some
may have arrived safe and sound at the receiver. This
duplication may make
the congestion worse.
The Selective Repeat window, on the other hand, tries to
send the specific packets that have been lost or
corrupted. Data Communictions and Networking61
Open-loop Congestion
Control

Acknowledgment Policy:
It imposed by the receiver, may also affect congestion.
If the receiver does not acknowledge every packet it
receives, it may slow down the sender and help prevent
congestion.
A receiver may decide to acknowledge only N packets at a
time. We need to know that the acknowledgments are also
part of the load in a network. Sending fewer
acknowledgments means imposing less load on the
network.

Discarding Policy:
A good discarding policy by the routers may prevent
congestion and at the same time may not harm the
integrity of the transmission.
For example, in audio transmission, if the policy is to
discard less sensitive packets when congestion is likely to
happen, the quality of sound is still preserved and
congestion is prevented or Data
alleviated.
Communictions and Networking62
Open-loop Congestion
Control
Admission Policy:
It is a QoS mechanism can also prevent congestion in
virtual-circuit networks.
Switches in a flow first check the resource requirement
of a flow before admitting it to the network.
A router can deny establishing a virtual-circuit
connection if there is congestion in the network or if
there is a possibility of
future congestion.

Data Communictions and Networking63


Closed-loop Congestion
Control
Backpressure:
It refers to a congestion control mechanism in which a
congested node stops receiving data from the
immediate node or nodes.

This may cause the upstream node or nodes to become


congested, and they, in turn, reject data from their
upstream nodes or nodes.

Data Communictions and Networking64


Closed-loop Congestion
Control

Choke Packets:
It is a packet sent by a node to the source to inform it of
congestion. When a router in the Internet is overwhelmed
with IP datagrams, it may discard some of them; but it
informs the source host, using a source quench
ICMP(Internet Control Message Protocol) message.
The warning message goes directly to the source station;
the intermediate routers, and does not take any action.

Data Communictions and Networking65


Difference b/w Choke Packets and
Backpressure

Choke
Packets:
The warning is from the router, which has encountered
congestion, to the source station directly. The inter-mediate
nodes through which the packet has traveled are not
warned.

Back Pressure:
The warning is from one node to its upstream node,
although the warning may eventually reach the source
station.

Data Communictions and Networking66


Closed-loop Congestion
Control
Implicit Signaling:
There is no communication b/w the congested node
and source. The source guesses that there is a
congestion somewhere in the network from other
symptoms.
For Eg: when a source sends several packets and no
acknowledgment for a while, one assumption is that the
network is congested.
The delay in receiving an acknowledgment is interpreted
as congestion in the network; the source should slow down.

Explicit Signaling:
The node that experiences congestion can explicitly send
a signal to the source or destination.
In this method, however, is different from the choke packet
method.
In the choke packet method, a separate packet is used for
this purpose; In the explicit signaling method, the signal
is included in the packets that carry data.
It can occur in either the forward or theand
Data Communictions backward
Networking67
Closed-loop Congestion
Control

Backward Signaling:
A bit can be set in a packet moving in the direction
opposite to the congestion.
This bit can warn the source that there is congestion
and that it needs to slow down to avoid the discarding
of packets.

Forward Signaling:
A bit can be set in a packet moving in the
direction of the congestion.
This bit can warn the destination that there is
congestion.
The receiver in this case can use policies, such as slowing
down the acknowledgments, to alleviate the congestion

Data Communictions and Networking68


Example - Congestion Control
in TCP
TCP General Policy
Congestion Control is based on three
phases:
Slow start
Congestion avoidance and
Congestion detection.
Note: The size of the congestion window increases
exponentially until it reaches a threshold.

Slow-start phase,
The sender starts with a very slow rate of transmission, but
increases the rate rapidly to reach a threshold.
When the threshold is reached, the data rate is reduced to
avoid congestion.
Finally if congestion is detected, the sender goes back to
the slow-start or congestion avoidance phase based
on how the congestion is detected.
Data Communictions and Networking69
Slowstart - Exponential
Increase

Figure:Slow Start
Phase
Data Communictions and Networking70
Congestion Avoidance - Additive
Increase

Congestion Avoidance: Additive Increase:


It start with the Slow-start algorithm, the size of the
congestion window increases exponentially.
To avoid congestion before it happens, one must slow
down this exponential growth.
TCP defines another algorithm called congestion
avoidance, which undergoes an additive increase
instead of an exponential one.
When the size of the congestion window reaches the slow-
start threshold, the slow-start phase stops and the
additive phase begins.
In this algorithm, each time the whole window of
segments is acknowledged (one round), the size of the
congestion window is increased by 1

Data Communictions and Networking71


Congestion Avoidance - Additive
Increase

Figure:Congestion
Avoidance
Data Communictions and Networking72
Congestion Detection - Multiplicative
Decrease
Congestion Detection: Multiplicative Decrease:
If congestion occurs, the congestion window size must
be decreased.

The only way the sender can guess that congestion has
occurred is by the need to retransmit a segment.
However, retransmission can occur in one of two cases:
When a timer times out :
When three ACKs are received.

In both cases, the size of the threshold is dropped to


one-half, a multiplicative decrease.

Implementation Reaction to Congestion Detection


If detection is by time-out, a new slow-start phase starts.
If detection is by three ACKs, a new congestion avoidance
phase starts.
Data Communictions and Networking73
Congestion Detection - Multiplicative
Decrease
TCP implementations have two
reactions:
1 If a time-out occurs, there is a stronger possibility of
congestion; a segment has probably been dropped in
the network, and there is no news about the sent
segments.
It sets the value of the threshold to one-half of the
current window size.
It sets cwnd to the size of one
2 segment.
It starts the slow-start phase
again.
If three ACKs are received, there is a weaker possibility
of congestion; a segment may have been dropped, but
some segments after that may have arrived safely since
three ACKs are received.
This is called fast transmission and fast recovery. In this
case, TCP
has a weaker reaction:
It sets the value of the threshold to one-half of the
current window size. Data Communictions and Networking74
Quality of
Service
QoS is an Internetworking Issue
It refers to a set of techniques & mechanisms that guarantee the
performance of the n/w to deliver predictable service to an
application program.

Techniques to Improve
QoS
Scheduling
Traffic
Shaping
Resource
Data Communictions and Networking75
QoS -
Scheduling -I

Packets from different flows arrive at a switch/router for


processing.
A good scheduling technique treats the different flows
in a fair and appropriate manner.
Several scheduling techniques are designed to
improve the QoS. We discuss three of them here:
FIFO queuing:

Data Communictions and Networking76


QoS -
Scheduling -II

Priority
queuing:

Data Communictions and Networking77


QoS - Scheduling
-III

Weighted fair
queuing:

Data Communictions and Networking78


QoS - Traffic
Shapping -I
It is a mechanism to control the amount and the rate of
the traffic sent to the network.
Two techniques can shape traffic: Leaky bucket and
1 Token bucket.
Leaky bucket :

Implementation of Leaky
Bucket

Data Communictions and Networking79


QoS - Traffic
Shapping -II

2 Token
bucket :

Data Communictions and Networking80


QoS - Traffic
Shapping
Leaky Bucket
It shapes bursty traffic into fixed-rate traffic by averaging
the data rate. It may drop the packets if the bucket is full.

Token Bucket
It allows bursty traffic at a regulated maximum rate.

Conclusion
The two techniques can be combined to credit an idle host
and at the same time regulate the traffic.
The leaky bucket is applied after the token bucket;
The rate of the leaky bucket needs to be higher than
the rate of tokens dropped in the bucket.

Data Communictions and Networking81


Thank
s

Data Communictions and Networking82

You might also like