KR101920279B1 - Electronic apparatus and method file transmitting thereof - Google Patents

Electronic apparatus and method file transmitting thereof Download PDF

Info

Publication number
KR101920279B1
KR101920279B1 KR1020170167930A KR20170167930A KR101920279B1 KR 101920279 B1 KR101920279 B1 KR 101920279B1 KR 1020170167930 A KR1020170167930 A KR 1020170167930A KR 20170167930 A KR20170167930 A KR 20170167930A KR 101920279 B1 KR101920279 B1 KR 101920279B1
Authority
KR
South Korea
Prior art keywords
sessions
data
file
receiving
receiving apparatus
Prior art date
Application number
KR1020170167930A
Other languages
Korean (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 KR1020170167930A priority Critical patent/KR101920279B1/en
Application granted granted Critical
Publication of KR101920279B1 publication Critical patent/KR101920279B1/en

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/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/166IP fragmentation; TCP segmentation
    • 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/36Flow control; Congestion control by determining packet size, e.g. maximum transfer unit [MTU]
    • H04L47/365Dynamic adaptation of the packet size
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer And Data Communications (AREA)

Abstract

An electronic apparatus is disclosed. The electronic apparatus includes a communication unit connected to a common internet network, a memory for storing a plurality of files, a user interface unit for selecting a file to be transmitted among a plurality of files and a receiving device, and a processor for establishing a plurality of sessions with the selected receiving device and controlling the communication unit so that the selected file is transmitted to the selected receiving device by using the plurality of sessions. Accordingly, the present invention can transmit data at a stable speed in the common internet network.

Description

전자 장치 및 파일 전송 방법{ELECTRONIC APPARATUS AND METHOD FILE TRANSMITTING THEREOF}ELECTRONIC APPARATUS AND METHOD FILE TRANSMITTING THEREOF BACKGROUND OF THE INVENTION [0001]

본 개시는 전자 장치 및 데이터 전송 방법에 대한 것으로, 보다 구체적으로는 복수의 세션을 이용하여 데이터를 병렬 전송함으로써 공용 인터넷 망에서도 안정적인 속도로 데이터 전송이 가능한 전자 장치 및 데이터 전송 방법에 관한 것이다. BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to an electronic device and a data transmission method, and more particularly, to an electronic device and a data transmission method capable of transmitting data at a stable rate even in a public Internet network by transmitting data in parallel using a plurality of sessions.

인터넷 망을 이용하여 다양한 사진, 동영상 등 콘텐츠가 송수신 되는데, 대량의 파일을 네트워크를 통해 주고받을 때는 주로 FTP(File Transfer Protocol)이 많이 사용되고 있다. Contents such as various pictures and videos are transmitted and received using the Internet network. FTP (File Transfer Protocol) is mainly used when a large amount of files are exchanged through a network.

FTP는 파일 송수신만을 고안된 서비스이기 때문에 동작 방식이 단순하고, WWW 방식보다 파일을 빠른 속도로 한꺼번에 주고 받을 수 있는 장점이 있다. Since FTP is a service designed solely for sending and receiving files, it has a simple operation and has the advantage of being able to send and receive files at a faster speed than the WWW method.

다만, FTP 서비스는 안정적인 데이터 송수신을 위하여 혼잡 제어 기술이 적용되는데, 전용망을 이용하여 데이터를 송수신하는 경우에는 혼잡 제어의 영향을 거의 받지 않고 데이터 송수신이 가능하다. However, the congestion control technology is applied to the FTP service for stable data transmission / reception. When data is transmitted / received using a dedicated network, data transmission / reception is possible without being affected by congestion control.

그러나 일반 공용 인터넷 망을 이용하는 경우에는 혼잡 제어의 영향을 받아 할당된 대역폭을 충분히 활용하지 못하는 단점이 있었다. 특히나, 국가 간의 데이터를 송수신하는 경우에는 혼잡 제어에 의해 전송 속도가 상당히 느린 문제가 있었다. However, in the case of using a general public Internet network, there is a drawback in that it can not fully utilize the allocated bandwidth due to congestion control. Particularly, when data is transmitted / received between countries, there is a problem that the transmission speed is considerably slow due to congestion control.

이러한 점에서, 대용량의 영상 데이터를 송수신하여야 하는 방송국 등에서는 전용망을 계약하여 이용하였다. 그러나 전용망을 이용하기 위해서는 우선적으로 망 설비가 요구되고, 망 설비 유지에 많은 비용이 필요하였다. In this regard, a broadcasting network that has to transmit and receive a large amount of video data has contracted a private network. However, in order to use the dedicated network, the network equipment is required firstly, and the maintenance of the network equipment is expensive.

따라서, 일반 공용 인터넷 망을 이용하는 경우에도 고속의 데이터 전송이 가능한 방법이 요구되었다. Therefore, there is a need for a method capable of high-speed data transmission even when using a general public Internet network.

따라서, 본 개시의 목적은 복수의 세션을 이용하여 데이터를 병렬 전송함으로써 공용 인터넷 망에서도 안정적인 속도로 데이터 전송이 가능한 전자 장치 및 데이터 전송 방법을 제공하는 데 있다. Accordingly, an object of the present invention is to provide an electronic device and a data transmission method capable of transmitting data at a stable rate even in a public Internet network by transmitting data in parallel using a plurality of sessions.

이상과 같은 목적을 달성하기 위한 본 개시에 따른 전자 장치는 공용 인터넷 망에 연결되는 통신부, 복수의 파일을 저장하는 메모리, 상기 복수의 파일 중 전송할 파일 및 수신 장치를 선택받는 사용자 인터페이스부, 및 상기 선택된 수신 장치와 복수의 세션을 확립하고, 상기 확립된 복수의 세션을 이용하여 상기 선택된 수신 장치에 상기 선택된 파일이 전송되도록 상기 통신부를 제어하는 프로세서를 포함한다. According to another aspect of the present invention, there is provided an electronic device including a communication unit connected to a public Internet network, a memory for storing a plurality of files, a user interface unit for selecting a file to be transmitted and a receiving device among the plurality of files, And a processor for establishing a plurality of sessions with the selected receiving apparatus and controlling the communication unit to transmit the selected file to the selected receiving apparatus by using the established plurality of sessions.

이 경우, 상기 프로세서는 상기 선택된 수신 장치와 기설정된 초기 값만큼의 세션을 확립하고, 상기 수신 장치에서 제공되는 굿풋(goodput) 결과에 기초하여 상기 선택된 수신 장치와의 세션 개수를 적응적으로 조정되도록 상기 통신부를 제어할 수 있다. In this case, the processor establishes a session of a predetermined initial value with the selected receiving device, and adjusts the number of sessions with the selected receiving device adaptively based on a goodput result provided by the receiving device The communication unit can be controlled.

한편, 상기 프로세서는 상기 선택된 파일에서 기설정된 제1 크기를 갖는 데이터를 순차적으로 추출하고, 상기 순차적으로 추출된 데이터를 복수의 데이터 패킷으로 분할하고, 상기 복수의 데이터 패킷 각각을 상기 복수의 세션으로 전송되도록 상기 통신부를 제어할 수 있다. Meanwhile, the processor sequentially extracts data having a predetermined first size from the selected file, divides the sequentially extracted data into a plurality of data packets, and transmits each of the plurality of data packets to the plurality of sessions So that the communication unit can be controlled.

이 경우, 상기 프로세서는 상기 순차적으로 추출된 데이터를 파운틴 코드(Fountain Code)로 부호화하여 상기 세션의 개수보다 많은 복수의 데이터 패킷으로 분할하고, 상기 복수의 데이터 패킷 각각을 상기 복수의 세션으로 전송되도록 상기 통신부를 제어하고, 상기 수신 장치로부터 기설정된 개수 이상의 데이터 패킷의 수신을 완료하였다는 알림 정보가 수신되면, 현재 추출된 데이터의 전송을 중지하고 다음 데이터를 추출하여 전송할 수 있다. In this case, the processor may encode the sequentially extracted data into a fountain code, divides the data into a plurality of data packets larger than the number of sessions, and transmits each of the plurality of data packets to the plurality of sessions The control unit controls the communication unit to stop transmission of the currently extracted data and extract and transmit the next data when notification information indicating completion of reception of a predetermined number or more of data packets from the receiving apparatus is received.

이 경우, 상기 파운틴 코드는 LT(Luby transform) 코드 또는 랩터(Raptor) 코드일 수 있다. In this case, the fountain code may be a LT (Luby transform) code or a Raptor code.

한편, 상기 프로세서는 기설정된 방식을 이용하여 상기 선택된 파일을 분할하고, 상기 기설정된 방식에 대한 정보를 상기 수신 장치에 제공되도록 상기 통신부를 제어할 수 있다. Meanwhile, the processor may divide the selected file using a preset method, and control the communication unit to provide information on the predetermined method to the receiving apparatus.

한편, 본 개시의 일 실시 예에 따른 파일 전송 방법은 기저장된 복수의 파일 중 전송할 파일 및 공용 인터넷 망을 통하여 연결되는 수신 장치를 선택받는 단계, 상기 선택된 수신 장치와 복수의 세션을 확립하는 단계, 및 상기 확립된 복수의 세션을 이용하여 상기 선택된 수신 장치에 상기 선택된 파일을 전송하는 단계를 포함한다. According to another aspect of the present invention, there is provided a file transfer method comprising: receiving a file to be transferred among a plurality of previously stored files and a receiving device connected through a public Internet network; establishing a plurality of sessions with the selected receiving device; And transmitting the selected file to the selected receiving device using the established plurality of sessions.

이 경우, 상기 확립하는 단계는 상기 선택된 수신 장치와 기설정된 초기 값만큼의 세션을 확립하고, 상기 수신 장치에서 제공되는 굿풋(goodput) 결과에 기초하여 상기 선택된 수신 장치와의 세션 개수를 적응적으로 조정할 수 있다. In this case, the establishing step establishes a session of a predetermined initial value with the selected receiving apparatus, and adaptively sets the number of sessions with the selected receiving apparatus based on a goodput result provided by the receiving apparatus Can be adjusted.

한편, 상기 전송하는 단계는 상기 선택된 파일에서 기설정된 제1 크기를 갖는 데이터를 순차적으로 추출하는 단계, 상기 순차적으로 추출된 데이터를 복수의 데이터 패킷으로 분할하는 단계, 및 상기 복수의 데이터 패킷 각각을 상기 복수의 세션으로 전송하는 단계를 포함할 수 있다. The transmitting step may include sequentially extracting data having a predetermined first size from the selected file, dividing the sequentially extracted data into a plurality of data packets, and transmitting each of the plurality of data packets To the plurality of sessions.

이 경우, 상기 분할하는 단계는 상기 순차적으로 추출된 데이터를 파운틴 코드(Fountain Code)로 부호화하여 상기 세션의 개수보다 많은 복수의 데이터 패킷으로 분할하고, 상기 전송하는 단계는, 상기 수신 장치로부터 기설정된 개수 이상의 데이터 패킷의 수신을 완료하였다는 알림 정보가 수신되기 전까지 상기 분할된 복수의 데이터 패킷을 상기 복수의 세션을 이용하여 전송할 수 있다. In this case, the dividing step may encode the sequentially extracted data into a fountain code and divide the data into a plurality of data packets that are larger than the number of the sessions, and the transmitting step may include: The plurality of divided data packets may be transmitted using the plurality of sessions until notification information indicating completion of reception of the number of data packets or more is received.

상술한 바와 같이 본 개시의 다양한 실시 예에 따르면, 전용 망의 이용 없이도 고속의 데이터 전송이 가능한바, 전용망 사용에 따른 비용 부담을 줄일 수 있게 된다. 특히, 데이터를 복수의 세션을 이용하여 병렬 전송하는바 TCP의 혼잡 제어로 인한 네트워크 대역 폭의 미활용 부분을 최소화할 수 있게 된다. As described above, according to various embodiments of the present disclosure, high-speed data transmission can be performed without using a dedicated network, thereby reducing the cost burden of using a dedicated network. In particular, when data is transmitted in parallel using a plurality of sessions, unused portions of the network bandwidth due to TCP congestion control can be minimized.

도 1은 본 개시의 일 실시 예에 따른 파일 전송 시스템의 구성을 나타낸 도면,
도 2는 본 개시의 일 실시 예에 따른 전자 장치의 구체적인 구성을 도시한 도면,
도 3은 혼잡 제어를 설명하기 위한 도면,
도 4는 복수의 채널을 이용한 파일 전송 동작을 설명하기 위한 도면,
도 5는 제1 실시 예에 따른 데이터 분할 동작을 설명하기 위한 도면,
도 6은 제2 실시 예에 따른 데이터 분할 동작을 설명하기 위한 도면,
도 7은 파운틴 코드를 이용한 부호화 동작을 설명하기 위한 도면,
도 8 내지 도 10은 도 2의 사용자 인터페이스부에서 표시될 수 있는 다양한 사용자 인터페이스 창의 예를 도시한 도면, 그리고,
도 11은 본 개시의 일 실시 예에 따른 파일 전송 방법을 설명하기 위한 도면이다.
1 illustrates a configuration of a file transfer system according to an embodiment of the present disclosure;
2 is a diagram showing a specific configuration of an electronic device according to an embodiment of the present disclosure;
3 is a diagram for explaining congestion control,
4 is a diagram for explaining a file transfer operation using a plurality of channels,
5 is a diagram for explaining a data dividing operation according to the first embodiment,
6 is a diagram for explaining a data dividing operation according to the second embodiment,
7 is a diagram for explaining an encoding operation using a fuzzy code,
8 to 10 are views showing examples of various user interface windows that can be displayed in the user interface unit of FIG. 2,
11 is a diagram for explaining a file transfer method according to an embodiment of the present disclosure.

본 명세서에서 사용되는 용어에 대해 간략히 설명하고, 본 개시에 대해 구체적으로 설명하기로 한다. BRIEF DESCRIPTION OF THE DRAWINGS The terminology used herein will be briefly described, and the present disclosure will be described in detail.

본 개시의 실시 예에서 사용되는 용어는 본 개시에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 개시의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 개시에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 개시의 전반에 걸친 내용을 토대로 정의되어야 한다. The terms used in the embodiments of the present disclosure have selected the currently widely used generic terms possible in light of the functions in this disclosure, but these may vary depending on the intentions or precedents of those skilled in the art, the emergence of new technologies, and the like . Also, in certain cases, there may be a term chosen arbitrarily by the applicant, in which case the meaning shall be stated in detail in the description of the relevant disclosure. Accordingly, the terms used in this disclosure should be defined based on the meaning of the term rather than on the name of the term, and throughout the present disclosure.

본 개시의 실시 예들은 다양한 변환을 가할 수 있고 여러 가지 실시 예를 가질 수 있는바, 특정 실시 예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나 이는 특정한 실시 형태에 대해 범위를 한정하려는 것이 아니며, 개시된 사상 및 기술 범위에 포함되는 모든 변환, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 실시 예들을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.The embodiments of the present disclosure are capable of various transformations and may have various embodiments, and specific embodiments are illustrated in the drawings and described in detail in the detailed description. It is to be understood, however, that it is not intended to limit the scope of the specific embodiments but includes all transformations, equivalents, and alternatives falling within the spirit and scope of the disclosure disclosed. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS In the following description of the embodiments of the present invention,

제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 구성요소들은 용어들에 의해 한정되어서는 안 된다. 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.The terms first, second, etc. may be used to describe various elements, but the elements should not be limited by terms. Terms are used only for the purpose of distinguishing one component from another.

단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다." 또는 "구성되다." 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The singular expressions include plural expressions unless the context clearly dictates otherwise. In the present application, the term " includes " Or " configured. &Quot; , Etc. are intended to designate the presence of stated features, integers, steps, operations, components, parts, or combinations thereof, may be combined with one or more other features, steps, operations, components, It should be understood that they do not preclude the presence or addition of combinations thereof.

본 개시의 실시 예에서 '모듈' 혹은 '부'는 적어도 하나의 기능이나 동작을 수행하며, 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다. 또한, 복수의 '모듈' 혹은 복수의 '부'는 특정한 하드웨어로 구현될 필요가 있는 '모듈' 혹은 '부'를 제외하고는 적어도 하나의 모듈로 일체화되어 적어도 하나의 프로세서로 구현될 수 있다.In the embodiments of the present disclosure, 'module' or 'subtype' performs at least one function or operation, and may be implemented in hardware or software, or a combination of hardware and software. In addition, a plurality of 'modules' or a plurality of 'parts' may be integrated into at least one module except for 'module' or 'module' which needs to be implemented by specific hardware, and may be implemented by at least one processor.

아래에서는 첨부한 도면을 참고하여 본 개시의 실시 예에 대하여 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 개시는 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시 예에 한정되지 않는다. 그리고 도면에서 본 개시를 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Reference will now be made in detail to embodiments of the present disclosure, examples of which are illustrated in the accompanying drawings, wherein like reference numerals refer to the like elements throughout. However, the present disclosure may be embodied in many different forms and is not limited to the embodiments described herein. In order that the present disclosure may be more fully understood, the same reference numbers are used throughout the specification to refer to the same or like parts.

이하에서는 도면을 참조하여 본 개시에 대해 더욱 상세히 설명하기로 한다.Hereinafter, the present disclosure will be described in more detail with reference to the drawings.

도 1은 본 개시의 일 실시 예에 따른 파일 전송 시스템의 구성을 나타낸 도면이다. 1 is a diagram illustrating a configuration of a file transfer system according to an embodiment of the present disclosure.

도 1을 참조하면, 본 개시의 일 실시 예에 따른 전송 시스템(1000)은 인터넷 망(10)으로 연결되는 송신 장치(100) 및 수신 장치(200)로 구성될 수 있다. 여기서 인터넷 망은 다양한 사용자가 함께 사용할 수 있는 공용 인터넷 망일 수 있다. Referring to FIG. 1, a transmission system 1000 according to an embodiment of the present disclosure may be configured with a transmission apparatus 100 and a reception apparatus 200 connected to the Internet network 10. Here, the Internet network may be a public Internet network that various users can use together.

송신 장치(100)는 파일을 저장하며, 저장된 파일을 수신 장치(200)로 전송한다. 구체적으로, 송신 장치(100)는 사용자로부터 전송할 파일 및 해당 파일을 수신할 수신 장치(200)를 선택받고, 선택된 수신 장치(200)와 복수의 세션을 확립할 수 있다. 여기서 세션은 송신 장치(100)와 수신 장치(200) 간의 데이터 통신을 위한 논리적 연결을 의미한다. The transmitting apparatus 100 stores the file and transmits the stored file to the receiving apparatus 200. [ Specifically, the transmitting apparatus 100 can select a file to be transmitted from a user and a receiving apparatus 200 to receive the file, and establish a plurality of sessions with the selected receiving apparatus 200. Here, the session means a logical connection for data communication between the transmitting apparatus 100 and the receiving apparatus 200.

그리고 송신 장치(100)는 확립된 복수의 세션을 이용하여 선택된 파일을 전송한다. 구체적으로, 송신 장치(100)는 기설정된 방식을 이용하여 선택된 파일을 복수개로 분할하고, 분할된 데이터를 복수의 세션 각각을 이용하여 수신 장치(200)로 전송할 수 있다. Then, the transmitting apparatus 100 transmits the selected file by using a plurality of established sessions. Specifically, the transmitting apparatus 100 may divide a selected file into a plurality of files by using a preset method, and may transmit the divided data to the receiving apparatus 200 using each of the plurality of sessions.

이러한 송신 장치(100)는 PC, 노트북, 서버, NAS 등의 다양한 전자 장치로 구현될 수 있으며, 송신 장치(100)의 구체적인 구성 및 구체적인 동작에 대해서는 도 2에서 보다 자세히 설명한다. The transmitting apparatus 100 may be implemented by various electronic apparatuses such as a PC, a notebook computer, a server, and an NAS. The specific configuration and specific operation of the transmitting apparatus 100 will be described in detail with reference to FIG.

수신 장치(200)는 송신 장치(100)의 요청에 따라 송신 장치(100)와 복수의 세션을 확립하고, 확립된 복수의 세션을 통하여 데이터를 병렬적으로 수신한다. 그리고 수신 장치(200)는 송신 장치(100)에서 제공되는 분할 방식에 대한 정보에 기초하여 병렬적으로 수신한 데이터를 병합하여 파일로 복원할 수 있다. The receiving apparatus 200 establishes a plurality of sessions with the transmitting apparatus 100 at the request of the transmitting apparatus 100, and receives data in parallel via the plurality of established sessions. Then, the receiving apparatus 200 may merge data received in parallel based on the information on the dividing method provided by the transmitting apparatus 100, and restore the merged data to a file.

이와 같이 본 실시 예에 따른 파일 전송 시스템은 두 장치 간에 복수의 세션을 확립하고, 확립된 복수의 세션을 이용하여 파일을 송수신하는바, 기존의 하나의 세션을 이용하여 파일을 전송하는 방식에 비하여 더욱 고속의 데이터 전송이 가능하다. As described above, the file transfer system according to the present embodiment establishes a plurality of sessions between two devices and transmits / receives files using a plurality of established sessions. As compared with a method of transferring files using an existing one session, Thereby enabling higher-speed data transmission.

한편, 도 1을 설명함에 있어서, 송신 장치와 수신 장치가 상호 구분되는 것으로 설명하였지만, 송신 장치와 수신 장치는 동일한 구성을 갖는 전자 장치로 구성될 수 있다. 즉, 도 2와 관련하여 설명할 전자 장치가 파일을 제공하는 입장으로 동작하는 경우, 도 1의 송신 장치로 동작할 수 있으며, 전자 장치가 파일을 수신하는 입장으로 동작하는 경우 도 1의 수신 장치로 동작할 수 있다. In the description of FIG. 1, the transmitting apparatus and the receiving apparatus are described as being distinguished from each other. However, the transmitting apparatus and the receiving apparatus may be configured as electronic apparatuses having the same configuration. That is, when the electronic device described in connection with FIG. 2 operates in the position of providing a file, it may operate as the transmitting device of FIG. 1, and when the electronic device operates in the position of receiving the file, .

또한, 구현시에는 송신 장치와 수신 장치가 공용 인터넷 망(10)을 통하여 직접 연결된 형태로 도시하였지만, 라우터 및 다른 장치(예를 들어, 서버) 등을 통하여 간접적으로 연결되는 형태로도 구현될 수 있다. 또한, 도시된 예에서는 각 장치들이 유선으로 연결되는 형태로도 도시하였지만, 구현시에는 형성되는 세션의 일부 구간은 무선으로 연결될 수도 있다. In addition, although the transmitting apparatus and the receiving apparatus are directly connected to each other through the public Internet network 10 at the time of implementation, they may be indirectly connected through a router and another apparatus (e.g., a server) have. In the illustrated example, each device is shown as a wired connection. However, in some implementations, some of the formed sessions may be wirelessly connected.

또한, 도 1을 설명함에 있어서, 송신 장치 측에서 사용자가 전송할 파일을 선택하고, 선택한 파일을 전송하는 것으로 설명하였지만, 구현시에는 수신 장치 측에서 수신할 파일을 선택하고, 수신 장치 측에서 선택한 파일을 전송하는 형태로도 구현할 수 있다. In the description of FIG. 1, it is described that the transmitting apparatus selects a file to be transmitted by the user and transmits the selected file. However, in implementation, the receiving apparatus selects a file to be received, Or the like.

도 2는 본 개시의 일 실시 예에 따른 전자 장치의 구체적인 구성을 도시한 도면이다. 2 is a diagram showing a specific configuration of an electronic device according to an embodiment of the present disclosure.

도 2를 참조하면, 전자 장치(100)는 통신부(110), 사용자 인터페이스부(120), 메모리(130) 및 프로세서(140)로 구성될 수 있다. 여기서 전자 장치(100)는 파일의 송수신할 수 있는 PC, 노트북 PC, 스마트폰, 서버, NAS(Network access Server) 등일 수 있다. Referring to FIG. 2, the electronic device 100 may include a communication unit 110, a user interface unit 120, a memory 130, and a processor 140. Here, the electronic device 100 may be a PC, a notebook PC, a smart phone, a server, a network access server (NAS), etc., which can transmit and receive files.

통신부(110)는 다른 전자 장치와 연결되며, 전자 장치(100)에 기저장된 파일을 다른 전자 장치에 전송할 수 있다. 구체적으로, 통신부(110)는 전자 장치(100)를 외부 장치와 연결하기 위해 형성되고, 근거리 통신망(LAN: Local Area Network) 및 인터넷망을 통해 모바일 장치에 접속되는 형태뿐만 아니라, USB(Universal Serial Bus) 포트를 통하여 접속되는 형태도 가능하다. The communication unit 110 is connected to another electronic device, and can transmit a file stored in the electronic device 100 to another electronic device. The communication unit 110 is formed to connect the electronic device 100 to an external device and is connected to a mobile device via a local area network (LAN) and an Internet network, Bus) port.

또한, 통신부(110)는 유선 방식뿐만 아니라, 공용 인터넷 망에 연결되는 라우터 또는 공유기를 경유하여 다른 전자 장치에 연결될 수 있으며, 라우터 또는 공유기와는 유선 방식뿐만 아니라 와이파이, 블루투스, 셀룰러 통신 등의 무선 방식으로도 연결될 수 있다. 여기서 셀룰러 통신은 예를 들면, LTE(Long-Term Evolution), LTE-A(LTE Advance), CDMA(code division multiple access), WCDMA(wideband CDMA), UMTS(universal mobile telecommunications system), WiBro(Wireless Broadband), 또는 GSM(Global System for Mobile Communications)을 포함할 수 있다.The communication unit 110 may be connected to other electronic devices via a router or a router connected to a public Internet network as well as a wired system and may be connected to a router or a router through a wireless network such as a Wi- Can also be connected. Here, cellular communication includes, for example, long term evolution (LTE), long term evolution (LTE) advancement, code division multiple access (CDMA), wideband CDMA (WCDMA), universal mobile telecommunications system (UMTS) ), Or Global System for Mobile Communications (GSM).

통신부(110)는 사용자가 선택한 수신 장치(200)와 세션을 형성할 수 있다. 이때, 통신부(110)는 고속 전송을 위하여, 수신 장치(200)와 복수의 세션을 형성할 수 있다. 이때 형성되는 세션의 개수는 적응적으로 조정될 수 있다. 이에 대해서는 도 4를 참조하여 후술한다. The communication unit 110 may establish a session with the receiving apparatus 200 selected by the user. At this time, the communication unit 110 may form a plurality of sessions with the receiving apparatus 200 for high-speed transmission. The number of sessions formed at this time can be adaptively adjusted. This will be described later with reference to FIG.

통신부(110)는 수신 장치(200)와 형성된 세션을 이용하여 사용자가 선택한 파일을 전송할 수 있다. 이때, 통신부(110)는 TCP(Transmission Control Protocol)을 이용하여 파일을 전송할 수 있으며, UDP(User Datagram Protocol)을 이용하여 파일을 전송할 수 있다. TCP 방식을 이용하는 경우의 구체적인 동작에 대해서는 도 4를 참조하여 후술하고, UDP 방식을 이용하는 경우의 구체적인 동작에 대해서는 도 7을 참조하여 후술한다. The communication unit 110 can transmit a file selected by the user using the session formed with the receiving apparatus 200. [ At this time, the communication unit 110 can transmit a file using TCP (Transmission Control Protocol) and can transmit a file using UDP (User Datagram Protocol). A specific operation in the case of using the TCP scheme will be described later with reference to FIG. 4, and a specific operation in the case of using the UDP scheme will be described later with reference to FIG.

통신부(110)는 데이터 전송을 제어하기 위한 신호를 수신 장치(200)와 송수신할 수 있다. 이때, 통신부(110)는 송신 장치(100)에서의 기설정된 파일의 분할 방식에 대한 정보, 즉 수신 장치(200)에서 수신된 데이터에 대한 병합 방식에 대한 정보를 수신 장치(200)에 송신할 수 있다. The communication unit 110 can transmit and receive a signal for controlling data transmission to and from the receiving apparatus 200. [ At this time, the communication unit 110 transmits to the receiving apparatus 200 information on the division method of the predetermined file in the transmitting apparatus 100, that is, information on the merging method for the data received from the receiving apparatus 200 .

통신부(110)는 수신 장치(200)에 파일 전송이 완료되면, 확립된 세션을 종료할 수 있다. The communication unit 110 may terminate the established session when the file transfer to the receiving apparatus 200 is completed.

한편, 전자 장치(100)가 도 1의 수신 장치(200)로 동작하는 경우에, 통신부(110)는 송신 장치로 동작하는 다른 전자 장치의 요청에 따라 해당 송신 장치와 세션을 형성할 수 있으며, 확립된 세션에 이용하여 데이터를 수신할 수 있다. 1, the communication unit 110 may establish a session with a corresponding transmission apparatus according to a request from another electronic apparatus operating as a transmission apparatus. In this case, when the electronic apparatus 100 operates as the reception apparatus 200 of FIG. 1, The data can be received using the established session.

사용자 인터페이스부(120)는 전자 장치(100)에서 지원하는 각종 기능을 선택받으며, 전자 장치(100)에서 제공하는 각종 정보를 표시할 수 있다. 구현시에 사용자 인터페이스부(120)는 입력 및 출력 기능이 하나의 장치에서 동작하는 터치 스크린으로 구현될 수 있으며, 마우스 및 키보드와 같은 입력장치와 디스플레이의 결합으로 구현될 수도 있다. The user interface unit 120 can display various types of information provided by the electronic device 100 by selecting various functions supported by the electronic device 100. In implementation, the user interface unit 120 may be implemented as a touch screen in which the input and output functions operate in one device, or a combination of an input device such as a mouse and a keyboard and a display.

이때, 디스플레이는 LCD(Liquid Crystal Display), OLED(Organic Light Emitting Diodes) 디스플레이, PDP(Plasma Display Panel) 등과 같은 다양한 형태의 디스플레이로 구현될 수 있다. 디스플레이 내에는 a-si TFT, LTPS(low temperature poly silicon) TFT, OTFT(organic TFT) 등과 같은 형태로 구현될 수 있는 구동 회로, 백라이트 유닛 등도 함께 포함될 수 있다. 또한, 디스플레이는 플렉서블 디스플레이로 구현될 수도 있다.At this time, the display may be implemented by various types of displays such as a liquid crystal display (LCD), an organic light emitting diode (OLED) display, and a plasma display panel (PDP). A driving circuit, a backlight unit, and the like, which can be implemented in the form of an a-si TFT, a low temperature poly silicon (LTPS) TFT, an OTFT (organic TFT) Also, the display may be implemented as a flexible display.

사용자 인터페이스부(120)는 파일을 전송받을 수신 장치(200)에 대한 정보(예를 들어, 주소 정보), 해당 수신 장치에 접속하기 위한 접속 정보(예를 들어, ID 정보, 비밀번호 정보) 및 전송할 파일에 대한 정보를 입력받을 수 있다. 구체적으로, 사용자 인터페이스부(120)는 상술한 바와 같은 정보를 입력받기 위한 사용자 인터페이스 창을 표시하고, 표시된 사용자 인터페이스 창을 통하여 각종 정보를 입력받을 수 있다. 사용자 인터페이스부(120)에서 표시 가능한 사용자 인터페이스 창의 예에 대해서는 도 8 내지 도 10을 참조하여 후술한다. The user interface unit 120 stores information (for example, address information) about the receiving apparatus 200 to which the file is to be transmitted, access information (for example, ID information and password information) You can enter information about the file. Specifically, the user interface unit 120 displays a user interface window for receiving the above-described information, and receives various information through the displayed user interface window. Examples of a user interface window that can be displayed on the user interface unit 120 will be described later with reference to FIGS. 8 to 10. FIG.

메모리(130)는 전자 장치(100)의 구동을 위한 프로그램을 저장한다. 구체적으로, 메모리(130)는 전자 장치(100)의 구동시 필요한 각종 명령어의 집합인 프로그램을 저장할 수 있다. 여기서 프로그램은 특정된 서비스를 제공하기 위한 응용 프로그램뿐만 아니라, 응용 프로그램을 구동시키기 위한 운영체제를 포함한다. The memory 130 stores a program for driving the electronic device 100. Specifically, the memory 130 may store a program, which is a set of various commands required when the electronic device 100 is driven. Here, the program includes not only an application program for providing the specified service but also an operating system for running the application program.

그리고 메모리(130)는 파일을 저장한다. 여기서 파일은 MP3, WAV 등과 같은 음원 파일, AVI, MOV 등과 같은 동영상 파일일 수도 있다. 이상에서는 파일의 예로 컨텐츠 파일만을 예시하였지만, 파일의 종류에 한정되지는 않는다. The memory 130 stores the file. Here, the file may be a sound file such as MP3, WAV, etc., or a moving picture file such as AVI, MOV, or the like. In the above description, only the content file is exemplified as an example of the file, but the present invention is not limited to the file type.

그리고 메모리(130)는 전자 장치(100) 내의 저장 매체 및 외부 저장 매체, 예를 들어, USB 메모리를 포함한 Removable Disk, 네트워크를 통한 웹서버(Web server) 등으로 구현될 수 있다.The memory 130 may be implemented as a storage medium in the electronic device 100 and an external storage medium, for example, a removable disk including a USB memory, a Web server through a network, and the like.

프로세서(140)는 전자 장치(100) 내의 각 구성에 대한 제어를 수행한다. 구체적으로, 프로세서(140)는 사용자로부터 부팅 명령이 입력되면, 메모리(130)에 저장된 운영체제를 이용하여 부팅을 수행할 수 있다. The processor 140 performs control for each configuration within the electronic device 100. Specifically, when a boot command is input from the user, the processor 140 may perform booting using the operating system stored in the memory 130. [

그리고 사용자로부터 파일 전송을 위한 프로그램의 실행 명령을 입력받으면, 프로세서(140)는 해당 프로그램을 실행하고, 전송할 파일 및 수신 장치를 선택받기 위한 사용자 인터페이스 창이 표시되도록 사용자 인터페이스부(120)를 제어할 수 있다. When receiving the execution command of the program for file transfer from the user, the processor 140 controls the user interface unit 120 to display the user interface window for executing the program and selecting the file to be transmitted and the receiving apparatus have.

사용자로부터 전송할 파일 및 수신 장치를 선택받으면, 프로세서(140)는 사용자가 선택한 수신 장치(200)와 세션이 확립되도록 통신부(110)를 제어할 수 있다. 이때, 프로세서(140)는 선택된 수신 장치(200)와 복수의 세션이 확립되도록 통신부(110)를 제어할 수 있다. The processor 140 may control the communication unit 110 to establish a session with the receiving apparatus 200 selected by the user. At this time, the processor 140 may control the communication unit 110 to establish a plurality of sessions with the selected receiving apparatus 200.

보다 구체적으로, 프로세서(140)는 초기에는 기설정된 초기 값만큼의 세션을 확립하고, 수신 장치에서 제공되는 굿풋(goodput) 결과에 기초하여 수신 장치와의 세션 개수를 적응적으로 조정할 수 있다. 여기서 굿풋(goodput)은 데이터 통신에서 단위 시간당 실질적으로 처리된 데이터 수이다. 한편, 본 실시 예에서는 굿풋 결과에 기초하여 세션의 개수를 조정하는 것으로 설명하였지만, 구현시에는 데이터 처리율(throughput)을 이용하여 조정할 수도 있다. More specifically, the processor 140 initially establishes a session with a predetermined initial value, and adaptively adjusts the number of sessions with the receiving apparatus based on a goodput result provided by the receiving apparatus. Here, goodput is the number of data actually processed per unit time in data communication. In the present embodiment, the number of sessions is adjusted on the basis of the result of the goodput. However, the implementation may be adjusted using data throughput.

예를 들어, 프로세서(140)는 최초에 하나의 세션만 확립되도록 통신부(110)를 제어하고, 점진적으로 세션의 개수를 증가하도록 통신부(110)를 제어할 수 있다. 세션의 증가에 따라 굿풋 결과도 좋아지면 지속적으로 세션의 개수를 증가시키고, 굿풋 결과가 동일하거나 떨어지게 되면 굿풋 결과가 가장 좋은 세션의 개수를 이용하여 데이터 송수신이 되도록 통신부(110)를 제어할 수 있다. 이러한 세션 개수의 조정은 초기 전송의 과정에서뿐만 아니라, 데이터의 송수신 과정에서도 지속적으로 수행될 수 있다. For example, the processor 140 may control the communication unit 110 to establish only one session at first, and may control the communication unit 110 to gradually increase the number of sessions. When the goodput result is improved according to the increase of the session, the number of sessions is continuously increased. When the goodput result is equal or decreased, the communication unit 110 can be controlled to transmit / receive data using the number of the best- . The adjustment of the number of sessions can be continuously performed not only in the initial transmission process but also in the data transmission / reception process.

한편, 이상에서는 초기에 하나의 세션만을 확립하는 것으로 설명하였지만, 구현시에는 처음부터 2개 이상의 세션이 확립되도록 설정할 수 있으며, 이전의 수신 장치와의 통신 이력을 참고할 수도 있다. 예를 들어, 동일한 수신 장치와 10개의 세션을 이용하여 데이터를 송수신한 이력이 있는 경우, 최초에 10개의 세션이 확립되도록 제어할 수 있으며, 임계치(예를 들어, 2개)를 두어 최초에 8개 세션이 확립되도록 구현할 수도 있다. In the above description, only one session is initially established. However, at the time of implementation, two or more sessions may be established from the beginning, and the history of communication with the previous receiving apparatus may be referred to. For example, if there is a history of transmitting and receiving data using 10 sessions with the same receiving apparatus, it is possible to control 10 sessions to be established first, and a threshold (for example, 2) Session can be established.

프로세서(140)는 확립된 복수의 세션을 이용하여 선택된 수신 장치에 선택된 파일이 전송되도록 통신부(110)를 제어할 수 있다. 이러한 동작을 위하여 프로세서(140)는 복수의 세션 각각에 전송될 데이터 패킷을 생성하고, 생성된 데이터 패킷 각각을 복수의 세션을 이용하여 전송할 수 있다. 이러한 데이터의 분할 동작은 다양한 형태로 구현될 수 있는데, 구체적인 데이터 분할 방식에 대해서는 도 5 및 도 6을 참조하여 후술한다. The processor 140 may control the communication unit 110 to transmit the selected file to the selected receiving apparatus using the established plurality of sessions. For this operation, the processor 140 may generate a data packet to be transmitted in each of a plurality of sessions, and may transmit each of the generated data packets using a plurality of sessions. The dividing operation of the data may be implemented in various forms, and a specific data dividing method will be described later with reference to FIGS. 5 and 6. FIG.

그리고 프로세서(140)는 데이터의 분할 방식에 대한 정보가 수신 장치(200) 에 제공되도록 통신부(110)를 제어할 수 있다. The processor 140 may control the communication unit 110 so that information on the division method of data is provided to the reception apparatus 200. [

한편, 전자 장치(100)가 수신 장치로서 동작하는 경우, 프로세서(140)는 복수의 세션을 이용하여 수신한 데이터를 송신 장치에서 제공한 정보에 기초하여 병합하여 파일을 생성할 수 있다. 그리고 프로세서(140)는 생성한 파일을 메모리(130)에 저장하거나 다른 전자 장치에 전송할 수 있다. On the other hand, when the electronic device 100 operates as a receiving device, the processor 140 can merge the received data using a plurality of sessions based on the information provided by the transmitting device to generate a file. The processor 140 may store the generated file in the memory 130 or transmit the file to another electronic device.

이와 같이 본 실시 예에 따른 전자 장치(100)는 복수의 세션을 확립하여 파일을 송수신하는바, 기존의 하나의 세션을 이용하는 경우보다 더욱 빠르게 파일 전송을 수행할 수 있다. 또한, 전체 데이터 전송에 따른 굿풋 값을 기초로 확립되는 세션의 개수를 조정하여 데이터를 송수신하는바 더욱 최적의 방식으로 데이터 송수신이 가능하다. As described above, the electronic device 100 according to the present embodiment establishes a plurality of sessions and transmits / receives a file, so that file transfer can be performed more quickly than when using an existing one session. In addition, data can be transmitted / received by adjusting the number of sessions established based on the goodput value according to the entire data transmission, and data transmission / reception can be performed in a more optimal manner.

도 3은 혼잡 제어를 설명하기 위한 도면이다.3 is a diagram for explaining congestion control.

네트워크에 존재하는 전송 패킷 수가 많아 질수록 네트워크 성능은 감소하게 되는데, 이러한 성능 감소 현상이 급격하게 악화되는 현상을 혼잡(Congestion)이라고 하고, 혼잡 문제를 해결하기 위한 방안을 혼잡 제어(Congestion Control)이라고 지칭한다. As the number of transport packets in the network increases, the network performance decreases. Congestion is a phenomenon in which the phenomenon of performance degradation is rapidly deteriorated. Congestion control is a method to solve the congestion problem Quot;

혼잡이 발생하는 원인은 다양한데, 기본적으로 네트워크의 처리 능력보다 과도하게 많은 패킷이 입력되면 발생한다. 이러한 점에서, 전용망을 이용하여 데이터를 처리하는 경우에는 혼잡이 발생할 경우가 낮으나, 일반 공용 인터넷 망을 이용하는 경우에는 네트워크의 수용량이 계속적으로 변경되기 때문에 혼잡이 발생하는 경우가 잦고 그에 따라 혼잡 제어가 진행되는 경우가 빈번하게 된다. There are various reasons for the congestion, which occurs when too many packets are input than the network's processing capability. In this respect, when data is processed using a private network, congestion is less likely to occur. However, when a general public Internet network is used, congestion often occurs because the capacity of the network is continuously changed. It is often the case that it proceeds.

도 3을 참조하면, 혼잡 제어가 수행되지 않은 경우에는 혼잡 윈도우(Congestion Window, CWnd)가 최대치로 동작하나, 혼잡 제어가 수행되는 경우에는 혼잡 윈도우가 최대치보다 낮은 값으로 동작되는 것을 확인할 수 있다. Referring to FIG. 3, when congestion control is not performed, the congestion window (CWnd) operates at a maximum value. However, when congestion control is performed, it can be confirmed that the congestion window operates at a value lower than the maximum value.

이와 같은 혼잡 제어의 영향으로 공용 인터넷망을 이용하는 경우에는 안정적인 통신 대역폭을 약속받을 수 없고, 그로 인해 전송 속도가 상당히 느려지게 된다. In the case of using the public Internet network due to the congestion control, the stable communication bandwidth can not be guaranteed, and the transmission speed is considerably slowed down.

이에 따라, 본 개시에서는 하나의 세션을 이용하여 파일을 송수신하는 것이 아니라, 복수의 세션을 이용하여 파일을 송신한다. 복수의 세션을 확립하는 경우의 효과에 대해서는 도 4를 참조하여 이하에서 설명한다. Accordingly, in the present disclosure, a file is transmitted using a plurality of sessions rather than sending and receiving files using one session. The effect of establishing a plurality of sessions will be described below with reference to Fig.

도 4는 복수의 세션을 이용한 파일 전송 동작을 설명하기 위한 도면이다. 4 is a diagram for explaining a file transfer operation using a plurality of sessions.

도 4를 참조하면, 하나의 세션을 이용하는 경우, 시간에 따라 전송률이 상당히 들쑥날쑥한 것을 확인할 수 있다. 이에 반해, 복수의 세션을 이용하는 경우에는 하나의 세션을 이용하여 데이터를 전송할 때의 빈 곳을 채워서 전송하게 되어 상당히 높은 전송율로 데이터를 송수신됨을 알 수 있다. Referring to FIG. 4, when one session is used, it can be seen that the transmission rate is considerably wider with time. On the other hand, in the case of using a plurality of sessions, it is known that data is transmitted / received at a fairly high data rate since the session is filled with vacant space for data transmission using one session.

하단의 표 1 내지 표 4는 다양한 테스트 환경에서의 실험 결과를 나타낸다. Tables 1 to 4 at the bottom represent experimental results in various test environments.

일반 FTPGeneral FTP 복수의 세션 이용Multiple sessions 최소at least 58.38 Mbps58.38 Mbps 81.32 Mbps81.32 Mbps 최대maximum 72.96 Mbps72.96 Mbps 95.64 Mbps95.64 Mbps 평균Average 66.22 Mbps66.22 Mbps 88.06 Mbps88.06 Mbps

표 1은 송신 장치와 수신 장치 각각이 비교적 가까운 거리인 여의도와 용산에 위치한 경우의 실험 결과이다. 표 1을 참조하면, 복수의 세션을 이용하는 경우 하나의 세션을 이용하는 것보다 약 33%의 성능이 향상됨을 확인할 수 있다. Table 1 shows the experimental results in the case where the transmitting apparatus and the receiving apparatus are located at Yeoido and Yongsan, respectively, which are relatively close distances. Referring to Table 1, it can be seen that the performance is improved by about 33% when using a plurality of sessions, compared to using one session.

일반 FTPGeneral FTP 복수의 세션 이용Multiple sessions 최소at least 24.0 Mbps24.0 Mbps 72.24 Mbps72.24 Mbps 최대maximum 28.2 Mbps28.2 Mbps 79.44 Mbps79.44 Mbps 평균Average 25.6 Mbps25.6 Mbps 75.6 Mbps75.6 Mbps

표 2는 송신 장치와 수신 장치 각각이 여의도와 도쿄에 위치한 경우의 실험 결과이다. 표 2를 참조하면, 복수의 세션을 이용하는 경우 하나의 세션을 이용하는 것보다 약 200%의 성능이 향상됨을 확인할 수 있다. Table 2 shows the experimental results when the transmitter and the receiver are located in Yeouido and Tokyo, respectively. Referring to Table 2, it can be seen that the performance is improved by about 200% when using a plurality of sessions, compared to using one session.

일반 FTPGeneral FTP 복수의 세션 이용Multiple sessions 최소at least 684.4 Kbps684.4 Kbps 60.58 Mbps60.58 Mbps 최대maximum 4.68 Mbps4.68 Mbps 69.12 Mbps69.12 Mbps 평균Average 2.98 Mbps2.98 Mbps 64.55 Mbps64.55 Mbps

표 3은 송신 장치와 수신 장치 각각이 여의도와 미국에 위치한 경우의 실험 결과이다. 표 3을 참조하면, 복수의 세션을 이용하는 경우 하나의 세션을 이용하는 것보다 약 3000%의 성능이 향상됨을 확인할 수 있다. Table 3 shows the experimental results when the transmitting device and the receiving device are located in Yeouido and the US, respectively. Referring to Table 3, it can be seen that the performance is improved by about 3000% when using a plurality of sessions, compared to using one session.

일반 FTPGeneral FTP 복수의 세션 이용Multiple sessions 최소at least 3.47 Mbps3.47 Mbps 111.4 Mbps111.4 Mbps 최대maximum 6.28 Mbps6.28 Mbps 118.8 Mbps118.8 Mbps 평균Average 4.48 Mbps4.48 Mbps 115.3 Mbps115.3 Mbps

표 4는 송신 장치와 수신 장치 각각이 여의도와 독일에 위치한 경우의 실험 결과이다. 표 4를 참조하면, 복수의 세션을 이용하는 경우 하나의 세션을 이용하는 것보다 약 2500%의 성능이 향상됨을 확인할 수 있다. Table 4 shows the experimental results when the transmitter and the receiver are located in Yeouido and Germany, respectively. Referring to Table 4, it can be seen that the performance is improved by about 2500% when a plurality of sessions are used by using one session.

상술한 실험 결과를 종합하면, 복수의 세션을 이용하여 파일을 전송하는 경우, 기존 대비 전송 속도가 향상됨을 확인할 수 있다. 특히, 국가 간의 파일 전송 환경에서는 비약적인 전송 속도의 향상이 있음을 확인할 수 있다. According to the above experimental results, it can be confirmed that the transmission speed is improved compared to the conventional case when a file is transmitted using a plurality of sessions. Especially, it can be confirmed that there is a remarkable improvement in transmission speed in the file transfer environment between countries.

또한, 이러한 복수의 세션을 이용한 파일 전송은 전자 장치의 하드웨어 변경 없이 소프트웨어적으로 적용 가능한바, 즉, 적은 비용으로 전자 장치의 통신 성능을 향상시킬 수 있는 효과가 있다. In addition, the file transfer using the plurality of sessions can be applied in software without changing the hardware of the electronic device, that is, the communication performance of the electronic device can be improved at a low cost.

한편, 복수의 세션을 이용하기 위해서는 하나의 세션을 이용하는 경우에 비교할 때, 두 가지 측면에서의 추가적으로 제어가 필요하다. 첫째는 얼마나 많은 세션을 이용할 것인지와 두 번째로 수신 측에서 병렬로 전송되는 데이터를 어떻게 합쳐 원래의 파일로 복원을 할 것인지이다. On the other hand, in order to use a plurality of sessions, additional control is required in two aspects as compared with the case of using one session. The first is how many sessions to use and the second is how to combine the data sent in parallel by the receiver to restore the original file.

먼저, 이하에서는 세션의 개수를 어떻게 설정할지에 대해서 우선적으로 설명한다. Firstly, how to set the number of sessions will be described in the following.

네트워크의 상황은 데이터를 송수신하는 시점뿐만 아니라, 두 전자 장치의 거리에 영향을 받기 때문에 고정된 개수를 이용하기 어렵다. 또한, 두 전자 장치 사이에 세션을 많을수록 전자 장치의 성능에 영향을 받기 때문에 적정 수의 세션을 이용할 필요가 있다. It is difficult to use a fixed number because the network situation is influenced not only by the time of data transmission and reception but also by the distance of two electronic devices. Also, since the more sessions between two electronic devices are affected by the performance of the electronic device, it is necessary to use an appropriate number of sessions.

이에 따라, 본 실시 예에 따른 전자 장치(100)는 초기에는 낮은 개수의 세션만을 확립하고, 이후에 전송률이 포화되는 시점까지 세션의 개수를 증가시킨다. 이를 위해 전자 장치(100)는 복수의 세션에 의한 데이터 처리 수(즉, 굿풋)를 실시간으로 감지하고, 데이터 처리 수가 더는 증가하지 않은 시점까지 세션의 개수를 증가시킬 수 있다. Accordingly, the electronic device 100 according to the present embodiment initially establishes only a low number of sessions, and then increases the number of sessions to the point at which the transmission rate is saturated. To this end, the electronic device 100 may detect the number of data processes by a plurality of sessions (i.e., goodput) in real time, and may increase the number of sessions to a point where the number of data processes does not increase any more.

데이터 처리 수가 더는 증가하지 않으면, 전자 장치(100)는 포화한 시점의 세션 개수를 이용하여 지속적으로 데이터를 송수신할 수 있다. If the data processing number does not increase any more, the electronic device 100 can continuously transmit and receive data using the number of sessions at the saturated time.

또한, 데이터의 송수신 과정에서 데이터 처리 수가 일정 비율 이상 변화하게 되면, 확립된 세션의 개수를 조정하는 과정을 통하여 적응적으로 세션의 개수를 조정할 수 있다. In addition, if the number of data processes changes more than a certain rate during data transmission / reception, the number of sessions can be adjusted adaptively through a process of adjusting the number of established sessions.

이하에서는 도 5 및 도 6을 참고하여, 복수의 세션을 이용하여 데이터를 어떠한 방식으로 분할하여 전송할 것인지에 대해서 설명한다. Hereinafter, how data is divided and transmitted using a plurality of sessions will be described with reference to FIGS. 5 and 6. FIG.

도 5는 제1 실시 예에 따른 데이터 분할 동작을 설명하기 위한 도면이다. 구체적으로, 도 5는 세션의 개수가 고정적인 경우의 데이터 분할 예를 설명하기 위한 도면이다. 5 is a diagram for explaining a data dividing operation according to the first embodiment. Specifically, FIG. 5 is a diagram for explaining an example of data division when the number of sessions is fixed.

도 5를 참조하면, 송신 장치와 수신 장치 간에 5개의 세션이 확립된 경우를 가정한다. Referring to FIG. 5, it is assumed that five sessions are established between a transmitting apparatus and a receiving apparatus.

5개의 세션이 확립된 경우, 송신 장치(100)는 사용자가 선택한 파일을 5개의 영역으로 구분하고, 구분된 각 영역을 서로 다른 세션을 통하여 전송할 수 있다. 예를 들어, 첫 번째 데이터 영역(A)은 제1 세션을 통하여 전송하고, 두 번째 데이터 영역(B)은 제2 세션을 통하여 전송할 수 있다. 이때 송신 장치(100)는 분할된 데이터 영역 각각을 해당 세션에 대해서 설정된 세그먼트 단위(또는 데이터 패킷 단위)로 순차적으로 분할하고, 분할된 세그먼트(또는 패킷)를 순차적으로 해당 세션으로 전송할 수 있다. When five sessions are established, the transmitting apparatus 100 can divide a file selected by the user into five regions and transmit the divided regions through different sessions. For example, the first data area A may be transmitted through the first session, and the second data area B may be transmitted through the second session. At this time, the transmitting apparatus 100 sequentially divides each of the divided data areas into segments (or data packets) set for the session, and sequentially transmits the segments (or packets) to the corresponding session.

그리고 송신 장치(100)는 각 세션에 전송될 파일의 위치 정보를 수신 장치(200) 측에 전송한다. 예를 들어, 송신 장치(100)는 5개의 세션에서 전송되는 데이터 영역이 파일의 어떠한 위치인지에 대한 정보를 수신 장치(200) 측에 제공할 수 있다. Then, the transmitting apparatus 100 transmits the location information of the file to be transmitted to each session to the receiving apparatus 200 side. For example, the transmitting apparatus 100 can provide the receiving apparatus 200 side with information on the position of the file in which the data area transmitted in the five sessions is located.

따라서, 수신 장치(200)는 5개로 분할된 각 데이터 영역을 병렬적으로 수신하고, 각 데이터 영역이 모두 수신되면, 이를 병합하여 원래 파일로 복원할 수 있다. Therefore, the receiving apparatus 200 can receive each of the five data areas in parallel, and when all the data areas are received, they can be merged and restored to the original file.

제1 실시 예의 경우 단순한 방식으로 데이터를 분할하기 때문에, 분할 방식에 대한 정보가 크지 않게 되며, 수신 장치 측에서 손쉽게 데이터를 병합할 수 있는 장점이 있다. In the first embodiment, since data is divided in a simple manner, information on the division method is not large, and data can be easily merged on the receiving apparatus side.

한편, 도 5를 설명함에 있어서, 파일을 세션의 개수에 기초하여 크기 단위로 단순 분할하는 것만을 설명하였지만, 전송할 파일이 동영상 파일인 경우, 일정 재생 시간 단위로 분할하는 것도 가능하고, 영상을 구성하는 프레임 단위로 분할하는 것도 가능하다. 예를 들어, 첫번째, 여섯번째 프레임 등은 첫번째 세션으로 전송하고, 두번째, 일곱번째 프레임 등은 두번째 세션으로 전송하는 방식이다. In the description of FIG. 5, only a simple division of a file in size units based on the number of sessions has been described. However, when the file to be transmitted is a moving image file, It is also possible to divide it into frame units. For example, the first and sixth frames are transmitted to the first session, and the second and seventh frames are transmitted to the second session.

도 6은 제2 실시 예에 따른 데이터 분할 동작을 설명하기 위한 도면이다. 6 is a diagram for explaining a data dividing operation according to the second embodiment.

도 6을 참조하면, 선택된 파일에서 기설정된 제1 크기를 갖는 데이터를 추출한다. 여기서 제1 크기는 확립된 복수의 세션에서의 세그먼트 크기의 합일 수 있으며, 복수의 세션에서의 세그먼트 크기 중 가장 작은 세그먼트 크기에 세션의 개수 곱일 수도 있다. Referring to FIG. 6, data having a predetermined first size is extracted from a selected file. Here, the first size may be the sum of the segment sizes in the plurality of established sessions, or may be the smallest segment size among the plurality of segments and may be the number of sessions.

그리고 추출된 데이터를 복수의 데이터 패킷으로 분할한다. 구체적으로, 제1 크기가 확립된 복수의 세션에서의 세그먼트 크기의 합이었으면, 각 세션의 세그먼트 크기에 대응되게 추출된 데이터를 분할할 수 있다. 만약, 제1 크기가 가장 작은 세그먼트 크기에 세션의 개수 곱이면, 추출된 데이터를 세그먼트 크기로 분할할 수 있다. Then, the extracted data is divided into a plurality of data packets. Specifically, if the sum of the segment sizes in the plurality of sessions in which the first size is established, the extracted data corresponding to the segment size of each session can be divided. If the first size is the smallest segment size and the number of sessions is the number of times, the extracted data can be divided into segment sizes.

제2 실시 예의 경우 순차적으로 데이터를 전송하기 때문에 스트리밍 방식의 데이터를 전송하는데 활용할 수 있으며, 파일의 전송 과정 중에 세션의 개수가 조정되는 경우에도 적응적으로 파일 분할을 진행할 수 있는 장점이 있다. In the case of the second embodiment, since the data is transmitted sequentially, it can be utilized for transmitting the streaming data, and even if the number of sessions is adjusted during the transmission of the file, the file division can be adaptively performed.

한편, 구현시에는 추출된 데이터를 확립된 세션 개수보다 많은 데이터 패킷으로 분할하고, 수신 장치에서 일정 개수 이상의 데이터 패킷의 수신이 완료되었다는 알림 정보가 수신될 때까지 분할된 데이터 패킷을 송신하고, 알림 정보가 수신되면 다음 데이터를 추출하는 방식이 이용될 수도 있다. 이에 대해서는 도 7을 참조하여 이하에서 설명한다. In the implementation, the extracted data is divided into data packets larger than the number of established sessions, and the divided data packets are transmitted until notification information indicating that reception of a predetermined number or more of data packets is received in the receiving device, When the information is received, a method of extracting the next data may be used. This will be described below with reference to Fig.

도 7은 파운틴 코드를 이용한 부호화 동작을 설명하기 위한 도면이다. 7 is a diagram for explaining a coding operation using a fuzzy code.

파운틴 코드는 데이터를 무한히 많은 양으로 부호화하여 전송하는 부호화 기술이다. 파운틴 코드는 부호화된 패킷 중 일부가 손실되었다고 하더라도 수신 장치 측에서는 일정 개수 이상의 부호화된 패킷을 수신하면 원래의 데이터로 복구할 수 있다. Fountain code is a coding technique that encodes and transmits data in an infinitely large amount. Even if some of the encoded packets are lost, the fuzzy code can recover the original data if a certain number or more of encoded packets are received at the receiving apparatus side.

파운틴 코드에서의 전송할 데이터를 구성하는 패킷의 개수를 k라고 할 때, {1, 2, 3, ... , k)에 대한 확률 분포는 기정의된 확률분포함수에 의해 결정된다. 이 확률 분포를 통하여 부호화된 패킷에 대한 차수(d)가 결정되며, d 만큼 소스 패킷을 랜덤하게 선택하여 비트 단위로 XOR 연산을 적용한 것이 부호화된 패킷이다. The probability distributions for {1, 2, 3, ..., k) are determined by a predetermined probability distribution function when the number of packets constituting data to be transmitted in the fuzzy code is k. The degree (d) of the encoded packet is determined through the probability distribution, and the source packet is randomly selected by d, and the XOR operation is applied in units of bits.

그리고 소스 패킷을 복구하기 위한 인코딩 패킷의 수는 k'=(1+γ)k로 나타낼 수 있다. 여기서 γ는 매우 작은 값이므로, 대략 소스 패킷의 개수보다 하나 정도 더 많은 부호화된 패킷을 수신하는 경우, 수신 장치는 소스 패킷을 복구할 수 있다. And the number of encoded packets for recovering the source packet can be expressed as k '= (1 + γ) k. Here, since? Is a very small value, the receiving apparatus can recover the source packet when receiving approximately one more encoded packet than the number of source packets.

따라서, 본 실시 예에서는 추출된 데이터를 파운틴 코드로 부호화하여 복수의 데이터 패킷을 무한하게 생성하고(실제 구현시에는 인코딩 패킷의 수에 일정 배수), 생성된 복수의 데이터 패킷을 확립된 복수의 세션을 이용하여 전송한다. Therefore, in the present embodiment, the extracted data is encoded with fountain codes to generate a plurality of data packets infinitely (in actual implementation, a certain multiple of the number of encoded packets) .

그리고 수신 장치(200)는 추출된 데이터를 복구하기에 충분한 개수의 데이터 패킷을 수신하면, 충분한 개수의 데이터를 수신하였음을 알리는 알림 정보를 송신 장치(100) 측에 송부하게 된다. 이러한 알림 정보를 수신한 송신 장치(100)는 현재 추출된 데이터에 대한 전송을 중지하고 다음 데이터(즉, 새로운 소스 패킷)를 추출하고, 추출된 다음 데이터에 대한 파운틴 코드로의 부호화 및 전송 동작을 반복적으로 수행한다. Upon receiving a sufficient number of data packets to recover the extracted data, the receiving apparatus 200 transmits notification information to the transmitting apparatus 100 indicating that a sufficient number of data have been received. Upon receiving the notification information, the transmission apparatus 100 stops transmission of the currently extracted data, extracts the next data (i.e., a new source packet), and performs encoding and transmission operations on the extracted next data to the fountain code Perform iteratively.

이러한 파운틴 코드는 LT(Luby transform) 코드, 랩터 코드 등일 수 있다. Such a fountain code may be a LT (Luby transform) code, a raptor code, or the like.

이와 같이 파운틴 코드를 이용하는 경우, 수신 측에서는 일정 개수 이상의 패킷 수만 수신하는 경우, 데이터 복원이 가능한바 TCP 방식으로 패킷을 송수신할 필요는 없으며, UDP 방식을 이용하는 것도 가능하다. In the case where the fountain code is used, in the case of receiving only a predetermined number of packets or more on the receiving side, it is not necessary to transmit / receive the packet in the TCP mode, and UDP can be used.

또한, 이러한 파운틴 코드는 소프트웨어적으로 적용 가능한바, 새로운 프로그램의 설치만으로, 즉 적은 비용으로 전자 장치의 통신 성능을 향상시킬 수 있는 효과가 있다. In addition, since such a fountain code can be applied in software, the communication performance of the electronic device can be improved only by installing a new program, that is, at a low cost.

한편, 도 5 내지 도 7을 전송함에 있어서, 저장된 파일 그 자체를 분할하여 송신하는 것으로 설명하였지만, 구현시에는 저장된 파일에 대한 컨버팅 동작을 수행하고, 컨버팅된 파일을 상술한 바와 같은 분할 동작을 통하여 전송하는 것도 가능하다. 5 to 7, it is explained that the stored file itself is divided and transmitted. However, in the implementation, the converting operation may be performed on the stored file, and the converted file may be divided through the dividing operation as described above It is also possible to transmit.

도 8 내지 도 10은 도 2의 사용자 인터페이스부에서 표시될 수 있는 다양한 사용자 인터페이스 창의 예를 도시한 도면이다. 8 to 10 are views showing examples of various user interface windows that can be displayed in the user interface unit of FIG.

구체적으로, 도 8은 수신 장치를 선택받는 사용자 인터페이스 창의 일 예를 도시한 도면이다. 8 is a diagram illustrating an example of a user interface window for selecting a receiving apparatus.

도 8을 참조하면, 사용자 인터페이스 창(800)은 주소 입력 영역(801, 820), 접속 정보 영역(830, 840), 속도 정보 영역(850), 저장소 입력 영역(860), 확인 영역(870), 취소 영역(860)을 포함한다. 8, the user interface window 800 includes address input areas 801 and 820, access information areas 830 and 840, a speed information area 850, a storage input area 860, a confirmation area 870, , And a cancellation area (860).

주소 입력 영역(810, 820)은 수신 장치의 IP 주소(810) 및 포트 정보(820)를 사용자로부터 입력받는 영역이다. The address input areas 810 and 820 are areas for receiving the IP address 810 and port information 820 of the receiving device from the user.

접속 정보 영역(830, 840)은 수신 장치에 대한 접속 인증을 위하여 ID 정보(830) 및 비밀 번호(840)를 입력받는 영역이다. The access information areas 830 and 840 are areas for receiving the ID information 830 and the password 840 for access authentication to the receiving device.

속도 정보 영역(850)은 접속 속도를 입력받는 영역이다. The speed information area 850 is an area for receiving the connection speed.

저장소 입력 영역(860)은 전송될 파일의 수신 장치 측의 저장 위치를 입력받는 영역이다. The storage input area 860 is an area for receiving the storage location of the file to be transmitted on the receiving device side.

확인 영역(870)은 사용자 인터페이스 창(800)에서 입력된 정보를 기초로 수신 장치와의 연결 진행을 확인받는 영역이다. 사용자가 각종 접속 정보를 입력하고, 확인 영역(870)을 선택하면 도 9와 같은 사용자 인터페이스 창이 표시될 수 있다. The confirmation area 870 is an area for confirming connection progress with the receiving device based on the information input in the user interface window 800. [ When the user inputs various access information and selects the confirmation area 870, a user interface window as shown in FIG. 9 can be displayed.

취소 영역(870)은 연결 진행의 취소를 입력받는 영역이다. The cancellation area 870 is an area for receiving cancellation of connection progress.

도 9는 송신 장치(100)에 저장된 파일 중 전송할 파일을 선택받는 사용자 인터페이스 창의 일 예이다. 9 is an example of a user interface window in which files to be transmitted among the files stored in the transmission apparatus 100 are selected.

도 9를 참조하면, 사용자 인터페이스 창(900)은 송신 장치(100)에 기저장된 파일에 대한 정보를 리스트 형태로 표시하는 파일 표시 영역(910), 확인 영역(920), 취소 영역(930)을 포함한다. 9, the user interface window 900 includes a file display area 910, a confirmation area 920, and a cancellation area 930 for displaying information on a file stored in the transmission apparatus 100 in a list form .

파일 표시 영역(910)은 전송 가능한 파일의 정보를 표시하는 영역으로, 사용자는 표시된 복수의 파일 중 전송하고자 하는 파일을 선택할 수 있다. The file display area 910 is an area for displaying information of a transferable file, and the user can select a file to be transmitted among a plurality of displayed files.

확인 영역(870)은 사용자 인터페이스 창(900)에서 선택된 파일에 대한 전송 명령을 입력받는 영역이다. 해당 확인 영역(870)을 선택하면, 송신 장치(100)는 수신 장치(200)와 복수의 세션을 확립하고, 확립된 복수의 세션을 이용하여 선택된 파일을 송수신하는 동작을 수행한다. The confirmation area 870 is an area for receiving a transfer command for a file selected in the user interface window 900. [ When the corresponding confirmation area 870 is selected, the transmitting apparatus 100 establishes a plurality of sessions with the receiving apparatus 200, and performs an operation of transmitting and receiving a selected file by using a plurality of established sessions.

취소 영역(870)은 파일 전송의 취소를 입력받는 영역이다. The cancellation area 870 is an area for receiving cancellation of file transmission.

도 10은 파일 전송 이력을 표시하는 사용자 인터페이스 창(1010)의 일 예이다. 10 is an example of a user interface window 1010 displaying file transfer history.

도 10을 참조하면, 사용자 인터페이스 창(1010)은 검색 필터를 입력받는 필터 영역(1020), 이력 정보를 표시하는 이력 영역(1030)을 포함한다. Referring to FIG. 10, the user interface window 1010 includes a filter area 1020 for receiving a search filter, and a hysteresis area 1030 for displaying hysteresis information.

필터 영역(1020)은 이력 정보 중 사용자가 원하는 이력만을 검색하기 위한 각종 검색 조건을 입력받는 영역이다. The filter region 1020 is an area for receiving various search conditions for searching only the history desired by the user from the history information.

이력 영역(1030)은 송신 장치(100)에서 전송한 이력에 대한 정보를 표시하는 영역으로, 필터 영역(1020)을 통하여 검색 조건이 설정된 경우, 검색 조건에 맞는 이력만이 표시될 수 있다. The history area 1030 is an area for displaying information on the history transmitted from the transmission apparatus 100. When the search condition is set through the filter area 1020, only the history corresponding to the search condition can be displayed.

도 11은 본 개시의 일 실시 예에 따른 파일 전송 방법을 설명하기 위한 도면이다. 11 is a diagram for explaining a file transfer method according to an embodiment of the present disclosure.

도 11을 참조하면, 기저장된 복수의 파일 중 전송할 파일 및 공용 인터넷 망을 통하여 연결되는 수신 장치를 선택받는다(1110). Referring to FIG. 11, among a plurality of previously stored files, a file to be transmitted and a receiving apparatus connected through a public Internet network are selected (1110).

그리고 선택된 수신 장치와 복수의 세션을 확립한다(1120). 구체적으로, 선택된 수신 장치와 기설정된 초기 값만큼의 세션을 확립하고, 수신 장치에서 제공되는 굿풋(goodput) 결과에 기초하여 선택 장치와의 세션 개수를 적응적으로 조정할 수 있다. And establishes a plurality of sessions with the selected receiving device (1120). Specifically, it is possible to establish a session of a predetermined initial value with the selected receiving apparatus, and adaptively adjust the number of sessions with the selecting apparatus based on a goodput result provided by the receiving apparatus.

그리고 확립된 복수의 세션을 이용하여 선택된 수신 장치에 선택된 파일을 전송한다(1030). 구체적으로, 선택된 파일에서 기설정된 제1 크기를 갖는 데이터를 순차적으로 추출하고, 순차적으로 추출된 데이터를 복수의 데이터 패킷으로 분할하고, 분할된 복수의 데이터 패킷 각각을 복수의 세션으로 전송할 수 있다. 이때, 순차적으로 추출된 데이터를 파운틴 코드로 부호화하여 세션의 개수보다 많은 복수의 데이터 패킷으로 분할할 수 있다. Then, the selected file is transmitted to the selected receiving apparatus using the plurality of established sessions (1030). Specifically, it is possible to successively extract data having a predetermined first size from a selected file, sequentially segment the extracted data into a plurality of data packets, and transmit each of the plurality of divided data packets to a plurality of sessions. At this time, sequentially extracted data may be encoded into a fuzzy code and divided into a plurality of data packets larger than the number of sessions.

따라서, 본 실시 예에 따른 파일 전송 방법은 복수의 세션을 확립하여 파일을 송수신하는바, 기존의 하나의 세션을 이용하는 경우보다 더욱 빠르게 파일 전송을 수행할 수 있다. 또한, 전체 데이터 전송에 따른 굿풋 값을 기초로 확립되는 세션의 개수를 조정하여 데이터를 송수신하는바 더욱 최적의 방식으로 데이터 송수신이 가능하다. 도 11과 같은 파일 전송 방법은 도 2의 구성을 가지는 전자 장치상에서 실행될 수 있으며, 그 밖의 다른 구성을 가지는 전자 장치상에서도 실행될 수 있다. Accordingly, the file transfer method according to the present embodiment establishes a plurality of sessions and transmits / receives files, so that file transfer can be performed more quickly than when using an existing one session. In addition, data can be transmitted / received by adjusting the number of sessions established based on the goodput value according to the entire data transmission, and data transmission / reception can be performed in a more optimal manner. The file transfer method as shown in Fig. 11 can be executed on an electronic device having the configuration of Fig. 2, or on an electronic device having other configurations.

또한, 상술한 바와 같은 파일 전송 방법은 컴퓨터에서 실행될 수 있는 실행 가능한 알고리즘을 포함하는 프로그램으로 구현될 수 있고, 상술한 프로그램은 비일시적 판독 가능 매체(non-transitory computer readable medium)에 저장되어 제공될 수 있다. In addition, the file transfer method as described above can be implemented as a program including an executable algorithm that can be executed in a computer, and the above-mentioned program is stored in a non-transitory computer readable medium .

한편, 이상에서 설명된 다양한 실시 예들은 소프트웨어(software), 하드웨어(hardware) 또는 이들의 조합된 것을 이용하여 컴퓨터(computer) 또는 이와 유사한 장치로 읽을 수 있는 기록 매체 내에서 구현될 수 있다. 하드웨어적인 구현에 의하면, 본 개시에서 설명되는 실시 예들은 ASICs(Application Specific Integrated Circuits), DSPs(digital signal processors), DSPDs(digital signal processing devices), PLDs(programmable logic devices), FPGAs(field programmable gate arrays), 프로세서(processors), 제어기(controllers), 마이크로 컨트롤러(micro-controllers), 마이크로프로세서(microprocessors), 기타 기능 수행을 위한 전기적인 유닛(unit) 중 적어도 하나를 이용하여 구현될 수 있다. 일부의 경우에 본 명세서에서 설명되는 실시 예들이 프로세서 자체로 구현될 수 있다. 소프트웨어적인 구현에 의하면, 본 명세서에서 설명되는 절차 및 기능과 같은 실시 예들은 별도의 소프트웨어 모듈들로 구현될 수 있다. 상기 소프트웨어 모듈들 각각은 본 명세서에서 설명되는 하나 이상의 기능 및 작동을 수행할 수 있다.Meanwhile, the various embodiments described above can be implemented in a recording medium that can be read by a computer or a similar device using software, hardware, or a combination thereof. In accordance with a hardware implementation, the embodiments described in this disclosure may be implemented as application specific integrated circuits (ASICs), digital signal processors (DSPs), digital signal processing devices (DSPDs), programmable logic devices (PLDs), field programmable gate arrays ), A processor, microcontrollers, microprocessors, and an electrical unit for carrying out other functions. In some cases, the embodiments described herein may be implemented by the processor itself. According to a software implementation, embodiments such as the procedures and functions described herein may be implemented with separate software modules. Each of the software modules may perform one or more of the functions and operations described herein.

한편, 상술한 본 개시의 다양한 실시 예들에 따른 전자 장치의 제어 방법은 비일시적 판독 가능 매체(non-transitory readable medium) 에 저장될 수 있다. 이러한 비일시적 판독 가능 매체는 다양한 장치에 탑재되어 사용될 수 있다. On the other hand, the method of controlling an electronic device according to various embodiments of the present disclosure described above may be stored in a non-transitory readable medium. Such non-transiently readable media can be used in various devices.

비일시적 판독 가능 매체란 레지스터, 캐쉬, 메모리 등과 같이 짧은 순간 동안 데이터를 저장하는 매체가 아니라 반영구적으로 데이터를 저장하며, 기기에 의해 판독(reading)이 가능한 매체를 의미한다. 구체적으로는, 상술한 다양한 방법을 수행하기 위한 프로그램들은 CD, DVD, 하드 디스크, 블루레이 디스크, USB, 메모리카드, ROM 등과 같은 비일시적 판독 가능 매체에 저장되어 제공될 수 있다.A non-transitory readable medium is a medium that stores data for a short period of time, such as a register, cache, memory, etc., but semi-permanently stores data and is readable by the apparatus. In particular, the programs for carrying out the various methods described above may be stored in non-volatile readable media such as CD, DVD, hard disk, Blu-ray disk, USB, memory card, ROM and the like.

또한, 이상에서는 본 개시의 바람직한 실시 예에 대하여 도시하고 설명하였지만, 본 개시는 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에서 청구하는 본 개시의 요지를 벗어남이 없이 당해 개시가 속하는 기술분야에서 통상의 지식을 가진자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 개시의 기술적 사상이나 전망으로부터 개별적으로 이해되어서는 안 될 것이다.While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is to be understood that the invention is not limited to the disclosed exemplary embodiments, but, on the contrary, It will be understood by those skilled in the art that various changes and modifications may be made without departing from the spirit and scope of this disclosure.

100: 전자 장치 110: 통신부
120: 사용자 인터페이스부 130: 메모리
140: 프로세서
100: electronic device 110: communication unit
120: user interface unit 130: memory
140: Processor

Claims (10)

전자 장치에 있어서,
공용 인터넷 망에 연결되는 통신부;
복수의 파일을 저장하는 메모리;
상기 복수의 파일 중 전송할 파일 및 수신 장치를 선택받는 사용자 인터페이스부; 및
상기 선택된 수신 장치와 복수의 세션을 확립하고, 상기 확립된 복수의 세션을 이용하여 상기 선택된 수신 장치에 상기 선택된 파일이 전송되도록 상기 통신부를 제어하는 프로세서;를 포함하고,
상기 프로세서는,
상기 선택된 수신 장치와 이전에 확립된 세션 개수의 이력이 있는 경우, 상기 이전에 확립된 세션 개수의 이력에 기초하여 세션을 확립하며,
상기 사용자 인터페이스부는,
접속 속도를 입력받는 속도 정보 영역 및 검색 조건을 입력받는 필터 영역을 포함하는, 전자 장치.
In an electronic device,
A communication unit connected to the public Internet network;
A memory for storing a plurality of files;
A user interface unit for selecting a file to be transmitted and a receiving apparatus among the plurality of files; And
And a processor for establishing a plurality of sessions with the selected receiving apparatus and controlling the communication unit to transmit the selected file to the selected receiving apparatus by using the established plurality of sessions,
The processor comprising:
Establishing a session based on the history of the previously established session number if there is a history of the previously established session number with the selected receiving device,
The user interface unit,
A speed information area for receiving the connection speed, and a filter area for receiving the search condition.
제1항에 있어서,
상기 프로세서는,
상기 수신 장치에서 제공되는 굿풋(goodput) 결과에 기초하여 상기 선택된 수신 장치와의 세션 개수를 적응적으로 조정되도록 상기 통신부를 제어하는 전자 장치.
The method according to claim 1,
The processor comprising:
And controls the communication unit to adaptively adjust the number of sessions with the selected receiving apparatus based on a goodput result provided by the receiving apparatus.
제1항에 있어서,
상기 프로세서는,
상기 선택된 파일에서 기설정된 제1 크기를 갖는 데이터를 순차적으로 추출하고, 상기 순차적으로 추출된 데이터를 복수의 데이터 패킷으로 분할하고, 상기 복수의 데이터 패킷 각각을 상기 복수의 세션으로 전송되도록 상기 통신부를 제어하는 전자 장치.
The method according to claim 1,
The processor comprising:
Sequentially extracting data having a predetermined first size from the selected file, dividing the sequentially extracted data into a plurality of data packets, and transmitting the plurality of data packets to the plurality of sessions, Lt; / RTI >
제3항에 있어서,
상기 프로세서는,
상기 순차적으로 추출된 데이터를 파운틴 코드(Fountain Code)로 부호화하여 상기 세션의 개수보다 많은 복수의 데이터 패킷으로 분할하고, 상기 복수의 데이터 패킷 각각을 상기 복수의 세션으로 전송되도록 상기 통신부를 제어하고, 상기 수신 장치로부터 기설정된 개수 이상의 데이터 패킷의 수신을 완료하였다는 알림 정보가 수신되면, 현재 추출된 데이터의 전송을 중지하고 다음 데이터를 추출하여 전송하는 전자 장치.
The method of claim 3,
The processor comprising:
Wherein the control unit controls the communication unit to transmit each of the plurality of data packets to the plurality of sessions by encoding the sequentially extracted data into a fountain code and dividing the data into a plurality of data packets larger than the number of the sessions, And stops transmission of the currently extracted data and extracts and transmits the next data when notification information indicating completion of reception of a predetermined number or more of data packets from the receiving device is received.
제4항에 있어서,
상기 파운틴 코드는 LT(Luby transform) 코드 또는 랩터(Raptor) 코드인 전자 장치.
5. The method of claim 4,
Wherein the fountain code is a LT (Luby transform) code or a Raptor code.
제1항에 있어서,
상기 프로세서는,
기설정된 방식을 이용하여 상기 선택된 파일을 분할하고, 상기 기설정된 방식에 대한 정보를 상기 수신 장치에 제공되도록 상기 통신부를 제어하는 전자 장치.
The method according to claim 1,
The processor comprising:
Divides the selected file using a preset method, and controls the communication unit to provide information on the predetermined method to the receiving apparatus.
파일 전송 방법에 있어서,
기저장된 복수의 파일 중 전송할 파일 및 공용 인터넷 망을 통하여 연결되는 수신 장치를 선택받는 단계;
사용자 인터페이스부의 기설정된 영역을 통해 접속 속도 및 검색 조건을 입력받는 단계;
상기 선택된 수신 장치와 복수의 세션을 확립하는 단계; 및
상기 확립된 복수의 세션을 이용하여 상기 선택된 수신 장치에 상기 선택된 파일을 전송하는 단계;를 포함하고,
상기 확립하는 단계는,
상기 선택된 수신 장치와 이전에 확립된 세션 개수의 이력이 있는 경우, 상기 이전에 확립된 세션 개수의 이력에 기초하여 세션을 확립하는, 파일 전송 방법.
In the file transfer method,
Receiving a file to be transmitted among a plurality of previously stored files and a receiving apparatus connected through a public Internet network;
Receiving a connection speed and a search condition through a preset area of a user interface;
Establishing a plurality of sessions with the selected receiving device; And
And transmitting the selected file to the selected receiving device by using the established plurality of sessions,
Wherein the establishing comprises:
And establishes a session based on the history of the previously established session number if there is a history of the number of previously established sessions with the selected receiving device.
제7항에 있어서,
상기 확립하는 단계는,
상기 수신 장치에서 제공되는 굿풋(goodput) 결과에 기초하여 상기 선택된 수신 장치와의 세션 개수를 적응적으로 조정하는 파일 전송 방법.
8. The method of claim 7,
Wherein the establishing comprises:
And adaptively adjusting the number of sessions with the selected receiving device based on a goodput result provided by the receiving device.
제7항에 있어서,
상기 전송하는 단계는,
상기 선택된 파일에서 기설정된 제1 크기를 갖는 데이터를 순차적으로 추출하는 단계;
상기 순차적으로 추출된 데이터를 복수의 데이터 패킷으로 분할하는 단계; 및
상기 복수의 데이터 패킷 각각을 상기 복수의 세션으로 전송하는 단계;를 포함하는 파일 전송 방법.
8. The method of claim 7,
Wherein the transmitting comprises:
Sequentially extracting data having a predetermined first size from the selected file;
Dividing the sequentially extracted data into a plurality of data packets; And
And transmitting each of the plurality of data packets to the plurality of sessions.
제9항에 있어서,
상기 분할하는 단계는,
상기 순차적으로 추출된 데이터를 파운틴 코드(Fountain Code)로 부호화하여 상기 세션의 개수보다 많은 복수의 데이터 패킷으로 분할하고,
상기 전송하는 단계는,
상기 수신 장치로부터 기설정된 개수 이상의 데이터 패킷의 수신을 완료하였다는 알림 정보가 수신되기 전까지 상기 분할된 복수의 데이터 패킷을 상기 복수의 세션을 이용하여 전송하는 파일 전송 방법.



10. The method of claim 9,
Wherein the dividing step comprises:
And sequentially encoding the extracted data into a fountain code and dividing the data packet into a plurality of data packets larger than the number of the sessions,
Wherein the transmitting comprises:
And the plurality of divided data packets are transmitted using the plurality of sessions until notification information indicating completion of reception of a predetermined number or more of data packets from the receiving apparatus is received.



KR1020170167930A 2017-12-08 2017-12-08 Electronic apparatus and method file transmitting thereof KR101920279B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170167930A KR101920279B1 (en) 2017-12-08 2017-12-08 Electronic apparatus and method file transmitting thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170167930A KR101920279B1 (en) 2017-12-08 2017-12-08 Electronic apparatus and method file transmitting thereof

Publications (1)

Publication Number Publication Date
KR101920279B1 true KR101920279B1 (en) 2018-11-21

Family

ID=64602380

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170167930A KR101920279B1 (en) 2017-12-08 2017-12-08 Electronic apparatus and method file transmitting thereof

Country Status (1)

Country Link
KR (1) KR101920279B1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100569773B1 (en) * 2003-12-22 2006-04-10 한국전자통신연구원 A framing apparatus and a framing method in a mobile communication system
US20100094950A1 (en) * 2008-10-15 2010-04-15 Patentvc Ltd. Methods and systems for controlling fragment load on shared links

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100569773B1 (en) * 2003-12-22 2006-04-10 한국전자통신연구원 A framing apparatus and a framing method in a mobile communication system
US20100094950A1 (en) * 2008-10-15 2010-04-15 Patentvc Ltd. Methods and systems for controlling fragment load on shared links

Similar Documents

Publication Publication Date Title
CN109996097B (en) Screen projection method, system and storage device
US10135571B2 (en) Polar code processing method and system, and wireless communications apparatus
US9819717B2 (en) Video adaptation for content-aware wireless streaming
US9060252B2 (en) Rate adaptive transmission of wireless broadcast packets
US20160164788A1 (en) Egress Rate Shaping To Reduce Burstiness In Application Data Delivery
US10129722B2 (en) Service processing method and network device
EP2640083A2 (en) Multimedia data processing apparatus and method of terminal
US9998915B2 (en) Wireless communication device
US20140189064A1 (en) Method and system for adaptive video transmission
EP3937434A1 (en) Data distribution method and network device
CN114584833A (en) Audio and video processing method and device and storage medium
KR102243529B1 (en) Methods and apparatuses for dynamic content offloading
US20180316462A1 (en) Interleaving based on a Network Handover
US10560515B2 (en) Method and apparatus for transmitting and receiving information between servers in contents transmission network system
US20120099606A1 (en) Transmission apparatus, transmission method, and communication system
US20150365503A1 (en) Method for determining maximum segment size
CN112584227A (en) Information processing method, information processing apparatus, and program
KR101920279B1 (en) Electronic apparatus and method file transmitting thereof
KR101827427B1 (en) Video signal transmitting apparatus and method thereof
JP6640065B2 (en) Communication device, communication control device, communication method, communication control method, and program
US20140122652A1 (en) Systems and methods for sharing bandwidth across multiple video streams
US11979767B2 (en) Automatic adjustment of throughput rate to optimize wireless device battery performance
US20240039902A1 (en) Techniques for mitigating nic ktls denial-of-service attacks
WO2024018525A1 (en) Video processing device, method, and program
US10728911B2 (en) Wireless communication device

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant