MULTIPLE SERVICE SUBFLOWS WITHIN A CABLE MODEM SERVICE FLOW

Abstract: A method for subdividing a primary network data flow into a plurality of subflows is disclosed. Each of the subflows is assigned a unique class of service or priority value. Tokens are allocated from the primary flow to each of the subflows to regulate the transmission of data over the network in such a way that the highest priority packets receive a higher transmission priority.

Description: MULTIPLE SERVICE SUBFLOWS WITHIN A CABLE MODEM SERVICE FLOW 5 FIELD OF THE INVENTION The present invention relates generally to communications systems and, in particular, to a communications system in which a class of service data flow is subdivided into multiple subflows. i o BACKGROUND OF THE INVENTION Internet access via a telephone modem is available today at speeds up to 56 Kbps. The telephone-based modem modulates and demodulates data signals for transmission over the voice band telephony network. By contrast, a cable modem provides access to the Internet or other external networks via the cable television system, is which offers a higher bandwidth and therefore operates at higher data rates than the telephone system. The cable modem provides connectivity between the user's computer or other communications device and the cable system headend, from which access is available to the external networks, via, for example a Tl transmission line. In a cable network, data transmitted from the network headend to the user or subscriber is referred 0 to as downstream data; data transmitted from the user to the network headend is referred to as upstream data. An exemplary prior art two-way cable system is illustrated in block diagram form in FIG. 1. The prior art cable system includes headend equipment 101, a hybrid fiber coaxial (HFC) cable plant 103, a plurality of cable modems 105 and 106 (two 25 shown), and a corresponding plurality of subscriber communications devices 107, 108 (two shown) coupled to the cable modems 105 and 106 via corresponding communication links 116 and 117. The subscriber communications devices 107 and 108 can include, for example, a computer, a television, or a telephone. As is well known to those skilled in the art, the headend equipment 101 includes processors, 30 routers, switches, a broadband downstream transmitter, upstream receivers, splitters, combiners, subscriber databases, network management stations, dynamic host configuration protocol (DHCP) and trivial file transfer protocol (TFTP) servers, call agents, media gateways, and billing systems . The HFC cable plant 103 includes fiber optic cables, coaxial cables, fiber/coax nodes, amplifiers, filters, and taps, which support transmissions from the headend equipment 101 to the cable modems 105 and 106 over a shared downstream channel 110 and transmissions from the cable modems 105 and 106 to the headend equipment 101 over a shared upstream channel 112. Program signals are input to the headend equipment 101 for broadcast to the subscribers via the HFC cable plant 103. The downstream channel 110 and the upstream channel 112 utilize a respective transmission protocol to communicate information. Typically, the modulation scheme used to convey information over the downstream channel 110 (e.g., 64-ary quadrature amplitude modulation (QAM)) is a higher order than the modulation used to convey information over the upstream channel 112 (e.g., differential quaternary phase shift keying (DQPSK) or 16-ary QAM), resulting in higher speed downstream transmissions than upstream transmissions. Cable systems in which upstream transmission speeds are less than downstream transmission speeds are typically referred to as "asymmetric" systems. Cable systems in which upstream transmission speeds are substantially equivalent to downstream transmission speeds are typically referred to as "symmetric" systems. In addition to the particular type of modulation used on each channel 110 and 112, the shared nature of each channel 110 and 112 introduces other protocol requirements. For example, since the downstream channel 110 is shared, the downstream protocol includes addressing information and each cable modem 105 and 106 monitors the downstream channel 110 for information packets addressed to it. Only information packets addressed to a particular cable modem 105 or 106 (or the attached communication devices 107 or 108 or addressed to all cable modems 105 or 106 (or the attached communication devices 107 and 108) (e.g., broadcast messages) are processed by the cable modem 105 and 106 and forwarded to the associated subscriber communication device 107 and 108 as appropriate (e.g., telephone, personal computer, or other terminating device). Since the upstream channel 112 is shared, an upstream channel access protocol is used to reduce the likelihood of collisions of communicated information emanating from the cable modems 105 and 106. A number of multiple access protocols exist to define upstream channel access, including well-known protocols such as ALOHA, slotted-ALOHA, code division multiple access (CDMA), time division multiple access (TDMA), TDMA-with collision detect, and carrier sense multiple access (CSMA). Some two-way cable systems abide by and use the upstream and downstream channel protocols defined in the recently-published Data-Over-Cable System interface Specification (DOCSIS) Version 1.0, which specification is incorporated by this reference as if fully set forth herein. The upstream protocol defined by the DOCSIS standard is a TDMA approach in which timing is controlled by the headend equipment 101 (referred to as the "cable modem termination station" (CMTS) in the DOCSIS standard) and communicated to the cable modems 105 and 106 via time stamped synchronization messages transmitted over the downstream channel 110. Thus, in order for upstream communication to occur in an orderly, high quality manner, a time reference in each cable modem 105, 106 must be substantially synchronized with a similar time reference in the headend equipment 101 before the modems 105 and 106 begin transmitting information provided by the subscriber communication device 107 and 108; otherwise, a transmission from one modem 105 may collide with a transmission from another modem 106. The headend equipment 101 is typically coupled via an appropriate communications link 119, such as a fiber distributed data interface (FDDI) link or a 100 baseT Ethernet link, to an external network 114, such as the public switched telephone network (PSTN) or a wide area packetized network, such as the Internet. Thus, the two-way cable system provides communication connectivity between the subscriber communication devices 107 and 108 and other similar devices not shown in Figure 1, and internet servers, computer networks, and so forth as represented by the external network 114. The headend equipment 101 also receives program signals (via a satellite downlink, terrestrial microwave or landlines) for broadcast to the subscribers. The subscriber data is carried over a 6 MHz channel which is the spectrum size allocated to a cable television channel for broadcasting television signals to all subscribers. At the subscriber's location, the program signal is received by the set top box (See Figure 2) while the downstream data is separately received by the cable modem 105 or 106. The number of upstream and downstream channels in a given cable modem system is engineered based on the service area, the number of users, the data rate promised to each user and the available spectrum. Figure 2 is a block diagram of the cable system components at a subscriber's or user's site, as related to the communication device 108. At the subscriber's premises, a splitter 134 splits the incoming signal from the cable system headend 101. The television program signal is displayed on a television 140 under control of a set top box 138. The second output from the splitter 134 provides connectivity to the cable modem 105. Downstream signals from the headend equipment 101 are provided to an RF (radio frequency) tuner 142, which is tuned to a frequency band allocated to the cable modem 105 during the modem's start-up or configuration phase. As mentioned above, typically, the downstream channel uses quadrature amplitude modulation (QAM), which is demodulated in a demodulator 144. The demodulated signal is input to a media access controller 146. The baseband data signal from the media access controller 146 is input to a data and control logic unit 148 that controls overall operation of the cable modem 105 and further provides data control functions. The communication device 108 is connected to the data and control logic unit 148 of the cable modem 105 for receiving data sent in the downstream direction and sending data in the upstream direction. Upstream data passes from the communication device 108 through the data and control logic unit 148, the media access controller 146 and finally to a modulator 150 for modulation. Typically, either differential quaternary phase shift keying (DQPSK) or 16-ary QAM modulation is employed for the upstream data. The choice of modulation type is set forth in the configuration information provided to each cable 105. The upstream data passes through the splitter 134 for transmission to the headend 101 via the hybrid fiber/coaxial cable plant 103. Eventually, the data reaches the external network 114, as discussed in conjunction with Figure 1. In one embodiment, the downstream channel employs 64 or 256 QAM modulation capable of delivering up to 30 to 40 Mbps of data on a 6 MHz cable channel. The upstream channel uses either QPSK or 16 QAM signaling with data rates available from 320 Kbps to 10 Mbps. Both the upstream and downstream data rates are configured by the system operator. For instance, the cable modem 105 utilized by a business user could be configured to receive and transmit information at relatively high data rates in both directions. A residential user, on the other hand, may have a cable modem 105 configured with wider bandwidth access (and therefore a higher data rate) in the downstream direction for receiving data from the external network 114, while limited to a lower speed for upstream data transmissions. In yet another embodiment, data rate assignments can be time-of-day-sensitive. It should be emphasized, however, that a cable modem operates at a given symbol rate (or data rate) using a prescribed modulation type. The priority of individual data packets does not effect the configured upstream data rate or bandwidth. All modems transmitting on the upstream channel use the same symbol rate and modulation type. However, the actual amount of bandwidth used by the cable modem may be limited by software controlling the modem. As mentioned above, a business user may configured to use 2 Mbps in the upstream direction, while a residential user is limited to 1 Mbps. But, the cable modems supporting the business and residential users are capable of operating at the highest system rate, for example 10 Mbps. The priority of individual data packets does not effect the configured symbol rate and modulation type. When the cable modem 105 or 107 is powered-up, a connection is created to the headend equipment 101 via the hybrid fiber/coaxial cable plant 103. This connection employs the Internet protocol (IP) so that data from the Internet and Worldwide Web (referred to generally as the external network 114) in IP format as received by the headend equipment 101 can be forwarded downstream to the cable modem 105 or 106. During the cable modem initialization process, the modem obtains an IP address, other IP related operational parameters, and the server address of the modem configuration file from a dynamic host configuration protocol server (DHCP). Many such DHCP servers are available on the network and the cable modem 105 or 107 simply broadcasts to all DHCP servers. Any DHCP server can answer the broadcast request and provide the necessary information. The configuration file includes various modem configuration parameters such as access control information, downstream and upstream channel assignments, security configuration information, and the trivial file transfer protocol server from which the modem operation software can be downloaded. A packet switched network, such as the cable system network illustrated in Figure 1, typically operates on a best-efforts service delivery basis. Unfortunately, the Internet protocol with its connection-less best efforts delivery model does not guarantee delivery of packets in order, in a timely manner or at all. All traffic has an equal priority and an equal chance of being delivered in a timely manner. When the network is congested, all traffic also has an equal chance of being delayed or dropped. Among the many types of applications using the network are mission-critical applications interfacing with the Worldwide Web, on line business-critical applications, multi-media based applications (such as desktop video conferencing and web based training) and voice over Internet protocol. Certain network applications may be bandwidth and delay sensitive, thereby requiring a unique class of service demand on the network. Some applications require real time delivery to the receiving site, others can tolerate some delay. To deploy real-time applications, such as voice over IP or video conferencing, using the Internet Protocol, an acceptable level of quality, including bandwidth latency and jitter requirements, must be guaranteed and further must be met in a fashion that allows the real-time traffic to co-exist with traditional data traffic on the network. Employing a class of service concept allows the network manager to ensure that mission-critical and real time application traffic is protected from other bandwidth hungry applications, while enabling less critical applications to utilize the network in a reasonably efficient fashion. To achieve this objective, network class of service policies align network resources with the network users objective. Without these class of service parameters, network resources could be quickly exhausted by non- vital applications, at the expense of more important ones. Implementation of class of service features allows network devices to recognize and deliver high-priority traffic in a predictable manner. When network congestion occurs, the class of service mechanism drops or delays low-priority traffic to allow delivery of high-priority traffic. Therefore, a need exists in packet switched cable modem systems to establish a class of service scheme and to develop a mechanism for implementing it, thereby increasing the probability that the high priority upstream data will reach its destination in a timely manner. BRIEF DESCRIPTION OF THE DRAWINGS The present invention can be more easily understood and the further advantages and uses thereof more readily apparent, when considered in view of the description of the preferred embodiments and the following figures in which: 5 Figure 1 is an electrical block diagram of a typical prior art two-way cable communication system; Figure 2 is an electrical block diagram of the elements of the two-way cable communication system at a subscriber's premises; and Figure 3 is a flow chart describing the class of service assignment and o methodology in conjunction with the teachings of the present invention. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Before describing in detail the particular method and apparatus for assigning and implementing class of service priorities to the data flows in a two-way cable modem communication system, it should be observed that the present invention 5 resides primarily in a novel combination of steps and apparatus related thereto. Accordingly, the hardware components and method steps have been represented by conventional elements in the drawings, showing only those specific details that are pertinent to the present invention, so as not to obscure the disclosure with structural details that will be readily apparent to those skilled in the art having the benefit of the o description herein. The DOCSIS 1.0 protocol allows a cable modem, such as the cable modems 105 and 106, to be configured with multiple service flow for carrying data in the upstream direction. However, it is impossible for the cable operator to take advantage of this feature, because there is no mechanism in the industry to classify data onto a 5 service flow, other than the primary service flow. Ergo, all data flows on the primary upstream service flow. The DOCSIS 1.1 standard includes a classifier feature, which can be activated through a configuration setting, to instruct the cable modem to send certain packets on specific service flows. For example, the classifier may be configured to place all voice packets onto service flow number 2, while all other data o packets are transmitted over the primary service flow. In accordance with the teachings of the present invention, the primary service flow is divided into a plurality of multiple subflows. Each one of the multiple subflows is assigned a class of service, which is a relative ranking or priority scheme that determines the priority for transmitting queued data on that subflow from the cable modems 105 and 106 to the headend equipment 101. Higher priority data is transmitted before lower priority data. For example, a voice over Internet protocol telephone call must be transmitted in near real-time to avoid delays and breaks in the conversation. It has been found that a delay of greater than approximately 300 milliseconds cannot usually be tolerated by the conversing parties. Therefore, data representing the voice over Internet protocol will be assigned a high-priority class of service. Conversely, text data receives a lower priority class of service assignment. The service flow parameters (e.g. transmission priority) for a given modem are set forth in the configuration file. The subflow parameters are derived from the service flow parameters, as will be discussed below. In one embodiment of the present invention, a token bucket methodology manages the upstream subflows that carry the data packets, to ensure packets are transmitted according to their assigned service priority from the cable modems 105 and 106. Each token bucket has three components: a burst size, a mean rate, and a time interval. The mean (average) rate specifies how much data can be transmitted per unit time, as defined by the time interval. The burst size (measured in bits) specifies the amount of data that can be sent within a burst so as not to create a network scheduling conflict. An exemplary token bucket algorithm with a 5 Mb token bucket burst size has a mean bit rate of 1Mbps and a time interval of one second. The bucket has a maximum capacity of 5 megabits. When the bucket becomes full (i.e., contains 5 megabits worth of tokens), then no more tokens can be added. Each token represents a permission for the cable modem to send a certain number of bits to the headend equipment 101. To transmit a packet, the cable modem removes from the bucket a number of tokens equal in representation to the packet size. If there are not sufficient tokens in the bucket to send the packet, • the packet either waits until the bucket has enough tokens or the packet is simply discarded. Therefore, at any time, the largest burst or packet that the cable modem can send into the network is roughly proportional to the bucket capacity. Further in accordance with the teachings of the present invention, packet transmission from the cable modems 105 and 106 are controlled by a plurality of token buckets, where each token bucket is associated with a specific class of service (or subflow) for each cable modem. Tokens from a primary flow bucket are distributed among a plurality of subflow buckets. As mentioned above, tokens are replenished in the primary bucket periodically. Each of the subflow buckets is replenished from the primary token bucket. In fact, there are a number of algorithms for replenishing the subflow buckets. For example, the primary bucket can be controlled to allot a given percentage of received tokens to each of the subflow buckets. For example, the highest priority subflow bucket (bucket one) can receive 50% of the tokens in the primary bucket over a given time interval. The lowest priority subflow bucket (bucket three) can receive 15% of the primary bucket tokens over the same time interval. Finally, the medium priority bucket (bucket two) can receive 35% of the primary bucket token over the given time interval. Alternatively, as tokens enter the primary bucket, they can first be directed to bucket one (the highest priority subflow bucket) until it is full. This assures that high priority packets will have a high probability of receiving tokens and thus a high priority of being transmitted. Later received tokens are then directed to bucket two until it is full, (assuming bucket one remains full) and finally, arriving tokens are directed to bucket three if the other two buckets are full. As will be appreciated by those skilled in the art, there are several techniques available for controlling the replenishment process for both the primary bucket and the plurality of subflow buckets. The algorithm for refilling the primary bucket and the plurality of subflow buckets can be hard-coded into the cable modem 105 and 106. Alternatively, the algorithm can be set forth in the configuration file, through vendor-specific TLV parameters, which is downloaded to the cable modems 105 and 106 during the startup phase. Using the configuration file as the control mechanism allows the cable system operator to change the replenishment algorithm for the multiple subflows. The cable system operator can also manage each of the cable modems 105 and 106 using network management application software running under the simple network management protocol (SNMP). SNMP allows the network manager to modify network objects within a network device and thereby change the network parameters. For example, the bucket replenishment process can be modified in real time by SNMP based instructions. In one embodiment, each data packet is assigned to one of the subflows through information contained in the packet header. For example, the packet header identifies the packet as IP data, LLC data, or TCP/UDP data. Based on the data type, the data packet is assigned to the appropriate priority subflow, the correlation between the data types and priority subflows having been set forth in the configuration file or hard-coded into the modem. Alternatively, to identify the data type, the modem can examine the data file for unique data signatures. VOIP data has such a unique signature. In another embodiment, the modem can identify the data type and assign a subflow by examining the embedded cable modem software application that originated the packet. For instance, a network management application generates simple network management protocol packets. Typically, the SNMP packets would be assigned a higher priority than data packets. In lieu of the cable modem checking the header to assign a subflow, the application software that creates the packet can assign the subflow and provide that information as a parameter. In another example, the modem may include a VOIP software application that digitizes the audible tones from the telephone and packetizes them. In this example, it would not be necessary to examine the packets to determine their priority since the modem operating software can determine that the packets have come from a software application operating on voice data. Typically, then, these packets would be assigned to a high priority subflow. Figure 3 is a software flowchart illustrating the teachings of the present invention. The modem 105 or 106 powers up at a step 180 and downloads the configuration file at a step 182. In the embodiment of the present invention where the multiple subflow and the bucket replenishing algorithm details are identified in the configuration file, this information is derived from the configuration file and provided to the modem operating software for controlling the replenishment process and subflow assignments. At a step 186, a packet ready for transmission is examined to determine the class of service associated therewith. As discussed above in other embodiments, the class of service may be determined by techniques other than examination of the header. In any case, once the class of service for the packet is determined, processing moves to a step 188 where the subflow (or class of service) bucket associated with the packet is checked. If sufficient tokens are available within the bucket, then the process moves from a decision step 190 to a step 192 where the appropriate number of tokens are assigned to the packet. At a step 194, the packet is transmitted. Processing then returns to the step 186 to examine the next packet in the queue. If a sufficient number of tokens were not available at the decision step 190, the packet cannot be transmitted and it is held in the queue. Processing moves from the decision step 190 back to the step 186 for examining the next queued packet. When the subflow token bucket associated with the delayed packet is replenished, the packet will be transmitted. As discussed above, the replenishment process periodically places tokens into each subflow bucket, although that is not shown in the Figure 3 flow chart. In one embodiment, the replenishment process proceeds as follows. Let R/T be the mean rate of the algorithm, where R is measured in bits and T is measured in seconds. Then every T seconds R bits worth of tokens are added to the bucket. For example, if R = 1 million bits and T = 1 second, then every second one million bits worth of tokens are added to the bucket. Thus the mean rate is 1 Mbps. As discussed above, the cable system operator can modify the operation of the subflow assignment process by transmitting network management control information (using the SNMP protocol) to the cable modem 105 and 106. Any such management information operates as an interrupt to the Figure 3 flowchart. While the invention has been described with reference to a preferred embodiment, it will be understood by those skilled in the art that various changes may be made and equivalent elements may be substituted for elements thereof without departing from the scope of the present invention. In addition, modifications may be made to adapt a particular situation more material to the teachings of the present invention without departing from the essential scope thereof. Therefor, it is intended that the invention not be limited to the particular embodiment disclosed as the best mode contemplated for carrying out this invention, but that the invention will include all embodiments falling within the scope of the appended claims.

