Abstract:
The method transmits compressed data in packet-oriented networks. Before data packets are forwarded to a second network node device, a first network node device is used to check a compression state for the data contained in the data packets. In addition, a database entry characterizing the second network node device is evaluated. Message header entries in the data packets are modified on the basis of the characterizing entry and on the basis of the presence of the compression state.

Description:
CROSS REFERENCE TO RELATED APPLICATIONS  
         [0001]    This application is based on and hereby claims priority to German Application No. 101 47 773.2 filed on Sep. 27, 2002, the contents of which are hereby incorporated by reference.  
         BACKGROUND OF THE INVENTION  
         [0002]    The invention relates to a method and to a system for transmitting compressed data in packet-oriented networks.  
           [0003]    The continually increasing interchange of information places great demands on infrastructures for transmitting this information. In the face of current development, the avoidance of bottlenecks during information transmission requires continual expansion of packet-oriented networks transmitting information.  
           [0004]    Another way of avoiding bottlenecks is to compress data which are to be transmitted via packet-oriented networks. The literature has disclosed numerous methods which aim to reduce the volume of information and hence to achieve faster data throughput with little memory requirement. The principle of this data compression is based on the elimination of redundant characters and on dynamic assignment of data bits on the basis of the frequency of a character.  
           [0005]    The protocol HTTP (Hypertext Transfer Protocol) frequently used in packet-oriented networks is used for information interchange between a control computer (server) and a client application, such as a browser. Version 1.1 of the HTTP protocol is implemented in many current browsers and supports data compression on the basis of the “GZIP” method, which is described in the document by Deutsch, P. et. al., RFC1952 (Request for Comment): “GZIP File Format Specification”, version 4.3, May 1996. The HTML 1.1 protocol is specified in the document by Fielding, R. et. al., RFC2068: “Hypertext Transfer Protocol-HTTP/1.1”, January 1997.  
           [0006]    Even though this data compression—e.g. based on the HTTP 1.1 protocol—ensures a considerable reduction in the volume of data without loss of information following successful decompression at their respective opposite communication endpoint, the use of such data compression is limited to the cases in which both communication endpoints have access to the coding and decoding algorithms specific to the respective data compression method.  
           [0007]    It is one possible object of the invention to specify a method which allows more flexible use of data compression when transmitting information via a packet-oriented network.  
         SUMMARY OF THE INVENTION  
         [0008]    According to one aspect of the invention, network node devices—for example routers or else a communication endpoint itself—carry out a check, before a data packet is forwarded to a further network node device, on the compression state of the data transmitted in the data packets and evaluate a database entry characterizing the further network node device. A message header entry—often referred to as a header in the technical field—in the data packet is modified on the basis of the characterizing entry and on the basis of the presence of the compression state.  
           [0009]    A fundamental advantage of the method can be seen in that modification of the message header entry and consideration of a database entry characterizing the next network node device allow compressed data packets to be identified and routed using resources of the network node devices, as opposed to this first being done at the communication endpoints.  
           [0010]    Advantageously, an uncompressed data packet is compressed on the network node device.  
           [0011]    A port number defined, by way of example, on the basis of the TCP protocol (Transfer Control Protocol) is advantageously used to characterize the compression state.  
           [0012]    A particular advantage is that a dedicated port number is assigned in the message header of compressed data packets. This port number, corresponding to a typical port number, is used to indicate that the respective data packet contains compressed data, without needing to change the structure of the message header in order to hold this information. 
       
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0013]    These and other objects and advantages of the present invention will become more apparent and more readily appreciated from the following description of the preferred embodiments, taken in conjunction with the accompanying drawings of which:  
         [0014]    [0014]FIG. 1 shows a structogram for schematically illustrating packet-oriented connection paths between two network node devices designed in accordance with one embodiment of the invention; and  
         [0015]    [0015]FIG. 2 shows a structogram for schematically illustrating a connection path between two network node devices designed in accordance with one embodiment of the invention and a further network node device. 
     
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT  
       [0016]    Reference will now be made in detail to the preferred embodiments of the present invention, examples of which are illustrated in the accompanying drawings, wherein like reference numerals refer to like elements throughout.  
         [0017]    [0017]FIG. 1 shows two network node devices NK 1 , NK 2  of identical design. These are routers which connect a plurality of packet-oriented networks—not shown—or else “subnetworks”—not shown—to one another within a packet-oriented network on layer  3  (network layer) of the OSI reference model (Open Systems Interconnection) from the International Standardization Organization ISO. In addition to functional units—not shown—associated with conventional routers, the network node devices NK 1 , NK 2  have a compression/decompression unit CMP.  
         [0018]    Furthermore, the two network node devices NK 1 , NK 2  each have two logical inputs IP 1 , IP 2  and two logical outputs OP 1 , OP 2 . Shown diagrammatically in dash-dot lines between the two inputs IP 1 , IP 2  and the two outputs OP 1 , OP 2  are possible processing paths for data within the network node devices. Connection paths between the network node devices NK 1 , NK 2  are shown as lines.  
         [0019]    Uncompressed data arriving at the input IP 1  are either forwarded directly to the output OP 1  or are compressed by the compression/decompression unit CMP and forwarded to the output OP 2 . Compressed data arriving at the input IP 2  are either forwarded directly to the output OP 2  or are decompressed by the compression/decompression unit CMP and forwarded to the output OP 1 .  
         [0020]    The output OP 1  of the first network node device NK 1  is connected to the input IP 1  of the second network node device NK 2 , and the output OP 2  of the first network node device NK 1  is connected to the input IP 2  of the second network node device NK 2 .  
         [0021]    In packet-oriented networks, there are no fixed connection paths. Accordingly, the lines shown in dash-dot form and in solid form in the drawing are to be understood to be a diagrammatic representation of possible connection paths in a—connectionless—packet-oriented network. In addition, the second network node device NK 2  is just one possible connection partner for the first network node device NK 1 .  
         [0022]    Information is transmitted in a packet-oriented network using individual data packets which each contain a characterizing message header entry—often referred to as a header in the technical field—and a data segment containing the actual information. In this case, the message header entry contains information about a communication endpoint, that is to say, by way of example, a logical destination address for the data packet.  
         [0023]    The inputs and outputs IP 1 , IP 2 ; OP 1 , OP 2  are consequently not to be understood to be functional units, but rather serve to give a structured diagrammatic representation of logical communication endpoints for a data packet. Since communication in a packet-oriented network takes place bidirectionally, the terms inputs and outputs are not to be understood as restrictive indications of direction, but rather serve to give a diagrammatic representation of a way in which data packets are processed.  
         [0024]    Data packets are transmitted to their communication endpoint within a packet-oriented network via a plurality of intermediate stations, each intermediate station containing information about the respective further intermediate stations connected to it. In this case, a control device provides the respective intermediate station with a choice of next intermediate station on the basis of criteria such as QoS (Quality of Service), a data transfer rate which can be expected, etc., in the form of routing tables. In this context, the control device sets the next intermediate station using an entry for a corresponding address in the message header entry. The two network node devices NK 1 , NK 2  each have such a routing table—not shown—and a control device—not shown—for setting the next intermediate station.  
         [0025]    An example of a logical communication endpoint is a hardware and/or software structure, often referred to as “socket” in the technical field. A socket is referred to by a network number, a computer number and a port number. Sockets are the basis for implementations of a packet-oriented network based on a specification known to the person skilled in the art as the TCP/IP standard (Transfer Control Protocol/Internet Protocol). As an alternative to the TCP protocol, it is also possible to use UDP (User Datagram Protocol) or other transport protocols.  
         [0026]    The message header entry in a data packet contains an entry characterizing the port number. Allocation of the port numbers serves to identify different data streams that are processed simultaneously in the TCP protocol. These port numbers are used for interchanging data between application processes distributed in a packet-oriented network. These port numbers are allocated to application processes dynamically and randomly. For particular, frequently used application processes, however, the IANA (Internet Assigned Numbers Authority) allocates permanent port numbers, which are often referred to in the technical field as typical port numbers or else as “assigned numbers” or “well known numbers”.  
         [0027]    The diagrammatic inputs and outputs IP 1 , IP 2 ; OP 1 , OP 2  on the network node devices NK 1 , NK 2  are thus to be understood to be data packet communication endpoints associated with logical port numbers. In this case, a first input/output pair IP 1 , OP 1  has an associated typical—for an application process—port number, and a second input/output pair IP 2 , OP 2  has an associated corresponding port number.  
         [0028]    On the basis of these introductory illustrations, the method for transporting compressed data in packet-oriented networks is described in more detail below.  
         [0029]    To simplify illustration, the text below explains merely an application process based on the WWW/HTTP protocol (World Wide Web/Hypertext Transfer Protocol) which has the associated typical port number “80”. The corresponding port number defined for this application process is the port number “60”, which has not been allocated by the IANA and is accordingly available for a definition.  
         [0030]    Other services or application processes, such as SMTP (Simple Mail Transfer Protocol), FTP (File Transfer Protocol) etc., each have their typical port number and a corresponding port number associated with them in the network node devices NK 1 , NK 2 ; these are not illustrated in the drawing and in the description for reasons of space, however, but the method can also be carried out for these services and application processes in a similar way to in the exemplary embodiment described here.  
         [0031]    The port with the port number “60”, which port corresponds with the port number “80” for the application process HTTP, is defined as “compressed HTTP” and is referred to below as CHTTP (“Compressed HTTP”) for short. The first input/output pair IP 1 , OP 1  on the first and second network node devices NK 1 , NK 2  is assigned to receiving and forwarding data packets whose indication, located in the message header, of the port number “80” associates them with the application process HTTP. The second input/output pair IP 2 , OP 2  on the first and second network node devices NK 1 , NK 2  is assigned to receiving and forwarding data packets whose indication, located in the message header, of the port number “60” associates them with the application process HTTP but which, unlike data packets having the port number “80”, contain compressed data (CHTTP) based on the HTTP protocol in their data segment.  
         [0032]    The input IP 1  on both network node devices NK 1 , NK 2  diagrammatically represents data packets which arrive at the respective network node device NK 1 , NK 2  with the port number “80” in the message header entry and contain uncompressed data based on the HTTP protocol in their data segment.  
         [0033]    The input IP 2  on both network node devices NK 1 , NK 2  diagrammatically represents data packets which arrive at the respective network node device NK 1 , NK 2  with the port number “60” in the message header entry and contain compressed data based on the CHTTP protocol in their data segment.  
         [0034]    The output OP 1  on both network node devices NK 1 , NK 2  diagrammatically represents data packets which are forwarded with the port number “80” in the message header entry from the respective network node device NK 1 , NK 2  to the next intermediate station and contain uncompressed data based on the HTTP protocol in their data segment.  
         [0035]    The output OP 2  on both network node devices NK 1 , NK 2  diagrammatically represents data packets which are forwarded with the port number “60” in the message header entry from the respective network node device NK 1 , NK 2  to the next intermediate station and contain compressed data based on the CHTTP protocol in their data segment.  
         [0036]    The first network node device NK 1  can select the network node device NK 2  designed in accordance with the invention as the next intermediate station. That means that this network node device NK 2  likewise has a CHTTP port and can use the compression/decompression unit CMP to compress data received in uncompressed form and to decompress data received in compressed form. This configuration of the second network node device NK 2  is known by virtue of a corresponding entry in the routing table in the first network node device NK 1 .  
         [0037]    Processing of data packets is explained below.  
         [0038]    [0038]FIG. 2 shows the system of the first and second network node devices NK 1 , NK 2 . The possible processing paths for the data within the network node devices NK 1 , NK 2 , as shown in dash-dot lines in FIG. 1, are now shown in dotted lines and in a solid line, the solid line showing the actual processing path for the possible processing paths—shown as dotted lines. As in FIG. 1, a solid line also shows the path for data packets through the packet-oriented network.  
         [0039]    A further network node device NKO communicates with the first network node device NK 1  in the course of an interchange of data packets. This further network node device NKO can be a router, or else—as assumed below—a communication endpoint NKO. The communication endpoint NKO does not support a CHTTP protocol and transmits uncompressed data packets with the port number “80” to the first network node device NK 1 . Data packets with the port number “80” are received at the second input IP 2  of the first network node device NK 1 . Using routing tables, the second network node device NK 2  is selected as a destination for forwarding these data packets, an entry in the routing table indicating that said second network node device has a CHTTP port and is able to compress data received in uncompressed form and to decompress data received in compressed form using the compression/decompression unit CMP. The data packets are then supplied to the compression/decompression unit CMP within the first network node device NK 1 .  
         [0040]    The decision to supply the data to the compression/decompression unit CMP is made by a control logic unit—not shown. If system resources in the first network node device NK 1  are not sufficient for arithmetically complex compression, e.g. on account of the utilization level of a processor—not shown—or of a main memory—not shown—, the control logic unit prompts uncompressed forwarding to the next network node device NK 2 .  
         [0041]    Compression of the data packets by the compression/decompression unit CMP includes data taken from the data segments in a plurality of data packets. This compression is concluded according to current compression techniques with subsequent defragmentation of the data and packetization into data packets.  
         [0042]    The port number in the message header entry is set to the port number for CHTTP data “60”, which port number corresponds to the HTTP protocol. The entries in the message header entry for the network number and for the computer number remain the same, however. The compressed data packets are forwarded from the compression/decompression unit CMP to the first output OP 1  of the network node device NK 1 .  
         [0043]    At the second network node device NK 2 , these data packets are identified as CHTTP data from the corresponding port number “60” and are received at the input IP 1 . If an entry in the routing table in the second network node device NK 2  indicates that the network node device—not shown—coming after the second network node device NK 2  or else the communication endpoint—not shown—coming after the second network node device NK 2  has a CHTTP port itself and is able to use the compression/decompression unit CMP to compress data received in uncompressed form and to decompress data received in compressed form, the data packets are forwarded in the compressed state and with the port number “60” retained. The drawing shows this case using the solid line at the first output OP 1  and between the first input IP 1  and the first output OP 1 .  
         [0044]    If the network node device—not shown—coming after the second network node device NK 2  or the communication endpoint—not shown—coming after the second network node device NK 2  does not have a CHTTP port, according to an entry in the routing table, the compressed data packets are instead supplied to the compression/decompression unit CMP and the port number in the message header entries in the decompressed data packets is set to the value “80” associated with the HTTP protocol.  
         [0045]    The invention has been described in detail with particular reference to preferred embodiments thereof and examples, but it will be understood that variations and modifications can be effected within the spirit and scope of the invention.