TCP and ATM Congestion Control -A simulation study using OPNET
Group:
Desai, Bimal
Chauhan, Anand Kumar
Mukherjee, Gautam
Submitted in Partial
Fulfillment for the degree in Master of Science in Computer
Science
Summer 2001, Department of
Computer Science
Lamar University, Beaumont,
TX- 77710
Directed by:
Dr. Lawrence Osborne
Chair, Department of Computer Science
Lamar University, Beaumont, TX -77710
Acknowledgement
We express our heartfelt gratitude to Dr. Lawrence Osborne, Chair, Department of Computer Science at Lamar University, Beaumont TX-77710, without whose priceless encouragement, guidance and support this project would not have been a success. We also sincerely thank the members of the other project group for their consistent and invaluable help.
We express our gratitude to Dr. H. Koh and Dr. Q.N Tran for their guidance and kind suggestions.
We dedicate our endeavor to our parents without whose boundless love and blessings this project would not have been a success.
Group: Desai, Bimal
Chauhan, Anand Kumar
Mukherjee, Gautam
Department of Computer Science, Lamar University
Summer 2001
Abstract
TCP and ATM Congestion Control – A simulation study using OPNET
TCP uses Slow Start algorithm while ATM Available Bit Rate uses the Explicit Rate algorithm for congestion control in a network. We used OPNET to study and compare performances of the two algorithms. The networks under study were designed keeping in mind the actual Wide Area Networks typical of today’s Internet situation. The study of ATM networks was based on two types of switches – Binary and Explicit Rate switches which use EFCI and ERICA congestion control algorithms respectively.
Through simulation of the networks and analysis of the results, we came up with the following primary conclusions about performance of TCP and ATM congestion control algorithms.
Study of ERICA, EFCI and EFCI-UPC algorithms led us to the following conclusions.
1.1 Purpose 6
1.2 Overview of Congestion in Networks 6
1.3 Congestion control measures 7
1.4 Overview of TCP Congestion control 9
1.5 ATM ABR Flow control 10
1.6 Sample network 10
1.7 Brief Methodology 11
1.8 Organization of rest of report 13
2.1 Introduction to TCP 14
2.2 Definitions 14
2.3 TCP Connection 17
2.4 TCP Congestion control 18
2.5 Algorithms used in TCP congestion control 19
2.6 TCP Flavors 25
2.7 Parameters of TCP 27
2.8 Performance Measures for TCP connection 28
3.1 TCP Design Approach 34
3.2 TCP Protocol Behavior 35
3.3 TCP Design Basics 36
3.4 Available Statistics 40
4.1 Congestion window analysis 43
4.2 Comparison of Reno and Tahoe 48
4.3 Performance measures of TCP connections 53
5.1 Introduction to ATM 68
5.2 ATM Traffic Management 70
5.3 Importance of ATM 71
5.4 ATM models 72
5.5 ATM Connections 73
5.6 ATM QoS parameters 74
5.7 ATM Traffic descriptors 75
5.8 ATM Service categories 76
5.9 ATM Connection Admission Control 77
5.10 ATM Congestion control 78
6.1 ATM Design Basics 88
6.2 ATM Protocol Behavior 90
6.3 ATM Node models 91
6.4 ATM Model attributes 91
6.5 ATM Available statistics 95
6.6 ATM Network components 96
6.7 Destination Address configuration 99
7.1 ATM Global Throughput and load 101
7.2 ABR CTD and CDV 105
7 3 Queuing delay 111
7.4 Queue length 113
7.5 Allowed Cell rate and queue length 114
7.6 Queue length threshold 117
7.7 Conclusion 119
7.8 Further work 121
8.1 Conclusion 120
8.2 Future Work 122
Bibliography 123
Appendix A- TCP Network Configuration
Steps 125
Appendix
B- ATM Network Configuration Steps 144
1.1 Purpose:
The purpose of the project was to study and compare TCP and ATM congestion control algorithms using simulation. We used OPNET- a simulation software by MIL3 for our project. Simulation was performed on separate model networks for TCP/IP and ATM. Performance of the congestion control algorithms used by TCP and ATM was evaluated based on collected data from simulation. Conclusions were drawn about behavior of the two above mentioned congestion control schemes based on analysis of collected statistics.
1.2 Overview of congestion in networks:
Congestion is a phenomenon, which is often encountered, in the networks today. Congestion is likely to occur in an expanding system like the Internet and is often a dynamic phenomenon and happens mainly due to unpredictable events. In the networks, congestion causes excessive delay or loss or both, while the quality of service provided to the end user application is highly affected by such delay and loss. In IP/ATM networks, congestion occurs when the offered load (demand) from the user to the network reaches or exceeds network capabilities (available resources) for providing guaranteed Quality of Service (QoS) over an extended time interval. Such excess demand can occur due to incorrect oversubscribing of resources by network, failures within the network or because of operational failures. In IP/ATM networks, buffers, transmission facilities or processors are prone to congestion. The resource or transmission link where demand exceeds capacity is called a bottleneck [1].
B



