|
Traffic engineering is a concept or technique used to improve an overall network throughput and performance. A network without traffic engineering is in most cases operated under the simplest way to route packets or traffic flows based on the fixed shortest path. Nonetheless, such simplicity can cause some traffic load unbalance in the network. Specifically, a large amount of packets or traffic load may traverse a certain set of links, while there can be little traffic load on other links. The disadvantage of such an unbalance is poor network capacity utilization. To improve such an unbalanced situation, the concept of traffic engineering is therefore proposed. To improve the network capacity utilization, traffic engineering tries to best balance link utilization in the network to avoid congestion on some links. There are several key control components and steps to realize traffic engineering.
The first control component is routing component, which is extended from the traditional routing protocols such as OSPF and IS-IS to perform a more advanced protocol that can support opaque link state. Today the most popular routing protocol that supports traffic engineering is OSPF-TE. Besides all the functions supported by the traditional routing protocol, OSPF-TE can also support link state field such as remaining capacity, time-delay, and some other policy attributes. This additional capability enables the routing component to always select the most optimal or least congested route in a network when establishing a new network connection. In addition, the routing component also supports the function of link state synchronization. Such synchronization is necessary for the routing component at each node to search for the best route.
The second control component is signalling component. In general, traffic engineering requires a network control system to be able to signal to establish an explicit connection. To establish an explicit connection, a signalling protocol such as RSVP-TE is necessary to use a 3-way communication mode to establish each service connection. Specifically, a PATH message is first sent from a source node to a destination node; once the destination node receives the message, it will responds a RESV message to reserve network resources along the route back to the source node. The source node finally confirms the establishment of the connection. After that, a new connection is set up successfully and users can send their data over the connection.
In traffic engineering, establishing a new connection in general involves the following key steps:
Step 1: routing component maintains a synchronized network link state.
Step 2: a connection request from a user at a source node
Step 3: the source node use asks its routing component to compute an optimal route based on the synchronized network link state database
Step 4: if the route is found, a signalling process is triggered
Step 5: the source node sends out a PATH message to a destination node along the computed explicit route
Step 6: during the message transfer the network resource is collected on the route
Step 7: when the PATH message reaches the destination route, if there are sufficient resources to establish the connection, the destination node will respond with a RESV message transmitted back to the source node along the same route but in the opposite direction
Step 8: when the RESV message is transmitted back to the source node, network resources are reserved as well on the route
Step 9: when the RESV message reach the source node, the source node knows that the connection is ready for data transmission, so it can start to send user data on the new connection
Step 10: meanwhile because the establishment of a new connection will consume some network resources, the states of the links traversed by the connection should be updated in the network state database and flooded around the whole network
Step 11: the routing component in each node that receives the updating message should update their network state database to make changes according and be ready for the next service request.
|