« PreviousContinue »
U.S. Patent Apr. ll, 2006 Sheet 4 of 5
MAP PER-HOP FORWARDING BEHAVIORS (PHBS) TO QUEUES
DETERMINE DRAIN SIZE AND QUEUE SIZE VALUES AND STORE IN
MAP PHBS TO THRESHOLDS AND DETERMINE THRESHOLD
DETERMINE PARAMETERS FOR FRAGMENTATION AND
METHOD AND APPARATUS FOR
MAINTAINING CONSISTENT PER-HOP
FORWARDING BEHAVIOR IN A NETWORK
USING NETWORK-WIDE PER-HOP
BEHAVIOR DEFINITIONS 5
This application is a continuation of and claims priority to U.S. patent application Ser. No. 09/753,034, filed on Dec. 10 28, 2000 now U.S. Pat. No. 6,839,327, entitled "METHOD AND APPARATUS FOR MAINTAINING CONSISTENT PER-HOP FORWARDING BEHAVIOR IN A NETWORK USING NETWORK-WIDE PER-HOP BEHAVIOR DEFINITIONS," naming as inventors Arthur Zavalkovsky, Nit- 15 san Elfassy, and Ron Cohen, which claims domestic priority from prior Provisional application Ser. No. 60/250,749, filed Dec. 01, 2000, entitled "METHOD AND APPARATUS FOR MAINTAINING CONSISTENT PER-HOP ROUTING BEHAVIOR IN A NETWORK USING NETWORK- 20 WIDE SERVICE DEFINITIONS," naming as inventors Arthur Zavalkovsky, Nitsan Elfassy, and Ron Cohen, the contents both of which are hereby incorporated by reference in their entirety for all purposes.
FIELD OF THE INVENTION
The present invention relates generally to computer networking. The invention relates more specifically to a method and apparatus for maintaining consistent per-hop packet 30 forwarding behavior in a network using network-wide perhop behavior definitions.
BACKGROUND OF THE INVENTION
A computer network typically comprises a plurality of interconnected entities that transmit ("source") or receive ("sink") data frames. A common type of computer network is a local area network ("LAN") that generally comprises a privately owned network within a single building or campus. 40 LANs employ a data communication protocol (LAN standard) such as Ethernet, FDDI, or Token Ring, that defines the functions performed by the data link and physical layers of a communications architecture (i.e., a protocol stack), such as the Open Systems Interconnection (OSI) Reference 45 Model. In many instances, multiple LANs may be interconnected by point-to-point links, microwave transceivers, satellite hookups, etc., to form a wide area network ("WAN"), metropolitan area network ("MAN") or Intranet. These internetworks may be coupled through one or more gate- 50 ways to the global, packet-switched internetwork generally known as the Internet or World Wide Web (WWW).
Each network entity preferably includes network communication software, which may operate in accordance with Transport Control Protocol/Internet Protocol (TCP/IP). 55 TCP/IP generally consists of a set of rules defining how entities interact with each other. In particular, TCP/IP defines a series of communication layers, including a transport layer and a network layer. At the transport layer, TCP/IP includes both the User Data Protocol (UDP), which is a connection- 60 less transport protocol, and TCP, which is a reliable, connection-oriented transport protocol. When a process at one network entity wishes to communicate with another entity, it formulates one or more messages and passes them to the upper layer of the TCP/IP communication stack. These 65 messages are passed down through each layer of the stack where they are encapsulated into packets and frames. Each
layer also adds information in the form of a header to the messages. The frames are then transmitted over the network links as bits. At the destination entity, the bits are reassembled and passed up the layers of the destination entity's communication stack. At each layer, the corresponding message headers are stripped off, thereby recovering the original message that is handed to the receiving process.
One or more intermediate network devices are often used to couple LANs together and allow the corresponding entities to exchange information. For example, a bridge may be used to provide a "bridging" function between two or more LANs. Alternatively, a switch may be utilized to provide a "switching" function for transferring information, such as data frames or packets, among entities of a computer network. Typically, the switch is a computer having a plurality of ports that couple the switch to several LANs and to other switches. The switching function includes receiving data frames at a source port and transferring them to at least one destination port for receipt by another entity. Switches may operate at various levels of the communication stack. For example, a switch may operate at Layer 2, which in the OSI Reference Model, is called the data link layer, and includes the Logical Link Control (LLC) and Media Access Control (MAC) sub-layers.
Other intermediate devices, commonly known as routers, may operate at higher communication layers, such as Layer 3, which in TCP/IP networks corresponds to the Internet Protocol (IP) layer. Conventionally, IP data packets include a corresponding header that contains an IP source address and an IP destination address. Routers or Layer 3 switches may re-assemble or convert received data frames from one LAN standard (e.g., Ethernet) to another (e.g., Token Ring). Thus, Layer 3 devices are often used to interconnect dissimilar subnetworks. Some Layer 3 intermediate network devices may also examine the transport layer headers of received messages to identify the corresponding TCP or UDP port numbers being utilized by the corresponding network entities. Many applications are assigned specific, fixed TCP and/or UDP port numbers in accordance with Request For Comments (RFC) 1700. For example, TCP/ UDP port number 80 corresponds to the Hypertext Transport Protocol (HTTP), while port number 21 corresponds to File Transfer Protocol (FTP) service.
A process executing at a network entity may generate hundreds or thousands of traffic flows that are transmitted across a network. Generally, a traffic flow is a set of messages (frames and/or packets) that typically correspond to a particular task, transaction or operation (e.g., a print transaction) and may be identified by various network and transport parameters, such as source and destination IP addresses, source and destination TCP/UDP port numbers, and transport protocol.
The treatments that are applied to different traffic flows may vary depending on the particular traffic flow at issue. For example, an online trading application may generate stock quote messages, stock transaction messages, transaction status messages, corporate financial information messages, print messages, data backup messages, etc. A network administrator may wish to apply a different policy or service treatment ("quality of service" or "QoS") to each traffic flow. In particular, the network administrator may want a stock quote message to be given higher priority than a print transaction. Similarly, a $1 million stock transaction message for a premium client should be assigned higher priority than a $100 stock transaction message for a standard customer.
Computer networks include numerous services and resources for use in moving traffic throughout the network. For example, different network links, such as Fast Ethernet, Asynchronous Transfer Mode (ATM) channels, network tunnels, satellite links, etc., offer unique speed and band- 5 width capabilities. Additionally, the intermediate devices also include specific resources or services, such as number of priority queues, filter settings, availability of different queue selection strategies, congestion control algorithms, etc. 10
Individual frames or packets can be marked so that intermediate devices may treat them in a predetermined manner. For example, the Institute of Electrical and Electronics Engineers (IEEE) describes additional information 15 for the MAC header of Data Link Layer frames in Appendix 802.lp to the 802.ID bridge standard.
A Differentiated Services (DS) model is under development by the Internet Differentiated Services Working Group of the Internet Engineering Task Force (IETF). IETF is 20 seeking to promote DS as the "right" approach for implementing scalable service differentiation in large networks. Network devices that implement DS are said to form a DS domain. Such devices may include routers and switches.
The DS model comprises a number of functional elements that are implemented in network nodes. These functional elements include a small set of per-hop forwarding behaviors (PHBs) that routers or switches may apply to packets, packet classification functions, and traffic conditioning func- 3Q tions, including metering, marking, shaping and policing functions. The DS architecture achieves scalability by implementing complex classification and conditioning functions only at network nodes located at network boundaries, and by applying specified per-hop behavior to aggregates of 35 traffic which have been appropriately marked using the DS field in the IP version 4 ("IPv4") or IPv6 headers. The PHBs are defined to permit a reasonably granular means of allocating buffer and bandwidth resources at each node among competing traffic streams. 40
Information about DS may be found in: D. Grossman, "New Terminology for Diffserv," draft-ietf-diffserv-newterms-02.txt, November, 1999; V. Jacobson et al., "An Expedited Forwarding PHB," RFC 2598, June 1998; F. Baker et al., "Management Information Base for the Differ- 45 entiated Services Architecture," draft-ietf-diffserv-mib02.txt, March, 2000; J. Heinanen et al., "Assured Forwarding PHB Group," RFC 2597, June, 1999; S. Blake et al., "An Architecture for Differentiated Services," RFC 2475, December, 1998; S. Brim et al., "Per Hop Behavior Identi- 50 fication Codes," RFC 2836, May 2000; "Differential Service for the Internet," available at the "diffserv.lcs.mit.edu" Web site; J. Wroclawski, "Applications, Flexibility, and Differential Services," May, 1998, available in the Web site document "internet2.edu/qos/may98Workshop/presenta- 55 tions/Wroclawski/sldOOl.htm"; A. Campbell, "Differential Services: Services and Mechanisms, Lecture 11," Jan. 13, 2000, available in the Web site document "comet.ctr.columbia.edu/distributed/lectures/lecturel l/sld001 .htm."
In general, the network administrator is responsible for 60 defining the QoS provided within a network. A network administrator cannot be expected to understand all of the details that are required to modify the schema for an appropriate per-hop-behavior configuration that is effective across the network. In the current DS model, there is no 65 simple way for an administrator to specify the relationship and interdependencies between the different PHBs that are
in effect in the DS domain. In particular, there is no simple way to allocate network resources to each PHB in a device independent way.
Based on the foregoing, there is a clear need for a mechanism that can enable a network administrator to define a network-wide specification of QoS PHBs deployed within a DS domain.
There is also a need for a mechanism will allow a network administrator to define the relationship and interdependencies between the different per-hop-behaviors within a DS domain.
There is also a need for a mechanism for providing consistent per-hop-behavior device configuration derived from the network-wide PHB specification thus ensuring end-to-end enforcement of the QoS PHBs.
The current DS approach does allow definition of relationships between the different PHBs within an AF PHB group, but it does not provide an easy way to define the relationship between resources allocated to the entire PHBs enforced on the domain. In particular, it does not provide a way to specify the relationship between the AF PHB groups and the relationship to the EF and BE PHBs or any userdefined PHB. In particular, there is a need for a way to guarantee minimal bandwidth and buffer resources to each PHB as well as to limit a PHB from exploiting more than its share in these resources.
There is also a need for a way to automatically generate device configuration parameters for the PHBs so that device behavior matches the definition of the PHB.
SUMMARY OF THE INVENTION
The foregoing needs, and other needs that will become apparent from the following description, are achieved in the present invention, which comprises, in certain embodiments, a method, apparatus, and computer-readable medium configured for maintaining consistent per-hop packet forwarding behavior among a plurality of network devices in a network within a Differentiated Services (DS) domain are disclosed.
In one aspect, a method involves creating and storing a network-wide service definition that associates a service with a DS code point (DSCP) value, and with a set of parameters that define the bandwidth and buffer resources allocated to the PHBs on all interfaces of network devices within the DS domain. A mapping of each of the PHBs in the network-wide PHB definition to one or more queues of the network devices is determined. Drain size and queue size values are determined for each of the queues to which PHBs are mapped. A mapping of each of the PHBs to a threshold value associated with the queues is determined. Parameters for fragmentation and interleave mechanisms are determined. Network device configuration parameter values based on the mappings, the drain size, and the queue size, etc. are sent to each of the network devices within the DS domain. As a result, consistent PHB is achieved throughout a network using abstract definitions of PHBs.
In one embodiment, a network-wide PHB table is defined, containing values of parameters that define properties of PHBs. These properties are mapped to detailed per-hopbehavior parameters.
Alternatively, the invention provides a schema that represents a set of quality of service PHBs, and a translation mechanism for converting representations of PHBs into parameters that specify the required per-hop-behaviors for supporting the PHBs in network devices such as routers and switches. The translation mechanism ensures that each
device applies the proper treatment to packets that are associated with a specified PHB. The translation mechanism may involve creating and storing queue scheduling mechanisms, configuring the scheduling mechanisms on each device, etc. 5
BRIEF DESCRIPTION OF THE DRAWINGS
The present invention is illustrated by way of example, and not by way of limitation, in the figures of the accom- io panying drawings and in which like reference numerals refer to similar elements and in which:
FIG. 1A is a simplified block diagram that conceptually illustrates aspects of an embodiment.
FIG. IB is a simplified block diagram providing an 15 alternative conceptual illustration of aspects of an embodiment.
FIG. 1C is a block diagram of a computer network in which certain embodiments of the invention may be used.
FIG. 2 is an example of a PHB set schema that may be 20 used to define a PHB set for a DS domain.
FIG. 3 is a block diagram of a process of determining configuration parameters for services.
FIG. 4 is a block diagram of a computer system with which an embodiment may be carried out. 25
DETAILED DESCRIPTION OF THE
A method and apparatus for maintaining consistent per- 30 hop packet forwarding behavior in a network using networkwide PHB definitions. In the following description, for the purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the present invention. It will be apparent, however, to one 35 skilled in the art that the present invention may be practiced without these specific details. In other instances, well-known structures and devices are shown in block diagram form in order to avoid unnecessarily obscuring the present invention. 40
Within a DS Domain, the network administrator needs to have the ability to choose the set of PHBs that the admin- 45 istrator intends to use and to modify or "tune" the different parameters for each PHB to achieve desired performance in the network. Because all PHBs defined within a DS domain are required to share the domain's bandwidth and buffer resources for each hop, tuning should be made on the PHB 50 set selected for the domain (that is, all PHBs defined for the domain), and not individually per each PHB.
In one embodiment, an abstract representation of a set of PHBs that includes a set of tuning parameters is used to define a network-wide service definition for maintaining 55 consistent per-hop-behaviors within a DS domain. In certain embodiments, the tuning parameters are defined such that they do not depend on the details of the individual QoS mechanisms that are implemented on each network device.
FIG. 1A is a simplified block diagram that conceptually 60 illustrates aspects of an embodiment. A network-wide PHB table 2 is defined, containing values of parameters that define properties of PHBs. As indicated by block 4, the properties are mapped to detailed per-hop-behavior parameters 6. Service table 2 provides a way to describe relation- 65 ships among PHB but not the means for configuring each device, which is carried out during the mapping.
FIG. IB is a simplified block diagram providing an alternative conceptual illustration of aspects of an embodiment. In this embodiment the invention provides a schema 8 that represents a set of quality of service PHBs 10, and a translation mechanism 14 for converting representations of PHBs into parameters 12 that specify the required per-hopbehaviors for supporting the PHBs in network devices such as routers and switches.
FIG. 1C is a block diagram of a computer network 100 in which certain embodiments of the invention may be used. Generally, computer network 100 includes one or more network devices 120, 122, 124, 126, a plurality of workstations 116, 118, a policy management station 102, and a network 128.
Network devices 120,122 represent edge network devices such as routers, switches, or other similar or equivalent devices that are configured for coloring packets within network 128. In one embodiment, network devices 120,122 are configured to execute the Cisco Internetworking Operating System (IOS) and are capable of marking packets with DSCP values, i.e., they are compatible with Differentiated Services. Such marking may be carried out using a marker or other software element or application that runs under control of IOS, e.g., an agent or process.
Network devices 124, 126 represent internal network devices ("core devices") such as routers, switches, or other similar or equivalent devices that are configured for forwarding packets within network 128 based the color of each packet. In certain embodiments, network devices 124, 126 are configured to execute the IOS and are compatible with Differentiated Services. Network devices 120, 122 and network devices 124, 126 may in fact represent similar or even identical device types and/or models that are each configured to perform a designated function within computer network 100.
Workstations 116, 118 may be personal computers, workstations, or other network end stations at which work is done, such as printers, scanners, facsimile machines, etc. In certain embodiments, workstations 116, 118 are network devices, such as bridges, gateways, routers or switches that allow computer network 100 to connect to another network system. For example, workstation 116 may be an edge device that is configured for coloring packet of a different DS domain. In certain embodiments, workstations 116, 118 execute one or more applications 112,114. Applications 112, 114 may represent a variety of different computer applications that execute on workstations 116, 118 respectively and which cause data to be sent and received over network 128.
Network 128 comprises any number of network devices. Network 128 may form part of a LAN or WAN. In one embodiment, network 128 is a packet-switched IP network configured as a DS domain whereby treatment of packets that flow through network 128 is controlled and managed by Policy Management Station 102 and network devices 120, 122, 124, 126. In this example, the DS domain includes network devices 120, 122, 124, 126.
Policy Management Station 102 is a computer, or a group of hardware or software components or processes that cooperate or execute in one or more computer systems. In this example, Policy Management Station 102 includes a policy coordinator 104 and one or more policy servers 106, 108,110, that are coupled to network devices 120,122, 124, 126. In one embodiment, policy coordinator 104 communicates with policy servers 106, 108, 110 to configure the