KR101181478B1 - 데이터 전송 장치 및 방법, 데이터 수신 장치 및 방법, 그리고 데이터 송수신 시스템 - Google Patents

데이터 전송 장치 및 방법, 데이터 수신 장치 및 방법, 그리고 데이터 송수신 시스템 Download PDF

Info

Publication number
KR101181478B1
KR101181478B1 KR1020100106094A KR20100106094A KR101181478B1 KR 101181478 B1 KR101181478 B1 KR 101181478B1 KR 1020100106094 A KR1020100106094 A KR 1020100106094A KR 20100106094 A KR20100106094 A KR 20100106094A KR 101181478 B1 KR101181478 B1 KR 101181478B1
Authority
KR
South Korea
Prior art keywords
data
sub data
compressed
file
transmission
Prior art date
Application number
KR1020100106094A
Other languages
English (en)
Other versions
KR20120044670A (ko
Inventor
우경은
송성학
이창훈
오규삼
Original Assignee
삼성에스디에스 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성에스디에스 주식회사 filed Critical 삼성에스디에스 주식회사
Priority to KR1020100106094A priority Critical patent/KR101181478B1/ko
Publication of KR20120044670A publication Critical patent/KR20120044670A/ko
Application granted granted Critical
Publication of KR101181478B1 publication Critical patent/KR101181478B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/04Protocols for data compression, e.g. ROHC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/38Flow control; Congestion control by adapting coding or compression rate
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W28/00Network traffic management; Network resource management
    • H04W28/02Traffic management, e.g. flow control or congestion control
    • H04W28/06Optimizing the usage of the radio link, e.g. header compression, information sizing, discarding information

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

데이터 전송 장치 및 방법, 데이터 수신 장치 및 방법, 그리고 데이터 송수신 시스템이 개시된다. 데이터 전송 장치에서 데이터 관리부는 전송 대상 파일을 복수의 서브 데이터로 분할한다. 압축부는 분할된 서브 데이터들을 압축한다. 전송부는 서브 데이터들이 압축되는 동안 기압축된 서브 데이터를 병렬 스트림을 이용하여 수신측 장치로 전송한다. 본 발명에 따르면, 데이터를 분할하여 전송함으로써 분할된 데이터의 압축과 전송을 병행할 수 있으며, 그에 따라 데이터 전송률을 높일 수 있다.

Description

데이터 전송 장치 및 방법, 데이터 수신 장치 및 방법, 그리고 데이터 송수신 시스템{Apparatus and method for data transmission, apparatus and method for receiving data, and data tranceiving system}
본 발명은 데이터 전송 장치 및 방법, 데이터 수신 장치 및 방법, 그리고, 데이터 송수신 시스템에 관한 것으로서, 병렬 스트림을 이용하여 실시간으로 데이터를 송수신할 수 있는 데이터 전송 장치 및 방법, 데이터 수신 장치 및 방법, 그리고, 데이터 송수신 시스템에 관한 것이다.
정지영상, 동영상, 음악 등 대용량 멀티미디어 파일에 대한 수요가 증가하고 있으며, 사용자들은 보다 빠른 파일의 전송을 요구하고 있다. 예를 들면, 온라인 네트워크 환경을 통해 파일을 공유하는 경우, 사용자들은 보다 빠르게 대용량 파일을 다운로드 또는 업로드하고자 한다.
또한, 스마트폰, 태블릿 등 다양한 형태의 모바일 디바이스의 보급이 확산됨에 따라 네트워크의 사용량이 증가하고 있다. 이에 따라, 대용량 데이터를 처리하는 서버가 아닌 데이터를 전송하는 네트워크의 병목 현상에 의해 데이터 전송의 지연이 발생하는 경우도 있다.
대용량 데이터를 고속으로 전송하기 위해 다수의 TCP 스트림을 이용하여 데이터를 병렬로 전송하는 방식이 등장하여 하나의 스트림을 이용하는 경우에 비해 전송 속도를 향상시켰으나, 대용량 데이터의 크기 문제는 여전히 존재한다. 이를 해결하기 위해 데이터를 압축하는 방법을 사용할 수 있으나, 대용량 데이터의 특성상 압축 및 해제에 걸리는 시간이 전송 속도 향상으로 감소하는 전송 시간에 비해 길어지게 된다는 문제가 있다.
본 발명이 이루고자 하는 기술적 과제는, 병렬 스트림을 이용하여 데이터를 전송함으로써 네트워크를 효율적으로 사용할 수 있으며, 데이터를 분할처리하여 데이터의 압축과 전송을 병행하고, 데이터 수신과 압축 해제를 병행함으로써 데이터 전송률을 높일 수 있는 데이터 전송 장치 및 방법, 그리고 데이터 수신 장치 및 방법을 제공하는 데 있다.
본 발명이 이루고자 하는 다른 기술적 과제는, 병렬 스트림을 이용하여 데이터를 전송함으로써 네트워크를 효율적으로 사용할 수 있으며, 데이터를 분할처리하여 데이터의 압축과 전송을 병행하고, 데이터 수신과 압축 해제를 병행함으로써 데이터 전송률을 높일 수 있는 데이터 송수신 시스템을 제공하는 데 있다.
상기의 기술적 과제를 달성하기 위한, 본 발명에 따른 데이터 전송 장치는, 전송 대상 파일을 복수의 서브 데이터로 분할하는 데이터 관리부; 상기 분할된 서브 데이터들을 압축하는 압축부; 및 상기 서브 데이터들이 압축되는 동안 기압축된 서브 데이터를 병렬 스트림을 이용하여 수신측 장치로 전송하는 전송부;를 구비한다.
상기의 기술적 과제를 달성하기 위한, 본 발명에 따른 데이터 수신 장치는, 송신측 장치로부터 병렬 스트림을 이용하여 전송되는 서브 데이터들을 수신하는 수신부; 및 상기 서브 데이터들이 수신되는 동안 기수신된 서브 데이터의 압축을 해제하는 압축 해제부;를 구비한다.
상기의 기술적 과제를 달성하기 위한, 본 발명에 따른 데이터 전송 방법은, (a) 전송 대상 파일을 복수의 서브 데이터로 분할하는 단계; (b) 상기 분할된 서브 데이터들을 압축하는 단계; 및 (c) 상기 (b) 단계가 수행되는 동안 기압축된 서브 데이터를 병렬 스트림을 이용하여 수신측 장치로 전송하는 단계;를 갖는다.
상기의 기술적 과제를 달성하기 위한, 본 발명에 따른 데이터 수신 방법은, (a) 송신측 장치로부터 병렬 스트림을 이용하여 전송되는 서브 데이터들을 수신하는 단계; 및 (b) 상기 서브 데이터들이 수신되는 동안 기수신된 서브 데이터의 압축을 해제하는 단계;를 갖는다.
상기의 다른 기술적 과제를 달성하기 위한, 본 발명에 따른 데이터 송수신 시스템은, 전송 대상 파일을 복수 개의 서브 데이터들로 분할하고, 상기 분할된 서브 데이터들을 병렬 스트림을 이용하여 전송하는 데이터 전송 장치; 및 상기 병렬 스트림을 이용하여 전송되는 상기 서브 데이터들을 순차적으로 수신하여 압축을 해제하는 데이터 수신 장치;를 구비하며, 상기 데이터 전송 장치에서 상기 분할된 서브 데이터를 전송하는 동작과 상기 데이터 수신 장치에서 상기 수신된 서브 데이터들의 압축을 해제하는 동작이 병행하여 수행된다.
본 발명에 따른 데이터 전송 장치 및 방법, 데이터 수신 장치 및 방법, 그리고, 데이터 송수신 시스템에 의하면, 병렬 TCP(Transmission Control Protocol) 스트림을 이용하여 데이터를 전송함으로써 TCP 스트림들이 가지는 윈도우의 합만큼의 데이터를 한번에 전송할 수 있으므로 패킷 간의 충돌이 발생하여도 싱글 TCP 스트림을 이용하여 데이터를 전송하는 경우보다 많은 데이터를 전송하고, 전송측과 수신측이 보다 빠르게 데이터를 공유할 수 있다. 또한 데이터를 분할하여 전송함으로써 분할된 데이터의 압축과 전송을 병행할 수 있으며, 이로써 데이터 전송률을 높일 수 있다. 나아가 분할된 데이터의 압축 여부를 실시간으로 정하여 압축률이 우수한 데이터는 압축전송하고, 압축률이 저조한 데이터는 압축 없이 전송함으로써 데이터 전송률을 높일 수 있다.
도 1은 본 발명에 따른 데이터 전송 장치 및 데이터 수신 장치를 포함하는 데이터 송수신 시스템을 도시한 도면,
도 2는 본 발명에 따른 데이터 전송 장치에 대한 바람직한 실시예의 구성을 도시한 블록도,
도 3은 제1비활성블록풀에 저장되는 파일 블록의 구조를 도시한 도면,
도 4는 압축블록풀에 저장된 압축 블록의 구조를 도시한 도면,
도 5는 본 발명에 따른 데이터 수신 장치에 대한 바람직한 실시예의 구성을 도시한 블록도,
도 6은 본 발명에 따른 데이터 전송 장치에서 전송 대상 파일의 압축 여부를 판단하는 과정을 설명하기 위한 흐름도,
도 7은 본 발명에 따른 데이터 전송 방법에 대한 바람직한 실시예의 수행과정을 도시한 흐름도,
도 8은 전송부에 의한 병렬 스트리밍 방식의 전송에 관하여 상세히 설명하기 위한 흐름도,
도 9는 본 발명에 따른 데이터 수신 방법에 대한 바람직한 실시예의 수행과정을 도시한 흐름도, 그리고,
도 10은 수신부에 의한 병렬 스트리밍 방식의 수신에 관하여 상세히 설명하기 위한 흐름도이다.
이하에서 첨부된 도면들을 참조하여 본 발명에 따른 데이터 전송 장치 및 방법, 데이터 수신 장치 및 방법, 그리고, 데이터 송수신 시스템에 대해 상세하게 설명한다.
도 1은 본 발명에 따른 데이터 전송 장치(100) 및 데이터 수신 장치(200)를 포함하는 데이터 송수신 시스템을 도시한 도면이다.
도 1을 참조하면, 본 발명에 따른 데이터 전송 장치(100)는 데이터 수신 장치(200)로 전송하기 위한 전송 대상 파일을 복수 개의 서브 데이터들로 분할하고, 분할된 서브 데이터들을 실시간으로 압축하여 병렬 스트림 방식으로 전송한다. 또한 본 발명에 따른 데이터 수신 장치(200)는 병렬 스트림을 이용하여 전송되는 서브 데이터들을 수신함과 동시에 기수신된 서브 데이터의 압축을 해제한다. 즉, 데이터 전송 장치(100)와 데이터 수신 장치(200)는 TCP 채널을 통해 서브 데이터를 병렬 스트리밍 전송 방식으로 송수신한다.
또한, 데이터 전송 장치(100)가 서브 데이터들을 압축 또는 비압축하여 전송하는 동안, 데이터 수신 장치(200)는 기수신된 서브 데이터들의 압축을 해제한다. 즉, 데이터의 압축 및 전송과 데이터의 수신 및 압축 해제는 병행하여 수행될 수 있다.
도 2는 본 발명에 따른 데이터 전송 장치(100)에 대한 바람직한 실시예의 구성을 도시한 블록도이다.
도 2를 참조하면, 본 발명에 따른 데이터 전송 장치(100)는 사용자 인터페이스(UI: User Interface)부(110), 제1 데이터 저장부(120), 제1 블록 저장부(130), 제1제어부(140), 제1 데이터 관리부(150), 압축부(160) 및 전송부(170)를 구비한다.
사용자 인터페이스부(110)는 사용자와 데이터 전송 장치(100) 간의 인터페이싱 경로를 제공한다. 예를 들면, 사용자 인터페이스부(110)는 사용자로부터 데이터 수신 장치(200)로 전송하기 위한 전송 대상 파일의 전송 요청 및 압축 요청에 대한 신호를 입력받을 수 있다.
제1 데이터 저장부(120)에는 전송 대상 파일이 저장되며, 내장형 메모리 또는 외장형 메모리의 형태로 구현될 수 있다. 제1 데이터 저장부(120)가 외장형 메모리인 경우, 제1 데이터 저장부(120)는 하드 디스크 드라이브, USB(Universal Serial Bus) 메모리, 광디스크 드라이브 등 사용 가능한 모든 메모리가 될 수 있다.
제1 블록 저장부(130)에는 전송 대상 파일의 압축 및 전송을 위한 다양한 파일 블록 또는 압축 블록이 저장될 수 있다. 제1 블록 저장부(130)는 논리적으로 또는 물리적으로 구분된 제1비활성블록풀(Inactive Block Pool)(131), 제1압축대상블록풀(PreCompress Block Pool)(132), 제1압축블록풀(Compress Block Pool)(133) 및 제1활성블록풀(Active Block Pool)(134)을 포함한다.
제1비활성블록풀(131)은 복수의 파일 블록들을 저장한다. 파일 블록은 제1 데이터 관리부(150)가 제1 데이터 저장부(120)에 저장된 전송 대상 파일을 분할할 때 사용될 수 있다.
도 3은 제1비활성블록풀(131)에 저장되는 파일 블록의 구조를 도시한 도면이다. 도 3을 참조하면, 파일 블록은 헤더 및 페이로드로 구분된다. 헤더에는 파일 블록이 데이터임을 알려주는 태그 정보, 파일을 식별하기 위한 파일 고유의 ID 정보, 제1데이터 저장부(120)로부터 현재 읽어온 서브 데이터가 파일의 어느 위치에 속하는지를 알려주는 데이터 주소 정보, 읽어온 서브 데이터의 크기(즉, 페이로드의 크기) 정보 및 파일 블록이 압축된 블록인지 여부를 나타내는 압축 플래그 정보가 기록(writing)될 수 있다. 또한 페이로드에는 페이로드의 크기에 해당하는 양의 서브 데이터가 기록될 수 있다. 도 3과 같은 구조를 가지는, 서브 데이터가 기록되지 않은 복수 개의 파일 블록들은 기할당된 메모리 영역으로서 제1비활성블록풀(131)에 저장될 수 있다.
제1압축대상블록풀(132)은 서브 데이터가 기록된 파일 블록을 하나 이상 저장하며, 압축블록풀(133)은 복수 개의 압축 블록들을 저장한다. 여기서 압축 블록은 서브 데이터가 기록된 파일 블록의 압축을 위해 미리 할당된 메모리 영역이다. 압축 블록의 사용이 끝나면 압축 블록은 압축블록풀(133)로 반환된다.
도 4는 압축블록풀(133)에 저장된 압축 블록의 구조를 도시한 도면이다. 도 4를 참조하면, 압축 블록은 헤더 및 페이로드로 구분된다. 헤더에는 입력 버퍼의 크기 정보와 출력 버퍼의 크기 정보가 기록될 수 있다. 페이로드의 입력 버퍼와 출력 버퍼는 서브 데이터의 압축시 사용될 수 있다. 즉, 페이로드에 저장된 서브 데이터 전체는 압축을 위해 입력 버퍼로 들어가고, 압축 후 압축된 서브 데이터는 출력 버퍼로 리턴된 후 다시 원본 파일블록의 페이로드에 저장된다.
마지막으로 제1활성블록풀(134)은 압축된 파일 블록 또는 압축되지 않은 파일 블록을 하나 이상 저장한다.
제1제어부(140)는 적어도 하나의 프로세서, 제어 프로그램 등 데이터 전송 장치(100)의 구동에 필요한 요소들을 이용하여 데이터 전송 장치(100)의 전반적인 동작을 제어한다.
또한, 제1제어부(140)는 전송 대상 파일의 형식이 알려지지 않은 형식인 경우에는 전송 대상 파일의 임의의 위치에 있는 데이터를 압축하여 전체 압축률을 추정한다. 추정된 전체 압축률이 낮으면 제1제어부(140)는 전송 대상 파일을 압축하지 않고 원본 전송 대상 파일을 전송하도록 결정한다.
또한, 제1제어부(140)는 전송 대상 파일이 이미 압축되어 있는지 판단하고, 이미 압축되어 있는 파일은 재압축의 과정 없이 데이터 수신 장치(200)로 전송하도록 결정한다. 이는 이미 압축된 파일을 재압축하는 경우에 압축 효율이 나빠질 수 있기 때문이다. 예를 들면, 전송 대상 파일의 확장자가 *.jpeg, *mpeg인 경우에 제1제어부(140)는 전송 대상 파일이 이미 압축된 파일인 것으로 판단한다.
한편, 제1제어부(140)는 후술할 압축부(160)에 의해 압축된 서브 데이터의 압축률에 따라 압축된 서브 데이터의 전송 방식을 실시간으로 결정할 수 있다. 구체적으로, 제1제어부(140)는 압축된 서브 데이터의 크기가 압축 이전보다 작으면 압축된 서브 데이터를 데이터 수신 장치(200)로 전송하고, 압축된 서브 데이터의 크기가 압축 이전보다 크면, 압축 이전의 서브 데이터를 데이터 수신 장치(200)로 전송하도록 결정한다. 또한 압축부(160)에 의한 압축이 완료되면 파일 블록 헤더의 압축 플래그를 'true'로 설정하고, 압축률이 좋지 않아 원본 서브 데이터를 전송하는 경우에는 압축 플래그를 'false'로 설정한다.
제1 데이터 관리부(150)는 전송 대상 데이터를 복수 개의 서브 데이터들로 분할한다. 이때 제1 데이터 관리부(150)는 기설정된 파일 블록의 크기로 전송 대상 파일을 분할한다. 또한 압축부(160)는 제1 데이터 관리부(150)에 의해 분할된 서브 데이터들을 순차적으로 압축한다. 이는 압축부(160)가 서브 데이터가 저장된 페이로드를 압축하는 것을 의미한다. 다만, 압축부(160)는 헤더 부분까지 압축함으로써 효율을 높일 수도 있으며, 복수의 스레드(thread)로 동작하여 여러 개의 서브 데이터를 동시에 압축할 수도 있다.
전송부(170)는 순차적으로 압축되는 서브 데이터와 헤더를 병렬 스트림을 이용하여 데이터 수신 장치(200)로 전송한다. 또한, 제1제어부(140)의 결정에 의해 압축없이 전송 대상 파일 전체 또는 일부 서브 데이터를 전송하는 경우, 전송부(170)는 압축 이전의 전송 대상 파일 또는 일부 서브 데이터를 병렬 스트림을 이용하여 전송한다.
상술한 제1 데이터 관리부(150)에 의한 전송 대상 파일의 분할, 압축부(160)에 의한 분할된 서브 데이터들의 압축 및 전송부(170)에 의한 압축된 서브 데이터들의 전송 중 적어도 두 가지의 동작은 병행하여 수행될 수 있다. 예를 들면, 압축부(160)가 분할된 서브 데이터들 중 제2 서브 데이터를 압축하는 동안 전송부(170) 제1 서브 데이터를 전송한다. 여기서 제1 서브 데이터는 제2 서브 데이터 이전에 압축된 데이터이다.
이하에서는 제1 데이터 관리부(150), 압축부(160) 및 전송부(170)에 의해 파일 블록에 복수의 서브 데이터 중에서 제1 서브 데이터를 기록 및 전송하는 동작을 자세히 설명한다.
제1 데이터 관리부(150)는 사용자로부터 전송 대상 파일의 전송이 요청되면 제1비활성블록풀(131)에 저장된 파일 블록을 가져오고, 제1 데이터 저장부(120)로부터 파일 블록의 페이로드 크기에 해당하는 서브 데이터를 가져와 파일 블록의 페이로드에 기록한다. 또한, 제1 데이터 관리부(150)는 파일 블록의 헤더에 서브 데이터와 관련된 헤더 정보를 기록한다. 헤더에 기록되는 헤더 정보는 태그 정보, 파일 ID 정보, 데이터 주소 정보 및 서브 데이터의 크기 정보를 포함한다. 또한 제1 데이터 관리부(150)는 서브 데이터와 헤더 정보가 기록된 파일 블록을 제1압축대상블록풀(132)에 저장하되, 제1제어부(140)에 의해 압축하여 전송할 것으로 결정된 파일 블록, 즉 압축 플래그의 값이 'true'로 설정되는 파일 블록을 제1압축대상블록풀(132)에 저장한다.
압축부(160)는 제1압축대상블록풀(132)에 파일 블록이 있으면 압축을 위해 파일 블록을 가져온다. 또한 파일 블록의 압축을 위해 압축블록풀(133)에 저장된 압축 블록을 이용하여 파일 블록을 압축한다. 즉, 압축부(160)는 제1 서브 데이터가 기록된 페이로드와 정보가 기록된 헤더를 압축 블록을 이용하여 압축한다. 이후 압축부(160)는 압축된 파일 블록을 제1활성블록풀(134)에 저장하고, 압축 블록을 압축 블록 풀(133)에 반환한다.
전송부(170)는 제1활성블록풀(134)에 파일 블록이 저장되어 있는지 체크하여, 파일 블록이 있으면 해당 파일 블록을 가져와 데이터 수신 장치(200)로 전송한다. 이때 전송부(170)는 제1활성블록풀(134)에 저장된 압축된 파일 블록 또는 압축되지 않은 파일 블록을 병렬 스트림을 이용하여 데이터 수신 장치(200)로 전송한다. 이를 위해 전송부(170)는 복수의 소켓 스레드를 생성하고, 각 소켓 스레드가 하나의 TCP 스트림을 맺음으로써 파일 블록, 즉, 파일 블록의 서브 데이터 또는 헤더를 각각 병렬 스트리밍 방식으로 전송할 수도 있다.
도 5는 본 발명에 따른 데이터 수신 장치(200)에 대한 바람직한 실시예의 구성을 도시한 블록도이다. 도 5를 참조하면, 본 발명에 따른 데이터 수신 장치(200)는 제2 블록 저장부(210), 수신부(220), 제2제어부(230), 압축 해제부(240), 제2 데이터 관리부(250) 및 제2 데이터 저장부(260)를 구비한다.
제2 블록 저장부(210)에는 데이터 전송 장치(100)로부터 수신된 전송 대상 파일의 압축 해제를 위한 다양한 파일 블록 또는 압축 해제 블록이 저장될 수 있다. 제2 블록 저장부(210)는 논리적으로 또는 물리적으로 구분된 제2비활성블록풀(211), 제2압축대상블록풀(212), 압축해제블록풀(213) 및 제2활성블록풀(214)을 포함한다.
제2비활성블록풀(211)은 복수의 파일 블록을 저장하며, 파일 블록은 수신부(220)를 통해 수신된 서브 데이터와 헤더 정보를 기록할 때 사용된다. 또한 제2압축대상블록풀(212)은 서브 데이터와 헤더 정보가 기록된 파일 블록을 하나 이상 저장한다.
압축해제블록풀(213)은 복수의 압축 해제 블록을 저장하며, 압축 해제 블록은 파일 블록에 기록된 서브 데이터의 압축 해제를 위해 미리 할당된 메모리 영역이다. 압축 해제 블록은 파일 블록의 압축이 해제되면 압축해제블록풀(213)로 반환된다. 마지막으로 제2활성블록풀(214)은 압축 해제된 파일 블록을 하나 이상 저장한다.
수신부(220)는 압축된 서브 데이터와 헤더 정보 또는 압축되지 않은 서브 데이터와 헤더 정보를 병렬 스트림을 이용하여 데이터 전송 장치(100)로부터 수신한다. 이를 위해 수신부(220)는 복수 개의 소켓 스레드를 생성하고, 각 소켓 스레드가 하나의 TCP 스트림을 맺음으로써 서브 데이터가 기록된 파일 블록을 병렬로 수신한다.
제2제어부(230)는 적어도 하나의 프로세서, 제어 프로그램 등 데이터 수신 장치(200)의 구동에 필요한 요소들을 이용하여 본 발명에 따른 데이터 수신 장치(200)의 전반적인 동작을 제어한다.
제2제어부(230)는 수신된 서브 데이터가 압축되었는지를 판단하여 비압축된 서브 데이터는 제2활성블록풀(214)을 거쳐 제2 데이터 저장부(260)에 저장되도록 하고, 압축된 서브 데이터는 압축 해제부(240)로 제공하도록 수신부(220)를 제어한다. 이때 제2제어부(230)는 수신된 서브 데이터의 헤더 정보를 확인하여 압축 여부를 판단한다. 구체적으로, 앞에서 설명한 바와 같이 제1제어부(140)에 의해 서브 데이터의 압축 여부에 따라 압축 플래그의 값이 'true' 또는 'false'로 설정되었으므로, 제2제어부(230)는 헤더의 압축 플래그가 'true'로 설정되어 있으면 서브 데이터는 압축된 것이며 'false'로 설정되어 있으면 압축되지 않은 것으로 판단한다.
압축 해제부(240)는 수신된 서브 데이터와 헤더 정보의 압축을 해제한다. 이 때 수신부(220)에서 서브 데이터를 수신하는 동작과 압축 해제부(240)에서 기수신된 서브 데이터의 압축을 해제하는 동작은 병행하여 수행될 수 있다. 즉, 수신부(220)가 서브 데이터들을 순차적으로 수신하는 동안, 압축 해제부(240)는 이전에 수신된 서브 데이터의 압축을 해제한다.
제2 데이터 관리부(250)는 압축이 해제된 서브 데이터 또는 압축되지 않은 상태에서 전송된 서브 데이터를 제2 데이터 저장부(260)에 저장한다. 제2 데이터 저장부(260)에는 수신부(220) 또는 압축 해제부(240)로부터 제2활성블록풀(210)을 거쳐 제공되는 서브 데이터가 파일 블록의 헤더 정보에 따라 저장될 수 있다. 제2 데이터 저장부(260)는 내장형 메모리 또는 외장형 메모리의 형태로 구현될 수 있다.
이하에서는 수신부(220), 압축 해제부(240) 및 제2 데이터 관리부(250)에 의해 파일 블록에 기록된 서브 데이터를 수신 및 저장하는 동작을 자세히 설명한다.
제2제어부(230)에 의해 서브 데이터가 압축되지 않은 것으로 판단되면 수신부(220)는 제2비활성블록풀(211)에 저장된 파일 블록을 가져와 파일 블록의 페이로드에 서브 데이터를 기록하고, 헤더에 서브 데이터의 헤더 정보를 기록한 후 파일 블록을 제2활성블록풀(214)에 저장한다.
또한, 제2제어부(230)에 의해 서브 데이터가 압축된 것으로 판단되면, 수신부(220)는 제2비활성블록풀(211)에 저장된 파일 블록을 가져와 파일 블록의 페이로드에 서브 데이터를 기록하고, 헤더에 서브 데이터의 헤더 정보를 기록한 후 파일 블록을 제2압축대상블록풀(212)에 저장한다. 헤더 정보는 데이터 전송 장치(100)에서 기록된 서브 데이터와 관련된 태그 정보, 파일 ID 정보, 데이터 주소 정보, 서브 데이터의 크기 정보를 포함한다.
압축 해제부(240)는 제2압축대상블록풀(212)에 서브 데이터가 기록된 파일 블록이 있는지를 주기적으로 확인하고, 파일 블록이 있으면 파일 블록을 가져올 수 있다. 그리고 압축 해제부(240)는 파일 블록의 압축 해제를 위해 압축해제블록풀(213)에 저장된 압축 해제 블록을 이용하여 파일 블록의 압축을 해제한다. 압축 해제가 완료되면 압축 해제부(240)는 압축 해제된 파일 블록을 제2활성블록풀(214)에 저장하고, 압축 해제 블록을 압축해제블록풀(213)에 반환한다.
제2 데이터 관리부(250)는 제2활성블록풀(214)을 확인하여 파일 블록이 있으면 가져오고, 파일 블록의 헤더에 기록된 데이터 주소를 확인한다. 그리고 제2데이터 관리부(250)는 제2 데이터 저장부(260) 중 확인된 데이터 주소에 해당하는 위치에 파일 블록에 저장된 서브 데이터를 기록한다. 수신된 모든 서브 데이터들이 제2 데이터 저장부(260)에 저장되면, 데이터 수신 장치(200)는 데이터 전송 장치(100)에게 저장 완료 신호 또는 수신 완료 메시지를 전송한다.
도 6은 본 발명에 따른 데이터 전송 장치(100)에서 전송 대상 파일의 압축 여부를 판단하는 과정을 설명하기 위한 흐름도이다. 도 6에 도시된 각 단계는 제1제어부(140) 또는 적어도 하나의 프로세서에 의해 수행될 수 있다.
도 6을 참조하면, 제1제어부(140)는 사용자로부터 전송 대상 파일의 압축 전송이 요청된 것으로 확인되면(S610) 전송 대상 파일이 알려진 형식의 파일인지 확인한다(S620). 확인 결과 전송 대상 파일이 알려진 형식의 파일인 것으로 확인되면 제1제어부(140)는 전송 대상 파일이 압축 전송 가능한 것인지 여부를 판단한다(S630). 전송 대상 파일의 압축률이 크면 압축된 전송 대상 파일의 크기가 압축 전 전송 대상 파일보다 작으므로 압축 전송이 가능한 것으로 판단하여 전송부(170)가 압축된 전송 대상 파일을 데이터 수신 장치(200)로 전송하도록 한다(S640). 반면, 전송 대상 파일의 압축률이 작으면 제1제어부(140)는 원본 파일, 즉 압축되지 않은 전송 대상 파일을 데이터 수신 장치(200)로 전송할 것으로 설정한다(S650).
또한 사용자로부터 압축 전송의 요청이 입력되고(S610), 전송 대상 파일이 알려진 형식의 파일이 아닌 것으로 확인되면(S620), 제1제어부(140)는 전송 대상 파일의 임의의 위치들에 있는 n개의 데이터를 압축하여 전체 압축률을 추정한다(S660). 이후에는 압축 전송이 가능한지 여부를 판단하는 과정(S630) 및 전송 대상 파일의 전송 과정(S640 또는 S650)이 수행된다.
사용자로부터 압축 전송이 요청되지 않았으면(S610), 이상에서 설명한 것과 같은 데이터 압축 과정 없이 원본의 전송 대상 파일이 데이터 수신 장치(200)로 전송된다(S650).
도 7은 본 발명에 따른 데이터 전송 방법에 대한 바람직한 실시예의 수행과정을 도시한 흐름도이다.
도 7을 참조하면, 사용자로부터 압축 전송이 요청된 것으로 확인되면(S700) 제1 데이터 관리부(150)는 제1 데이터 저장부(120)로부터 전송 대상 파일 중 파일 블록의 페이로드 크기에 해당하는 서브 데이터를 읽어와 페이로드에 기록한다(S710). 다음으로 압축부(160)는 분할된 서브 데이터가 기록된 파일 블록을 압축한다(S720).
제1제어부(140)는 압축된 서브 데이터(또는 압축된 파일 블록)의 크기가 원본 서브 데이터(또는 원본 파일 블록)보다 작은지 비교하여(S730) 압축된 서브 데이터의 크기가 원본 서브 데이터보다 작으면 압축률이 좋은 것을 의미하므로 압축된 파일 블록을 데이터 수신 장치(200)로 전송할 것을 결정하고, 파일 블록의 압축 플래그를 'true'로 설정한다(S740). 그러나 압축된 서브 데이터의 크기가 원본 서브 데이터보다 크면 제1제어부(140)는 압축되지 않은 파일 블록을 전송하기로 결정하고, 파일 블록의 압축 플래그를 'flase'로 설정한다(S780).
다음으로 압축부(160)는 헤더와 압축된 서브 데이터를 가지는 파일 블록을 앞에서 설명한 제1활성블록풀(134)에 해당하는 전송 큐에 저장한다(S750). 전송부(170)는 전송 큐에 저장된 압축된 파일 블록의 서브 데이터와 헤더 정보를 병렬 스트림을 이용하여 데이터 수신 장치(200)로 전송한다(S760).
전송 대상 파일 중 전송할 서브 데이터가 잔존하면(S770) 이상에서 설명한 서브 데이터를 파일 블록의 페이로드에 기록하고 압축 및 전송하는 과정(S710 내지 S780)이 반복적으로 수행된다. 이러한 반복적인 수행에 의해 본 발명에 따른 데이터 전송 장치(100)는 전송 대상 파일을 복수 개의 서브 데이터들로 분할 및 압축하고, 압축된 서브 데이터를 병렬 스트림을 이용하여 데이터 수신 장치(200)로 전송한다.
한편, 사용자로부터 데이터의 압축 전송에 대한 요청이 없는 경우에는(S700) 원본 파일 블록이 전송 큐에 저장되고(S790), 전송부(170)는 전송 큐에 저장된 원본 파일 블록의 서브 데이터와 헤더 정보를 병렬 스트림을 이용하여 데이터 수신 장치(200)로 전송한다(S795).
본 발명에 따른 데이터 전송 장치(100)에서는 도 7에 도시된 각 단계 중에서 적어도 두 개의 단계가 병행하여 수행될 수 있다. 예를 들면, 전송부(170)에 의해 이전에 압축된 서브 데이터가 데이터 수신 장치(200)로 전송되는 동안 압축부(160)는 다음 서브 데이터를 압축할 수 있다.
도 8은 전송부(170)에 의한 병렬 스트리밍 방식의 전송에 관하여 상세히 설명하기 위한 흐름도이다.
도 8을 참조하면, 전송부(170)는 전송 큐에 전송해야 할 파일 블록이 있는지 확인한다(S810). 여기서 전송 큐는 앞에서 설명한 제1활성블록풀(134)에 해당한다. 전송 큐에 파일 블록이 있으면, 전송부(170)는 복수 개의 소켓 스레드들을 이용하여 파일 블록을 병렬 스트리밍 방식으로 전송한다(S820).
다음으로 전송부(170)는 전송 대상 파일 전체의 전송이 완료되었는지 확인한다(S830) 예를 들면, 복수의 소켓 스레드들이 전송 대상 파일의 전송 완료 여부를 확인할 수 있다. 전송이 완료되지 않은 것으로 확인되면 전송부(170)는 전송 대상 파일의 전송이 완료될 때까지 앞에서 설명한 과정을 반복 수행한다.
도 9는 본 발명에 따른 데이터 수신 방법에 대한 바람직한 실시예의 수행과정을 도시한 흐름도이다.
도 9를 참조하면, 제2제어부(230)는 수신 큐에 수신된 서브 데이터와 헤더가 기록된 파일 블록이 저장되어 있는지 확인하여(S910) 파일 블록이 저장되어 있으면 파일 블록의 헤더 정보를 분석한다(S920).
다음으로 제2제어부(230)는 헤더의 분석 결과로부터 서브 데이터의 압축 여부를 판단한다(S930). 예를 들면, 압축 플래그가 'true'로 설정되어 있으면, 압축된 서브 데이터가 수신된 것으로 판단한다.
압축 여부의 판단 결과, 압축된 서브 데이터인 경우에는 압축 해제부(240)가 서브 데이터의 압축을 해제한다(S940). 즉, 데이터 전송 장치(100)로부터 서브 데이터들이 병렬 스트림을 이용하여 수신되는 동안 압축 해제부(240)에 의한 기수신된 서브 데이터의 압축 해제 과정이 병행하여 수행된다.
제2 데이터 관리부(250)는 압축 해제된 서브 데이터를 저장 매체, 즉 제2 데이터 저장부(260)에 저장한다(S950). 이때 저장 매체 중 헤더의 데이터 주소에 해당하는 위치에 서브 데이터를 저장한다.
한편, 수신된 서브 데이터가 제2제어부(230)에 의해 압축된 서브 데이터가 아닌 것으로 판단된 경우에(S930) 제2제어부(230)는 수신된 서브 데이터를 제2활성블록풀(214)에 저장하고, 제2 데이터 관리부(250)는 제2활성블록풀(214)으로부터 출력된 파일 블록의 서브 데이터를 제2 데이터 저장부(260)에 저장한다(S960).
전송 대상 파일, 즉, 수신된 모든 서브 데이터들이 제2 데이터 저장부(260)에 저장되면(S970) 본 발명에 따른 데이터 수신 장치(200)는 데이터 전송 장치(100)로 수신 완료 메시지를 전송하며(S980), 저장이 완료되지 않은 것으로 판단되면 전송 대상 파일의 저장이 완료될 때까지 앞에서 설명한 과정들이 반복하여 수행된다.
한편, 수신 큐에 서브 데이터가 저장되어 있지 않은 것으로 확인되고 제2 데이터 저장부(260)에 모든 서브 데이터들의 저장이 완료되면(S990), 본 발명에 따른 데이터 수신 장치(200)는 전송 대상 파일의 수신이 완료된 것으로 판단하여 수신 완료 메시지를 전송한다.
도 10은 수신부에 의한 병렬 스트리밍 방식의 수신에 관하여 상세히 설명하기 위한 흐름도이다.
수신부(20)는 병렬 스트림을 이용하여 데이터 전송 장치(100)로부터 전송되는 서브 데이터와 헤더를 수신하고(S1010), 수신된 서브 데이터와 헤더를 파일 블록에 기록한 후 수신 큐에 저장한다(S1020). 여기서 수신 큐는 앞에서 설명한 제2 블록 저장부(210)의 제2활성블록풀(214)일 수 있다.
다음으로 본 발명에 따른 데이터 수신 장치(200)는 전송 대상 파일의 수신이 완료되었는지를 확인하고(S1030), 완료될 때까지 이상의 과정을 반복 수행한다. 또한 그와 동시에 본 발명에 따른 데이터 수신 장치(200)에서 압축 여부의 판단 및 압축 해제 과정이 병행하여 수행될 수 있다.
본 발명에 따른 데이터 전송 장치(100) 및 데이터 수신 장치(200)에서 제1 데이터 관리부(150), 제2 데이터 관리부(250), 압축부(160), 압축 해제부(240), 전송부(170) 및 수신부(220)는 스레드로 동작하여 동시에 동작한다. 따라서 본 발명에 따른 데이터 전송 장치(100)는 파일을 읽음과 동시에 압축 및 전송을 할 수 있으며, 데이터 수신 장치(200)는 파일을 수신하면서 압축을 해제하고 저장 매체에 저장할 수 있다. 이와 같이 함으로써 실시간 분할 압축 및 해제가 가능하다.
또한, 본 발명에 따른 데이터 전송 장치(100)는 실시간 가변분할 압축이 가능하며, 결과적으로 전송 효율을 높일 수 있다. 실시간 가변분할 압축은 실시간으로 데이터의 압축률을 측정하여 압축률이 좋지 않은 데이터는 원본 데이터를 전송하고, 압축률이 우수한 데이터는 압축하여 전송하는 것을 의미한다. 이때 압축률을 체크하는 단위는 파일 블록이므로, 하나의 파일에 대해 압축 전송이 요청된 경우에도 파일 블록 단위를 기준으로 임의 블록은 압축되어 전송되고, 임의 블록은 압축이 되지 않은 원본 상태로 전송될 수 있다. 원본 상태로 전송되는 경우에는 대부분 압축률이 좋지 않은 경우에 해당하므로 데이터 전송 측면에서 경제적이며, 사용자가 압축 전송을 요청한 경우일지라도 해당 파일 블록은 원본 데이터의 형태로 전송된다.
특히 본 발명에 따른 데이터 전송 장치(100)가 원본 데이터를 보유한 서버로 구현되고 데이터 수신 장치(200)는 백업 서버로 구현되는 경우, 대용량 시스템 로그와 같은 백업 데이터를 보다 빠르게 송수신할 수 있다.
본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
이상에서 본 발명의 바람직한 실시예에 대해 도시하고 설명하였으나, 본 발명은 상술한 특정의 바람직한 실시예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자라면 누구든지 다양한 변형 실시가 가능한 것은 물론이고, 그와 같은 변경은 청구범위 기재의 범위 내에 있게 된다.
100: 데이터 전송 장치
110: 사용자 인터페이스부
120: 제1 데이터 저장부
130: 제1 블록 저장부
140: 제1제어부
150: 제1 데이터 관리부
160: 압축부
170: 전송부
200: 데이터 수신 장치
210: 제2 블록 저장부
220: 수신부
230: 제2제어부
240: 압축 해제부
250: 제2 데이터 관리부
260: 제2 데이터 저장부

Claims (28)

  1. 전송 대상 파일을 복수의 서브 데이터로 분할하는 데이터 관리부;
    상기 분할된 서브 데이터들을 압축하는 압축부; 및
    상기 서브 데이터들이 압축되는 동안 기압축된 서브 데이터를 병렬 스트림을 이용하여 수신측 장치로 전송하는 전송부;를 포함하는 것을 특징으로 하는 데이터 전송 장치.
  2. 제 1항에 있어서,
    상기 전송 대상 파일의 분할, 상기 분할된 서브 데이터들의 압축 및 상기 압축된 서브 데이터들의 전송 중 적어도 두 가지는 병행하여 수행되는 것을 특징으로 하는 데이터 전송 장치.
  3. 제 1항 또는 제 2항에 있어서,
    상기 압축된 서브 데이터의 압축률을 기초로 상기 압축된 서브 데이터의 전송 방식을 실시간으로 결정하는 제어부를 더 포함하는 것을 특징으로 하는 데이터 전송 장치.
  4. 제 3항에 있어서,
    상기 제어부는 상기 압축된 서브 데이터의 크기가 압축 이전의 서브 데이터의 크기보다 작으면 상기 전송부가 상기 압축된 서브 데이터를 전송하고, 상기 압축된 서브 데이터의 크기가 압축 이전의 서브 데이터의 크기보다 크면 상기 전송부가 상기 압축 이전의 서브 데이터를 전송하도록 하는 특징으로 하는 데이터 전송 장치.
  5. 제 4항에 있어서,
    상기 전송부는 상기 압축 이전의 서브 데이터를 상기 병렬 스트림을 이용하여 상기 수신측 장치로 전송하는 특징으로 하는 데이터 전송 장치.
  6. 제 1항 또는 제 2항에 있어서,
    상기 전송 대상 파일의 압축된 크기가 압축 이전의 크기보다 작으면 상기 압축부가 상기 분할된 서브 데이터들을 압축하도록 하고, 상기 전송 대상 파일의 압축된 크기가 압축 이전의 크기보다 크면 상기 전송부가 상기 전송 대상 파일을 전송하도록 하는 제어부를 더 포함하는 것을 특징으로 하는 데이터 전송 장치.
  7. 제 1항 또는 제 2항에 있어서,
    상기 데이터 관리부는 사전에 설정된 크기의 파일 블록에 해당하는 서브 데이터를 상기 전송 대상 파일로부터 읽어와 상기 파일 블록에 기록하고, 상기 서브 데이터가 기록된 파일 블록을 사전에 할당된 제1저장공간에 저장하며,
    상기 압축부는 상기 제1저장공간에 저장된 파일 블록을 압축하고, 압축된 파일 블록을 사전에 할당된 제2저장공간에 저장하며,
    상기 전송부는 상기 제2저장공간에 저장된 상기 압축된 파일 블록을 상기 수신측 장치로 전송하는 것을 특징으로 하는 데이터 전송 장치.
  8. 제 1항 또는 제 2항에 있어서,
    상기 수신측 장치는 상기 전송부로부터 상기 압축된 서브 데이터들이 순차적으로 전송되는 동안 기수신된 서브 데이터의 압축을 해제하는 것을 특징으로 하는 데이터 전송 장치.
  9. 송신측 장치로부터 병렬 스트림을 이용하여 전송되는 서브 데이터들을 수신하는 수신부; 및
    상기 서브 데이터들이 수신되는 동안 기수신된 서브 데이터의 압축을 해제하는 압축 해제부;를 포함하는 것을 특징으로 하는 데이터 수신 장치.
  10. 제 9항에 있어서,
    상기 압축 해제부는 상기 송신측 장치로부터 상기 서브 데이터들이 전송되는 동안 상기 기수신된 서브 데이터의 압축을 해제하는 것을 특징으로 하는 데이터 수신 장치.
  11. 제 9항 또는 제 10항에 있어서,
    상기 압축이 해제된 서브 데이터들을 데이터 저장부에 저장하는 데이터 관리부를 더 포함하는 것을 특징으로 하는 데이터 수신 장치.
  12. 제 9항 또는 제 10항에 있어서,
    상기 수신된 서브 데이터의 압축 여부를 판단하여 압축되지 않은 서브 데이터는 데이터 저장부에 저장하고, 압축된 서브 데이터는 상기 압축 해제부로 제공하도록 상기 수신부를 제어하는 제어부를 더 포함하는 것을 특징으로 하는 데이터 수신 장치.
  13. 제 9항 또는 제 10항에 있어서,
    상기 수신부는 상기 수신된 서브 데이터를 사전에 설정된 크기의 파일 블록에 기록하고, 상기 서브 데이터가 기록된 파일 블록을 사전에 할당된 제1저장공간에 저장하며,
    상기 압축 해제부는 상기 제1저장공간에 저장된 상기 파일 블록의 압축을 해제하고, 상기 압축이 해제된 파일 블록을 사전에 할당된 제2저장공간에 저장하는 것을 특징으로 하는 데이터 수신 장치.
  14. 전송 대상 파일을 복수의 서브 데이터로 분할한 후 병렬 스트림을 이용하여 수신측 장치로 전송하는 데이터 전송 장치에서 수행되는 데이터 전송 방법에 있어서,
    (a) 전송 대상 파일을 복수의 서브 데이터로 분할하는 단계;
    (b) 상기 분할된 서브 데이터들을 압축하는 단계; 및
    (c) 상기 (b) 단계가 수행되는 동안 기압축된 서브 데이터를 병렬 스트림을 이용하여 수신측 장치로 전송하는 단계;를 포함하는 것을 특징으로 하는 데이터 전송 방법.
  15. 제 14항에 있어서,
    상기 (a) 단계 내지 상기 (c) 단계 중에서 적어도 두 개의 단계가 병행하여 수행되는 것을 특징으로 하는 데이터 전송 방법.
  16. 제 14항 또는 제 15항에 있어서,
    상기 (b) 단계 및 상기 (c) 단계의 사이에,
    (d) 상기 압축된 서브 데이터의 압축률에 따라 상기 압축된 서브 데이터의 전송 방식을 실시간으로 결정하는 단계를 더 포함하는 것을 특징으로 하는 데이터 전송 방법.
  17. 제 16항에 있어서,
    상기 (d) 단계에서, 상기 압축된 서브 데이터의 크기가 압축 이전의 서브 데이터의 크기보다 작으면 상기 (c) 단계에서 상기 압축된 서브 데이터를 전송하도록 하고, 상기 압축된 서브 데이터의 크기가 상기 압축 이전의 서브 데이터의 크기보다 크면 상기 (c) 단계에서 상기 압축 이전의 서브 데이터를 전송하도록 하는 것을 특징으로 하는 데이터 전송 방법.
  18. 제 17항에 있어서,
    (e) 상기 압축 이전의 서브 데이터를 상기 병렬 스트림을 이용하여 전송하는 단계를 더 포함하는 것을 특징으로 하는 데이터 전송 방법.
  19. 제 14항 또는 제 15항에 있어서,
    상기 (b) 단계 이전에,
    (f) 상기 전송 대상 파일의 압축된 크기가 압축 이전의 크기보다 작으면 상기 (b) 단계에서 상기 분할된 서브 데이터들을 압축하도록 하고, 상기 전송 대상 파일의 압축된 크기가 압축 이전의 크기보다 크면 상기 (c) 단계에서 상기 전송 대상 파일을 전송하도록 하는 단계를 더 포함하는 것을 특징으로 하는 데이터 전송 방법.
  20. 제 14항 또는 제 15항에 있어서,
    상기 (a) 단계에서, 사전에 설정된 크기의 파일 블록에 해당하는 서브 데이터를 상기 전송 대상 파일로부터 읽어와 상기 파일 블록에 기록하고, 상기 서브 데이터가 기록된 파일 블록을 사전에 할당된 제1저장공간에 저장하며,
    상기 (b) 단계에서, 상기 제1저장공간에 저장된 상기 파일 블록을 압축하고, 상기 압축된 파일 블록을 사전에 할당된 제2저장공간에 저장하며,
    상기 (c) 단계에서, 상기 제2저장공간에 저장된 상기 압축된 파일 블록을 전송하는 것을 특징으로 하는 데이터 전송 방법.
  21. 제 14항 또는 제 15항에 있어서,
    상기 수신측 장치는 상기 압축된 서브 데이터들이 순차적으로 상기 수신측 장치로 전송되는 동안 기수신된 서브 데이터의 압축을 해제하는 것을 특징으로 하는 데이터 전송 방법.
  22. 병렬 스트림을 이용하여 송신측 장치로부터 서브 데이터들을 수신하는 데이터 수신 장치에서 수행되는 데이터 수신 방법에 있어서,
    (a) 송신측 장치로부터 병렬 스트림을 이용하여 전송되는 서브 데이터들을 수신하는 단계; 및
    (b) 상기 서브 데이터들이 수신되는 동안 기수신된 서브 데이터의 압축을 해제하는 단계;를 포함하는 것을 특징으로 하는 데이터 수신 방법.
  23. 제 22항에 있어서,
    (c) 상기 압축이 해제된 서브 데이터들을 저장하는 단계를 더 포함하는 것을 특징으로 하는 데이터 수신 방법.
  24. 제 22항 또는 제 23항에 있어서,
    상기 (b) 단계 이전에,
    (d) 상기 수신된 서브 데이터의 압축 여부를 판단하는 단계; 및
    (e) 상기 수신된 서브 데이터가 압축되지 않은 것으로 판단되면 상기 수신된 서브 데이터를 저장하는 단계;를 더 포함하는 것을 특징으로 하는 데이터 수신 방법.
  25. 제 22항 또는 제 23항에 있어서,
    상기 (a) 단계는,
    (a1) 상기 수신된 서브 데이터를 사전에 설정된 크기의 파일 블록에 기록하는 단계; 및
    (a2) 상기 서브 데이터가 기록된 파일 블록을 사전에 할당된 제1저장공간에 저장하는 단계;를 포함하며,
    상기 (b) 단계에서, 상기 제1저장공간에 저장된 상기 파일 블록의 압축을 해제하는 것을 특징으로 하는 데이터 수신 방법.
  26. 전송 대상 파일을 복수 개의 서브 데이터들로 분할하고, 상기 분할된 서브 데이터들을 병렬 스트림을 이용하여 전송하는 데이터 전송 장치; 및
    상기 병렬 스트림을 이용하여 전송되는 상기 서브 데이터들을 순차적으로 수신하여 압축을 해제하는 데이터 수신 장치;를 포함하며,
    상기 데이터 전송 장치에서 상기 분할된 서브 데이터를 전송하는 동작과 상기 데이터 수신 장치에서 상기 수신된 서브 데이터들의 압축을 해제하는 동작이 병행하여 수행되는 것을 특징으로 하는 데이터 송수신 시스템.
  27. 제 14항 또는 제 15항에 기재된 데이터 전송 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
  28. 제 22항 또는 제 23항에 기재된 데이터 수신 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
KR1020100106094A 2010-10-28 2010-10-28 데이터 전송 장치 및 방법, 데이터 수신 장치 및 방법, 그리고 데이터 송수신 시스템 KR101181478B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020100106094A KR101181478B1 (ko) 2010-10-28 2010-10-28 데이터 전송 장치 및 방법, 데이터 수신 장치 및 방법, 그리고 데이터 송수신 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100106094A KR101181478B1 (ko) 2010-10-28 2010-10-28 데이터 전송 장치 및 방법, 데이터 수신 장치 및 방법, 그리고 데이터 송수신 시스템

Publications (2)

Publication Number Publication Date
KR20120044670A KR20120044670A (ko) 2012-05-08
KR101181478B1 true KR101181478B1 (ko) 2012-09-10

Family

ID=46264396

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100106094A KR101181478B1 (ko) 2010-10-28 2010-10-28 데이터 전송 장치 및 방법, 데이터 수신 장치 및 방법, 그리고 데이터 송수신 시스템

Country Status (1)

Country Link
KR (1) KR101181478B1 (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090279613A1 (en) * 2008-05-09 2009-11-12 Kabushiki Kaisha Toshiba Image information transmission apparatus

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090279613A1 (en) * 2008-05-09 2009-11-12 Kabushiki Kaisha Toshiba Image information transmission apparatus

Also Published As

Publication number Publication date
KR20120044670A (ko) 2012-05-08

Similar Documents

Publication Publication Date Title
US8380864B2 (en) Media stream slicing and processing load allocation for multi-user media systems
CN101582926B (zh) 实现远程媒体播放重定向的方法和系统
WO2019154221A1 (zh) 发送流数据的方法及数据发送设备
US20140082052A1 (en) Data redirection system and method for providing data redirection service
KR20070049961A (ko) 네트워크를 통해 전송된 데이터의 압축 여부 판정
CN102694831B (zh) 移动终端流媒体数据补偿方法与系统、内容分发网络
CN106797487B (zh) 云流服务器
CN111954028B (zh) 音频数据的投屏方法、装置、设备及存储介质
KR20130046540A (ko) 데이터 전송 장치 및 방법
US20140013007A1 (en) Access log management method
KR20110062508A (ko) 홈 네트워크에서 디지털 방송의 채널 맵 공유 방법 및 이를 위한 시스템
KR20090083067A (ko) 데이터 전송 방법 및 장치와 작업 수행 방법 및 장치
CN113422669A (zh) 数据传输方法、装置和系统、电子设备以及计算机可读存储介质
KR101181478B1 (ko) 데이터 전송 장치 및 방법, 데이터 수신 장치 및 방법, 그리고 데이터 송수신 시스템
TW201436533A (zh) 資料流傳輸系統及方法
KR102024642B1 (ko) 라이브 스트리밍 서버 장치 및 이의 운용 방법
CN114666776A (zh) 数据发送方法、装置、设备和可读存储介质
JP4815154B2 (ja) 補助プログラムを管理する方法及び対応する受信器とシステム
CN104219537A (zh) 视频数据处理的方法、装置及系统
CN110636368B (zh) 媒体播放方法、系统、装置及存储介质
US20050068976A1 (en) Data transmitting apparatus, data transmitting/receiving system, and data transmitting/receiving method
CN112039961A (zh) 流媒体系统、数据流收集方法以及存储介质
KR20090099734A (ko) 스트림 기반의 인터페이스 시스템 및 그 제어 방법
CN104661049A (zh) 传输流的传输方法和系统、流媒体服务器和终端
CN116962512B (zh) 报文处理方法、设备、存储介质和装置

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20150629

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20160701

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20170629

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20180625

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20190701

Year of fee payment: 8