Patent Publication Number: US-9906617-B2

Title: Method and apparatus for sending information using sharing cache between portable terminals

Description:
CROSS-REFERENCE TO RELATED APPLICATION AND CLAIM OF PRIORITY 
     The present application is related to and claims the benefit under 35 U.S.C. § 119(a) to a Korean patent application No. 10-2013-0033881 filed in the Korean Intellectual Property Office on Mar. 28, 2013, the entire disclosure of which is hereby incorporated by reference. 
     TECHNICAL FIELD 
     The present disclosure relates generally to a method and an apparatus for sending information by sharing a cache between portable terminals. 
     BACKGROUND 
     A web cache is widely used to reduce network traffic between network devices. The web cache primarily receives contents from a catch server, rather than a content server, using a cache server which stores contents between the content server and a portable terminal. Herein, an Internet service provider can install the cache server in an intra network and thus lessen external Internet traffic. 
     However, since a general web cache service classifies the contents using Uniform Resource Location (URL) information of Hypertext Transfer Transport Protocol (HTTP), it is difficult to apply it to various application layer protocols. As the same contents often have different URLs in the Internet, the web cache is effective only within the network. 
     In a mobile communication system for wireless communication, transmission/reception errors of packets transmitted and received by the portable terminal greatly increase compared to wired communication. Due to a plurality of portable terminals residing in vicinity, it is hard to share the cache information with all of the portable terminals and the continuous communication is infeasible because of the mobility of the portable terminals. 
     As a result, the portable terminals cannot share their cache. In this regard, a method and an apparatus for efficiently sharing the cache between the portable terminals are demanded. 
     SUMMARY 
     To address the above-discussed deficiencies, it is a primary aspect of the present disclosure to provide a method and an apparatus for sending information by sharing a cache between portable terminals. 
     Another aspect of the present disclosure is to provide a method and an apparatus for efficiently sending information without having to send and receive redundant information in a portable terminal. 
     Yet another aspect of the present disclosure is to provide a method and an apparatus of a receiving portable terminal for examining a received packet, when the received packet includes a previously received chunk, selecting chunks expected to be received next in its cache, and sending fingerprints of the selected chunks to a sending portable terminal. 
     Still another aspect of the present disclosure is to provide a method and an apparatus of a sending portable terminal for efficiently sending information by replacing a chunk replaceable with a received fingerprint, with the fingerprint in a next packet to send. 
     According to one aspect of the present disclosure, a method for operating a receiving portable terminal in a mobile communication system includes receiving a first packet from a sending portable terminal, determining at least one redundant fingerprint overlapping a fingerprint of at least one chunk of the first packet, in a fingerprint set cache, determining a fingerprint set including the most redundant fingerprint, in the fingerprint set cache, determining at least one fingerprint to send in the fingerprint set, sending the at least one fingerprint to the sending portable terminal and receiving a second packet from the sending portable terminal. 
     According to another aspect of the present disclosure, an apparatus of a receiving portable terminal in a mobile communication system includes a communication part configured to communicate with a sending portable terminal, a controller configured to receive a first packet from the sending portable terminal through the communication part, determine at least one redundant fingerprint overlapping a fingerprint corresponding to at least one chunk of the first packet in a fingerprint set cache, determine a fingerprint set including the most redundant fingerprint in the fingerprint set cache, determine at least one fingerprint to send in the determined fingerprint set, send the at least one determined fingerprint to the sending portable terminal through the communication part, and receive a second packet from the sending portable terminal through the communication part, and a storage configured to store the fingerprint set and the fingerprint set cache. 
     According to yet another aspect of the present disclosure, a method for operating a sending portable terminal in a mobile communication system includes sending a first packet to a receiving portable terminal, receiving at least one fingerprint from the receiving portable terminal, encoding a second packet to send to the receiving portable terminal, with the at least one fingerprint, and sending the encoded second packet to the receiving portable terminal. 
     According to still another aspect of the present disclosure, an apparatus of a sending portable terminal in a mobile communication system includes a communication part for communicating with a receiving portable terminal, and a controller configured to send a first packet to the receiving portable terminal through the communication part, receive at least one fingerprint from the receiving portable terminal, encode a second packet to send to the receiving portable terminal, with the at least one fingerprint, and send the encoded second packet to the receiving portable terminal through the communication part. 
     Other aspects, advantages, and salient features of the disclosure will become apparent to those skilled in the art from the following detailed description, which, taken in conjunction with the annexed drawings, discloses embodiments of the disclosure. 
     Before undertaking the DETAILED DESCRIPTION below, it may be advantageous to set forth definitions of certain words and phrases used throughout this patent document: the terms “include” and “comprise,” as well as derivatives thereof, mean inclusion without limitation; the term “or,” is inclusive, meaning and/or; the phrases “associated with” and “associated therewith,” as well as derivatives thereof, may mean to include, be included within, interconnect with, contain, be contained within, connect to or with, couple to or with, be communicable with, cooperate with, interleave, juxtapose, be proximate to, be bound to or with, have, have a property of, or the like; and the term “controller” means any device, system or part thereof that controls at least one operation, such a device may be implemented in hardware, firmware or software, or some combination of at least two of the same. It should be noted that the functionality associated with any particular controller may be centralized or distributed, whether locally or remotely. Definitions for certain words and phrases are provided throughout this patent document, those of ordinary skill in the art should understand that in many, if not most instances, such definitions apply to prior, as well as future uses of such defined words and phrases. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       For a more complete understanding of the present disclosure and its advantages, reference is now made to the following description taken in conjunction with the accompanying drawings, in which like reference numerals represent like parts: 
         FIG. 1  illustrates relations between fingerprints and chunks according to an embodiment of the present disclosure; 
         FIG. 2  illustrates relations between the fingerprints and the chunks according to an embodiment of the present disclosure; 
         FIG. 3  illustrates a fingerprint set cache according to an embodiment of the present disclosure; 
         FIGS. 4A and 4B  illustrate operations of a portable terminal according to an embodiment of the present disclosure; 
         FIG. 5  illustrates a method of a receiving portable terminal for determining the number of fingerprints to send to a sending portable terminal according to an embodiment of the present disclosure; 
         FIG. 6  illustrates a deduplication performance according to an embodiment of the present disclosure; 
         FIG. 7  illustrates the deduplication performance according to an embodiment of the present disclosure; 
         FIG. 8  illustrates operations between the sending portable terminal and the receiving portable terminal according to an embodiment of the present disclosure; 
         FIG. 9  illustrates a method for replacing the fingerprint set cache of the portable terminal according to an embodiment of the present disclosure; 
         FIG. 10  illustrates operations of the receiving portable terminal according to an embodiment of the present disclosure; 
         FIG. 11  illustrates operations of the sending portable terminal according to an embodiment of the present disclosure; and 
         FIG. 12  illustrates the portable terminal according to an embodiment of the present disclosure. 
     
    
    
     Throughout the drawings, like reference numerals will be understood to refer to like parts, components and structures. 
     DETAILED DESCRIPTION 
       FIGS. 1 through 12 , discussed below, and the various embodiments used to describe the principles of the present disclosure in this patent document are by way of illustration only and should not be construed in any way to limit the scope of the disclosure. Those skilled in the art will understand that the principles of the present disclosure may be implemented in any suitably arranged electronic devices. The following description with reference to the accompanying drawings is provided to assist in a comprehensive understanding of embodiments of the disclosure as defined by the claims and their equivalents. It includes various specific details to assist in that understanding but these are to be regarded as merely example. Accordingly, those of ordinary skill in the art will recognize that various changes and modifications of the embodiments described herein can be made without departing from the scope and spirit of the disclosure. In addition, descriptions of well-known functions and constructions may be omitted for clarity and conciseness. 
     The terms and words used in the following description and claims are not limited to the bibliographical meanings, but, are merely used by the inventor to enable a clear and consistent understanding of the disclosure. Accordingly, it should be apparent to those skilled in the art that the following description of embodiments of the present disclosure is provided for illustration purpose only and not for the purpose of limiting the disclosure as defined by the appended claims and their equivalents. 
     It is to be understood that the singular forms “a,” “an,” and “the” include plural referents unless the context clearly dictates otherwise. Thus, for example, reference to “a component surface” includes reference to one or more of such surfaces. 
     By the term “substantially” it is meant that the recited characteristic, parameter, or value need not be achieved exactly, but that deviations or variations, including for example, tolerances, measurement error, measurement accuracy limitations and other factors known to those of skill in the art, may occur in amounts that do not preclude the effect the characteristic was intended to provide. 
     Embodiments of the present disclosure provide a method and an apparatus for sending information by sharing a cache between portable terminals. 
     When all of the portable terminals of a mobile communication system cannot share their cache, the present disclosure can reduce network traffic for efficient information transmission by gradually sharing their cache information. 
     In the mobile communication system, the portable terminal can exchange information with a neighboring portable terminal with or without an infrastructure such as base station. The present portable terminal can exchange the information between the neighboring portable terminals by modifying a basic deduplication method. 
     The present deduplication method addresses the shortcomings of the aforementioned web cache and lessens the redundant traffic in the network. The present deduplication, which primarily targets packets of a network layer which is a third layer, can be applied independently of a higher protocol. 
     Unlike the web cache, the present deduplication method can designate a single packet to a byte stream and eliminate the previously transmitted part in the packet. 
       FIG. 1  depicts relations of fingerprints and chunks according to an embodiment of the present disclosure. 
     Referring to  FIG. 1 , in the present deduplication method, a portable terminal  100  for sending a packet divides a data payload of the corresponding packet into at least one chunk which is a fixed window size unit, calculates a hash value of the chunks, generates a fingerprint corresponding to the chunk based on the hash value, and stores the fingerprint to a fingerprint storage  110 . 
     When the generated fingerprint is already stored in the fingerprint storage  110 , the sending portable terminal  100  assumes that the corresponding chunk is cached in a receiving portable terminal and accordingly sends the packet by replacing the chunk with the fingerprint. 
     The fingerprint storage  110  includes the chunks and the fingerprint indicative of the corresponding chunks. Input and output of the fingerprint storage  110  is used to process packets of the network layer and thus requires a high speed. 
     For doing so, the fingerprint storage  110  retains a small capacity and can be stored in a memory. When the chunk pre-stored in the fingerprint storage  110  includes the packet to send, the data sending portable terminal can replace the corresponding chunk with the fingerprint. The receiving portable terminal can restore the fingerprint of the packet to the original chunk using its fingerprint storage  110 . The fingerprint storage can be managed based on a Least Recently Used (LRU) algorithm, a Least Frequently Used (LFU) algorithm, and so on. 
       FIG. 2  depicts relations of the fingerprints and the chunks according to an embodiment of the present disclosure. 
     Referring to  FIG. 2 , when chunks of the original packet to send and chunks of the fingerprint storage include the matching chunks, the portable terminal replaces the matching chunks with the corresponding fingerprints and sends the replaced packet to the receiving portable terminal. Herein, the process for reducing the packet size through the replacement is referred to as encoding. 
     Upon receiving the packet including the fingerprint, the receiving portable terminal restores the received packet by fetching the corresponding fingerprint from its fingerprint storage and replacing the fetched fingerprint with the corresponding chunk. The process for restoring the packet is referred to as decoding. 
     The present deduplication method determines whether the actual packet chunk is redundant. Accordingly, even when the same chunk has a different name or Uniform Resource Location (URL), the actual chunk is still the same and the present deduplication method can achieve the cache effect. Since the present deduplication method is applicable independently of the protocol, it does not need a particular application. With any application, the present deduplication method can transparently provide the cache effect to a user. 
       FIG. 3  depicts a fingerprint set cache according to an embodiment of the present disclosure. 
     Referring to  FIG. 3 , a fingerprint set includes chunks and fingerprints of the corresponding chunks, similar to the fingerprint storage. The fingerprint set stores the chunks received at the portable terminal on a time basis, and its size can be fixed or variable. 
     When a file is transmitted, the file is divided into a plurality of packets and sent in the time order. The present deduplication method is performed per packet of the network layer. In the packets of the network layer, it is difficult to distinguish different files. Hence, it is necessary to generate the time-based fingerprint set for the packet and to ensure correlation between the fingerprints as much as possible. 
     Upon receiving a new packet, the portable terminal generates the fingerprints of the chunks of the packet and retrieves the fingerprint set including the fingerprint matching the corresponding fingerprint from the fingerprint set cache. Next, the portable terminal sends to the sending portable terminal, the fingerprints of the chunks expected to be received next in the corresponding fingerprint set. Herein, the group of the fingerprint sets is referred to as a fingerprint set cache. The fingerprint sets in the fingerprint set cache can be changed using the LRU or LFU algorithm.
 
 f   1   =m,f   n   =g ( f   n-1   ,p ,α,β)  (1)
 
     Equation 1 determines the number of fingerprints to send from the receiving portable terminal to the sending portable terminal. 
     In Equation 1, f n  denotes the number of the fingerprints sent at an n-th time. m denotes an initial value of the number of the fingerprints initially transmitted. The function g( ) has parameters including the number of fingerprints f n-1  previously sent, an increase variable α, a decrease variable β, and a ratio p of the previous fingerprints and the used fingerprints. 
     When the ratio p is greater than or equal to a threshold, the number of the next fingerprints f n  increases. When the ratio p is smaller than the threshold by w, the number of the next fingerprints f n  decreases. 
     
       
         
           
             
               
                 
                   
                     
                       f 
                       n 
                     
                     = 
                     
                       
                         f 
                         
                           n 
                           - 
                           1 
                         
                       
                       + 
                       
                         α 
                         ⁢ 
                         
                             
                         
                         ⁢ 
                         p 
                       
                     
                   
                   ⁢ 
                   
                     
 
                   
                   ⁢ 
                   
                     
                       f 
                       n 
                     
                     = 
                     
                       
                         f 
                         
                           n 
                           - 
                           1 
                         
                       
                       - 
                       
                         β 
                         ⁢ 
                         
                             
                         
                         ⁢ 
                         p 
                       
                     
                   
                 
               
               
                 
                   ( 
                   2 
                   ) 
                 
               
             
             
               
                 
                   
                     
                       f 
                       n 
                     
                     = 
                     
                       
                         f 
                         
                           n 
                           - 
                           1 
                         
                       
                       × 
                       α 
                       ⁢ 
                       
                           
                       
                       ⁢ 
                       p 
                     
                   
                   ⁢ 
                   
                     
 
                   
                   ⁢ 
                   
                     
                       f 
                       n 
                     
                     = 
                     
                       
                         f 
                         
                           n 
                           - 
                           1 
                         
                       
                       × 
                       
                         p 
                         β 
                       
                     
                   
                 
               
               
                 
                   ( 
                   3 
                   ) 
                 
               
             
           
         
       
     
     The function g( ) can be expressed as Equation 2 and Equation 3. That is, the function g( ) can use Additive Increase Additive Decrease (AIAD) of Equation 2, Multiplicative Increase Multiplicative Decrease (MIMD) of Equation 3, or a combination of them with the increase variable α and the decrease variable β. 
       FIGS. 4A and 4B  depict operations of the portable terminal according to an embodiment of the present disclosure. 
     Referring to  FIGS. 4A and 4B , a sending portable terminal  410  sends an unencoded packet to a receiving portable terminal  450  in step (a). 
     Next, the receiving portable terminal  450  fetches the redundant chunk of the chunks of the received packet from the fingerprint set cache in steps (b) and (c). 
     For example, as shown in  FIG. 4 , the receiving portable terminal  450  receives the packet, obtains the fingerprints of the chunks of the packet, obtains the redundant fingerprints f 4  and f 5  of the obtained fingerprints from at least one fingerprint set of the fingerprint set cache, and acquires a fingerprint set  3  including f 4  and f 5 . 
     Next, the receiving portable terminal  450  fetches the fingerprint corresponding to the chunk expected to be received next, from the fingerprint set cache, and sends the fetched fingerprint to the sending portable terminal  410  in step (d). 
     The sending portable terminal  410  encodes and sends the next packet using the received fingerprints in step (e). In the encoding process, when the fingerprints of the chunks of the sent packet and the received fingerprints include the redundant fingerprint, the sending portable terminal  410  replaces the redundant chunk with the fingerprint. 
     Next, the receiving portable terminal  450  repeatedly determines the number of fingerprints to send next by comparing the number of fingerprints sent by itself with the number of the actual fingerprints, and sends new fingerprints corresponding to the determined number, to the sending portable terminal  410 . 
     For example, the receiving portable terminal  450  can obtain the fingerprints expected to be received next from the fingerprint set  3  of the fingerprint set cache. The fingerprints fetched by the receiving portable terminal  450  can include f 6 , f 7 , f 8 , and f 9 . The receiving portable terminal  450  can obtain the expected fingerprints on the time basis. 
       FIG. 5  is a flowchart of a method of the receiving portable terminal for determining the number of fingerprints to send to the sending portable terminal according to an embodiment of the present disclosure. 
     Referring to  FIG. 5 , the receiving portable terminal sets the value n to zero in order to newly start the fingerprint transmission algorithm. 
     When receiving the packet in step  510 , the receiving portable terminal determines whether n=0 in step  515 . That is, the receiving portable terminal determines whether to newly start the fingerprint transmission algorithm. Since the current stage is the initial stage, n=0 so that the receiving portable terminal newly starts the fingerprint transmission algorithm. 
     In step  520 , the receiving portable terminal determines whether there is the fingerprint set including the fingerprint of the received packet. That is, the receiving portable terminal determines whether its fingerprint set cache stores the fingerprint corresponding to the chunk of the received packet. Upon detecting the fingerprint set, the receiving portable terminal selects the fingerprint set including the most fingerprints in step  525 . That is, among the plurality of the fingerprint sets, the receiving portable terminal selects the fingerprint set including the most fingerprints. 
     In step  530 , the receiving portable terminal sets n=1 and sends m-ary fingerprints matching in the selected fingerprint set, to the sending portable terminal. That is, the receiving portable terminal sends the fingerprints to the sending portable terminal and continues the packet reception in step  510 . 
     When no fingerprint sets store the fingerprints of the receive packet in step  520 , the receiving portable terminal continues the packet reception. 
     Upon receiving the packet in step  510 , the receiving portable terminal determines whether n=0 in step  515 . That is, when n=1, that is, when there is no need to newly start the fingerprint transmission algorithm, the receiving portable terminal increases n by 1 and determines the number of fingerprints to send in step  535 . 
     The receiving portable terminal can determine the number of the fingerprints to send based on Equation 1, Equation 2, and Equation 3. That is, the receiving portable terminal can determine the number of the fingerprints to send next based on the function g( ). 
     To determine the number of the fingerprints, the receiving portable terminal can apply the AIAD based on Equation 2 and the MIMD based on Equation 3. 
     When the determined number of the fingerprints f n  is greater than or equal to m in step  540 , the receiving portable terminal selects and sends the f n -ary fingerprints of the fingerprint set to the sending portable terminal in step  545  and continues the packet reception in step  510 . 
     When the determined number of the fingerprints f n  is smaller than m, the receiving portable terminal determines whether there is the fingerprint set including the fingerprint of the received packet in step  520  and repeats the next steps. 
       FIG. 6  depicts a deduplication performance according to an embodiment of the present disclosure. 
     Referring to  FIG. 6 , the number of the matching fingerprints/the number of the sent fingerprints is represented based on time, and 1 indicates the highest matching of the fingerprints. The number of the fingerprints/the number of the sent fingerprints ranges from 0.1 to 1. 
       FIG. 7  depicts the deduplication performance according to an embodiment of the present disclosure. 
     Referring to  FIG. 7 , to demonstrate the reduction effect of the present deduplication, 1− the traffic (byte) using the present method/the traffic (byte) without the present method is represented based on time. In  FIG. 7 , zero in the vertical axis indicates no traffic reduction and 1 indicates the high traffic reduction. 
     In  FIG. 7 , it is assumed that thirty 1000-byte packets are transmitted, the size of the chunk to generate with the fingerprint is 70 bytes, and the fingerprint size compressed with the hash function is 20 bytes. 
     The algorithm for increasing or decreasing the number of the fingerprints to send adopts the MIMD algorithm, and assumes m=2, α=2, β=2, and threshold=0.7. 
     As shown in  FIG. 7 , as the probability of the vertical axis rises, the traffic reduction gradually increases. Even when the probability sharply drops, the traffic reduction does not fall suddenly. The reduction over 30% can be achieved at the highest gain based on the fingerprint compression ratio. 
       FIG. 8  depicts the operations between the sending portable terminal and the receiving portable terminal according to an embodiment of the present disclosure. 
     Referring to  FIG. 8 , the sending portable terminal  810  sends its file to the receiving portable terminal  820  on the packet basis in step (a). At this time, the packet is not encoded. Next, the receiving portable terminal  820  generates the fingerprints of the chunks in the received packet. 
     Next, the receiving portable terminal  820  fetches the fingerprint set overlapping the generated fingerprints from its fingerprint set cache. Since the receiving portable terminal  820  stores the chunks of the previous packet in the fingerprint set on the time basis, it is highly likely that it receives the next chunks of the last redundant chunk in the next packet. 
     The receiving portable terminal  820  selects the fingerprint set including the most fingerprints. That is, among the plurality of the fingerprint sets, the receiving portable terminal  820  selects the fingerprint set including the most fingerprints. 
     The receiving portable terminal  820  determines the number of the fingerprints expected to be received based on Equation 1, Equation 2, and Equation 3 in step (b) and sends the corresponding fingerprints to the sending portable terminal  810  in step (c). 
     The sending portable terminal  810  encodes the packet to send with the received fingerprints in step (d) and sends the packet to the receiving portable terminal  820  in step (e). When the fingerprints of the chunks of the sent packet and the received fingerprints include the redundant fingerprint in the process of the packet encoding, the sending portable terminal  810  replaces the redundant chunk with the fingerprint. 
     Next, the receiving portable terminal  820  receives the encoded packet and fetches the redundant fingerprint set of the generated fingerprint from its fingerprint set cache. 
     The receiving portable terminal  820  selects the fingerprint set including the most fingerprints. That is, among the plurality of the fingerprint sets, the receiving portable terminal  820  selects the fingerprint set including the most fingerprints. 
     The receiving portable terminal  820  determines the number of the fingerprints expected to be received based on Equation 1, Equation 2, and Equation 3 in step (f) and sends the corresponding fingerprints to the sending portable terminal  810  in step (g). 
       FIG. 9  is a flowchart of a method for replacing the fingerprint set cache of the portable terminal according to an embodiment of the present disclosure. 
     Referring to  FIG. 9 , after the booting up, when receiving the packet in step  905 , the portable terminal determines the fingerprint in the received packet in step  910  and stores the determined fingerprint in the fingerprint storage in step  915 . 
     When the stored fingerprint is related to the previous fingerprint in step  920  and the number of the fingerprints of the fingerprint storage exceeds the threshold in step  925 , the portable terminal generates one fingerprint set and moves the generated fingerprint set to the fingerprint set cache in step  930 . 
     When the stored fingerprint is not related to the previous fingerprint in step  920 , the portable terminal generates one fingerprint set and moves the generated fingerprint set to the fingerprint set cache in step  930 . 
     The corresponding fingerprint set in the fingerprint set cache can be newly prioritized based on the LRU or LFU algorithm. 
     The fingerprints selected from the corresponding fingerprint set and sent to the sending portable terminal are stored in their fingerprint storage. The fingerprint storage stores the fingerprints duplicated from the fingerprint set and the fingerprints newly extracted from the received packet on the time basis. When the stored fingerprints exceed the threshold, the corresponding fingerprints are generated as a new fingerprint set and moved to the fingerprint set cache. 
       FIG. 10  illustrates operations of the receiving portable terminal according to an embodiment of the present disclosure. 
     Referring to  FIG. 10 , the receiving portable terminal receives the unencoded packet in step  1005  and updates the fingerprint set cache by generating the fingerprints of the chunks of the received packet in step  1010 . The update process has been explained in  FIG. 9 . 
     Next, the receiving portable terminal retrieves the fingerprint set overlapping the generated fingerprints from its fingerprint set cache. Since the receiving portable terminal stores the chunks of the previous packet in the fingerprint set on the time basis, it is highly likely that it receives the next chunks of the last redundant chunk in the next packet. The receiving portable terminal selects the fingerprint set including the most fingerprints. That is, among the plurality of the fingerprint sets, the receiving portable terminal selects the fingerprint set including the most fingerprints. Next, the receiving portable terminal determines the number of the fingerprints expected to be received based on Equation 1, Equation 2, and Equation 3 in step  1015  and sends the corresponding fingerprints to the sending portable terminal in step  1020 . 
     Next, the receiving portable terminal receives the encoded packet in step  1025  and updates the fingerprint set cache by generating the fingerprints of the chunks of the received packet in step  1030 . The update process has been explained in  FIG. 9 . 
     Next, the receiving portable terminal retrieves the fingerprint set overlapping the generated fingerprints from its fingerprint set cache, and selects the fingerprint set including the most fingerprints. That is, among the plurality of the fingerprint sets, the receiving portable terminal selects the fingerprint set including the most fingerprints. Next, the receiving portable terminal determines the number of the fingerprints expected to be received based on Equation 1, Equation 2, and Equation 3 in step  1035  and sends the corresponding fingerprints to the sending portable terminal in step  1040 . 
       FIG. 11  illustrates operations of the sending portable terminal according to an embodiment of the present disclosure. 
     Referring to  FIG. 11 , the sending portable terminal sends its file to the receiving portable terminal on the packet basis in step  1105 . At this time, the packet is not encoded. 
     In step  1110 , the sending portable terminal receives the fingerprints from the receiving portable terminal. 
     The sending portable terminal encodes the packet to send with the received fingerprints in step  1115  and sends the packet to the receiving portable terminal in step  1120 . 
     When the fingerprints of the chunks of the packet to send and the received fingerprints include the redundant fingerprint in the process of the packet encoding, the sending portable terminal replaces the redundant chunk with the fingerprint. 
       FIG. 12  is a block diagram of the portable terminal according to an embodiment of the present disclosure. 
     Referring to  FIG. 12 , the portable terminal includes a Radio Frequency (RF) processor  1210 , a modem  1220 , a controller  1230 , and a storage  1240 . The RF processor  1210  and the modem  1220  can be referred to as a communication part. 
     The RF processor  1210  transmits and receives signals over a radio channel using signal band conversion and amplification. That is, the RF processor  1210  up-converts a baseband signal fed from the modem  1220  to an RF signal, transmits the RF signal over an antenna, and down-converts an RF signal received over the antenna to a baseband signal. For example, the RF processor  1210  can include an amplifier, a mixer, an oscillator, a Digital to Analog Converter (DAC), an Analog to Digital Converter (ADC), and so on. While the single antenna is depicted in  FIG. 12 , the base station can include a plurality of antennas. 
     The modem  1220  converts the baseband signal to a bit string and vice versa according to a physical layer standard of the system. For example, to transmit data according to Orthogonal Frequency Division Multiplexing (OFDM), the modem  1220  generates the complex symbols by encoding and modulating a transmit bit string, maps the complex symbols to the subcarriers, and generates the OFDM symbols using Inverse Fast Fourier Transform (IFFT) and Cyclic Prefix (CP) addition. When receiving data, the modem  1220  splits the baseband signal fed from the RF processor  1210  to the OFDM symbols, restores the signals mapped to the subcarriers using FFT, and restores the receive bit string by demodulating and decoding the signals. Particularly, the modem  1220  serves as a Media Access Control (MAC) layer of the base station or the terminal. 
     The controller  1230  controls the operations of the portable terminal. For example, the controller  1230  controls the signal transmission and reception through the modem  1220  and the RF processor  1210 . The controller  1230  can include at least one processor. 
     The controller  1230  includes a content manager  1235 . The content manager  1235  carries out the deduplication of the present disclosure. 
     The storage  1240  stores a program for controlling the operations of the portable terminal, and temporary data generating in the program execution. In particular, the storage  1240  includes a fingerprint set cache  1245  and a fingerprint storage  1247 . 
     Now, the operations of the portable terminal being the receiving portable terminal are described. 
     Upon receiving the unencoded packet, the content manager  1235  updates the fingerprint set cache  1245  by generating the fingerprints of the chunks of the received packet. The update process has been explained in  FIG. 9 . 
     Next, the content manager  1235  retrieves the fingerprint set overlapping the generated fingerprints from its fingerprint set cache  1245 . Since the content manager  1235  stores the chunks of the previous packet in the fingerprint set on the time basis, it is highly likely that it receives the next chunks of the last redundant chunk in the next packet. The content manager  1235  selects the fingerprint set including the most fingerprints. That is, among the plurality of the fingerprint sets, the content manager  1235  selects the fingerprint set including the most fingerprints. Next, the content manager  1235  determines the number of the fingerprints expected to be received based on Equation 1, Equation 2, and Equation 3 and sends the corresponding fingerprints to the sending portable terminal. 
     Next, upon receiving the encoded packet, the content manager  1235  updates the fingerprint set cache  1245  by generating the fingerprints of the chunks of the received packet. The update process has been explained in  FIG. 9 . 
     Next, the content manager  1235  retrieves the fingerprint set overlapping the generated fingerprints from its fingerprint set cache  1245 , and selects the fingerprint set including the most fingerprints. That is, among the plurality of the fingerprint sets, the content manager  1235  selects the fingerprint set including the most fingerprints. Next, the content manager  1235  determines the number of the fingerprints expected to be received based on Equation 1, Equation 2, and Equation 3 and sends the corresponding fingerprints to the sending portable terminal. 
     Now, the operations of the portable terminal being the sending portable terminal are described. 
     The content manager  1235  sends its file to the receiving portable terminal on the packet basis. At this time, the packet is not encoded. 
     The content manager  1235  receives the fingerprints from the receiving portable terminal. 
     The content manager  1235  encodes the packet to send with the received fingerprints and sends the packet to the receiving portable terminal. 
     When the fingerprints of the chunks of the sent packet and the received fingerprints include the redundant fingerprint in the process of the packet encoding, the content manager  1235  replaces the redundant chunk with the fingerprint. 
     The present deduplication method encodes the existing packet to the smaller packet. The existing packet can be encoded and compressed to about ⅓ of the original packet using the hash function of the deduplication method. 
     Such a gain can be obtained all the time when the caches of the sending portable terminal and the receiving portable terminal are synchronized. As discussed earlier, it is difficult to synchronize the caches of the sending portable terminal and the receiving portable terminal in the mobile communication system where the portable terminal moves around. 
     Hence, the gain gradually increases using the gradual cache sharing method of the present disclosure. 
     The present deduplication method increases or decreases the number of the fingerprints to send based on the probability of the number of the sent fingerprints and the number of the redundant fingerprints. 
     That is, when the number of the sent fingerprints and the number of the redundant fingerprints are identical, the probability is 1. Accordingly, it is highly likely that the sending portable terminal stores the same fingerprint set. Naturally, the sending portable terminal can encode and send more packets. 
     By contrast, when the number of the redundant fingerprints in the sent fingerprints is small, the probability falls and the packets to encode and send also reduce. Hence, the portable terminal decreases the number of the fingerprints to send. 
     As such, the present deduplication method achieves high efficiency based on the probability. 
     The methods as described in the claims and/or the specification of embodiments of the present disclosure can be implemented using hardware, software, or a combination of them. 
     As for the software, a computer-readable storage medium including one or more programs (software modules) can be provided. One or more programs stored in the computer-readable storage medium can be configured for execution by one or more processors of an electronic device. One or more programs include instructions for controlling the electronic device to execute the methods according to the embodiments as described in the claims and/or the specification of the present disclosure. 
     Such a program (software module, software) can be stored to a random access memory, a non-volatile memory including a flash memory, a Read Only Memory (ROM), an Electrically Erasable Programmable ROM (EEPROM), a magnetic disc storage device, a Compact Disc (CD)-ROM, Digital Versatile Discs (DVDs) or other optical storage devices, and a magnetic cassette. Alternatively, the programs can be stored to a memory combining part or all of those recording media. A plurality of memories can be equipped. 
     The programs can be stored in an attachable storage device accessible via a communication network such as Internet, Intranet, Local Area Network (LAN), Wide LAN (WLAN), or Storage Area Network (SAN), or a communication network by combining these networks. The storage device can access the present electronic device through an external port. A separate storage device can access the present electronic device over a communication network. 
     As set forth above, the portable terminal can efficiently send the information without having to send and receive the redundant information. 
     Since the present disclosure is used independently of the protocol, it does not need a particular application. With any application, the present disclosure can transparently provide the cache effect to the user. 
     While the disclosure has been shown and described with reference to certain embodiments thereof, it will be understood by those skilled in the art that various changes in form and details can be made therein without departing from the spirit and scope of the disclosure as defined by the appended claims and their equivalents.