![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()

![]()

![]()
![]()


Figure 1. Illustration of Congestion Around a Route
[1]
Figure 1.1 shows an example of congestion occurring along a path from a server connected to a node D. The nodes in the figure are connected by links and thicker lines indicate a high link capacity. Dots shown next to each link are the rate of bursts of packets/cells delivered across the link. As in Figure 1.1, high-speed links are capable of delivering at a rate of 3 bursts while a thin link can only transmit 1 burst per time interval.
There are two points of congestion in Figure 1.1. The average input to Node C is 6 bursts while the output link can transmit only 3 bursts. Thus, the link between Nodes C and D is congested due to persistent overloading and will eventually result in packets or cells being dropped as storage facilities gradually become full.
Another example of congestion occurs on the low speed link between Node D and the user. The link is capable of transmitting only 1 burst per time interval but has been receiving 3 bursts from the server. Such a mismatch in speed also causes congestion and results in packets or cells being dropped [1].
1.3
Congestion control measures:
The effect of congestion is determined by several application characteristics such as connection node, retransmission policy, acknowledgement policy, responsiveness and higher layer flow control [1]. Network characteristics such as queuing delay, service-scheduling policy, discard strategy, route selection, propagation delay, and processing delay and connection node are also causes of congestion.
The degree of congestion is measured by two major metrics: throughput and delay. Throughput can be defined as the data transmission rate achieved by the end application. Throughput requirements are different for different types of applications. Voice and video are examples of applications with strict throughput requirements. Delay can be defined as the actual time elapsed between the first unsuccessful transmission of a packet and a subsequent successful reception at the receiver [1]. Delay requirements are strict for real time applications. Loss also is a measure of congestion, and tolerance for loss varies among different applications.
Ideal
![]()
![]()

![]()
1 Good
0.8
Throughput
0.4 Poor
0.2
0
Load
0% 50% 100%
Figure
1.2: Throughput vs. Load [1]
Figure 1.2 is a plot of effective
throughput versus offered load. As seen from the figure, in an ideal system,
throughput increases linearly with increased load. In a good congestion control
algorithm, the throughput becomes constant beyond a certain point with
increased load while a poor congestion control algorithm gives a congestion
collapse when throughput reduces considerably as offered load is increased
beyond a certain value.

![]()
8 Poor Good Ideal
Delay 6
4
2
![]()
0
0% 50% 100%
Offered Load
Figure 1.3 plots delay versus offered load. As shown, ideal congestion control schemes exhibit bounded delay for all values of offered load and delay becomes infinite under infinite load conditions. Good congestion control algorithms show increased delay with severe congestion while poor congestion control algorithms exhibit delay that increases rapidly even before the system is fully utilized.
Simultaneous achievement of high throughput and low delay is practically impossible. As a tradeoff, queuing power is evaluated.

![]()
1.0
0.8
Power 0.6 Ideal
0.4
0.2 Good
Poor
0% 50% 100%
Offered Load
Figure
1.4: Illustration of queuing power for congestion control schemes [1]
Queuing power = Throughput/delay.
Figure 1.4 is a plot of queuing power versus offered load. Queuing power is a tradeoff between throughput and delay because it compares the ratio between the two instead of comparing absolute values. As seen from Figure 1.4, a good congestion control algorithm shows an optimum queuing power at low utilization levels [1].
1.4 Overview
of TCP Congestion control:
There are two mechanisms for controlling congestion: open loop and closed loop. The open loop congestion control operates without any feedback while in the closed loop scheme the sender receives feedback about the congested state. TCP and ATM ABR both use closed loop congestion control mechanisms. TCP works over IP to achieve reliable transmission of packets on an end-to-end basis. The congestion control algorithm used by TCP is known as the Slow Start algorithm and it uses a variable length sliding window flow control protocol. TCP requires acknowledgement for each packet from the receiver and if such an acknowledgement is not received within a time out interval, retransmission occurs based on the assumption that the packet was lost. The sender also assumes a congested situation and slows down the transmission rate as a congestion control measure. The transmission rate is decreased by means of decreasing the window size at the sender [1, 12, 17].
1.5 ATM ABR
Flow control:
ATM uses a feedback scheme in which the intermediate nodes send feedback messages to the source about the occurrence of congestion or about the current rate at which it is capable of transmitting. The source then adjusts its transmission rate based on the feedback messages. If sources conform to the rules of ABR, then a minimum cell rate (MCR) is guaranteed by the network with minimal cell loss. Policing ensures that sources do not violate the traffic contract. ABR Flow control has two major modes –EFCI or binary mode and Explicit rate mode. Fairness is an important objective in the closed loop flow control scheme.
In
the EFCI mode switches indicate congestion using the EFCI bit in the ATM cell
header. Destinations set the Congestion Indication (CI) bit in the Resource
Management (RM) cells, which travel backward from destination to source. The
source then reduces its transmission rate by a fraction of the currently
available cell rate.
In the Explicit rate mode each network element explicitly sets the maximum allowed rate in the RM cells as they loop back to the source. The source then updates its sending rate as indicated in the RM cells. The ABR service operates at high utilization with negligible cell loss. The ABR Flow control scheme can be implemented on per hop basis (Virtual source/destination VS/VD) or on an end-to-end basis (No VS/VD) [1, 2, 5, 8, 12].
1.6 Sample
network:
Figure 1.5(a) shows a sample network used in the project to study the TCP Congestion control algorithm. The network consists of servers, workstations and an aggregation of routers/switches representing the Internet Cloud. The network served as a model for simulation. The cloud is an aggregate of IP routers connected by high-speed OC-3 links. The servers support various applications requested by the workstations.
Figure 1.5 (b) shows a similar sample network used as simulation model for studying ATM ABR Flow control. The cloud here consists of ATM cross connection switches and ATM sources that generate ATM cells during every time interval and send them to ATM destinations. The switches in the cloud are interconnected by high-speed links.
1.7 Brief
Methodology:
OPNET 7.0B/8.0C was used as the simulation tool. The scope of the project required building a complete network topology because effects of congestion are scaled across the network. A complete network topology was decided upon after careful evaluation of available high performance network test beds available through resources on the Internet even though our study concentrated on evaluating the performance on the Internet cloud [3]. The network model was built up by choosing required node models and link models from the OPNET Object Palette and setting up the applications and profiles supported. A series of simulations were then performed on the models. Each parameter change resulted in a different scenario and results were analyzed and compared in order to understand changes in network behavior.

Figure
1.5(a): Sample TCP network [1]
Figure 1.5(b): Sample ATM
network [1]
Two different flavors of TCP (Tahoe and Reno) were used as parameters of the transport layer while simulating the TCP model [1, 12,13, 14, 18]. The effects of buffer size and threshold values on congestion were also used as parameters to study congestion. Statistics were collected on Congestion window size, number of TCP connections, fairness, slow start initial count, link utilization, latency and response time. Network behavior was studied by changing different traffic distributions (exponential, geometric, pareto), page response times and file sizes.
ATM ABR Flow control was studied with respect to throughput/load, cell delay, cell delay variation, queue length and allowed cell rate. The relationship between allowed cell rate and queue length was an important area of study. The EFCI (Binary mode), ERICA (Explicit rate mode) and EFCI mode with Usage Policy Control were implemented on the network model and simulation was performed to compare and contrast the performance of the three schemes.
1.8
Organization of Report:
This report is divided into eight chapters. Chapter 2 describes the TCP congestion control theory and implementation details. Chapter 3 contains a detailed design of the TCP/IP model using OPNET 7.0B. Chapter 4 is concerned with the analysis of simulation results of the TCP model. Chapter 5 describes the theoretical principles of ATM and ABR congestion control schemes. Chapter 6 gives a detailed description of the OPNET simulation models and design strategies used. Chapter 7 describes the results obtained and presents detailed analysis of the ABR Flow control methods based on the results of simulation, the conclusions we have drawn about similarities and differences between TCP and ATM congestion control methods are described in Chapter 8. The last section of the report is a user manual, which will help future researchers in conducting further work in this field.
2. 1
Introduction to TCP:
TCP is a transport layer protocol that provides reliable transport service to most of the Internet applications including FTP, HTTP, telnet, remote login and email. It supports the transfer of over 90 percent of all traffic on the Internet today [13].
TCP is a transport layer protocol layered between IP and the application layer.
It is a connection-oriented layer protocol, which is responsible for the end-to-end reliable transfer of the data from the source application to destination application over an unreliable network. A Connection setup is required so as to initiate the data transfer.
User Data

![]()
![]()

![]()
![]()
![]()
The application must open and set up a point-to-point TCP connection before
TCP starts accepting any application data. Each connection has exactly two endpoints (sockets = IP Address / port pair) [13].
2.2
Definitions:
This section provides the definition of several terms that will be used
throughout our project.
Segment: A segment is any TCP/IP data or acknowledgment packet or both.
Sender Maximum Segment Size (SMSS): The size of the largest segment that any sender can transmit at particular instant not including TCP/IP headers and options. The value can be based on the maximum transmission unit of the network.
Receiver Maximum Segment Size (RMSS): The size of the largest segment the receiver is willing to accept. It may be specified in the MSS option or assigned value equal to 536 bytes.
Full-Sized Segment: A segment that contains SMSS bytes of data or the maximum number of data bytes permitted.
Receiver Window (rwnd): It is equal to the most recent advertised receiver window.
Congestion Window (cwnd): A TCP state variable that limits the amount of data a TCP can send. A limit is put on the TCP so that it cannot send data with a sequence number higher than the sum of the highest acknowledged sequence number and minimum of cwnd and rwnd.
Initial Window (IW): It gives the value of the initial size of TCP congestion window the size after the 3-way handshake is completed.
Loss Window (LW): The size of the congestion window when TCP restarts transmission after it remains idle.
Flight Size: The amount of data that has been sent but not yet acknowledged [17].
TCP Segment:
Source Port and Destination Port: The source and the destination ports identify the sending and receiving applications, respectively along with IP addresses it identifies in a process-to-process connection.
Sequence Number: The 32-bit sequence number field identifies the position of the first data byte of this segment in the sender’s byte stream during data transfer.
Acknowledgement number: Acknowledgement number indicates the sequence number of the next data byte that the senders expect to receive if the ACK bit is set. ACK bit is set once the connection is established.

Header Length: Identifies the length of the TCP header in 32-bit words. It enables receiver to know the beginning of the data area because options field is variable length.
Reserved: This field is reserved for future use and is set to 0.
URG: If set, the urgent pointer is valid.
ACK: If set, acknowledgment number is valid.
PSH: Tells the receiving TCP module to pass the data immediately to the application. If not, the receiving TCP module may choose to buffer the segment until enough data accumulates in the buffer.
RST: When set, it tells receiving TCP module to abort the connection if some abnormal condition arises.
SYN: (Synchronize Sequence Number) It requests the setting up for a connection.
FIN: When set, it tells the receiver that the sender does not have any more data to send. The sender on other hand can still receive data until it receives a segment with the FIN bit set.
Window Size: Specifies the number of bytes the sender wants to accept. It controls the dataflow and congestion in TCP networks.
Checksum: Detects errors on TCP segment.
Urgent Pointer: When URG bit is set, the value in urgent pointer field added to that in the sequence number field points to last byte of “urgent data”. It points to last byte because any data in the receiver’s buffer up to last byte may be considered urgent.
Options: It may be used to provide optional functions that are not included by the header.
One of the most important options specified during the connection set up is used by sender to indicate the maximum segment size (MSS) it can accept. Another option specified during connection set up is window scale that allows use of large advertised window size, while the timestamp option is required for high-speed connections where sequence number may wrap around [1,4].
2.3 TCP
Connection:
2.3.1 TCP
Connection Establishment:
TCP is a connection-oriented protocol, which requires a connection to be set up before any host can send data. TCP establishes the connection using a three-way handshake procedure in the following steps:
Host A Host B
![]()
![]()
SYN, seq_no = x
![]()
SYN, seq_no=y,
ACK, ack_no = x + 1
seq_no=x
+ 1, ACK, ack_no=y+1
Figure
2.3: Three Way Handshake [4]
The TCP segment can be delayed lost and duplicated depending on the diverse network conditions, so the initial sequence number should be different each time a host requests a connection [1,4,13].
2.3.2 TCP
Connection Termination:
The data flow at each end must be stopped. Both sender and receiver need to send FIN segment to terminate the connection.
Four steps are involved in closing a connection:
2.4 TCP
Congestion Control:
TCP congestion control is a closed-loop congestion control scheme. The feedback information used by TCP to regulate the source rate is implicit. The source uses a time-out to decide whether congestion has occurred in the network. TCP exercises congestion control at the transport layer.
Need of
Congestion Control in TCP Networks:
TCP uses a sliding-window protocol for end-to-end flow control. The amount of bytes a receiver can receive is specified in the acknowledgement it sends. The advertised window determines this, and puts a limit on the amount of data that a sender can transmit. In other words TCP sender is not allowed to transmit data exceeding the amount specified in the advertised window. The limitation of the advertised window does not prevent the buffers in the intermediate routers from overflowing. The condition of buffer overflow in intermediate router is termed as congestion. The network layer comprising IP does not provide any mechanism to control congestion, so it is up to the higher level Transport layer to detect congestion and to take appropriate actions [4].
Congestion occurs in a network when data arrives on a link (big pipe) with
a larger bandwidth and is delivered to a link (small pipe) with smaller capacity. Congestion can also occur when multiple input streams arrive at a router or a switch whose output capacity is less than the sum of the inputs. In our case the link connecting the accessrouter2 and Ethernets_switchadv_2 is a bottlenecked link. The traffic from seven links of capacity 10mbps(7 * 10 Mbps) is delivered to a link with smaller capacity
(1 * 10 Mbps).
Packet loss is indicated in two manners:
Modern implementation of congestion control in TCP contains four intertwined algorithms:
Slow Start
Congestion Avoidance
Fast Retransmit
Fast Recovery
Slow Start and Congestion Avoidance are independent algorithms with different objectives. But whenever congestion occurs, TCP must slow down its transmission rate of packets into the network, and then invoke slow start. Thus they are implemented together.
Both these algorithm requires maintenance of two variables:
Slow Start Threshold
Congestion Window [4,14].
2.5 Algorithms
Used in TCP Congestion Control:
2.5.1 Slow
Start Algorithm and Congestion Avoidance
The basic idea underlying the congestion control in TCP is to allow each sender to transmit just the pertinent amount of data to keep the network resources utilized and at the same time to be sure that the network is not overloaded. If a sender sends too many packets, the network will experience congestion. On the contrary, if senders are conservative enough to send packets, the network will be underutilized.
“ The maximum amount of bytes that a TCP sender can transmit without congesting the network is specified by a window called the congestion window”. The basic principle for congestion avoidance is that maximum amount of data transmitted by sender should not exceed the minimum of the advertised window and congestion window.
In order to dynamically regulate the size of the congestion window according to the state of the network, TCP uses a congestion control algorithm known as slow start algorithm. Slow start algorithm is designed to dynamically maximize throughput and prevent congestion collapse. TCP congestion algorithm can be divided into three phases:
Client Server
![]()
![]()
![]()
S(0) ACK(0) S(0)
S(1)
![]()
S(2) ACK(1)
S(1)
![]()
ACK (2) S(2)
S(3)
![]()
S(4) ACK(3) S(3)
![]()
S(5) ACK(4) S(4)
S(6)
Time Out
S(5)
ACK (5) S(5)
S(1) ….. S(N) = TCP Segment 1 …. N
ACK(1)….ACK(N) = Acknowledgment of 1….N
FIRST
PHASE:
In the first phase, the congestion window is set equal to one maximum-size segment (One MSS). Sender sends the packet S(0) and waits for an acknowledgement. S(0) is delivered to the destination server and receipt is acknowledge with the ACK(0) packet. On receiving the acknowledgement, sender then increases the congestion window size to two, sends packets S (1) and S (2) and again waits for the acknowledgement. On receiving the acknowledgement the congestion window size is increased to four. Sender can now transmit four packets. In other words, every time the sender receives an acknowledgement from the receiver before a time-out, the sender doubles the size of congestion window, so the congestion window size grows exponentially during this phase.
SECOND
PHASE:
The congestion window size does not always increase exponentially. At the point when the congestion window reaches its threshold specified by congestion threshold, congestion avoidance phase takes place. It indicates that the bottlenecked resource is running close to utilization. The sender now reduce the rate of increase and increases the congestion window size linearly (one segment each round trip time) rather than exponentially. Thus, increase in cwnd should be at most one segment each round-trip time during congestion avoidance phase whereas, slow start phase increments cwnd by number of ACKs received.
THIRD
PHASE:
The
exponential and linear increase of congestion window is not without end. When
the TCP network detects that IP network causes loss of the segment and sender
does not receive an acknowledgement from receiver within the time out period,
then sender retransmits the packet. Now the congestion threshold is first set
to one-half of the minimum of the congestion window and the advertised windows.
The algorithm now restarts using slow start technique. TCP detects congestion
if an acknowledgement is not received before the expiration of the timeout
period. Congestion is also detected on receiving a duplicate ACK. In this case
congestion threshold is decreased to one–half the window size.
![]()
12 Time-out Time-out
![]()
![]()
![]()

![]()

Slow Start Congestion
![]()
10 Phase
Avoidance
![]()
9
![]()
![]()
8
![]()
![]()
![]()
![]()
6 Slow
Start Slow Start
![]()
![]()
![]()
![]()
![]()
4
2
0 5 10 15 20 25
Figure 2.5 shows the congestion window size as the time progresses. In the first phase, the slow start increases the congestion window size exponentially until it reaches the about one-half the threshold value set at 10 i.e. about 7. Then under the second phase the window increases linearly until the time-out occurs at about 11 seconds, indicating that network is congested. Now the threshold is set to 10 and the window size is set to 1 segment [1,4,14].
2.5.2 Fast
Retransmit:
As we will see in Section 4.1 in actual practice implementation of these congestion control algorithms results in the TCP timeouts leading to long periods of time during which the connection goes dead waiting for a timer to expire. Because of this, a new mechanism, called fast retransmit, was added to TCP. Fast retransmit uses a heuristic approach that sometimes triggers the retransmission of a dropped packet sooner than the regular timeout mechanism. The fast retransmit mechanism does not replace regular timeouts but enhances that facility.
In a Fast Retransmit algorithm, every time a data packet arrives at the receiving side, the receiver responds with an acknowledgement, even if packet with that sequence number has already been acknowledged. So, when a packet arrives out of order, i.e., TCP cannot yet acknowledge the data it contains because earlier data has not yet arrived, TCP resends the same acknowledgement it sent last time. This second transmission of the same acknowledgement is called a duplicate ACK. When the sending side sees a duplicate ACK, it figures out that the other side must have received a packet. In other words the traffic is still flowing through the network. So the sender interprets that the original/earlier packet must have been received out of order by the receiver or might have been lost.
Since it is also possible that the earlier packet has only been delayed rather than lost, the sender waits until it sees some number of duplicate ACKs, and then retransmits the missing packet. TCP therefore sometimes generate an immediate acknowledgement (a duplicate ACK) when an out-of-order segment is received. This duplicate ACK should not be delayed because its purpose is to make the opposite end realize that the segment was received out of order.
However, a lost segment or simply a reordering of segments may generate duplicate ACKs. Therefore, the generation of duplicate ACK cannot be always interpreted as an arrival of unordered data. So TCP waits for a small number of duplicate ACKs to be received. If there is only a reordering of the segments, there can be only one or two duplicate ACKs before the reordered segment is processed. However, if three or more duplicate ACKs are received in a row the segment has been lost. TCP then retransmits the missing segment without waiting for the retransmission timer to expire. In practice, TCP waits until it has seen three duplicate ACKs before retransmitting the packet.
![]()
![]()
segment 1
ack 1
segment 2

segment 3 ack 2
segment 4
segment 5 ack 2

segment 6 ack 2
ack 2
retransmits
segment 3
ack6
Figure 2.6: TCP Dynamic Congestion
Control with Fast Retransmit [24]
Figure 2.6 illustrates how duplicate ACKs lead to a fast retransmit. In this example, the destination receives packets 1 and 2, but packet 3 is lost in the network. Thus, the destination will send a duplicate ACK for packet 2 when packet 4 arrives, again when packet 5 arrives, and so on. When the sender sees the third duplicate ACK for packet 2---the one sent because the receiver had received packet 6---it retransmits packet 3. Note that when the retransmitted copy of packet 3 arrives at the destination, it then sends a cumulative ACK to the source for everything up to and including packet 6 [14].
2.5.3 Fast
Recovery:
After transmission of the missing segment by the Fast Retransmit algorithm, instead of implementing slow start for continuing the transmission of segments, congestion avoidance is performed. This improvement to congestion control algorithm allows high throughput under moderate congestion, especially for large windows.
It is not advisable to perform slow start in such situation because receipt of the duplicate ACKs reveals that there is still data flowing between the two ends. This is because receiver can only generate the duplicate ACK when another segment is received and is in the receiver’s buffer. So, even if the packet has been lost TCP cannot reduce the flow abruptly by going into slow start since data is still flowing through the network.
Fast Retransmit Algorithm is implemented together with Fast Recovery in the manner that:
The packet is transmitted only if allowed by the new value of cwnd.
The Fast Recovery algorithm was implemented for the first time in Reno release, followed by the Fast Retransmit algorithm that appeared in the Tahoe release [14].
2.6 TCP
Flavors:
2.6.1 Tahoe
TCP:
Since nobody knows what is tomorrow’s network will be, modern implementation of TCP contains a number of algorithms to control network congestion and to maintain a good user throughput. Before the implementation of Tahoe TCP, earlier implementations followed a go-back-n model using cumulative positive acknowledgement and requiring a retransmit timer expiration to re-send data lost during transport. But with expanding networks these implementations did little to minimize the congestion problem.
TCP Tahoe added a number of new algorithms to the older implementations. The new algorithms include slow-start, Congestion Avoidance and Fast Retransmit. The modifications of Fast-retransmit algorithm in Tahoe led to subsequent modifications of Tahoe implementation to form the new versions. With Fast Retransmit, after receiving certain number of duplicate ACKs for same TCP segment, the sender infers that the data segment has been lost and retransmits the packet without waiting for a retransmission timer to expire. This leads to higher utilization of channel and connection throughput [14,18].
2.6.2 Reno
TCP:
The Reno TCP implementation retains the enhancements incorporated into Tahoe, but modifies the Fast Retransmit algorithm to include Fast Recovery.
The new implementation is better than Tahoe because it prevents the link or resource from going empty after Fast Retransmit, thereby avoiding the need for slow start after loss of a single packet. A TCP sender enters Fast Recovery when it reaches the threshold for duplicate ACKs usually three. When the network detects the loss of a packet, and the sender receives three duplicate ACKs, the sender retransmits one packet and reduces its congestion window by one half.
The implementation of the new Reno can be defined as follows:
ssthresh = min (awin, cwnd + ndup)
where, ssthresh = threshold value cwnd = congestion window
awin = advertised window ndup = no of duplicate segments
effectively waits till half the windows of dup ACKs have been received, and sends a new packet for each dup ACK received. On receiving the ACK for new data called “recovery ACK”, sender exits the Fast Recovery by setting ndup to 0.
Unlike Tahoe implementation, the limitation of Reno’s Fast Recovery algorithm is that it holds good for only a single packet drop. In other words Reno sender can transmit at the most one dropped packet per round-trip time, but suffers from performance problems when multiple packets are dropped [14,18].
2.6.3 New-Reno TCP:
To improve upon the performance of Reno for multiple packet drops and to remove the limitations of the Reno TCP, a newer version New-Reno TCP was implemented by a small change to the Reno algorithm at the sender.
In Reno, partial ACKs take TCP out of Fast Recovery and decrease the size of the usable window to that of the congestion window. Instead in New-Reno, partial ACKs do not take TCP out of Fast Recovery and they are treated as an indication that the packet immediately following the acknowledged packet has been lost and should be retransmitted. Thus, in case of multiple packet loss from a single window, New-Reno can recover without a retransmission timeout, retransmitting one lost packet per round-trip time until all of the loss packets have been retransmitted. In other words New-Reno remains in Fast Recovery until all of the data outstanding when Fast Recovery was initiated has been acknowledged [14,16,18].
2.7
Parameters of TCP:
All the nodes (workstation, LANs, server and routers) which supports TCP as one of its contained protocol provides an attribute called “TCP Parameters” in order to configure various parameters. It also allows us to implement different flavors of TCP.
2.7.1 Maximum
Segment Size:
It is the largest amount of data that will be transmitted as one TCP segment. The utilization of the network and performance are the two important factors for choosing a pertinent MSS value. Choosing smaller values of MSS results in poor network utilization, while choosing larger value of MSS degrades the performance by creating many IP datagrams which cannot be acknowledged or retransmitted independently.
Normally it should be set to the maximum size “MAC” layer can handle, minus the size of TCP and IP headers. OPNET can set this attribute to “Auto-Assigned”. Thus it is optimally configured for Data Link layer over which TCP is operating [1, 4, 13].
2.7.2 Maximum
ACK Delay:
Normally, TCP does not send an acknowledgement (ACK) immediately on receiving the data. Instead, it waits for data transmitted in the same direction as the ACK, so the ACK can be sent along with the data. This is called piggybacking [13].
It influences the end-to-end delay because if the TCP process receives the data only, the connection process waits for the timer to expire before sending an ACK. This parameter when set to high values results in higher response time. On the other hand if this is set to low value then it may result in too many dataless acknowledgments, which increases in the load on the network [4, 13].
2.7.3 Delayed
ACK Mechanism:
There are two ways to control the delayed “dataless” acknowledgements
(i) Clock Based: Here the data less acknowledgement are generated at the expiration of maximum acknowledgment delay timer.
(ii) Segment/Clock Based: Here dataless acknowledgements are generated on receiving every other TCP segment or maximum delay timer expiration, whichever is achieved first [4,13].
2.8 Performance Measures for
TCP Connection:
2.8.1
Throughput:
Throughput is one of the important measures of TCP connection performance. Throughput is defined as rate at which it transmits data from the sender to the receiver.
The value of the throughput depends on the congestion window. If the connection transmits n bytes every RTT seconds than the throughput or transmission rate for a connection is given by n/RTT bytes per second.
For example if the transmitting capacity of the link is R and number of connections traversing the link is K then ideally the window size in TCP connections traversing this link should be such that each connection achieves a throughput of R/K. This ideal throughput is valid if the TCP connection is transmitting large amounts of data and that none of these TCP connection traverses any other congested link.
Considering the above discussions if there are N number of links in an end to end connection and the transmission rate of the nth link in that connection is given by Rn and
Number of connections supported by nth link is Kn then ideally the transmission rate (throughput) for this connection is Rn/Kn on the nth link. However, the end-to-end transmission rate for this connection is actually:
r= min ({R1/K1/……, RN/KN)
Switch3 Work Station1
![]()
Switch4 Switch1
![]()
RN/KN R2/K3
R2/k2
![]()

![]()
![]()
![]()
![]()
R1/k1
Switch2
Server Side Cloud of Switch Client Side
On the other hand if one of more of the intervening connections is bottlenecked at some other link, that is, on some other end-to-end path, then it cannot use their bandwidth share, Rn/Kn. Under this condition r would be higher than min {R1/K1, R2/K2…. RN/KN).
This effect of congestion on the throughput for a given connection will be explored in the Section 4.3.2. We experimented with 3 LANs and 4 Workstations injecting data into Ethernet Switch through seven links of 10BaseT capacity. In turn this outputs the data into one link of only 10BaseT capacity. Our results in Section 4.3.2 show that utilization achieved was higher by some links and poor in some others [21].
2.8.2
Fairness:
Assumptions:
![]()

R
Equal Bandwidth Share
Full
Bandwidth


Link 2

Utilization D
B
C A
![]()
Link1 Utilization R
2.8 Utilization realized by Link1 and Link2 [21]
If both the connections are to share the link bandwidth equally then the throughput should have value around “equal bandwidth share” line. Ideally the sum of the throughputs should equal R. It is not desirable for the one link to have transmission rate at R while the other has a transmission rate of 0. So the throughput achieved by bottleneck links should fall near the intersection of the “equal bandwidth share” line and “full bandwidth utilization” line.
As shown in Figure 2.8, suppose the throughput realized by link 1 and link 2 is given by point A at a certain time. As the amount of link bandwidth jointly consumed by two links is less than R, no loss occurs and hence both the connection will increase their window size by 1 per RTT, as we assumed it operated in congestion avoidance mode. Thus the joint throughput of both the connection proceeds along a 45-degree line starting from point A. When the link bandwidth consumed jointly by the two links becomes greater than R, packet will drop. Suppose the packet loss occurs at point B. Links 1 and 2 then decrease their congestion window by a certain factor when the throughput realized by both links is given by point C. As the combined bandwidth used is less than R at point C, the two links again tries to increase their throughput along 45-degree line. Again loss occurs and the two links decrease their throughput. Ideally this will continue and the utilization achieved by both links should proceed along a 45-degree line [21].
However after simulating TCP Reno network and collecting throughput statistics on various links, our results shows that the throughput achieved by both the links does not proceed along a 45-degree line. Further results and analyses will be given in Section 4.3.1.
2.8.3 Slow
Start Initial count:
All TCP implementations use slow start in one of three different ways:
limited phase. (restart window)
i) Advantages
of Larger Initial Windows:
We simulated TCP Reno network by increasing the value of a slow start count to 4 and compared it to Reno network with slow start count 1, keeping all the other parameters the same. As the HTTP Object size was set to 1000(i.e. small) our results in Section 4.3.5 showed that there was considerable decrease in the object response time of HTTP traffic.
ii)
Disadvantages of Larger Initial Windows for Individual Connection:
Sometimes it is better to start with an initial window of one segment in high-congestion environment. It has been observed that TCP starting with an initial window of one segment has few or no drops while a connection starting with an initial window of four segments might experience unusual retransmits due to the inability of the routers to handle small bursts, resulting in unnecessary retransmit timeouts. For a large-window connection that can recover without a retransmit timeout, this could result in needlessly early transition from slow start to the congestion-avoidance phase.
The chances of these premature segment drops are much less in uncongested networks with sufficient buffering or in moderately congested networks where the congested router uses active queue management. Although an increase in initial window size results in premature segment drop, the performance of TCP can be improved upon in two ways:
1 If the connection recovers from the segment drop without a retransmit timeout.
2 The congestion window maintained by TCP connection is kept small either by either the network congestion or by the advertised window.
Certain TCP connections will receive better performance with the higher initial window even if the burstiness of initial window results in premature segment drops.
iii)
Disadvantages of Larger Initial Windows for the Network:
There are three main effects of increasing the slow start count on network performance.
The increase in slow start count affects other traffic in the network by increasing the general packet drop rate in the network. This is because routers with drop tail queue management have difficulties with bursty traffic in times of congestion
We simulated TCP Reno network with slow start count set to 4 and compared it with the other TCP Reno network with slow start count set to 1. All other parameters in both the scenario were configured to be same. Our results in Section 4.3.5 shows that there was increase in the queuing and hence the scenario with slow start count set to 4 resulted in the considerable packet drops.
iv) Level of
Burstiness for TCP traffic:
A larger value of slow start count does not significantly affect burstiness of TCP traffic.
This is because infact the nature of Internet traffic is bursty itself [17,20].
2.8.4
Receiver Buffer and Receive Buffer Usage Threshold:
Besides the Maximum ACK Delay and Delayed ACK Mechanism, application delay also depends on these parameters. The value of Receive Buffer and Buffer Usage Threshold affects the TCP connection’s window size. The size of the receive buffer is specified in bytes. The default and normal size of the receive buffer is kept to 8760 bytes. The decrease in buffer size results in larger queuing and hence in larger packet drops and increases the chance of congestion in the network. For a novice it is easy to believe that providing a large buffer can decrease congestion in the network. However the increased value of the buffer size only delays congestion. Also, when congestion gets in, it will last much longer and will be more severe.
Receive Buffer usage threshold determines when data should be transferred from the TCP’s receive window to the application, thereby increasing the size of receive window. At the same time, if the buffer threshold value is kept higher, it results in higher application response time. The amount of space available in receive window is the advertised window. The amount of data transmitted at particular instant in a network is highly dependent on advertised window. This is because it is the maximum amount of data that a sender can transmit. As the receive buffer fills, the size of the advertised window keeps decreasing and hence puts a limit on amount of data a sender can transmit. A higher threshold value will keep data in the receive buffer for a longer time and hence increase the delay. In short, a higher value of threshold increases the application response time. A low value allows data from the receive buffer to be transferred to the application more often and hence the advertised window is always close to the full size window. This increases the chances of congestion and hence packet drop [4,14].
3.1 TCP Design Approach:
The primary approach to the performance analysis of the TCP model was to build a network topology suitable for such study. The network was based on study of high performance network test beds. The TCP network that we designed and implemented is a heterogeneous network consisting of wide variety of network components, which are typical of the Internet today.

