This invention relates generally to electronic communication over a network, and more particularly to measuring, reporting, and limiting network utilization.
In many broadband markets, network access can be purchased based on the amount of data transferred, or utilization. For example, a service provider may charge $10 for every 100 Megabytes of user data transferred. Alternatively, some service providers may charge a flat rate for utilization up to a specified quota amount during a subscription period, and charge significantly more if the utilization exceeds the quota before the end of the period. Therefore, there remains a need in the art for devices and methods that address the problem of controlling costs associated with network access based on utilization.
Embodiments of the present invention and their advantages are best understood by referring to the detailed description that follows. It should be appreciated that like reference numerals are used to identify like elements illustrated in the figures.
Devices and methods are disclosed herein, in accordance with one or more embodiments of the present invention, that provide network utilization control for measuring, reporting, and limiting network traffic being sent or received over a network. The devices and methods may also be effective in controlling the cost of access to network services by intelligently limiting the flow of various types of network traffic under certain conditions.
Network 100 includes a first network device 102, such as a first personal computer (PC1) 102, which can be connected to a CPE router/gateway device (or apparatus) 104 through a first communications channel 106. Similarly, a second network device 108, such as a second personal computer (PC2) 108, can be connected to CPE 104 through a second communications channel 110. Finally, a third network device 112, such as an internet-capable game console (GC) 112, can be connected to CPE 104 through a second communications channel 114. First network device 102, CPE router 104, second network device 108, and third network device 112 comprise the elements of an exemplary cluster with communication interconnections that comprise a local area network (LAN) 116 at a first level of hierarchy.
At a second level of hierarchy, CPE 104 connects to the Internet 118 via communications channel 120 so that all network traffic to and from LAN 116 passes through CPE 104 and communications channel 120. In this manner, CPE 104 can be connected to a wide area network (WAN) 122, also called a broadband connection, at a higher level of hierarchy with a wider scope, in contrast with LAN 116 that has a comparatively narrow scope. The connections to and from Internet 118 are shown in abstract since other elements may be included such as modems, other routers or gateway devices, dynamic host configuration protocol (DHCP) servers, or other network devices at other hierarchical levels.
A first user 130 may operate PC1102 to gain access to Internet based services such as the sending or receiving of electronic mail (e-mail), accessing the World-Wide-Web (WWW), sending or receiving an instant message (IM), uploading or downloading a file using File Transfer Protocol (FTP), or exchanging data with other users in a peer-to-peer (P2P) network arrangement. Similarly, a second user 132 may operate PC2108 and a third user 134 may operate GC 112 in order to gain access to the described Internet-based services. Third user 134 may also use a hand-held wireless network device 136, such as a Personal Digital Assistant (PDA), in order to access services through a wireless connection 138 to a Wireless Access Point (WAP) within CPE 104.
Each network device node (102, 104, 108, 112, and 136) operating on network 100 has an Internet Protocol (IP) address that is unique for the particular scope of the device within the network. That is, each node at the same level of hierarchy must have a unique network address to transfer data packets between the various nodes without conflicts. When crossing a level of hierarchy, a network address translator (NAT) may be employed to translate between WAN network addresses and LAN network addresses, for example. For the purposes of this disclosure, communication channels (106, 110, 114, 120, 138, and others) can include wired or wireless connections so that digital message information may be exchanged according to a communications protocol such as the Internet Protocol (EP) on a switched packet network.
As described above, network connection 120 carries all network traffic to and from CPE 104 on WAN 122 and includes upstream (or upload) traffic 202 and downstream (or download) traffic 204. Upstream traffic 202 includes all message packets sent from CPE 104 onto WAN 122 in a direction from LAN 116 to WAN 122, while downstream traffic 204 includes all message packets received by CPE 104 from WAN 122 in a direction from WAN 122 to LAN 116. Using CPE 104 as the reference point, message packets sent from CPE 104 onto WAN 122 can be considered WAN upstream packets or upstream WAN traffic, while message packets received by CPE 104 from WAN 122 can be considered WAN downstream packets or downstream WAN traffic. These directions are arbitrary directional annotations, and the same packet traveling on the same communications channel may be considered upstream traffic or downstream traffic depending on the network device used as a reference point. Depending on the protocol, the upstream utilization may be typically larger than, smaller than, or equal to the downstream utilization. Typically, data transferred according to a WWW protocol will have a larger downstream utilization since a user operating a web-browser on a personal computer will typically enter a request for data, comprising very few message packets, followed by a response to the request that may include very many message packets, typically comprising a graphics-rich web-page that is then delivered to the user's web-browser application. Conversely, a web-server network device (not shown) will typically have the opposite utilization profile for the same protocol.
Similar to the description of network traffic on WAN 122, network traffic on LAN 116 includes traffic on communications channel 106 comprising upstream traffic 206 and downstream traffic 208. Traffic on communications channel 110 includes upstream traffic 210 and downstream traffic 212. Finally, traffic on communications channel 114 includes upstream traffic 214 and downstream traffic 216. The upstream and downstream directions may be inherited based on convention or based on the highest-flow communications channel for a particular network device. Assuming CPE 104 does not restrict the flow of any message packets, all received message packets will pass through CPE 104 and emerge as sent message packets. In this case, the LAN 116 utilization will be equal to the WAN utilization. Stated differently, the sum of the LAN 116 upstream network utilizations (206, 210, and 214) is equal to the WAN 122 upstream network utilization 202, and the sum of the LAN 116 downstream network utilizations (208, 212, and 216) is equal to the WAN 122 downstream utilization 204. However, if any packets are restricted, the utilizations will not be equal. In a practical system, some errors may cause a small number of packets to be erroneously sent or misrouted. Such error packets are not considered significant in this discussion.
A message packet typically has a defined format including a header portion and a payload portion. Each message packet has a packet size, or amount of data, comprising an amount of information being transported by the packet. This packet size can be measured in terms of bits (binary digits, one-by-one) or bytes (8-bits together). When a large number of packets are transferred over a communications channel, it is common to refer to the amount of data transferred, or network utilization, in terms of K-bytes (KB=210 bytes), or even Mega-bytes (MB=220 bytes). The header portion typically includes a destination address, a sender address, a protocol identifier that indicates the packet-type and governs the format of the payload, and other data that can be used to ensure packet/data transfer integrity. The payload portion can include a segment of actual message data such as a portion of an e-mail message being sent or received. The header information and packet format are described in a document published by the Internet Engineering Task Force (IETF), titled Request For Comments (RFC) 791 (IETF-RFC791).
The product of the packet size and a number of packets sent or received comprises the amount of data moved over the network, also called the network utilization for that packet. A sequence of larger message packets, where each packet contains relatively more data in the payload portion, will require more network utilization, or time on the network, for the same number of packets sent or received at a given data transfer rate. Conversely, a sequence of smaller packets, where each packet contains relatively less data in the payload portion, will require less network utilization to transport. Network utilization may be measured based on various levels of abstraction. The highest level of abstraction includes measuring utilization based on the raw number of message packets, independent of the size of the individual message packets. An intermediate level of abstraction measures utilization based on a fixed packet size where the utilization is the product of the fixed packet size and the number of packets. Finally, the lowest level of abstraction measures utilization based on computing the actual size of each message packet to produce the highest degree of accuracy in terms of the actual amount of data flowing over the network. Stated differently, where the packet size is not uniform, utilization may be determined by computing the actual size of the message packets. Utilization may be measured over a certain period of time to provide an amount of utilization per unit time, such as MB per month, or KB per hour, etc.
While the packet format remains similar, different types of data and different amounts of data may be transferred based on an application-layer protocol or other standard. Portions of the total network utilization can be measured based on different types of packets or different application-layer protocols. In reference to
Many service providers (SPs) charge their users (subscribers) based on a periodic utilization quota, or on a per MB basis. When a periodic utilization quota is included in a service agreement, some service providers may charge significant additional fees when the quota is exceeded. Thus, a user would benefit by using a router or gateway device that could measure utilization and control traffic being sent over the broadband connection in order to control network access costs. According to one embodiment, a router or gateway measures (counts up) the number of bytes (or other increment) of traffic being sent and received over its WAN port and reports the measurement result. The upload and download traffic could be measured separately or summed to provide a total network utilization amount. These numbers are important because some SPs only track download traffic while other SPs track all traffic sent or received over the broadband connection.
Once the utilization information is gathered through measuring, it can be presented or reported in various ways including a graphical or textual representation on a web-browser, electronic mail, and instant message formats in order to notify a user or other interested party such as a network systems administrator. Depending on the urgency of the reporting event as defined by the reporting actions, the generated report may be specified as immediate, periodic, or stored. An immediate report is generated right away and reported to the user through a rapid notification means including generating an e-mail, sending an instant message, or causing the generation of a flag or pop-up notification on a monitor, for example. A periodic report may be generated periodically based on the expiration of a predetermined time period and reported to the user through a less urgent notification process. Finally, an archive report may be generated and then stored away for retrieval at some later time on a non-urgent basis. A utilization report may be present in various formats, including:
The router could have the option for the user to include multiple conditions, such as the allowed traffic quota, percentage used in the current period, and a time period. For example, if the user is allocated 100 MB of broadband utilization every thirty days, this information can be incorporated in a measuring and reporting process. Further, a user could specify a threshold percentage or raw amount of utilization as a trigger for a reporting or a limiting event. For example, the user could specify a reporting action when the traffic approaches 90% of the utilization quota. In the above example of an allocation of 100 MB, the user would be notified when 90MB had been used. A notification can be specified based on the upload amount, download amount, or total amount in any combination. For example, a Boolean combination of reporting rules may be established that specify notification when the current total utilization amount is X % AND the upload amount is Y % of the total allocation. Detection of these conditions may indicate the download requests are high, possibly leading to an overflow of the download quota resulting in increased costs to the user.
When the above described system is implemented in a router or gateway device, the end user is capable of tracking and restricting network traffic in order to control costs. The restriction can be selective as well, being based on the type of application or service being used. This method could take advantage of a firewall incorporated in some routers or gateways. In one example, the router could separately measure the different types of packets by protocol and application instead of only the total packets. In this manner, CPE 104 can both display more detailed information to a user, and potentially limit certain types of traffic to control network access costs.
Processing unit 406 can be a suitably programmed microprocessor or microcomputer. Memory unit 408 stores and retrieves information under the control of processing unit 406. Memory unit 408 can include any device that is enabled to store and retrieve information including information related to network utilization such as measuring information 430, reporting information 432, limiting information 434, current utilization information 436, and historical utilization information 438. Memory unit 408 can be implemented as any combination of information storage and retrieval systems including a random access memory (RAM), a read only memory (ROM), a magnetic recording and reproducing device, an electrically alterable storage and retrieval device such as an electrically erasable programmable ROM (EEPROM), a mass data storage system, or a register file implemented with discrete components.
Measuring information 430 can include measuring rules and actions, where the measuring rules define specifically what network traffic is measured and under what conditions, while the measuring actions define how the traffic is measured. For example, some service providers only charge based on download utilization, so download utilization may be measured while upload utilization may not be measured. A measuring information rule could limit measurement to only download utilization, or to message packets received by CPE 104 from WAN 122. Alternatively, some types of network traffic may be measured as both upload utilization and download utilization, such as peer-to-peer (P2P) access, while other network traffic may be measured as only download utilization or only upload utilization. In yet another alternative, a measurement rule including no conditions may be implemented so that all traffic is measured through a specified network connection. Any combination of rules to measure network traffic may be implemented based on the quantity and type of traffic utilization consumed, including a pre-defined utilization quota, a certain message packet type or priority, a certain application-layer protocol, a packet direction, a particular network device or device type, a specific user account, or a network device address.
The time of the traffic flow, including a designation as peak usage time or an off-peak usage time, may be used in a measuring rule in order to measure traffic having these or other attributes. Because network congestion may be higher during some portions of a given period (mornings, evenings, weekends) a service provider may wish to charge a premium for utilization during these peak usage times in order to encourage users to utilize bandwidth during off-peak time. A service provider may wish to charge more per MB for particular types of network traffic flow during peak usage time, such as FTP or P2P traffic that may typically require larger bandwidth. Another measure of network utilization can be termed Quality of Service (QoS), which can reflect both priority and reliability of a particular connection or session. A connection with a high QoS may have a lower average network delay or a higher guaranteed average data transfer rate when compared with lower priority or lower reliability connections. In this manner, measuring actions can correspond to one or more measuring rules based on the quantity, quality, and time of the traffic flow. Hence, two clients who consume the same quantity of network utilization (e.g. 1 MB) may be charged differently depending on these other factors.
Similar to the measuring information 430, reporting information 432 can include reporting rules and actions where the reporting rules define specifically what network traffic is reported, while the reporting actions specify how the utilization is reported. For example, the traffic reporting information rules may include a threshold utilization amount that is some percentage of a predetermined utilization quota, while the traffic reporting information actions may specify a reporting action that will take place when the corresponding threshold is exceeded. Reporting the utilization can take many forms, as discussed in reference to the notification formats above. Reporting actions correspond to one or more reporting rules. A calendar application running on processing unit 406 may utilize system clock 410 to define the reporting period(s) and expiration, where multiple, overlapping reports may be generated under program direction.
Limiting information 434 can include limiting rules and actions where the limiting rules define acceptable or unacceptable network utilization, while the limiting actions specify how the network utilization is limited. Essentially, the limit actions correspond to where the current network utilization falls within the limit rules framework. For example, limiting information 434 can include an upload and download traffic quota, an overall traffic quota, and an individual quota for each of the various types of upload and download traffic. In one application, if limiting information 434 includes an overall utilization quota, and the actual utilization reaches a predetermined percentage of that utilization quota, then a limit action can be implemented that will block passage of predetermined types of network traffic in order to avoid exceeding the overall utilization quota. In this manner, a user may shape the utilization of different types of message packets based on a percentage of each application or protocol utilization quota for a predetermined period. Specifically, a limiting rule could disable FTP download traffic when the overall utilization amount is 90% of quota, or higher. In another example, measuring rules may indicate all traffic is measured, a reporting rule may specify reporting when utilization exceeds 80% of quota, while a limiting rule may specify limiting certain types of network traffic when utilization exceeds 95% of quota. In view of the above measuring, reporting, and limiting information, CPE 104 may selectively measure, report, and limit network traffic in order to monitor and control utilization.
Firewall unit 412 examines received packets and determines whether the packets should be allowed to proceed through CPE 104 based on stored firewall configuration information 450. A particular type of firewall, a Stateful Packet Inspection (SPI) may be used that analyzes packets in terms of a current transaction session, where all incoming connections are examined to determine if they are a legitimate or valid reply to a previous request from within the network. In this manner, the firewall can assume incoming packets are valid or legitimate because the connection itself is legitimate. Alternatively, all packets may be inspected to determine if they are a legitimate or valid reply. Returning to filtering packets based on valid connections, if the packets are deemed to be valid based on the current session, the valid packets are allowed to pass through the firewall. However, if the packets are not deemed valid, the invalid packets are blocked by the firewall. Processing unit 406 may use the capabilities of firewall unit 412 to limit packet transmission in order to carry out one or more limiting actions triggered by a limiting rule.
Some embodiments of CPE 104 may include Wireless Access Point (WAP) 414 and/or Terminal Adapter (TA) 416. Wireless access point (WAP) 414 provides wireless network access on LAN 116 for one or more wireless devices, such as hand-held wireless network device 136, a wireless laptop computer (not shown), or a wireless VoIP telephone (not shown). Terminal adapter 416 can be implemented as a part of CPE 104 or can be a stand-alone network device (not shown) having a data connection to CPE 104. When embodied as a telephone adapter, terminal adapter 416 can convert analog telephone signals to digital packets in a broadcasting mode and converts digital packets to analog telephone signals in a receiving mode in order to provide network access for an otherwise non-accessible service terminal (not shown). Various types of terminal adapters may be used to interface with other user devices. TA 416 may be used to interface with other non-network devices (not shown) such as a camera or a video monitor.
Because flow 500 relates to the measurement of traffic, the traffic measuring actions describe how to compute the network utilization. For example, a traffic measuring action may be to count up only the number of received packets. Alternatively, another traffic measuring action may be to multiply the number of received message packets with the size of each packet to determine the actual number of bits or bytes that were transferred with the received traffic. Once the traffic utilization amount is computed in operation 512, control moves to operation 514 where the result of the network utilization computation is accumulated into an appropriate utilization log, after which the traffic measuring flow returns to an idle state awaiting the detection of received traffic.
As discussed above, the reporting epoch may be generated based on the system clock 410, as shown in
In reference to
Reporting actions can include generating a report for storage in a report log, or generating an e-mail to a user or systems administrator indicating the current or past utilization information, for example. Alternatively, another traffic reporting action may be to copy the current utilization information 426 to historical utilization information 438 in order to preserve the utilization information for a given period. For example, current utilization information 436 may be copied to an archive file located on a mass data storage system (not shown) in order to archive the utilization information. A user could set the router to report when a particular type of traffic exceeds a predetermined threshold, such as when the e-mail traffic exceeds 1 MB. This threshold can be different for each different type of network traffic as discussed in reference to
In a further example, a traffic limiting action may be to block all network traffic of a particular type. Alternatively, another traffic limiting action may be to allow network traffic of a particular type to a particular user or communications channel on LAN 116. For example, a user could restrict P2P traffic to no more than 50 MB per month to ensure the P2P service account does not go over an established quota. Further, a systems administrator could restrict e-mail traffic to no more than 10 MB per user to ensure a user account is not used to forward SPAM e-mails. Finally, the router/gateway could monitor, report, and restrict traffic by user or device. This would let the end user set quotas for individual people or devices on LAN 116. For example, the user could restrict PC1102 to only 10 MB of P2P access per month, or limit any user of gaming console 112 to only 20 MB per month. Once all traffic limiting actions specified in operation 810 are completed, traffic limiting flow 800 returns to an idle state awaiting the detection of subsequently received traffic. Although there can be interaction between the measuring, reporting, and limiting operations, flows 500, 600, and 800 are essentially separate loops that can operate concurrently.
Although the invention has been described with respect to particular embodiments, this description is only an example of the invention's application and should not be taken as a limitation. Consequently, the scope of the invention is set forth in the following claims.