KR20030014094A - a method of collaborating in transferring a file in a networking environment - Google Patents

a method of collaborating in transferring a file in a networking environment Download PDF

Info

Publication number
KR20030014094A
KR20030014094A KR1020017011726A KR20017011726A KR20030014094A KR 20030014094 A KR20030014094 A KR 20030014094A KR 1020017011726 A KR1020017011726 A KR 1020017011726A KR 20017011726 A KR20017011726 A KR 20017011726A KR 20030014094 A KR20030014094 A KR 20030014094A
Authority
KR
South Korea
Prior art keywords
file
devices
server
servers
information
Prior art date
Application number
KR1020017011726A
Other languages
Korean (ko)
Other versions
KR100521361B1 (en
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 KR10-2001-7011726A priority Critical patent/KR100521361B1/en
Publication of KR20030014094A publication Critical patent/KR20030014094A/en
Application granted granted Critical
Publication of KR100521361B1 publication Critical patent/KR100521361B1/en

Links

Classifications

    • 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]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/62Establishing a time schedule for servicing the requests

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

PURPOSE: A method for commonly transmitting file at network environment is provided to receive a file from several severs after dividing the file at network environment. CONSTITUTION: A user receives a file list from a file managing server(S501) and designates a desired file to the file managing server(S502). The file managing server checks devices having the desired file, sorts the devices, and transmits the device to a user terminal(S503). The user terminal determines desired server to receive the file(S504). The user terminal informs the desired server about file segment information(S505). After the transmission is terminated, the user terminal composes the segments into one file(S507) and informs the termination of the transmission to the file managing system(S508).

Description

네트워크 환경에서의 파일 공동 전송 방법{a method of collaborating in transferring a file in a networking environment}{A method of collaborating in transferring a file in a networking environment}

종래 네트워크 환경의 클라이언트/서버 모델에서는 클라이언트가 하나의 서버에 접속하여 파일을 전송받는 방식인 소위 1:1 전송 방식을 취하고 있다. 이 방식에서는 서버의 전송 속도가 낮은 경우 클라이언트가 자신의 대역폭을 충분히 활용하지 못하는 상태에서 느린 속도로 파일을 전송받아야 하고, 최적의 서버에 접속하더라도 전송 도중에 인터넷 사용자의 수가 증가하면 전송 속도가 현저히 떨어지게 되는 문제점이 있다. 또한, 파일을 전송하는 서버에 장애가 생기는 경우 파일 전송이 실패하므로, 클라이언트는 다른 서버로부터 파일을 다시 전송받아야 하는 문제점이 있다. 파일 전송 속도 향상을 위하여 미국특허공보 제6,085,251호에서 병렬적으로 파일을 전송하는 방법을 개시하고 있다. 이 방법에서는 서버가 하나의 파일을 다수의 패킷으로 분할하여 동시에 병렬적으로 클라이언트로 전송하고 동시에 패킷 수신 신호를 되돌려 받으며, 클라이언트로 하여금 그 나눈 사실을 알게 해서 클라이언트가 상기 다수의 패킷을 합쳐서 하나의 파일로 만들도록 한다. 이 방법은 패킷을 하나씩 전송하고 수신 여부를 확인하는 것에 비해, 파일 전송 속도가 현저히 빨라지는 효과가 있으나, 서버에 장애가 있는 경우 파일 전송이 안 되므로, 안정적인 파일 전송을 보장해주지는 못한다.In the client / server model of a conventional network environment, a client uses a so-called 1: 1 transmission method in which a client connects to a server and receives a file. In this method, if the transmission speed of the server is low, the client should receive the file at a slow speed without fully utilizing its bandwidth. Even if the optimal server is connected, if the number of Internet users increases during the transmission, the transmission speed will drop significantly. There is a problem. In addition, when a file transfer server fails, the file transfer fails, so that the client needs to receive the file again from another server. In order to improve file transfer speed, US Patent No. 6,085, 251 discloses a method of transferring files in parallel. In this method, the server divides a file into multiple packets, transmits them to the client in parallel and simultaneously, and receives a packet reception signal at the same time. Make it a file. This method has a much faster file transfer rate than sending packets one by one and checking whether they are received. However, if there is a server failure, file transfer is not possible, so it does not guarantee stable file transfer.

1:1 전송 방식이 이러한 한계를 가지고 있고, 더욱이 개인용 컴퓨터의 성능 향상으로 개인용 컴퓨터가 서버의 역할을 할 수 있는 환경이 갖추어진 현실에서, 굳이 1:1 전송 방식을 고수할 필요는 없다.The 1: 1 transmission method has such a limitation, and furthermore, in an environment in which the personal computer can act as a server due to the performance improvement of the personal computer, it is not necessary to adhere to the 1: 1 transmission method.

본 발명은 이러한 점에 착안한 것으로서, 1:1 전송 방식이 아니라, 다수의 서버로부터 하나의 파일을 나누어 전송받음으로써 사용자들이 최대한 대역폭을 활용할 수 있게 함으로써, 전송 속도를 향상시키는 것을 목적으로 한다.The present invention has been made in view of the above, and aims to improve transmission speed by allowing users to utilize bandwidth as much as possible by receiving one file from multiple servers instead of 1: 1 transmission.

또한, 본 발명은 전송 도중에 여러 개의 서버 중 하나의 서버에 문제가 생기는 경우, 다른 서버로 대체하여 전송하게 함으로써, 서버의 장애에 관계없이(fault-tolerant) 안정적으로 파일을 전송하는 것을 목적으로 한다.In addition, the present invention aims to reliably transfer a file in a fault-tolerant manner by replacing it with another server when a problem occurs in one server among several servers during transmission. .

또한, 본 발명은 하나의 파일을 여러 개의 서버로부터 분할하여 전송받을 수 있기 위한 전제 요건으로서, 여러 개의 서버가 동일한 파일의 조각들을 전송하는 것을 보장하는 방법을 제공하는 것을 목적으로 한다.In addition, an object of the present invention is to provide a method for ensuring that multiple servers transmit pieces of the same file as a prerequisite for being able to receive one file from multiple servers.

또한, 본 발명은 하나의 장치에 파일 전체를 저장할 수 없는 경우, 이 파일을 여러 장치에 분산하여 저장하고, 본 발명에 의한 파일 전송방법에 의하여 파일의 전체 내용을 볼 수 있도록 하는 방법을 제공하는 것을 목적으로 한다.In addition, the present invention provides a method for distributing and storing this file in multiple devices if the entire file cannot be stored in one device, and for viewing the entire contents of the file by the file transfer method according to the present invention. For the purpose of

본 발명은 파일 공동 전송 방법에 관한 것으로서, 보다 구체적으로는, 네트워크 환경에서 여러 개의 서버로부터 하나의 파일을 분할하여 전송받는 방법에 관한 것이다.The present invention relates to a file co-transmission method, and more particularly, to a method of receiving a single file from multiple servers in a network environment.

도1은 본 발명에 의한 파일 전송 시스템의 전체 구성도.1 is an overall configuration diagram of a file transfer system according to the present invention.

도2-4는 본 발명에 의한 파일 관리 시스템의 구성도.2-4 is a block diagram of a file management system according to the present invention.

도5는 본 발명에 의한 파일 전송 과정을 전체적으로 도시하는 흐름도.Fig. 5 is a flowchart showing the overall file transfer process according to the present invention.

도6은 파일을 전송할 수 있는 서버들의 정보를 저장한 후보 서버 리스트의데이터 구조.6 is a data structure of a candidate server list storing information of servers capable of transferring files.

도7는 파일 전송 정보를 기록하는 로그 파일의 예시도.7 is an exemplary diagram of a log file for recording file transfer information.

도8은 본 발명에 따라 파일을 전송하는 모습을 도시하는 도면.8 is a view showing a state of transmitting a file according to the present invention.

도9는 본 발명에 따라 하나의 장치에서 여러 장치로 파일을 전송하는 모습을 도시하는 도면.9 is a diagram illustrating a file transfer from one device to several devices according to the present invention.

상기 목적을 달성하기 위하여, 본 발명의 제1 측면은 네트워크를 통해 연결된 장치들간에 파일을 전송하기 위한 방법에 있어서, 사용자 장치가 전송받고자 하는 파일을 선택하는 단계와, 상기 파일을 저장하고 있는 장치들에 대한 정보를, 파일 전송을 관리하는 파일 관리 시스템으로부터 수신하는 단계와, 상기 파일을 저장하고 있는 장치들 중에 상기 파일을 전송할 하나 이상의 서버를 결정하는 단계와, 상기 하나 이상의 서버에게 각각 상기 파일의 어느 일부분을 전송하도록 요청하는 단계와, 상기 하나 이상의 서버로부터 각각 상기 요청된 파일의 일부분들을 전송받는 단계와, 상기 전송된 파일의 일부분들을 하나의 파일로 병합하는 단계를 포함하는 것을 특징으로 한다.In order to achieve the above object, a first aspect of the present invention provides a method for transferring a file between devices connected through a network, the method comprising: selecting a file to be transmitted by a user device; and a device storing the file. Receiving information about the file information from a file management system managing file transfer, determining one or more servers to which the file is to be transmitted among devices storing the file, and transmitting the file to the one or more servers, respectively. Requesting to transmit a portion of the file; receiving portions of the requested file from each of the one or more servers; and merging portions of the transmitted file into one file. It is done.