Fig 3.1: TCP Network
The network is capable of handling a broad spectrum of application needs like ftp, remote login, database etc. Users of the network have different needs in terms of the data traffic and type of data the users request from the server. The users of the network have different profiles, and each profile consists of a particular set of applications in a specific proportion. For example a particular user might need applications like http (heavy browsing), e-mail (light), ftp (medium load); at the same time another user might need different applications or same applications in a different proportion. All these issues have been taken care of and implemented in the network we have designed. The network traffic pattern is also an important criterion while performing any network or protocol analysis, because the performance or behavioral response of a network or a protocol changes when the traffic packet distribution, attributes of distribution or protocol implementation varies. We have varied these attributes for network analysis, and analyzed the results in different cases.
3.2 TCP Protocol
Behavior:
The TCP model suite of
OPNET model library provides following features:
|
Reliability |
The model provides retransmission timers that trigger acknowledgments and retransmissions as and when required. |
|
Flow Control |
Window size is dynamically controlled per availability of buffering resources at receiving nodes. |
|
Resequencing |
The models supports reordering of data segments arriving out of order. |
|
Connection Setup and Termination |
TCP model uses three-way handshake protocol for connection setup and termination. |
|
Algorithms |
The TCP model of OPNET supports implementation of following algorithms
|
|
Persistence Time-out |
Timer enabling sending node to send one byte segments to receiving node with a very small window size to poll a remote socket. |
3.3 TCP Design Basics:
The network components of the TCP model are made up of the following basic
components:
workstations.
servers.
packets to destinations.
in terms of http, ftp or other requests.
OPNET provides a choice of vendors to choose the above components .The following sequence of steps were carried out after the initial network topology was constructed.
TCP Node and Link Models Used
in TCP Network:
|
Server Model (ethernet_server_adv) |
The ethernet_server_adv model provided by OPNET represents a server node supporting server applications running over TCP/IP and UDP/IP. It supports one 10Mbps, 100Mbps and 1Gbps Ethernet connection. FCFS algorithm is used to route the packets. The protocols supported by this model are: RIP, UDP, IP, TCP, Ethernet, Fast Ethernet, and Gigabit Ethernet Interconnections. |
|
Workstation (ethernet_wkstn_adv) |
The ethernet_wkstn_adv model provided by OPNET represents a workstation with applications running over TCP/IP and UDP/IP. Like Ethernet server this model supports one 10Mbps, 100Mbps and 1Gbps Ethernet connection. The protocols supported by this model are UDP, IP, Ethernet, Fast Ethernet, Gigabit Ethernet, RIP, TCP, and OSPF. |
|
LAN (10BaseT_LAN & 100BaseT_LAN) |
It represents Ethernet LAN in a switched topology. This model supports applications like FTP, Email, Database, Rlogin, HTTP, etc. It has a default switching speed of 50,000pkts/sec, and number of workstations equal to 10 and 100. |
|
Ethernet Switch (ethernet16_switch_adv) Router (CS_12016_16s_a10_fe8_ge3_s124_adv) |
This is a switch model that supports upto 16 Ethernet interfaces. This model supports Spanning Tree Bridge Protocol and Ethernet. CS_12016_16s_a10_fe8_ge3_s124_adv represents CISCO 12000 series router. The RIP and OSPF protocol may be used to automatically and dynamically create the routing tables and select routes in an adaptive manner. It supports IP forwarding rate of 60,000,000 packets/sec. The “store and forward” switching methodology is used by router. The protocols supported by this model are Ethernet, Token Ring, (IP) Internet Protocol, (RIP) Routing Information Protocol, (UDP) User Datagram Protocol, (OSPF) Open Shortest Path First Protocol, (BGP) Border Gateway Protocol, (IGRP) Interior Gateway Routing Protocol, (EIGRP), and Enhanced Interior Gateway Routing Protocol. |
|
Access Router (CS_7000_6s_e6_f_fe2_fr4_s14_tr4_adv) |
(CS_7000_6s_e6_f_fe2_fr4_s14_tr4_adv) represents CISCO 7000 series router, which has the specific configuration of an IP-based router gateway protocol. It has an IP forwarding rate of 150,000 packets/second. Like 12000 series router this router model implements “store and forward” type of switching methodology. The protocols supported by this router are Ethernet, Token Ring, IP, RIP, UDP, OSPF and Frame Relay. |
|
Links (10BaseT and 100BaseT) |
The 10BaseT and 100BaseT link are link models that are capable of transmitting at 10Mbps and 100Mbps datarate. These link models can connect
|
|
OC3 link |
This model connects two nodes running IP. It can transmit at a rate of about 148.61 Mbps |
3.4 Available Statistics:
On simulating the network to analyze the performance of TCP protocol several statistics can be collected. These statistics can be collected on the base of per-TCP connection, per-node or global.
3.4.1 TCP Characteristics:
Node (and global based) statistics are helpful in studying all processes running in a node (and network) collectively. It also helps to know total flow of traffic traveling through the TCP layer.

