QUALITY OF SERVICE TESTING METHODOLOGY
BY
Ankur Chadda B.E., University of Bombay(Mumbai), India (1999)
THESIS
Submitted to the University of New Hampshire in Partial Fulfillment of the Requirements for the Degree of
Master of Science in
Computer Science
December, 2004 This thesis has been examined and approved.
Thesis director, Dr. Radim Bartos Associate Professor of Computer Science
Dr. Robert Russell Associate Professor of Computer Science
Mr. Benjamin Schultz Consortium Manager, InterOperability Laboratory, Research Computing Center
Date Dedication
To my family Vinod, Madhu, Anshul Chadda and Doroth´ee.
iii Acknowledgments
I would like to express my sincere gratitude to Dr. Radim Bartos without whose guidance this thesis would not have been possible. It has been a pleasure to work with him. I would also like to thank Dr. Robert Russell and Mr. Benjamin Schultz for their guidance. I am also grateful to the InterOperability Laboratory for providing me the required resources for the research and supporting me for the past three years. Finally, I would like to thank Peter
Scruton, Chris Volpe, Paul Scarff and Neil Carter for the numerous helpful discussions.
iv TABLE OF CONTENTS
Dedication ...... iii
Acknowledgments ...... iv
List of Tables ...... viii
List of Figures ...... ix
Abstract ...... xii
1 Introduction 1
1.1 Quality of Service ...... 1
1.2 Early days ...... 2
1.3 How to deliver QoS? ...... 2
1.3.1 Differentiation of Traffic ...... 3
1.3.2 Admission Control ...... 4
1.3.3 Queuing ...... 5
1.3.4 Congestion Management ...... 10
1.4 DiffServ: Algorithm developed with QoS in mind ...... 11
1.5 Summary ...... 11
2 Methodology Development 12
2.1 Identifying performance metrics ...... 12
2.2 Experimental Setup ...... 14
2.3 Throughput Measurement ...... 16
2.4 Latency Measurement ...... 16
2.5 Jitter Measurement ...... 17
v 2.5.1 Method 1: Difference in maximum and minimum latency . . . 17
2.5.2 Method 2: Difference in time of arrival of consecutive packets 18
2.5.3 Method 3: Difference in latency of consecutive packets . . . . 18
2.5.4 Method 4: Difference in current and average latency ...... 19
2.6 Jitter measurement examples ...... 19
2.6.1 Method Analysis ...... 22
2.7 Generator and Analyzer ...... 25
2.7.1 Line rate traffic generation ...... 25
2.7.2 Line rate marked traffic generation ...... 26
2.7.3 Greater than line rate traffic reception ...... 26
2.7.4 Specific Inter-Frame Gap ...... 26
2.7.5 Results of Generator/Analyzer testing ...... 27
2.8 Internet mix traffic tests ...... 27
2.9 Effect of packet size on latency ...... 28
2.10 Confidence Level of Data ...... 28
3 Experiments 30
3.1 Vendor A: Throughput ...... 30
3.1.1 Case 1: No classification and no remarking ...... 30
3.1.2 Case 2: Classification and no remarking ...... 31
3.1.3 Case 3: Classification and remarking ...... 33
3.2 Vendor A: Latency ...... 35
3.2.1 Case 1: No classification and no remarking ...... 35
3.2.2 Case 2: Classification and no remarking ...... 36
3.2.3 Case 3: Classification and remarking ...... 36
3.3 Vendor A: Jitter ...... 37
3.3.1 Case 1: No classification and no remarking ...... 37
vi 3.3.2 Case 2: Classification and no remarking ...... 38
3.3.3 Case 3: Classification and remarking ...... 38
3.4 Other Vendors ...... 39
3.4.1 Vendor B ...... 39
3.4.2 Vendor C ...... 54
3.4.3 Vendor D ...... 61
3.5 Conclusion ...... 61
3.5.1 Classification and remarking deteriorates performance . . . . . 61
3.5.2 Performance differences ...... 61
4 Summary and Future Work 64
4.1 Summary ...... 64
4.2 Future Work ...... 65
4.2.1 Multiple priority traffic ...... 65
4.2.2 Study of other aspects of QoS ...... 66
4.2.3 QoS applied to other environments ...... 66
4.2.4 Development of generator/analyzer to measure line rate per
packet latency and other methods of jitter ...... 66
4.2.5 Layer 2 QoS ...... 67
4.2.6 Application QoS testing ...... 67
Bibliography 68
vii List of Tables
2.1 Comparison of different methods for each case ...... 23
2.2 Imix distribution ...... 27
viii List of Figures
1-1 FIFO queuing ...... 6
1-2 FIFO queuing with contention ...... 7
1-3 Priority queuing ...... 7
1-4 Class based queuing ...... 8
1-5 CBQ with lower priority getting higher level of service ...... 9
2-1 Experimental setup diagram ...... 14
2-2 Cases showing latency ...... 21
2-3 Method and cases comparison ...... 24
2-4 Generator/Analyzer tested against Symbgen ...... 26
3-1 Vendor A: Throughput with no classification and no remarking . . 31
3-2 Vendor A: Throughput in frames per second with no classification
and no remarking ...... 32
3-3 Vendor A: Imix traffic with no classification and no remarking . . 32
3-4 Vendor A: Throughput with classification and no remarking . . . 33
3-5 Vendor A: Throughput in frames per second with classification and
no remarking ...... 34
3-6 Vendor A: Imix traffic with classification and no remarking . . . . 35
3-7 Vendor A: Throughput with classification and remarking . . . . . 36
3-8 Vendor A: Throughput in frames per second with classification and
remarking ...... 37
3-9 Vendor A: Imix traffic with classification and remarking ...... 38
ix 3-10 Vendor A: Latency with no classification and no remarking . . . . 39
3-11 Vendor A: Latency with classification and no remarking ...... 40
3-12 Vendor A: Latency for 76-byte frame size showing maximum and
minimum with classification and no remarking ...... 40
3-13 Vendor A: Latency with classification and remarking ...... 41
3-14 Vendor A: Latency for 76-byte frame size showing maximum and
minimum with classification and remarking ...... 41
3-15 Vendor A: Jitter with no classification and no remarking . . . . . 42
3-16 Vendor A: High and Low latency for different frame sizes for 95%
line rate utilization for no classification and no remarking . . . . . 43
3-17 Vendor A: Jitter with classification and no remarking ...... 44
3-18 Vendor A: High and Low latency for different frame sizes for 95%
line rate utilization with classification and no remarking ...... 45
3-19 Vendor A: Jitter with classification and remarking ...... 46
3-20 Vendor A: High and Low latency for different frame sizes for 95%
line rate utilization with classification and remarking ...... 47
3-21 Vendor B: Throughput with no classification and no remarking . . 48
3-22 Vendor B: Throughput with classification and no remarking . . . 48
3-23 Vendor B: Throughput with classification and remarking . . . . . 49
3-24 Vendor B: Imix traffic with no classification and no remarking . . 49
3-25 Vendor B: Imix traffic with classification and no remarking . . . . 50
3-26 Vendor B: Imix traffic with classification and remarking ...... 50
3-27 Vendor B: Latency with no classification and no remarking . . . . 51
3-28 Vendor B: Latency with classification and no remarking ...... 51
3-29 Vendor B: Latency with classification and remarking ...... 52
3-30 Vendor B: Jitter with no classification and no remarking . . . . . 52
x 3-31 Vendor B: Jitter with classification and no remarking ...... 53
3-32 Vendor B: Jitter with classification and remarking ...... 53
3-33 Vendor C: Throughput with no classification and no remarking . . 54
3-34 Vendor C: Throughput with classification and no remarking . . . 55
3-35 Vendor C: Throughput with classification and remarking . . . . . 55
3-36 Vendor C: Imix traffic with no classification and no remarking . . 56
3-37 Vendor C: Imix traffic with classification and no remarking . . . . 56
3-38 Vendor C: Imix traffic with classification and remarking ...... 57
3-39 Vendor C: Latency with no classification and no remarking . . . . 58
3-40 Vendor C: Latency with classification and no remarking ...... 58
3-41 Vendor C: Latency with classification and remarking ...... 59
3-42 Vendor C: Jitter with no classification and no remarking . . . . . 59
3-43 Vendor C: Jitter with classification and no remarking ...... 60
3-44 Vendor C: Jitter with classification and remarking ...... 60
xi ABSTRACT QUALITY OF SERVICE TESTING METHODOLOGY by Ankur Chadda University of New Hampshire, December, 2004
Typically, a network service provider offers best-effort service to customers and Quality of Service (QoS) is provided only by network over provisioning. When traffic bursts cause congestion, this default approach does not always provide an acceptable solution. As the trend in networking is convergence of voice, video and data, it is important to differentiate traffic into high and low priority classes through QoS mechanisms. To deliver differenti- ated QoS, the routers utilize classification and sometimes remarking of the traffic. Based on service agreements with the customer, a certain class of traffic is then given more re- sources by the router. Evaluation of the results of these methods and approaches on the network performance is very important to device designers, network evaluators, network administrators, network operators and others involved.
To study the effects of QoS solutions/techniques on the traffic, methods for testing need to be developed. The objective of this thesis is to propose methods of measuring QoS metrics like throughput, latency, and jitter for different types of traffic through a device.
Classification and remarking were observed to put extra load on a device. For some devices, the performance deteriorates when classification and remarking are enabled. Throughput was seen to drop for classification and remarking in some cases. In multiple instances, latency and jitter increased for classification and remarking. There are multiple ways of measuring jitter which were also discussed in the methodology development. It was also observed that some definitions which might seem better from a research perspective are not always available to measure or widely used in the industry. Based on the study it was
xii concluded that service/network providers will have to take care while providing QoS to the customers in order avoid the scenarios discussed here.
xiii Chapter 1
Introduction
An assumption has developed over the last decade that the Internet can support any form of communication service. The services range from traditional reliable, non-real time data transfer from one computer to the other, to time critical services such as audio and video streaming. These services require the network to negotiate certain performance attributes between end applications and the core. Quality of Service
(QoS) as the name suggests aims to provide performance attributes in the form of service guarantees that providers can offer to their customers. Network routers have had QoS implementations for some time now, but there has been no universally agreed upon metric or methodology with which to test QoS. This thesis proposes a testing methodology for gathering and analyzing relevant QoS data and, if possible, suggesting changes to improve performance.
1.1 Quality of Service
Quality of Service can be thought of as a mechanism to satisfy a level of service performance across a network. It can also be understood as the ability of a network to provide desired handling of the traffic such that the network meets the level of service that end applications expect.
1 2
1.2 Early days
In the early iterations of the Internet protocol (IP), getting a packet to its destination was of primary concern. Internet Service Providers (ISP) were more involved in keeping up with the increasing demands of the customers and keeping the network up and running.
IP’s initial design included a Type of Service (TOS) field intended for offering different categories of treatment. Using this feature, however, was not a priority for service providers. At the same time, over-engineering hampered the deployment of
QoS; a network was always provisioned for more traffic than it actually had to handle to avoid congestion and contention for resources. As contention of resources is one of main reason for QoS to be deployed, it was avoided by over engineering.
Another, relatively minor factor in the slow growth of QoS was the complexity of billing systems. Originally, providers had fairly simple billing systems, based on just time and access capacity. Migrating to a billing system smart enough to differentiate between varied service plans and customers was seen as prohibitively difficult, given that it might require the system to look into ’almost’ packet level granularity.
1.3 How to deliver QoS?
A QoS-enabled network must be able to handle different traffic streams in different ways. This necessitates categorizing traffic into types or classes and defining how each type is handled. All the following aspects could be considered within the scope of QoS [1]:
• Differentiation of traffic (Classification)
• Admission control
• Queuing 3
• Congestion management
The following sections explain these aspects in further detail.
1.3.1 Differentiation of Traffic
IP routers are designed to treat all packets in the same way. Packets arriving at the router are considered as new event without having any local state memory. So the basic building block here is the ability to classify the traffic into different categories based on what service they are to receive. Once the packets have been classified they can be given differential treatment based on the classification.
One of the easiest ways to classify a packet is to embed the packet header with an information field that specifies the class of traffic the packet belongs to. This way of classification is known as packet service classification. The advantage of this method is that the packet need not be classified at any router in the network; instead appro- priate treatment can be given to the packet based on the service classification field.
Differentiated Services architecture [6] could be considered as the IETF’s initiative towards standardizing this process.
This method can be problematic if an excessive number of applications are sending packets expecting premium handling. Taking in packets and assigning them specific behavior based on a value set in the packet header can tax the router’s resources.
Another stumbling block is that different networks may use different codes to signify the same category of service. In this case, the TOS or differentiated service field might be remarked before being admitted to a network. This marking or remarking is often involved in controlling congestion.
The classification of a packet into a service class can be done based on the following parameters [1]:
• Service Mark 4
• Protocol
• Destination protocol port
• Source protocol port
• Destination host address
• Source host address
• Source device interface
• Any combination of above
1.3.2 Admission Control
When a packet arrives at the ingress of a network, it can be classified into two categories, namely in profile and out of profile. If a packet conforms to an agreement with the owner (service provider) of the network while entering, it will be classified as in profile and will be allowed to enter the network with or without any changes to the packet. For example, the ingress router can be configured to allow only TCP packets to go through. In this case any TCP packet arriving at the ingress router is classified as in profile and all other are considered out of profile. But if the packet does not conform then it can be dropped at the entry point into the network. The ingress router can be configured to utilize any of the parameters listed above for classification to determine whether the packet is in or out of profile.
Sometimes packets may be dropped based on the scarcity of the resources available to handle them, regardless of whether a packet is in profile or out. There are a few ways in which a device can judge the available resources of the network. 5
1.3.3 Queuing
Every router is a shared resource in a network and any packet reaching a given router can be considered as request for service. If the route engine or processor is busy servicing other requests, the arriving packet must wait until the processor is ready to service the request. Such requests wait in a queue until then. If the rate at which all the packets are arriving at the router is greater than the rate at which they are being processed, the queue will start filling up. Once the queue is full, the packets will start getting discarded.
To help assuage this, the router can use a queuing discipline to handle requests.
A queuing discipline can be designed to give preference to one category of traffic and not to another. Managing the queuing system is one of the fundamental aspects that determine the quality of provided service as it creates the basic differentiation between the service levels of different classes of traffic. There are quite a few ways of queuing. We discuss some important ones below.
First In First Out (FIFO) queuing
This is the most commonly followed queuing discipline. Very large numbers of network devices implement this type of queuing. Here the order in which the packet arrives is maintained and there is no preference given to any packet. This means there is no differential treatment given to any packet. This form of queuing is also known as first come first served (FCFS) queuing. There are some issues with this kind of queuing as there is no differentiation between the packets. For example, TCP may back off because of congestion while UDP packets still continue to flood the network, in turn using up the entire bandwidth. TCP is a protocol which tries to adjust based on the amount of traffic in the network, while UDP does not have any such mechanism. So if
TCP detects congestion and reduces its packet transmission it might get starved for 6
2
4 4 3 2 1
1 FIFO Output Queue Forwarder 3
Input Queues
Figure 1-1: FIFO queuing
resources as UDP will not adjust and might start using more bandwidth. In a scenario where the transmission capacity exceeds the network’s admission capacity this form of queuing is ideal. The queuing is required just to make sure that the transient effect, like a sudden increase or burst of traffic does not cause packet discard. The queuing is also required to resolve contention in case of simultaneous packet arrival.
Priority queuing
This was the first queuing to become popular after FIFO. Priority queuing is based on the classification of the packet into a service class. Based on the classification, it is placed into the appropriate queue. The scheduling of the queue is very simple; a lower priority queue would not be serviced until there are no packets in higher priority queues [1].
Administrators need to be careful while using this queuing. A small error in judgment can cause very poor deployment of this scheme, as any traffic in the higher priority queue will delay the traffic in the lower priority queue. So it is a common practice to keep the higher priority queues shorter and the low priority queue longer. 7
1
2 4 3 2 1 3 FIFO Output Queue Forwarder 4
Input Queues
Figure 1-2: FIFO queuing with contention
2 1
Priority 3 queue
Priority 2 queue 4
4 3 Output Scheduler Priority 1 queue Queue classifies packet Output driver and puts them in 7 6 5 selects packet the appropriate from highest queue Priority 0 queue priority queue
Figure 1-3: Priority queuing 8
200-byte selection
High priority queue 150-byte selection
Medium priority queue Output Queue 100-byte selection
Scheduler classifies Low priority queue packet and puts them in the appropriate Class based scheduler queue with round robin servicing
Figure 1-4: Class based queuing
Another pitfall here is incorrectly assuming that a larger number of queues provides better granularity. In fact, the more queues there are, the more difficult it becomes to differentiate the traffic into higher classes without affecting the low priority queues.
So the general tendency is to keep the number of queues to the minimum possible, usually no more than three.
Class based queuing (CBQ)
Unlike priority queueing, class based queuing, also known as custom queuing or weighted round robin (WRR) tries to avoid the complete denial of service of the low priority traffic. In this type of queuing, administrators can specify the length of the queue and the amount of data to be drained from the queue in every iteration.
This guarantees at least one packet from each queue in every iteration so that there is no denial of service to any queue. The danger in this type of queuing it that the lower priority queue might actually get a higher level of service. For example, consider 9
200-byte selection
High priority queue 150-byte selection
Medium priority queue Output Queue 100-byte selection Scheduler classifies Low priority queue packet and puts them in the appropriate Class based scheduler queue with round robin servicing
Figure 1-5: CBQ with lower priority getting higher level of service
three queues with the highest queue passing 200 bytes, the middle passing 150 bytes and the lowest queue passing 100 bytes of data in each pass. If the typical packet size in the lowest priority queue is 1550 bytes and in the highest priority queue is 60 bytes, then even if the device sends one packet from the lowest queue it still takes up more service than it should. A solution to this is to increase the size of the data to be passed in each iteration for all the queues. This will include the maximum size of the packet and a more accurate distribution of resources. But there is a flip side to this solution; it includes a lot of delay in a single packet stream, especially if the device is not of high speed (such as optical). For high-speed devices this scheme works well, as each round finishes much faster.
Weighted Fair Queuing (WFQ)
Weighted Fair Queuing [1] tries to schedule packets in a fair manner based on the weights given to each stream of traffic. In this case two flows having small packet sizes can be differentiated based on the weights they have. So that if packets such as 10 telnet and voice are using small packet sizes, voice can be given higher weight so that it gets priority over the telnet packets. Individually the flows are considered as FIFO.
This is very similar to class based queuing. If the bandwidth is not being utilized entirely, then it is distributed among other flows based on the weights.
All queuing mechanisms have their advantages and disadvantages. FIFO queuing is good for large queues and fast-switching environments with predictable outcomes.
But they do not implement any service policy. In priority queuing the highest priority traffic receives low jitter and low packet loss. This type of queuing implements ser- vice policies. The main difference between class based queuing and priority queuing is that CBQ offers at least some level of service to the low priority queues. Weighted fair queuing offers dynamic allocation of resources to all queues based on the weights configured. This prevents any single uncontrolled application from bursting traffic into the network. Queuing by itself cannot provide the entire QoS provisioned solu- tion. All the other network and device aspects need to be configured appropriately for a solution to work.
1.3.4 Congestion Management
Congestion management can be defined as the ability of a network to effectively deal with heavy traffic volumes [5]. This aspect of QoS is more than just a single entity and mostly encompasses more than one tool to make it work. For example, differential congestion management is when a lower-precedence class has a higher probability of being dropped and additional buffer space is only available to traffic of higher class.
Queuing can be one of the tools which implement congestion management for the router and the network. For example, additional congestion management techniques can be combined with weighted queuing to give higher preference to higher class of traffic to create a congestion management solution. 11
1.4 DiffServ: Algorithm developed with QoS in mind
Differentiated Services(DiffServ) achieves scalability by aggregating traffic classifica- tion into categories. This information is passed through IP-layer packet marking using the DiffServ (DS) field, in place of the Type Of Service (TOS) field. Based on this information, packets will receive a particular per-hop forwarding behavior by the routers along their path. The Differentiated Services model may be implemented from the host or at an edge router. Also, extensions to Multi Protocol Label Switch- ing (MPLS) have been created to associate per-hop-behaviors with Label Switched
Paths(LSPs). This is a domain-based technology so in a network we can have a set of devices that form a smaller network that uses DiffServ. That is why there are ingress, egress and intermediate routers for DiffServ.
DiffServ is very widely used in attaining the QoS goals of classification and even- tually differential behavior.
1.5 Summary
In this chapter we discussed the basics of QoS. With this information we can now look into the performance metrics that need to be measured. In the next chapter we identify the metrics and discuss the ways to measure those along with the parameters to be changed such as classification and remarking. Chapter 2
Methodology Development
The goal of this thesis is to develop methods of testing aspects of QoS and investi- gating the behavior of devices when subjected to testing. To develop the methods we
first need to identify the performance metrics that are most important from the QoS point of view.
2.1 Identifying performance metrics
Differentiation or classification, admission control and queuing are the most important aspects to consider while configuring the network for QoS. Measurement might be in terms of checking the validity or expected behavior. For example, when it comes to admission control, administrators need to just check whether a device is capable of policing or dropping the packets based on set criteria. However, such easily observed behavior is rare. More frequent and often more interesting, are the subtle variations in behavior of a device when observed while sending traffic through it. But we also need to look at the QoS metrics which get affected by classification and queuing. If traffic is sent without any classification and then the same type of traffic is sent with some, the first change we can look for is how much extra time it takes for the packet to travel in the latter case. The measurement here is known as latency and is defined as the time taken by a packet to travel from the source to the destination. Because of classification there might be a change in the throughput as well.Throughput is defined
12 13 as the amount of data tranferred from the source to the destination or processed in a specific amount of time. Now when we consider queuing, looking at similar measurements might indicate the effectiveness of the queuing on a device. Similarly, jitter, which is the difference in latency of packets, appears relevant when it comes to queuing.
So the metrics identified to be measured are:
Throughput: typically measured in percentage of available bandwidth, bits or bytes
per second, frames per second.
Latency: typically measured in milliseconds or microseconds.
Jitter: typically measured in microseconds or nanoseconds.
We will also need to concentrate on the effect of different configurations of the device on these metrics. So the first step will be to make sure that we have resources to measure these metrics.
A standard Generator/Analyzer is capable of measuring many of these values.
Devices that are available at UNH InterOperability Laboratory (UNH-IOL) are:
• Ixia 1600T
• Navtel Interwatch
• Spirent Adtech AX/4000
• Spirent Smartbits 600
All of the above devices are capable of behaving as a traffic generator as well as analyzer. They are quite similar in their capabilities from the thesis perspective.
They are capable of taking user input through a GUI-based client as well as scripts.
A new form of scripting becoming popular nowadays is what we term GUI-based 14