여기서, 서버란 서버 역할을 하게 되는 장치, 즉, 파일을 전송하는 장치를 의미하고, 전송은 다운로드뿐만 아니라 스트리밍(streaming)을 포함한다.Here, the server refers to a device that acts as a server, that is, a device for transmitting a file, and the transmission includes streaming as well as a download.

하나의 파일을 여러개의 서버로부터 전송받기 위해서는 파일의 전송을 관리하는 시스템이 존재하여야 하는데, 이러한 파일 관리 시스템은 별도의 파일 관리 서버로서 존재할 수도 있고, 여러 장치간에 분산되어 존재할 수도 있다.In order to receive a file from multiple servers, a system that manages file transfer must exist. Such a file management system may exist as a separate file management server or may be distributed among multiple devices.

상기 사용자 장치가 파일을 전송할 하나 이상의 서버를 결정할 때는 전송 속도가 높은 순으로 결정하는 것이 바람직하다. 또한, 여러 서버로부터 각각 파일의 일부분을 전송받을 때는 전송 속도가 빠른 서버로부터 많은 분량을 전송받고, 전송속도가 낮은 서버로부터 작은 분량을 전송받는 것이 바람직하다.When the user device determines one or more servers to transmit a file, it is desirable to determine the transmission speed in order of high. In addition, when receiving a part of a file from each of several servers, it is preferable to receive a large amount from a server having a high transfer rate and a small amount from a server having a low transfer rate.

사용자 장치가 여러 서버로부터 각각 파일의 일부분들을 전송받은 후에는 이 정보를 로그 파일에 기록하는데, 후에 이 로그 파일은 파일의 일부분을 병합하여 하나의 파일로 만드는데 이용된다.After the user device receives parts of each file from multiple servers, it writes this information to a log file, which is then used to merge parts of the file into a single file.

사용자 장치는 각 서버로부터 일정 크기의 패킷을 전송받을 때마다 서버의 전송속도를 평가하여, 속도가 심각하게 떨어지거나 전송이 불안정한 서버가 존재하는 경우, 이 서버를 다른 서버로 대체한다.The user device evaluates the transmission speed of the server every time a certain size packet is received from each server, and replaces the server with another server when there is a server that is seriously slowed or unstable.

대체 서버는 파일 관리 시스템으로부터 수신한, 파일을 저장하고 있는 장치들의 리스트 중에서 결정하거나, 다시 파일 관리 시스템에게 상기 리스트를 요청하고, 갱신된 리스트 중에서 결정한다.The alternate server determines from the list of devices storing the file, received from the file management system, or requests the list from the file management system again, and determines from the updated list.

한편, 하나의 파일을 여러 서버들이 분할하여 전송하기 위해서는 서버들이 모두 같은 파일의 조각들을 전송하고 있다는 것을 보장하여야만 하는데, 본 발명에서는 파일 전송을 받을 때 메타파일에 원본 파일의 정보를 기록해두고, 타 사용자에게 파일 조각을 전송할 때, 전송할 파일을 메타파일에 저장된 정보와 비교하는 방법을 사용한다.On the other hand, in order to divide and transmit a single file by multiple servers, it is necessary to ensure that the servers are all sending pieces of the same file. In the present invention, when the file is transmitted, the information of the original file is recorded in the metafile, When you send a file fragment to a user, you use a method that compares the file to be sent with the information stored in the metafile.

이러한 본 발명의 제1 측면에 의하면, 다수의 서버로부터 하나의 파일을 나누어 전송받음으로써 사용자들이 최대한 대역폭을 활용할 수 있게 함으로써, 전송속도를 향상시킬 수 있고, 전송 도중에 여러 개의 서버 중 하나의 서버에 문제가 생기는 경우, 다른 서버로 대체하여 전송하게 함으로써, 서버의 장애에 관계없이(fault-tolerant) 안정적으로 파일을 전송할 수 있다.According to the first aspect of the present invention, by transmitting a single file from a plurality of servers divided by the user to maximize the bandwidth, it is possible to improve the transmission speed, to the server of one of the multiple servers during the transmission In the event of a problem, you can transfer the file to another server, allowing you to send files reliably, fault-tolerant.

본 발명은 하나의 완전한 파일을 여러 개의 서버로부터 분할하여 전송받는 경우뿐만 아니라, 파일이 실제로 여러 곳에 분할되어 저장되어 있는 경우에도 사용될 수 있다.The present invention can be used not only when a complete file is divided and transmitted from several servers, but also when a file is actually divided and stored in several places.

즉, 본 발명의 제2 측면은 하나의 파일이 네트워크를 통해 연결된 다수의 장치들에 분산되어 저장된 경우, 상기 파일을 호출하기 위한 방법에 있어서, 상기 파일을 구성하는 각 부분을 저장하고 있는 장치들에 대한 정보를, 파일 전송을 관리하는 파일 관리 시스템으로부터 수신하는 단계와, 상기 파일의 각 부분에 대하여, 상기 각 부분을 저장하고 있는 장치들 중에 상기 각 부분을 전송할 하나 이상의 서버를 결정하는 단계와, 상기 파일의 각 부분에 대하여 상기 파일의 각 부분을 상기 결정된 하나 이상의 서버로부터 분산하여 전송받는 단계와, 상기 전송된 파일의 각 부분을 하나의 파일로 병합하는 단계를 포함한다.That is, a second aspect of the present invention provides a method for calling a file when a file is distributed and stored in a plurality of devices connected through a network, the devices storing each part constituting the file. Receiving information about a file management system from a file management system managing file transfer, determining, for each part of the file, one or more servers to which the part is to be transferred among the devices storing the part; Distributing and receiving each part of the file from each of the determined one or more servers for each part of the file, and merging each part of the transmitted file into one file.

또한, 본 발명의 제3 측면은 네트워크를 통하여 연결된 장치들에서 하나의 장치로부터 복수개의 장치들로 파일을 전송하기 위한 방법에 있어서, 상기 하나의 장치는 상기 복수개의 장치들 중 가장 빠른 장치로 상기 파일을 전송하는 단계와, 상기 파일을 전송받은 가장 빠른 장치는 상기 복수개의 장치들 중 두번째로 빠른장치로 다시 파일을 전송하고, 상기 파일을 전송받은 두번째로 빠른 장치는 세번째로 빠른 장치로 상기 전송받은 파일을 전송하는 식으로, 가장 속도가 느린 장치까지 파일을 전송하는 단계를 포함하고, 상기 하나의 장치가 상기 복수개의 장치들 중 하나의 장치에 대한 파일 전송을 완료한 경우, 상기 복수개의 장치들 중 또다른 장치로 다시 상기 파일을 전송하는 것을 특징으로 한다.Further, a third aspect of the present invention is a method for transferring a file from one device to a plurality of devices in devices connected via a network, wherein the one device is the fastest of the plurality of devices. Transmitting the file, and the fastest device receiving the file transfers the file back to the second fastest device among the plurality of devices, and the second fastest device receiving the file transfers the file to the third fastest device. Transmitting the received file to the slowest device, and when the one device completes the file transfer to one of the plurality of devices, the plurality of devices. It is characterized in that the transfer of the file back to another device.

또한, 본 발명의 제4 측면은 네트워크를 통하여 연결된 장치들에서 하나의 장치로부터 복수개의 장치들로 파일을 전송하기 위한 방법에 있어서, 상기 하나의 장치는 복수개의 장치들에게 상기 파일을 전송하는 단계와, 상기 전송 도중 전송량이 소정의 기준보다 넘을 경우, 상기 하나의 상기 복수개의 장치들 중 가장 빠른 장치에만 상기 파일을 전송하고, 상기 가장 빠른 장치는 상기 하나의 장치로부터 상기 파일을 전송받는 동시에 상기 복수개의 장치들 중 다른 장치들에게 상기 파일을 전송하는 단계를 포함한다.Further, a fourth aspect of the present invention is a method for transferring a file from one device to a plurality of devices in devices connected via a network, wherein the one device transmits the file to the plurality of devices. And when the transmission amount exceeds a predetermined reference during the transmission, transmit the file only to the fastest device of the one of the plurality of devices, and the fastest device receives the file from the one device and simultaneously Transmitting the file to other ones of the plurality of devices.

이러한 본 발명의 제3 측면과 제4 측면에 의하면, 하나의 장치로부터 다수의 장치로 파일을 빠른 속도로 전송할 수 있다.According to the third and fourth aspects of the present invention, it is possible to transfer files from one device to multiple devices at high speed.

이하, 본 발명의 바람직한 실시예를 첨부된 도면을 참고하여 상세히 설명한다.Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings.

