throbber
United States Patent [19J
`Norris
`
`I lllll llllllll Ill lllll lllll lllll lllll lllll lllll lllll lllll llllll Ill lllll llll
`US005557749A
`5,557,749
`[llJ Patent Number:
`Sep.17, 1996
`[45] Date of Patent:
`
`[54) SYSTEM FOR AUTOMATICALLY
`COMPRESSING AND DECOMPRESSING
`DATA FOR SENDER AND RECEIVER
`PROCESSES UPON DETERMINATION OF A
`COMMON
`COMPRESSION/DECOMPRESSION
`METHOD UNDERSTOOD BY BOTH SENDER
`AND RECEIVER PROCESSES
`
`5,325,297
`5,481,701
`
`611994 Bird et al . .......................... 364/419.07
`111996 Chambers, IV ......................... 3951600
`
`Primary Examiner- Thomas C. Lee
`Assistant Examiner-Rehana P. Krick
`Attorney, Agent, or Finn- Blakely, Sokoloff, Taylor & Zaf(cid:173)
`man
`[57]
`
`ABSTRACT
`
`[75]
`
`Inventor: David Norris, Portland, Oreg.
`
`[73] Assignee: Intel Corporation, Santa Clara, Calif.
`
`[21) Appl. No.: 961,475
`Oct. 15, 1992
`[22] Flied:
`[51] Int. Cl.6 •..•..•.....•.••••...•..•••. G06F 13/00; G06F 13/14;
`G06F 13/36
`[52) U.S. Cl . .................... 395/200.18; 395/500; 395/872;
`395/888; 364/259.2; 3641260; 364/284.4
`[58) Field of Search ..................................... 395/500, 200,
`3951200.08, 872, 200.18, 888
`
`[56]
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`4,386,416 · 511983 Giltner et al ........................... 364/900
`611984 Bushaw et al .......................... 3641200
`4,454,575
`411985 Bantel et al .............................. 370162
`4,509,167
`4,879,742 1111989 Taniguchi et al. ...................... 379/111
`611991 Grimes .................................... 3641200
`5.021.943
`5,051,720
`9/1991 Kittirutsunetorn ...................... 340!310
`5,077,732 1211991 Fischer et al .......................... 370/85.4
`5,210,851
`511993 Kato et al ............................... 395/425
`711993 Wachob .................................. 358/146
`5,231.494
`
`A number of data compression and decompression server
`processes and a socket interface to which these server
`processes can be attached are provided to each computer
`system ofa network. Additionally, an OPEN, a WRITE, and
`a READ routine are provided to the operating system of each
`computer system of the network. The OPEN routine is used
`by a client sender process to establish connection to a client
`receiver process computer system. In the course of estab(cid:173)
`lishing the connection, the OPEN l'Outine automatically
`negotiate a compression/decompression method between the
`sender and the receiver computer system. The WRITE
`routine is used by the client sender process to send data to
`the client process. In the course of sending the data, lhe
`WRITE routine automatically invokes the appropriate com(cid:173)
`pression method to compress the data based on the result of
`the negotiation perfonned by the OPEN routine. The READ
`routine is used by the client receiver process to receive data
`from the sender process. Similarly, in the course of receiving
`the data, the READ routine automatically invokes the appro~
`priate decompression method to decompress the.data based
`also on the result of the negotiation performed by the OPEN
`routine. As a result, the automatic data compression and
`decompression are completely transparent to the client
`sender and receiver processes.
`
`4 Claims, 4 Drawing Sheets
`
`OPEN-52
`
`58
`
`60
`
`62
`
`DETERMINE
`ROUTE
`
`ESTABLISH
`CONNECTION &
`NEGOTIATE
`COMPRESSION
`METHOD
`
`LOG
`NEGOTIATED
`COMPRESSION
`METHOD
`
`DETERMINE
`NEGOTIATED
`COMPRESSION
`METHOD
`
`CALL
`COMPRESSION
`METHOD
`
`64
`
`66
`
`@M
`
`A
`
`70
`
`DETERt.UNE
`NEGOTIATED
`COMPRESSION
`METHOD
`
`CALL
`DECOMPRESSION
`METHOD
`
`72
`
`E}"
`
`'A
`
`IPR2016-01710
`UNIFIED EX1004
`
`

`
`U.S. Patent
`
`Sep. 17, 1996
`
`Sheet 1of4
`
`5,557,749
`
`12e
`
`12b
`
`Figure 1
`
`22 -I ___ ,......, n_E_~_°c_E_s __.n~
`
`IIO
`
`-20 14----l•I STORAGES
`
`-24
`
`CPU
`
`- 16
`
`MEMORY - 18
`
`NETWORK-26
`
`Figure2
`
`

`
`U.S. Patent
`
`Sep. 17, 1996
`
`Sheet 2 of 4
`
`5,557,749
`
`APPLICATIONS
`
`30
`
`/
`
`SERVER
`PROCESSES
`I
`
`OPERATING SYSTEM
`
`28
`
`/
`
`CLIENT
`PROCESSES
`I
`
`32
`
`34
`
`/
`
`SYSTEM CALL INTERFACE
`, ,
`FILE
`SYSTEM
`
`j l
`
`38
`
`/
`
`a
`, r
`
`36
`
`/
`
`NETWORK
`SERVICE
`
`H
`p
`
`j ~
`
`1 r
`
`4 0
`
`/
`
`HARDWARE CONTROL
`
`Figure3
`
`COMMUNICATION
`PROTOCOL LAYER
`
`46
`
`/
`
`Figure4
`
`DATA LINK
`LAYER
`
`48
`
`/
`
`

`
`U.S. Patent
`
`Sep. 17, 1996
`
`Sheet 3 of 4
`
`5,557,749
`
`SENDER_ 28,
`PROCESS
`
`RECEIVER 2811
`PROCESS -
`
`52
`
`54
`
`OPEN
`
`WRITE
`
`. - - - - - -
`
`56
`
`READ
`
`I
`_I
`
`Figure5
`
`MESSAGE SENT
`
`76
`
`/
`
`COMP
`COMP
`MTHDA MTHDB
`
`COMP
`MTHDC
`
`•••
`
`MESSAGE REPLIED
`
`78
`
`/
`
`COMP
`COMP
`MTHDC MTHDB
`
`•••
`
`Figure 7
`
`

`
`\C
`~
`......)
`...
`......)
`Ul
`Ul
`...
`Ul
`
`74
`
`RECEIVE
`
`DATA
`
`~
`
`""'
`0 ....,
`
`f:ll =-~ ...
`
`72
`
`DECOMPRESSION
`
`METHOD
`
`CALL
`
`..
`~
`f:ll
`
`....J
`lo-'
`
`°'
`
`\0
`\0
`lo-'
`
`70
`
`COMPRESSION
`NEGOTIATED
`DETERMINE
`
`METHOD
`
`69a
`
`YES
`
`68
`
`66
`
`64
`
`COMPRESSION
`
`METHOD
`
`CALL
`
`COMPRESSION
`NEGOTIATED
`DETERMINE
`
`METHOD
`
`63a
`
`YES
`
`I
`
`DATA
`SEND
`
`Figure 6
`
`r62
`
`LOG
`
`COMPRESSION
`NEGOTIATED
`
`METHOD
`
`COMPRESSION
`
`METHOD
`
`ESTABLISH r GO
`
`I
`
`ROUTE
`
`CONNECTION &
`
`NEGOTIATE
`
`""" ~ = """'
`
`~
`'"'C
`•
`rJJ
`e •
`
`/
`
`J.v~1nvu
`
`I '-
`
`I
`
`/
`
`l.YJJ.:J .l .l LV .&J
`
`•"-
`
`I
`
`58
`
`.
`
`DETERMINE
`
`"/
`
`READ-56/
`
`"-/
`
`WRITE-54/
`
`OPEN -52
`
`

