Keywords. Sensor Networks, Service Differentiation, Adaptive Forwarding. Scheme. 1. Introduction. Technological advances have made it feasible to have small ...
Service Differentiation in Sensor Networks Sudeept Bhatnagar, Budhaditya Deb, Badri Nath Dataman Lab, Dept. of Computer Science Rutgers University, Piscataway, NJ, USA {sbhatnag, bdeb, badri}@cs.rutgers.edu
Abstract Recent technological advances have made it possible to have large wireless ad-hoc networks of small devices. The prime purpose of such sensor networks is to disseminate information about the environment they sense. We observe that information provided may have different levels of importance and argue that the sensor networks should be willing to spend more resources in disseminating packets carrying more important information. In this paper, we introduce the concept of service differentiation as applicable to sensor networks, highlight its fundamental differences with normal data networks and define the relevant metrics. Various mechanisms which may provide services compatible with the packet priority levels are proposed. We evaluate one of the proposed method , Adaptive Forwarding Scheme (AFS) and show that our scheme provides the desired levels of service.
Keywords Sensor Networks, Service Differentiation, Adaptive Forwarding Scheme
1. Introduction Technological advances have made it feasible to have small devices with computation, communication and sensing capabilities [1, 2, 3]. These devices run on batteries and thus their capabilities are limited by the available energy. A sensor network consisting of a large number of such nodes can be useful in keeping track of various activities in a given region. However, operations performed in such a sensor network have to be energyefficient because of the energy constraints of its nodes. In a sensor network, sensors would sense some data, packetize it and send the packet to a monitor node along a path consisting of multiple wireless hops. Researchers have come up with schemes to provide the functionality required to perform these operations efficiently. For routing the data to the monitor node, schemes like Directed Diffusion [4] and Power-aware routing [5] have been proposed. Clustering schemes [6, 7, 8] group the nodes into clusters for network management [7]. Location dissemination schemes [9, 10] provide the sensors with information about their locations. Simple and efficient operating system like tinyOS [3] have been designed for these small nodes. All these works focus on cutting down on the energy requirements of a sensor network, while providing the minimal functionality for the network to operate. We observe that in sensor networks different data packets might have different importance.For example, if a temperature sensor in a forest, senses 60F on a normal spring day, the value is This reserarh work was supported in part by DARPA under contract number N-666001-00-1-8953 and a grant from CISCO systems
expected. On the other hand a temperature of 1000F in the same situation is unexpected and could probably mean a forest fire. From a monitor’s point of view, the packet containing the 1000F temperature is much more important than the packet containing 60F temperature. For packets containing information with higher importance, the network should make more effort in delivering them. This means that although data delivery needs to be energy efficient, the energy expenditure may vary according to the information importance. This highlights a need for having service differentiation in sensor networks. Sensor networks have fundamentally different characteristics and applications than normal data networks. We argue that a notion of service differentiation exists for sensor networks although it is quite different from that in data networks. In this paper, we introduce the concept of service differentiation as applicable to sensor networks. We define the metrics for service differentiation for such systems. We propose various mechanisms which may be used provide services compatible with the packet priority levels. We evaluate one of the proposed method , Adaptive Forwarding Scheme(AFS), and show that our scheme provides the desired level of service at proportional overhead. This work is a preliminary investigation of the problem of handling information priority. The paper is organized as follows: In section 2, we describe the concept of service differentiation for sensor networks and describe various ways to attain it. We define the underlying network model and our adaptive forwarding approach in section 3. We evaluate the performance of adaptive forwarding scheme in section 4 and conclude by giving directions for our future work in section 5.
2. Service Differentiation In this section, we discuss the meaning of service differentiation for sensor networks. We contrast it with the corresponding interpretations for wired data networks. For normal data networks, the Integrated Services(IntServ) [11] and Differentiated Services (DiffServ) [12] models exist to provide service differentiation. The IntServ model gives special treatment to packets from a given flow. Each router stores per-flow states and maintains a token bucket for the flow to forward its packets. In the DiffServ model no guarantees are provided to flows. Instead, the edge routers mark a per-hop-behavior(PHB) in the packet header. The core routers use the PHB in their packet scheduling decision. Packets from different flows having same PHB are treated identically. Effectively, DiffServ provides service on a per-aggregate basis whereas IntServ provides service on a per-flow basis. Note that service differentiation in wired networks typically affects the packet scheduling decisions. Packet scheduling based on packet or flow priority, translates into a better service (in terms
of bandwidth, delay, jitter, etc.) for a flow or an aggregate sharing same PHB. Since the wired media is virtually error-free, once a packet is transmitted, it will safely reach its next hop. In sensor networks, packet scheduling is not a major concern. Typically a sensor node would not have space to store packets in its buffer and thus, the question of when to schedule a packet to provide service differentiation, does not arise. The communication medium in sensor networks is wireless which is more error prone than wired links. Moreover due to ad hoc deployment of sensors in unknown terrain, behavior of wireless links may be highly unpredictable and could have higher error rates than expected. Although there would be a designated next hop node for each packet to reach the monitor node, the packet might be lost along the way. Thus for sensor networks two primary service differentiation parameters would be: • Reaching Probability: A higher priority packet should have higher probability of reaching the monitor node.Typically the probability of a packet reaching the monitoring node would be based on the wireless link error rates along its path from source to destination. In the traditional networks, the main way of providing reliability is through the use of acknowledgments which usually work on an end to end basis using TCP. For sensor networks, an end-to-end acknowledgment scheme may not work efficiently, because the reaching probability from source to sink would reduce significantly with their hop distance. The expected number of transmissions in such a case would be high. Instead, if a hop-by-hop acknowledgment mechanism is deployed, the number of retransmissions would only depend on local channel error and the number of retransmissions would be lesser. Further, an acknowledgment based scheme requires that a packet be cached at a node, till an acknowledgment for the packet is received. Limited amount of memory may make caching of packets at a sensor node infeasible. • Latency: A high priority packet should reach the monitor with a lower latency than a low priority packet. This would mean that a low priority packet could take a longer route to make way for higher priority packets. The packets would thus be allowed to deviate from the shortest route path with the deviation bounded by the required latency in delivery. We note that in sensor networks latency would be dependent on channel error along with propagation delay. For example if a scheme provides reliable delivery through retransmissions and acknowledgments, expected number of retransmission would depend on the channel error rate and the expected latency would thus depend on number of retransmissions. This is different from latency in data networks which typically depends on propagation delay and queuing delay along its path. Service differentiation mechanism in sensor networks should be able to deliver information with a reliability and latency based on its importance. The traditional methods for delivering data like single path forwarding and flooding are oblivious to packet priority and thus their performance levels do not change with packet importance. For a single path forwarding mechanism, if the reaching probability along the forwarding path is more than the desired level, then the packet can reach the destination with desired reaching probability. Flooding, on the other hand, can attain a much higher degree of reliability but the overhead incurred is
significant. Using single path for low priority packets and flooding for high priority packets, does not provide a graceful transition, both in terms of attained reliability and incurred overhead. A forwarding scheme using a single path would typically use the shortest path. So for all packets which it delivers successfully, the latency would be minimum and same for all packets irrespective of packet priority. Energy is consumed at the nodes along the shortest path even by insignificant packets. On the other hand, in flooding, there is no way to control the latency of data delivery. The expected value of latency would remain same for all packets depending on the channel error rate. Treating latency as a service parameter means that the network should have control over the paths taken by the packets. For example, the packets with lower priority might be routed along a longer latency path, so as to conserve energy along the shortest path for high priority packets. We now describe various mechanisms which can be used to provide service differentiation in sensor networks. For wired networks two different mechanisms exist: IntServ and DiffServ. We discuss the implications of adapting these service differentiation paradigms of wired networks, for sensor networks. 2.1. IntServ Model For sensor networks, the concept of a flow can have two interpretations. The data-centric interpretation would be to treat one type of data as one flow, e.g., information from all temperature sensors form a particular region is one flow. This kind of interpretation is used in protocols like directed diffusion [4], which use soft-state mechanism to periodically refresh interest in a particular flow. Each sensor node would cache the interests which are being routed through it. An interest would expire once the monitor node stops refreshing it. The host-centric interpretation would treat the stream of packets between a source and the monitor as a flow. Applying an IntServ-like model to sensor networks would require maintenance of per-flow states at each sensor node. Given the limited amount of memory at a sensor and the large number of sensors in a field, keeping states for host-centric flows is not feasible for sensor networks. With data-centric flows, the IntServ model might be feasible only if the number of interests in a sensor field is small. Hence, providing special service to packets from a particular flow is only feasible for data-centric flows with limited number of interests. In such a model, the monitor node could enclose the desired service for a particular interest in the interest refresh-message. For example, when issuing a refresh message for a particular interest i, the monitor node might enclose a desired level of service saying: “If a packet with priority p, is received for an interest i, forward it with probability f(p)”. Note that the update interval parameter specified in the interest refresh message of directed diffusion, provides a mechanism to have more frequent updates for more important interests, but it does not allow differentiation between packets of different importance belonging to the same interest. In this paper, we do not evaluate any IntServ-like models for sensor networks. 2.2. DiffServ Model The DiffServ concept can be easily adapted for sensor networks. The source knows the degree of importance of each packet it is sending which can translated into predefined priority levels. It marks the PHB or priority level in each packet. The other sensors would use the packet priority to decide the kind of service it should provide to the packet. This type of model is highly scal-
Source
Sink
Source
(B) Multipath Forwarding
(A) Single Path Forwarding
Source
Sink
Sink
(C) Multipacket Forwarding
Source
Sink
(D) Hybrid Forwarding
Figure 1: Forwarding Approaches. Each arrow represents a copy of the original packet.
able because no matter what the number of sensors in a field, a forwarding node has just to contend with one packet at any given point of time. We now define how a DiffServ model would provide service differentiation. Due to error prone nature of wireless channel, a packet’s reaching the monitor can not be guaranteed. However, it is desirable that a high priority packet should reach the monitor with a high probability. We define three approaches to provide the guarantees in packet delivery as follows: • Acknowledgment: A DiffServ model could be implemented with selective acknowledgment schemes depending on packet priority. Thus high priority packets should be acknowledged more often than low priority ones. The acknowledgment approach maybe used when reliable delivery with low communication overhead maybe more important than latency in delivery. Moreover, such a scheme would only be feasible if there is caching space at sensor nodes. • Packet Redundancy: In this approach for providing desired reliability, multiple copies of a packet may be transmitted from each node which receives a copy of the packet. By introducing such redundancy, the system can compensate for packet losses due to the local channel error. This approach incurs extra overhead in the number of packets. However it does not require retransmission and acknowledgments due to which latency in packet delivery would be significantly lower. Hence this approach would be better if the latency in packet delivery is the more important factor rather than communication overhead. • FEC Strength: Forward error correcting codes maybe used for correcting the corrupted packets. Effectiveness of FEC would depend on the degree of redundancy in codes. Thus we can increase reliability by introducing a stronger FEC for a high priority packet based on local channel error. A detailed investigation of the feasibility and performance implications of the schemes using acknowledgments and FEC for service differentiation, is part of our future work. In this pa-
per, we propose approaches which use redundancy as a basis to introduce reliability. These are: • Multipath Forwarding: This approach, shown in figure 1(B), takes advantage of wireless being a broadcast medium. All the neighbors of a forwarding node can listen to the transmissions. Although there would be a single next hop node based on the routing algorithm used, multiple nodes may actually forward a packet. A probability function based on the local channel error rate, desired reliability and node degree may be used by the receiving nodes to decide whether it should forward a packet. Thus in the lowest priority packets only the predefined next hop needs to forward whereas in the highest priority case the node forwarding may degenerate into a network flooding. To get multipath forwarding approach to work, it is desirable to have a forwarding probability function which works independent of topology. This maybe difficult to achieve in a distributed manner since nodes only have local knowledge. Also the method may not work at all in certain cases. Consider the case where nodes are placed in a straight line with each node in communication range with its adjacent two nodes. In such a situation there is only one forwarding path and there is no way of using multiple forwarding paths. • Multipacket Forwarding: In this approach, shown in figure 1(C), only the designated next hop node forwards a packet. The redundancy is introduced by forwarding the packet multiple times. Again a node may use the local channel error rate and the required reliability to calculate the number of copies of a packet that needs to be forwarded. Using totally local information may not allow a node to perform at a desired level. Moreover, since this approach uses single path only, a hot spot in the network would translate into extra load on a subset of nodes. • Hybrid Method: This is combination of the previous two methods as shown in figure 1(D). A packet could be sent along multiple paths in the sensor field. If a node finds that its local degree is smaller than a threshold, it can send multiple copies of the packet to compensate for it.
1
0.9
Single Path Flooding AFS Ideal Case
0.8
0.7 Attained Reliability
The methods described above only take into account local information. Since the network state might be significantly different across the sensor field at different times, taking action purely on local state might not provide a desired level of reliability. The network should have a mechanism to adapt to the topology, error rate, traffic patterns and desired reliability levels.Note that, each of the previously described methods can have an adaptive version. In the adaptive approaches, the sensor nodes learn the network state using eavesdropping or by explicit state dissemination packets. The nodes use this information to aid their forwarding decisions. In this work, we propose and evaluate an adaptive forwarding scheme which uses multipath and multipacket forwarding mechanisms. Specifically, we assume that the sensor network does not have any acknowledgment mechanism for reliable packet delivery. Our approach allows the network to operate at the desired reliability with overhead varying in proportion
0.6
0.5
0.4
0.3
0.2
0.1
0 0.1
0.2
0.3
0.4
0.5 0.6 Desired Reliability
0.7
0.8
0.9
1
Figure 2: Attained Reaching Probability vs Desired Reaching Probability. Channel Error Probability is 0.2
3. Adaptive Forwarding Scheme(AFS) We assume that the network is formed by random deployment of sensors in a field. The sensors send their sensed data to a common monitor node. The sensors know their distance from the monitor in number of hops. The network can follow any routing protocol. A packet has a priority level l where l ∈ l 1 , l2 , . . . , ln . The number of priority levels n may depend upon the application and the levels of differentiation desired by the user. Each priority level li is associated with a reaching probability P i ,i.e., a packet with priority level li is expected to reach the monitor with probability Pi. Each forwarding node puts the identity of its next hop in the packet. When using single path forwarding, the path followed by a packet is determined by the next hop sequence it follows. When using flooding, each node only forwards the first copy of packet, in case it receives multiple copies of a packet. For this purpose, a node has to cache the sequence number of a packet for some time. It discards a received packet if its sequence number is already present in the cache otherwise it forwards it. We use this type of flooding for all our comparisons. Note that there can be another version of flooding where a node transmits a packet unless its time-to-live becomes 0. A corresponding version of ttlcontrolled AFS can easily be designed. The multipath forwarding approach, shown in figure 1, provides reliability by introducing redundancy in the number of paths between a source and the monitor. The number of paths is controlled by the packet priority and the network conditions. Each packet is forwarded along its default path. The other nodes receiving a copy of the packet, probabilistically forward the packet so as to provide desired level of reliability. Since pure local knowledge may not be adequate for a node to decide whether or not to forward a packet, the monitor node reinforces the forwarding probability periodically. Initially, all the sensor nodes operate in the flooding mode. Each node has a forwarding probability F i = 1 for all priority levels li . The monitor node keeps track of the number of packets, Ni , of each priority level li received since the last routing updates. It uses sequence numbers to compute the number of packets lost and the reliability attained Ri for level li , during the concerned time window. It then computes the new forwarding probability Fi, to provide the desired reliability Pi for each priority level li as: Fi =
Fi × Pi Ri
(1)
It piggybacks this information on the next routing update packet. Each node which receives this information, uses the new forwarding probability to forward packets. Due to channel error, a node may not receive the copy of new forwarding probabilities. In such a case, it continues to operate using its old forwarding probability. If it does not receive k consecutive routing updates (it times out), it reverts back to flooding all packets received. It would appear that the maximum reliability that this approach can provide, is equal to that of flooding. However, a simple enhancement can be made in AFS to make it provide reliability greater than flooding in case where flooding is not adequate. This would entail not treating Fi as a probability measure. In other words, we can allow values greater than 1 for F i . The integer part of Fi gives the number of copies of the packets that should be forwarded and one additional copy of the packet is sent with a probability equal to the fractional part. For example, if Fi is 1.3, then each node always sends one copy of packet and another one with probability 0.3. This multipacket forwarding along with multipath forwarding would provide reliability better than flooding at a cost which would be higher than flooding. Note that this simple approach can implicitly adapt to any kind of change in network conditions. Thus a change in topology, traffic patterns or channel error rate can be accounted for and the network can provide a desired performance level. At the same time the forwarding probability is proportional to the desired level of reliability. This means that the number of copies of a packet transmitted in the network, would be proportional to its priority.
4. Simulation We simulate our AFS approach on a simple sensor network with 100 sensors thrown in on a field of dimensions 100m × 100m. The communication range is fixed to 20m for each sensor node. Each experiment is run 10 times and the results shown are average of these runs. The first three experiments are done using a single priority class which helps in evaluating the network dynamics for any priority class. The fourth experiment has 3 different priority levels. For the first experiment, we assume a single source node at (0,0) and the monitor node at (100, 100). The source node sends 1000 packets to the monitor node during the simulation duration. The routing information is assumed to be available at all the nodes, i.e., each node is aware of the number of hops re-
4
4
14
x 10
12
10
Single Path Flooding AFS
x 10
Single Path Flooding AFS
9
8
7 # of Packets transmitted
# of Packets transmitted
10
8
6
6
5
4
3
4
2
2 1
0 0.2
0.3
0.4
0.5
0.6 0.7 Desired Reliability
0.8
0.9
0 0.05
1
Figure 3: Number of packets transmitted in the network. Channel Error Probability is 0.2
0.15
0.2 0.25 0.3 Channel Error Probability
0.35
0.4
0.45
Figure 5: Number of packets transmitted in the network. Desired Reliability is 0.6 0.98
1
AFS
Single Path Flooding AFS Ideal Case
0.9
0.96
0.8
0.94
0.7
0.92 Attained Reliability
Attained Reliability
0.1
0.6
0.5
0.9
0.88
0.4 0.86
0.3 0.84
0.2 0.82
0.1 0.8
0 0.05
0.1
0.15
0.2 0.25 0.3 Channel Error Probability
0.35
0.4
0.45
Figure 4: Attained Reaching Probability vs Channel Error Probability. Desired Reliability is 0.6
quired and the next hop to reach the monitor. The mean channel error probability across the field is set to 0.2 and local channel errors are within a standard deviation of 0.1 from the mean. The desired reliability is increased from 0.2 to 0.9. Figure 2 shows the reliability attained by single path forwarding, flooding and AFS, for each level of desired reliability. We see that AFS attains reliability slightly higher than the desired reliability values between 0.2 and 0.7. The reliabilities attained by flooding and single-path forwarding approaches is independent of the desired reliability and are constant. For desired reliability of 0.8 and 0.9, AFS attains desired reliability where even flooding cannot provide the desired reliability. Figure 3 shows the total number of packets transmitted in the network to forward the 1000 packets sent by the source. We again see that the costs of the single path forwarding and flooding do not change. The cost incurred by AFS varies between that of single-path and flooding in proportion to the desired level of reliability. For desired reliability of 0.8 and 0.9, the cost of AFS goes beyond that of flooding. This is the case where flooding can not provide the desired reliability. Our next experiment sees the effect of channel error on the overhead for a given level of desired reliability. Again the source node is at (0, 0) and sends 1000 packets to the monitor node (100, 100). We set the desired reliability to 0.6 and increase
0
500
1000
1500
2000
2500
Time (Sec)
Figure 6: Desired Reliability is 0.75. Channel Error is 0.2 till time 1000 and after that it changes to 0.4
the channel error probability from 0.1 to 0.6. The channel error probability is assumed to be uniform across the field. We see, that AFS can provide the desired level of service as shown in figure 4. The cost of providing the same level of service, shown in figure 5, increases with channel error probability. This is due to the fact that more packets are lost due to channel error and the adaptive mechanism of AFS sets a higher forwarding probability value. The third experiment shows the dynamics of AFS. We set the desired level of reliability to 0.75. The channel error probability is initially set to 0.2. Initially all nodes operate in flooding mode. After every 20 seconds, the monitor node sends updated forwarding rate to the sensor nodes. At time 1000, the channel error probability changes to 0.4. Figure 6 shows the reliability attained during each time window of 40 seconds. For a channel error probability of 0.2 the reliability value converges to 0.85 at time 1201 . Correspondingly the number of packets vary as shown in figure 7. An increase in channel error probability causes the attained reliability to fall after time 1020. The network adapts by increasing the forwarding overhead (as is shown by the increased slope of the overhead curve in figure 7) and 1 The attained reliability of 0.85 shows the reliability attained over the entire time period. The reliability attained during the corresponding time windows keeps varying
5
4
x 10
AFS 3.5
# of Packets transmitted
3
2.5
2
1.5
1
cussed various possible ways of providing service differentiation with respect to these parameters and presented a simple forwarding algorithm called Adaptive Forwarding Scheme(AFS) which allows us to control the reliability of a sensor network’s communication. A packet’s priority was used to determine the forwarding behavior for the packet. Our preliminary results evaluating the performance of AFS are very promising. In future, we would have a comprehensive comparison of all the mentioned techniques which could be used to provide service differentiation in sensor networks.
6. References
0.5
0
0
500
1000
1500
2000
2500
Time (Sec)
Figure 7: Number of packets transmitted in the network.Desired Reliability is 0.75. Channel Error is 0.2 till time 1000 and after that it changes to 0.4 70 AFS
[1]
G.J. Pottie and W.J. Kaiser, “Wireless integrated network sensors”, Communications of the ACM, vol. 43, no. 5, pp. 51–58, May 2000.
[2]
J. Haartsen, M. Naghshineh, J. Inouye, O. Joeressen, and W. Allen, “Bluetooth: Vision, goals, and architecture”, Mobile Computing and Communications Review, vol. 2, no. 4, pp.38–45, October 1998.
[3]
J. Hill, R. Szewczyk, A. Woo, S. Hollar, D. Culler, and K. Pister, “System architecture directions for networked sensors”, in 9th ACM International Conference on Architectural Support for Programming Languages and Operating Systems, 2000, pp. 93–104.
[4]
C. Intanagonwiwat, R. Govindan, and D. Estrin, “Directed Diffusion: A Scalable and Robust Communication Paradigm for Sensor Networks”, Proc. of ACM MOBICOM, 2000.
[5]
S. Singh and C. Raghavendra, “Pamas: Power aware multi-access protocol with signalling for ad hoc networks”, ACM Computer Communication Review, 1999.
[6]
W. Heinzelman, J. Kulik, and H. Balakrishnan, “Adaptive protocols for information dissemination in wireless sensor networks”, in Mobile Computing and Networking, 1999, pp. 174–185.
[7]
B. Deb, S. Bhatnagar, and B. Nath, “A Toplology Discovery Algorithm for Sensor Networks with Applications to Network Management”, Tech. Rep. DCS-TR-441, Dept. of Computer Science, Rutgers University, May 2001.
[8]
S. Banerjee, S. Khuller, “A Clustering Scheme for Hierarchical Control in Multi-hop Wireless Networks”, in Proc. of IEEE Infocom, 2001.
[9]
D. Niculescu and B. Nath, “Ad-hoc positioning system”, Tech. Rep. DCS-TR-435, Dept. of Computer Science, Rutgers University, April 2001.
60
# of Packets transmitted
50
40
30
20
10
0
0.5
0.7 Desired Reliability
0.9
Figure 8: Number of packets transmitted in the network perpacket-per-reliability level. 3 priority levels corresponding to desired reliabilities 0.5, 0.7, 0.9. Channel Error is 0.2
stabilizes the attained reliability at time 1100. This experiment also shows that the convergence time is a function of the time window size. Since routing updates causes extra overhead, the administrator has to determine an ideal trade-off between frequency of updates and the desired convergence time. For the fourth experiment, we have three priority levels associated with desired reliabilities 0.5, 0.7 and 0.9. The channel error probability is set to 0.2. Each node transmits 5 packets of each priority level, to the sink located at (100, 100), over the entire simulation duration. Figure 8 shows the number of packets transmitted in the network per-packet-per-reliability-level. We see that using AFS, the network spends more resources on more important packets.
5. Conclusion We have introduced the concept of service differentiation based on data prioritization and argued that service differentiation is inherently required in sensor networks. The concept of service differentiation in sensor networks was contrasted from those in traditional networks. Reliability and latency are proposed as two parameters that are of importance in sensor networks. We dis-
[10] L. Doherty, L. El Ghaoui, and K. Pister, “Convex position estimation in wireless sensor networks”, Proc. of IEEE Infocom, 2001. [11] R. Braden, L. Zhang, S. Berson, S. Herzog, and S. Jamin, “Resource reSerVation Protocol (RSVP) version 1, Functional Specification”, RFC 2205, IETF, September 1997. [12] S. Blake, D. Black, M. Carlson, E. Davies, Z. Wang, and W. Weiss, “An Architecture for Differentiated Services”, RFC 2475, IETF, December 1998.