도1은 본 발명에 의한 파일 전송 시스템의 전체 구성을 도시한다. 도1에 도시된 바와 같이, 본 발명에 의한 파일 전송 시스템은 네트워크(10)를 통해 연결된 다수의 장치(201, 202, 203, .. 20n)를 포함한다.1 shows the overall configuration of a file transfer system according to the present invention. As shown in FIG. 1, the file transfer system according to the present invention includes a plurality of devices 20 1 , 20 2 , 20 3 ,.. 20 n connected through a network 10.

네트워크(10)는 모뎀과 PSTN, 전용선, ISDN 등을 이용한 유선 인터넷과 셀룰러, PCS, 마이크로웨이브나 위성 통신망 등을 통한 무선 인터넷, LAN(local area network), 인트라넷(intranet), 익스트라넷(extranet) 등 네트워킹이 가능한 모든 환경을 포함한다. 장치(201, 202, 203, .. 20n)는 PC, 워크스테이션, 미니 컴퓨터, 메인프레임 컴퓨터(mainframe computer), 노트북 컴퓨터, 일반 휴대용 통신 단말기, PDA(personal digital assistant), 셋톱 박스(settop box), 디지털 텔레비전, 웹폰(web phone) 등 데이터 통신이 가능한 장치라면 모두 사용가능하다.The network 10 includes a wired Internet using a modem, a PSTN, a dedicated line, and an ISDN, a wireless Internet through a cellular, PCS, microwave or satellite network, a local area network, an intranet, an extranet. Including all possible networking environments. Device (20One, 202, 203, .. 20n) Data such as PC, workstation, mini computer, mainframe computer, notebook computer, general portable communication terminal, PDA (personal digital assistant), settop box, digital television, web phone, etc. Any device that can communicate is available.

장치(201, 202, 203, .. 20n)는 네트워크(10)에 연결된 다른 장치로부터 파일을 전송받거나 다른 장치로 파일을 전송할 수 있으며, 이를 위해 각 장치의 위치, 파일 정보 등을 관리하는 파일 관리 시스템(30)이 존재한다.The devices 20 1 , 20 2 , 20 3 , .. 20 n may receive files from or transfer files to other devices connected to the network 10. There is a file management system 30 to manage.

파일 관리 시스템은 하나의 장치가 여러 장치로부터 파일을 분할하여 전송받을 수 있도록 하기 위해, 여러 장치가 공통으로 가진 파일에는 고유한 파일 ID를 부여하고, 각 장치 사이에 전송가능한 파일들의 리스트를 관리하는 등의 기능을 하는 바, 도1에 도시된 여러 장치 중의 하나가 파일 관리 시스템이 될 수도 있고, 여러 장치가 서로 협력하여 파일 관리 시스템을 구성할 수도 있다.The file management system assigns a unique file ID to a file that is common to multiple devices, and manages a list of files that can be transferred between devices so that one device can divide and receive files from multiple devices. As shown in FIG. 1, one of the various devices shown in FIG. 1 may be a file management system, or several devices may cooperate with each other to form a file management system.

파일 관리 시스템의 여러 유형이 도2 내지 도4에 도시되어 있다.Several types of file management systems are shown in FIGS.

도2는 중앙 관리형 파일 관리 시스템(30)을 나타내는 것으로서, 파일 관리 시스템을 서버와 같은 대형 장치에 구현하는 것이다. 이 경우, 파일 관리 서버가 파일의 전송에 필요한 모든 정보를 관리하며, 장치 사이의 파일 전송을 총괄하여 제어한다.2 shows a centrally managed file management system 30, which implements the file management system in a large apparatus such as a server. In this case, the file management server manages all the information required for file transfer, and collectively controls file transfer between devices.

도3은 분산형 파일 관리 시스템(30)을 나타내는 것으로서, 파일 관리 시스템을 여러 장치에 분산시켜 놓은 것이다. 이 경우, 파일의 공동 전송에 필요한 정보는 각 장치에 분산되어 저장되어 있으며, 파일 전송의 제어는 여러 장치가 협력하여 하게 된다.3 shows a distributed file management system 30 in which the file management system is distributed to various devices. In this case, the information necessary for the joint transmission of the file is distributed and stored in each device, and the control of the file transfer is performed by several devices in cooperation.

도4는 하이브리드 파일 관리 시스템(30)을 나타내는 것으로서, 도2와 도3의 시스템을 결합한 것이다. 이 경우, 파일의 전송에 필요한 정보 관리 및 파일 전송 제어는 주로 파일 관리 시스템(30)에서 이루어지지만, 나머지 장치도 약간의 일을 분담해서 하게 된다.4 shows a hybrid file management system 30, which combines the systems of FIGS. In this case, information management and file transfer control necessary for file transfer are mainly performed in the file management system 30, but the rest of the devices share some work as well.

도2 내지 도4는 파일 관리 시스템의 예시일 뿐이며, 그 외에 여러가지 토폴로지(topology)로 구현될 수 있다.2 to 4 are merely examples of a file management system, and may be implemented in various topologies.

도5는 본 발명에 의하여 파일 전송이 이루어지는 과정을 설명하기 위한 흐름도이다.5 is a flowchart illustrating a process of file transfer according to the present invention.

먼저, 파일을 전송받고자 하는 사용자 장치(20)는 전송받을 수 있는 파일의 리스트를 파일 관리 시스템(30)으로부터 수신하고(S501), 이 중 전송받고자 하는 파일을 지정하여 파일 관리 시스템(30)에 알린다(S502).First, the user device 20 to receive a file receives a list of files that can be received from the file management system 30 (S501), and designates a file to be transferred to the file management system 30. Inform (S502).

파일 관리 시스템(30)은 상기 사용자 장치(20)가 지정한 파일을 저장하고 있는 장치들을 파악하고, 이러한 각 장치의 위치와 전송 속도를 계산하고, 전송 속도가 높은 순으로 장치를 정렬하여 사용자 장치(20)로 전송한다(S503). 이러한 장치 리스트(이하, "후보 서버 리스트" 라 하며, "서버" 는 서버 역할을 하는 장치를 의미함)의 예가 도6에 도시되어 있다. 도6에 도시된 바와 같이, 후보 서버 리스트는 각 서버 별로 서버 ID(601), 서버의 위치(602), 및 서버의 전송 속도(603)를 포함하며, 서버의 전송 속도가 높은 것부터 정렬되어 있다. 서버의 전송 속도(603)는 대역폭과 현재 수행중인 작업의 수 등을 고려하여 계산된다.The file management system 30 identifies the devices storing the file designated by the user device 20, calculates the location and transmission speed of each device, and arranges the devices in the order of the highest transmission speed. 20) (S503). An example of such a device list (hereinafter referred to as "candidate server list" and "server" means a device acting as a server) is shown in FIG. As shown in Fig. 6, the candidate server list includes a server ID 601, a server position 602, and a server transmission speed 603 for each server, and are sorted from the server transmission speed is high. . The transmission rate 603 of the server is calculated in consideration of the bandwidth and the number of tasks currently being performed.

사용자 장치(20)는 상기 후보 서버 리스트를 수신하고, 이로부터 파일을 전송받기에 적합한 서버들을 결정한다(S504). 즉, 사용자 장치(20)는 자신의 대역폭을 최대한 활용할 수 있도록 가장 빠른 장치부터 시작해서 n개의 서버(40)를 지정하는데, 이를 수식으로 나타내면 다음과 같다.The user device 20 receives the candidate server list and determines servers suitable for receiving a file therefrom (S504). That is, the user device 20 designates n servers 40 starting from the fastest device so as to make the best use of its bandwidth.

BW v1+v2+ Λ+vn(vi≥vi+1)BW v 1 + v 2 + Λ + v n (v i ≥v i + 1 )

BW : 사용자 대역폭BW: user bandwidth

vi: i번째 장치의 속도v i : Speed of the i device

위 수식에서와 같이, 사용자 장치(20)가 대역폭을 최대한 사용하기 위해서는 서버(40)의 전송 속도를 더한 값이 대역폭과 가까운 값이 되어야 하고, 대역폭을 완전히 사용하기 위해서는 서버(40)의 전송 속도를 더한 값이 대역폭보다 크거나 같은 것이 바람직하다. 예를 들어, 모뎀 사용자 같이 느린 전송 속도 환경에서는 전송 속도가 가장 빠른 서버(40) 하나 정도만 지정하면 될 것이다.As shown in the above formula, in order for the user device 20 to make full use of the bandwidth, the transmission speed of the server 40 should be added to a value close to the bandwidth, and in order to fully use the bandwidth, the transmission speed of the server 40 It is preferable that the sum of the sum is greater than or equal to the bandwidth. For example, in a slow transmission environment such as a modem user, only one server 40 having the fastest transmission speed may be specified.

사용자 장치(20)가 전송 속도가 빠른 n 개의 서버(40)를 결정한 다음에는, 상기 결정된 서버들(40)로부터 각각 어떤 부분을 어떤 크기로 전송받을 것인지 결정한다(S504). 이 경우, 전송 속도가 빠른 서버(40)로부터는 파일의 많은 양을 전송받고, 전송 속도가 비교적 느린 서버(40)로부터는 파일의 적은 양을 전송는 것이바람직한데, 이를 수식으로 나타내면 다음과 같다.After the user device 20 determines the n servers 40 having high transmission speeds, the user device 20 determines which parts are to be transmitted to which size from the determined servers 40 (S504). In this case, it is preferable to receive a large amount of the file from the server 40 having a high transmission speed, and to transmit a small amount of the file from the server 40 having a relatively low transmission speed.