`
`5,557,749
`
`1
`SYSTEM FOR AUTOMATICALLY
`COMPRESSING AND DECOMPRESSING
`DATA FOR SENDER AND RECEIVER
`PROCESSES UPON DETERMINATION OF A
`COMMON
`COMPRESSION/DECOMPRESSION
`METHOD UNDERSTOOD BY BOTH SENDER
`AND RECEIVER PROCESSES
`
`BACKGROUND OF THE INVENTION
`
`15
`
`20
`
`2
`relieving the sender applications the burden of having to
`know
`the compression techniques understood by the
`receiver applications. The present invention has particular
`application to microprocessor based computer systems con-
`5 nected in a local area network such as Ethernet.
`Under the present invention, a number of data compres(cid:173)
`sion and decompression server processes and a socket
`interface to which these server processes can be attached are
`provided to each computer system of a network. Addition-
`10 ally, an OPEN, a WRITE, and a READ routine are provided
`to the operating system of each computer system of the
`network. The OPEN routine is used by a client sender
`process to establish connection to a client receiver process
`computer system. In the course of establishing the connec-
`tion, the OPEN routine automatically negotiate a compres(cid:173)
`sion method between the sender and the receiver computer
`system. The WRITE routine is used by the client sender
`process to send data to the client process. In the course of
`sending the data, the WRITE routine automatically invokes
`the appropriate compression method to compress the data
`based on the result of the negotiation performed by the
`OPEN routine. The READ routine is used by the client
`receiver process to receive data from the sender process.
`Similarly, in the course of receiving the data, the READ
`routine automatically invokes the appropriate decompres(cid:173)
`sion method to decompress the data based also on the result
`of the negotiation performed by the OPEN routine. As a
`result, the automatic data compression and decompression
`are completely transparent to the client sender and receiver
`processes.
`In the presently preferred embodiment, the compression
`method is negotiated via messages exchanged between the
`sender and the receiver computer system, using a sender
`dominance priority resolution algorithm for resolving pri(cid:173)
`ority or preference conflicts. Additionally, the negotiated
`compression/decompression method is logged in the corre(cid:173)
`sponding routing tables of the sender and receiver computer
`system.
`
`1. Field of the Invention
`The present invention relates to the field of computer
`systems, in particular, microprocessor based computer sys(cid:173)
`tems connected as a network. More specifically, the present
`invention relates to data transfers between these computer
`systems.
`2. Background
`As cost performance of computer systems continues to
`improve, and more and more computer systems are con(cid:173)
`nected together via local and wide area networks, data
`communication between computer systems has become an
`essential part of computing. Various well known data com(cid:173)
`munication, networking and internetworking techniques
`have been developed to transfer data efficiently between
`computer systems in a network and across networks. How(cid:173)
`ever, faced with ever increasing volume of data to be
`transferred between systems, it has become increasingly
`necessary to push the performance limits of existing tech- 30
`nologies to their absolute maximums, particularly in local
`area networks comprising microprocessor based computer
`systems. One approach is to logically increase the band(cid:173)
`width of a network by transmitting compressed data, and
`decompresses them after reception. Various well known data 35
`compression and decompression techniques, such as Huff(cid:173)
`man and Liembel-Ziv W., have been developed.
`Typically it is the responsibility of the sender application
`to compress the data before transmission, and the responsi(cid:173)
`bility of the receiver application to decompress the data after 40
`reception. While the sender and receiver applications typi(cid:173)
`cally invoke specialized routines or servers to perform the
`actual compression and decompression of the data, never(cid:173)
`theless, the sender and receiver applications are placed with
`the burden of having to coordinate among themselves on 45
`which compression and decompression technique to use.
`The burden quickly become unmanageable for the applica(cid:173)
`tions on even a moderate size network with a moderate
`number of computer systems, each running a moderate
`number of applications. As a result, the use of data com- 50
`pression and decompression to increase data communication
`performance remains limited.
`Thus, it is desirable if data can be automatically trans(cid:173)
`ferred among computer systems in a network or across
`networks in a compressed manner that is transparent to the 55
`applications. As will be disclosed, the present invention
`provides a method and apparatus for transferring data among
`computer systems in a network that achieves the above
`described desired results.
`
`25
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`The objects, features, and advantages of the present
`invention will be apparent from the following detailed
`description of the presently preferred and alternate embodi(cid:173)
`ments of the invention with references to the drawings in
`which:
`FIG. 1 illustrates an exemplary computer network incor(cid:173)
`porated with the teachings of the present invention.
`FIG. 2 illustrates the hardware elements of an exemplary
`computer system in the ·exemplary computer,network of
`FIG.1.
`FIG. 3 illustrates the software elements of the exemplary
`computer system of FIG. 2.
`FIG. 4 illustrates a logical view of the networking services
`of the exemplary computer system of FIG. 2.
`FIG. 5 illustrates data communication between a sender
`and a receiver process executing on two different computer
`60 systems illustrated in FIG. 1 under the present invention.
`FIG. 6 illustrates the operation flows of the Open, Write,
`and Read services of the operating system illustrated in FIG.
`2 under the present invention.
`FIG. 7 illustrates one embodiment of the compression/
`65 decompression method negotiation messages exchanged
`between the sender and receiver computer systems under the
`present invention.
`
`SUMMARY OF THE INVENTION
`
`A method and apparatus for automatically transferring
`data between computer systems in a network or across
`networks in a compressed manner is disclosed. Under the
`present invention, data compression and decompression are
`transparent to the sender and receiver applications, thereby
`
`

`
`5,557,749
`
`3
`DETAILED DESCRIPTION PRESENTLY
`PREFERRED AND ALTERNATE
`EMBODIMENTS
`
`15
`
`25
`
`A method and apparatus for automatically transferring
`data between computer systems in a network or across
`networks in a compressed manner is disclosed. Under the
`present invention, data compression and decompression are
`transparent to the sender and receiver applications, thereby
`relieving the sender applications the burden of having to
`know the compression techniques understood by
`the
`receiver applications. The present invention has particular
`application to microprocessor based computer systems con(cid:173)
`nected in a local area network such as Ethernet. In the
`following description for purposes of explanation, specific
`numbers, materials and configurations are set forth in order
`to provide a thorough understanding of the present inven(cid:173)
`tion. However, it will be apparent to one skilled in the art
`that the present invention may be practiced without the
`specific details. In other instances, well known systems are
`shown in diagrammatical or block diagram form in order not
`to obscure the present invention unnecessarily.
`Referring now to FIG. 1, a block diagram illustrating a
`computer network incorporated with the teachings of the
`present invention is shown. Shown is a computer network 10
`comprising a number of nodes, 12a-12e. Each node, 12a .
`.. or 12e, represents a computer system or a sub-network
`incorporated with the teachings of the present invention.
`While the computer network 10 illustrated in FIG. 1 has a
`star-like topology, based on the descriptions to follow, it will
`be appreciated that the present invention may be practiced
`with networks and subnetworks of other well known topolo(cid:173)
`gies. Additionally, the present invention may be practiced
`with only a subset of the computer systems in a network or
`subnetwork having incorporated the teachings of the present
`invention. These computer systems having incorporated the
`teachings of the present invention will communicate with
`each other in compressed data. Communication between
`computer systems with and without the present invention
`and among computer systems without the present invention
`will be in uncompressed data.
`Referring now to FIGS. 2-4, three block diagrams illus(cid:173)
`trating the hardware and software elements, and network
`series of an exemplary computer system in the computer
`network of FIG. 1 incorporated with the teachings of the 45
`present invention is shown. FIG. 2 illustrates the hardware
`elements of such exemplary computer system 14. The com(cid:173)
`puter system 14 comprises a central processing unit (CPU)
`16, a memory 18, and an I/O module 20. Additionally, the
`exemplary computer system 14 also comprises a number of 50
`input/output devices 22, and a number of storage devices 24.
`The CPU 16 is coupled to the memory 18 and the I/O
`module 20. The input/output devices 22, and the storage
`devices 24 are also coupled to the I/O module 20. The I/O
`module 20 in tum is coupled fo a network 26.
`Except for the manner they are used to practice the present
`invention, the CPU 16, the memory 18, the I/O module 20,
`the input/output devices 22, the storage devices 24, and the
`network 26, are intended to represent a broad category of
`these hardware elements found in most computer systems. 60
`The constitutions and basic functions of these elements are
`well known and will not be otherwise further described here.
`FIG. 3 illustrates the software elements of the exemplary
`computer system of FIG. 2. Shown are client and server
`application processes, 28 and 30, executing on the computer
`system using system services provided by the operating
`system 32. In particular, the server processes 30 comprise a
`
`40
`
`30
`
`35
`
`4
`number of data compression and decompression server
`processes, such as server processes for the well known
`Huffman and Liembel-Ziv W. data compression and decom(cid:173)
`pression techniques. Otherwise, the client and server appli-
`5 cation processes, 28 and 30, are intended to represent a
`broad category of these processes found in most computer
`systems. Th_eir constitutions and basic functions are well
`known and will not be otherwise further described here.
`Also shown is an operating system 32 comprising a
`10 system call interface 34 for its services, a number of ~le
`system service routines 38, a number of network service
`routines 36, and a number of hardware control routines 40.
`In particular, the system call interface 34 comprises a socket
`like interface to which the above described data compression
`and decompression server processes can be attached. Fur-
`thermore, the file system service routines 38 comprises an
`OPEN, a READ, a WRITE and a CLOSE routine incorpo(cid:173)
`rated with the teachings of the present invention. The
`network service routines 36 comprise various routines for
`20 handling various communication protocols such as the
`Transmission Control Protocol (TCP), including a message
`routing table for tracking the communication path to a
`particular node in the network. The services provided by the
`network service routines 36 include adding header/trailer
`information to the data being transmitted to facilitate their
`routing, and guaranteeing that the data being transmitted
`will not be corrupted. The hardware control routines 40
`comprise various routines for handling physical layer inter(cid:173)
`action. Except for the teachings of the present invention
`incorporated in the OPEN, READ, WRITE and CLOSE
`routines, and the manner the other routines cooperate with
`them, the operating system 32 including the various routines
`34-40, regardless whether they are particularized above, are
`intended to represent a broad category of these elements
`found in most computer systems. Their constitutions and
`basic functions are well known, and will not be otherwise
`described in further detail here.
`FIG. 4 illustrates a logical view of the network services
`described above. Shown are two layers of network services:
`the communication protocol layer 46, and the data link
`service layer 48. The communication protocol layer 46
`comprises the various network related process control rou(cid:173)
`tines, and the data link service layer 48 comprises the
`various network related hardware control service routines.
`Similarly, except for the manners these various network
`service layers are used to practice the present invention, they
`are intended to represent a broad categories of network
`services found in various equivalent network service mod(cid:173)
`els. Their constitutions and basic functions are well known,
`and will not be otherwise described further here.
`Referring now to FIG. 5, a block diagram illustrating the
`data transmission and reception process between the sender
`and receiver application processes under the present inven(cid:173)
`tion is shown. As illustrated, the sender application process
`55 28' uses the OPEN call 52 to establish connection to the
`computer system on which the receiver application process
`28" is running. The sender application process 28' identifies
`the receiver process' computer system to the OPEN routine
`52. Upon establishing connection, the sender application
`process 28' uses the WRITE call 54 to transmit the data to
`the receiver process. The receiver application process 28"
`uses the READ call 56 to receive the data transmitted from
`the sender application process 28'. The OPEN, WRITE, and
`READ routines 52-56, and the above described network
`65 service related elements cooperate to automatically com(cid:173)
`press the data before their transmission and decompress
`them upon reception. The entire data compression and
`
`