Figure 3.2: Statistics available for
study of TCP Performance
3.4.2 TCP Connection
Characteristics:
This group of statistics particularly helps to study the establishment and termination of TCP connections. They are particularly useful for studying low-level TCP performance metrics. “Congestion window” maintained at each connection process can also be known.

Figure 3.3: Statistics Available for Study of TCP Connection
3.4.3 Link Statistics:
This group of statistics particularly helps in studying the behavior of the links and various performance measures such as queuing delay and throughput [13].

Figure 3.4: Available Link
Statistics
4. 1
Congestion Window Analysis:
4.1.1
Congestion Window in Tahoe TCP:
TCP’s congestion window controls the number of packets a TCP flow can have in the network at any time. In other words it puts a limit on amount of data TCP sender can transmit without receiving acknowledgement from the receiver. Tahoe uses Slow Start, Congestion Avoidance and Fast Retransmit Algorithms for congestion control.

Figure 4.1: Congestion Window in TCP Tahoe
As shown in the Figure 4.1, the congestion window grows exponentially from its initial window size as it goes on receiving acknowledgements. Ideally the window size should increase exponentially up to its threshold (65536 bytes), but at certain point (22000) time-out occurs and the sender does not receive an acknowledgement from the receiver. The network identifies this as a packet loss in the network, the intermediate router is fully utilized and it starts discarding packets, so there is no more increase in the size of the congestion window.
As seen in our Figure 4.1, congestion window increases exponentially from 7500 bytes to about 22000 bytes. TCP is in slow start phase from about 2.5 to 3.2 seconds and the congestion window remains flat from 3.2 to 5.5. Then, TCP decreases the congestion window size. The reason for congestion window remaining flat is explained later.
Now the congestion window size is set to 22000 bytes and congestion threshold is set to almost half the previous congestion window size equal to 15000 bytes. TCP, knowing that there is a packet loss, restarts the slow-start algorithm as seen at 6 sec in Figure 4.1. It increases the window size exponentially as it receives the acknowledgement. But this time it does not increase the window exponentially until congestion appears. Instead, it grows exponentially till the value reaches congestion threshold (15000 at 6.5 seconds). Once it has reached congestion threshold, it increases the congestion window size linearly. TCP is now in the second phase (congestion avoidance phase from 6.5 seconds to 7.8 seconds) and increases the window size linearly. Again the congestion window remains flat from 7.8 seconds to 13.8 seconds and then the congestion window decreases to one segment.
As we saw, the congestion window remained flat from 3.2 to 5.5 seconds and again from 7.8 seconds to 13.8 seconds. These are two possible reasons for this result:
First:
The applications and profiles in the network have been configured in such a way that traffic is generated after every specific interval of time.
Application Limited Phase:
TCP’s congestion window gives idea regarding the number of packets sender should send knowing the current state of the network. Congestion window is set using an Additive –Increase, Multiplicative –Decrease (AIMD) mechanism that probes for the available bandwidth, dynamically adapting to the changing network conditions [15,19].
This mechanism shows ideal behavior when sender continually has data to send i.e. for bulk-data transfer. Under this condition the sender is limited to transmitting data by the congestion window. This period is termed Network-limited period. During this period, sender is transmitting data equal to the full window.
However, the above mechanism does not give same performance for idle periods between bursts such as web page replies. Also, when TCP is used for applications like telnet, the data sender often has little or no data to send. The sending rate is determined by rate at which the user generates data. A period when the sender transmits less data than is allowed by the congestion or receiver window is called application limited period. Times when there are no traffic in a node is called an Application Limited phase. A long period during which the sender is application limited leads to invalidation of the congestion window. An invalid congestion window results when the congestion window increases (as in the slow start or congestion avoidance phase) during application-limited phases, when the previous value of the congestion window is not fully utilized [15].
As seen in Figure 4.1,an invalid congestion window is obtained at 22000 bytes, from 3.2 to 5.5 and 7. 8 to 13.8.
When the TCP sender is application limited from 3.2 to 5.5 seconds, the currently available capacity represented by the congestion window may gradually become less accurate over time. In other words, the capacity that had once been used by the network-limited connection might now be used by other traffic.
Hence, after application-limited phase, the restart is implemented using the slow start behavior. Much research work has been done to improving the restart of these idle TCP connections. Current implementations either enforce slow start after remaining idle or donot reduce their congestion window, instead using the prior congestion window size and increasing the window size there on. However the former conservative approach, leads to low effective throughput and the latter approach sends a large burst of back-to-back packets, overflowing the buffers and leading to subsequent packet loss [15].
Second:
The congestion window remains flat because there are no ACKs arriving because several packets were lost. The implementation of TCP timeouts led to long periods of time during when connection remained dead waiting for a timer to expire. In fact, no new packets are sent during this time. A timeout eventually occurred when the congestion window was halved.
4.1. 2
Congestion Window in TCP Reno:
The Reno flavor of TCP uses all the four algorithms for congestion control. They are, Slow Start, Congestion Avoidance, Fast Retransmit and Fast Recovery.