fi: i번째 장치가 할당받은 파일 조각의 크기f i : Size of file fragment allocated by the i th device

F : 전송 받을 파일 크기F: File size to be transferred

단계(S504)에서 결정된 전송 서버(40) 리스트와 각 서버(40)가 전송할 파일 조각에 대한 정보는 로그 파일에 기록된다. 이 로그 파일은 후에 사용자 장치(20)가 여러 서버(40)로부터 파일 조각을 전송받아서, 하나로 합칠 때 필요하다.The list of the transmission server 40 determined in step S504 and the information about the file fragments to be transmitted by each server 40 are recorded in a log file. This log file is needed later when the user device 20 receives file fragments from several servers 40 and merges them into one.

다음으로, 사용자 장치(20)는 결정된 전송 서버(40)에게 전송할 파일 조각에 대한 정보를 알려주면서 파일 전송을 요청한다(S505).Next, the user device 20 requests a file transfer while notifying the determined transmission server 40 of information on the file fragment to be transmitted (S505).

사용자 장치(20)는 파일 조각을 전송받고, 전송받은 정보를 로그 파일에 기록한다. 이 과정에서 파일 전송에 문제가 있는 서버(40)는 다른 서버(40)로 대체하여 다시 전송하는데, 파일 전송에 대하여는 후에 상세히 설명한다. 또한, 여러 서버에서 전송하는 파일 조각들은 모두 동일한 파일의 조각이어야 하는데, 이러한 파일의 동일성을 보장하기 위한 방법에 대해서는 후에 설명한다.The user device 20 receives the file fragment and records the received information in a log file. In this process, the server 40 having a problem in file transfer is transferred to another server 40 again. The file transfer will be described later in detail. In addition, file fragments transmitted from multiple servers must all be fragments of the same file, and a method for ensuring the sameness of these files will be described later.

여러 서버(40)로부터 파일 조각의 전송이 모두 완료되면, 사용자 장치(20)는 로그 파일에 기초하여 파일 조각들을 하나의 파일로 합치고(S507), 파일 관리 시스템(30)에 파일 전송 완료를 알린다(S508).When the transfer of the file fragments from the various servers 40 is all completed, the user device 20 combines the file fragments into one file based on the log file (S507), and notifies the file management system 30 of the completion of the file transfer. (S508).

도7은 로그 파일의 예를 도시하고 있다. 도7의 로그 파일은 전체가 10000000 바이트인 파일 중 1000001 바이트에서 50000000 바이트까지를 3번째 서버(40)로부터 전송 받으려고 했으나, 중간에 파일 전송에 실패하여 2000578 바이트까지만 전송받고, 나머지는 다른 서버(40)로부터 "조각6" 으로서 전송받은 상황을 나타낸다. 사용자 장치(20)는 도7에 도시된 것과 같은 로그 파일의 전송 정보에 의거하여 파일 조각들을 합쳐 하나의 파일로 만들게 된다.7 shows an example of a log file. The log file of FIG. 7 attempts to receive 1000001 to 50000000 bytes from the third server 40 among the files having a total of 10000000 bytes, but fails to transfer the file in the middle and receives only 2000578 bytes. ) Shows the situation as received as "piece 6". The user device 20 combines the file pieces into a single file based on the transmission information of the log file as shown in FIG.

파일 전송이 완료된 후, 사용자 장치(20)에는 전송받은 파일이 고유의 파일 ID로 저장되게 되며, 파일 관리 시스템(30)은 상기 사용자 장치(20)가 상기 파일 ID를 가진 파일을 저장하고 있다는 것을 기억하게 된다. 상기 전송받은 파일이 사용자의 파일 수정, 위치 변경, 손상 등으로 인해 파일의 동일성을 보장할 수 없을 경우에는 파일 공유 환경으로부터 제거 혹은 배제할 수 있다.After the file transfer is completed, the received file is stored in the user device 20 with a unique file ID, and the file management system 30 indicates that the user device 20 stores a file having the file ID. I will remember. If the received file cannot guarantee the identity of the file due to a user's file modification, location change, or damage, the file may be removed or excluded from the file sharing environment.

이제, 본 발명에 의한 파일 조각 전송 단계(도5의 S506)에 대해 상세히 설명한다.Now, the file fragment transfer step (S506 in Fig. 5) according to the present invention will be described in detail.

사용자 장치(20)는 각 서버로부터 일정 크기의 패킷을 전송받을 때마다 전송 속도를 평가함으로써, 이를 전송 관리에 사용한다. 서버의 전송 속도는 항상 일정한 것이 아니라, 중간에 계속 변화하기 때문에, 파일 조각 전송 도중에 심각하게 속도가 떨어지거나 전송이 불안정한 서버가 있다면, 이 서버를 다른 서버로 교체해야 하기 때문이다.The user device 20 evaluates the transmission rate each time a predetermined size packet is received from each server, and uses the same for the transmission management. The transfer speed of a server is not always constant, but it keeps changing in the middle, so if there is a server that is seriously slow or unstable during file fragment transfer, you need to replace it with another server.

전송 서버를 교체하기 위해서는 도6에 도시된 것과 같은 후보 서버 리스트를이용하는 바, 후보 서버 리스트에서 전송 속도가 비교적 빠른 다른 서버를 결정한 후, 상기 문제가 있는 서버가 할당량 중 아직 전송하지 못한 나머지 부분을 전송하도록 한다. 문제가 있는 서버를 대체하는 서버는 복수개일 수 있다.In order to replace the transmission server, a candidate server list as shown in FIG. 6 is used. After determining another server having a relatively high transmission speed in the candidate server list, the server having the problem has not yet transmitted the remaining portion of the quota. Send it. There may be more than one server to replace a problematic server.

만일 후보 서버 리스트에 대체할 만한 서버가 존재하지 않는다면, 사용자 장치(20)는 파일 관리 시스템에 요청하여 갱신된 후보 서버 리스트를 얻고, 이로부터 대체 서버를 찾는다.If there is no substitute server in the candidate server list, the user device 20 makes a request to the file management system to obtain an updated candidate server list, and finds an alternative server therefrom.

다음으로, 서버가 전송하는 파일 조각들이 모두 동일한 파일의 조각임을 보장하는 방법에 대하여 설명한다.Next, a description will be given of a method for ensuring that the file fragments transmitted by the server are all fragments of the same file.

전술한 바와 같이, 하나의 파일을 여러 장치들이 분할하여 전송하기 위해서는 장치들이 모두 같은 파일의 조각들을 전송한다는 것을 보장하여야만 한다. 만일, 여러 장치들이 서로 동일하지 않은 파일의 조각들을 전송하고, 사용자 장치가 이 조각들을 병합하여 하나의 파일로 만든다면, 전송된 파일은 사용자가 원하는 파일이 아닌 손상된 파일이 될 것이다.As mentioned above, in order for multiple devices to split and transmit a file, it must be ensured that the devices all transmit pieces of the same file. If several devices transfer pieces of files that are not identical to each other, and the user device merges them into a single file, the transferred file will be a corrupted file rather than the user's desired file.

이러한 파일의 동일성을 보장하기 위하여, 본 발명에서는 파일 전송을 받을 때 메타파일에 원본 파일의 정보를 기록해두고, 타사용자에게 파일 조각을 전송할 때, 전송할 파일을 메타파일에 저장된 정보와 비교하는 방법을 사용한다. 만일 비교 결과, 동일한 파일이면 전송하고, 동일한 파일이 아니라면 파일 관리 시스템에서 새로운 ID를 부여받아 새로운 파일로 관리한다. 파일이 동일한지 여부는 구체적으로 다음과 같은 방법에 의해 판단될 수 있다.In order to guarantee the sameness of the file, the present invention records the information of the original file in the metafile when receiving the file transfer, and compares the file to be transmitted with the information stored in the metafile when transmitting the file fragment to another user use. If the comparison results in the same file, the file is transferred. If the file is not the same file, the file management system receives a new ID and manages the file as a new file. Whether the files are identical may be specifically determined by the following method.

첫째, 파일의 크기 정보를 이용하여 파일의 크기가 동일하면, 파일이 동일하다고 판단한다.First, if the file size is the same using the file size information, it is determined that the file is the same.

둘째, 파일을 m 개의 조각으로 나눈 후, 각 조각의 일정부분에 대한 정보를 메타파일에 기록해 둔다. 상기 파일을 다른 장치로 전송할 때에는 전송할 조각의 일정 부분을 메타파일에 기록된 정보와 비교하여 동일하면, 파일이 동일하다고 판단한다. 이 때, 상기 일정부분의 위치와 크기는 파일 관리 시스템의 필요에 따라 조정될 수 있다.Second, divide the file into m pieces, and record information about a portion of each piece in the metafile. When the file is transmitted to another device, it is determined that the file is the same if a certain portion of the fragment to be transmitted is compared with the information recorded in the metafile. At this time, the position and size of the predetermined portion can be adjusted according to the needs of the file management system.

