삼성SDS에서 내놓은 데이터 전송 솔루션, Rapidant

Rapidant란 병렬 TCP기반으로, 소프트웨어를 통한 초고속 데이터 전송 플랫폼이라고 한다.

즉, 하드웨어적인 변경 없이 기존 환경에서 가능한 최대의 대역폭을 사용하여 대용량 데이터를 신속하게 전달할 수 있는 기술이라고 한다.

특징

  • 병렬 TCP 기반의 빠른 데이터 전송
  • 실시간 데이터 압축을 통한 효율적인 데이터 전송
  • 서버-클라이언트 구조 (1개의 서버가 여러개의 클라이언트 접속을 지원)
  • 독립적 프로그램 개발 가능 및 라이브러리 지원
  • 여러 플랫폼에서 동작이 가능하도록 java로 개발

아래의 그림은 Rapidant 사이트에 있는 벤치마크 그림이다.

International_Benchmark_Chart

대략적인 그림만 봐도 기존 전송 속도에 비해 엄청난 시간이 단축된다는 뜻인데… 과연 진짜 가능하려나…

내부적인 구성을 살펴보도록 하자.

위의 그림처럼 크게 sender와 receiver로 이루어져 있고, 각 내부에는 3개의 컴포넌트가 위치한다.

보내는 쪽(sender)의 구성은 Disk Reader를 통해 파일을 읽고, Compressor를 통해 읽은 파일을 압축하고, Socket Writer를 통해 receiver측으로 전송하는 방식으로 구성되어 있다.
만일 압축이 필요한 상황이 아니라면 바로 Socket Sender를 통해 데이터를 보낼 수도 있도록 되어 있다. 압축 필요 여부는 파일의 형식에 따라 지정된다고 한다.

하위 클래스를 통해 생성한 데이터를 Socket을 통해 클라이언트 측으로 전송하는데는 병렬 TCP(Parallel TCP)방식이 사용된다고 한다. 이는, 데이터 전송시에 기존처럼 하나의 TCP 연결을 통해 데이터를 보내는게 아니라, 동시에 복수개의 TCP 연결을 생성하고 각 연결된 소켓에서 동시에 데이터를 전송하는 방식이다.

받는 쪽(reciever)의 구성은 Socket Reader를 통해 sender에서 보낸 데이터를 수신하고, 데이터가 압축되어 있다면 Decompressor를 통해 받은 데이터를 압축 해제하고, Disk Writer를 통해 파일을 생성하는 방식으로 구성되어 있다.

프로토콜

데이터 전송 절차

File:Basic_protocol.jpg

최초, Host A가 데이터 전송을 위한 Control Message를 Host B로 보낸다. 이 Control Message A에는 아래의 Config 정보가 기록된다.
그리고 나면, Host B는 Host A가 전송한 요청의 응답인 Control Message B를 Host A로 전송한다. 이 Control Message B는 아래의 CtrlType 중의 하나의 값이다. 예를들어, SERVER_CONFIG_SUCCESS 같은 값이 전송된다는 뜻이다.
Control Message B를 Host A가 수신하면 Host A는 이제 본격적인 데이터 전송을 위한 데이터 채널(여기에서는 병렬 TCP)을 생성하기 위한 Tag Message를 Host B로 전송한다. 이 때, FileBlock을 이용하여 데이터를 보낼 수 있다.
모든 전송이 완료되면, Host B는 데이터 전송 완료를 뜻하는 Control Message C를 Host A로 전송하게 된다.

Control Information

Config

  • TAG
  • numberOfStream
  • fileName
  • fileSize
  • socketBufferSize
  • diskBufferSize
  • hostAddress
  • hostPort
  • totalBlockCount
  • mode
  • compressMode
  • destFileName
  • offset
  • checkSumMode
  • checkSum
  • overwriteMode

Control Type

File:CtrlType_Information.jpg

Packet Structure

Tag Message

File:TagMessage.jpg

  • Tag is used to distinguish the message type(Control Message or File Block).

Control Message

File:ControlMessage.jpg

  • Control Message is made up of CtrlTypeMessage and delimiters.
  • Config information is delivered using the Message field in Control Message.

File Block

File:FileBlock.jpg

  • File Block consists of a header and a payload. A payload contains data and a header includes information of the payload.

Active Mode Transmission Procedure

File:Active.jpg

  • In Active Mode, the client sends data to the server. Retransmission of a previously transfered file(the failed transmission) occurs when the client requests transmission of the same file.

Passive Mode Transmission Procedure

File:Passive.jpg

  • In Passive Mode, the client requests data from the server. That means a server sends data to a client. Retransmission occurs under the same circumstances as the Active Mode.


참고

http://sourceforge.net/apps/mediawiki/rapidant/index.php?title=Rapidant

http://ninaimvers.blog.me/130097385866

zemna

Programmer/Web/Mobile/Desktop

You may also like...

Leave a Reply