US20120075994A1 - Method and apparatus for managing aggregate bandwidth at a server - Google Patents

Method and apparatus for managing aggregate bandwidth at a server Download PDF

Info

Publication number
US20120075994A1
US20120075994A1 US13/309,655 US201113309655A US2012075994A1 US 20120075994 A1 US20120075994 A1 US 20120075994A1 US 201113309655 A US201113309655 A US 201113309655A US 2012075994 A1 US2012075994 A1 US 2012075994A1
Authority
US
United States
Prior art keywords
traffic
udp
packet
tcp connection
network path
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
US13/309,655
Inventor
Jeffrey Douglas Haggar
Lap Thiet Huynh
Maurice Isrel, Jr.
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Priority to US13/309,655 priority Critical patent/US20120075994A1/en
Publication of US20120075994A1 publication Critical patent/US20120075994A1/en
Abandoned legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/11Identifying congestion

Definitions

  • the present invention relates generally to an improved data processing system, and in particular to a method and apparatus for managing the flow of data in a network data processing system. Still more particularly, the present invention provides a method, apparatus, and computer implemented instructions for managing traffic for a set of network connections.
  • the Internet also referred to as an “internetwork”, is a set of computer networks, possibly dissimilar, joined together by means of gateways that handle data transfer and the conversion of messages from protocols of the sending network to the protocols used by the receiving network.
  • Internet refers to the collection of networks and gateways that use the TCP/IP suite of protocols.
  • the Internet has become a cultural fixture as a source of both information and entertainment. Many businesses are creating Internet sites as an integral part of their marketing efforts, informing consumers of the products or services offered by the business or providing other information seeking to engender brand loyalty. Many federal, state, and local government agencies are also employing Internet sites for informational purposes, particularly agencies, which must interact with virtually all segments of society such as the Internal Revenue Service and secretaries of state. Providing informational guides and/or searchable databases of online public records may reduce operating costs. Further, the Internet is becoming increasingly popular as a medium for commercial transactions.
  • HTML Hypertext Transfer Protocol
  • HTML Hypertext Markup Language
  • a URL is a special syntax identifier defining a communications path to specific information.
  • the URL provides a universal, consistent method for finding and accessing this information, not necessarily for the user, but mostly for the user's Web “browser”.
  • a browser is a program capable of submitting a request for information identified by an identifier, such as, for example, a URL.
  • a user may enter a domain name through a graphical user interface (GUI) for the browser to access a source of content.
  • the domain name is automatically converted to the Internet Protocol (IP) address by a domain name system (DNS), which is a service that translates the symbolic name entered by the user into an IP address by looking up the domain name in a database.
  • IP Internet Protocol
  • DNS domain name system
  • Transmission Control Protocol/Internet Protocol is a communications protocol that this the protocol of the Internet and has become the global standard for communications.
  • TCP provides transport functions, which ensures that the total amount of bytes sent is received correctly at the other end.
  • UDP which is part of the TCP/IP suite, is an alternate transport that does not guarantee delivery. It is widely used for real time voice and video transmissions where erroneous packets are not retransmitted.
  • TCP/IP is a routable protocol, and the IP part of TCP/IP provides the routing capability. In a routable protocol, all messages contain not only the address of the destination station, but the address of a destination network. This address allows TCP/IP messages to be sent to multiple networks within an organization or around the world.
  • User datagram protocol is a protocol within the TCP/IP protocol suite used in place of TCP when a reliable delivery is not required.
  • TCP or UDP traffic is generally policed at a server based on factors such as round trip time of data or packet loss. As a given network path becomes congested, the round trip time of the data goes up or packets are dropped by intermediate devices on that network path. In these cases, when the server detects this congestion, it will invoke some form of congestion control, limiting how much traffic is allowed across a given TCP or UDP association.
  • a TCP or UDP association is all traffic between one unique source and destination IP and port address pair. For example, IP1 port 1 to IP2 port 1 is one association. IP1 port 1 to IP3 port 1 would be another association. When this association is only for TCP traffic, this association is referred to as a TCP connection.
  • This congestion control uses limits such as congestion windows, which are windows that allow a certain amount of data to be sent before receiving an acknowledgment from the client. By lowering these limits, such as a TCP congestion window, less data is sent for that given TCP or UDP association. As each TCP or UDP association sends less data, round trip time should go down, less packets should be dropped by previously overloaded devices, and maximum throughput should be achieved for a given network path.
  • congestion windows are windows that allow a certain amount of data to be sent before receiving an acknowledgment from the client.
  • This congestion may not be detected until congestion reaches a state such that round trip time delay is detected or packets are already being dropped.
  • the network congestion may be such that only significant reductions in sending of data may relieve the congestion, and the traffic is thus subject to burstiness. If packets are being dropped by intermediate devices, then not only must the sending of data be reduced, but previously transmitted packets must be retransmitted, adding more traffic to send at a slower rate, and thus reducing true throughput even more.
  • reductions in congestion are generally on a per TCP or per UDP association. Thus, though only one or two of the associations may be causing the congestion, the round trip time delays and dropped packets will likely be detected for all associations. This situation causes congestion control to be invoked for associations that are sending far less data than those who may be truly congesting the network.
  • the present invention provides a method, apparatus, and computer implemented instructions for managing traffic in a network data processing system.
  • Traffic for a plurality of network paths is monitored.
  • a packet for a particular network path within the plurality of network paths causing traffic for the particular network path to exceed a level of traffic allowed, an amount of available bandwidth is reduced based on a fair share for the particular network path.
  • FIG. 1 is a pictorial representation of a network of data processing systems in which the present invention may be implemented
  • FIG. 2 is a block diagram of a data processing system that may be implemented as a server in accordance with a preferred embodiment of the present invention
  • FIG. 3 is a flowchart of a process used for tracking TCP connections in a network path in accordance with a preferred embodiment of the present invention
  • FIG. 4 is a flowchart of a process used for managing bandwidth for a network path in accordance with a preferred embodiment of the present invention
  • FIG. 5 is a flowchart of a process used for changing a congestion window size in accordance with a preferred embodiment of the present invention
  • FIG. 6 is a flowchart of a process used for setting a type of service in accordance with a preferred embodiment of the present invention.
  • FIG. 7 is a flowchart of a process used for indicating that UDP traffic for a network connection has been exceeded in accordance with a preferred embodiment of the present invention.
  • FIG. 8 is a flowchart of a process used for handling UDP data packets sent on network connections in accordance with a preferred embodiment of the present invention.
  • FIG. 1 depicts a pictorial representation of a network of data processing systems in which the present invention may be implemented.
  • Network data processing system 100 is a network of computers in which the present invention may be implemented.
  • Network data processing system 100 contains a network 102 , which is the medium used to provide communications links between various devices and computers connected together within network data processing system 100 .
  • Network 102 may include connections, such as wire, wireless communication links, or fiber optic cables.
  • server 104 is connected to network 102 along with storage unit 106 .
  • clients 108 , 110 , and 112 also are connected to network 102 .
  • These clients 108 , 110 , and 112 may be, for example, personal computers or network computers.
  • server 104 provides data, such as boot files, operating system images, and applications to clients 108 - 112 .
  • Clients 108 , 110 , and 112 are clients to server 104 .
  • Network data processing system 100 may include additional servers, clients, and other devices not shown.
  • network data processing system 100 is the Internet with network 102 representing a worldwide collection of networks and gateways that use the TCP/IP suite of protocols to communicate with one another.
  • network data processing system 100 also may be implemented as a number of different types of networks, such as for example, an intranet, a local area network (LAN), or a wide area network (WAN).
  • FIG. 1 is intended as an example, and not as an architectural limitation for the present invention.
  • Data processing system 200 may be a symmetric multiprocessor (SMP) system including a plurality of processors 202 and 204 connected to system bus 206 . Alternatively, a single processor system may be employed. Also connected to system bus 206 is memory controller/cache 208 , which provides an interface to local memory 209 . I/O bus bridge 210 is connected to system bus 206 and provides an interface to I/O bus 212 . Memory controller/cache 208 and I/O bus bridge 210 may be integrated as depicted.
  • SMP symmetric multiprocessor
  • Peripheral component interconnect (PCI) bus bridge 214 connected to I/O bus 212 provides an interface to PCI bus 216 .
  • PCI bus 216 A number of modems may be connected to PCI bus 216 .
  • Typical PCI bus implementations will support four PCI expansion slots or add-in connectors.
  • Communications links to network computers 108 - 112 in FIG. 1 may be provided through modem 218 and network adapter 220 connected to PCI bus 216 through add-in boards.
  • Additional PCI bus bridges 222 and 224 provide interfaces for additional PCI buses 226 and 228 , from which additional modems or network adapters may be supported. In this manner, data processing system 200 allows connections to multiple network computers.
  • a memory-mapped graphics adapter 230 and hard disk 232 may also be connected to I/O bus 212 as depicted, either directly or indirectly.
  • FIG. 2 may vary.
  • other peripheral devices such as optical disk drives and the like, also may be used in addition to or in place of the hardware depicted.
  • the depicted example is not meant to imply architectural limitations with respect to the present invention.
  • the data processing system depicted in FIG. 2 may be, for example, an IBM RISC/System 6000 system, a product of International Business Machines Corporation in Armonk, New York, running the Advanced Interactive Executive (AIX) operating system.
  • IBM RISC/System 6000 system a product of International Business Machines Corporation in Armonk, New York, running the Advanced Interactive Executive (AIX) operating system.
  • AIX Advanced Interactive Executive
  • the present invention provides an improved method, apparatus, and computer implemented instructions for managing traffic or bandwidth at a server.
  • This mechanism monitors bandwidth use for a group of connections through a network path within a network data processing system.
  • a network path is defined by parameters such as source and destination IP addresses, ports, interfaces used, protocol, sending application, and time of day. Of course, other parameters associated with a network path may be used.
  • the mechanism of the present invention monitors a level of allowed or maximum sustainable traffic.
  • a level of allowed or maximum sustainable traffic is monitored at the server for a given network path. Then, the server monitors all traffic passing through the network path against the allowed levels for that network path. If those levels are exceeded, the server may invoke congestion control immediately, rather than waiting to detect slower round trip times or detecting lost packets.
  • the server monitors aggregate bandwidth or traffic for a set of TCP connections or UDP associations through a network path. If a packet sent on one TCP connection causes the amount of traffic to exceed some level of traffic allowed for that network path, the amount of bandwidth for the TCP connection can be reduced if the traffic on that particular connection exceeds its fair share of the bandwidth, or the packet can be sent with a changed type of service (TOS) byte. If a packet sent for one UDP association causes the amount of traffic to exceed some level of traffic allowed for that network path, the UDP packet can be dropped, the packet can be sent with a changed TOS byte, or the sending application can be notified of the exceeding bandwidth.
  • TOS type of service
  • the fair share may be one-tenth of the traffic. If the packet sent on the TCP connection causes the traffic to be greater than one-tenth of the traffic allowed for the network path, then the traffic on the selected TCP connection is reduced. Otherwise, if the fair share has not been exceeded, the traffic may be reduced for other TCP connections other than the selected connection.
  • the mechanism of the present invention invokes congestion control before the network becomes congested and before packets are dropped.
  • maximum throughput is achieved without dropped packets and with less variability, such as less burstiness.
  • the congestion control is only invoked for any connection exceeding its fair share of the desired traffic level.
  • the sending application could be notified to invoke its own congestion control, or the type of service (TOS) byte in the IP header could be changed.
  • This byte is a field in an IP packet (IP datagram) that is used for quality of service (QoS).
  • QoS is the ability to define a level of performance in a data communications system. For example, ATM networks specify modes of service that ensure optimum performance for traffic such as real time voice and video.
  • the application may invoke Adaptive Rate Based Pacing slowdown immediately.
  • N represents a logical networking path.
  • N may be defined by parameters known by the server. These parameters also are ones that will not change dynamically without server knowledge. Examples of these parameters used to define a logical networking path are as follows:
  • IP address any traffic going to or from a given IP address or address range
  • IP port any traffic going to or from a given IP port or port range
  • protocol such as, but not limited to, TCP, UDP, RAW
  • interface any outbound traffic going through this server attached device
  • application any traffic coming from this particular application, which may be defined as the job name of the application and URL
  • application data e.g., type of traffic, interactive, and video streaming
  • time any traffic sent during a particular time frame with a granularity which may vary, such as from a second to a year).
  • L is a definition of the level of traffic allowed for a network path. L should be some level that allows the measuring of aggregate traffic through the networking path. An example would be the parameters of a leaky bucket algorithm, such as mean rate, peak rate, burst size, and maximum packet size.
  • the action required is represented as A. This action is the action required if the traffic through the network path exceeds L.
  • the action may vary for different protocols. For example, if the protocol is TCP, the congestion window size may be dropped or reduced, or the TOS may be changed. For other protocols, the action may include, informing the sending application to decrease its sending size, dropping the packet, or changing the TOS.
  • T represents the desired value of the outgoing TOS byte in the IP packet if traffic exceeds level L.
  • F is the fraction to cut the congestion window size for each TCP connection that must have its traffic rate reduced if traffic exceeds level L, and could be a number between 0 and 1. As an example, F might first be defined as 1 ⁇ 2 allowing the TCP connections needing rate reductions to only send as much data as their previous congestion window allowed. F can be varied depending on the network path. If 1 ⁇ 2caused too much reduction and the full bandwidth of the network path was therefore not being utilized, this number could be raised (3 ⁇ 4, etc.). If did not slow down traffic sufficiently on that network path, and packets were still being dropped, this number could be reduced (1 ⁇ 4, etc.). MinW is the minimum congestion window size for each TCP connection, while MaxW is the maximum congestion window size for each TCP connection.
  • FIGS. 3-8 illustrate different functions performed in monitoring bandwidth at a server.
  • FIG. 3 a flowchart of a process used for tracking TCP connections in a network path is depicted in accordance with a preferred embodiment of the present invention. This process is used to track TCP connections for each network path.
  • Step 300 begins with a determination as to whether a TCP connection is being setup through a defined network path (step 300 ).
  • Step 300 is done by determining if the path between the source and destination IP addresses of the TCP connection matches one of the defined network paths. For example, if the defined network path was all data flowing through network adapter x, and a TCP connection was established whose path flowed through network adapter x, then this connection would be considered through the defined network path.
  • the network path is associated with the TCP connection (step 302 ). This is hereafter called an associated network path.
  • a counter CTR is incremented (step 304 ) with the process terminating thereafter. This counter represents the number of TCP connections currently using the network path.
  • step 306 a determination is made as to whether a TCP connection is being torn down for the network path. If a TCP connection is being torn down, the counter CTR decrements (step 308 ) with the process terminating thereafter. Turning back to step 306 , if a TCP connection is not being torn down, the process terminates.
  • FIG. 4 a flowchart of a process used for managing bandwidth for a network path is depicted in accordance with a preferred embodiment of the present invention. This process is initiated each time a TCP packet is to be sent onto one of the network paths.
  • the process begins with a determination as to whether a TCP packet causes traffic level to be exceeded for a network path (step 400 ).
  • the traffic level is represented by the parameter L as described above. If the packet does cause the traffic level to be exceeded for the network path, then an action is performed with the associated network path (step 402 ) with the process terminating thereafter. Examples of different actions are illustrated in FIGS. 5-6 below. Otherwise, the packet is sent on the network path (step 404 ) and the process terminates.
  • FIG. 5 a flowchart of a process used for changing a congestion window size is depicted in accordance with a preferred embodiment of the present invention.
  • the process illustrated in FIG. 5 is an example of an action taken in step 402 in FIG. 4 .
  • the process begins by setting an indicator for TCP connection (step 500 ). Thereafter, the process waits for the next acknowledgment for the TCP connection (step 502 ). A determination is then made as to whether the current congestion window is locked (step 504 ).
  • step 506 a determination is made as to whether the current congestion window is greater than the fair share for this connection.
  • FIG. 6 a flowchart of a process used for setting a type of service is depicted in accordance with a preferred embodiment of the present invention.
  • the process illustrated in FIG. 6 is an example of an action that may be taken in step 402 in FIG. 4 and step 810 in FIG. 8 .
  • the process begins by setting a type of service for a packet (step 600 ). Next, the packet is sent to the destination on the network path (step 602 ) with the processing terminating thereafter.
  • FIG. 7 a flowchart of a process used for indicating that traffic for a UDP association has been exceeded is depicted in accordance with a preferred embodiment of the present invention.
  • the process illustrated in FIG. 7 is an example of an action that may be taken in step 810 in FIG. 8 .
  • the process begins by setting an indicator for sending an application on the server an indication that the traffic level allowed for an associated network path has been exceeded (step 700 ). Next, the packet is sent to the destination on the network (step 702 ) with the process terminating thereafter.
  • FIG. 8 a flowchart of a process used for handling UDP data packets sent over network paths are depicted in accordance with a preferred embodiment of the present invention.
  • the process begins by identifying a source IP address, destination IP address, port, and protocol for a current packet (step 800 ). Next, a determination is made as to whether the address, port, and protocol are the same as the previous packet (step 802 ). If the address, port, and protocol are the same as the previous packet, a determination is then made as to whether the previous packet had an associated network path (step 804 ). If the previous packet had an associated network path, that associated network path's allowed level of traffic is used to determine what action is required for this packet (step 806 ).
  • step 808 if the current packet does not cause the level of traffic allowed for the associated network path to be exceeded, the packet is then sent on the associated network path (step 812 ) and the process terminates.
  • step 804 if the previous packet had the same address, port, and protocol as this packet, but there was not an associated network path, this packet is sent without checking for any level of traffic being exceeded. This type of sending occurs because this packet is being sent on another network path that was not defined for policing and hence is not to be policed. Consequently, no association is made between the current packet and a network path (step 814 ), and the process terminates. With reference again to step 802 , if the address, port, and protocol are not the same as the previous packet, a determination is then made as to whether this packet will go through one of the defined network paths (step 816 ).
  • the source IP address, destination IP address, ports and protocol for the packet in association with the associated network path is saved (step 818 ).
  • the packet is then sent to step 808 as described above.
  • the packet is sent without checking for any level of traffic being exceeded. This type of sending occurs because this packet is being sent on another network path that was not defined for policing and hence is not to be policed. As a result, no association is made between the current packet and a network path, (step 820 ) and the process terminates.
  • the present invention provides an improved method, apparatus, and computer implemented instructions for managing bandwidth as a server.
  • the server is used to monitor aggregate bandwidth or traffic for a set of network paths. If a packet sent on one of these network paths causes the amount of traffic to exceed some level of traffic allowed for this set of network paths, the amount of bandwidth for the network path is reduced if the traffic on that particular network path exceeds its fair share of the bandwidth.

Abstract

A method, apparatus, and computer implemented instructions for managing traffic in a network data processing system. Traffic for a plurality of network paths is monitored. In response a packet for a particular network path within the plurality of network paths causing traffic for the particular network path to exceed a level of traffic allowed, an amount of available bandwidth is reduced based on a fair share for the particular network path.

Description

  • This application claims the benefit and is a continuation application of Application No. U.S. Ser. No. 12/466,054, filed, May 14, 2009, entitled METHOD AND APPARATUS FOR MANAGING AGGREGATE BANDWIDTH AT A SERVER, which claims the benefit and is a continuation application of Application No. U.S. Ser. No. 09/824,298, filed Apr. 2, 2001, entitled METHOD AND APPARATUS FOR MANAGING AGGREGATE BANDWIDTH AT A SERVER, by Haggar et al., the disclosures of which are incorporated herein by reference.
  • FIELD OF THE INVENTION
  • The present invention relates generally to an improved data processing system, and in particular to a method and apparatus for managing the flow of data in a network data processing system. Still more particularly, the present invention provides a method, apparatus, and computer implemented instructions for managing traffic for a set of network connections.
  • BACKGROUND OF THE INVENTION
  • The Internet, also referred to as an “internetwork”, is a set of computer networks, possibly dissimilar, joined together by means of gateways that handle data transfer and the conversion of messages from protocols of the sending network to the protocols used by the receiving network. When capitalized, the term “Internet” refers to the collection of networks and gateways that use the TCP/IP suite of protocols.
  • The Internet has become a cultural fixture as a source of both information and entertainment. Many businesses are creating Internet sites as an integral part of their marketing efforts, informing consumers of the products or services offered by the business or providing other information seeking to engender brand loyalty. Many federal, state, and local government agencies are also employing Internet sites for informational purposes, particularly agencies, which must interact with virtually all segments of society such as the Internal Revenue Service and secretaries of state. Providing informational guides and/or searchable databases of online public records may reduce operating costs. Further, the Internet is becoming increasingly popular as a medium for commercial transactions.
  • Currently, the most commonly employed method of transferring data over the Internet is to employ the World Wide Web environment, also called simply “the Web”. Other Internet resources exist for transferring information, such as File Transfer Protocol (FTP) and Gopher, but have not achieved the popularity of the Web. In the Web environment, servers and clients effect data transaction using the Hypertext Transfer Protocol (HTTP), a known protocol for handling the transfer of various data files (e.g., text, still graphic images, audio, motion video, etc.). The information in various data files is formatted for presentation to a user by a standard page description language, the Hypertext Markup Language (HTML). In addition to basic presentation formatting, HTML allows developers to specify “links” to other Web resources identified by a Uniform Resource Locator (URL). A URL is a special syntax identifier defining a communications path to specific information. Each logical block of information accessible to a client, called a “page” or a “Web page”, is identified by a URL. The URL provides a universal, consistent method for finding and accessing this information, not necessarily for the user, but mostly for the user's Web “browser”. A browser is a program capable of submitting a request for information identified by an identifier, such as, for example, a URL. A user may enter a domain name through a graphical user interface (GUI) for the browser to access a source of content. The domain name is automatically converted to the Internet Protocol (IP) address by a domain name system (DNS), which is a service that translates the symbolic name entered by the user into an IP address by looking up the domain name in a database.
  • Transmission Control Protocol/Internet Protocol (TCP/IP) is a communications protocol that this the protocol of the Internet and has become the global standard for communications. TCP provides transport functions, which ensures that the total amount of bytes sent is received correctly at the other end. UDP, which is part of the TCP/IP suite, is an alternate transport that does not guarantee delivery. It is widely used for real time voice and video transmissions where erroneous packets are not retransmitted. TCP/IP is a routable protocol, and the IP part of TCP/IP provides the routing capability. In a routable protocol, all messages contain not only the address of the destination station, but the address of a destination network. This address allows TCP/IP messages to be sent to multiple networks within an organization or around the world. User datagram protocol (UDP) is a protocol within the TCP/IP protocol suite used in place of TCP when a reliable delivery is not required.
  • TCP or UDP traffic is generally policed at a server based on factors such as round trip time of data or packet loss. As a given network path becomes congested, the round trip time of the data goes up or packets are dropped by intermediate devices on that network path. In these cases, when the server detects this congestion, it will invoke some form of congestion control, limiting how much traffic is allowed across a given TCP or UDP association. A TCP or UDP association is all traffic between one unique source and destination IP and port address pair. For example, IP1 port 1 to IP2 port 1 is one association. IP1 port 1 to IP3 port 1 would be another association. When this association is only for TCP traffic, this association is referred to as a TCP connection. When this association is only for UDP traffic, it is referred to as a UDP association. This congestion control uses limits such as congestion windows, which are windows that allow a certain amount of data to be sent before receiving an acknowledgment from the client. By lowering these limits, such as a TCP congestion window, less data is sent for that given TCP or UDP association. As each TCP or UDP association sends less data, round trip time should go down, less packets should be dropped by previously overloaded devices, and maximum throughput should be achieved for a given network path.
  • The problem is that this congestion may not be detected until congestion reaches a state such that round trip time delay is detected or packets are already being dropped. By the time the server detects this, the network congestion may be such that only significant reductions in sending of data may relieve the congestion, and the traffic is thus subject to burstiness. If packets are being dropped by intermediate devices, then not only must the sending of data be reduced, but previously transmitted packets must be retransmitted, adding more traffic to send at a slower rate, and thus reducing true throughput even more. Furthermore, reductions in congestion are generally on a per TCP or per UDP association. Thus, though only one or two of the associations may be causing the congestion, the round trip time delays and dropped packets will likely be detected for all associations. This situation causes congestion control to be invoked for associations that are sending far less data than those who may be truly congesting the network.
  • Therefore, it would be advantageous to have an improved method and apparatus for managing bandwidth use or traffic at a server for a set of network connections.
  • SUMMARY OF THE INVENTION
  • The present invention provides a method, apparatus, and computer implemented instructions for managing traffic in a network data processing system. Traffic for a plurality of network paths is monitored. In response a packet for a particular network path within the plurality of network paths causing traffic for the particular network path to exceed a level of traffic allowed, an amount of available bandwidth is reduced based on a fair share for the particular network path.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • The novel features believed characteristic of the invention are set forth in the appended claims. The invention itself, however, as well as a preferred mode of use, further objectives and advantages thereof, will best be understood by reference to the following detailed description of an illustrative embodiment when read in conjunction with the accompanying drawings, wherein:
  • FIG. 1 is a pictorial representation of a network of data processing systems in which the present invention may be implemented;
  • FIG. 2 is a block diagram of a data processing system that may be implemented as a server in accordance with a preferred embodiment of the present invention;
  • FIG. 3 is a flowchart of a process used for tracking TCP connections in a network path in accordance with a preferred embodiment of the present invention;
  • FIG. 4 is a flowchart of a process used for managing bandwidth for a network path in accordance with a preferred embodiment of the present invention;
  • FIG. 5 is a flowchart of a process used for changing a congestion window size in accordance with a preferred embodiment of the present invention;
  • FIG. 6 is a flowchart of a process used for setting a type of service in accordance with a preferred embodiment of the present invention;
  • FIG. 7 is a flowchart of a process used for indicating that UDP traffic for a network connection has been exceeded in accordance with a preferred embodiment of the present invention; and
  • FIG. 8 is a flowchart of a process used for handling UDP data packets sent on network connections in accordance with a preferred embodiment of the present invention.
  • DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT
  • With reference now to the figures, FIG. 1 depicts a pictorial representation of a network of data processing systems in which the present invention may be implemented. Network data processing system 100 is a network of computers in which the present invention may be implemented. Network data processing system 100 contains a network 102, which is the medium used to provide communications links between various devices and computers connected together within network data processing system 100. Network 102 may include connections, such as wire, wireless communication links, or fiber optic cables.
  • In the depicted example, server 104 is connected to network 102 along with storage unit 106. In addition, clients 108, 110, and 112 also are connected to network 102. These clients 108, 110, and 112 may be, for example, personal computers or network computers. In the depicted example, server 104 provides data, such as boot files, operating system images, and applications to clients 108-112. Clients 108, 110, and 112 are clients to server 104. Network data processing system 100 may include additional servers, clients, and other devices not shown. In the depicted example, network data processing system 100 is the Internet with network 102 representing a worldwide collection of networks and gateways that use the TCP/IP suite of protocols to communicate with one another. At the heart of the Internet is a backbone of high-speed data communication lines between major nodes or host computers, consisting of thousands of commercial, government, educational and other computer systems that route data and messages. Of course, network data processing system 100 also may be implemented as a number of different types of networks, such as for example, an intranet, a local area network (LAN), or a wide area network (WAN). FIG. 1 is intended as an example, and not as an architectural limitation for the present invention.
  • Referring to FIG. 2, a block diagram of a data processing system that may be implemented as a server, such as server 104 in FIG. 1, is depicted in accordance with a preferred embodiment of the present invention. Data processing system 200 may be a symmetric multiprocessor (SMP) system including a plurality of processors 202 and 204 connected to system bus 206. Alternatively, a single processor system may be employed. Also connected to system bus 206 is memory controller/cache 208, which provides an interface to local memory 209. I/O bus bridge 210 is connected to system bus 206 and provides an interface to I/O bus 212. Memory controller/cache 208 and I/O bus bridge 210 may be integrated as depicted.
  • Peripheral component interconnect (PCI) bus bridge 214 connected to I/O bus 212 provides an interface to PCI bus 216. A number of modems may be connected to PCI bus 216. Typical PCI bus implementations will support four PCI expansion slots or add-in connectors. Communications links to network computers 108-112 in FIG. 1 may be provided through modem 218 and network adapter 220 connected to PCI bus 216 through add-in boards.
  • Additional PCI bus bridges 222 and 224 provide interfaces for additional PCI buses 226 and 228, from which additional modems or network adapters may be supported. In this manner, data processing system 200 allows connections to multiple network computers. A memory-mapped graphics adapter 230 and hard disk 232 may also be connected to I/O bus 212 as depicted, either directly or indirectly.
  • Those of ordinary skill in the art will appreciate that the hardware depicted in FIG. 2 may vary. For example, other peripheral devices, such as optical disk drives and the like, also may be used in addition to or in place of the hardware depicted. The depicted example is not meant to imply architectural limitations with respect to the present invention.
  • The data processing system depicted in FIG. 2 may be, for example, an IBM RISC/System 6000 system, a product of International Business Machines Corporation in Armonk, New York, running the Advanced Interactive Executive (AIX) operating system.
  • The present invention provides an improved method, apparatus, and computer implemented instructions for managing traffic or bandwidth at a server. This mechanism monitors bandwidth use for a group of connections through a network path within a network data processing system. In these examples, a network path is defined by parameters such as source and destination IP addresses, ports, interfaces used, protocol, sending application, and time of day. Of course, other parameters associated with a network path may be used.
  • The mechanism of the present invention monitors a level of allowed or maximum sustainable traffic. A level of allowed or maximum sustainable traffic is monitored at the server for a given network path. Then, the server monitors all traffic passing through the network path against the allowed levels for that network path. If those levels are exceeded, the server may invoke congestion control immediately, rather than waiting to detect slower round trip times or detecting lost packets.
  • In particular, the server monitors aggregate bandwidth or traffic for a set of TCP connections or UDP associations through a network path. If a packet sent on one TCP connection causes the amount of traffic to exceed some level of traffic allowed for that network path, the amount of bandwidth for the TCP connection can be reduced if the traffic on that particular connection exceeds its fair share of the bandwidth, or the packet can be sent with a changed type of service (TOS) byte. If a packet sent for one UDP association causes the amount of traffic to exceed some level of traffic allowed for that network path, the UDP packet can be dropped, the packet can be sent with a changed TOS byte, or the sending application can be notified of the exceeding bandwidth.
  • For example, if ten active TCP connections are present and a packet on a selected network path exceeds bandwidth set or allocated for the network path, a determination is made as to whether the traffic on the selected TCP connection exceeds the fair share of traffic for the selected network path. In this example, the fair share may be one-tenth of the traffic. If the packet sent on the TCP connection causes the traffic to be greater than one-tenth of the traffic allowed for the network path, then the traffic on the selected TCP connection is reduced. Otherwise, if the fair share has not been exceeded, the traffic may be reduced for other TCP connections other than the selected connection.
  • In this manner, the mechanism of the present invention invokes congestion control before the network becomes congested and before packets are dropped. Thus, maximum throughput is achieved without dropped packets and with less variability, such as less burstiness. In these examples, for TCP the congestion control is only invoked for any connection exceeding its fair share of the desired traffic level. For UDP, either packets exceeding the defined level would be dropped, the sending application could be notified to invoke its own congestion control, or the type of service (TOS) byte in the IP header could be changed. This byte is a field in an IP packet (IP datagram) that is used for quality of service (QoS). QoS is the ability to define a level of performance in a data communications system. For example, ATM networks specify modes of service that ensure optimum performance for traffic such as real time voice and video. In response to receiving the indication, the application may invoke Adaptive Rate Based Pacing slowdown immediately.
  • In the depicted examples, the following are parameters defined at the server: N, L, A, T, F, MinW, and MaxW. N represents a logical networking path. N may be defined by parameters known by the server. These parameters also are ones that will not change dynamically without server knowledge. Examples of these parameters used to define a logical networking path are as follows:
  • (1) IP address (any traffic going to or from a given IP address or address range); (2) IP port (any traffic going to or from a given IP port or port range; (3) protocol (such as, but not limited to, TCP, UDP, RAW); (4) interface (any outbound traffic going through this server attached device); (5) application (any traffic coming from this particular application), which may be defined as the job name of the application and URL; (6) application data (e.g., type of traffic, interactive, and video streaming); and (7) time (any traffic sent during a particular time frame with a granularity which may vary, such as from a second to a year).
  • Multiple network paths may be defined to the server. For each network path, the following parameters are defined on the server. L is a definition of the level of traffic allowed for a network path. L should be some level that allows the measuring of aggregate traffic through the networking path. An example would be the parameters of a leaky bucket algorithm, such as mean rate, peak rate, burst size, and maximum packet size.
  • The action required is represented as A. This action is the action required if the traffic through the network path exceeds L. The action may vary for different protocols. For example, if the protocol is TCP, the congestion window size may be dropped or reduced, or the TOS may be changed. For other protocols, the action may include, informing the sending application to decrease its sending size, dropping the packet, or changing the TOS.
  • T represents the desired value of the outgoing TOS byte in the IP packet if traffic exceeds level L. F is the fraction to cut the congestion window size for each TCP connection that must have its traffic rate reduced if traffic exceeds level L, and could be a number between 0 and 1. As an example, F might first be defined as ½ allowing the TCP connections needing rate reductions to only send as much data as their previous congestion window allowed. F can be varied depending on the network path. If ½caused too much reduction and the full bandwidth of the network path was therefore not being utilized, this number could be raised (¾, etc.). If did not slow down traffic sufficiently on that network path, and packets were still being dropped, this number could be reduced (¼, etc.). MinW is the minimum congestion window size for each TCP connection, while MaxW is the maximum congestion window size for each TCP connection.
  • The flowcharts in FIGS. 3-8 illustrate different functions performed in monitoring bandwidth at a server. With reference now to FIG. 3, a flowchart of a process used for tracking TCP connections in a network path is depicted in accordance with a preferred embodiment of the present invention. This process is used to track TCP connections for each network path.
  • The process begins with a determination as to whether a TCP connection is being setup through a defined network path (step 300). Step 300 is done by determining if the path between the source and destination IP addresses of the TCP connection matches one of the defined network paths. For example, if the defined network path was all data flowing through network adapter x, and a TCP connection was established whose path flowed through network adapter x, then this connection would be considered through the defined network path. If the TCP connection is setup through the defined network path, the network path is associated with the TCP connection (step 302). This is hereafter called an associated network path. Next, a counter CTR is incremented (step 304) with the process terminating thereafter. This counter represents the number of TCP connections currently using the network path.
  • With reference again to step 300, if a TCP connection is not being setup through a network path, a determination is made as to whether a TCP connection is being torn down for the network path (step 306). If a TCP connection is being torn down, the counter CTR decrements (step 308) with the process terminating thereafter. Turning back to step 306, if a TCP connection is not being torn down, the process terminates.
  • Turning now to FIG. 4, a flowchart of a process used for managing bandwidth for a network path is depicted in accordance with a preferred embodiment of the present invention. This process is initiated each time a TCP packet is to be sent onto one of the network paths.
  • The process begins with a determination as to whether a TCP packet causes traffic level to be exceeded for a network path (step 400). In this example, the traffic level is represented by the parameter L as described above. If the packet does cause the traffic level to be exceeded for the network path, then an action is performed with the associated network path (step 402) with the process terminating thereafter. Examples of different actions are illustrated in FIGS. 5-6 below. Otherwise, the packet is sent on the network path (step 404) and the process terminates.
  • Turning next to FIG. 5, a flowchart of a process used for changing a congestion window size is depicted in accordance with a preferred embodiment of the present invention. The process illustrated in FIG. 5 is an example of an action taken in step 402 in FIG. 4.
  • The process begins by setting an indicator for TCP connection (step 500). Thereafter, the process waits for the next acknowledgment for the TCP connection (step 502). A determination is then made as to whether the current congestion window is locked (step 504).
  • If the current congestion window is not locked, a determination is made as to whether the current congestion window is greater than the fair share for this connection (step 506). The determination in step 506 may be made by determining whether the congestion window size, CW, is greater than L/CTR. If so, then a new congestion window is set (step 508) with the process terminating thereafter. In this example, the new congestion window may be set as follows: CW=max (MinW, min (CW*F,MaxW)). Otherwise, the process terminates. Turning back to step 504, if the current congestion window is locked, the process terminates.
  • With reference now to FIG. 6, a flowchart of a process used for setting a type of service is depicted in accordance with a preferred embodiment of the present invention. The process illustrated in FIG. 6 is an example of an action that may be taken in step 402 in FIG. 4 and step 810 in FIG. 8.
  • The process begins by setting a type of service for a packet (step 600). Next, the packet is sent to the destination on the network path (step 602) with the processing terminating thereafter.
  • Turning next to FIG. 7, a flowchart of a process used for indicating that traffic for a UDP association has been exceeded is depicted in accordance with a preferred embodiment of the present invention. The process illustrated in FIG. 7 is an example of an action that may be taken in step 810 in FIG. 8.
  • The process begins by setting an indicator for sending an application on the server an indication that the traffic level allowed for an associated network path has been exceeded (step 700). Next, the packet is sent to the destination on the network (step 702) with the process terminating thereafter.
  • Turning now to FIG. 8, a flowchart of a process used for handling UDP data packets sent over network paths are depicted in accordance with a preferred embodiment of the present invention.
  • The process begins by identifying a source IP address, destination IP address, port, and protocol for a current packet (step 800). Next, a determination is made as to whether the address, port, and protocol are the same as the previous packet (step 802). If the address, port, and protocol are the same as the previous packet, a determination is then made as to whether the previous packet had an associated network path (step 804). If the previous packet had an associated network path, that associated network path's allowed level of traffic is used to determine what action is required for this packet (step 806).
  • A determination is then made as to whether the current packet will cause the level of traffic allowed for the associated network path to be exceeded (step 808). If so, the action is performed (step 810) with the process terminating thereafter. Examples of different actions are illustrated in FIGS. 6 and 7 above. Of course, other actions may be taken. For example, the packet may be dropped in step 810 in FIG. 8.
  • Turning back to step 808, if the current packet does not cause the level of traffic allowed for the associated network path to be exceeded, the packet is then sent on the associated network path (step 812) and the process terminates.
  • Turning back to step 804, if the previous packet had the same address, port, and protocol as this packet, but there was not an associated network path, this packet is sent without checking for any level of traffic being exceeded. This type of sending occurs because this packet is being sent on another network path that was not defined for policing and hence is not to be policed. Consequently, no association is made between the current packet and a network path (step 814), and the process terminates. With reference again to step 802, if the address, port, and protocol are not the same as the previous packet, a determination is then made as to whether this packet will go through one of the defined network paths (step 816). If the packet is to go through one of the defined network paths, the source IP address, destination IP address, ports and protocol for the packet in association with the associated network path is saved (step 818). The packet is then sent to step 808 as described above. Turning back to step 816, if the packet does not go through one of the defined network paths, the packet is sent without checking for any level of traffic being exceeded. This type of sending occurs because this packet is being sent on another network path that was not defined for policing and hence is not to be policed. As a result, no association is made between the current packet and a network path, (step 820) and the process terminates.
  • Thus, the present invention provides an improved method, apparatus, and computer implemented instructions for managing bandwidth as a server. In particular, the server is used to monitor aggregate bandwidth or traffic for a set of network paths. If a packet sent on one of these network paths causes the amount of traffic to exceed some level of traffic allowed for this set of network paths, the amount of bandwidth for the network path is reduced if the traffic on that particular network path exceeds its fair share of the bandwidth.
  • It is important to note that while the present invention has been described in the context of a fully functioning data processing system, those of ordinary skill in the art will appreciate that the processes of the present invention are capable of being distributed in the form of a computer readable medium of instructions and a variety of forms and that the present invention applies equally regardless of the particular type of signal bearing media actually used to carry out the distribution. Examples of computer readable media include recordable-type media such a floppy disc, a hard disk drive, a RAM, CD-ROMs, and transmission-type media such as digital and analog communications links.
  • The description of the present invention has been presented for purposes of illustration and description, and is not intended to be exhaustive or limited to the invention in the form disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art. The embodiment was chosen and described in order to best explain the principles of the invention, the practical application, and to enable others of ordinary skill in the art to understand the invention for various embodiments with various modifications as are suited to the particular use contemplated.

Claims (19)

1. A method in a data processing system for managing traffic in a network data processing system, the method comprising:
monitoring at a server traffic for each of a plurality of TCP connections or UDP associations through a given network path; and
prior to sending a packet on a selected TCP connection or UDP association within the plurality of TCP connections and UDP associations, determining if the packet will cause the traffic for the network path to exceed a threshold and, if the packet will cause the traffic for the network path to exceed the threshold, further determining if the packet will cause the traffic for the selected TCP connection or UDP association to exceed its fair share amount of the network path and if so, reducing the traffic for the selected TCP connection or UDP association using an action based on a transmission protocol corresponding to the selected TCP connection or UDP association.
2. The method of claim 1, wherein the traffic comprises at least one of a data transfer rate, peak data transfer rate, burst size, and maximum packet size.
3. The method of claim 1, wherein the action comprises:
reducing a sending size for data packets.
4. The method of claim 1, wherein the threshold takes into account a fair share of bandwidth available for the plurality of TCP connections or UDP associations.
5. The method of claim 1, wherein said monitoring at a server comprises monitoring at a source the traffic for the plurality of TCP connections or UDP associations through a given network.
6. A computer program product for managing traffic in a network data processing system, the computer program product comprising:
a computer readable storage medium having computer usable program code embodied therein, the computer readable medium comprising:
computer usable program code configured to monitor an aggregate traffic amount at a server for each of a plurality of TCP connections or UDP associations through a given network path and, prior to sending a packet on a particular TCP connection or UDP association within the plurality of TCP connections or UDP associations, determining if the packet will cause the aggregate traffic amount for the network path to exceed a level of aggregate traffic allowed;
computer usable program code configured to reduce the traffic for one of the particular TCP connection or UDP association and another TCP connection or UDP association using an action based on a transmission protocol corresponding to the one TCP connection or UDP association in response to the packet for the particular TCP connection or UDP association within the plurality of TCP connections or UDP associations causing the aggregate traffic for the network path to exceed the level of aggregate traffic allowed, and
wherein when the one TCP connection or UDP connection comprises a TCP connection, the action comprises reducing a congestion window size by multiplying an amount of bandwidth available by a dynamic variable that is adjusted using changing requirements of the network path to reduce the amount of bandwidth available based on a fair share for the one TCP connection.
7. The computer program product of claim 6, wherein the aggregate traffic amount is monitored using at least one of a data transfer rate, peak data transfer rate, burst size, and maximum packet size.
8. The computer program product of claim 6, wherein the congestion window size is reduced as follows:

CW=max(MinW, min(CW*F,MaxW))
wherein CW is the congestion window size, Min W is a minimum congestion window size for the one TCP connection, Max W is a maximum congestion window size for the one TCP connection, and F is the dynamic variable.
9. The computer program product of claim 6, wherein the action comprises:
setting a quality of service for packets.
10. The computer program product of claim 6, wherein the action comprises:
dropping the packet.
11. A computer program product for managing traffic in a network data processing system, the computer program product comprising:
a computer readable storage medium having computer usable program code embodied therein, the computer usable program code comprising:
computer usable program code configured to monitor traffic at a server for each of a plurality of TCP connections or UDP associations through a given network path and, prior to sending a packet on a selected TCP connection or UDP association within the plurality of TCP connections or UDP associations, determine if the packet will cause the traffic for the network path to exceed a threshold;
computer usable program code configured to reduce the traffic for the selected TCP connection or UDP association using an action based on a transmission protocol corresponding to the selected TCP connection or UDP association if the packet will cause the traffic for the network path to exceed the threshold and if the packet will cause the traffic for the selected TCP connection or UDP association to exceed its fair share amount of the network path.
12. The computer program product of claim 11, wherein the traffic comprises at least one of a data transfer rate, peak data transfer rate, burst size, and maximum packet size.
13. The computer program product of claim 11, wherein the action comprises:
reducing a sending size for data packets.
14. The computer program product of claim 11, wherein the threshold takes into account a fair share of bandwidth available for the plurality of TCP connections or UDP associations.
15. The computer program product of claim 11, wherein said monitoring at a server comprises monitoring at a source the traffic for the plurality of TCP connections or UDP associations through a given network.
16. The computer program product of claim 11, wherein when the selected TCP connection or UDP association comprises a TCP connection, the action comprises:
reducing a congestion window size by multiplying an amount of bandwidth available by a dynamic variable that is adjusted using changing requirements of the network path to reduce the amount of bandwidth available based on a fair share for the one TCP connection.
17. The computer program product of claim 16, wherein the congestion window size is reduced as follows:

CW=max(MinW, min(CW*F,MaxW))
wherein CW is the congestion window size, Min W is a minimum congestion window size for the one TCP connection, Max W is a maximum congestion window size for the one TCP connection, and F is the dynamic variable.
18. The computer program product of claim 11, wherein the action comprises:
setting a quality of service for packets.
19. The computer program product of claim 11, wherein the action comprises:
dropping the packet.
US13/309,655 2001-04-02 2011-12-02 Method and apparatus for managing aggregate bandwidth at a server Abandoned US20120075994A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US13/309,655 US20120075994A1 (en) 2001-04-02 2011-12-02 Method and apparatus for managing aggregate bandwidth at a server

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/824,298 US7542419B2 (en) 2001-04-02 2001-04-02 Method and apparatus for managing aggregate bandwidth at a server
US12/466,054 US8130647B2 (en) 2001-04-02 2009-05-14 Method and apparatus for managing aggregate bandwidth at a server
US13/309,655 US20120075994A1 (en) 2001-04-02 2011-12-02 Method and apparatus for managing aggregate bandwidth at a server

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US12/466,054 Continuation US8130647B2 (en) 2001-04-02 2009-05-14 Method and apparatus for managing aggregate bandwidth at a server

Publications (1)

Publication Number Publication Date
US20120075994A1 true US20120075994A1 (en) 2012-03-29

Family

ID=25241055

Family Applications (3)

Application Number Title Priority Date Filing Date
US09/824,298 Expired - Fee Related US7542419B2 (en) 2001-04-02 2001-04-02 Method and apparatus for managing aggregate bandwidth at a server
US12/466,054 Expired - Fee Related US8130647B2 (en) 2001-04-02 2009-05-14 Method and apparatus for managing aggregate bandwidth at a server
US13/309,655 Abandoned US20120075994A1 (en) 2001-04-02 2011-12-02 Method and apparatus for managing aggregate bandwidth at a server

Family Applications Before (2)

Application Number Title Priority Date Filing Date
US09/824,298 Expired - Fee Related US7542419B2 (en) 2001-04-02 2001-04-02 Method and apparatus for managing aggregate bandwidth at a server
US12/466,054 Expired - Fee Related US8130647B2 (en) 2001-04-02 2009-05-14 Method and apparatus for managing aggregate bandwidth at a server

Country Status (1)

Country Link
US (3) US7542419B2 (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130167229A1 (en) * 2011-12-26 2013-06-27 Electronics And Telecommunications Research Institute Traffic managing device and method thereof
US20130254375A1 (en) * 2012-03-21 2013-09-26 Microsoft Corporation Achieving endpoint isolation by fairly sharing bandwidth
US9009305B1 (en) * 2012-08-23 2015-04-14 Amazon Technologies, Inc. Network host inference system
US20160198021A1 (en) * 2015-01-02 2016-07-07 Citrix Systems, Inc. Dynamic protocol switching
WO2022240064A1 (en) * 2021-05-13 2022-11-17 Samsung Electronics Co., Ltd. Method and system for channel quality assisted transport in wireless network

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7380272B2 (en) * 2000-05-17 2008-05-27 Deep Nines Incorporated System and method for detecting and eliminating IP spoofing in a data transmission network
US7542419B2 (en) * 2001-04-02 2009-06-02 International Business Machines Corporation Method and apparatus for managing aggregate bandwidth at a server
DE10133473C1 (en) * 2001-07-10 2003-02-20 Siemens Ag Process for the optimized use of SCTP (Stream Control Transmission Protocol) in MPLS (Multi Protocol Label Switching) networks
US6801964B1 (en) * 2001-10-25 2004-10-05 Novell, Inc. Methods and systems to fast fill media players
US7092357B1 (en) * 2001-11-13 2006-08-15 Verizon Services Corp. Anti-flooding flow-control methods and apparatus
US20040146006A1 (en) * 2003-01-24 2004-07-29 Jackson Daniel H. System and method for internal network data traffic control
EP1687940B1 (en) * 2003-10-10 2013-01-09 Thomson Licensing Prioritizing udp over tcp traffic by slowing down the tcp transmission rate
US7970878B1 (en) * 2005-11-16 2011-06-28 Cisco Technology, Inc. Method and apparatus for limiting domain name server transaction bandwidth
US8819208B2 (en) 2010-03-05 2014-08-26 Solidfire, Inc. Data deletion in a distributed data storage system
US8908518B1 (en) * 2010-05-20 2014-12-09 Arris Enterprises, Inc. Service class ID for multimedia streams over IP networks
US8964549B2 (en) * 2010-06-22 2015-02-24 Sierra Wireless, Inc. Method and apparatus for managing wireless communication based on network traffic level
US9319321B2 (en) * 2011-12-16 2016-04-19 Netflix, Inc. Web server constraint support
US9838269B2 (en) 2011-12-27 2017-12-05 Netapp, Inc. Proportional quality of service based on client usage and system metrics
US9054992B2 (en) 2011-12-27 2015-06-09 Solidfire, Inc. Quality of service policy sets
US9160697B2 (en) * 2012-01-01 2015-10-13 Qualcomm Incorporated Data delivery optimization
US20150244795A1 (en) 2014-02-21 2015-08-27 Solidfire, Inc. Data syncing in a distributed system
US9798728B2 (en) 2014-07-24 2017-10-24 Netapp, Inc. System performing data deduplication using a dense tree data structure
US10133511B2 (en) 2014-09-12 2018-11-20 Netapp, Inc Optimized segment cleaning technique
US9671960B2 (en) 2014-09-12 2017-06-06 Netapp, Inc. Rate matching technique for balancing segment cleaning and I/O workload
US9836229B2 (en) 2014-11-18 2017-12-05 Netapp, Inc. N-way merge technique for updating volume metadata in a storage I/O stack
US9720601B2 (en) 2015-02-11 2017-08-01 Netapp, Inc. Load balancing technique for a storage array
US9762460B2 (en) 2015-03-24 2017-09-12 Netapp, Inc. Providing continuous context for operational information of a storage system
US9710317B2 (en) 2015-03-30 2017-07-18 Netapp, Inc. Methods to identify, handle and recover from suspect SSDS in a clustered flash array
US9740566B2 (en) 2015-07-31 2017-08-22 Netapp, Inc. Snapshot creation workflow
US10929022B2 (en) 2016-04-25 2021-02-23 Netapp. Inc. Space savings reporting for storage system supporting snapshot and clones
US10642763B2 (en) 2016-09-20 2020-05-05 Netapp, Inc. Quality of service policy sets
US11902175B1 (en) * 2023-03-24 2024-02-13 International Business Machines Corporation Allocating bandwidth to communication paths used by nodes in a network

Citations (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5193151A (en) * 1989-08-30 1993-03-09 Digital Equipment Corporation Delay-based congestion avoidance in computer networks
US5668951A (en) * 1988-04-22 1997-09-16 Digital Equipment Corporation Avoiding congestion system for reducing traffic load on selected end systems which utilizing above their allocated fair shares to optimize throughput at intermediate node
US5802106A (en) * 1996-12-06 1998-09-01 Packeteer, Inc. Method for rapid data rate detection in a packet communication environment without data rate supervision
US5948069A (en) * 1995-07-19 1999-09-07 Hitachi, Ltd. Networking system and parallel networking method
US5995486A (en) * 1994-09-17 1999-11-30 International Business Machines Corporation Flow control method and apparatus for cell-based communication networks
US6092115A (en) * 1997-02-07 2000-07-18 Lucent Technologies Inc. Method for supporting per-connection queuing for feedback-controlled traffic
US6125397A (en) * 1997-06-03 2000-09-26 Fuji Xerox Co., Ltd. Data transfer apparatus and method using congestion recovery-type and congestion avoidance-type data transfers
US6178448B1 (en) * 1997-06-18 2001-01-23 International Business Machines Corporation Optimal link scheduling for multiple links by obtaining and utilizing link quality information
US6215769B1 (en) * 1998-10-07 2001-04-10 Nokia Telecommunications, Inc. Enhanced acknowledgment pacing device and method for TCP connections
US6233245B1 (en) * 1997-12-24 2001-05-15 Nortel Networks Limited Method and apparatus for management of bandwidth in a data communication network
US6252851B1 (en) * 1997-03-27 2001-06-26 Massachusetts Institute Of Technology Method for regulating TCP flow over heterogeneous networks
US20010032269A1 (en) * 2000-03-14 2001-10-18 Wilson Andrew W. Congestion control for internet protocol storage
US20020099854A1 (en) * 1998-07-10 2002-07-25 Jacob W. Jorgensen Transmission control protocol/internet protocol (tcp/ip) packet-centric wireless point to multi-point (ptmp) transmission system architecture
US6438603B1 (en) * 1999-04-30 2002-08-20 Microsoft Corporation Methods and protocol for simultaneous tuning of reliable and non-reliable channels of a single network communication link
US20030005144A1 (en) * 1998-10-28 2003-01-02 Robert Engel Efficient classification manipulation and control of network transmissions by associating network flows with rule based functions
US6560243B1 (en) * 1999-04-30 2003-05-06 Hewlett-Packard Development Company System and method for receiver based allocation of network bandwidth
US6594701B1 (en) * 1998-08-04 2003-07-15 Microsoft Corporation Credit-based methods and systems for controlling data flow between a sender and a receiver with reduced copying of data
US6628612B1 (en) * 1999-08-03 2003-09-30 Nortel Networks Limited Derivation of equivalent bandwidth of an information flow
US6654344B1 (en) * 1999-02-02 2003-11-25 Mentat Inc. Method and system for controlling data flow in an internet over satellite connection
US6665317B1 (en) * 1999-10-29 2003-12-16 Array Telecom Corporation Method, system, and computer program product for managing jitter
US6697378B1 (en) * 1998-10-16 2004-02-24 Cisco Technology, Inc. Method and apparatus for class based transmission control of data connections based on real-time external feedback estimates obtained using messaging from a wireless network
US6744767B1 (en) * 1999-12-30 2004-06-01 At&T Corp. Method and apparatus for provisioning and monitoring internet protocol quality of service
US6754228B1 (en) * 1998-03-31 2004-06-22 Telefonaktiebolaget Lm Ericsson (Publ) Method and device for data flow control
US6757255B1 (en) * 1998-07-28 2004-06-29 Fujitsu Limited Apparatus for and method of measuring communication performance
US6958997B1 (en) * 2000-07-05 2005-10-25 Cisco Technology, Inc. TCP fast recovery extended method and apparatus
US6973497B1 (en) * 2000-02-10 2005-12-06 Hughes Electronics Corporation Selective spoofer and method of performing selective spoofing
US6987741B2 (en) * 2000-04-14 2006-01-17 Hughes Electronics Corporation System and method for managing bandwidth in a two-way satellite system
US6990073B1 (en) * 2001-03-28 2006-01-24 Lsi Logic Corporation Data packet congestion management technique
US7035214B1 (en) * 1999-09-28 2006-04-25 Nortel Networks Limited System and method for a negative acknowledgement-based transmission control protocol
US7185082B1 (en) * 2000-08-09 2007-02-27 Microsoft Corporation Fast dynamic measurement of connection bandwidth using at least a pair of non-compressible packets having measurable characteristics
US7304948B1 (en) * 2000-12-29 2007-12-04 Nortel Networks Limited Congestion control for signalling transport protocols
US7369496B1 (en) * 1998-12-02 2008-05-06 Notel Networks Limited Flow control of frame based data over a synchronous digital network
US8169909B2 (en) * 2004-12-29 2012-05-01 Nokia Corporation Optimization of a transfer layer protocol connection
US8359405B1 (en) * 2000-02-28 2013-01-22 John Border Performance enhancing proxy and method for enhancing performance
US8379515B1 (en) * 2007-02-01 2013-02-19 F5 Networks, Inc. TCP throughput control by imposing temporal delay

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4771391A (en) * 1986-07-21 1988-09-13 International Business Machines Corporation Adaptive packet length traffic control in a local area network
US5748901A (en) * 1996-05-21 1998-05-05 Ramot University Authority Ltd. Flow control algorithm for high speed networks
US6205120B1 (en) * 1998-03-13 2001-03-20 Packeteer, Inc. Method for transparently determining and setting an optimal minimum required TCP window size
US6643292B2 (en) * 1998-04-28 2003-11-04 Nortel Networks Limited Efficient packet data transport mechanism and an interface therefor
US6628609B2 (en) * 1998-04-30 2003-09-30 Nortel Networks Limited Method and apparatus for simple IP-layer bandwidth allocation using ingress control of egress bandwidth
US6646987B1 (en) * 1998-10-05 2003-11-11 Nortel Networks Limited Method and system for transmission control protocol (TCP) packet loss recovery over a wireless link
US6820128B1 (en) * 1999-11-04 2004-11-16 Nortel Networks Limited Method and apparatus of processing packets having varying priorities by adjusting their drop functions according to a predefined fairness relationship
US7542419B2 (en) * 2001-04-02 2009-06-02 International Business Machines Corporation Method and apparatus for managing aggregate bandwidth at a server

Patent Citations (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5668951A (en) * 1988-04-22 1997-09-16 Digital Equipment Corporation Avoiding congestion system for reducing traffic load on selected end systems which utilizing above their allocated fair shares to optimize throughput at intermediate node
US5675742A (en) * 1988-04-22 1997-10-07 Digital Equipment Corporation System for setting congestion avoidance flag at intermediate node to reduce rates of transmission on selected end systems which utilizing above their allocated fair shares
US5193151A (en) * 1989-08-30 1993-03-09 Digital Equipment Corporation Delay-based congestion avoidance in computer networks
US5995486A (en) * 1994-09-17 1999-11-30 International Business Machines Corporation Flow control method and apparatus for cell-based communication networks
US5948069A (en) * 1995-07-19 1999-09-07 Hitachi, Ltd. Networking system and parallel networking method
US5802106A (en) * 1996-12-06 1998-09-01 Packeteer, Inc. Method for rapid data rate detection in a packet communication environment without data rate supervision
US6092115A (en) * 1997-02-07 2000-07-18 Lucent Technologies Inc. Method for supporting per-connection queuing for feedback-controlled traffic
US6252851B1 (en) * 1997-03-27 2001-06-26 Massachusetts Institute Of Technology Method for regulating TCP flow over heterogeneous networks
US6125397A (en) * 1997-06-03 2000-09-26 Fuji Xerox Co., Ltd. Data transfer apparatus and method using congestion recovery-type and congestion avoidance-type data transfers
US6178448B1 (en) * 1997-06-18 2001-01-23 International Business Machines Corporation Optimal link scheduling for multiple links by obtaining and utilizing link quality information
US6862618B1 (en) * 1997-06-18 2005-03-01 International Business Machines Corporation Optimal link scheduling for multiple links
US6233245B1 (en) * 1997-12-24 2001-05-15 Nortel Networks Limited Method and apparatus for management of bandwidth in a data communication network
US6754228B1 (en) * 1998-03-31 2004-06-22 Telefonaktiebolaget Lm Ericsson (Publ) Method and device for data flow control
US20020099854A1 (en) * 1998-07-10 2002-07-25 Jacob W. Jorgensen Transmission control protocol/internet protocol (tcp/ip) packet-centric wireless point to multi-point (ptmp) transmission system architecture
US6757255B1 (en) * 1998-07-28 2004-06-29 Fujitsu Limited Apparatus for and method of measuring communication performance
US6594701B1 (en) * 1998-08-04 2003-07-15 Microsoft Corporation Credit-based methods and systems for controlling data flow between a sender and a receiver with reduced copying of data
US6215769B1 (en) * 1998-10-07 2001-04-10 Nokia Telecommunications, Inc. Enhanced acknowledgment pacing device and method for TCP connections
US6697378B1 (en) * 1998-10-16 2004-02-24 Cisco Technology, Inc. Method and apparatus for class based transmission control of data connections based on real-time external feedback estimates obtained using messaging from a wireless network
US20030005144A1 (en) * 1998-10-28 2003-01-02 Robert Engel Efficient classification manipulation and control of network transmissions by associating network flows with rule based functions
US7369496B1 (en) * 1998-12-02 2008-05-06 Notel Networks Limited Flow control of frame based data over a synchronous digital network
US6654344B1 (en) * 1999-02-02 2003-11-25 Mentat Inc. Method and system for controlling data flow in an internet over satellite connection
US6438603B1 (en) * 1999-04-30 2002-08-20 Microsoft Corporation Methods and protocol for simultaneous tuning of reliable and non-reliable channels of a single network communication link
US6560243B1 (en) * 1999-04-30 2003-05-06 Hewlett-Packard Development Company System and method for receiver based allocation of network bandwidth
US6628612B1 (en) * 1999-08-03 2003-09-30 Nortel Networks Limited Derivation of equivalent bandwidth of an information flow
US7035214B1 (en) * 1999-09-28 2006-04-25 Nortel Networks Limited System and method for a negative acknowledgement-based transmission control protocol
US6665317B1 (en) * 1999-10-29 2003-12-16 Array Telecom Corporation Method, system, and computer program product for managing jitter
US6744767B1 (en) * 1999-12-30 2004-06-01 At&T Corp. Method and apparatus for provisioning and monitoring internet protocol quality of service
US6973497B1 (en) * 2000-02-10 2005-12-06 Hughes Electronics Corporation Selective spoofer and method of performing selective spoofing
US8359405B1 (en) * 2000-02-28 2013-01-22 John Border Performance enhancing proxy and method for enhancing performance
US20010032269A1 (en) * 2000-03-14 2001-10-18 Wilson Andrew W. Congestion control for internet protocol storage
US6987741B2 (en) * 2000-04-14 2006-01-17 Hughes Electronics Corporation System and method for managing bandwidth in a two-way satellite system
US6958997B1 (en) * 2000-07-05 2005-10-25 Cisco Technology, Inc. TCP fast recovery extended method and apparatus
US7185082B1 (en) * 2000-08-09 2007-02-27 Microsoft Corporation Fast dynamic measurement of connection bandwidth using at least a pair of non-compressible packets having measurable characteristics
US7304948B1 (en) * 2000-12-29 2007-12-04 Nortel Networks Limited Congestion control for signalling transport protocols
US6990073B1 (en) * 2001-03-28 2006-01-24 Lsi Logic Corporation Data packet congestion management technique
US8169909B2 (en) * 2004-12-29 2012-05-01 Nokia Corporation Optimization of a transfer layer protocol connection
US8379515B1 (en) * 2007-02-01 2013-02-19 F5 Networks, Inc. TCP throughput control by imposing temporal delay

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130167229A1 (en) * 2011-12-26 2013-06-27 Electronics And Telecommunications Research Institute Traffic managing device and method thereof
US20130254375A1 (en) * 2012-03-21 2013-09-26 Microsoft Corporation Achieving endpoint isolation by fairly sharing bandwidth
US8898295B2 (en) * 2012-03-21 2014-11-25 Microsoft Corporation Achieving endpoint isolation by fairly sharing bandwidth
US9009305B1 (en) * 2012-08-23 2015-04-14 Amazon Technologies, Inc. Network host inference system
US20160198021A1 (en) * 2015-01-02 2016-07-07 Citrix Systems, Inc. Dynamic protocol switching
WO2022240064A1 (en) * 2021-05-13 2022-11-17 Samsung Electronics Co., Ltd. Method and system for channel quality assisted transport in wireless network

Also Published As

Publication number Publication date
US20090225657A1 (en) 2009-09-10
US7542419B2 (en) 2009-06-02
US20020141341A1 (en) 2002-10-03
US8130647B2 (en) 2012-03-06

Similar Documents

Publication Publication Date Title
US8130647B2 (en) Method and apparatus for managing aggregate bandwidth at a server
US6215774B1 (en) System for dynamically determining effective speed of a communication link
US7747662B2 (en) Service aware network caching
CA2301435C (en) Method for reducing congestion in packet-switched networks
US6182125B1 (en) Methods for determining sendable information content based on a determined network latency
US6205120B1 (en) Method for transparently determining and setting an optimal minimum required TCP window size
US6341309B1 (en) Firewall system for quality of service management
US7120662B2 (en) Conductor gateway prioritization parameters
US6119235A (en) Method and apparatus for quality of service management
Eggert et al. Effects of ensemble-TCP
US7437428B1 (en) System and method for transferring data over a network
US7421515B2 (en) Method and system for communications network
CA2296937C (en) Method and system for redirecting web page requests on a tcp/ip network
US6968358B2 (en) Method and apparatus for network communication card memory management
US20030217130A1 (en) System and method for collecting desired information for network transactions at the kernel level
EP2232791B1 (en) Tcp packet spacing
JP2002500469A (en) Traffic monitoring tool for bandwidth management
Mogul et al. Rethinking the TCP Nagle algorithm
Savage et al. The case for informed transport protocols
US7730202B1 (en) Dynamic interrupt timer
EP1256212B1 (en) System and method for transferring data over a network
Tsugawa et al. Background TCP data transfer with inline network measurement
US6446222B1 (en) System for and method of sending network problem information along a communication path
US7050393B2 (en) Method, system, and product for alleviating router congestion
Feng et al. Automatic flow-control adaptation for enhancing network performance in computational grids

Legal Events

Date Code Title Description
STCB Information on status: application discontinuation

Free format text: ABANDONED -- AFTER EXAMINER'S ANSWER OR BOARD OF APPEALS DECISION