셋째, 파일을 m 개의 조각으로 나눈 후, 각 조각의 모든 내용을 코드화(message digest)하여 메타 파일에 기록하고, 상기 파일을 다른 장치로 추후 전송해 줄 때에는, 전송해 줄 조각을 코드화한 후에 메타 파일에 기록한 코드와 비교한다. 만약 코드가 다르다면, 파일이 동일하지 않은 것으로 판단하고 그 조각을 전송하지 않으며, 전체 시스템에서 새로운 파일로 관리한다.Third, after dividing the file into m pieces, all contents of each piece are coded and recorded in a meta file, and when the file is later transferred to another device, the file to be sent is encoded and then meta Compare to the code written to the file. If the code is different, it determines that the file is not the same and does not send the fragment, but manages it as a new file on the whole system.

만일 메타 파일에 조각의 모든 내용을 기록한 후에 비교한다면 파일의 동일성을 100% 확실히 보장할 수 있겠지만, 이렇게 하는 경우 메타 파일의 크기가 원본 파일의 크기와 같아져 자원 낭비가 심하다. 따라서, 전송 받은 조각의 내용을 적당한 크기의 코드로 바꾼 후, 메타 파일에 기록하는 방법을 사용하는 것이다.If you compare all the pieces of the fragments in the meta file and then compare them, you will be 100% sure of the identity of the files, but doing so will waste resources because the meta file is the same size as the original file. Therefore, the content of the received fragment is changed to a code of a suitable size, and then recorded in a meta file.

파일의 조각을 코드화하는 방법을 식으로 표현하면 다음과 같다. Here's how to code fragments of a file:

코드화 함수와 코드의 크기는 파일 관리 시스템이 자신의 목적에 맞추어 알맞은 것을 선택하는데, 가장 간단한 코드화 함수로서 내용들의 합을 구하는 함수를 예로 들 수 있다. 동일성 보장에 더 큰 무게를 둔다면 내용 손실이 전혀 없는 압축 방법을 코드화 함수로 사용할 수도 있다.The coding functions and code sizes are chosen by the file management system for their purposes. For example, the simplest coding function is a function that sums the contents. If you put more weight on guaranteeing identity, you can use a compression method with no content loss as the coding function.

도8은 도5에 도시된 과정에 의해 사용자 장치가 여러 개의 서버로부터 파일 조각들을 전송받아 하나의 파일로 병합하는 모습을 나타내는 도면이다.FIG. 8 is a diagram illustrating a state in which a user device receives file pieces from multiple servers and merges them into one file by the process illustrated in FIG. 5.

도8에서 다섯개의 서버(81-85)가 사용자 장치(20)로 각각 파일 조각을 전송하는데, 전송 속도가 빠른 서버가 더 많은 분량을 전송하게 된다. 도8에서는 가장 많은 분량을 전송하는 서버(83)가 가장 속도가 빠르고, 가장 적은 분량을 전송하는 서버(81)가 가장 속도가 느릴 것이다.In FIG. 8, five servers 81-85 transmit file fragments to the user device 20, respectively, and a server having a high transmission speed transmits a larger amount. In FIG. 8, the server 83 which transmits the most amount is the fastest, and the server 81 which transmits the least amount is the slowest.

이와 같이, 다섯개의 서버(81-85)들이 협력하여 하나의 파일을 전송함으로써, 사용자 장치(20)는 자신이 사용할 수 있는 최대한의 대역폭을 사용할 수 있고, 이에 따라 파일 전송 속도가 현저하게 향상될 수 있다.As such, by the five servers 81-85 collaboratively transmitting one file, the user device 20 can use the maximum bandwidth available to it, and thus the file transfer speed can be significantly improved. Can be.

지금까지는 하나의 완전한 파일을 여러 개의 서버로부터 분할하여 전송받는 방법을 설명하였으나, 파일이 실제로 여러 곳에 분할되어 저장되어 있는 경우에도 마찬가지로 본 발명이 사용될 수 있다. 따라서, 본 발명의 파일 공동 전송 방법 및 시스템은 대용량 파일의 분산 저장 방법으로서 사용될 수 있는 바, 이하 이에 대해 설명한다.Up to now, a method of receiving a single complete file from multiple servers has been described. However, the present invention can be used similarly when the file is actually divided and stored in various places. Therefore, the file joint transfer method and system of the present invention can be used as a distributed storage method of a large file, which will be described below.

파일의 크기가 커질 경우, 장치에 따라서 파일 전체를 저장할 수 없는 경우가 발생할 수 있는데, 이 경우 파일 전체를 저장할 수 없는 장치(장치 A라 하자)는 대용량 파일을 분할하여 일정 부분만을 저장하고 나머지 부분은 다른 장치들이 저장하고 있도록 한다. 그리고 장치 A가 상기 대용량 파일의 내용을 보고자 할 때는 본 발명에 의한 파일 관리 시스템을 이용하여 파일의 다른 부분들을 전송받음으로써, 마치 자신이 전체 파일을 저장하고 있는 것처럼 파일의 내용을 볼 수 있다. 이 때, 여러 장치에 분산되어 저장된 파일의 여러 부분은 파일 관리 시스템에 의해 각각 일반적인 파일로 취급되며, 파일 전송 과정 또한, 앞에서 도5를 통하여 설명한 전송 과정과 동일하다.If the file size increases, the entire file may not be able to be stored, depending on the device.In this case, a device that cannot store the entire file (referred to as device A) may divide a large file and store only a portion of the file. Allows other devices to store it. When the device A wants to see the contents of the large file, the file management system according to the present invention receives the other parts of the file, so that the contents of the file can be viewed as if the user has stored the entire file. At this time, the various parts of the files distributed and stored in the various devices are each treated as a general file by the file management system, and the file transfer process is also the same as the transfer process described above with reference to FIG.

예를 들어, 장치 A가 어떤 대용량 파일을 모두 저장할 수 없어서, 이 파일을 다루기 적당한 크기가 되도록 10개의 조각으로 분할하여 자신을 포함한 여러 장치에 분산 저장하도록 했다면, 장치 A는 본 발명에 의한 파일 관리 시스템을 이용하여 자신이 저장하고 있지 않은 파일의 나머지 부분을 전송받음으로써, 전체 파일을 볼 수 있으며, 파일 시스템은 10개의 조각들을 10개의 일반적인 파일처럼 인식하여, 도5에 도시된 과정에 의해 장치 A로 파일을 전송한다.For example, if device A could not store any large files and had to divide the file into 10 pieces so that it could be handled appropriately and distributed it to several devices including itself, device A could manage the file according to the present invention. By using the system to receive the rest of the file which is not stored by itself, the entire file can be viewed, and the file system recognizes 10 pieces as 10 general files, and the device is shown by the process shown in FIG. Send the file to A.

이 때, 파일 공유 시스템이 이러한 10개의 독립적인 파일들을 이어진 파일 조각으로 관리할 수 있어야 한다. 또한, 전체 파일을 이용하는 장치 A는 파일의 일부분을 저장하게 되는데 다른 장치들이 많이 가지고 있지 않은 부분을 저장하는 것이 효율적이다. 이를 위해서는, 장치 A가 10개의 파일에 대하여 각각 도6에 도시된 것과 같은 후보 서버 리스트를 파일 관리 시스템에게 요청하고, 각 파일 부분들을 보유하고 있는 서버의 개수를 알아낸 후, 보유 서버 개수가 가장 적은 파일 부분을 저장한다.At this point, the file-sharing system must be able to manage these 10 independent files in successive file fragments. In addition, the device A using the entire file stores a portion of the file, and it is more efficient to store a portion that other devices do not have. To do this, the device A requests the file management system for a list of candidate servers as shown in Fig. 6 for each of the 10 files, finds the number of servers holding the respective file portions, and then the number of retained servers is the most. Save a small portion of the file.

지금까지는 동일한 파일이 여러 서버에 분산되어 존재한다는 것을 전제로, 여러 서버로부터 파일의 조각들을 전송받아 이를 하나의 파일로 합치는 방법(다:1 전송 상황)을 설명하였다.So far, we have described how to receive pieces of a file from multiple servers and combine them into a single file, assuming the same file is distributed across multiple servers.

그러나, 파일이 최초로 생성되었을 때는 하나의 장치에만 이 파일이 존재할 것이다. 따라서, 이하에서는 파일을 여러 장치로 전송하는 경우(1: 다 전송 상황), 전송 속도를 향상시키기 위한 두가지 방법에 대하여 설명한다.However, when the file is first created, it will only exist on one device. Therefore, the following describes two methods for improving the transmission speed when a file is transferred to multiple devices (1: multi-transmission situation).

첫째, 이 방법은 도2에 도시된 것과 같은 중앙 집중형 파일 관리 시스템이 장치들의 속도를 관리하는 경우로서, 가장 빠른 장치부터 파일을 전송받을 수 있도록 하는 것이다.First, this method is a case where a centralized file management system as shown in FIG. 2 manages the speed of devices, so that files can be transmitted from the fastest device.