Figure 4.2:
Congestion Window in TCP Reno
As shown in Figure 4.2 the congestion window increases exponentially starting with initial window size as it receives ACKs in a manner similar to TCP Tahoe. Buffer size was set to 5760 bytes during this simulation. Ideally this congestion window size should increase to 5760; however when the sender does not receive the ACKs from the receiver, the network sees that it is congested and prevents the congestion window from growing further. As shown in Figure 4.2 the network gets congested when the congestion window size is equal to 4300 at 12 seconds. Congestion window is in slow start phase from 10.7 to 12 seconds.
4.1.3 Comparison of Congestion Window With Tahoe:
As far as congestion window is concerned, the Reno’s implementation is different from Tahoe’s because Reno uses Fast Recovery algorithm along with Fast Retransmit Algorithm. Accordingly, as shown in Figure 4.2, when the network does not receive ACK at 4300, it waits for three duplicate ACKs to get from the receiver so as to confirm that the ACK was not received due to out of order data segments, rather than packet loss. When it receives three acknowledgements, the sender considers it a packet loss, but the arrivals of ACKs from the destination reveals that there is still a data transfer between the source and the destination. So instead of decreasing the congestion window size to one segment as we see at 13.2 seconds, it decreases the window size to half the previous congestion window (when loss occurred) and then increases the size of the window linearly up to 3700 bytes at 13.5 seconds. Hence the congestion window is in congestion avoidance from 13.2 to 13.5 seconds.
When the congestion window size reaches 3700 bytes it again enters the application-limited period (time when there is no traffic at particular node or network). Reno remains in the application limited phase from 14 to 15 seconds. At about 15 seconds Reno restarts this idle connection from the current congestion window size threshold and then increases it linearly [15].
4.2
Comparison of TCP Reno and TCP Tahoe:
4.2.1 FTP and
HTTP Response Time:
Simulations were carried out on two different flavors of TCP. All the parameters were configured to be identical in both the scenarios to understand the implementation of TCP Reno and TCP Tahoe.