Claims: WHAT IS CLAIMED IS 1. In a network having a primary service flow including a plurality of network devices for transmitting and receiving packets, a method for managing the transmission of packets, comprising: dividing the primary service flow into a plurality of subflows; assigning a priority to each one of the plurality of subflows; assigning a priority to each packet; and transmitting the packet on the subflow associated with the assigned priority. 2. The method of claim 1 wherein each priority is associated with a class of service. 3. The method of claim 2 wherein each class of service is associated with a data transmission priority, and wherein each packet is transmitted in accordance with the class of service to which the packet is assigned. 4. The method of claim 1 wherein the priority is associated with a predetermined transmission bit rate. 5. The method of claim 1 wherein each packet enters a queue prior to transmission, and wherein the priority is associated with a predetermined maximum time between arrival of the packet in the queue and transmittal of the packet on the associated subflow. 6. The method of claim 1 wherein a parameter from among a hierarchy of network transmission parameters is associated with each priority. 7. The method of claim 1 wherein transmission of a packet in each subflow of the plurality of subflows requires the assignment of a number of tokens to the packet, wherein the number of tokens is based on the packet length. 8. The method of claim 1 wherein the primary service flow is allocated a number of tokens, wherein the tokens are in turn allocated among the plurality of subflows. 9. The method of claim 8 wherein the tokens are allocated among the plurality of subflows based on the number of unused tokens in the subflow. 10. The method of claim 8 wherein the tokens are allocated among the plurality of subflows based on the priority associated with the subflow. 11. The method of claim 8 wherein as tokens are allocated to the primary service the tokens are in turn distributed to the plurality of subflows, wherein the highest priority subflow receives a given percentage allocation of the tokens from the primary subflow and each lower priority subflow receives a correspondingly smaller 5 percentage allocation. 12. The method of claim 8 wherein the primary service flow has a token bucket associated therewith and each subflow has a token bucket associated therewith, wherein there is defined for each token bucket, a burst size that defines the maximum quantity of data that can be transmitted in each burst, and a mean rate that defines the i o maximum quantity of data that can be transmitted per a defined time interval. 13. The method of claim 12 wherein the tokens of the primary service flow token bucket are replenished on a periodic basis, and wherein each subflow token bucket is replenished from the primary service flow token bucket. 14. The method of claim 1 wherein the priority of each packet is set forth 15 in the packet header. 15. The method of claim 1 wherein the priority of each packet is determined based on the software application that generated the packet. 16. The method of claim 1 wherein the network devices comprise cable modems. 0 17. An article of manufacture comprising: a computer usable medium having computer readable program code embodied therein for managing the transmission of packets in a network having a primary service flow, and wherein the network comprises a plurality of network devices for transmitting and receiving packets, comprising: 25 computer readable program code configured to cause a computer to divide the primary service flow into a plurality of subflows; computer readable program code configured to cause a computer to assign a priority to each one of the plurality of subflows; computer readable program code configured to cause a computer to 3 o assign a priority to each packet; and computer readable program code configured to cause a computer to transmit the packet on the subflow associated with the assigned priority. 18. An apparatus in each one of a plurality of network devices, wherein the network devices transmit and receive packets over a network having a primary service flow, said apparatus for managing the transmission of packets, comprising: a first module for segregating the primary service flow into a plurality of subflows; a second module for assigning a priority to each one of the plurality of subflows; a third module for assigning a priority to each packet; and a fourth module for transmitting the packet on the subflow associated with the assigned priority.

Inventors: DINATALE JOHN, FERREIRA THOMAS M, FOLEY STEPHEN, SCULLY BRIAN J, DINATALE, JOHN,, FERREIRA, THOMAS M.,, FOLEY, STEPHEN,, SCULLY, BRIAN J.,
Applicants: MOTOROLA INC, MOTOROLA, INC., A CORPORATION OF THE STATE OF DELAWARE
Application year: 2001
Main classification: H04Q
IPC codes: H04L12, H04N7