Overview of Transport Layer Functions
Overview of Transport Layer Functions
The transport Layer is the second layer in the TCP/IP model and the fourth layer in the OSI
model. It is an end-to-end layer used to deliver messages to a host. It is termed an end-to-
end layer because it provides a point-to-point connection rather than hop-to-hop, between
the source host and destination host to deliver the services reliably. The unit of data
encapsulation in the Transport Layer is a segment.
At the sender’s side: The transport layer receives data (message) from the Application layer
and then performs Segmentation, divides the actual message into segments, adds the
source and destination’s port numbers into the header of the segment, and transfers the
message to the Network layer.
At the receiver’s side: The transport layer receives data from the Network layer,
reassembles the segmented data, reads its header, identifies the port number, and forwards
the message to the appropriate port in the Application layer.
Responsibilities of a Transport Layer
The Process to Process Delivery
End-to-End Connection between Hosts
Multiplexing and Demultiplexing
Congestion Control
Data integrity and Error correction
Flow control
1. The Process to Process Delivery
While Data Link Layer requires the MAC address (48 bits address contained inside the
Network Interface Card of every host machine) of source-destination hosts to correctly
deliver a frame and the Network layer requires the IP address for appropriate routing of
packets, in a similar way Transport Layer requires a Port number to correctly deliver the
segments of data to the correct process amongst the multiple processes running on a
particular host. A port number is a 16-bit address used to identify any client-server program
uniquely.
Process to Process Delivery
4. Congestion Control
Congestion is a situation in which too many sources over a network attempt to send data
and the router buffers start overflowing due to which loss of packets occurs. As a result, the
retransmission of packets from the sources increases the congestion further. In this
situation, the Transport layer provides Congestion Control in different ways. It uses open-
loop congestion control to prevent congestion and closed-loop congestion control to
remove the congestion in a network once it occurred. TCP provides AIMD – additive
increases multiplicative decrease and leaky bucket technique for congestion control.
6. Flow Control
The transport layer provides a flow control mechanism between the adjacent layers of the
TCP/IP model. TCP also prevents data loss due to a fast sender and slow receiver by
imposing some flow control techniques. It uses the method of sliding window protocol
which is accomplished by the receiver by sending a window back to the sender informing
the size of data it can receive.
Protocols of Transport Layer
Transmission Control Protocol (TCP)
User Datagram Protocol (UDP)
Stream Control Transmission Protocol (SCTP)
Datagram Congestion Control Protocol (DCCP)
AppleTalk Transaction Protocol (ATP)
Fibre Channel Protocol (FCP)
Reliable Data Protocol (RDP)
Reliable User Data Protocol (RUDP)
Structured Steam Transport (SST)
Sequenced Packet Exchange (SPX)
In the Transport Layer of the OSI model, the reliability of a connection is determined by the
protocols in use and the services they provide. Here's an explanation of RELIABLE AND
UNRELIABLE CONNECTIONS:
Reliable Connection:
A reliable connection ensures that data is delivered accurately, completely, and in the
correct order. Protocols providing reliability typically implement error detection,
acknowledgment mechanisms, and retransmission strategies.
Characteristics:
Use Cases:
Unreliable Connection:
An unreliable connection does not guarantee data delivery, order, or integrity. Protocols
providing unreliable services are typically simpler and faster because they do not implement
acknowledgments or retransmissions.
Characteristics:
1. No Acknowledgments:
o The sender does not wait for a confirmation from the receiver.
2. No Retransmission:
If data is lost or corrupted during transmission, it is not resent.
o
3. No Flow Control:
o The sender does not manage the rate of data transfer.
4. Connectionless Protocol:
o No connection establishment or termination; data is sent as independent
packets.
o Example: UDP (User Datagram Protocol).
Use Cases:
Applications prioritizing speed and low latency over reliability, such as:
o Live streaming.
o Online gaming.
o Voice over IP (VoIP).
o DNS queries.
Comparison Table:
Retransmissions Yes No
Use Case Data integrity and reliability needed Low latency and speed prioritized
What is Socket?
A socket can be regarded as a basic network entity that allows devices to communicate
over a network with the use of data. It is used in a communication chain and acts as an
accepting and transmitting centre for data from the applications. Sockets are a way to
enable programs to communicate with others using certain protocols like TCP or UDP.
Sockets enable the connection between a client and a server to allow the two to send
information to each other and the supported type of network communication.
Features of Socket
Bidirectional Communication: Enables the flow of data in both directions and
at the same time.
Protocol Support: Can employ various protocols of communication such
as TCP (stream), UDP (datagram), etc.
Port Management: Uses ports to differentiate the various channels of
communication on a single device.
Connection Establishment: It also supports the connection-oriented transport
layer and connectionless transport layer protocols.
Error Handling: It encompasses ways of handling errors and breakages of data
transmission.
What is Port?
A port is an access point where protocols are used in a network to locate the particular
processes or services within a device. It is several 16 bits that can have a value between 0
and 65535 and can be used for discriminating one application or service from others
running on the same host. Ports enable the right forwarding of the network connections
where the data packets are directed to the right location of the application.
Ports are categorized into three ranges:
Well-Known Ports (0-1023): Used for common services and/or protocols
inclusive of; web (HTTP, 80), secure web (HTTP, 443), and File transfer (FTP,
21).
Registered Ports (1024-49151): Used in user processes or applications that may
not be popular, but are cited with IANA to prevent competition with others.
Dynamic or Private Ports (49152-65535): This can be used by client
applications for short-lived connections and are not required to be registered
with Internet Assigned Numbers Authority (IANA).
Features of Port
Unique Identification: A port provides a way to uniquely reference a specific
process or service on a given piece of hardware so that, for example,
transmitted data gets to where it needs to go.
Standardization: Standard ports are used for popular services and they are
defined in such a manner that they can be used on different systems and
networks.
Port Ranges: Categorized into popular, standard and dynamic categories to
make it easier and more efficient to manage the network services.
Multiple Services: Enable more than one network service to operate on a single
host by giving each service a unique port number.
Connection Management: Facilitate the processing of multiple connections at
the same time, especially in client-server models.
TCP users communicate with each other by sending packets. The packet contains data and
other information about the source and destination and other TCP variables. These details
are stored in the TCP header which is the top part of the packet. When a data packet is
transmitted via different network devices the header is processed every time and then the
packet is further forwarded. The data is not altered while the packet is in transit but some
details might get changed in the header like IP address and port number via passing through
NAT devices.
TCP Header
After headers, there is an options field. The maximum size of the options field is 40 bytes.
Its size is variable; keeps on changing packet to packet.
When TCP was developed initially, the internet, memory, and technology were not so
advanced and cheap. The basic headers were enough at that time for successful
communication between two computer nodes. But as the internet became popular the old
TCP started to become outdated and changes in headers were required to accommodate
the available changes in the internet and memory. But once the TCP is so popular globally,
it would be practically impossible to introduce new changes into it and deploy it on every
device. So then how do TCP and the internet come out with the solution?
They left the options field just below the main headers into the packet. At the time the use
of the options field was very limited but now every new change or optimization is
implemented using this options field. Around 35 optimizations are implemented using this
options field in the TCP header as of today. Since the kind variable is of 1-byte size, it can
represent 256 numbers. Other than 35 optimizations, other values are reserved. This field
is optional because it is used on very special occasions and isn’t used in every packet. Many
optimizations use the options fields in the SYN packets and others use it when the network
is congested.
Various Options:
Window Scaling:
Kind = 3
Length = 3
Window Scaling: [Link]
The “window size” field is 16 bits long and can represent the maximum value 216=65,536.
The client can advertise its buffer up to 64KB using this “window size” field in the TCP
header. Using the window scaling option, the client can tell the server its scaling factor,
which gives the sender the capability to advertise its buffer size up to 2 30=1 GB. [Link]
takes the values from 0-14. So, 16+14=30 is the maximum bits available to advertize the
buffer size.
Window Scaling
Selective ACK:
Kind=4
Length=2
SACK Permitted
Kind=5
Length= 8n
SACK
SACK informs the sender about multiple packets lost, so that sender can recover the loss
asap. In the SYN packet sender tells the server that it supports the SACK option by using the
“Sack permitted” option.
When there is the delivery of packets out of order at the receiver side, the receiver sends
the SACK option telling about the lost packets. One block of SACK takes 8 bytes, so the size
of the sack is the multiple of 8 bytes.
Selective ACK
Timestamps:
Kind=8
Length=10
Timestamps
Kind and Length variables take 1 byte each. Timestamps have two parts: sending time and
receiving time, each consuming 4 bytes. So, this option field occupies 10 bytes in total.
Use of timestamps are: RTTM(Round Trip Time Measurement), PAWS( Protection against
wrapped Sequence number)
Timestamps
TCP FastOpen:
Kind=34
Length=18
TCP Fast Open Cookie
The client first tells the server in the SYN packet that it supports TCP FastOpen. Then the
server sends encrypted cookies in the SYN+ACK packet. The kind and length variable takes
2 bytes together. The cookie is of size 16 bytes. Thus, this option consumes 18 bytes in total.
TFO avoids a 3-way-handshake each time the client request server for connection
establishment. Using TFO client can directly send GET requests to the server.
TCP FastOpen
NOP:
Kind=1
This option field is used between two options. This option tells the beginning of the next
option field in the options field/block. This may or may not be used by the sender, so the
receiver must be prepared to process the options with or without this NOP. It just consumes
1 byte of space and has no length or significant information unlike other options do.
NOP
User Datagram Protocol is a Transport Layer protocol. UDP is a part of the Internet
Protocol suite, referred to as UDP/IP suite. Unlike TCP, it is an unreliable and
connectionless protocol. So, there is no need to establish a connection prior to data
transfer. Though Transmission Control Protocol (TCP) is the dominant transport layer
protocol used with most Internet services; provides assured delivery, reliability, and much
more but all these services cost us additional overhead and latency. Here, UDP comes into
the picture. For real-time services like computer gaming, voice or video communication,
live conferences; we need UDP. Since high performance is needed, UDP permits packets to
be dropped instead of processing delayed packets. There is no error checking in UDP, so it
also saves bandwidth.
User Datagram Protocol (UDP) is more efficient in terms of both latency and bandwidth.
UDP header :
UDP header is an 8-bytes fixed and simple header. The first 8 Bytes contains all necessary
header information and the remaining part consist of data. UDP port number fields are
each 16 bits long, therefore the range for port numbers defined from 0 to 65535; port
number 0 is reserved. Port numbers help to distinguish different user requests or
processes.
Example-1 :
Given a DUMP of a UDP header in hexadecimal format 06 32 00 0D 00 1C E2 17. Find the
following:-
1. Source port number?
2. Destination port number?
3. Length of user datagram?
4. Length of the data?
Solution :
1. Source Port –
Source Port is 2 Byte long field used to identify the port number of the source.
The source port number is the first four hexadecimal digits i.e. 06 32 if we
convert hexadecimal to decimal we get 1586.
2. Destination Port –
It is a 2 Byte long field, used to identify the port of the destined packet. The
destination port number is the second four hexadecimal digits 00 0D if we
convert hexadecimal to decimal we get 13
3. Length –
Length is the length of UDP including the header and the data. It is a 16-bits
field. The third four hexadecimal digits 00 1C if we convert hexadecimal to
decimal we get 16 define the length of the whole UDP packet as 28
4. Length of the header –
It is 8 bytes as it is fixed. The length of the data is the length of the whole
packet — the length of the header i.e. 28 – 8 = 20 bytes.
Example-2 :
Given a DUMP of a UDP header in hexadecimal format 04 21 00 0B 00 2A E2 17. Find the
following:-
1. Source port number?
2. Destination port number?
3. Length of user datagram?
4. Length of the data?
Solution:
1. The source port number is the first four hexadecimal digits i.e. 04 21 if we
convert hexadecimal to decimal we get 1057
2. The destination port number is the second four hexadecimal digits 00 0B if we
convert hexadecimal to decimal we get 11
3. The third four hexadecimal digits 00 2A if we convert hexadecimal to decimal
42 define the length of the whole UDP packet as 28
4. The length of the data is the length of the whole packet — the length of the
header i.e. 28 – 8 = 20 bytes.
Example-3 :
Given a DUMP of a UDP header in hexadecimal format 03 61 10 1A 10 4C Y2 42. Find the
following:-
1. Source port number?
2. Destination port number?
3. Length of user datagram?
4. Length of the data?
Solution:
1. The source port number is the first four hexadecimal digits i.e. 03 61 if we
convert hexadecimal to decimal we get 0865
2. The destination port number is the second four hexadecimal digits 10 1A if we
convert hexadecimal to decimal we get 4122
3. The third four hexadecimal digits 10 4C if we convert hexadecimal to decimal
4172 define the length of the whole UDP packet as 28
4. The length of the data is the length of the whole packet — the length of the
header i.e. 28 – 8 = 20 bytes.
Note :
UDP header also contains payload data which is of variable length. Use of UDP is as a
tunneling protocol, where a tunnel endpoint encapsulates the packets of another protocol
inside UDP datagrams and transmits them to another tunnel endpoint, which decapsulates
the UDP datagrams and forwards the original packets contained in the payload.
SCTP stands for Stream Control Transmission Protocol. It is a connection- oriented protocol
in computer networks which provides a full-duplex association i.e., transmitting multiple
streams of data between two end points at the same time that have established a
connection in network. It is sometimes referred to as next generation TCP or TCPng, SCTP
makes it easier to support telephonic conversation on Internet. A telephonic conversation
requires transmitting of voice along with other data at the same time on both ends, SCTP
protocol makes it easier to establish reliable connection.
SCTP is also intended to make it easier to establish connection over wireless network and
managing transmission of multimedia data. SCTP is a standard protocol (RFC 2960) and is
developed by Internet Engineering Task Force (IETF).
Characteristics of SCTP
1. Unicast with Multiple properties – It is a point-to-point protocol which can use
different paths to reach end host.
2. Reliable Transmission – It uses SACK and checksums to detect damaged,
corrupted, discarded, duplicate and reordered data. It is similar to TCP but SCTP
is more efficient when it comes to reordering of data.
3. Message oriented – Each message can be framed and we can keep order of
datastream and tabs on structure. For this, In TCP, we need a different layer for
abstraction.
4. Multi-homing – It can establish multiple connection paths between two end
points and does not need to rely on IP layer for resilience.
5. Security – Another characteristic of SCTP that is security. In SCTP, resource
allocation for association establishment only takes place following cookie
exchange identification verification for the client (INIT ACK). Man-in-the-middle
and denial-of-service attacks are less likely as a result. Furthermore, SCTP
doesn’t allow for half-open connections, making it more resistant to network
floods and masquerade attacks.
Advantages of SCTP
1. It is a full- duplex connection i.e. users can send and receive data
simultaneously.
2. It allows half- closed connections.
3. The message’s boundaries are maintained and application doesn’t have to split
messages.
4. It has properties of both TCP and UDP protocol.
5. It doesn’t rely on IP layer for resilience of paths.
Disadvantages of SCTP
1. One of key challenges is that it requires changes in transport stack on node.
2. Applications need to be modified to use SCTP instead of TCP/UDP.
3. Applications need to be modified to handle multiple simultaneous streams.
Conclusion
It is a connection-oriented, reliable protocol that allows multiple data streams between two
endpoints. SCTP does provide some profound enhancements to traditional TCP and UDP by
supporting multi-homing, message orientation, and security enhancements. Applications
most suited to exploit its advantages are VoIP and multimedia transmission. This comes
with certain overhead, like alteration of the existing transport stack and modifications to
the applications for SCTP adoption.
Comparison Table
Ensures ordered
Order of Data No order guarantee Optional ordered delivery
delivery
Multi-stream
No No Yes
Support
Multi-homing
No No Yes
Support
CONGESTION CONTROL:
Congestion control is a crucial concept in computer networks. It refers to the methods used
to prevent network overload and ensure smooth data flow. When too much data is sent
through the network at once, it can cause delays and data loss. Congestion control
techniques help manage the traffic, so all users can enjoy a stable and efficient network
connection. These techniques are essential for maintaining the performance and reliability
of modern networks.
What is Congestion?
Congestion in a computer network happens when there is too much data being sent at the
same time, causing the network to slow down. Just like traffic congestion on a busy road,
network congestion leads to delays and sometimes data loss. When the network can’t
handle all the incoming data, it gets “clogged,” making it difficult for information to travel
smoothly from one place to another.
Effects of Congestion in Computer Network
Improved Network Stability: Congestion control helps keep the network stable
by preventing it from getting overloaded. It manages the flow of data so the
network doesn’t crash or fail due to too much traffic.
Reduced Latency and Packet Loss: Without congestion control, data
transmission can slow down, causing delays and data loss. Congestion
control helps manage traffic better, reducing these delays and ensuring fewer
data packets are lost, making data transfer faster and the network more
responsive.
Enhanced Throughput: By avoiding congestion, the network can use its
resources more effectively. This means more data can be sent in a shorter time,
which is important for handling large amounts of data and supporting high-
speed applications.
Fairness in Resource Allocation: Congestion control ensures that network
resources are shared fairly among users. No single user or application can take
up all the bandwidth, allowing everyone to have a fair share.
Better User Experience: When data flows smoothly and quickly, users have a
better experience. Websites, online services, and applications work more
reliably and without annoying delays.
Mitigation of Network Congestion Collapse: Without congestion control, a
sudden spike in data traffic can overwhelm the network, causing severe
congestion and making it almost unusable. Congestion control helps prevent
this by managing traffic efficiently and avoiding such critical breakdowns.
Congestion Control Algorithm
Congestion Control is a mechanism that controls the entry of data packets into
the network, enabling a better use of a shared network infrastructure and
avoiding congestive collapse.
Congestive-avoidance algorithms (CAA) are implemented at the TCP layer as
the mechanism to avoid congestive collapse in a network.
There are two congestion control algorithms which are as follows:
Leaky Bucket Algorithm
The leaky bucket algorithm discovers its use in the context of network traffic
shaping or rate-limiting.
A leaky bucket execution and a token bucket execution are predominantly used
for traffic shaping algorithms.
This algorithm is used to control the rate at which traffic is sent to the network
and shape the burst traffic to a steady traffic stream.
The disadvantages compared with the leaky-bucket algorithm are the
inefficient use of available network resources.
The large area of network resources such as bandwidth is not being used
effectively.
Let us consider an example to understand Imagine a bucket with a small hole in the bottom.
No matter at what rate water enters the bucket, the outflow is at constant rate. When the
bucket is full with water additional water entering spills over the sides and is lost.
Similarly, each network interface contains a leaky bucket and the following steps are
involved in leaky bucket algorithm:
When host wants to send packet, packet is thrown into the bucket.
The bucket leaks at a constant rate, meaning the network interface transmits
packets at a constant rate.
Bursty traffic is converted to a uniform traffic by the leaky bucket.
In practice the bucket is a finite queue that outputs at a finite rate.
To learn more about Leaky Bucket Algorithm please refer the article.
Token Bucket Algorithm
The leaky bucket algorithm has a rigid output design at an average rate
independent of the bursty traffic.
In some applications, when large bursts arrive, the output is allowed to speed
up. This calls for a more flexible algorithm, preferably one that never loses
information. Therefore, a token bucket algorithm finds its uses in network
traffic shaping or rate-limiting.
It is a control algorithm that indicates when traffic should be sent. This order
comes based on the display of tokens in the bucket.
The bucket contains tokens. Each of the tokens defines a packet of
predetermined size. Tokens in the bucket are deleted for the ability to share a
packet.
When tokens are shown, a flow to transmit traffic appears in the display of
tokens.
No token means no flow sends its packets. Hence, a flow transfers traffic up to
its peak burst rate in good tokens in the bucket.
To learn more about Token Bucket Algorithm please refer the article.
Need of Token Bucket Algorithm
The leaky bucket algorithm enforces output pattern at the average rate, no matter how
bursty the traffic is. So in order to deal with the bursty traffic we need a flexible algorithm
so that the data is not lost. One such algorithm is token bucket algorithm.
Steps of this algorithm can be described as follows:
In regular intervals tokens are thrown into the bucket. ƒ
The bucket has a maximum capacity. ƒ
If there is a ready packet, a token is removed from the bucket, and the packet is
sent.
If there is no token in the bucket, the packet cannot be sent.
Let’s understand with an example, In figure (A) we see a bucket holding three tokens, with
five packets waiting to be transmitted. For a packet to be transmitted, it must capture and
destroy one token. In figure (B) We see that three of the five packets have gotten through,
but the other two are stuck waiting for more tokens to be generated.
Token Bucket vs Leaky Bucket
The leaky bucket algorithm controls the rate at which the packets are introduced in the
network, but it is very conservative in nature. Some flexibility is introduced in the token
bucket algorithm. In the token bucket algorithm, tokens are generated at each tick (up to a
certain limit). For an incoming packet to be transmitted, it must capture a token and the
transmission takes place at the same rate. Hence some of the busty packets are transmitted
at the same rate if tokens are available and thus introduces some amount of flexibility in
the system.
Formula: M * s = C + ? * s where S – is time taken M – Maximum output rate ? – Token
arrival rate C – Capacity of the token bucket in byte
Let’s understand with an example,
Link to question on leaky bucket algorithm: [Link]
networks-set-8/
Advantages
Stable Network Operation: Congestion control ensures that networks remain
stable and operational by preventing them from becoming overloaded with too
much data traffic.
Reduced Delays: It minimizes delays in data transmission by managing traffic
flow effectively, ensuring that data packets reach their destinations promptly.
Less Data Loss: By regulating the amount of data in the network at any given
time, congestion control reduces the likelihood of data packets being lost or
discarded.
Optimal Resource Utilization: It helps networks use their resources efficiently,
allowing for better throughput and ensuring that users can access data and
services without interruptions.
Scalability: Congestion control mechanisms are scalable, allowing networks to
handle increasing volumes of data traffic as they grow without compromising
performance.
Adaptability: Modern congestion control algorithms can adapt to changing
network conditions, ensuring optimal performance even in dynamic and
unpredictable environments.
Disadvantages
Complexity: Implementing congestion control algorithms can add complexity to
network management, requiring sophisticated systems and configurations.
Overhead: Some congestion control techniques introduce additional overhead,
which can consume network resources and affect overall performance.
Algorithm Sensitivity: The effectiveness of congestion control algorithms can
be sensitive to network conditions and configurations, requiring fine-tuning for
optimal performance.
Resource Allocation Issues: Fairness in resource allocation, while a benefit, can
also pose challenges when trying to prioritize critical applications over less
essential ones.
Dependency on Network Infrastructure: Congestion control relies on the
underlying network infrastructure and may be less effective in environments
with outdated or unreliable equipment.
Congestion control is essential for keeping computer networks running smoothly. It helps
prevent network overloads by managing the flow of data, ensuring that information gets
where it needs to go without delays or loss. Effective congestion control improves network
performance and reliability, making sure that users have a stable and efficient connection.
By using these techniques, networks can handle high traffic volumes and continue to
operate effectively.
When the host has to send a packet , In this, the bucket holds tokens generated at
packet is thrown in bucket. regular intervals of time.
In practice bucket is a finite queue If there is no token in the bucket, then the
outputs at finite rate packet cannot be sent.
1. Retransmission Policy :
It is the policy in which retransmission of the packets are taken care of. If the
sender feels that a sent packet is lost or corrupted, the packet needs to be
retransmitted. This transmission may increase the congestion in the network.
To prevent congestion, retransmission timers must be designed to prevent
congestion and also able to optimize efficiency.
2. Window Policy :
The type of window at the sender’s side may also affect the congestion. Several
packets in the Go-back-n window are re-sent, although some packets may be
received successfully at the receiver side. This duplication may increase the
congestion in the network and make it worse.
Therefore, Selective repeat window should be adopted as it sends the specific
packet that may have been lost.
3. Discarding Policy :
A good discarding policy adopted by the routers is that the routers may prevent
congestion and at the same time partially discard the corrupted or less
sensitive packages and also be able to maintain the quality of a message.
In case of audio file transmission, routers can discard less sensitive packets to
prevent congestion and also maintain the quality of the audio file.
4. Acknowledgment Policy :
Since acknowledgements are also the part of the load in the network, the
acknowledgment policy imposed by the receiver may also affect congestion.
Several approaches can be used to prevent congestion related to
acknowledgment.
The receiver should send acknowledgement for N packets rather than sending
acknowledgement for a single packet. The receiver should send an
acknowledgment only if it has to send a packet or a timer expires.
5. Admission Policy :
In admission policy a mechanism should be used to prevent congestion.
Switches in a flow should first check the resource requirement of a network
flow before transmitting it further. If there is a chance of a congestion or there
is a congestion in the network, router should deny establishing a virtual
network connection to prevent further congestion.
Closed Loop Congestion Control
Closed loop congestion control techniques are used to treat or alleviate congestion after it
happens. Several techniques are used by different protocols; some of them are:
1. Backpressure :
Backpressure is a technique in which a congested node stops receiving packets from
upstream node. This may cause the upstream node or nodes to become congested and
reject receiving data from above nodes. Backpressure is a node-to-node congestion
control technique that propagate in the opposite direction of data flow. The backpressure
technique can be applied only to virtual circuit where each node has information of its
above upstream node.
In above diagram the 3rd node is congested and stops receiving packets as a result
2nd node may be get congested due to slowing down of the output data flow. Similarly 1st
node may get congested and inform the source to slow down.
4. Explicit Signalling :
In explicit signalling, if a node experiences congestion it can explicitly send a packet to the
source or destination to inform about congestion. The difference between choke packet
and explicit signalling is that the signal is included in the packets that carry data rather
than creating a different packet as in case of choke packet technique.
Explicit signalling can occur in either forward or backward direction.
Forward Signalling : In forward signalling, a signal is sent in the direction of the
congestion. The destination is warned about congestion. The receiver in this
case adopt policies to prevent further congestion.
Backward Signalling : In backward signalling, a signal is sent in the opposite
direction of the congestion. The source is warned about congestion and it
needs to slow down.
Delay, Increase in delay means destination will find the packet later than
expected, Importance of delay changes according to the various application.
Jitter, Variation of the delay is jitter, If the delay is not at a constant rate, it may
result in poor quality.
1. Overprovisioning –
The logic of overprovisioning is to provide greater router capacity, buffer space
and bandwidth. It is an expensive technique as the resources are costly. Eg:
Telephone System.
2. Buffering –
Flows can be buffered on the receiving side before being delivered. It will not
affect reliability or bandwidth, but helps to smooth out jitter. This technique
can be used at uniform intervals.
3. Traffic Shaping –
It is defined as about regulating the average rate of data transmission. It
smooths the traffic on server side other than client side. When a connection is
set up, the user machine and subnet agree on a certain traffic pattern for that
circuit called as Service Level Agreement. It reduces congestion and thus helps
the carrier to deliver the packets in the agreed pattern.