Abstract:
A method for operating a control module to allocate traffic exchanges between an intermediate network and a plurality of carrier networks in a communication system is provided. The method includes monitoring first traffic transferring from the intermediate network to a first carrier network to determine an amount of outbound traffic, and monitoring second traffic transferring from the first carrier network to the intermediate network to determine an amount of inbound traffic. The method also includes determining a supplemental amount based on the amount of outbound traffic and the amount of inbound traffic, and transmitting a control message that identifies the supplemental amount to a second carrier network instructing the second carrier network to transfer supplemental traffic in an amount less than or equal to the supplemental amount.

Description:
TECHNICAL BACKGROUND 
     Carrier networks are very expensive to build and maintain, thus carriers work together to allow connectivity between devices on each others&#39; different carrier networks. For example, two carriers may agree to carry an amount of traffic over their networks for each other. This allows each carrier to transfer traffic to devices on each other&#39;s networks automatically. 
     Often these agreements describe a balance of traffic between the two carrier networks. For example, the agreement may allow each carrier to transfer a set quantity of traffic over the other carrier&#39;s network. This quantity of traffic is often equal so that each carrier handles the same amount of external traffic. However, when one carrier transfers much more traffic than the other carrier, even if below the set quantity, an imbalance in traffic amounts occurs, causing one carrier to handle much more traffic than the other. 
     Overview 
     A method for operating a control module to allocate traffic exchanges between an intermediate network and a plurality of carrier networks in a communication system is provided. The method includes monitoring first traffic transferred from the intermediate network to a first carrier network to determine an amount of outbound traffic, and monitoring second traffic transferred from the first carrier network to the intermediate network to determine an amount of inbound traffic. The method also includes determining a supplemental amount based on the amount of outbound traffic and the amount of inbound traffic, and transmitting a control message that identifies the supplemental amount to a second carrier network instructing the second carrier network to transfer supplemental traffic in an amount less than or equal to the supplemental amount. 
     A communication system for allocating traffic between an intermediate network and a plurality of carrier networks is provided. The communication system includes a control module, a first gateway coupled with the control module, an intermediate network and a first carrier network, and a second gateway coupled with the control module, the intermediate network and a second carrier network. 
     The control module is configured to monitor first traffic transferred from the intermediate network to the first carrier network through the first gateway to determine an amount of outbound traffic, and monitor second traffic transferred from the first carrier network to the intermediate network through the first gateway to determine an amount of inbound traffic. The control module is also configured to determine a supplemental amount based on the amount of outbound traffic and the amount of inbound traffic, and to transmit a control message that identifies the supplemental amount to the second carrier network instructing the second carrier network to transfer supplemental traffic in an amount less than or equal to the supplemental amount through the second gateway to the intermediate network. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  illustrates a communication system. 
         FIG. 2  illustrates the operation of the communication system. 
         FIG. 3  illustrates the operation of the communication system. 
         FIG. 4  illustrates a communication system. 
         FIG. 5  illustrates a communication control module. 
     
    
    
     DETAILED DESCRIPTION 
     The following description and associated figures teach the best mode of the invention. For the purpose of teaching inventive principles, some conventional aspects of the best mode may be simplified or omitted. The following claims specify the scope of the invention. Note that some aspects of the best mode may not fall within the scope of the invention as specified by the claims. Thus, those skilled in the art will appreciate variations from the best mode that fall within the scope of the invention. Those skilled in the art will appreciate that the features described below can be combined in various ways to form multiple variations of the invention. As a result, the invention is not limited to the specific examples described below, but only by the claims and their equivalents. 
       FIG. 1  illustrates communication system  100 . Communication system  100  includes carrier network  102 , carrier network  106 , carrier network  108 , control module  104 , and control module  110 . Gateway  112  and gateway  114  are associated with carrier network  102 . Information from carrier network  102  to carrier network  106  travels through gateway  112  and link  120 . Information from carrier network  106  to carrier network  102  travels through link  118  and gateway  112 . Information from carrier network  108  to carrier network  102  travels through link  130  and gateway  114 . Information from carrier network  108  to carrier network  106  travels through link  122 . 
     Control module  104  is coupled to carrier network  102  through link  116 . Control module  110  is coupled to carrier network  108  through link  128 . Control module  104  is coupled to control module  110  through link  126 . Links  116 ,  126 , and  128  could use various communication media, such as air, metal, optical fiber, or some other signal propagation path—including combinations thereof. These links could be direct links or they might include various intermediate components, systems, and networks. 
     Links  118 ,  120 ,  122 , and  130  are high-speed, high-capacity, carrier-grade trunk lines interconnecting peering carrier networks  102 ,  106 , and  108 . These high-performance connections may use various communication media, such as air, metal, optical fiber, or some other signal propagation path—including combinations thereof. They may be direct links, or they might include various intermediate components, systems, and networks. In some embodiments, these links are, or occur at internet exchange points (IX or IXP) and may include one or more network switches. 
     In this example, carrier network  102 , carrier network  106 , and carrier network  108  are all owned or operated by different carrier entities. The operators of carrier network  102  and carrier network  106  have a peering agreement in place such that carrier network  106  will handle a given quantity of traffic from carrier network  102 , and in return, carrier network  102  will handle a similar amount of traffic from carrier network  106 . This allows both carriers flexibility in sending and receiving traffic over each other&#39;s networks. 
     Control module  104  monitors traffic between the different carrier networks through monitors  124  and  132 . Monitor  124  detects the volume of traffic flowing between carrier network  102  and carrier network  106 , while monitor  132  detects the volume of traffic flowing from carrier network  108  to carrier network  102 . In some examples, this monitoring may actually occur in gateways  112  and  114 . 
     In some circumstances, an imbalance in carrier traffic flowing between carrier networks may occur. For example, if carrier network  102  is handling 4 Gigabytes/second of traffic from carrier network  106  while sending only 1 Gigabyte/second of traffic to carrier network  106 , there is a traffic gap of 3 Gigabytes/second that carrier network  102  may fill without additional cost according to the agreement. In this case the operators of carrier network  102  will look to balance the traffic flowing between carrier network  106  and carrier network  102  by increasing the amount of traffic flowing to carrier network  106 . 
     One way to balance this traffic is to route traffic delivered from a third party to carrier network  106  as part of the traffic from carrier network  102 . In such a case, the operators of carrier network  102  may send a request to the operators of carrier network  108  encouraging them to provide traffic for carrier network  106  through carrier network  102 . This request may be transmitted by control module  104  for carrier network  102  to control module  110  for carrier network  108  over link  126 . 
     In detail, monitor  124  monitors traffic transferred from carrier network  102  (also called the intermediate network) to carrier network  106  (also called the first network) over link  120  to determine an amount of outbound traffic. Monitor  124  also monitors traffic transferred from carrier network  106  (the first network) to carrier network  102  (the intermediate network) over link  118  to determine an amount of inbound traffic. Control module  104  then determines a supplemental amount of traffic based on the amount of inbound traffic and the amount of outbound traffic. In one example, this supplemental amount may be thought of as a traffic gap corresponding to the difference between the amount of inbound traffic and the amount of outbound traffic. In other examples control module  104  may calculate the supplemental amount in any of a wide variety of methods with the goal of balancing the inbound and outbound traffic. In some examples, control module  104  may calculate the supplemental amount as a bandwidth, while other examples may express the supplemental amount as a quantity of data. 
     Still other examples may not seek to actually balance the inbound traffic with the outbound traffic. For example, situations may exist where the peering agreement between the two carriers calls for an unbalanced exchange of traffic. In such a case, the supplemental amount would be related to the amount of additional outbound traffic required to maximize the amount of outbound traffic as allowed by the agreement. 
     Once the supplemental amount has been determined, control module  104  transmits a control message identifying the supplemental amount to control module  110 , instructing the operator of carrier network  108  to transfer supplemental traffic in an amount less than or equal to the supplemental amount to carrier network  102  for forwarding to carrier network  106 . This reduces the amount of traffic carried over link  122  and increases the amount of traffic carried over links  120  and  130 . Control module  104  also may monitor the traffic flowing from carrier network  108  to carrier network  102  over link  130  via monitor  132 . 
       FIG. 2  illustrates the operation of communication system  100 . In this example, control module  104  monitors traffic from intermediate carrier network  102  to carrier network  106  to determine an amount of outbound traffic (operation  200 ). Control module  104  also monitors traffic from carrier network  106  to intermediate carrier network  102  to determine an amount of inbound traffic (operation  202 ). 
     Control module  104  determines a supplemental amount of traffic from the amount of outbound traffic and the amount of inbound traffic (operation  204 ). Control module  104  then transmits a control message identifying the supplemental amount to another carrier network  108  instructing the carrier to transfer supplemental traffic to intermediate carrier network  102  (operation  206 ). In fact, in most cases control module  104  will communicate with control module  110  to start the transfer of supplemental traffic. 
       FIG. 3  illustrates the operation of communication system  100 . In this example, carrier network  108  transfers traffic to carrier network  106  over link  122  (operation  300 ). Control module  104  monitors traffic flowing from carrier network  106  to carrier network  102  (operation  302 ). Control module  104  also monitors traffic flowing from carrier network  102  to carrier network  106  (operation  304 ). 
     Control module  104  transmits a control message to control module  110  requesting a supplemental amount of traffic (operation  306 ). Carrier network  108  then transfers the supplemental amount of traffic to carrier network  102  (operation  308 ) and carrier network  102  then forwards the supplemental amount of traffic to carrier network  106  (operation  310 ). 
       FIG. 4  illustrates communication system  400 . Communication system  400  is similar to communication system  100  with the addition of another carrier network and an associated control module. Communication system  400  includes carrier network  402 , carrier network  406 , carrier network  408 , carrier network  412 , control module  404 , control module  410 , and control module  414 . Gateway  416  and gateway  418  are associated with carrier network  402 . Information from carrier network  402  to carrier network  406  travels through gateway  416  and link  424 . Information from carrier network  406  to carrier network  402  travels through link  422  and gateway  416 . Information from carrier network  408  to carrier network  402  travels through link  430  and gateway  418 . Information from carrier network  412  to carrier network  402  travels through link  436  and gateway  418 . 
     Control module  404  is coupled to carrier network  402  through link  420 . Control module  410  is coupled to carrier network  408  through link  428 . Control module  414  is coupled to carrier network  412  through link  440 . Control module  104  is coupled to control module  410  through link  434 , and to control module  414  through link  442 . Links  420 ,  428 ,  434 ,  440 , and  442  could use various communication media, such as air, metal, optical fiber, or some other signal propagation path—including combinations thereof. These links could be direct links or they might include various intermediate components, systems, and networks. 
     Links  422 ,  424 ,  430 , and  436  are high-speed, high-capacity, carrier-grade trunk lines interconnecting peering carrier networks  402 ,  406 ,  408 , and  412 . These high-performance connections may use various communication media, such as air, metal, optical fiber, or some other signal propagation path—including combinations thereof. They may be direct links, or they might include various intermediate components, systems, and networks. In some embodiments, these links are, or occur at internet exchange points (IX or IXP) and may include one or more network switches. 
     In this example, carrier network  402 , carrier network  406 , carrier network  408 , and carrier network  412  are all owned and operated by different carrier entities. The operators of carrier network  402  and carrier network  406  have a peering agreement in place such that carrier network  406  will handle a given quantity of traffic from carrier network  402 , and in return, carrier network  402  will handle a similar amount of traffic from carrier network  406 . This allows both carriers flexibility in sending and receiving traffic over each other&#39;s networks. 
     Control module  404  monitors traffic between the different carrier networks through monitors  426 ,  432 , and  438 . Monitor  426  detects the volume of traffic flowing between carrier network  402  and carrier network  406 , while monitor  432  detects the volume of traffic flowing from carrier network  408  to carrier network  402 , and monitor  438  detects the volume of traffic flowing from carrier network  412  to carrier network  402 . In some examples, this monitoring may actually occur in gateways  416  and  418 . 
     In some circumstances, an imbalance in carrier traffic flowing between carrier networks may occur. For example, if carrier network  402  is handling 4 Gigabytes/second of traffic from carrier network  406  while sending only 1 Gigabyte/second of traffic to carrier network  406 , there is a traffic gap of 3 Gigabytes/second that carrier network  402  may fill without additional cost according to the agreement. In this case the operators of carrier network  402  will look to balance the traffic flowing between carrier network  406  and carrier network  402  by increasing the amount of traffic flowing to carrier network  406 . 
     One way to balance this traffic is to route traffic from a third party through carrier network  406  as part of the traffic from carrier network  402 . In such a case, the operators of carrier network  402  may send a request to the operators of carrier network  408  asking them to provide traffic for carrier network  406  through carrier network  402 , perhaps at a reduced cost. This request may be transmitted by control module  404  for carrier network  402  to control module  410  for carrier network  408  over link  434 . 
     In detail, monitor  426  monitors traffic transferred from carrier network  402  (also called the intermediate network) to carrier network  406  (also called the first network) over link  424  to determine an amount of outbound traffic. Monitor  426  also monitors traffic transferred from carrier network  406  (the first network) to carrier network  402  (the intermediate network) over link  422  to determine an amount of inbound traffic. Control module  404  then determines a supplemental amount of traffic based on the amount of inbound traffic and the amount of outbound traffic. In one example, this supplemental amount may be thought of as a traffic gap corresponding to the difference between the amount of inbound traffic and the amount of outbound traffic. Other examples may calculate the supplemental amount in any of a wide variety of methods with the goal of balancing the inbound and outbound traffic. In some examples, the supplemental amount may be calculated as a bandwidth, while other examples may express the supplemental amount as a quantity of data. 
     Still other examples may not seek to actually balance the inbound traffic with the outbound traffic. For example, situations may exist where the peering agreement between the two carriers calls for an unbalanced exchange of traffic. In such a case, the supplemental amount would be related to the amount of additional outbound traffic required to maximize the amount of outbound traffic as allowed by the agreement. 
     Once the supplemental amount has been determined, control module  404  transmits a control message identifying the supplemental amount to control module  410 , instructing the operator of carrier network  408  to transfer supplemental traffic in an amount less than or equal to the supplemental amount to carrier network  402  for forwarding to carrier network  406 . This increases the amount of traffic carried over links  424  and  430 . Control module  404  also may monitor the traffic flowing from carrier network  408  to carrier network  402  over link  430  via monitor  432 . 
     In some cases, carrier network  408  may not have enough traffic for carrier network  406  to balance the traffic between carrier network  402  and carrier network  406 . In order to balance the traffic, control module  404  then calculates a second supplemental amount based on the amount of inbound traffic, the amount of outbound traffic, and the amount of supplemental traffic received from carrier network  408 . Control module  408  then transmits a control message to control module  414  requesting a second supplemental amount of traffic from carrier network  412  for forwarding to carrier network  406 . Carrier network  412  then transfers a second supplemental amount of traffic to carrier network  402  over link  436 . This increases the amount of traffic carried over links  424  and  436 . Control module  404  also may monitor the traffic flowing from carrier network  412  to carrier network  402  over link  436  via monitor  438 . 
       FIG. 5  illustrates control module  500 . Control module  500  is an example of control module  104  or control module  404 , although control modules  104  and  404  may use alternative configurations. Control module  500  includes communication interface  501 , user interface  502  and processing system  503 . Processing system  503  is linked to communication interface  501 . Processing system  503  includes processing circuitry  505  and memory device  506  that stores operating software  507 . 
     Communication interface  501  includes components that communicate over communication links, such as network cards, ports, RF transceivers, processing circuitry and software, or some other communication devices. Communication interface  501  may be configured to communicate over metallic, wireless, or optical links. Communication interface  501  may be configured to use TDM, IP, Ethernet, optical networking, wireless protocols, communication signaling, or some other communication format—including combinations thereof. 
     User interface  502  includes components that interact with a user. User interface  502  may include a keyboard, display screen, mouse, touch pad, or some other user input/output apparatus. User interface  502  may be omitted in some examples. 
     Processing circuitry  505  includes microprocessor and other circuitry that retrieves and executes operating software  507  from memory device  506 . Memory device  506  comprises a disk drive, flash drive, data storage circuitry, or some other memory apparatus. Operating software  507  comprises computer programs, firmware, or some other form of machine-readable processing instructions. Operating software  507  may include an operating system, utilities, drivers, network interfaces, applications, or some other type of software. 
     In this example, operating software  507  includes three software modules. Monitor module  508  contains instructions directing processing system  503  to monitor traffic from an intermediate carrier network to a carrier network to determine an amount of outbound traffic. Processing system  503  also monitors traffic from the carrier network to the intermediate carrier network to determine an amount of inbound traffic. Traffic gap module  509  directs processing system  503  to determine a supplemental amount of traffic from the amount of outbound traffic and the amount of inbound traffic. Balance module  510  directs processing system  503  to transmit a control message through communication interface  501  identifying the supplemental amount to another carrier network, instructing the carrier to transfer supplemental traffic. 
     In other examples, monitor module  508  also directs processing system  503  monitor the supplemental traffic from the second carrier network to the intermediate network to determine an amount of supplemental traffic. Traffic gap module  509  also directs processing system  503  to determine a second supplemental amount from the supplemental amount and the amount of supplemental traffic. Balance module  510  also directs processing system  503  to transmit a control message through communication interface  501  identifying the second supplemental amount to a third carrier network, instructing the third carrier network to transfer second supplemental traffic in an amount less than or equal to the second supplemental amount. 
     The above description and associated figures teach the best mode of the invention. The following claims specify the scope of the invention. Note that some aspects of the best mode may not fall within the scope of the invention as specified by the claims. Those skilled in the art will appreciate that the features described above can be combined in various ways to form multiple variations of the invention. As a result, the invention is not limited to the specific embodiments described above, but only by the following claims and their equivalents.