`
`5,557,749
`
`5
`decompression process is transparent to the sender and
`receiver application processes 28' and 28".
`Referring now to FIGS. 6-7, two block diagrams illus(cid:173)
`trating the operation flows of the OPEN, READ, and
`WRITE routines, and the connection establishing messages 5
`exchanged between the sender and receiver computer sys(cid:173)
`tems under the present invention are shown. As illustrated in
`FIG. 6, upon invocation, the OPEN routine 52 determines
`the communication route to the receiver process' computer
`system using the above described routing table, block 58. 10
`Upon determining the communication route, the OPEN
`routine 52 attempts to establish connection to the receiver
`process' computer system, block 60. Simultaneously, the
`OPEN routine 52 negotiates a compression method with the
`receiver process' computer system. The OPEN routine 52
`initiates the negotiation by sending a message to the com- 15
`pression socket interface of the receiver process' computer
`system through the network services of both computer
`systems. As illustrated in FIG. 7, the message 76 comprises
`a list of data compression techniques available on the sender
`process' computer system, preferably in order of priority, i.e. 20
`preference. In response, the receiver process' computer
`system replies with a message 78 through the network
`services of both computer systems. The message 78 com(cid:173)
`prises the data compression techniques understood by the
`receiver process' computer system, preferably also in order 25
`of priority, i.e. preference. The negotiated compression
`method is inferred from the message exchange based on a
`predetermined priority or preference resolution algorithm.
`Upon negotiating the compression method, the negotiated
`compression method is logged in the routing tables of both 30
`computer systems, block 62.
`In the presently preferred embodiment, if the receiver
`process' computer system supports compression software
`but does not choose to allow exchange of compressed data
`at this time, the receiver process' computer system replies 35
`with a message comprising a null list of compression
`methods. Additionally, if the receiver process' computer
`system does not reply within a predetermined period, the
`OPEN routine 52 assumes that the receiver process' com(cid:173)
`puter system does not support exchange of compressed data.
`The OPEN routine 52 opens a normal connection through 40
`the network services of both computer systems and records
`in the routing table that no compression method negotiated.
`In the presently preferred embodiment, the difference in
`priority or preference is resolved by sender dominance. In
`other words, the "negotiated" compression method is the
`compression method with the highest sender priority under(cid:173)
`stood by the receiver. Thus, for the exemplary message
`exchange illustrated in FIG. 7, compression method B is the
`negotiated compression method. Additionally, the negoti- 50
`ated compression method is logged in the routing table of
`both computer systems.
`As illustrated in FIG. 6, upon invocation, the WRITE
`routine 54 determines from the routing table if a compres(cid:173)
`sion method was successfully negotiated, block 63. If a 55
`compression method was successfully negotiated, branch
`63a, the WRITE routine 54 determines from the routing
`table the negotiated compression method, block 64, and calls
`the appropriate data compression server process to compress
`the data, block 66. Upon either determining that no com- 60
`pression method was negotiated or returning from the data
`compression server, the write routine 54 sends the uncom(cid:173)
`pressed/compressed data to the receiver process' computer
`system through the network of services of both computer
`systems, block 68.
`·Similarly, upon invocation, the READ mu.tine 56 reads
`the uncompressed/compressed data through the network
`
`65
`
`45
`
`6
`service of its computer system. Concurrently, the READ
`routine 56 determines from the routing table if a compres(cid:173)
`sion method was successfully negotiated, block 69. If a
`compression method was successfully negotiated, branch
`69a, the READ routine 56 determines from the routing table
`the negotiated compression method, block 70, and calls the
`appropriate data decompression server process to decom(cid:173)
`press the data, block 72, before providing the received data
`to the receiver process, block 74. Otherwise, the READ
`routine 56 simply provides the uncompressed data to the
`receiver process, block 74.
`While for ease of understanding, the present invention has
`been described with the negotiated compression/decompres(cid:173)
`sion method being logged in the routing tables of the
`computer systems, it will be appreciated that the present
`invention may be practiced with the negotiated method
`being logged in other manners. Additionally, while for ease
`of understanding, the present invention has been described
`with the negotiation being conducted with each OPEN, it
`will be appreciated that the present invention may be prac(cid:173)
`ticed with the negotiation being performed only for the first
`OPEN between any two computer systems.
`Since, under the present invention, the compression and
`decompression of data are performed before providing the
`data to be transmitted to the sending computer system's
`networking service and after receiving the transmitted data
`from the receiving computer system's networking service,
`respectively, the present invention may be practiced without
`any modifications to the sending and receiving computer
`system's network services.
`While the present invention has been described in terms
`of presently preferred and alternate embodiments, those
`skilled in the art will recognize that the invention is not
`limited to the embodiments described. The method and
`apparatus of the present invention can be practiced with
`modification and alteration within the spirit and scope of the
`appended claims. The description is thus to be regarded as
`illustrative instead of limiting on the present invention.
`What is claimed is:
`1. In a network of computer systems comprising a sender
`computer system having a sender process and a receiver
`computer system having a receiver process, wherein said
`sender process provides data to said receiver process, a
`computer implemented method for transferring said data
`from said sender process to said receiver process, said
`method comprising the steps of:
`a) providing a sender list of compression/decompression
`methods understood by said sender computer system
`by a first system service of said sender computer
`system to a second system service of said receiver
`computer system while establishing connection
`between said sender computer system to said receiver
`computer system on behalf of said sender process, said
`sender list being provided in order of sender prefer(cid:173)
`ence;
`providing a receiver list of compression/decompression
`methods understood by said receiver computer system
`by said second system service to said first system
`service in response to said provided sender list while
`establishing connection between said receiver com(cid:173)
`puter system and said sender computer system, said
`receiver list being provided in order of receiver pref(cid:173)
`erence;
`individually a compression/decompression
`deducing
`method understood by both said sender and receiver
`computer systems in accordance to an identical prede-
`
`

`
`5,557,749
`
`7
`termined manner using said sender and receiver lists
`provided by said first as well as said second system
`service, based on sender preference dominance, with(cid:173)
`out further communication between said first and said
`second system services for the purpose of deducing 5
`said compression/decompression method understood
`by both;
`b) logging said determined compression/decompression
`method on said sender and receiver computer systems
`by said first and second system services respectively; 10
`c) compressing automatically said data to be transferred in
`accordance to said logged compression/decompression
`method by a third system service of said sender com(cid:173)
`puter system before transmission, as an integral part of
`transmitting said data from said sender computer sys- 15
`tern to said receiver computer system, in response to a
`data sending request of said sender process to said third
`system service; and
`d) decompressing automatically said data in accordance to 20
`said logged compression/decompression method by a
`fourth system service of said receiver computer system
`after receiving said data from said sender computer
`system, but before said received data is given to said
`receiver process, as an integral part of receiving and 25
`giving said data to said receiver process, in response to
`a data reading request of said receiver process.
`2. The method as set forth in claim 1, wherein, said step
`b) comprises logging said determined compression/decom(cid:173)
`pression method in a sender routing table of said sender
`computer system by said first system service, and in a
`receiver routing table of said receiver computer system by
`said second system service.
`3. In a network of computer systems comprising a sender
`computer system having a sender process and a receiver 35
`computer system having a receiver process, wherein said
`sender process provides data to said receiver process, an
`apparatus for transferring said data from said sender process
`to said receiver process, said apparatus comprising:
`a) first system service means disposed on said sender
`computer system for sending a sender list of compres(cid:173)
`sion/decompression methods understood by said sender
`computer system to a second system service means
`while establishing connection from said sender com-
`
`8
`puter system to said receiver computer system on
`behalf of said sender process, said sender list being in
`order of sender preference;
`said second system service means disposed on said
`receiver computer system for replying to said first
`system service with a receiver list of compression/
`decompression methods understood by said receiver
`computer system, said receiver list being in order of
`receiver preference;
`said first and second system services further individually
`deducing a compression/decompression method under(cid:173)
`stood by both said sender and receiver computer sys(cid:173)
`tems in accordance to an identical predetermined man(cid:173)
`ner using said sender and receiver lists, based on sender
`preference dominance, without further communication
`between said first and said second system services for
`the purpose of determining said compression/decom(cid:173)
`pression method understood by both;
`b) third system service means disposed on said sender
`computer system for transmitting said data to be trans(cid:173)
`ferred from said sender computer system to said
`receiver computer system in response to a data sending
`request from said sender process, and as an integral part
`of said transmission, automatically compressing said
`data in accordance to said determined compression/
`decompression method before transmission; and
`d) fourth system service means disposed on said receiver
`computer system for receiving said transmitted data,
`returning said received data to said receiver process in
`response to a data reading request from said receiver
`process, and as an integral part of said receiving and
`returning, decompressing said data in accordance to
`said determined compression/decompression method
`after receiving said data, but before returning said
`received data to said receiver process.
`4. The apparatus as set forth in claim 3, wherein, said first
`and second system services log said determined compres-
`40 sion/decompression method in a sender and a receiver
`routing table disposed on said sender and said receiver
`computer system respectively.
`
`30
`
`* * * * *
`
`

`
`UNITED STATES PATENT AND TRADEMARK OFFICE
`CERTIFICATE OF CORRECTION
`5,557 ,749
`September 17, 1996
`David Norris
`It Is certified that error appears In the above-identified patent and that said Letters
`.Patent is hereby corrected as shown below:
`
`PATENT NO.
`DATED
`INVENTOR($)
`
`In column 1 at line 37 delete ·uembel-Ziv• and insert --Liempel-Ziv--
`
`In column 4 at line 3 delete "Liembel-Ziv" and insert --Liempel-Ziv-
`
`Signed and Sealed this
`Twenty-eighth Day of January, 1997
`
`AllUI:

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket