Chapter 2 – Internet Protocol Version 6
2.7 IPv6 Quality of Service
The IPv6 protocol provides two new fields namely the ‘Flow Label’ and the
‘Traffic Class’ field to provide a non-default service to real time applications. As per IPv6 specification [9], the 20-bit Flow Label field is used by the source to label the sequence of packets for which it requests special handling by the intermediate routers. Its value ranges from 0x1 to 0xFFFFF and is a pseudo-random number that is unique when combined with the source address. This capability provides quality of service in terms of consistent throughput, delay or jitter. Throughput is the amount of data that can be successfully transferred from a source to a destination within a given amount of time and measured in bits/second. Delay is the time required for a packet to reach its destination, while jitter is the delay variation.
2.7.1 The Concept of Flow
In order to indicate a stream of packets, traffic belonging to a particular flow, the flow field label is used. This field may be set to indicate that a particular flow requires additional resources and special handling by the routers along the path.
As per the IPv6 specification [9] a flow is a sequence of packets that are sent from a particular source to a particular (unicast or multicast) destination for which the source desires special handling by the intervening routers. There can be multiple flows from a source to a destination and can contain traffic that is not associated with any flow (i.e., with flow value of zero). The combination of a source address and a nonzero flow label uniquely identifies a flow. Packets that do not belong to a flow carry a flow label of zero.
New flow labels are chosen randomly in a pseudo manner and ranges from 0x1 to 0xFFFFF. The source host assigns the flow label to a flow. The intervening routers use this randomly allocated set of bits within the flow label field as a hash key. The routers use this hash key to look up the state that is associated with the flow. All the packets that belong to the same flow must have the same source, destination address and the same nonzero flow label. If a packet has an extension header like hop-by-hop or the routing header, then the packets must all originate with the contents of that options header. The next header field in case of the hop-by-hop or the routing header is excluded. The routers or the destination though permitted may or may not verify whether the above conditions are satisfied. Any violation if detected, should be reported to the source by an ICMP problem
message with Code 0. The intermediate routers can also set, or modify the flow handling state associated with a flow, without any flow establishment information from a control protocol or any option header. For example, when a router receives a packet from a particular source with an unknown, non-zero flow label, the router can process the IPv6 header along with its extension headers.
The extension header processing is done in the same way with the flow label field set to zero. The routers also determine the next-hop interface.
The routers might also update a hop-by-hop option, advance the pointer and addresses in a routing header, or decide how to queue the packet. The decision to queue the packet is based on the Traffic Class field of the packet. The routers can then choose to remember the results of those processing steps. Then the routers can cache the information. The routers use the source address and the flow label as the cache key. Subsequent packets, with the same source address and flow label can then be handled by referring to the cached information. The routers do not need to examine all those fields. The routers can assume that the fields are unchanged from the first packet that is checked in the flow.
2.7.2 Traffic Class
The source uses the traffic class field to mark a particular flow of packets to a particular class. Different classes indicate different priorities for a flow. The intermediate nodes use this field in an IPv6 header to make the identification and handle the flow according to the class also called the priority.
The following are the general requirements that apply to the Traffic Class field according to IPv6 specifications [9]
The service interface to the IPv6 service within a node must supply the value of the Traffic Class bits for an upper-layer protocol. The Traffic Class bits must be in packets that are originated by that upper-layer protocol. The default value must be zero for all 8 bits.
Nodes that support some or all of the Traffic Class bits can change the value of the bits. The nodes can change only the values in packets that the nodes originate, forward, or receive, as required for that specific use. Nodes should ignore and leave unchanged any bits of the Traffic Class field for which the nodes do not support a specific use.
The Traffic Class bits in a received packet might not be the same value that is sent by the packet's source. Therefore, the upper-layer protocol must not assume that the values are the same.
Table 2.3 provides different Traffic Class field values.
Priority Meaning
0 Uncharacterized traffic
1 "Filler" traffic (for example, netnews)
2 Unattended data transfer (for example, email)
3 (Reserved)
4 Attended bulk transfer (for example, FTP, HTTP)
5 (Reserved)
6 Interactive traffic (for example, telnet, X) 7 Internet control traffic (for example, routing
protocols, SNMP) Table 2.3: Traffic Class Field Values