Figure 4.3: HTTP Object Response Time in TCP Tahoe and Reno

Figure 4.4: HTTP Page Response Time in TCP Tahoe and Reno

Figure 4.5: FTP Download
Response Time in TCP Tahoe and Reno
As seen from Figures 4.3, 4.4 and 4.5 the response time for HTTP and FTP traffic is almost the same for both Tahoe and Reno.
Studies shows that ideally the download and upload response time should be less and much more better in TCP Reno than in Tahoe. This is because, when the receiver receives unordered segments, TCP Reno implements Fast Recovery algorithm as compared to TCP Tahoe that allows the congestion window to start from a threshold value equal to half of the previous congestion window instead of from slow start from initial segment size of 1.
However, as we see from the above figures, not much considerable difference is observed in the HTTP and FTP response time in TCP Reno and Tahoe implementation.
One possible interpretation is that, there may be fewer unordered segments received by the receiver from the sender. Instead there were more packet drops. So there may be fewer chances of congestion window size being initialized to size equal to the threshold value and fewer chances of fast recovery in Reno.
4.2.2 Queuing
Delay:
Simulations were performed on TCP Reno and Tahoe to compare the performance of these two regarding queuing. All the parameters were configured identical in both the scenarios and Pareto distribution was chosen.
Pareto was chosen to study the effect of the bursty traffic that represents current Internet traffic. Bursts in the traffic lead to buffering of the packets at the intermediate routers. Buffering leads to queuing of the packets at these routers and queuing in turn leads to delay in the transmission of the packets, which is one of the reasons for congestion in the network. The congestion causes packet drops in the network and this packet drop increase with any increase in queuing and hence the queuing delay.
As we see in Figure 4.6, queuing delay starts at about 3.5 seconds in both Tahoe and Reno, increases gradually, achieves its maximum value at about 6 seconds and then decreases gradually. Figure 4.6 shows that the queuing delay in TCP Reno, observed at 6 sec is as low as 0.0032 seconds as compared to TCP Tahoe queuing delay of 0.0062 seconds (almost double to that of Reno).

Figure 4.6: Queuing Delay in TCP Tahoe and Reno
Thus, there is a larger buffering and queues in the TCP Tahoe as compared to Reno due to congestion that causes additional delays called queuing delay.
4.2.3 IP
PACKET DROP:
The packet drop in the network is directly proportional to increased queuing due to congestion. As we saw earlier there is larger queuing in TCP Tahoe than in TCP Reno, so the queue overflows. The routers start discarding packets because of queue overflowing, called congestion; these packet drops increase with the increased queuing.

Figure 4.7: Comparison of IP Packet Drop in TCP Tahoe and
Reno
There is a larger queuing delay in TCP Tahoe and as packet drop is directly proportional to increased queuing, the packet drop should be higher in TCP Tahoe than Reno.
Our simulation result proves the above fact. As shown in Figure 4.7 the packet drop is more in TCP Tahoe than TCP Reno. If we consider the period from 3 to 9 seconds, the minimum and maximum values of the packet drop in TCP Tahoe are 90 packets/second (at 4.7 seconds) and 3000 packets/second (at 8.3 seconds) respectively. On the other hand the packet drop in TCP Reno is 500 packets/second (at 4 seconds) and 1200 packets/second (at about 7 seconds) respectively. Thus the packet drop in TCP Tahoe is as almost double as compared to that of Reno.
4.2.4
Comparison of TCP Tahoe and TCP Reno:
|
Performance Metrics |
TCP Tahoe Implementation |
TCP Reno Implementation |
|
Congestion Window |
No Fast Recovery |
Fast Recovery |
|
Response Time |
Almost same |
Almost Same |
|
Queuing Delay |
0.0063 seconds |
0.0032 seconds |
|
Packet Drop |
3000 packets/second |
1200 packets/second |
Thus TCP Reno gives almost same response time at the cost of larger queuing delay and hence more packet drops compared to TCP Tahoe. We can conclude that implementation of congestion control is better in Reno than in Tahoe.
4.3
Performance Measures of TCP Connections:
4.3.1
Fairness:
Simulation was carried out on Reno implementation of TCP for about 18 seconds to study issue of fairness in TCP congestion control.
Consider the bottlenecked link 10baseT having transmission capacity of 10Mbps which connects access_router2 to ethernet_switch_adv2. This link connecting ethernet_switch_adv2 to 3 LANs and 4 other workstations is shared by 614 other sources. Thus, 614 sources are sharing the bottlenecked 10baseT link. Ideally each source should transmit at their fair share of 0.0162Mbps(10Mbps/614). However, Figure 4.8 shows the link connecting ethernet_switch_adv2 <-> lan8 transmits at more than 8.75Mbps. It means each source connected to that link is transmitting at rate 0.029Mbps, which is higher than its fair share of 0.0162 while the link connecting ethernet_switch_adv2<-> workstation2 transmit at about 0 Mbps much below its fair share of 0.016 Mbps.

Figure 4.8:
Comparison of Utilization Achieved by various Links
The table below shows the comparative utilization obtained by 7 links transmitting data to one bottlenecked link.
|
Link considered |
Utilization (Approximately) |
|
ethernet_switch_adv2 <-> lan8 |
87.5 |
|
ethernet_switch_adv2 <-> lan10 |
25 |
|
ethernet_switch_adv2 <-> lan9 |
47.5 |
|
ethernet_switch_adv2 <-> wkstn1 |
Almost 0 |
|
ethernet_switch_adv2 <-> wkstn2 |
Almost 0 |
|
ethernet_switch_adv2 <-> wkstn3 |
1.43 |
|
ethernet_switch_adv2 <-> wkstn4 |
1.43 Mbps |
The above table obtained from simulation results clearly shows that the link connecting ethernet_switch_adv2<->lan8 uses share of the other links and transmits at much higher rate than its fair share. On the other hands the link connecting ethernet_switch_adv2 <-> workstation0 achieves throughput as low as 0 (much below their fair share). This is because the connections in link connecting ethernet_switch_adv2 and workstation might be congested at some other point along the end-to-end connection [4].
4.3.2 Link
Utilization and Throughput:
Throughput is the data transfer rate actually achieved by the application. Useful throughput is the packets actually sequentially delivered to the end application without errors or loss.

Figure 4.9:
Comparison of Throughput Achieved by various links
In our simulation we considered the link connecting Ethernet_switch_adv2 and LAN8 having the transmission capacity of 10 Mbps. The number of connections through this link is 4000 at 9 seconds. Ideally all the 4000 connections should have throughput of 0.0025Mbps(10Mbps/4000). However as we see, the throughput obtained for each connection of the link connecting ethernet_switch_adv2 <-> lan8 was 0.002Mbps(8Mbps/4000)
This is because, as discussed in Section 2.8.1, the throughput achieved by a connection is the minimum of the throughput achieved by all the connection across the end-to-end connection. So the connection on the link connecting ethernet_switch_adv2 and LAN8 achieves poor throughput because some other link along which the connection is being traversed might be congested and would not be able to transmit more that 0.002Mbps.
4.3.3 Effect
of Increasing File Size and Decreasing the Buffer Size:
We simulated two different scenarios for Reno implementation. The object size (for HTTP application) and file size (for FTP applications) for the first one was configured respectively as 1000bytes and 50000 bytes. The object and file size for the other scenario was configured as 5000 bytes and 75000 bytes respectively. Also we decreased the buffer size for the second scenario from 8760 to 5760 bytes and increased the interarrival time from pareto (1.3,1.5) to pareto (1.5,1.7). The effect of increased file size and decreased buffer size on various performance measures was studied.
i) Queuing
Delay:
As defined earlier, queuing delay is the amount of delay achieved by the packet while remaining in the queue due to buffering.

Figure 4.10:
Queuing Delay
Increase due to File Size Increase and Buffer Size Decrease
For the same Reno implementation, increasing the file size and inter-request time and decreasing the buffer size resulted in considerable increase in the queuing delay.
As seen in Figure 4.10, at 7 seconds normal implementation resulted in queuing delay of 0.0030 seconds while the increased file size and decreased buffer size resulted in queuing delay of 0.0055 seconds. Segmentation of the packets due to increased file size causes additional delay in transmission. This in turn causes into increased queuing at the router because router uses store and forward mechanism for transmitting packets. This in turn, results in congestion of the link and network, which causes increased packet drops.
ii) IP
Traffic Dropped:
As discussed earlier, the increase in the file size and decrease in the buffer size
results in considerable increase in queuing and hence considerable increase in packets dropped.

Figure 4.11:
Packet Drop Increase due to
File Size increase and Buffer Size decrease
As seen in Figure 4.11 there is a considerable drop in the traffic due to an increase in file size and a decrease in buffer size. One possible reason is that the router uses store and forward technique for forwarding the packets, but because of lowered buffer size, packets cannot be stored at the router and hence get dropped.
This is supported by our simulation results shown in Figure 4.11. As shown, if we consider the period from 3 to 9 seconds, packet drop with normal Reno implementation is 1200 packets/sec at about 4 seconds and minimum of about 500 packets/sec at about 7 seconds. The packet drop observed when the file size was increased and buffer size was decreased was as high as 3300 packets/sec at about 6.5 seconds and as low as 100 packets/second at about 8.5 seconds. Thus, the average packet drop was higher in the scenario with increased file size and decreased buffer size.
iii) HTTP Response
Time:

Figure 4.12:
Effect of Increasing File Size
& Decreasing Buffer Size on Response time
The above statistics were collected when the object size in the HTTP application was increased from 1000 bytes to 5000 bytes. As we see there is a considerable increase in the object response time of HTTP application. This is due to the increased object size. Due to increase in the object size from 1000 bytes to 5000 bytes, the object takes much longer to download when requested, which results in increase of the response time. This results into slower performance of the applications.
This is supported by our simulation results. As seen in Figure 4.12 the response time at 9 seconds for normal Reno implementation was about 0.53 seconds and the response time observed when object size was increased was about 0.90 seconds.
The statistic shown below was collected when the inter-request time for the page was increased from pareto (1.3,1.5) to pareto (1.5,1.7). Both statistics were collected on Reno implementation.

4.13: Effect of
Increasing the Inter-Request time on Http Page Response
An increase in inter-request time results in an increase in the number of pages per second requested by all the clients. As number of pages requested per time increases, the page response time increases. This is supported by our simulation results.
As shown above, results collected by us gave response time for normal Reno implementation to about 0.95 at 7 seconds, while increased inter-request time increased the response time to about 1.20 to 1.75 as seen at 7 seconds.

Figure 4.14: Effect
of Increasing File size on FTP Download response
The statistic shown in Figure 4.15 was collected when the file size of the FTP object was increased from 50000 to 75000 and the buffer size was decreased. As the file size increases the time taken to download increases. Hence the FTP downloads time increases. This was supported by our results. As we see, the download response time for FTP traffic at 7 seconds was about 1 second at 7 seconds while it is about 1.25 at 7 seconds and there is a considerable increase later as well.

Figure 4.15:
Effect of Increasing File Size on FTP Download Response
Time
iv)
Comparison of Increased File Size and Decreased Buffer Size
:
|
Performance Metrics |
TCP Reno Normal Implementation |
TCP Reno Implementation With Increased File Size And Decreased Buffer Size. |
|
Queuing delay |
0.0030 sec |
0.0055 sec |
|
IP Packet Drop |
1200 packets (max) |
3300 packets (max) |
|
HTTP Object Response |
0.53 sec |
0.90 sec |
|
HTTP Page Response |
0.95 sec |
1.30 sec |
|
FTP Download Response |
1.0 sec |
1.25 sec |
Thus increased file size and decreased buffer size resulted into increased queuing delay, larger packet drop and higher HTTP and FTP response time. So it is not advisable to either increase the file size or to decrease the buffer size.
4.3.4
Increased Buffer Size:
As we have seen, the decrease in buffer size resulted in increased congestions and hence increased packet drop. It seems to claim that this increased congestion and packet drop can be solved by allocating larger buffer. So we increased the size of the buffer to 658330. Ideally, the increase in buffer size tempts us to think that increased space for storing the packets may lead to decrease in the congestion. However this solution merely delays congestion and instead results in increased queuing. Thus, queuing delay is greater when the buffer size is increased. Also, when congestion takes place, it will last much longer and will be more severe. This in turn results in increased packet drop rate. This fact is supported by the graph collected from the simulation.
i)
Queuing Delay:

Figure 4.16:
Queuing Delay for Buffer Size Decrease
and Buffer Size Increase
The above statistic (Figure 4.18) was collected by simulating Reno implementation of TCP network. It shows the comparison of the increasing queuing delay for normal Reno implementation, decreased buffer size and increased buffer size. It can be seen that queuing delay increases by decreasing the buffer size from 8760 bytes to 6750 bytes. Moreover, as we said earlier, it would be easy to claim that this queuing delay will decrease by providing a large buffer. However, as discussed earlier and as seen in the above graph, the queuing delay increases with increasing the buffer size. As we see, the queuing delay at 7 seconds for Normal implementation is 0.0030 seconds, for buffer size decrease is 0.0055 seconds and 0.0062 seconds when the buffer size is increased.
ii) IP
Packet Drop:
As seen from the above graph when buffer size is increased from normal, there is considerable increase in the packet drop. For the period from 3 to 9 seconds the maximum packet drop is 1200packets at 4 seconds for normal implementation, increases to 3300 packets at 7 seconds by decreasing the buffer size and increases further more to about 3800 packets at 3.5 seconds when the buffer size is increased.

Figure
4.17: IP Packet Drop for Buffer size Increase and Buffer Size Decrease
iii)
Comparison of Increased Buffer Size:
|
Performance Measure |
Normal Reno |
Decrease Buffer Size |
Increase Buffer Size |
|
Queuing Delay |
0.0030 sec |
0.0055 sec |
0.0006 sec |
|
IP Packet Drop |
1200 packets |
3300 packets |
3800 packets |
Thus, results
obtained from these statistics show that increasing the buffer size causes
increase in the queuing delay and hence increased packet drops.
4.3.5 Slow
Start Initial Count:
The statistic shown below was collected when the slow start initial count for TCP was increased from 1 to 4. Simulation was performed on Reno implementation of TCP networks.
i) HTTP
Object Response Time

Figure 4.18: Effect
of Slow Start Initial Count on HTTP Response Time
As seen in Figure 4.18, the object response time decreases considerably when the value of slow start initial count is increased to 4 segments. The object response time is about 0.3 seconds at 9 seconds when the slow start initial count is set to 4. While the object response time is 0.5 seconds at 9 seconds when the slow start initial count is set to 1.
Moreover as we see in Figure 4.18, the response time continues to increase even after 9 seconds in the scenario with slow start count set to 4. This is because when the slow start count is set to 1, the receiver has to wait for a timeout to occur before generating an ACK. By keeping the slow start initial count to 4, the receiver will generate an ACK after 4 data segments will arrive. This will eliminate the unnecessary wait (particularly for small objects) for the receiver to send an ACK.
When the simulation was carried out, the object size was kept to 1000 bytes only. This is one reason for the decrease in the response time with an increase in the initial count. Thus, we could conclude that increase in slow start count reduces the transmission time for connections transmitting small size data or small amounts of data. For transfer of less than about 4kbytes, the slow start initial count set at 4 will reduce the transmission time.
ii) IP Packet
Drop:
The graph below shows the statistic for Reno implementation that was collected to study the effect of increasing the slow start initial count from 1 to 4.
As shown in Figure 4.19, an increase in the slow start initial count resulted in considerable increase in packet drop. The drop rate in the Reno version of TCP with slow start count at one is quite uniform as compared to drop rate in Reno version with slow start count at four. The maximum drop is achieved by keeping slow start count at one was 1200packets/seconds, while that achieved by keeping slow start count at 4 was as high as 9200packets/seconds.
This is because the number of duplicate segments on the congested link increases which results in large numbers of packet drops. TCP starts with an initial widow of one segment as seen in Figure 4.19 and has few or no drops; the connection starting with an initial window of four segments results in more packet drops because the routers cannot handle small bursts which causes unnecessary retransmit timeouts.

Figure 4.19: Effect
of Slow Start Initial count on IP Packet Drop
(iii) Effect
of increase in Slow Start Initial Count on Response time and Packet Drop:
|
Performance Measures |
Slow Start Count = 1 |
Slow Start Count = 4 |
|
Response Time |
Less for small object size |
More for small object size |
|
IP Packet Drop |
1200 packets (max) |
9200 packets (max) |
Thus, it can be said that increasing the TCP slow start initial count to 4 results in a better object response time for small objects at the cost of increased packet drops.
5.1
Introduction to ATM:
Asynchronous Transfer Mode (ATM) is a method of multiplexing and switching that supports a variety of services. ATM is a connection oriented packet switching method that provides Quality of Service (QoS) guarantees. ATM was developed in the mid 1980s to combine the advantages of packet switching and Time Division Multiplexing (TDM) and incorporates features of both the methods. In ATM all information is converted into short fixed length packets called cells along with abbreviated headers .ATM is packet based and thus can easily handle services that generate bursty traffic and have variable bit rates. The short fixed size of cells result in reduced delay and increased speed [4,8].
Figure 5.1 shows the working of an ATM Multiplexer. Information flow originating from different users are converted into cells and sent to an ATM Multiplexer where they are arranged into queues. A scheduling algorithm then determines the order in which the cells will be transmitted from these queues. The scheduling algorithm takes into consideration the different qualities of service requirements of each information flow. The name asynchronous evolved from the fact that in ATM transmission of cells is not synchronized to any frame structure as happens with TDM systems.
MUX

