Abstract:
The present invention provides a method and apparatus for a communications system that prioritizes packets that are transmitted over a digital communication channel utilizing at least one error-correcting transmission path associated with a Quality of Service (QoS) objective. The QoS objective is used to select the appropriate transmission path (that may include forward error coding, scrambling, and interleaving) that satisfies the relevant metrics of the desired level of service quality such as packet latency, variation of the packet latency, information throughput, and packet error rate (PER). The communications system selects a transmission path that is associated with QoS objectives best matched to the QoS objectives as required by the originating application.

Description:
FIELD OF THE INVENTION 
     This invention relates to a communications system for classifying and forwarding packets for transmission over a digital communication channel. 
     BACKGROUND OF THE INVENTION 
     With the evolution of communication services toward a greater penetration of packet transmission, a packet network may need to support a plurality of applications for voice services and video services. However, different types of services have different requirements in order to achieve the objectives of quality of service (QoS). Time latency and packet error rate (PER) are often used to describe the QoS objectives. Voice services typically require a small time latency (which is associated with the delay of the voice signal). On the other hand, entertainment broadcast video typically requires a small packet error rate but does not require a small time latency. Moreover, the processing required for providing a small packet error rate often entails substantial error correcting processing when the signal is transmitted over an imperfect communication channel. If a packet network serves entertainment broadcast video, one would configure the packet network to have a large degree of error correcting capability in order to guarantee a small packet error rate at the expense of a greater time latency. However, this policy may not provide satisfactory support for voice service if the same packet network is concurrently serving applications for voice services. 
     With the prior art, a single forward error correction (FEC) path is often chosen that is a compromise between a reasonable packet error rate and a reasonable delay; however, this approach is not an optimal solution because either there is more delay for voice signals than desired or a higher packet error rate than is desirable for video services. Another conventional approach is to utilize more one than one forward error correction path; however, only one FEC path can be used at a given time. In other words, FEC paths cannot be used concurrently. However, a packet switch may serve different types of services at a given time. 
     There is a need for a packet network to have the capability of selecting the FEC path that best meets the QoS objectives for applications supporting different services such as video services and voice services. 
     SUMMARY OF THE INVENTION 
     The present invention provides a method and apparatus for a communications system that classifies packets that are transmitted over a digital communication channel with at least one error-correcting transmission path. Quality of Service (QoS) objectives are used to select the appropriate transmission path that satisfies the relevant metrics of service quality such as packet latency, variance of the packet latency, information throughput, and packet error rate (PER). One transmission path supports forward error correction with an associated amount of time latency that is consistent with the QoS objectives of an originating application. The communications system manages, monitors, and prioritizes packets and allocates bandwidth with a packet network in order to satisfy the QoS objectives associated with the originating application. The communications system configures the transmission path according to QoS objectives and bandwidth requirements and selects a transmission path that is associated with QoS objectives best matched to the QoS objectives as required by the originating application. The processing of the packet optionally includes scrambling and interleaving of the packet. A packet can be reclassified with respect to QoS and bandwidth requirements in order to adjust the policy-based communications system to varying service demands. Alternatively, available bandwidth can be re-allocated among the plurality of transmission paths. The receiver, in accordance with the present invention, utilizes corresponding inverse functions to deliver packets to the terminating application. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     FIG. 1 shows an architecture of a communications system using forward error correction in a packet network; 
     FIG. 2 shows an architecture that utilizes Reed-Solomon coding and interleaving in accordance with the architecture shown in FIG. 1; 
     FIG. 3 shows a functional diagram for implementing the present invention in conjunction with DSL; 
     FIG. 4 shows a flow diagram in accordance with the functional diagram shown in FIG. 3; and 
     FIG. 5 shows a functional diagram for implementing the present invention in conjunction with Ethernet over VDSL. 
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
     FIG. 1 shows an architecture of a communications system  100  using forward error correction according to the present invention. Communications system  100  delivers packets from an application that supports a service (e.g. video-conferencing) for a user. Packet  101  is delivered from data port  102  to transmission medium  137 . Communications system  100  utilizes a mechanism (comprising system configuration and control unit  107 , packet classifier  105 , and forwarding switch  111  as described later) in order to process and transport packet  101  in accordance with the desired level of quality of service. Transmission medium  137  can assume one of different media forms including a radio link (wireless), a cable connection, a microwave connection, or a fiber optic connection. Moreover, packet  101  can be transported by tandeming different forms of transmission media to form transmission medium  137 . 
     Packet  101  is delivered according to a policy in which a level of quality of service (QoS) is associated with a user generating packet  101 , with the service that the user is requesting, and with the application (software program and as identified by the UDP port number, for example) supporting the service. The quality of service is determined by one or more attributes that include time latency of the packet, variation of the time latency, information throughput for the user, and the packet error rate (PER). Some applications (e.g. entertainment video) require a very low packet error rate but do not require a small time latency (i.e. delay of packets). On the other hand, there are other applications (e.g. voice) that typically require a small time latency but can tolerate a greater packet error rate. With a number of applications, one can trade the performance of one QoS attribute (e.g. time latency) for another QoS attribute (e.g. forward error correcting robustness) in order to satisfy the needs of a particular application. 
     With communications system  100 , database  103  provides policy information to system configuration and control unit  107  about the QoS level and the bandwidth allocated for the user of the application that provides a service. The policy is a set of assignment rules associated with a user and a desired QoS level. Typically, the policy is constructed in accordance with a service agreement between the user and a service provider. As an example, user A may have a higher QoS level than user B, in which packets are delivered quicker for user A than user B with the same packet error rate and in which user A has a greater throughput bandwidth than user B. The policy may have finer granularity by distinguishing the service and application being utilized for a given user. Packet  101  contains a priority indicator (such as a p value as supported in Standard IEEE 802.1Q). Packet classifier  105  receives packet  101  from the application and utilizes the priority indicator and policy information that is provided by system configuration and control unit  107  from database  103  over bus  109  to determine the QoS level and bandwidth allocation that is to be associated with packet  101 . Packet classifier  105  determines required transmission attributes that must be provided by a transmission path (which will be discussed subsequently) and forwards packet  101  with the required transmission attributes to forwarding switch  111 . 
     In order to adjust communications system  100  to varying service demands, packet classifier  105  can reclassify packet  101  with respect to QoS and bandwidth objectives. Configuration and control unit  107  determines a current demand of bandwidth resources by monitoring the buffer status on bus  127 . For example, if the policy associates a time latency of 1.5 msec and a PER of 1% for packet  101  and communications system  100  is experiencing traffic congestion, packet classifier  105  may redirect packet  101  to a transmission path (not illustrated in FIG. 1) that provides a time latency of 2 msec and a PER of 2% until the traffic congestion is allayed. At that point of time, packet classifier  105  may redirect packet  101  to the original transmission path having a time latency of 1.5 msec and a PER of 1%. Alternatively, system configuration and control unit  107  may instruct frame formatter  129  to increase the bandwidth allocated to the current transmission path. While maintaining the desired quality of service for the user, this approach may temporarily disrupt transmitting other packets in the frame. 
     Forwarding switch  111  may also receive additional information such as the current bandwidth usage of communications system  100  over bus  113  from system configuration and control unit  107  for directing packet  101  to a transmission path. Forwarding switch  111  consequently directs packet  101  to a specific transmission path ( 190 ,  191 , or  192 ). FIG. 1 depicts three transmission paths: transmission path  190  comprising buffer  115  and error correction unit (EC)  121 ; transmission path  191  comprising buffer  117 , error correction unit  123 ; and transmission path  192  comprising buffer  119  and error correction unit  125 . Transmission paths  190 ,  191 , and  192  can differ in that each path can be associated with different levels of quality of service. Buffers  115 ,  117 , and  119  stores packet  101  if a previously transmitted packet is currently being processed by the associated error correction unit. Error correction units  121 ,  123 , and  125  process packet  101  by adding coding bits that are used at the receiving side in order to correct any errors resulting from the transmission of packet  101  over transmission medium  137 . Even though transmission paths  190 ,  191 , and  192  are separate logical paths, each path can be implemented as separate physical paths. 
     Frame formatter  129  receives processed packets from transmission paths  190 ,  191 , and  192  and multiplexes the packets (such as processed packet  101 ) into a frame. The bandwidth associated with a particular transmission path is directly related to the number of bits associated with a particular transmission path in the frame. The bandwidth allocated to a particular transmission path is increased by increasing the number of bits allocated in the frame for the given transmission path. The bandwidth allocation can be modified by system configuration and control unit  107  instructing frame formatter  129  through bus  131 . The frame is encoded into symbols and modulated by symbol encoder/modulator  133 , and the resulting signal is transmitted over transmission medium  137 . 
     FIG. 2 shows an architecture that utilizes Reed-Solomon coding and interleaving in accordance with the architecture that is shown in FIG.  1 . Numbered components in FIG. 2 correspond to similarly-numbered components in FIG.  1 . However, transmission path  290  comprises buffer  215 , scrambler  216 , and Reed-Solomon coder  221 ; transmission path  291  comprises buffer  217 , scrambler  218 , Reed-Solomon coder  223 , and interleaver  224 ; and transmission path  292  comprises buffer  219 , scrambler  220 , Reed-Solomon coder  225 , and interleaver  226 . Scramblers  216 ,  218 , and  220  randomize the bits in packet  201  in order to achieve a uniform usage of the frequency spectrum of transmission medium  237 . Reed-Solomon coder  221 ,  223 , and  225  encode scrambled packet  101  using a Reed-Solomon code. Reed-Solomon coding is well known in the art. A Reed-Solomon code is chosen according to the number of information bits in packet  201  and the code robustness that is necessary for providing the desired packet error rate. However, a greater degree of robustness typically corresponds to a greater time latency resulting from the processing of packet  201  by Reed-Solomon coder  221 ,  223 , and  225 . Interleaver  224  and  226  reorder processed packet  201  so that no two adjacent bits, group of bits, or bytes are adjacent after reordering. As known in the art, interleaving provides greater immunity to burst errors and is used in conjunction with block coding (e.g. Reed-Solomon code, Bose, Chaudhuri, and Hocquenghem code, or Hamming code). 
     The architecture in FIG. 2 also includes header generator  228 . A header is multiplexed into the physical frame structure of the frame by frame formatter  229 . The header includes information such as the encoding algorithm utilized by error correction units  221 ,  223 , and  225  and the boundaries within the frame that are associated with each of the transmission paths  290 ,  291 , and  292 . 
     As can be appreciated by one skilled in the art, the architectures depicted in FIGS. 1 and 2 can be implemented with hardware such as Application Specific Integrated Circuit Chips (ASIC), with software using a microprocessor or a digital signal processor, or with a combination of hardware and software. 
     FIG. 3 shows a functional diagram for implementing the present invention in conjunction with a Digital Subscriber Line (DSL). DSL can provide a subscriber of a telephone high-speed data access of as much as 8 Mbps downstream and somewhat fewer bits per second upstream. Numbered components in FIG. 3 correspond to similarly-numbered components in FIG.  2 . Transmission path  390  (comprising buffer  315 , scrambler  316 , and Reed-Solomon coder  321 ) is designated a “fast path” because transmission path  390  is associated with a small time latency. Transmission path  391  (comprising buffer  317 , scrambler  318 , Reed-Solomon coder  323 , and interleaver  324 ) is designated a “slow path” because transmission path  391  is associated with a greater time latency while providing a lower PER than transmission path  390 . Packet classifier  305  classifies packet  301  in accordance with the priority indicator (p value). Standard IEEE 802.1Q supports eight levels of priority varying from 0 to 7. Packet classifier directs packet  301  to the fast path (transmission path  390 ) for higher priority levels (larger p values) and to the slow path (transmission path  391 ) for lower priority levels (smaller p values). 
     Frame formatter  329  multiplexes packets (e.g. packet  301 ) with header information that is generated by header generator  328  into a frame. The frame is subsequently symbol encoded and modulated so that a signal conveying the frame can be transmitted over transmission medium  337  (typically a metallic medium with DSL offerings). 
     FIGS. 1,  2 , and  3  show various embodiments associated with the transmission of a packet in accordance with the present invention. Moreover, in accordance with the present invention, a corresponding receiver utilizes components that perform the inverse function of the corresponding component of the transmitting portion. For example, a scrambler corresponds to a de-scrambler; a Reed-Solomon encoder corresponds to a Reed-Solomon decoder; and an interleaver corresponds to an inverse-interleaver. The receiver uses the header (generated by the header generator  228  or  328 ) as received in the frame to direct the packet to the appropriate transmission path. (FIG. 5, which is discussed later, illustrates both transmitting and receiving a packet over a transmission medium in accordance with one embodiment of the present invention.) 
     FIG. 4 shows a flow diagram in accordance with the functional diagram shown in FIG.  3 . Packet  301  is provided to packet classifier  305  through data port  302  in step  401 . In step  403 , packet classifier  305  utilizes the priority indicator in packet  301  and the policy information provided by database  303  through system configuration and control unit  307 . Typically, policy information is configured by the system administrator in accordance with a service agreement between the service provider and the user. In step  405 , packet classifier  305  determines whether packet  301  should be routed to a fast transmission path or a slow transmission path. In the exemplary embodiment, a fast transmission path corresponds to low time latency and a larger PER probability and a slow transmission path corresponds to a larger time latency and a smaller PER probability. However, alternative embodiments may utilize more than two transmission path types with varying values of QoS attributes. In the exemplary embodiment, transmission path  390  corresponds to a fast transmission path, and transmission path  391  corresponds to slow transmission path. 
     If step  405  determines that a fast transmission path is required, step  407  determines whether the bandwidth allocation for the fast transmission path is adequate. If not, step  409  causes the bandwidth of the fast transmission path to be increased by increasing the bit allocation in the frame as instructed to frame formatter  329 . With a variation of the exemplary embodiment, packet classifier  305  can redirect packet  301  to a slow transmission path if traffic congestion exists at that point in time. In step  411 , packet  301  is directed to the appropriate transmission path by forwarding switch  311 . In step  413 , scrambler  316  randomizes packet  301 , and processed packet  301  is encoded by Reed-Solomon coder  321  in step  415 . Processed packet  301  is subsequently multiplexed by frame formatter  329  in step  417 . In step  431 , the frame is modulated so that the corresponding signal (conveying the frame and consequently packet  301 ) is transmitted over transmission medium  337 . 
     If step  405  determines that packet  301  should be processed by a slow transmission path, analogous steps are executed in steps  419 ,  421 ,  423 ,  425 ,  427 ,  417 , and  431 . However, step  429  provides the interleaving of packet  301  in order to provide greater robustness to burst errors. Additionally, the encoding parameters for the Reed-Solomon encoding in step  427  result in more robust forward error correction coding at the expense of added time latency. 
     FIG. 5 shows a functional diagram for implementing the present invention in conjunction with Ethernet over Very-high-bit rate DSL (VDSL). VDSL provides data rates on the downstream from 13 Mbps to 51 Mbps depending on transmission distance and typically a slower data rate on the upstream. The association of packets  501  and  502  is provided by system software as part of an overall QoS policy as determined by the policy management system. For example, video broadcast packets (such as packet  501 ) may have a priority indicator (p value) of “1”, while voice packets (such as packet  502 ) may have a p value of “2.” Packet classifier  505  reads the priority indicators in packets  501  and  502  and routes video packets (with p value of 1) to transmission path  534  that is designated as the “slow path” and routes voice packets (with p value of 2) to transmission path  535  that is designated as the “fast path.” FIG. 5 does not show the processing components of transmission paths  534  and  535 ; however, the explanations discussed in conjunction with FIGS. 1,  2 ,  3 , and  4  are applicable. Frame formatter  529  multiplexes packets  501  and  502  into a frame, and front-end  533  encodes symbols and modulates a signal for transmission over transmission media  537 . 
     The VDSL receiver corresponds to front-end  553 , frame de-multiplexer  549 , transmission path  532 , transmission path  534 , buffer  515 , and buffer  517 . Front-end  553  performs the inverse function of front-end  533 ; frame de-multiplexer performs the inverse function of frame formatter  529 ; transmission path  532  performs the inverse function of transmission path  512 ; and transmission path  534  performs the inverse function of transmission path  514 . Received packet  501  is stored in buffer  517  for the terminating video application, and received packet  502  is stored in buffer  515  for the terminating voice application. 
     It is to be understood that the above-described embodiment is merely an illustrative principle of the invention and that many variations may be devised by those skilled in the art without departing from the scope of the invention. It is, therefore, intended that such variations be included with the scope of the claims.