즉, 파일 관리 시스템은 파일을 전송받고자 하는 장치들의 전송 속도를 구하여 속도순으로 정렬하고, 이 리스트를 파일을 저장하고 있는 장치(서버)와 파일을 전송받고자 하는 다수의 장치들에게 보낸다. 이 리스트를 참조하여, 서버는 가장 빠른 장치로 파일을 전송하고, 가장 빠른 장치는 두번째 빠른 장치에 전송하고, 두번째 빠른 장치는 세번째 빠른 장치로 전송하는 식으로 파일을 전송한다. 전송 도중 첫번째 빠른 장치가 파일의 전송이 완료되면 전송완료 메시지를 서버에게 통지하고, 이 장치는 또 다른 서버 역할을 하도록 하고, 원래 서버였던 장치는 두번째빠른 장치에게도 파일을 전송할 수 있도록 한다.That is, the file management system obtains the transmission speeds of the devices to receive the file, sorts them in the order of speed, and sends the list to the device (server) storing the file and the plurality of devices to receive the file. Based on this list, the server sends the file to the fastest device, the fastest device to the second fast device, and the second fast device to the third fast device. During the transfer, the first fast device notifies the server of the completion message when the file is complete, which acts as another server, and the device that was originally the server can transfer the file to the second fast device.

도9를 참조하여 예를 들어 설명하면 다음과 같다. 현재 0번 장치만이 특정 파일을 가지고 있고, 속도순으로 정렬된 1번에서 100번까지의 장치가 0번 장치로부터 이 파일을 전송받고자 한다고 하자. 0번 장치는 1번 장치로 파일을 전송하고, 1번 장치는 2번 장치에게 파일을 전송하는 식으로, 100번 장치까지 이어진다. 전송 도중에 1번 장치에 대한 전송이 완료되면, 1번 장치는 서버 역할을 하도록 하고, 원래 서버였던 0번 장치는 2번 장치에게도 파일을 전송할 수 있도록 한다. 이러한 식으로 하여, 계속 서버수가 증가함으로써, 전송 상황은 점차 다:1 전송 상황으로 되고, 이에 따라 파일의 전송 속도는 향상된다.An example will be described with reference to FIG. 9. Suppose only device 0 currently has a specific file, and devices 1 through 100, sorted by speed, want to receive this file from device 0. Device 0 sends a file to device 1, and device 1 sends a file to device 2, which extends to device 100. If the transmission to device 1 is completed during the transmission, device 1 acts as a server, and device 0, which was the original server, can also transfer files to device 2. In this way, as the number of servers continues to increase, the transfer situation gradually becomes a one-to-one transfer situation, thereby improving the file transfer speed.

둘째, 이 방법은 파일 관리 시스템이 장치의 속도를 관리할 필요가 없는 방법으로서, 서버 역할을 하는 장치(0번 장치라 하자)가 자신에게 전송을 요구하는 장치들이 자신의 전송가능한 일정 용량보다 많아지면, 가장 빠른 속도를 가진 장치(1번 장치라 하자)에만 집중적으로 전송을 해주고, 나머지 장치들에게는 거의 전송을 해 주지 않아, 나머지 장치들이 다른 서버를 찾아보도록 유도한다. 한편, 0번 장치는 파일 관리 시스템에게 새로운 서버 역할을 할 장치로서 현재 전송해주고 있는 1번 장치를 알려준다.Secondly, this method does not require the file management system to manage the speed of the device. When the device acting as a server (referred to as device 0) requires more than a certain amount of devices that can be sent to it On the ground, it only transmits to the device with the fastest speed (refer to device # 1), and rarely transmits to the rest of the devices, leading the rest of the devices to look for another server. On the other hand, device 0 informs the file management system of device 1 as a device that will act as a new server.

파일 관리 시스템은 다른 장치들이 서버 역할을 하는 장치의 리스트를 요구할 때, 1번 장치를 리스트에 올려서 보내주고, 다른 장치들은 이 리스트를 보고, 1번 장치로부터 전송받는 것을 시도하게 된다.When the file management system requests a list of devices acting as a server, the file management system sends device 1 to the list, and other devices view this list and attempt to receive from device 1.

따라서 1번 장치는 자신이 현재까지 전송받은 데이터의 범위내에서 다른 장치들에게 전송을 해주며, 동시에 0번 장치로부터 전송을 받는다. 만일 1번 장치에 전송을 요구하는 장치가 너무 많으면 파일 관리 시스템에게 자신이 전송을 해 주고 있는 장치(2번 장치라 하자)를 새로운 서버 역할을 할 장치로서 알려준다. 이런 식으로 해서, 1:다 전송 상황은 점차 다:1 전송 상황으로 바뀌게 되고, 이에 따라 전송 속도는 향상된다.Therefore, device 1 transmits to other devices within the range of data it has received so far, and simultaneously receives transmission from device 0. If there are too many devices requesting transmission in device 1, the file management system is informed of the device to which it is transmitting (called device 2) as a new server. In this way, the 1: multi transmission situation gradually changes to a multi: 1 transmission situation, thereby improving the transmission speed.

지금까지는 본 발명을 파일이 다운로드(download)되는 경우를 중심으로 설명하였으나, 다운로드뿐만 아니라, 스트리밍(streaming) 전송의 경우에도 이용될 수 있다. 스트리밍 기술은 비디오나 오디오 컨텐츠를 시청하기 위해 대용량의 파일을 다운로드할 필요가 없이, 데이터를 수신하면서 비디오나 오디오 컨텐츠를 재생할 수 있는 기술이다. 이 경우에도 파일을 다운로드하는 경우와 마찬가지로 본 발명이 그대로 적용될 수 있다.So far, the present invention has been described with a focus on the case where a file is downloaded, but may be used not only for downloading but also for streaming transmission. Streaming technology is a technology that can play video or audio content while receiving data without having to download a large file to watch the video or audio content. In this case, as in the case of downloading a file, the present invention can be applied as it is.

이상 본 발명을 실시예를 사용하여 설명하였지만, 본 발명의 범위는 특정 실시예에 한정되는 것은 아니며, 첨부된 특허청구범위에 의해서 해석되어야 할 것이다.Although the present invention has been described using the examples, the scope of the present invention is not limited to the specific embodiments, and should be interpreted by the appended claims.

본 발명에 의한 파일 전송 시스템 및 방법은 사용자들에게 하나의 서버에만 의지하여 전체 파일을 전송받는 것이 아니라, 여러 개의 서버로부터 파일을 분할하여 전송받을 수 있게 함으로써, 파일 전송 속도를 현저하게 향상시킨다.The file transfer system and method according to the present invention improves the file transfer speed by allowing users to divide and receive files from multiple servers, instead of receiving the entire file only on one server.

또한, 전송 도중에 여러 개의 서버 중 하나의 서버에 문제가 생기는 경우, 다른 서버로 대체하여 전송하게 함으로써, 사용자는 서버의 장애에 관계없이(fault-tolerant) 안정적으로 파일을 전송받을 수 있도록 한다.In addition, when a problem occurs in one of the multiple servers during the transfer, the transfer to the other server, so that the user can receive the file stably (fault-tolerant) stably.

또한, 파일이 하나의 장치에만 존재하여 하나의 장치로서 여러 장치로 파일을 전송해야 하는 경우에도 파일의 전송 속도를 향상시킬 수 있다.In addition, even when a file exists in only one device and needs to be transferred to multiple devices as one device, the file transfer speed can be improved.

본 발명에 의한 파일 전송 시스템 및 방법은 기존에 이용하기 어려운 대용량의 파일을 이용할 수 있을 뿐만 아니라, 스트리밍 서비스에도 이용할 수 있다.The file transfer system and method according to the present invention can not only use a large file that is difficult to use in the existing, but also can be used for streaming services.

Claims (25)

네트워크를 통해 연결된 장치들간에 파일을 전송하기 위한 방법에 있어서,In the method for transferring files between devices connected via a network, 사용자 장치가 전송받고자 하는 파일을 선택하는 단계와,Selecting a file to be transmitted by the user device; 상기 파일을 저장하고 있는 장치들에 대한 정보를, 파일 전송을 관리하는 파일 관리 시스템으로부터 수신하는 단계와,Receiving information about devices storing the file from a file management system managing file transfer, 상기 파일을 저장하고 있는 장치들 중에 상기 파일을 전송할 하나 이상의 서버를 결정하는 단계와,Determining one or more servers to which the file is to be transferred among the devices storing the file; 상기 하나 이상의 서버에게 각각 상기 파일의 어느 일부분을 전송하도록 요청하는 단계와,Requesting each of the one or more servers to transmit any portion of the file; 상기 하나 이상의 서버로부터 각각 상기 요청된 파일의 일부분들을 전송받는 단계와,Receiving portions of the requested file from the one or more servers, respectively; 상기 전송된 파일의 일부분들을 하나의 파일로 병합하는 단계를 포함하는 파일 전송 방법.Merging portions of the transferred file into one file. 제1항에 있어서, 상기 파일을 저장하고 있는 장치들 중에서 하나 이상의 서버를 결정하는 것은, 가장 속도가 빠른 장치부터 선택하는 것을 특징으로 하는 파일 전송 방법.The method of claim 1, wherein determining one or more servers among the devices storing the file is selected from the fastest device. 제1항에 있어서, 상기 파일의 어느 일부분을 상기 하나 이상의 서버에게 각각 요청할 때, 서버의 속도가 빠를수록, 요청하는 파일의 조각의 크기가 커지는 것을 특징으로 하는 파일 전송 방법.2. The method of claim 1, wherein when requesting a portion of the file to each of the one or more servers, the faster the server, the larger the size of the requested file fragment. 제1항에 있어서, 상기 하나 이상의 서버로부터 각각 상기 요청된 파일의 일부분을 전송받는 경우, 전송받은 부분에 대한 정보를 로그 파일에 기록하는 단계를 더 포함하는 파일 전송 방법.The method of claim 1, further comprising recording information on the received portion in a log file when receiving a portion of the requested file from each of the one or more servers. 제4항에 있어서, 상기 사용자 장치가 상기 전송된 파일의 일부분을 병합하여 하나의 파일로 만들 때, 상기 로그 파일을 참조하는 것을 특징으로 하는 파일 전송 방법.The method of claim 4, wherein when the user device merges a portion of the transmitted file into a single file, the log file refers to the log file. 제1항에 있어서, 상기 하나의 파일을 병합하는 단계 이후에 상기 파일 관리 시스템으로 파일 전송 완료를 알리는 단계를 더 포함하는 파일 전송 방법.The method of claim 1, further comprising notifying the file management system of completion of file transfer after merging the one file. 제1항에 있어서, 상기 하나 이상의 서버로부터 각각 상기 요청된 파일의 일부분을 전송받는 단계에서, 일정 크기의 패킷을 전송받을 때마다 각 서버의 전송 속도를 체크하는 것을 특징으로 하는 파일 전송 방법.The method of claim 1, wherein in the step of receiving a portion of the requested file from each of the one or more servers, the transmission speed of each server is checked whenever a packet of a predetermined size is received. 제7항에 있어서, 상기 전송 속도가 소정의 값 이상으로 떨어지는 서버가 존재하는 경우, 상기 서버를 다른 서버로 대체하는 것을 특징으로 하는 파일 전송 방법.8. The method of claim 7, wherein if there is a server whose transmission rate falls below a predetermined value, the server is replaced with another server. 제8항에 있어서, 상기 대체 서버가 존재하지 않는 경우, 상기 파일 관리 시스템으로부터 상기 파일을 저장하고 있는 장치들 및 상기 각 장치의 속도에 관한 정보를 다시 수신하여, 이로부터 대체 서버를 결정하는 것을 특징으로 하는 파일 전송 방법.10. The method of claim 8, wherein if the replacement server does not exist, receiving information about the devices storing the file and the speed of each device from the file management system to determine the replacement server therefrom. File transfer method characterized in that. 제1항에 있어서, 상기 장치는 개인용 컴퓨터, 워크스테이션, 미니 컴퓨터, 노트북 컴퓨터, PDA 등을 포함하는 데이터 통신이 가능한 장치인 것을 특징으로 하는 파일 전송 방법.The method of claim 1, wherein the device is a device capable of data communication, including a personal computer, workstation, mini computer, notebook computer, PDA, and the like. 제1항에 있어서, 상기 네트워크는 유선 인터넷, 무선 인터넷, LAN(Local Area Network), 인트라넷(intranet), 익스트라넷(extranet)을 포함하는 네트워킹이 가능한 환경을 특징으로 하는 파일 전송 방법.The method of claim 1, wherein the network includes a wired Internet, a wireless Internet, a local area network (LAN), an intranet, and an extranet. 제1항에 있어서, 상기 전송받고자 하는 파일은 상기 파일을 저장하고 있는 장치들내에서 공통된 파일 ID를 가지고 있는 것을 특징으로 하는 파일 전송 방법.The method of claim 1, wherein the file to be transmitted has a common file ID in devices storing the file. 제1항에 있어서, 상기 파일 관리 시스템은 상기 네트워크에 연결된 장치들 중의 하나인 것을 특징으로 하는 파일 전송 방법.The method of claim 1, wherein the file management system is one of devices connected to the network. 제1항에 있어서, 상기 파일 관리 시스템은 상기 네트워크에 연결된 장치들간에 분산되어 존재하는 것을 특징으로 하는 파일 전송 방법.The method of claim 1, wherein the file management system is distributed among devices connected to the network. 제1항에 있어서, 상기 파일을 저장하고 있는 장치들에 대한 정보는 장치 ID, 장치의 위치, 장치의 전송 속도를 포함하는 것을 특징으로 하는 파일 전송 방법.The method of claim 1, wherein the information about the devices storing the file includes a device ID, a location of the device, and a transmission speed of the device. 제1항에 있어서, 상기 사용자 장치는 상기 병합된 하나의 파일에 대한 정보를 메타 파일에 저장하는 단계를 더 포함하는 것을 특징으로 하는 파일 전송 방법.The method of claim 1, wherein the user device further comprises storing information about the merged single file in a meta file. 제16항에 있어서, 상기 병합된 하나의 파일을 다른 장치로 다시 전송할 때, 상기 파일에 대한 정보가 상기 메타 파일에 기록된 정보와 동일한지 확인한 후 전송하는 것을 특징으로 하는 파일 전송 방법.The method of claim 16, wherein when transmitting the merged one file to another device, the file information is transmitted after checking whether the information on the file is the same as the information recorded in the meta file. 제1항에 있어서, 상기 전송은 다운로드와 스트리밍 기술(streaming technology)을 포함하는 것을 특징으로 하는 파일 전송 방법.10. The method of claim 1, wherein said transmission comprises downloading and streaming technology. 하나의 파일이 네트워크를 통해 연결된 다수의 장치들에 분산되어 저장된 경우, 상기 파일을 호출하기 위한 방법에 있어서,When a file is distributed and stored in a plurality of devices connected via a network, in a method for calling the file, 상기 파일을 구성하는 각 부분을 저장하고 있는 장치들에 대한 정보를, 파일 전송을 관리하는 파일 관리 시스템으로부터 수신하는 단계와,Receiving information about devices storing respective parts of the file from a file management system managing file transfer; 상기 파일의 각 부분에 대하여, 상기 각 부분을 저장하고 있는 장치들 중에상기 각 부분을 전송할 하나 이상의 서버를 결정하는 단계와,For each part of the file, determining one or more servers to which each part is to be transmitted, from among devices storing the part; 상기 파일의 각 부분에 대하여 상기 파일의 각 부분을 상기 결정된 하나 이상의 서버로부터 분산하여 전송받는 단계와,Receiving and distributing each part of the file from each of the determined one or more servers for each part of the file; 상기 전송된 파일의 각 부분을 하나의 파일로 병합하는 단계를 포함하는 파일 호출 방법.Merging each portion of the transferred file into one file. 제19항에 있어서, 상기 파일을 구성하는 각 부분은 동일한 파일에 속함을 나타내는 것을 특징으로 하는 파일 호출 방법.20. The method as claimed in claim 19, wherein each part constituting the file belongs to the same file. 네트워크를 통하여 연결된 장치들에서 하나의 장치로부터 복수개의 장치들로 파일을 전송하기 위한 방법에 있어서,A method for transferring files from one device to a plurality of devices in devices connected over a network, the method comprising: 상기 하나의 장치는 상기 복수개의 장치들 중 가장 빠른 장치로 상기 파일을 전송하는 단계와,The one device transferring the file to the fastest one of the plurality of devices; 상기 파일을 전송받은 가장 빠른 장치는 상기 복수개의 장치들 중 두번째로 빠른 장치로 다시 파일을 전송하고, 상기 파일을 전송받은 두번째로 빠른 장치는 세번째로 빠른 장치로 상기 전송받은 파일을 전송하는 식으로, 가장 속도가 느린 장치까지 파일을 전송하는 단계를 포함하고,The fastest device receiving the file transfers the file back to the second fastest device among the plurality of devices, and the second fastest device receiving the file transfers the received file to the third fastest device. Transferring the files up to the slowest device; 상기 하나의 장치가 상기 복수개의 장치들 중 하나의 장치에 대한 파일 전송을 완료한 경우, 상기 복수개의 장치들 중 또다른 장치로 다시 상기 파일을 전송하는 것을 특징으로 하는 파일 전송 방법.And when the one device completes the file transfer for one of the plurality of devices, transfers the file back to another one of the plurality of devices. 네트워크를 통하여 연결된 장치들에서 하나의 장치로부터 복수개의 장치들로 파일을 전송하기 위한 방법에 있어서,A method for transferring files from one device to a plurality of devices in devices connected over a network, the method comprising: 상기 하나의 장치는 복수개의 장치들에게 상기 파일을 전송하는 단계와,The one device transmits the file to a plurality of devices; 상기 전송 도중 전송량이 소정의 기준보다 넘을 경우, 상기 하나의 상기 복수개의 장치들 중 가장 빠른 장치에만 상기 파일을 전송하고, 상기 가장 빠른 장치는 상기 하나의 장치로부터 상기 파일을 전송받는 동시에 상기 복수개의 장치들 중 다른 장치들에게 상기 파일을 전송하는 단계를 포함하는 파일 전송 방법.When the transmission amount exceeds the predetermined criterion during the transmission, the file is transmitted only to the fastest device among the plurality of devices, and the fastest device receives the file from the one device and simultaneously receives the file. Transmitting the file to other ones of the devices. 제21항 또는 제22항에 있어서, 상기 전송은 다운로드와 스트리밍 기술(streaming technology)을 포함하는 것을 특징으로 하는 파일 전송 방법.23. The method of claim 21 or 22, wherein said transmission comprises downloading and streaming technology. 요청된 파일과 동일한 파일을 전송하는 방법에 있어서,In the method of transferring the same file as the requested file, 파일을 소정의 조각으로 나누어, 각 조각의 소정의 부분의 정보를 메타 파일에 저장하는 단계와,Dividing the file into predetermined pieces, and storing information of a predetermined portion of each piece in a meta file; 상기 파일에 대한 전송 요청에 응답하여, 상기 파일을 상기 소정의 조각으로 나누어 각 조각의 상기 소정의 부분의 정보를 추출하는 단계와,In response to the transfer request for the file, dividing the file into the predetermined pieces and extracting information of the predetermined portion of each piece; 상기 추출된 정보와 상기 메타 파일에 기록된 정보와 비교하는 단계와,Comparing the extracted information with information recorded in the meta file; 상기 비교 결과 동일하다면, 상기 파일을 전송하고, 동일하지 않다면, 상기 파일에 별도의 파일 ID를 부여하는 단계를 포함하는 파일 전송 방법.If the comparison result is the same, transmitting the file, and if not the same, assigning a separate file ID to the file. 요청된 파일과 동일한 파일을 전송하는 방법에 있어서,In the method of transferring the same file as the requested file, a) 파일을 소정의 조각으로 나누어, 각 조각을 코드화 함수에 의해 코드화한 후, 각 코드를 메타 파일에 저장하는 단계와,a) dividing the file into predetermined pieces, encoding each piece by a coding function, and storing each code in a meta file; b) 상기 파일에 대한 전송 요청에 응답하여, 상기 파일을 상기 소정의 조각으로 나누어 각 조각을 상기 코드와 함수로 코드화하는 단계와,b) in response to a transfer request for the file, dividing the file into the predetermined fragments and encoding each fragment into the code and function; c) b)단계에서 코드화된 결과와 상기 메타 파일에 기록된 정보와 비교하는 단계와,c) comparing the result coded in step b) with the information recorded in the meta file; d) 상기 비교 결과 동일하다면, 상기 파일을 전송하고, 동일하지 않다면, 상기 파일에 별도의 파일 ID를 부여하는 단계를 포함하는 파일 전송 방법.d) if the comparison result is the same, transmitting the file, and if not the same, assigning a separate file ID to the file.
KR10-2001-7011726A 2001-09-14 2001-03-28 a method of collaborating in transferring a file in a networking environment KR100521361B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR10-2001-7011726A KR100521361B1 (en) 2001-09-14 2001-03-28 a method of collaborating in transferring a file in a networking environment

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2001-7011726A KR100521361B1 (en) 2001-09-14 2001-03-28 a method of collaborating in transferring a file in a networking environment