![]()
![]()
Voice
![]()
![]()
![]()

![]()
![]()
Data
Packets
Images
Figure
5.1: ATM Multiplexer [1]
ATM is a connection-oriented method requiring a connection-setup prior to the transfer of cells. Such a connection setup requires the source to provide a traffic descriptor which sets out rules for the way cells are generated, e.g. peak cell rate in cells/second, sustainable (average) cell rate in cells/second and maximum length of a burst of cells. The source specifies a set of QoS parameters that the connection will have to provide e.g. cell delay, cell loss and cell delay variation. The connection-setup defines a path through the network that conform to these requirements. A connection admission control protocol is implemented at every multiplexer along the path and this path is known as a Virtual Channel Connection (VCC). A series of local identifiers at the input port to each switch between source and destination are defined during connection setup and these identifiers establish a VCC.
Figure 5.2 describes the tables associated with input ports of an ATM switch. Cells from a voice stream arrive with identifier 32 at input port 5.At the same port cells from a video stream also arrive wit identifier 25. The table look up for entry 32 indicates that the cell must be transferred to output port 1 and the identifier must be changed to 67. Similarly, cells with identifier 25 are switched to output port N with identifier 75. The identifiers are local to each port and same identifier can be used for a different VCC.
25 N 75 32 1 67 32 3 39 61 2 67 Voice
67
![]()
![]()
![]()
![]()
![]()
![]()
1
Video
25 Voice
67 Voice
32
![]()
![]()
![]()
![]()
5
Data
39 Data
32 Video
61
Video
75
![]()
6
![]()
![]()
N
![]()
Figure 5.2: ATM
Switching [1]
ATM uses some of the concepts of SONET, thus allowing flows having a common path across the network to be grouped together. This aggregation is called a virtual path.
Figure 5.3 explains the concept of a virtual path. Five VCCs in an ATM network is shown in Figure 1.3 where VCC s A, B and C enter through switch 1 and share the same path to switch 2 and are therefore aggregated together to form a virtual path connection (VPC) connecting switch 1 to switch 2.This VPC passes to through an ATM cross connection switch. Virtual Path Identifier (VPI) 3 is assigned to that VPC that contains VCCs A, B, C between switch 1 and cross connect switch. The cross connect switch switches all the cells with VP 3 to the link going to switch 2 and changes its VP to 5. At switch 2, the cells are unbundled, cells from VCC A goes to an output port and cells from VCCs B and C go to switch 3. VCC s D, E entering at switch 1 also has VP 2 between switch 1 and the cross connect switch and VP 1 between the cross connect switch and switch 4 [4,8].
ATM Switch 2 ATM DCC ATM Switch 1![]()
![]()
![]()
![]()
![]()
VP 3 VP 5 A
![]()
![]()
![]()
A
ATM Switch 3![]()
![]()
B
![]()
![]()
![]()
![]()
C
B
![]()
![]()
![]()
![]()
![]()
![]()
![]()
D
C
![]()
![]()
![]()
E
![]()
VP 2
ATM Switch 4
VP 1 D
![]()
E
Figure 5.3: ATM Virtual Paths [1]
5.2 ATM
Traffic Management:
Traffic management is concerned with Quality of Service (QoS) guarantees to packet flows and incorporates methods to manage packet flow and control load in a network. It is also concerned with priority and scheduling mechanisms at switches and routers to differentiate between services provided to different traffic classes. Traffic Management also may involve policing and shaping of traffic flows into the network.
A path covered by a packet in a network can be seen as a sequence of multiplexers and transmission links (Figure 5.4). The dashed arrows indicate packets from other flows that contend for the same resources .The performance of a packet across a network is a summation of the performance experienced by the packet at all intermediate N nodes . Total end-to-end delay for a packet is the sum of the delays experienced at each multiplexer. Jitter is the variation of packet delay and is measured by the difference of maximum and minimum amount of delay experienced by a packet. Cell Loss occurs when a packet reaches a switch where there are no buffers free and may also happen due to burstiness of packet arrival pattern, reduced transmission rate out of a multiplexer and faults in equipments. To meet QoS objectives, ATM implements methods to manage the way in which cells are placed in queues and also to control transmission bit rates of the sources [4,8].
![]()
![]()
![]()
1 2 N-1 N
![]()
![]()


![]()
![]()
![]()
![]()
![]()
![]()
![]()
Figure
5.4: End-to-End QoS of a cell along a path of N hops [1]
5.3
Importance of ATM:
ATM
was developed primarily to handle a steady flow of traffic as well as bursty
traffic and also to support different types of applications like data, voice,
video etc. This makes ATM suitable for an Integrated Services Network. The
single transfer mode of ATM makes the network infrastructure management simple
and also provides extensive bandwidth capabilities. ATM can operate over LANs
and global backbone networks and is not limited by speed or distance. ATM
differs from traditional TCP/IP networks in providing QoS guarantees to connections
[1,4,8].
5.4 ATM
Models:
The BISDN reference model consists of three planes: user plane, control plane and management plane. The user plane deals with the transfer of data, flow control and error recovery. The control plane is associated with the signaling required to set up, manage and release connections, while the management plane carries out management of network resources.
The user plane consists of three layers: ATM Adaptation Layer (AAL), ATM layer and the physical layer. AAL provides support to the different applications and converts higher layer Service Data Units (SDUs) into 48 byte blocks to be carried by ATM cells. The AAL on receiver side is responsible for reassembling and delivery of information in conformance with the requirements of a given application. Figure 1.5 shows the user plane layers of ATM .The AAL resides in terminal equipment and interacts on an end-to-end basis. The ATM layer deals with the transfer of cells across the network and adds 5 bytes of header to the 48-byte block received from AAL. The Physical layer is concerned with the details of the transmission of the bits over a specific medium and also converts ATM cells into a format appropriate for delivery across the medium [1,4,8].
AAL ATM PHY AAL ATM PHY
User Information
User Information
![]()
![]()
![]()
![]()
ATM PHY ATM PHY![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
Figure 5.5: User Plane Layers [1]
5.5 ATM
Connections:
ATM can provide different QoS to different connections and this requires that a service contract be negotiated between the user and the network at the time when the connection is set up. The user describes its traffic pattern and the required QoS at the time a connection is requested. If the network accepts its request, a contract is set up that ensures the QoS as long as the user abides by its traffic description. To ensure QoS guarantees, ATM uses policing mechanisms to monitor user compliance with the service contract and then discards cells that do not follow rules. ATM supports both point-to-point (unidirectional or bi-directional) and point-to-multipoint connections (unidirectional). Classified on the basis of duration, ATM connections can be permanent virtual connections (PVCs) and switched virtual connections (SVCs). PVCs are the permanent leased lines and are usually set up manually by the operator, SVC s are set up and released on demand by the users. The source user interacts with the network through a user-network- interface (UNI) .As shown in Figure 5.6 the connection request travels across the network and reaches destination UNI. Within the network, switches share information across the network-network interface (NNI). The source and destination end systems and all switches in the network are responsible for meeting the QoS guarantees [1,4,8].
Computer
![]()
![]()
Private UNI
![]()
Public UNI


Public
![]()
UNI
Computer![]()
![]()
Figure 5.6: ATM Network Interfaces [1]
5.6 ATM QoS
Parameters:
Primary objective of ATM is to provide QoS guarantees while transferring cells across the network. There are a total of six QoS parameters specified for ATM and they are indicators of the performance of the network [1,4,8].
5.6.1 Cell Error Ratio (CER): CER is the ratio of the number of cells that are delivered with one or more bit errors during a transmission to the total number of cells. CER depends on the underlying physical medium. CER calculation does not take into account blocks of cells that are severely defective.
5.6.2 Cell Misinsertion Rate (CMR): CMR is the average number of cells per second that is transferred mistakenly to a destination. CMR depends on the rate at which undetected header errors result in misdelivered cells and calculation of CMR also does not consider blocks of cells that are severely errored.
5.6.3 Severely-errored Cell Block Ratio (SECBR): A severely-errored cell block event occurs when more than M cells are lost, in error or are misdelivered in a received block of N cells. SECBR is the ratio of severely errored cellblocks to total number of transmitted cellblocks in a connection. It depends on the properties of the underlying physical medium and buffer overflows.
The three QoS parameters above are not negotiated during the connection set up process but the following three parameters are negotiated during that process.
5.6.4 Cell Loss Ratio (CLR): The CLR for a connection is defined as the ratio of the number of cells lost to the total number of transmitted cells. CLR value is negotiated between user and network during call set up process and is usually in the range of 10-1 to 10-15. The degree to which CLR can be negotiated depends on the sophistication of the buffer allocation strategies of the network.
5.6.5 Cell Transfer Delay (CTD): CTD is defined as the time that elapses between the instant the cell enters the network at the source UNI to the instant it comes out at the destination. This includes propagation delay, processing delay and queuing delays at switches. CTD is expressed as a probability density function as in figure 5.7. Maximum CTD is defined as Dmax for which the fraction 1-a of cells have CTD less than Dmax where a is small. Queue scheduling algorithms in ATM control the CTD experienced by cells.

Probability
Density