...
Chapter 1. About Saisei Traffic Manager
This chapter contains an overview of Saisei Traffic Manager and how it works.
What is Saisei Traffic Manager?
The Saisei Traffic Manager (STM) is a real-time traffic monitor and controller for Internet traffic. It collects real-time, fine-grained statistics about all traffic flowing on a link. At the same time it controls traffic using powerful, flexible, user-defined policies.
...
In monitor mode, STM provides realtime visibility into the network, but does not apply any policies
In control mode, STM will monitor the network, but it will also manage flows by applying policies
How Saisei Traffic Manager works
STM reads data packet headers of incoming network traffic and assigns the packet to a flow. The flow is then managed according to flow control rules that are defined during STM configuration.
...
Configuration settings define how Saisei Traffic Manager operates
...
Chapter 2. Flow Concepts
The concept of network traffic 'flow' is central to understanding the operation of STM.
Flows
The first thing that the Saisei Traffic Manager does when it receives a packet is to associate it with a flow. A flow is a stream of packets corresponding to the same TCP or UDP session, identified by their IP addresses and port numbers.
...
Source IP address
Destination IP address
Layer 4 protocol
Flow Classification
When STM receives the first packet for a new flow, it classifies the flow to determine the way the flow will be handled. This classification is repeated frequently during the life of a flow.
...
The application it is serving (for example, a specific website or a protocol such as VoIP, Skype, or BitTorrent)
The external geographic location it is serving
The internal and external hosts it is connecting
The internal user it is serving (if an address-to-user database such as Microsoft Active Directory or OpenLDAP is available)
Groups (for example, a group could consist of all countries where a company has business partners, or all applications whose network usage is to be tightly controlled)
Behavioral characteristics, such as number of packets and duration
Flow Management
STM manages every flow in real-time, constantly monitoring each flow to make sure that it stays within its allocated bandwidth. This eliminates the problems that occur with traditional IP routers, where the algorithms might randomly drop packets to manage congestion, causing flows to timeout, reset, or stall.
...
Flow classification allows STM to manage flows based on higher-level characteristics, such as behavior (for example, flow duration) or type of application (for example, Skype or BitTorrent). STM can detect whether a flow represents voice traffic, video traffic, or bulk data transfers. This allows STM to enable different levels of service for different applications and users.
Management of TCP Flows
When the allotted bandwidth for a flow is approached, STM manages each flow according to the policy that applies to it. If possible, it delays packets as an indication to the hosts that transmission should slow down. If packet delay is not configured or proves ineffective, packets are selectively dropped. The TCP standard ensures that hosts react correctly to this, and also that dropped packets are retransmitted, ensuring the integrity of the data.
Management of Non-TCP Flows
Many application protocols that use UDP rather than TCP have their own congestion management mechanisms that work in ways similar to TCP. Some kinds of real-time traffic (such as VoIP and video) react badly to packet loss in a very noticeable way, such as voice or image breakup. STM can be configured to protect such traffic from packet loss.
...
Chapter 3. Saisei Traffic Manager Components
STM’s policies and attributes must be configured before STM can perform monitoring or control functions.
...
Interfaces
Access control list (ACL) and ACL entries (ACE)
Ingress flow class (IFC)
Ingress policy map (IPM) and ingress policies
Egress flow class (EFC)
Egress policy map (EPM) and egress policies
Overview of Saisei Traffic Manager Components
The configuration components of STM select other components to establish the relationships that will be used to create the rule set used for flow control.
...
In the diagram, there are two interfaces, Eth1 and Eth2. Each interface selects two policy maps; an egress policy map (EPM) and an ingress policy map (IPM)
Each policy map contains policies. Egress policies select an egress flow class (EFC) and ingress policies select an ingress flow class (IFC)
The IFC selects an EFC and an access control list (ACL)
As the same EFC is selected by the egress policy and by the IFC, a link is created between the ingress policy and the egress policy. These two linked policies are then used by STM to create the rule set for implementing flow control
...
Interfaces
Interfaces are STM's connection to the rest of the network.
...
An interface specifies a rate, which is the maximum total bandwidth that will be used for all flows that use the interface as an egress interface. For a physical interface this rate will normally be the physical bandwidth (either 10G or 1G), though a lower value can be configured.
Access Control Lists
An ACL is used to match the five-tuple addressing information in a flow. An ACL contains one or more access control list entries (ACE). Each ACE matches a specific set of addressing information, taken from the five-tuple in the packet header.
...
Symmetric:
If this attribute is selected, the ACE will also match a flow in which the source and destination are reversed, that is, if the entry says the source subnet and port are 1.2.3.0/24 port 80, it will match a flow in which these are the destination subnet and port.
Ingress Flow Classes
IFCs are the heart of the classification method of STM. An IFC specifies all the characteristics that a flow must have in order to be selected as belonging to a class. These characteristics are defined in the ACL selected in the IFC and in the IFC itself.
...
Minimum or maximum duration of a flow
Minimum or maximum number of bytes for a flow
Minimum or maximum number of packets for a flow
Minimum or maximum rate over flow lifetime
Ingress Policy Maps and Ingress Policies
Each interface specifies an ingress policy map (IPM) that contains the policies to be applied to a flow based on the matching IFC. The same IPM can be attached to multiple interfaces, or if different policies are required (for example, for different VLANs), separate IPMs can be used.
...
There are further attributes of specialized use, which are listed in the CLI documentation.
Egress Flow Classes
An egress flow class creates a link between one or more ingress flow classes, and the egress policy associated with it for a particular interface. An egress flow class must be created before it can be associated with an ingress flow class or have an egress policy configured for it.
...
For ease of management, the EFC and the egress policy should have the same name, for example, ‘mobile’. The 'EFC-egress policy' pair can be selected by multiple IFCs. An EFC must be applied to an interface in order to allocate bandwidth for an egress flow on that interface. If no EFCs are selected by an IFC, the IFC performs an automatic drop of ALL packets in any flows associated with the IFC.
Egress Policy Maps and Egress Policies
Each interface specifies an EPM that contains the policies to be applied to a flow based on the matching EFC, as specified in the selected IFC. The same EPM can be attached to more than one interface, or if different policies are required (for example, for different VLANs), separate EPMs can be used.
...
Other attributes are used to manage hierarchies of EFCs. For more information, see the CLI documentation.
...
Chapter 4. Additional Concepts
This section provides more information about applications, geolocations, groups, configuration, and dynamic bandwidth management.
...
An application object keeps statistics that track its usage, for example the current traffic rates and the total traffic for the application.
Configuration and Partitions
Although only one configuration can be running at a time, several configurations can be stored and activated as required. All manageable elements of the software are contained within a configuration.
...
When the system restarts, the former alternate partition becomes current and the former current partition becomes alternate. If the upgrade has been successful, the now alternate partition can also be upgraded. But if there is a problem, it's possible to revert to the former partition.
Dynamic Bandwidth Management
The bandwidth allotment for each flow is not static. The amount of bandwidth available will vary as network flows are started and stopped.
...
STM maintains the bandwidth used at an egress interface at the specified rate, by controlling the individual flows assigned to the EFC.
Delay is minimized so that the time delay from ingress to egress for flows that are allowed to proceed without dropped packets is less than 10 micro seconds.
Uncontrolled packet loss is eliminated.
Voice, video and other critical applications can be allocated a guaranteed bandwidth.
Geolocations
A geolocation is a geographic location that is associated with one or more IP address ranges.
...
A geolocation keeps information about current and historical traffic rates and flows.
Groups
Groups allow a policy to be applied to a number of entities (applications, users, or geolocations) without configuring each one explicitly.
...
Groups can also be nested, to a depth of one. For example, a group could be defined for each department in an organization, with users assigned to those groups. Then a group could be defined for each executive-level function, with the departments assigned a function. This would allow policies to be assigned at either the department or function level, and will collect usage information at both levels.
...
Host Management
STM manages bandwidth separately for flows and for hosts. It can also manage bandwidth for flows associated wth each host, using host equalization (HE) and host policy maps (HPM).
Host Equalization
The simplest form of host management is host equalization (HE). When host equalization is enabled for an egress flow class (EFC), its bandwidth is divided equally among all hosts. Then, for each host, the bandwidth is divided equally among the flows.
...
This is a powerful way to control “greedy” hosts, which try to get the maximum bandwidth by using a very large number of flows. Suppose there are two hosts, one with just a single flow (for example, a Netflix download) and another with 100 flows (for example, a BitTorrent download). Without HE each flow will get equal bandwidth, so the host with 100 flows gets virtually all the available bandwidth. But with HE, the bandwidth is divided equally among the two hosts. Each of the 100 BitTorrent flows get just one hundredth of the bandwidth given to the Netflix download.
Using the Rate Multiplier
In some cases, STM may be required to share bandwidth among hosts unequally, while still taking advantage of the benefits of host equalization. This can be done using the rate_multiplier attribute of the host. For example, if there are three hosts, A, B and C, with rate multipliers of 2, 1, and 0.5 respectively, then A will get double the bandwidth of B, who will get double the bandwidth of C, regardless of the absolute amount of bandwidth available.
Host Policy Maps
Generally, many hosts will be treated the same way. For example, there may be a few “rate plans” with different properties, and all hosts will be assigned to one of these rate plans.
...
For example, suppose that within an organization, desktop users are assigned to one subnet: 10.1.0.0/16. Externally accessible servers are assigned to another: 10.2.0.0/16. IFCs can be created that automatically assign hosts in the first group to a policy appropriate to desktop users, and hosts in the second group to a policy appropriate to servers.
Using Host Policy Maps to Determine Flow Policy
A host's HPM assignment can also be used to influence the policy applied to flows for that host. This is done using the 'match_host_policy_map' attribute of an ingress flow class.
...
For example, this could be used to allow incoming sessions only for designated servers. If servers are assigned to the HPM 'server', while desktop users are assigned to 'desktop', an IFC and ingress policy can be defined to block such flows unless the HPM is 'server'.
Using Host Policy Maps to Implement Per-Host Flow Classes
Sometimes it is required to manage bandwidth for different traffic types within a host. For example, it may be required to protect voice and video, to give preferred service to some applications, and to restrict others to a limited bandwidth regardless of what is available. This is exactly analogous to using egress flow classes to manage different traffic classes, and the solution is very similar.
...
Traffic is associated with the appropriate policy by the definition of suitable ingress flow classes, in exactly the same way as for egress flow classes.
Setting Limits on Host Policies
Host policies have two additional attributes, compared to egress policies, which allow limits to be set on flows associated with those policies.
flow_limit: sets a maximum number of flows that will be permitted for each host in this class. For example, the number of video flows could be limited to 3, ensuring that each of them receives a minimum opf 2 Mbit/sec
flow_rate_cap: sets the maximum rate for a single flow in this class
Sharing Bandwidth Between Different Host Policy Maps
By default, a host policy map gets its bandwidth share from the total bandwidth at the interface. For example, if an interface has a configured bandwidth of 1 Gbit/sec and has 100 active hosts, each host will receive at least 10 Mbit/sec. In practice, not all hosts will be using their available bandwidth, and the remainder will be shared amongst those that are able to use it.
...