SYSTEM AND METHOD FOR DATA COMPRESSION IN A DIGITAL SUBSCRIBER LINE
NETWORK
NOTICE OF COPYRIGHT PROTECTION
[0001] A portion of the disclosure of this patent document and its figures contain material subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure, but otherwise reserves all copyrights whatsoever.
FIELD OF THE INVENTION [0002] The present invention generally relates to transmitting data in a computer network. The present invention more particularly relates to compressing data sent over a digital subscriber line (DSL) network.
BACKGROUND
[0003] Digital Subscriber Line (DSL) service provides bandwidth by sending high-frequency signals over the unused portion of a telephone line. The higher the frequency used, however, the shorter the distance that signal can travel without attenuation. Therefore, there is a physical limit on the number of frequencies that can be used to transfer data over a reasonable distance and consequently on the capacity of DSL lines. Today, more than 17 million homes worldwide access the Internet through a DSL connection (http://www.isp-planet.com/research/ rankings/dsl_worldwide_national_april_2002.html, ISP-Planet, Darien, CT). The vast majority of these connections are asymmetrical DSL connections, or ADSL connections (http://www.aware.com/company/ceo_cfo/substatusQ4.html, Aware, Inc., Bedford, MA). Further, the maximum one-direction transfer rates possible on DSL connections currently are
around 1.5 megabits per second (http://www.speedguide.net/Cable_modems/bandwidth.shtml, Speed Guide, Inc., Tampa, FL). While this rate is very fast by modern standards, the increasing size of data files and the decreasing patience of Internet users require that transfer rates continue to increase.
[0004] ADSL attempts to maximize the transfer rate according to the user's habits. The DSL providers who offer ADSL assume that the average user will download much more information than she uploads, making downstream the more critical direction. Therefore, the providers provide more bandwidth for downloading than for uploading. The disadvantage of ADSL is that the allocation for uploading and downloading is based on a fixed, predetermined setting that prevents the user from having a greater transfer rate when required or desired. As a result, while the service provides generally acceptable transfer rates, when the user uploads a large file, the upload transfer rate remains relatively slow, which may be frustrating to the user and the recipient.
[0005] In addition, even in the faster downstream direction, the maximum transfer rate for home users is around 1.5 megabits per second. Some DSL services such as HDSL (high-speed DSL) and VDSL (very high-data-rate DSL) offer faster transfer rates, but those services generally are not available to or utilized by home users because they require a slightly different infrastructure than is present in the home and because they are more expensive. Home users, however, are sending and receiving increasingly large files. For example, many DSL users also have digital cameras. These users often send digital pictures to friends and relatives. Sending movie files is also becoming common, and movie files may be up to several megabytes in size.
Since the user's demands for greater bandwidth are increasing, DSL providers must increase the supply of bandwidth to satisfy these demands.
[0006] Moreover, DSL sends multiple strings of data at different frequencies over a phone line. As a signal's frequency increases, however, the distance it can travel without total loss decreases. Therefore, DSL service is limited to a certain range of frequencies that can travel for a reasonable distance. As a result, the physical capacity of the line is similarly limited, so service providers find it difficult to supply greater bandwidth in DSL. Instead, the service providers desire a method to increase effective bandwidth without increasing the actual physical capacity of the DSL lines.
[0007] Various conventional telecommunications methods exist for increasing effective bandwidth of analog communications. For example, the International Telecommunication Union (ITU) recommends N.44 as the standard that describes the current data compression procedures over a telephone network. The N.44 standard, however, applies only to N-series data circuit- terminating equipment, or analog modems. o such standard exists for DSL communications.
[0008] Therefore, there is a need for compression in DSL communications in order to increase the DSL data transfer rate and to extend the distance over which DSL lines can carry data. There is also a need for hardware and software to carry out such compression.
SUMMARY
[0009] Embodiments of the present invention provide systems and methods for compressing data to be transmitted over a DSL line, thereby increasing the effective transfer rate of the DSL line. A compressed data transmitting system according to the present invention includes a data
receiver for receiving data to be transmitted over the DSL network, a data comparator to compare the data received with data previously received and transmitted, a code generator for generating unique codes to represent the data, and a code substitutor for substituting the appropriate code for the corresponding data. Once the code substitutor substitutes a code for the data, a transmitter transmits the data across the DSL network. In one embodiment, a DSL modem houses the various components of a transmitting system according to the present invention^ For example, the DSL modem includes a processor and memory. Stored in the memory are one or several computer programs for performing the receiving, comparing, substituting, and transmitting tasks of the present invention.
[0010] The code and corresponding data are stored in a memory. In one embodiment, the data comparator stores the data in a data store, such as a database. The data substitutor then searches the database for codes corresponding the data to be transmitted.
[0011] In a method for transmitting compressed data in a DSL network according the present invention, the transmitting system receives a first data packet or datagram (referred to hereinafter as "datagram") and generates a unique code corresponding to the datagram. The transmitting system stores the code and datagram in a memory and also transmits the code a datagram. Subsequently, the transmitting system receives a second datagram that is identical to the first datagram. The system compares the second datagram to the datagram or datagrams stored in memory, and if a match is found, substitutes the unique code corresponding to the datagram in the transmission. The transmitting system transmits only the code over the DSL network.
[0012] If the transmitting system receives subsequent datagrams that are not identical to the first datagram, the system generates additional unique codes and stores them in the data store. In one embodiment, the transmitting system combines two or more datagrams and generates a code for the combination of datagrams. When the combination of datagrams is subsequently received by the transmitting system, the system substitutes and transmits a single code over the DSL network, representing the combination of datagrams.
[0013] In an embodiment of the present inventor for receiving compressed network, a data receiver receives the data. If the data includes a code, a data comparator in communication with the receiver compares the code with code in memory. A code substitutor then substitutes a data value for the code. The system then transmits the data to the appropriate destination.
[0014] In one embodiment, the receiving system of the present invention includes a data store, such as a database. The comparator and substitutor use the database when performing tasks. In one embodiment of the present invention, a digital subscriber line access multiplexer includes the components of the receiving system. In another embodiment, a DSL modem includes the components of the receiving system.
[0015] In a method for receiving compressed data over a DSL network according to the present system, the receiving system performs tasks similar to those performed by the transmitting system. The receiving system receives a datagram and a code. The receiving system stores both the datagram and the code and transmits the datagram. When the receiving system subsequently receives a code, the receiving system compares the code to codes stored in
memory, substitutes the corresponding datagram for the code, and transmits the datagram to the appropriate destination.
[0016] Embodiments of the present invention provide numerous advantages over conventional systems for transmitting data over a DSL line. In an embodiment of the present invention, after an initial transfer of a string of data, that string can be represented by a code that occupies less bandwidth. Sending codes to represent strings of data will greatly increase the effective capacity of the DSL line, and correspondingly the transfer rate will rise. An embodiment can be used in the upstream direction of transmission, the downstream direction, or both.
[0017] An embodiment of the present invention allows a provider to extend the distance over which DSL lines carry data. Conventionally, if a provider reduces the frequency used to transmit data, the signal travels farther, but capacity is diminished. However, in an embodiment of the present invention, a provider restores diminished capacity by using codes in place of strings of data, effectively reducing the bandwidth requirements for a particular set of data. Therefore, the present invention allows a given amount of data to be transmitted over DSL lines over longer distances than is possible using conventional systems and methods. Further, an embodiment allows a provider to offer a combination of increased transmission distance and increased transmission speed. In addition, a provider or user can implement an embodiment of the present invention over existing infrastructure by simply replacing the endpoints of the communications.
[0018] Further details and advantages of the present invention will be evident from the discussion below.
BRIEF DESCRIPTION OF THE FIGURES
[0019] These and other features, aspects, and advantages of the present invention are better understood when the following Detailed Description is read with reference to the accompanying drawings, wherein:
Figure 1 is a diagram, illustrating a conventional DSL network;
Figure 2 is a diagram illustrating a conventional method for transmitting data over a conventional DSL network;
Figure 3 illustrates an exemplary environment for operation of an embodiment of the present invention;
Figure 4 illustrates an alternative exemplary environment for operation of an embodiment of the present invention;
Figure 5 is a flow chart illustrating a method of transmitting compressed data over a DSL network in an embodiment of the present invention; and
Figure 6 is a is a flow chart illustrating a method of receiving compressed data over a DSL network and forwarding the decompressed data in an embodiment of the present invention.
DETAILED DESCRIPTION
[0020] Embodiments of the present invention provide systems and methods for compressing data in a DSL network. Referring now to the Figures, Figure 1 illustrates a conventional Digital Subscriber Line (DSL) network. A consumer has a computer terminal 100 in a residence or office 101. The computer terminal 100 uses an Ethernet or universal serial bus (USB) connection 102 to access a DSL modem 104. The DSL modem modulates and demodulates signals transmitted over the DSL line 106, which commonly resides on copper telephone wire.
DSL is typically transmitted on the same telephone line as a consumer's voice service. However, DSL uses frequencies above those used by voice.
[0021] DSL line 106 is also connected to a Digital Subscriber Line Access Multiplexer (DSLAM) 108 located in a provider's central office. The DSLAM 108 multiplexes multiple subscriber DSL lines onto a single wideband channel 112, such as an asynchronous transfer mode (ATM) or frame relay channel. In the embodiment shown, the wideband channel 112 connects to the Internet 114. The wideband channel may connect to any type of private, public, or governmental network.
[0022] A significant disadvantage of the prior art DSL network shown in Figure 1 is that, under typical conditions, the slowest segment of the communications chain between the subscriber's computer 100 and the Internet 114 is the DSL line 106. The Ethernet or USB connection 102 and the wide band channel 112 typically have the capability to transfer data at a rate of at least 1 megabit per second and often have capability to transfer data at a rate of 10 megabits per second or more. In contrast, the DSL line 106 is limited by design to low-speed transfers of data from the computer 100 to the Internet 114, because it is assumed that the average consumer uploads much less information than the consumer downloads. Therefore, service providers typically allot more bandwidth to downloads than to uploads, a practice called ADSL, or asymmetrical DSL. This asymmetry can create a severe bottleneck when uploading large amounts of data.
[0023] Figure 2 illustrates the potential bottleneck between the consumer and the DSL provider in the prior art DSL network shown in Figure 1. The consumer's computer 100
communicates with the DSL modem 104 using an Ethernet or a USB connection 102, either of which typically supports data transmission speeds of 10 megabits per second. Data transmitted on the DSL line 106 from the DSL modem 104 to the DSLAM 108 is typically limited to 128 kilobits per second or a similarly slow rate.
[0024] The DSL modem 104 performs no compression, so all the data traversing the DSL line 106 is uncompressed data 202. When the data reaches the DSLAM 108, the DSLAM 108 transmits the data over a high-speed line. In the embodiment shown in Figure 2, the DSLAM 108 transmits the data over a 10 megabit per second (mb/s) line, such as Ethernet, to a host 206. Therefore, in a conventional DSL network, such as the one illustrated in Figure 2, the effective throughput between the consumer's computer 100 and the host 206 is only 128 kilobits per second. Data travels up to 80 times faster through all other parts of the network than it can travel over the DSL line 106, and therefore, the overall effective throughput is limited to the speed of the DSL line 106.
[0025] Figure 3 illustrates an embodiment of the present invention with compression capabilities in a DSL modem and a DSLAM. In the embodiment shown, a client 300, such as the consumer's computer 100 of a conventional network, is connected via an Ethernet or a USB connection 302 to a DSL modem 304. As in the conventional DSL networks shown in Figures 1 and 2, the data travels over the DSL line 306 to the DSLAM 308 and then through a connection 310 to a host 312 or to another network. The transfer rate on the DSL line 306 remains 128 kb/s. However, the effective transfer rate of the DSL line 306 is increased.
[0026] The embodiment shown includes various additional components operable to increase the effective transfer rate. DSL modem 304 contains or is connected to a processor 314. The processor includes software and/or firmware that allow the processor to generate codes, make comparisons, make code substitutions, and transmit data. [Are you familiar with what type of code is used to program the modems/DSLAMs?] The processor is connected to a memory or data store 316, which is also referred to as a "book." The data store 316 stores the codes that the processor 314 generates to represent full sets of data packets or datagrams. Later, when the processor 314 receives additional, identical datagrams, the processor substitutes the codes for the datagrams in a transmission.
[0027] In a preferred embodiment of the invention, each code comprises fewer bits of data than does the full datagram that the code replaces. Consequently, a plurality of codes can be sent, and thereby a plurality of datagrams can be represented, in the space that just one datagram formerly occupied. With this substitution, the datagrams are effectively compressed to a smaller size. Not all data is compressible. In the embodiment shown, the DSL modem 304 transmits uncompressible data 322, compressed data 324, and management data 326 over the DSL line 306 to the DSLAM 308.
[0028] In the embodiment shown, the DSLAM 308 receives the data. The DSLAM also includes a processor 318. The processor 318 includes firmware and/or software that allow the DSLAM to decompress the data. The DSLAM 308 also includes a data store or "book" 320 for storing codes and corresponding datagrams. The data store 320 contains a list of all previously sent codes and corresponding datagrams. In one embodiment, the processor 318 compares the
codes sent over the DSL line 306 to the codes already stored in the data store 320 and then selects the proper datagram to replace the code in a subsequent transmission to the host 312.
[0029] By compressing at least a portion of communications occurring over the DSL line 306, the embodiment shown in Figure 3 increases the effective transmission rate. Embodiments of the present invention are not limited to transmission from a DSL modem 304 to a DSLAM 308. The compression and decompression may take place elsewhere. For example, decompression may take place at the destination, and the destination may comprise a processor and book similar to that described above in relation to the DSLAM. In such an embodiment the effective rate of transmission for any of the segments of the communication channel receive the benefit of the compressed size of the data in coded form.
[0030] Figure 4 illustrates such an embodiment, with compression capabilities in the endpoints of the communication rather than limited to the endpoints of the DSL line. In the embodiment shown in Figure 4, a client 400 is connected to a DSL modem 404 with an Ethernet or a USB connection 402. The DSL modem 404 contains or is connected to a processor 406 and a data store 408. The processor 406 and data store 408 are operable for generating and storing codes that may be substituted for full datagrams in a transmission. The codes substituted for datagrams and datagrams for which no code is substituted are then sent over a DSL line 410 to a DSLAM 418. The communications include uncompressible data 412, compressed data 414, and management data 416. The DSLAM 418 is also in communication with a public network, the Internet 420. The DSLAM 418 multiplexes and transmits the compressed data from DSL modem 404 without attempting to decompress it.
[0031] Another DSLAM 422, which serves the destination of a communication from the client computer 400, is also in communication with the Internet 420. The second DSLAM 409 communicates over a second DSL line 424 with a second DSL modem 426. As with the first DSL modem 404, the second DSL modem 426 includes a processor 428 and a data store 430.
[0032] In the embodiment shown, then the destination DSL modem 426 receives a communication from the originating DSL modem 404, the processor 428 compares a code received in the transmission to codes already stored in the data store 430, and then substitutes the corresponding datagram for the code before transmitting the communication across Ethernet or USB connection 432 to the second client 434.
[0033] In the embodiment shown in Figure 4, the datagram remains compressed over a greater part of the network, encompassing the entire communication path between client 404 and client 434. Therefore, the portion of the network over which the datagram remains compressed experiences greater efficiency than it would if the data were not compressed. It will be recognized that the compression and decompression can take place at any point in the network and can be strategically placed so that especially busy portions of the network receive the benefit of the compressed datagram.
[0034] Figure 5 is a flowchart illustrating an exemplary process that performs the compression discussed above in an embodiment of the present invention. For clarity, the process illustrated in Figure 5 is described with reference to the embodiment shown in Figure 3. First, the processor (314) in the DSL modem (304) receives a datagram from the client (300) for transmission to the host (312) 502. The processor (314) determines if the datagram is identical
to a datagram previously transmitted 504. For example, the processor (314) may perform a query in the data store (316) to search for an identical datagram.
[0035] If the current datagram is identical to one that has previously been stored in the data store (316), then the processor (314) retrieves the code from the data store (316) that corresponds to the datagram 506. The processor (314) then substitutes the code for the datagram in the data to be transmitted 507. The processor (314) then transmits the data, including the code, over the DSL line (306) 508. In the embodiment shown in Figure 3, the DSLAM 308 receives the code and decompresses the data according the process described in relation to Figure 6 below. However, other communications components may also decompress the data, such as the DSL modem 426 shown in Figure 4.
[0036] Referring again to Figure 5, if the datagram to be transmitted is not identical to a previously stored datagram, the processor (314) generates a new unique code corresponding to the new datagram 510. For example, the processor (314) may assign a random or sequential number to each new datagram the processor (314) receives.
Alternatively, the processor (314) may generate an alphanumeric number that includes some digits that convey information about the corresponding datagram. For example, a subset of the digits of the alphanumeric number may convey the length of the corresponding datagram. After generating the code, the processor (314) stores the code and the datagram in the data store (316) 512. The processor (314) then transmits the datagram and the code over the DSL line (306) 514.
[0037] Figure 6 is a flow chart illustrating an exemplary process for decompressing data in an embodiment of the present invention. For clarity, the process illustrated in Figure 6 is described with reference to the embodiment shown in Figure 3. However, many other communications components may provide the decompression capability of the present invention. In the process shown in Figure 6, the processor (318) of the DSLAM (308) receives a datagram and a code from the DSL modem 304 described in relation to Figure 5 above 602. Then the processor (318) stores the datagram and the corresponding code in the data store (320) 604. The processor (318) then outputs or transmits the datagram 606. The datagram then traverses a connection or network its destination.
[0038] The processor (318) subsequently receives a code without a corresponding datagram 608. The processor (318) searches the data store (320) to determine whether or not the code was previously stored in the data store (320) 610. If the data store (320) contains the code, the processor (318) retrieves the datagram corresponding to the code 612. The processor (318) then outputs the datagram in place of the code 612.
[0039] In an embodiment of the present invention, it is possible that the data store (320) does not include the code transmitted by the DSL modem (304) or the corresponding datagram. The code may have been lost in transmission, and therefore, the DSLAM (308) never received. Alternatively, the data store (320) may be of limited capacity and therefore use some type of method, such as a first-in/fϊrst-out method, for eliminating codes and corresponding datagrams from memory. Referring again to Figure 6, if the code does not exist in the data store (320), the processor (318) sends a request to the processor (314) of the DSL modem (304) to retransmit the datagram corresponding to the code that is not in the data store (320) of the DSLAM (308) 616.
The processor (318) then receives the datagram and code 618 and stores them in the data store (320) 620. The processor then outputs the datagram 320.
[0040] A user who wishes to send an electronic mail message to a recipient over the Internet provides a useful example of an embodiment of the present invention. First, the user types the message and then executes the command to send the message. The computer 300 then sends the message as a whole to the DSL modem 304. Next, the DSL modem 304 divides the message into packets for transmission across the DSL line 306. Each of those packets, or portions of packets, can be considered by the processor 314 in the DSL modem 304 as a datagram. The processor 304 thereby compares each datagram to datagrams aheady stored in data store 316. If a datagram is already recorded in the data store 316, then the processor 314 retrieves the unique code associated with that datagram and transmits only the code to the DSLAM 308. If a datagram is not aheady stored in the data store 316, then the processor 314 generates a unique code for that datagram and stores the code and the datagram in the data store 316. Then the processor transmits the code and the datagram to the DSLAM 308.
[0041] The DSLAM 308 contains a processor 318 that receives all incoming datagrams and codes. If a datagram and code are received together, the processor 308 records the datagram and code in its data store 320 and then outputs the datagram to the host 312, and eventually the message reaches the recipient. If the processor 318 receives only a code, then the processor compares the code to codes already stored in the data store 320. Then the processor 318 retrieves the datagram associated with that code and outputs the datagram to the host 312, and eventually the message reaches the recipient.
[0042] In another embodiment, the compression can take place in the DSLAM 308. In that situation the processor 318 generates and stores codes and retrieves codes that aheady are stored in data store 320. Then the processor 318 outputs the datagram and the code or outputs only the code to the DSL modem 304. Then the processor 314 in the DSL modem 304 receives the datagram and the code, stores both, and outputs the datagram to the user's computer 300.
[0043] Subsequently, the processor 314 receives only the code. The processor 314 compares the code to codes stored in the data store 316, retrieves the datagram corresponding with the code, and outputs the datagram. In one embodiement, both the processor 314 and the processor 318 are capable of both compressing and decompressing data. Further, the processor 316 is able to compare datagrams or codes to those aheady stored in data store 320. In such a situation, efficiency is increased because compression and decompression do not require separate lists in data stores 316 and 320. The processor 314 or 318 access one list in each data store 316 or 320 whether the processor 314 or 318 is performing compression or decompression.
[0044] Compression and decompression can also take place at other points in the network. In another embodiment, compression can take place after a plurality of DSL modems 304 are networked together. Then, the first time data is sent by any user 304, a code is generated, and stored for all users. Therefore, the next time that same data is sent by any user 304, the processor 314 retrieves the code and outputs the code, even if the second user to send the data is not the same as the first user to send the data.
[0045] Moreover, there are some instances in which compression and decompression may not be advantageous. For those situations, an embodiment of the present invention may include
the ability to suspend the compression and decompression processes or to turn off those processes altogether. The user may control the suppression of compression of data via, for example, a switch on the DSL modem 304. Alternatively, the control may be accessible only by a network administrator.
[0046] The foregoing description of the preferred embodiments of the invention has been presented only for the purpose of illustration and description and is not intended to be exhaustive or to limit the invention to the precise forms disclosed. Numerous modifications and adaptations thereof will be apparent to those skilled in the art without departing from the spirit and scope of the present invention.