KR101568390B1 - Method for transmitting and receiving data using bloom filter - Google Patents
Method for transmitting and receiving data using bloom filter Download PDFInfo
- Publication number
- KR101568390B1 KR101568390B1 KR1020140025433A KR20140025433A KR101568390B1 KR 101568390 B1 KR101568390 B1 KR 101568390B1 KR 1020140025433 A KR1020140025433 A KR 1020140025433A KR 20140025433 A KR20140025433 A KR 20140025433A KR 101568390 B1 KR101568390 B1 KR 101568390B1
- Authority
- KR
- South Korea
- Prior art keywords
- packet
- bloom filter
- fingerprints
- chunks
- transmitting
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/166—IP fragmentation; TCP segmentation
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
수신 단말기에서 동작하는 데이터 수신 방법이 개시된다. 상기 데이터 수신 방법은 송신 단말기로부터 패킷을 수신하는 단계, 수신된 패킷의 인코딩 여부를 확인하는 단계, 및 상기 수신된 패킷이 인코딩된 패킷인 경우, 상기 인코딩된 패킷에 포함된 참조 값을 상기 참조 값에 대응하는 핑거프린트에 대응하는 청크로 교체하여 상기 인코딩된 패킷을 디코딩하는 단계를 포함한다.A data receiving method operating in a receiving terminal is disclosed. The data receiving method includes receiving a packet from a transmitting terminal, checking whether the received packet is encoded, and determining whether a reference value included in the encoded packet is a reference value, if the received packet is an encoded packet, And decoding the encoded packet by replacing with a chunk corresponding to a fingerprint corresponding to the encoded fingerprint.
Description
본 발명의 개념에 따른 실시 예는 블룸 필터를 이용한 데이터 송수신 방법에 관한 것으로, 특히, 수신된 패킷으로부터 다음에 수신될 패킷을 예측하고, 예측 정보를 포함하는 블룸 필터를 이용하여 전송될 패킷의 용량을 줄임으로써, 트래픽을 감소시킬 수 있는 데이터 송수신 방법에 관한 것이다.More particularly, the present invention relates to a method of transmitting / receiving data using a Bloom filter, and more particularly, to a method and apparatus for predicting a next packet to be received from a received packet, a capacity of a packet to be transmitted using a Bloom filter including prediction information To a data transmission / reception method capable of reducing traffic.
네트워크의 트래픽을 감소시키기 위한 일반적인 방법으로서 웹 캐시 기법이 널리 사용되고 있다. 상기 웹 캐시 기법은 주로 컨텐츠 제공 서버와 사용자 단말기 사이에 구비된 캐시 서버를 활용한다. 상기 캐시 서버는 빈번하게 요청되는 컨텐츠들을 저장하고 있기 때문에 상기 사용자 단말기를 이용하는 사용자는 상기 사용자 단말기로부터 원거리에 위치한 상기 컨텐츠 제공 서버가 아니 상기 사용자 단말기로부터 근거리에 위치한 상기 캐시 서버로부터 컨텐츠를 제공받을 수 있다.As a general method for reducing the traffic of a network, a web cache technique is widely used. The web cache technique utilizes a cache server provided between a content providing server and a user terminal. Since the cache server stores frequently requested contents, a user using the user terminal can receive content from the cache server located near by the user terminal rather than the content providing server located remotely from the user terminal have.
하지만 일반적인 웹 캐시 기법은 HTTP(Hyper Text Protocol)의 URL(Uniform Resource Locator) 정보를 이용하여 컨텐츠의 동일 여부를 구분하기 때문에 다양한 응용계층 프로토콜에 사용되기 어려다. 또한, 인터넷에는 동일한 내용을 포함하는 컨텐츠가 서로 다른 URL 정보를 가지고 있는 경우가 많기 때문에 이를 이용한 컨텐츠 구별 방법 또한 신뢰성을 주지 못하고 있다.However, since the general web caching technique uses the uniform resource locator (URL) information of HTTP (Hyper Text Protocol) to identify the same content, it can not be used in various application layer protocols. In addition, since the contents having the same contents often have different URL information on the Internet, the method of distinguishing contents using the contents also has not provided reliability.
상기와 같은 웹 캐시 기법의 문제점을 해결하기 위한 기법으로서, 프로토콜에 독립적인 중복 제거 기법(protocol-independent redundancy elimination technique)이 존재한다. 상기 중복 제거 기법은 네트워크에서 중복적으로 전송되는 트래픽을 감소시키기 위한 기법으로써, 주로 네트워크 3계층인 네트워크 계층의 패킷을 대상으로 하기 때문에 상위 프로토콜에 독립적으로 사용될 수 있다.As a technique for solving the problem of the above-described web cache technique, there is a protocol-independent redundancy elimination technique. The deduplication technique is a technique for reducing traffic transmitted redundantly in a network, and can be used independently of an upper protocol because it mainly targets packets at a network layer, which is a
도 1은 종래의 중복 제거 기법을 수행하기 위한 시스템을 도시한다.FIG. 1 illustrates a system for performing a conventional de-duplication technique.
도 1을 참조하면, 중복 제거 시스템(1)은 유선상에 위치한 고정된 2 개의 단말기인 송신 단말기(3)와 수신 단말기(5)를 포함한다. Referring to FIG. 1, the
송신 단말기(3)와 수신 단말기(5)는 서로의 캐시 정보를 공유하여 이미 전송된 트래픽, 즉 중복되어 전송되는 트래픽을 제거함으로써 두 단말기 사이의 트래픽을 감소시킨다.The transmitting
송신 단말기(3)는 패킷(P1)을 바이트 스트림(byte stream)으로 보고, 패킷(P1) 내에서 이미 전송된 부분을 제거함으로써 트래픽을 제거할 수 있다. 즉, 송신 단말기(3)는 패킷(P1)의 데이터 페이로드를 청크(chunk) 단위로 분할하며, 다수의 청크들(C1 내지 C5) 각각의 해시(hash) 값을 계산한 후에 계산된 해시 값에 기반한 핑거프린트(fingerprint)를 생성한다.The transmitting
생성된 핑거프린트가 송신 단말기(3) 내의 핑거프린트 저장소에 이미 저장되어 있다면 핑거프린트에 대응하는 데이터가 수신 단말기(5) 측에도 캐시되어 있음을 의미할 수 있다. 따라서, 송신 단말기(3)는 패킷(P1) 내의 다수의 청크들 중 이미 전송되었다고 판단된 청크들(C2, C4)을 대응하는 핑거프린트(F2, F4)로 교체한다. 이와 같이 중복되는 청크들을 핑거프린트로 교체하여 패킷의 크기를 줄이는 과정을 인코딩(encoding)이라 한다. 송신 단말기(3)는 인코딩된 패킷(P2)을 수신 단말기(5)로 전송한다.If the generated fingerprint is already stored in the fingerprint storage in the
수신 단말기(5)는 수신된 패킷(P3) 내의 핑거프린트(F2, F4)를 자신의 핑거프린트 저장소에서 검색하고, 핑거프린트(F2, F4)를 이에 대응하는 실제 데이터(C2, C4)로 교체하여 패킷을 복원시킨다. 위와 같은 패킷 복원 과정을 디코딩(decoding)이라 한다.The
결과적으로, 핑거프린트의 크기가 청크의 크기에 비해 매우 작기 때문에 송신 단말기(3)와 수신 단말기(5) 사이의 네트워크 트래픽을 효율적으로 줄일 수 있다.As a result, the network traffic between the
기존의 중복 제거 기법은 단말 사이에 전송되는 패킷의 에러율이 매우 낮고, 단말 사이의 통신이 지속적으로 가능하여 상호간의 캐시 정보를 공유하는 것이 용이한 유선 네트워크 상에서 활용가능한 효율적인 해결책을 제시하고 있다. The existing deduplication technique provides an efficient solution that can be used on a wired network where the error rate of the packets transmitted between the terminals is very low and communication between the terminals is continuously possible so that mutual cache information can be easily shared.
그러나, 전송되는 패킷의 에러율이 높으며, 단말 사이의 캐시 정보의 공유가 어려우며, 지속적인 통신이 불가능한 무선상의 단말간 직접 통신 상에서 상기 기존의 중복 제거 기법을 적용하기는 어렵다.However, it is difficult to apply the existing deduplication technique in direct communication between wireless terminals in which the error rate of the transmitted packets is high, sharing of cache information between terminals is difficult, and continuous communication is impossible.
본 발명이 이루고자 하는 기술적인 과제는 수신된 패킷으로부터 다음에 수신될 패킷을 예측하고, 예측 정보를 포함하고 있는 블룸 필터를 이용하여 상기 다음에 수신될 패킷의 용량을 감소시킬 수 있는 데이터 송수신 방법을 제공하는 것이다.SUMMARY OF THE INVENTION The present invention provides a data transmission / reception method capable of predicting a next packet to be received from a received packet and reducing the capacity of a packet to be received next using a bloom filter including prediction information .
본 발명의 실시 예에 따른, 수신 단말기에서 동작하는 데이터 수신 방법은 송신 단말기로부터 패킷을 수신하는 단계, 수신된 패킷의 인코딩 여부를 확인하는 단계, 및 상기 수신된 패킷이 인코딩된 패킷인 경우, 상기 인코딩된 패킷에 포함된 참조 값을 상기 참조 값에 대응하는 핑거프린트에 대응하는 청크로 교체하여 상기 인코딩된 패킷을 디코딩하는 단계를 포함한다.According to another aspect of the present invention, there is provided a method of receiving data from a receiving terminal, the method comprising: receiving a packet from a transmitting terminal; checking whether the received packet is encoded; And replacing the reference value included in the encoded packet with a chunk corresponding to the fingerprint corresponding to the reference value to decode the encoded packet.
상기 디코딩하는 단계에서 상기 인코딩된 패킷을 디코딩하지 못한 경우, 상기 수신된 패킷에 대한 원본 패킷의 송신을 상기 송신 단말기에 요청하는 단계를 더 포함할 수 있다.And requesting the transmitting terminal to transmit an original packet to the received packet if the encoded packet can not be decoded in the decoding step.
또한, 상기 수신된 패킷이 인코딩된 패킷이 아닌 경우, 상기 수신된 패킷을 다수의 청크들로 분할하고, 각각이 상기 다수의 청크들 각각에 대응하는 다수의 핑거프린트들을 생성하는 단계, 상기 다수의 핑거프린트들 중 미리 저장된 다수의 블룸 필터들 각각에 속하는 핑거프린트의 갯수를 도출하는 단계, 미리 결정된 값 이상의 갯수를 포함하는 블룸 필터를 상기 송신 단말기로 송신하는 단계를 포함할 수 있다.Dividing the received packet into a plurality of chunks and generating a plurality of fingerprints, each corresponding to each of the plurality of chunks, if the received packet is not an encoded packet; Deriving the number of fingerprints belonging to each of a plurality of previously stored bloom filters among the fingerprints, and transmitting the bloom filter including the number of fingerprints exceeding a predetermined value to the transmitting terminal.
또한, 상기 데이터 수신 방법은 상기 미리 결정된 값 이상의 갯수를 포함하는 블룸 필터가 존재하지 않는 경우, 상기 수신된 패킷에 대한 원본 패킷의 송신을 상기 송신 단말기에 요청하는 단계를 더 포함할 수 있다.The data receiving method may further include requesting, by the transmitting terminal, transmission of an original packet for the received packet if there is no Bloom filter including the number exceeding the predetermined value.
또한, 상기 데이터 수신 방법은 상기 송신 단말기로부터, 상기 블룸 필터를 이용하여 인코딩된 다음 패킷을 수신하는 단계를 더 포함할 수 있다.In addition, the data receiving method may further include receiving, from the transmitting terminal, a next packet encoded using the Bloom filter.
상기 다수의 블룸 필터들 각각에는 이전에 수신된 패킷들 각각에 포함된 청크들 각각의 핑거프린트들이 등록될 수 있다.Each of the plurality of Bloom filters may have fingerprints of each of the chunks included in each of the previously received packets.
본 발명의 다른 실시 예에 따른 송신 단말기에서 동작하는 데이터 송신 방법은 수신 단말기로부터 블룸 필터의 수신 여부를 결정하는 단계, 상기 블룸 필터가 수신된 경우, 상기 수신 단말기로 송신하려는 원본 패킷을 다수의 청크들로 분할하여 분할된 패킷을 생성하고, 각각이 상기 다수의 청크들 각각에 대응하는 다수의 핑거프린트들을 생성하는 단계, 상기 분할된 패킷에 포함된 다수의 청크들 중에서, 상기 다수의 핑거프린트들 중에서 상기 블룸 필터에 속하는 핑거프린트에 대응하는 청크를 참조 값으로 대체하여 인코딩된 패킷을 생성하는 단계, 및 상기 인코딩된 패킷을 상기 수신 단말기로 송신하는 단계를 포함한다.A method for transmitting data in a transmitting terminal according to another exemplary embodiment of the present invention includes the steps of determining whether a Bloom filter is received from a receiving terminal, receiving a Bloom filter, and transmitting a source packet to be transmitted to the receiving terminal to a plurality of chunks And generating a plurality of fingerprints each corresponding to each of the plurality of chunks, wherein, among the plurality of chunks included in the divided packet, the plurality of fingerprints Generating an encoded packet by replacing a chunk corresponding to a fingerprint belonging to the Bloom filter with a reference value among the plurality of bloom filters, and transmitting the encoded packet to the receiving terminal.
또한, 상기 데이터 송신 방법은 상기 수신 단말기로부터 수신된 블룸 필터가 존재하지 않는 경우, 상기 원본 패킷을 상기 수신 단말기로 송신하는 단계를 더 포함할 수 있다.The data transmission method may further include transmitting the original packet to the receiving terminal when the Bloom filter received from the receiving terminal does not exist.
상기 참조 값은 상기 참조 값에 대응하는 상기 핑거프린트에 포함된 비트 시퀀스(bit sequence) 또는 바이트 시퀀스(byte sequence)의 일부일 수 있다.The reference value may be part of a bit sequence or a byte sequence included in the fingerprint corresponding to the reference value.
또한, 상기 인코딩된 패킷을 생성하는 단계에서, 상기 블룸 필터에 속하는 핑거프린트가 존재하지 않는 경우, 상기 원본 패킷을 상기 수신 단말기로 송신하는 단계를 더 포함할 수 있다.The generating of the encoded packet may further include transmitting the original packet to the receiving terminal when there is no fingerprint belonging to the Bloom filter.
본 발명의 또 다른 실시 예에 따른, 송신 단말기에서 동작하는 데이터 송신 방법은 수신 단말기로 송신하려는 원본 패킷을 다수의 청크들로 분할하여 분할된 패킷을 생성하고, 각각이 상기 다수의 청크들 각각에 대응하는 다수의 핑거프린트들을 생성하는 단계, 상기 분할된 패킷에 포함된 다수의 청크들 중에서, 상기 다수의 핑거프린트들 중에서 상기 수신 단말기로부터 수신된 블룸 필터에 속하는 핑거프린트에 대응하는 청크를 참조 값으로 대체하여 인코딩된 패킷을 생성하는 단계, 및 상기 인코딩된 패킷을 상기 수신 단말기로 송신하는 단계를 포함한다.According to another embodiment of the present invention, a data transmission method operating in a transmitting terminal includes dividing an original packet to be transmitted to a receiving terminal into a plurality of chunks to generate divided packets, Generating a corresponding plurality of fingerprints, selecting a chunk corresponding to a fingerprint belonging to the bloom filter received from the receiving terminal from among the plurality of fingerprints, among the plurality of chunks included in the divided packet, To generate an encoded packet, and transmitting the encoded packet to the receiving terminal.
상기 참조 값은 상기 블룸 필터에 속하는 상기 핑거프린트에 포함된 비트 시퀀스 또는 바이트 시퀀스의 일부일 수 있다.The reference value may be part of a bit sequence or a byte sequence included in the fingerprint belonging to the Bloom filter.
본 발명의 또 다른 실시 예에 따른, 수신 단말기에서 동작하는 데이터 수신 방법은 송신 단말기로부터 패킷을 수신하는 단계, 수신된 패킷을 다수의 청크들로 분할하고, 각각이 상기 다수의 청크들 각각에 대응하는 다수의 핑거프린트들을 생성하는 단계, 미리 저장된 다수의 청크 집합들 중에서 상기 수신된 패킷과의 연관성이 가장 높은 청크 집합을 선택하는 단계, 및 상기 선택된 청크 집합에 포함된 블룸 필터를 상기 송신 단말기로 송신하는 단계, 상기 송신 단말기로부터 다음 패킷을 수신하는 단계를 포함한다. According to yet another embodiment of the present invention, a method of receiving data from a receiving terminal comprises receiving a packet from a transmitting terminal, dividing the received packet into a plurality of chunks, Selecting a chunk set having the highest association with the received packet among a plurality of chunk sets stored in advance, and transmitting the bloom filter included in the selected chunk set to the transmitting terminal And receiving the next packet from the transmitting terminal.
상기 다음 패킷은 상기 블룸 필터에 등록된 핑거프린트를 이용하여 생성된 참조 값을 포함하고, 상기 데이터 수신 방법은 상기 참조 값을 상기 선택된 청크 집합에 포함된 다수의 청크들 중에서 상기 참조 값에 대응하는 청크로 교체하는 단계를 더 포함할 수 있다.Wherein the next packet includes a reference value generated using fingerprints registered in the Bloom filter, and the data receiving method further comprises: comparing the reference value with a reference value corresponding to the reference value among a plurality of chunks included in the selected chunk set And replacing it with a chunk.
본 발명의 실시 예에 따른 데이터 송수신 방법은 수신된 패킷을 기반으로 다음에 수신될 패킷의 용량을 감소시킴으로써, 트래픽을 감소시킬 수 있는 효과가 있다.The data transmission / reception method according to the embodiment of the present invention has an effect of reducing the traffic by reducing the capacity of the next packet to be received based on the received packet.
또한, 상기 데이터 송수신 방법은 수신 단말기로부터 수신된 블룸 필터를 이용하여 원본 패킷을 인코딩함으로써, 수신 단말기와 송신 단말기 사이의 동기화 과정이 없이 효율적으로 트래픽을 감소시킬 수 있는 효과가 있다.In addition, the data transmission / reception method can efficiently reduce traffic without a synchronization process between the receiving terminal and the transmitting terminal by encoding the original packet using the Bloom filter received from the receiving terminal.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 상세한 설명이 제공된다.
도 1은 종래의 중복 제거 기법을 수행하기 위한 시스템을 도시한다.
도 2는 본 발명의 일 실시 예에 따른 데이터 통신 시스템을 도시한다.
도 3은 도 2에 도시된 수신 단말기의 기능 블럭도이다.
도 4는 도 3에 도시된 청크 집합 생성 모듈의 동작을 설명하기 위한 도면이다.
도 5는 도 3에 도시된 청크 집합 예측 모듈의 동작을 설명하기 위한 도면이다.
도 6은 도 2에 도시된 송신 단말기의 기능 블럭도이다.
도 7은 도 6에 도시된 인코딩 모듈의 동작 과정을 설명하기 위한 도면이다.
도 8은 도 2에 도시된 수신 단말기에서의 동작을 설명하기 위한 흐름도이다.
도 9는 도 2에 도시된 송신 단말기의 동작을 설명하기 위한 흐름도이다.DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS In order to more fully understand the drawings recited in the detailed description of the present invention, a detailed description of each drawing is provided.
FIG. 1 illustrates a system for performing a conventional de-duplication technique.
2 illustrates a data communication system in accordance with an embodiment of the present invention.
3 is a functional block diagram of the receiving terminal shown in FIG.
FIG. 4 is a view for explaining the operation of the chunk set generation module shown in FIG.
FIG. 5 is a view for explaining the operation of the chunk set prediction module shown in FIG.
6 is a functional block diagram of the transmitting terminal shown in FIG.
FIG. 7 is a diagram for explaining an operation process of the encoding module shown in FIG.
FIG. 8 is a flowchart for explaining an operation in the receiving terminal shown in FIG. 2. FIG.
FIG. 9 is a flowchart for explaining the operation of the transmitting terminal shown in FIG. 2. FIG.
본 명세서에 개시되어 있는 본 발명의 개념에 따른 실시 예들에 대해서 특정한 구조적 또는 기능적 설명은 단지 본 발명의 개념에 따른 실시 예들을 설명하기 위한 목적으로 예시된 것으로서, 본 발명의 개념에 따른 실시 예들은 다양한 형태들로 실시될 수 있으며 본 명세서에 설명된 실시 예들에 한정되지 않는다.It is to be understood that the specific structural or functional description of embodiments of the present invention disclosed herein is for illustrative purposes only and is not intended to limit the scope of the inventive concept But may be embodied in many different forms and is not limited to the embodiments set forth herein.
본 발명의 개념에 따른 실시 예들은 다양한 변경들을 가할 수 있고 여러 가지 형태들을 가질 수 있으므로 실시 예들을 도면에 예시하고 본 명세서에서 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시 예들을 특정한 개시 형태들에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물, 또는 대체물을 포함한다.The embodiments according to the concept of the present invention can make various changes and can take various forms, so that the embodiments are illustrated in the drawings and described in detail herein. It should be understood, however, that it is not intended to limit the embodiments according to the concepts of the present invention to the particular forms disclosed, but includes all modifications, equivalents, or alternatives falling within the spirit and scope of the invention.
제1 또는 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만, 예컨대 본 발명의 개념에 따른 권리 범위로부터 벗어나지 않은 채, 제1 구성 요소는 제2 구성 요소로 명명될 수 있고 유사하게 제2 구성 요소는 제1 구성 요소로도 명명될 수 있다.The terms first, second, etc. may be used to describe various elements, but the elements should not be limited by the terms. The terms may be named for the purpose of distinguishing one element from another, for example, without departing from the scope of the right according to the concept of the present invention, the first element may be referred to as a second element, The component may also be referred to as a first component.
어떤 구성 요소가 다른 구성 요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성 요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성 요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성 요소가 다른 구성 요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는 중간에 다른 구성 요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성 요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.It is to be understood that when an element is referred to as being "connected" or "connected" to another element, it may be directly connected or connected to the other element, . On the other hand, when an element is referred to as being "directly connected" or "directly connected" to another element, it should be understood that there are no other elements in between. Other expressions that describe the relationship between components, such as "between" and "between" or "neighboring to" and "directly adjacent to" should be interpreted as well.
본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로서, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 본 명세서에 기재된 특징, 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. The singular expressions include plural expressions unless the context clearly dictates otherwise. In this specification, the terms "comprises" or "having" and the like are used to specify that there are features, numbers, steps, operations, elements, parts or combinations thereof described herein, But do not preclude the presence or addition of one or more other features, integers, steps, operations, components, parts, or combinations thereof.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless otherwise defined, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art to which this invention belongs. Terms such as those defined in commonly used dictionaries are to be interpreted as having a meaning consistent with the meaning of the context in the relevant art and, unless explicitly defined herein, are to be interpreted as ideal or overly formal Do not.
이하, 본 명세서에 첨부된 도면들을 참조하여 본 발명의 실시 예들을 상세히 설명한다.Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings attached hereto.
도 2는 본 발명의 일 실시 예에 따른 데이터 통신 시스템을 도시한다.2 illustrates a data communication system in accordance with an embodiment of the present invention.
도 2를 참조하면, 데이터 통신 시스템(10)은 수신 단말기(100)와 송신 단말기(300)를 포함한다.Referring to FIG. 2, the
수신 단말기(100)는 단말간 직접 통신(device-to-device communication)을 이용하여 송신 단말기(300)와 데이터 또는 정보를 송수신할 수 있다. 상기 단말간 직적 통신은 동일한 셀 또는 서로 인접한 셀 내에 위치하는 단말들이 상호 간에 통신 링크를 설정한 후, 기지국을 거치지 않고 설정된 통신 링크를 통해 직접적으로 데이터를 송수신하는 통신 방식을 의미한다. The receiving
수신 단말기(100)와 송신 단말기(300)는 휴대폰(mobile phone), 스마트폰(smart phone), PDA(personal digital assistants), PMP(portable multimedia player), PC(personal computer), 노트북(note book) 컴퓨터, e-reader 등으로 구현될 수 있다.The receiving
송신 단말기(300)는 수신 단말기(100)의 요청에 응답하거나, 네트워크의 상위 계층으로부터 패킷을 수신한 것에 응답하여, 패킷(packet) 단위의 데이터를 수신 단말기(100)로 송신할 수 있다. 이때, 송신되는 패킷은 송신 단말기(300)에 의해 인코딩된 패킷일 수 있다.The transmitting
수신 단말기(100)는 송신 단말기(300)로부터 패킷을 수신한다. 수신 단말기(100)는 수신된 패킷의 인코딩 유무에 따라 상기 수신된 패킷을 디코딩할 수 있다. 또한, 수신 단말기(100)는 상기 수신된 패킷이 인코딩되어 있지 않은 경우, 상기 수신된 패킷을 다수의 청크들(chunks)로 분할하고, 상기 다수의 청크들 각각의 핑거프린트를 생성할 수 있다. 또한, 수신 단말기(100)는 상기 다수의 청크들과 상기 다수의 핑거프린트들에 대한 블룸 필터(bloom filter)를 생성할 수 있다. 상기 다수의 청크들, 상기 다수의 핑거프린트들 및 상기 블룸 필터는 청크 집합으로 명명될 수 있다.The receiving
또한, 수신 단말기(100)는 상기 메모리에 저장된 다수의 청크 집합들과 수신된 패킷의 연관성을 결정하고, 연관성에 따라 다음에 수신될 패킷을 예측 또는 예상할 수 있다. 즉, 수신 단말기(100)는 상기 생성된 청크 집합에 포함된 다수의 핑거프린트들이 이전에 수신되어 상기 메모리에 저장된 다수의 청크 집합들 각각의 블룸 필터에 속하는지 여부를 판단하고, 판단 결과에 따라 일정 개수(d, d는 자연수) 이상의 핑거프린트를 포함하고 있는 블룸 필터를 선택한다. 수신 단말기(100)는 선택된 블룸 필터가 포함된 청크 집합을 예측 청크 집합으로 결정하고, 상기 예측 청크 집합에 포함된 블룸 필터를 송신 단말기(300)로 전송한다.In addition, the receiving
상기 블룸 필터를 수신한 송신 단말기(300)가 다음 패킷을 수신 단말기(100)로 전송하고자 할 때, 송신 단말기는 패킷을 다수의 청크들로 분할하고, 상기 다수의 청크들 각각의 핑거프린트를 생성할 수 있다. 송신 단말기(300)는 다수의 핑거프린트들 각각이 상기 블룸 필터에 속하는지 여부를 판단하고, 판단 결과에 따라 송신될 패킷을 인코딩한다.When the transmitting
즉, 송신 단말기(300)는 다수의 핑거프린트들 중에서 상기 블룸 필터에 속하는 핑거프린트를 검색한 경우, 검색된 핑거프린트에 대응하는 청크를 참조 값으로 교체하고, 상기 참조 값을 포함하고 있는 패킷을 수신 단말기(100)로 전송할 수 있다. 상기와 같이 송신 단말기(300)가 패킷 내의 청크를 참조 값으로 교체하는 과정을 인코딩(incoding)이라 하고, 상기 참조 값을 포함하고 있는 패킷을 인코딩된 패킷이라 한다.That is, when the fingerprint belonging to the Bloom filter is searched among the plurality of fingerprints, the transmitting
수신 단말기(100)는 송신 단말기(300)로부터 인코딩된 패킷을 수신하고, 수신된 패킷 내의 참조 값을 청크로 교체할 수 있다. 수신된 패킷 내의 참조 값들을 청크로 교체함으로써, 송신 단말기(300)가 송신하려 했던 패킷인 원본 패킷을 복원하는 과정을 디코딩(decoding)이라 한다.The receiving
상기와 같이, 송신 단말기(300)는 인코딩된 패킷을 수신 단말기(100)로 전송함으로써 트래픽을 감소시킬 수 있는 효과가 있고, 수신 단말기는 인코딩된 패킷 내의 참조 값을 청크로 교체함으로써 효율적으로 패킷을 복원할 수 있다.As described above, the transmitting
도 3은 도 2에 도시된 수신 단말기의 기능 블럭도이다.3 is a functional block diagram of the receiving terminal shown in FIG.
도 2와 도 3을 참조하면, 수신 단말기(100)는 송수신 모듈(110), 청크 집합 생성 모듈(130), 청크 집합 예측 모듈(140), 디코딩 모듈(150), 메모리(170) 및 제어 모듈(190)을 포함한다.2 and 3, the receiving
송수신 모듈(110)은 제어 모듈(190)의 제어 하에, 패킷을 송신 단말기(300)로부터 수신하거나 블룸 필터를 송신 단말기(300)로 송신한다. 상기 패킷은 인코딩된 패킷일 수 있다. 수신된 패킷은 제어 모듈(190)에 의해 메모리(170)에 저장될 수 있다.The transmission /
청크 집합 생성 모듈(130)은 제어 모듈(190)의 제어 하에, 송수신 모듈(110)을 통하여 수신된 패킷을 다수의 청크들로 분할하고, 상기 다수의 청크들 각각의 핑거프린트를 생성한다. 다수의 핑거프린트들은 상기 다수의 청크들 각각을 입력 값으로 하여 얻어진 해쉬 함수(예컨대, SHA-1)의 결과 값 자체, 상기 결과 값을 포함하는 값, 또는 상기 결과 값을 이용하여 생성된 값일 수 있다. 이와 같이 핑거프린트를 생성하는 과정을 핑거프린팅이라 한다. The chunk set
또한, 청크 집합 생성 모듈(130)은 상기 다수의 청크들과 상기 다수의 핑거프린트들에 대응하는 하나의 블룸 필터를 생성한다. 상기 다수의 청크들, 상기 다수의 핑거프린트들 및 상기 하나의 블룸 필터의 모임 또는 집합을 청크 집합이라 한다. 생성된 청크 집합은 제어 모듈(190)에 의해 메모리(170)에 저장될 수 있다.In addition, the chunk set
청크 집합 예측 모듈(140)은 제어 모듈(190)의 제어 하에, 다음에 수신될 패킷을 예상할 수 있다. 즉, 청크 집합 예측 모듈(140)은 청크 집합 생성 모듈(130)에 의하여 생성된 청크 집합에 포함된 다수의 핑거프린트들 각각이 메모리(170)에 미리 저장되어 있는 다수의 청크 집합들 각각에 포함되어 있는 블룸 필터에 포함되는지 여부를 결정한다. 청크 집합 예측 모듈(140)은 메모리(170)에 저장되어 있는 다수의 블룸 필터들 중에서 상기 다수의 핑거프린트들 중 미리 정해진 개수(d) 이상의 핑거프린트들을 포함하고 있는 블룸 필터를 선택한다. 실시 예에 따라, 청크 집합 예측 모듈(140)은 상기 다수의 핑거프린트들 중 가장 많은 핑거프린트를 포함하고 있는 블룸 필터를 선택할 수도 있다.The chunk set
청크 집합 예측 모듈(140)은 선택된 필터를 포함하고 있는 청크 집합을 예측 청크 집합으로 예측한다. 상기 예측 청크 집합은 가장 최근에 수신된 패킷과의 연관성이 높거나 상기 가장 최근에 수신된 패킷과 가장 유사한 청크들을 포함하고 있는 청크 집합으로서, 상기 예측 청크 집합 내에는 다음에 수신될 패킷에 포함된 다수의 청크들 중 적어도 하나의 청크가 포함될 확률이 높다고 볼 수 있다.Chunk set
청크 집합 예측 모듈(140)에 의하여 선택된 블룸 필터는 제어 모듈(190)의 제어 하에, 송수신 모듈(110)에 의해 송신 단말기(300)로 전송될 수 있다. The bloom filter selected by the chunk set
디코딩 모듈(150)은 제어 모듈(190)의 제어 하에, 인코딩된 패킷을 디코딩할 수 있다. 구체적으로, 송신 단말기(300)로부터 수신된 패킷이 인코딩된 패킷인 경우, 디코딩 모듈(150)은 인코딩된 패킷에 포함된 참조 값을 대응되는 청크, 즉 예측 청크 집합에 포함되어 있는 청크들 중에서 상기 참조 값에 대응하는 핑거프린트에 대응하는 청크로 교체함으로써 패킷을 디코딩할 수 있다. The
인코딩된 패킷에 포함된 상기 참조 값은 상기 예측 청크 집합에 포함된 다수의 핑거프린트들 중에서 상기 참조 값에 대응하는 핑거프린트를 구분 또는 구별할 수 있는 값일 수 있다. 예컨대, 상기 참조 값은 w 개의 비트(또는 바이트)로 구현될 수 있으며, 상기 w 개의 비트(또는 바이트)는 상기 참조 값에 대응하는 핑거프린트에 포함된 비트 시퀀스(bit sequence) 또는 바이트 시퀀스(byte sequency)의 일부일 수 있으며, 구체적으로는 상기 핑거프린트의 하위 w 개의 비트(또는 바이트) 값일 수 있다. 실시 예에 따라, 상기 참조 값은 상기 예측 청크 집합에 포함된 다수의 핑거프린트들 중에서 상기 참조 값에 대응하는 핑거프린트의 순번을 의미하는 값일 수도 있다.The reference value included in the encoded packet may be a value capable of distinguishing or distinguishing a fingerprint corresponding to the reference value from a plurality of fingerprints included in the prediction chunk set. For example, the reference value may be implemented as w bits (or bytes), and the w bits (or bytes) may be a bit sequence or a byte sequence included in the fingerprint corresponding to the reference value sequency, and may specifically be the lower w bits (or bytes) of the fingerprint. According to an embodiment, the reference value may be a value indicating a sequence number of a fingerprint corresponding to the reference value among a plurality of fingerprints included in the prediction chunk set.
메모리(170)는 프로그램 메모리와 데이터 메모리를 포함할 수 있다. 상기 프로그램 메모리에는 수신 단말기(100)의 동작을 제어하기 위한 프로그램들이 저장될 수 있다. 상기 데이터 메모리에는 상기 프로그램들을 수행하는 과정 중에 발생되는 데이터들이 저장될 수 있다. 실시 예에 따라 메모리(170)는 버퍼 또는 캐시 등과 같은 다른 용어로 명칭되어질 수 있다. 그러나, 본 발명이 명칭되는 용어에 한정되는 것은 아니다.The
또한, 메모리(170)는 생성된 다수의 청크 집합들을 저장하기 위한 공간과 예측된 청크 집합을 저장하기 위한 공간을 포함할 수 있다.In addition, the
제어 모듈(190)은 수신 단말기(100)의 전반적인 동작을 제어한다. 즉, 제어 모듈(190)은 송수신 모듈(110), 청크 집합 생성 모듈(130), 청크 집합 예측 모듈(140), 디코딩 모듈(150) 및 메모리(170)의 동작을 제어할 수 있다.The
또한, 제어 모듈(190)은 송수신 모듈(110)을 통하여 수신된 패킷이 인코딩된 패킷인지 여부를 결정하고, 인코딩된 패킷인 경우 디코딩 모듈(150)을 제어하여 상기 인코딩된 패킷을 디코딩할 수 있다. 디코딩 모듈(150)이 디코딩을 성공적으로 수행하지 못한 경우, 제어 모듈(190)은 송수신 모듈(110)을 통하여 송신 단말기(300)에 원본 패킷 전송 요청 신호를 송신할 수 있다.In addition, the
본 명세서에서 모듈이라 함은, 본 발명의 기술적 사상을 수행하기 위한 하드웨어 및 상기 하드웨어를 구동하기 위한 소프트웨어의 기능적, 구조적 결합을 의미할 수 있다. 예컨대, 상기 모듈은 소정의 코드와 상기 소정의 코드가 수행되기 위한 하드웨어 리소스의 논리적인 단위를 의미할 수 있으며, 반드시 물리적으로 연결된 코드를 의미하거나, 한 종류의 하드웨어를 의미하는 것이 아니다.Herein, a module may mean a functional and structural combination of hardware for carrying out the technical idea of the present invention and software for driving the hardware. For example, the module may mean a logical unit of a predetermined code and a hardware resource for executing the predetermined code, and does not necessarily mean a physically connected code or a kind of hardware.
도 4는 도 3에 도시된 청크 집합 생성 모듈의 동작을 설명하기 위한 도면이다.FIG. 4 is a view for explaining the operation of the chunk set generation module shown in FIG.
도 2 내지 도 4를 참조하면, 청크 집합 생성 모듈(130)은 수신된 패킷으로부터 청크 집합을 생성할 수 있다. 구체적으로 청크 집합 생성 모듈(130)은 패킷을 n 개의 청크들(n은 2 이상의 자연수)로 분할하고, 상기 n 개의 청크들 각각에 대응하는 n 개의 핑거프린트들을 생성할 수 있다. 청크의 크기와 핑거프린트의 크기는 미리 결정될 수 있다. 예컨대, 상기 청크의 크기는 64바이트일 수 있고, 상기 핑거프린트의 크기는 20바이트일 수 있으나, 상기 청크의 크기와 상기 핑거프린트의 크기가 이에 한정되는 것은 아니고, 상기와 다른 크기를 가질 수 있다.2 through 4, the chunk set
또한, 청크 집합 생성 모듈(130)은 상기 n 개의 핑거프린트들의 정보를 기록하기 위한 m 비트로 구현된 하나의 블룸 필터(m은 2 이상의 자연수)를 생성할 수 있다. 즉, 상기 n 개의 청크들 각각의 핑거프린트는 상기 블룸 필터에 등록된다. 결과적으로 상기 청크 집합은 n 개의 청크들, n 개의 핑거프린트들 및 하나의 블룸 필터를 포함한다. In addition, the chunk set
청크 집합 생성 모듈(130)은 상기 블룸 필터를 생성하기 위해서 k 개의 해쉬(hash) 함수들(k는 2 이상의 자연수)을 사용하며, 각각의 해쉬 함수는 입력 값, 즉 핑거프린트에 대하여 m 가지의 값을 균등한 확률로 출력한다. 즉, 하나의 핑거프린트가 상기 블룸 필터에 등록 또는 추가되기 위해서는 상기 하나의 핑거프린트에 대한 k 개의 해쉬 함수 값이 생성 또는 계산되어야 하며, 상기 블룸 필터에 포함된 m 개의 비트들 중에서 각각의 해쉬 함수 값에 해당하는 비트를 1로 설정함으로써 상기 하나의 핑거프린트를 상기 블룸 필터에 등록할 수 있다.The chunk set
만약, 어떠한 핑거프린트가 블룸 필터에 속하는지 확인하고자 할 때에는 다음과 같은 과정을 통하여 확인할될 수 있다. 해당 핑거프린트에 대한 k 개의 해쉬 함수 값을 계산한 다음, 블룸 필터 내에서 각각의 해쉬 함수 값에 대응하는 비트의 값이 모두 1인 경우, 해당 핑거프린트가 블룸 필터에 속한다고 판단될 수 있다.If a fingerprint belongs to the Bloom filter, it can be confirmed by the following procedure. After calculating k hash function values for the fingerprint, if the bit values corresponding to the respective hash function values in the Bloom filter are all 1, it can be determined that the fingerprint belongs to the Bloom filter.
생성된 청크 집합은 메모리(170)에 저장될 수 있다. 메모리(170)에는 총 c 개의 청크 집합들(c는 자연수)을 저장할 수 있는 공간이 할당될 수 있다. 즉, 메모리(170)의 용량 또는 크기는 한정적이기 때문에, 할당된 공간이 모두 사용되었을 때 새로운 청크 집합을 저장하기 위해서는 청크 집합 교체 정책이 활용될 수 있다.The generated chunk set may be stored in the
실시 예에 따라, 메모리(170)가 캐시 또는 버퍼로 활용되거나 명명될 때 상기 청크 집합 교체 정책은 캐시 교체 정책(cache replacement)으로 명명될 수 있다. 상기 캐시 교체 정책은 LRU(least recently used) 방식, LFU(least frequently used) 방식 또는 라운드 로빈(round robin) 방식일 수 있다.According to an embodiment, when the
도 5는 도 3에 도시된 청크 집합 예측 모듈의 동작을 설명하기 위한 도면이다.FIG. 5 is a view for explaining the operation of the chunk set prediction module shown in FIG.
도 2, 도 3 및 도 5를 참조하면, 청크 집합 예측 모듈(140)은 청크 집합 생성 모듈(130)에 의하여 생성된 제1 청크 집합에 포함되어 있는 제1-1 핑거프린트 내지 제1-n 핑거프린트 각각이 메모리(170)에 저장되어 있는 제2 청크 집합 내지 제p 청크 집합(p-1=c)에 포함되어 있는 제2 블룸 필터 내지 제p 블룸 필터 각각에 속하는지 여부를 결정할 수 있다. Referring to FIGS. 2, 3 and 5, the chunk set
구체적으로 청크 집합 예측 모듈(140)은 제1-1 핑거프린트 내지 제1-n 핑거프린트 중 제2 블룸 필터에 속하는 핑거프린트의 갯수를 도출할 수 있다. 또한, 청크 집합 예측 모듈(140)은 상기 제1-1 핑거프린트 내지 상기 제1-n 핑거프린트 중 제3 블룸 필터 내지 제p 블룸 필터에 속하는 핑거프린트의 갯수를 도출할 수 있다. Specifically, the chunk set
청크 집합 예측 모듈(140)은 제2 블룸 필터 내지 제p 블룸 필터 각각에 포함된 핑거프린트의 갯수를 기준으로 예측 청크 집합을 예측한다. 예컨대, 상기 제3 블룸 필터에 속하는 핑거프린트의 갯수만이 d(d는 임의의 자연수) 개 이상인 경우 상기 제3 청크 집합을 예측 청크 집합으로 예측한다. 이 경우, 청크 집합 예측 모듈(140)은 제4 블룸 필터 내지 제p 블룸 필터에 포함된 핑거프린트의 갯수를 도출하는 과정을 생략할 수도 있다.The chunk set
미리 정해진 상기 d 값에 의하여 예측의 정확도 및 예측의 빈도가 결정된다. 즉, 상기 d 값이 작으면 적은 수의 핑거프린트가 포함된 청크 집합이 예측 청크 집합으로 선택될 수 있기 때문에, 예측의 빈도는 높아지지만 가장 최근에 수신된 패킷과의 연관성은 떨어진다. 반면에, 상기 d 값이 크면 많은 수의 핑거프린트가 하나의 청크 집합에 속해야 하기 때문에 수신받은 패킷과의 연관성을 높일 수 있다. 그러나, 예측 청크 집합으로 선택할 수 있는 청크 집합의 수가 적어지므로 예측에 의하여 트래픽을 줄이는 기회가 줄어들 수 있다. 즉, 예측 빈도가 낮아질 수 있다.The accuracy of the prediction and the frequency of the prediction are determined by the predetermined d value. That is, if the value of d is small, a chunk set including a small number of fingerprints can be selected as a predicted chunk set, so that the frequency of prediction increases but the relevance to the most recently received packet decreases. On the other hand, if the value of d is large, since a large number of fingerprints belong to one chunk set, the association with the received packet can be enhanced. However, since the number of chunk sets that can be selected by the prediction chunk set is small, the chance of reducing traffic by prediction can be reduced. That is, the prediction frequency can be lowered.
실시 예에 따라, 청크 집합 예측 모듈(140)은 상기 제2 내지 제p 블룸 필터 중 가장 많은 핑거프린트를 포함하고 있는 블룸 필터를 포함하는 청크 집합을 예측 청크 집합으로 예측할 수 있고, d 개 이상의 핑거프린트를 포함하고 있는 블룸 필터들 중에서 가장 많은 핑거프린트를 포함하고 있는 블룸 필터를 포함하는 청크 집합을 예측 청크 집합으로 예측할 수 있다.According to an embodiment, the chunk set
상기 제3 블룸 필터는 제어 모듈(190)의 제어 하에, 송수신 모듈(110)을 통하여 송신 단말기(300)로 전송된다. 또한, 제어 모듈(190)은 상기 메모리(170)에 저장된 다수의 청크 집합들 중 적어도 하나의 청크 집합을 캐시 교체 정책 또는 청크 집합 교체 정책에 따라 상기 생성된 청크 집합으로 교체할 수 있다.The third bloom filter is transmitted to the transmitting
도 6은 도 2에 도시된 송신 단말기의 기능 블럭도이다.6 is a functional block diagram of the transmitting terminal shown in FIG.
도 2와 도 6을 참조하면, 송신 단말기(300)는 송수신 모듈(310), 인코딩 모듈(350), 메모리(370) 및 제어 모듈(390)을 포함한다.2 and 6, the transmitting
송수신 모듈(310)은 제어 모듈(390)의 제어 하에, 패킷을 수신 단말기(100)로 송신하거나 블룸 필터를 수신 단말기(100)로부터 수신한다. 상기 패킷은 인코딩된 패킷일 수 있고, 수신된 블룸 필터는 제어 모듈(390)에 의해 메모리(370)에 저장될 수 있다.The transmission /
인코딩 모듈(350)은 제어 모듈(390)의 제어 하에, 전송될 패킷, 즉 원본 패킷을 인코딩할 수 있다. 구체적으로, 인코딩 모듈(350)은 수신 단말기(100)로 전송될 상기 원본 패킷을 다수의 청크들로 분할하고, 분할된 다수의 청크들 각각의 핑거프린트를 생성할 수 있다. 또한, 인코딩 모듈(350)은 생성된 다수의 핑거프린트들 각각이 수신 단말기(100)로부터 수신된 블룸 필터에 속하는지 여부를 판단한다. 이는 각 핑거프린트로부터 k 개의 해쉬 결과를 얻고, 상기 블룸 필터 중에서 k 개의 해쉬 결과 값에 대응하는 비트의 값이 모두 1인 경우 해당 핑거프린트가 상기 블룸 필터에 속한다고 판단될 수 있다. The
인코딩 모듈(350)은 어떤 핑거프린트가 상기 블룸 필터에 속한다고 판단한 경우, 해당 핑거프린트에 대응하는 청크를 참조 값으로 변경할 수 있다. 상기와 같이, 상기 원본 패킷의 적어도 하나의 청크를 참조 값으로 변환 또는 교체하는 과정을 인코딩이라 하고, 상기 인코딩의 결과 생성된 패킷을 인코딩된 패킷이라 한다. 상기 인코딩된 패킷은 제어 모듈(390)의 제어에 의해 송수신 모듈(310)을 통하여 수신 단말기(100)로 송신될 수 있다.
메모리(370) 프로그램 메모리와 데이터 메모리를 포함할 수 있다. 상기 프로그램 메모리에는 송신 단말기(300)의 동작을 제어하기 위한 프로그램들이 저장될 수 있다. 상기 데이터 메모리에는 상기 프로그램들을 수행하는 과정 중에 발생되는 데이터들이 저장될 수 있다. 실시 예에 따라 메모리(370)는 버퍼 또는 캐시 등과 같은 다른 용어로 명칭되어질 수 있다.The
제어 모듈(390)은 송신 단말기(300)의 전반적인 동작을 제어한다. 즉, 제어 모듈(390)은 송수신 모듈(310), 인코딩 모듈(350) 및 메모리(370)의 동작을 제어할 수 있다. 또한, 제어 모듈(390)은 송수신 모듈(310)을 통하여 수신된 블룸 필터의 유무에 따라 전송될 패킷의 인코딩 유무를 결정하고, 상기 결정에 따라 인코딩 모듈(350)을 제어하여 상기 전송될 패킷을 인코딩할 수 있다. 따라서, 제어 모듈(390)의 결정에 따라, 인코딩되지 않은 원본 패킷이 전송되거나 인코딩된 패킷이 전송될 수 있다. The
또한 제어 모듈(390)은 인코딩 모듈(350)이 인코딩에 실패한 경우, 즉 인코딩 모듈(350)이 수신 단말기(100)로부터 수신된 블룸 필터에 포함된 핑거프린트를 찾지 못한 경우, 상기 원본 패킷을 송수신 모듈(310)을 통하여 수신 단말기(100)로 송신할 수 있다.If the
도 7은 도 6에 도시된 인코딩 모듈의 동작 과정을 설명하기 위한 도면이다.FIG. 7 is a diagram for explaining an operation process of the encoding module shown in FIG.
도 2, 도 6 및 도 7을 참조하면, 인코딩 모듈(350)은 송신될 패킷인 원본 패킷(351)을 청크 단위로 분할하여, 다수의 청크들을 포함하는 분할된 패킷(353)을 생성한다. 또한, 인코딩 모듈(350)은 상기 다수의 청크들 각각에 대응하는 핑거프린트를 생성할 수 있다. 예컨대, 분할된 패킷(353)은 제1 청크(CK1) 내지 제5 청크(CK5)를 포함할 수 있고, 제1 청크(CK1) 내지 제5 청크(CK5) 각각에 대응하는 제1 핑거프린트(FP1) 내지 제5 핑거프린트(FP5)가 생성될 수 있다.2, 6 and 7, the
인코딩 모듈(350)은 다수의 핑거프린트들(FP1 내지 FP5) 각각에 대한 k 개의 해쉬 함수 값(hash 1 내지 hash k)을 생성하고, 수신 단말기(100)로부터 수신된 블룸 필터 중에서 생성된 해쉬 함수 값 각각에 대응하는 비트들의 값에 따라, 각각의 핑거프린트가 상기 블룸 필터에 속하는지 여부를 판단할 수 있다. 예컨대, 인코딩 모듈(350)은 제2 핑거프린트(FP2)와 제4 핑거프린트(FP4)가 상기 블룸 필터에 속한다고 결정할 수 있다. 이 경우, 인코딩 모듈(350)은 분할된 패킷(353)에 포함된 다수의 청크들 중에서 제2 핑거프린트(FP2)에 대응하는 제2 청크(CK2)와 제4 핑거프린트(FP4)에 대응하는 제4 청크(CK4) 각각을 제2 참조 값(Ref2)과 제4 참조 값(Ref4)으로 교체할 수 있다. 제2 참조 값(Ref2)은 제2 핑거프린트(FP2)에 포함된 비트(또는 바이트)들 중 하위 w 개의 비트(또는 바이트)의 값을 의미할 수 있고, 제4 참조 값(Ref4)는 제4 핑거프린트(FP4)에 포함된 비트(또는 바이트)들 중 하위 w 개의 비트(또는 바이트)의 값을 의미할 수 있다.The
상기와 같이 인코딩 모듈(350)은 원본 패킷에 포함된 데이터(또는 청크)의 일부를 참조 값으로 교체함으로써, 인코딩된 패킷(355)을 생성할 수 있다. 인코딩된 패킷(355)은 제어 모듈(390)에 의해, 송수신 모듈(310)을 통하여 수신 단말기(100)로 송신될 수 있다.As described above, the
도 8은 도 2에 도시된 수신 단말기에서의 동작을 설명하기 위한 흐름도이다.FIG. 8 is a flowchart for explaining an operation in the receiving terminal shown in FIG. 2. FIG.
도 2, 도 3 및 도 8을 참조하면, 송수신 모듈(110)은 제어 모듈(190)의 제어 하에 송신 단말기(300)로부터 패킷을 수신한다(S110).2, 3, and 8, the transmission /
제어 모듈(190)은 수신된 패킷의 인코딩 여부, 즉 인코딩된 패킷인지 인코딩되지 않은 패킷인지 여부를 결정한다(S120). 수신된 패킷이 인코딩된 패킷인 경우, 디코딩 모듈(150)은 제어 모듈(190)의 제어 하에 인코딩된 패킷을 디코딩한다(S130). 제어 모듈(190)은 디코딩 모듈(150)의 디코딩 성공 여부를 결정하고, 디코딩 모듈(150)이 디코딩에 성공한 경우 수신 단말기(100)의 동작은 종료된다. 디코딩 모듈(150)이 디코딩에 성공하지 못한 경우, 제어 모듈(190)은 송수신 모듈(110)을 통하여 송신 단말기(300)에 원본 패킷의 전송 요청 신호를 송신할 수 있다(S190).The
송신 단말기(300)로부터 수신된 패킷이 인코딩된 패킷이 아닌 경우, 청크 집합 생성 모듈(130)은 제어 모듈(190)의 제어 하에, 청크 집합을 생성한다(S150). 또한, 청크 집합 예측 모듈(140)은 수신된 패킷과 연관성이 높은 청크 집합을 선택함으로써, 다음에 수신될 패킷을 예측할 수 있다(S160).If the packet received from the transmitting
제어 모듈(190)은 청크 집합 예측 모듈(140)의 예측 성공 여부를 판단하고(S170), 청크 집합 예측 모듈(140)이 예측에 실패한 경우 수신 단말기(100)의 동작을 종료된다. 청크 집합 예측 모듈(140)이 성공적으로 다음에 수신될 패킷을 예측한 경우, 제어 모듈(190)은 예측된 청크 집합에 포함되어 있는 블룸 필터를 송수신 모듈(110)을 통하여 송신 단말기(300)로 전송할 수 있다(S180).The
도 9는 도 2에 도시된 송신 단말기의 동작을 설명하기 위한 흐름도이다.FIG. 9 is a flowchart for explaining the operation of the transmitting terminal shown in FIG. 2. FIG.
도 2, 도 6 및 도 9를 참조하면, 패킷을 전송하기 위해 제어 모듈(390)은 수신 단말기(100)로부터 수신된 블룸 필터의 유무를 결정한다(S310). 수신 단말기(100)로부터 수신된 블룸 필터가 존재하지 않는 경우, 송수신 모듈(310)은 제어 모듈(390)의 제어 하에 원본 패킷, 즉 인코딩되지 않은 패킷을 수신 단말기(100)로 전송한다(S320).Referring to FIGS. 2, 6 and 9, in order to transmit a packet, the
수신 단말기(100)로부터 수신된 블룸 필터가 존재하는 경우, 인코딩 모듈(350)은 제어 모듈(390)의 제어 하에 상기 원본 패킷으로부터 분할된 패킷을 생성한다(S330). 또한, 인코딩 모듈(350)은 상기 분할된 패킷에 포함된 다수의 청크들 각각의 핑거프린트를 생성한다(S340).When there is a Bloom filter received from the receiving
인코딩 모듈(350)은 생성된 다수의 핑거프린트들 각각이 수신 단말기(100)로부터 수신된 상기 블룸 필터에 속하는지 여부를 결정한다(S350). 상기 다수의 핑거프린트들 중 상기 블룸 필터에 속하는 핑거프린트가 존재하지 않는 경우, 제어 모듈(390)은 송수신 모듈(310)을 통하여 상기 원본 패킷을 수신 단말기(100)에 송신하고(S320), 송신 단말기(300)의 동작은 종료된다.The
상기 다수의 핑거프린트들 중 상기 블룸 필터에 속하는 핑거프린트가 적어도 하나 존재하는 경우, 인코딩 모듈(350)은 상기 분할된 패킷으로부터 인코딩된 패킷을 생성한다(S360). 생성된 인코딩된 패킷은 제어 모듈(390)의 제어를 받는 송수신 모듈(310)에 의해 수신 단말기(100)로 전송된다(S370).If there is at least one fingerprint belonging to the Bloom filter among the plurality of fingerprints, the
본 발명은 도면에 도시된 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is evident that many alternatives, modifications and variations will be apparent to those skilled in the art. Accordingly, the true scope of the present invention should be determined by the technical idea of the appended claims.
1 : 중복 제거 시스템 3 : 송신 단말기
5 : 수신 단말기 10 : 데이터 통신 시스템
100 : 수신 단말기 110 : 송수신 모듈
130 : 청크 집합 생성 모듈 140 : 청크 집합 예측 모듈
150 : 디코딩 모듈 170 : 메모리
190 : 제어 모듈 300 : 송신 단말기
310 : 송수신 모듈 350 : 인코딩 모듈
351 : 송신될 패킷 353 : 분할된 패킷
355 : 인코딩된 패킷 370 : 메모리
390 : 제어 모듈1: deduplication system 3: transmitting terminal
5: receiving terminal 10: data communication system
100: receiving terminal 110: transmitting / receiving module
130: chunk set generation module 140: chunk set prediction module
150: decoding module 170: memory
190: control module 300: transmitting terminal
310: Transmitting / receiving module 350: Encoding module
351: packet to be transmitted 353:
355: Encoded packet 370: Memory
390: Control module
Claims (14)
송신 단말기로부터 패킷을 수신하는 단계;
수신된 패킷의 인코딩 여부를 확인하는 단계;
상기 수신된 패킷이 인코딩된 패킷인 경우, 상기 인코딩된 패킷에 포함된 참조 값을 상기 참조 값에 대응하는 핑거프린트에 대응하는 청크로 교체하여 상기 인코딩된 패킷을 디코딩하는 단계;
상기 수신된 패킷이 인코딩된 패킷이 아닌 경우,
상기 수신된 패킷을 다수의 청크들로 분할하고, 각각이 상기 다수의 청크들 각각에 대응하는 다수의 핑거프린트들을 생성하는 단계;
상기 다수의 핑거프린트들 중 미리 저장된 다수의 블룸 필터들 각각에 속하는 핑거프린트의 개수를 도출하는 단계; 및
상기 다수의 핑거프린트들 중 미리 결정된 개수 이상의 핑거프린트를 포함하는 블룸 필터를 상기 송신 단말기로 송신하는 단계를 포함하는 데이터 수신 방법.A method for receiving data in a receiving terminal,
Receiving a packet from a transmitting terminal;
Confirming whether the received packet is encoded;
If the received packet is an encoded packet, decoding the encoded packet by replacing a reference value included in the encoded packet with a chunk corresponding to a fingerprint corresponding to the reference value;
If the received packet is not an encoded packet,
Dividing the received packet into a plurality of chunks, each generating a plurality of fingerprints corresponding to each of the plurality of chunks;
Deriving a number of fingerprints pertaining to each of a plurality of previously stored bloom filters of the plurality of fingerprints; And
And transmitting to the transmitting terminal a Bloom filter including a predetermined number or more of fingerprints among the plurality of fingerprints.
상기 디코딩하는 단계에서 상기 인코딩된 패킷을 디코딩하지 못한 경우, 상기 수신된 패킷에 대한 원본 패킷의 송신을 상기 송신 단말기에 요청하는 단계를 더 포함하는 데이터 수신 방법.The method according to claim 1,
And requesting the transmitting terminal to transmit an original packet to the received packet if the encoded packet can not be decoded in the decoding step.
상기 미리 결정된 개수 이상의 핑거프린트를 포함하는 블룸 필터가 존재하지 않는 경우, 상기 수신된 패킷에 대한 원본 패킷의 송신을 상기 송신 단말기에 요청하는 단계를 더 포함하는 데이터 수신 방법.The method according to claim 1,
Further comprising the step of requesting the transmitting terminal to transmit an original packet for the received packet if there is no Bloom filter including the predetermined number or more of fingerprints.
상기 송신 단말기로부터, 상기 블룸 필터를 이용하여 인코딩된 다음 패킷을 수신하는 단계를 더 포함하는 데이터 수신 방법.The method according to claim 1,
Further comprising receiving, from the transmitting terminal, the next packet encoded using the Bloom filter.
상기 다수의 블룸 필터들 각각에는 이전에 수신된 패킷들 각각에 포함된 청크들 각각의 핑거프린트들이 등록된, 데이터 수신 방법.The method according to claim 1,
Wherein fingerprints of each of the chunks contained in each of the previously received packets are registered in each of the plurality of Bloom filters.
수신 단말기로부터 상기 수신 단말기에 의해 생성된 블룸 필터의 수신 여부를 결정하는 단계;
상기 블룸 필터가 수신된 경우, 상기 수신 단말기로 송신하려는 원본 패킷을 다수의 청크들로 분할하여 분할된 패킷을 생성하고, 각각이 상기 다수의 청크들 각각에 대응하는 다수의 핑거프린트들을 생성하는 단계;
상기 분할된 패킷에 포함된 다수의 청크들 중에서, 상기 다수의 핑거프린트들 중에서 상기 블룸 필터에 속하는 핑거프린트에 대응하는 청크를 참조 값으로 대체하여 인코딩된 패킷을 생성하는 단계; 및
상기 인코딩된 패킷을 상기 수신 단말기로 송신하는 단계를 포함하고,
상기 블룸 필터는 상기 수신 단말기에 저장된 다수의 블룸 필터들 중, 각각이 상기 송신 단말기로부터 상기 수신 단말기로 송신된 제2 패킷으로부터 분할된 다수의 제2 청크들 각각에 대응하는 다수의 제2 핑거프린트들 중 미리 정해진 개수 이상의 핑거프린트를 포함하는 블룸 필터인,
데이터 송신 방법.A method for transmitting data in a transmitting terminal,
Determining whether to receive the bloom filter generated by the receiving terminal from the receiving terminal;
Generating a divided packet by dividing an original packet to be transmitted to the receiving terminal into a plurality of chunks when the Bloom filter is received and generating a plurality of fingerprints each corresponding to each of the plurality of chunks ;
Generating an encoded packet by replacing a chunk corresponding to a fingerprint belonging to the Bloom filter with a reference value among the plurality of chunks included in the divided packet; And
And transmitting the encoded packet to the receiving terminal,
Wherein the Bloom filter includes a plurality of second fingerprints corresponding to each of a plurality of second chunks divided from a second packet transmitted from the transmitting terminal to the receiving terminal, A bloom filter comprising a predetermined number or more of fingerprints,
Data transmission method.
상기 수신 단말기로부터 수신된 블룸 필터가 존재하지 않는 경우, 상기 원본 패킷을 상기 수신 단말기로 송신하는 단계를 더 포함하는 데이터 송신 방법.8. The method of claim 7,
And transmitting the original packet to the receiving terminal when there is no Bloom filter received from the receiving terminal.
상기 참조 값은 상기 참조 값에 대응하는 상기 핑거프린트에 포함된 비트 시퀀스(bit sequence) 또는 바이트 시퀀스(byte sequence)의 일부인 데이터 송신 방법.8. The method of claim 7,
Wherein the reference value is a part of a bit sequence or a byte sequence included in the fingerprint corresponding to the reference value.
상기 인코딩된 패킷을 생성하는 단계에서, 상기 블룸 필터에 속하는 핑거프린트가 존재하지 않는 경우, 상기 원본 패킷을 상기 수신 단말기로 송신하는 단계를 더 포함하는 데이터 송신 방법.8. The method of claim 7,
And transmitting the original packet to the receiving terminal when the fingerprint belonging to the Bloom filter does not exist in the step of generating the encoded packet.
수신 단말기로 송신하려는 원본 패킷을 다수의 청크들로 분할하여 분할된 패킷을 생성하고, 각각이 상기 다수의 청크들 각각에 대응하는 다수의 핑거프린트들을 생성하는 단계;
상기 분할된 패킷에 포함된 다수의 청크들 중에서, 상기 다수의 핑거프린트들 중에서 상기 수신 단말기로부터 수신된 블룸 필터에 속하는 핑거프린트에 대응하는 청크를 참조 값으로 대체하여 인코딩된 패킷을 생성하는 단계; 및
상기 인코딩된 패킷을 상기 수신 단말기로 송신하는 단계를 포함하고,
상기 블룸 필터는 상기 수신 단말기에 저장된 다수의 블룸 필터들 중, 각각이 상기 송신 단말기로부터 상기 수신 단말기로 송신된 제2 패킷으로부터 분할된 다수의 제2 청크들 각각에 대응하는 다수의 제2 핑거프린트들 중 미리 정해진 개수 이상의 핑거프린트를 포함하는 블룸 필터인,
데이터 송신 방법.A method for transmitting data in a transmitting terminal,
Dividing an original packet to be transmitted to a receiving terminal into a plurality of chunks to generate a divided packet, and generating a plurality of fingerprints each corresponding to each of the plurality of chunks;
Generating an encoded packet by replacing a chunk corresponding to a fingerprint belonging to a Bloom filter received from the receiving terminal with a reference value among the plurality of chunks included in the divided packet; And
And transmitting the encoded packet to the receiving terminal,
Wherein the Bloom filter includes a plurality of second fingerprints corresponding to each of a plurality of second chunks divided from a second packet transmitted from the transmitting terminal to the receiving terminal, A bloom filter comprising a predetermined number or more of fingerprints,
Data transmission method.
상기 참조 값은 상기 블룸 필터에 속하는 상기 핑거프린트에 포함된 비트 시퀀스 또는 바이트 시퀀스의 일부인 데이터 송신 방법.12. The method of claim 11,
Wherein the reference value is part of a bit sequence or a byte sequence included in the fingerprint belonging to the Bloom filter.
송신 단말기로부터 패킷을 수신하는 단계;
수신된 패킷을 다수의 청크들로 분할하고, 각각이 상기 다수의 청크들 각각에 대응하는 다수의 핑거프린트들을 생성하는 단계;
미리 저장된 다수의 청크 집합들 중에서 상기 수신된 패킷과의 연관성이 가장 높은 청크 집합을 선택하는 단계;
상기 선택된 청크 집합에 포함된 블룸 필터를 상기 송신 단말기로 송신하는 단계; 및
상기 송신 단말기로부터 다음 패킷을 수신하는 단계를 포함하고,
상기 블룸 필터는 상기 다수의 청크 집합들 각각에 포함된 블룸 필터 중, 각각이 상기 송신 단말기로부터 수신된 제2 패킷으로부터 분할된 다수의 제2 청크들 각각에 대응하는 다수의 제2 핑거프린트들 중 미리 정해진 개수 이상의 핑거프린트를 포함하는 블룸 필터인,
데이터 수신 방법.A method for receiving data in a receiving terminal,
Receiving a packet from a transmitting terminal;
Dividing the received packet into a plurality of chunks, each generating a plurality of fingerprints corresponding to each of the plurality of chunks;
Selecting a chunk set having the highest correlation with the received packet among a plurality of chunk sets stored in advance;
Transmitting a Bloom filter included in the selected chunk set to the transmitting terminal; And
Receiving a next packet from the transmitting terminal,
Wherein the Bloom filter includes a plurality of second fingerprints corresponding to each of a plurality of second chunks divided from a second packet received from the transmitting terminal among bloom filters included in each of the plurality of chunk sets A Bloom filter including a predetermined number or more of fingerprints,
A method for receiving data.
상기 다음 패킷은 상기 블룸 필터에 등록된 핑거프린트를 이용하여 생성된 참조 값을 포함하고,
상기 데이터 수신 방법은, 상기 참조 값을 상기 선택된 청크 집합에 포함된 다수의 청크들 중에서 상기 참조 값에 대응하는 청크로 교체하는 단계를 더 포함하는 데이터 수신 방법.
14. The method of claim 13,
Wherein the next packet includes a reference value generated using a fingerprint registered in the Bloom filter,
Wherein the data receiving method further comprises replacing the reference value with a chunk corresponding to the reference value among a plurality of chunks included in the selected chunk set.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020140025433A KR101568390B1 (en) | 2014-03-04 | 2014-03-04 | Method for transmitting and receiving data using bloom filter |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020140025433A KR101568390B1 (en) | 2014-03-04 | 2014-03-04 | Method for transmitting and receiving data using bloom filter |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20150104248A KR20150104248A (en) | 2015-09-15 |
KR101568390B1 true KR101568390B1 (en) | 2015-11-13 |
Family
ID=54244011
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020140025433A KR101568390B1 (en) | 2014-03-04 | 2014-03-04 | Method for transmitting and receiving data using bloom filter |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101568390B1 (en) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070124415A1 (en) | 2005-11-29 | 2007-05-31 | Etai Lev-Ran | Method and apparatus for reducing network traffic over low bandwidth links |
JP2011259024A (en) | 2010-06-04 | 2011-12-22 | Nippon Telegr & Teleph Corp <Ntt> | Multicast transfer method, packet transfer system, node device and packet transfer program |
-
2014
- 2014-03-04 KR KR1020140025433A patent/KR101568390B1/en active IP Right Grant
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070124415A1 (en) | 2005-11-29 | 2007-05-31 | Etai Lev-Ran | Method and apparatus for reducing network traffic over low bandwidth links |
JP2011259024A (en) | 2010-06-04 | 2011-12-22 | Nippon Telegr & Teleph Corp <Ntt> | Multicast transfer method, packet transfer system, node device and packet transfer program |
Also Published As
Publication number | Publication date |
---|---|
KR20150104248A (en) | 2015-09-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9363309B2 (en) | Systems and methods for compressing packet data by predicting subsequent data | |
CN108647230B (en) | Distributed storage method, electronic device, and storage medium | |
CN105681380B (en) | Client off-line method and its system | |
US11385794B2 (en) | System and method for data compaction and security using multiple encoding algorithms | |
KR102100957B1 (en) | Method and apparatus for sending inforamtion using sharing cache between portable terminals | |
JP5753946B2 (en) | Method and system for downloading font files | |
US11733867B2 (en) | System and method for multiple pass data compaction utilizing delta encoding | |
US11762557B2 (en) | System and method for data compaction and encryption of anonymized datasets | |
CN107251529B (en) | Method and apparatus for transmitting and receiving information between servers in content transmission network system | |
CN109274720B (en) | Method and system for transmitting data | |
CN110519656B (en) | Self-adaptive streaming media playing method, system and server | |
US9967774B2 (en) | Compression method featuring dynamic coding for wireless communication in wireless networks | |
US20240020006A1 (en) | System and method for compaction of floating-point numbers within a dataset | |
KR101465891B1 (en) | Traffic redundancy elimination method and apparatus in wireless network | |
KR101568390B1 (en) | Method for transmitting and receiving data using bloom filter | |
WO2018000647A1 (en) | Method, device, terminal, and server for file downloading | |
US10769016B2 (en) | Storing a plurality of correlated data in a dispersed storage network | |
US20170048303A1 (en) | On the fly statistical delta differencing engine | |
CN107589917B (en) | Distributed storage system and method | |
CN110856144A (en) | LT code-based atomization caching method in mobile edge computing network | |
CN110958212A (en) | Data compression method, data decompression method, device and equipment | |
KR20180082767A (en) | Apparatus for transmitting and receiving data using synchronization-based encoding and method thereof | |
US20230315288A1 (en) | System and method for data compaction and security using multiple encoding algorithms with pre-coding and complexity estimation | |
US20240143172A1 (en) | System and method for personal health monitor data compaction using multiple encoding algorithms | |
US20150234908A1 (en) | Techniques for data synchronization using compressive sensing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20181025 Year of fee payment: 4 |