Publications (2)

Publication Number Publication Date
KR20030014094A true KR20030014094A (en) 2003-02-15
KR100521361B1 KR100521361B1 (en) 2005-10-14

Family

ID=27725603

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2001-7011726A KR100521361B1 (en) 2001-09-14 2001-03-28 a method of collaborating in transferring a file in a networking environment

Country Status (1)

Country Link
KR (1) KR100521361B1 (en)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040001336A (en) * 2002-06-27 2004-01-07 주식회사 케이티 Method of push-style contents delivery over the internet using P2P model
KR100557699B1 (en) * 2001-07-21 2006-03-07 (주)와이즈인터네셔날코리아 apparatus for transmitting image using local network
KR100772385B1 (en) * 2005-12-07 2007-11-01 삼성전자주식회사 Method and apparatus for transmitting and receiving content on distributed storage system
KR100911805B1 (en) * 2002-09-27 2009-08-12 주식회사 케이티 Update method of routing data between web users and server farms
US7640246B2 (en) 2002-10-10 2009-12-29 Nhn Corporation Method and system for providing content
KR100987653B1 (en) * 2009-11-17 2010-10-13 주식회사 다이나맥스 Digital sinage system
KR101006539B1 (en) * 2009-02-06 2011-01-07 (주)씨디네트웍스 Method for selecting a maximum count block of a file in parallel download, method for file parallel downloading using by the same and record media recorded program for realizing the same
KR20120025011A (en) * 2007-09-04 2012-03-14 애플 인크. Digital asset delivery to different devices
KR101123750B1 (en) * 2003-09-30 2012-03-16 소니 주식회사 Content acquisition method
KR101230923B1 (en) * 2008-02-15 2013-02-07 에스케이텔레콤 주식회사 System and Method for Mixing Moving Picture Data

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100929031B1 (en) 2007-09-17 2009-11-26 (주)씨디네트웍스 Block selection method in file parallel download, file parallel download method using the same, and recording medium recording a program for implementing the same
KR102065958B1 (en) 2017-11-13 2020-02-11 유한회사 이노릭스 Method and system for managing data transfer

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FI105754B (en) * 1995-06-12 2000-09-29 Nokia Oy Ab Transfer protocol for transferring files on the DAB system
FI100562B (en) * 1996-01-30 1997-12-31 Nokia Oy Ab Encoding of file segments in a digital radio channel

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100557699B1 (en) * 2001-07-21 2006-03-07 (주)와이즈인터네셔날코리아 apparatus for transmitting image using local network
KR20040001336A (en) * 2002-06-27 2004-01-07 주식회사 케이티 Method of push-style contents delivery over the internet using P2P model
KR100911805B1 (en) * 2002-09-27 2009-08-12 주식회사 케이티 Update method of routing data between web users and server farms
US7640246B2 (en) 2002-10-10 2009-12-29 Nhn Corporation Method and system for providing content
KR101123750B1 (en) * 2003-09-30 2012-03-16 소니 주식회사 Content acquisition method
KR100772385B1 (en) * 2005-12-07 2007-11-01 삼성전자주식회사 Method and apparatus for transmitting and receiving content on distributed storage system
KR20120025011A (en) * 2007-09-04 2012-03-14 애플 인크. Digital asset delivery to different devices
KR101230923B1 (en) * 2008-02-15 2013-02-07 에스케이텔레콤 주식회사 System and Method for Mixing Moving Picture Data
KR101006539B1 (en) * 2009-02-06 2011-01-07 (주)씨디네트웍스 Method for selecting a maximum count block of a file in parallel download, method for file parallel downloading using by the same and record media recorded program for realizing the same
KR100987653B1 (en) * 2009-11-17 2010-10-13 주식회사 다이나맥스 Digital sinage system

Also Published As

Publication number Publication date
KR100521361B1 (en) 2005-10-14

Similar Documents

Publication Publication Date Title
US7636767B2 (en) Method and apparatus for reducing network traffic over low bandwidth links
US7272613B2 (en) Method and system for managing distributed content and related metadata
WO2002093846A1 (en) Method of transferring a divided file
KR100359960B1 (en) Computer, data sharing system, and method for maintaining replica consistency
EP1892921B1 (en) Method and system for managing distributed content and related metadata
US7634566B2 (en) Arrangement in a network for passing control of distributed data between network nodes for optimized client access based on locality
RU2343536C2 (en) Mechanism of peer broadcasting of information content
US8972348B2 (en) Method and system for supporting off-line mode of operation and synchronization
CN101155296B (en) Method for transmitting data
US8131693B2 (en) Methods and systems for transferring data over electronic networks
US20080133830A1 (en) Efficient utilization of cache servers in mobile communication system
KR20030056701A (en) Apparatus and method for providing multimedia streaming service by using point-to-point connection
US20060026165A1 (en) Remote file updates through remote protocol
KR100521361B1 (en) a method of collaborating in transferring a file in a networking environment
US8352602B2 (en) Arrangements and methods for access to stored data
EP1368948A2 (en) Method and apparatus for large payload distribution in a network
US20030154246A1 (en) Server for storing files
US6918120B2 (en) Remote file system using network multicast
EP1473636B1 (en) Information processing device and method, and computer program
US8086629B2 (en) Content delivery apparatus, content delivery method, and content delivery program
US20020078461A1 (en) Incasting for downloading files on distributed networks
US20050058138A1 (en) Communications management system
US20040250286A1 (en) System for communication of streaming digital data
Lorenz et al. Cooperative video caching for interactive and scalable VoD systems
CN100449509C (en) A duplicating switch for streaming data units to a terminal

Legal Events

Date Code Title Description
A201 Request for examination
N231 Notification of change of applicant
E801 Decision on dismissal of amendment
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee