KR20050079589A - Apparatus and method of file transfer in file transfer system - Google Patents

Apparatus and method of file transfer in file transfer system Download PDF

Info

Publication number
KR20050079589A
KR20050079589A KR1020040008084A KR20040008084A KR20050079589A KR 20050079589 A KR20050079589 A KR 20050079589A KR 1020040008084 A KR1020040008084 A KR 1020040008084A KR 20040008084 A KR20040008084 A KR 20040008084A KR 20050079589 A KR20050079589 A KR 20050079589A
Authority
KR
South Korea
Prior art keywords
client
number information
unique number
file
message
Prior art date
Application number
KR1020040008084A
Other languages
Korean (ko)
Other versions
KR100590886B1 (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 KR1020040008084A priority Critical patent/KR100590886B1/en
Publication of KR20050079589A publication Critical patent/KR20050079589A/en
Application granted granted Critical
Publication of KR100590886B1 publication Critical patent/KR100590886B1/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
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/1607Details of the supervisory signal
    • H04L1/1642Formats specially adapted for sequence numbers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1867Arrangements specially adapted for the transmitter end

Abstract

본 발명은 파일 전송 시스템의 파일 전송 방법 및 그 장치에 관한 것으로, 하나의 서버 시스템에 다수개의 클라이언트 시스템이 연결되어 동시에 파일 전송을 요청하는 경우라도 각 클라이언트 시스템에 요청한 파일의 데이터를 오류 없이 수신할 수 있도록 하고, 기존의 TFTP의 1:1 전송 방식에서 탈피하여, 1:N 전송 방식으로 파일의 데이터를 전송할 수 있음으로 파일 데이터의 전송 속도를 극대화할 수 있는 효과가 있다.The present invention relates to a file transfer method and a device thereof of a file transfer system. Even when a plurality of client systems are connected to one server system and request file transfer at the same time, data of the requested file can be received without error in each client system. It is possible to transfer the data of the file in the 1: N transmission method by deviating from the 1: 1 transfer method of the conventional TFTP, thereby maximizing the transmission speed of the file data.

Description

파일 전송 시스템의 파일 전송 방법 및 그 장치{apparatus and method of file transfer in File Transfer System} File transfer method and apparatus thereof in file transfer system {apparatus and method of file transfer in File Transfer System}

본 발명은 파일 전송 시스템의 파일 전송 방법 및 그 장치에 관한 것으로서, 더욱 상세하게는, 하나의 서버 시스템에 다수개의 클라이언트 시스템이 동시에 파일 전송을 요청하여, 오류 없이 파일을 수신할 수 있도록 하는 파일 전송 시스템의 파일 전송 방법 및 그 장치에 관한 것이다.The present invention relates to a file transfer method and apparatus thereof of a file transfer system. More particularly, the present invention relates to a file transfer method in which a plurality of client systems simultaneously request a file transfer to a server system to receive a file without error. The present invention relates to a file transfer method of a system and a device thereof.

대부분의 시스템에 있는 데이터는 파일이라는 단위로 표시되며 시스템간에 데이터를 전송하려면 파일 또는 파일의 일부를 전송해야 한다.Data on most systems is expressed in units called files, and data transfer between systems requires a file or part of a file.

네트워크로 연결되는 시스템에서, 어느 한 시스템의 사용자가 다른 한 시스템에 있는 데이터를 자신의 시스템으로 전송받거나 자신의 시스템에 있는 데이터를 다른 한 시스템으로 전송하고자 할 경우, 즉 시스템간에 서로 통신을 하고자 하는 경우에는, 이들 시스템들이 통신할 수 있도록 하기 위한 규칙과 규정들이 있어야 하는데, 이것이 프로토콜이다.In a networked system, when a user of one system wants to receive data from another system to his or her system or to transfer data from one system to another, that is, to communicate with each other. In the case, there must be rules and regulations to enable these systems to communicate, which is the protocol.

이때, 데이터 전송을 요청하는 시스템을 클라이언트 시스템이라고 하고 이러한 요청에 대한 서비스를 제공해주는 시스템을 서버 시스템이라고 하며, 보통은 하나의 서버시스템에 다수의 클라이언트시스템이 연결된다.In this case, a system for requesting data transmission is called a client system, and a system for providing a service for such a request is called a server system. Usually, a plurality of client systems are connected to one server system.

컴퓨터 네트워크에서 아주 널리 사용되는 언어는 TCP/IP(Transfer Control Protocol/Internet Protocol)이며, TCP/IP를 기반으로 사용하는 프로토콜로 FTP(File Transfer Protocol), Telnet(Terminal Emulation Protocol), HTTP(Hyper text Transfer Protocol) 등이 있다.The most widely used language in computer networks is TCP / IP (Transfer Control Protocol / Internet Protocol), which is based on TCP / IP and includes File Transfer Protocol (FTP), Terminal Emulation Protocol (Telnet), and Hyper text (HTTP). Transfer Protocol).

여기에서 파일전송프로토콜(FTP)의 목적은, 한 파일이나 파일의 일부분을 FTP 사용자의 명령하에 한 시스템에서 다른 시스템으로 전송하는 것이다.The purpose of the file transfer protocol (FTP) here is to transfer a file or part of a file from one system to another under the command of an FTP user.

대부분 FTP는 온라인 사용자에 의해 대화식으로 사용된다. FTP사용자의 통신은 운영체제에 의해 중재되며, 이 운영체제는 입출력(I/O) 구동기를 갖고 있다. Most of the time FTP is used interactively by online users. The communication of FTP users is mediated by the operating system, which has input / output (I / O) drivers.

만약 시스템 A의 사용자가 시스템 B의 파일을 액세스하고자 하면, A의 FTP는 B의 FTP와 연결을 설정한다. 이는 물론 논리적 연결이며, 제어정보와 사용자 데이터에 대한 실제 경로는 프로토콜 스택의 각 레이어들을 통해 이루어진다.If a user on system A wants to access a file on system B, FTP on A establishes a connection with FTP on B. This is, of course, a logical connection, with the actual path to control information and user data going through each layer of the protocol stack.

한편, TFTP(Trivial File Transfer Protocol)은 FTP의 일종으로 FTP보다 단순하고 작은 코드만으로 구현되도록 설계되어, 읽기 전용 메모리(ROM)에서 쉽게 구현되고, 디스크 없는 시스템에서 운영체제 이미지를 다운로드하는 프로토콜로써 흔히 사용되어진다.On the other hand, TFTP (Trivial File Transfer Protocol) is a type of FTP that is designed to be implemented with simpler and smaller code than FTP, which is easily implemented in read-only memory (ROM), and is commonly used as a protocol for downloading an operating system image on a diskless system. It is done.

일반적으로, FTP는 TCP를 사용해서 신뢰성있고, 연결지향적인 방식으로 파일을 전송/수신하는 프로토콜이다. In general, FTP is a protocol for sending / receiving files in a reliable, connection-oriented manner using TCP.

반면, TFTP는 UDP를 사용하는 비연결형 파일 전송 프로토콜로서, 라우터가 설정파일과 IOS 이미지를 받아올때 주로 사용되며, 보안에 대한 옵션이 없어서 FTP보다 빠른 속도를 보이게 된다.TFTP, on the other hand, is a connectionless file transfer protocol that uses UDP. It is mainly used when routers receive configuration files and IOS images, and it is faster than FTP because there is no security option.

TCP와 UDP에 관한 내용을 살펴보면 두 전송의 차이점에 알 수 있는데, TCP는 언급한대로 연결지향의 신뢰성 있는 프로토콜로서, 슬라이딩 윈도우를 통해서 흐름을 제어하게 된다. If you look at the contents of TCP and UDP, you can see the difference between the two transmissions. As mentioned above, TCP is a connection-oriented reliable protocol that controls flow through a sliding window.

또한, TCP는 순서번호와 승인번호를 이용해 제어하게 되는 것인데, TCP는 ACK(acknowledgement)를 받지 못한 모든 데이터를 다시 보내게 되며, 데이터를 받았다는 신호가 들어와야 다음 데이터를 보내게 되고, 이렇게 함으로 데이터 전송에 대한 신뢰성을 보장하게 된다.In addition, TCP is controlled by using the sequence number and acknowledgment number. TCP transmits all data that has not received acknowledgment and sends the next data only when a signal is received. To ensure reliability.

그러나, UDP에서는 TCP처럼 데이터가 잘 도착했는지 검사하는 기능(checksum)이 없으므로 전송 속도가 매우 빠르고, 연결을 맺지 않으므로 컨트롤 프레임을 전송할 필요가 없어 네트워크의 부하가 줄어들게 된다.However, in UDP, there is no checksum that data arrives well like TCP. Therefore, the transmission speed is very fast. Since there is no connection, there is no need to transmit a control frame, thereby reducing the load on the network.

그 대신 UDP에서는 확인절차나 흐름제어가 없는 대신 응용프로그램에서 그 역할을 대신해 주어야 하며, 이러한 방식을 단방향 전송 방식이라 한다.Instead, UDP has no confirmation procedure or flow control. Instead, the application program has to take over its role. This method is called unidirectional transmission.

이상에서 설명한 TFTP 프로토콜은 소형 파일 전송을 위해 오래전에 고안된 것으로 인터넷 FTP에 비해 구현하기 쉽고 서버-클라이언트(Server-Client)구조로 되어 있고 IP/UDP를 사용하며, 해당 규약은 'IETF RFC1350' 에 정의되어 있다. The TFTP protocol described above was designed long ago for small file transfers, and is easier to implement than Internet FTP, has a server-client structure, uses IP / UDP, and the protocol is defined in 'IETF RFC1350'. It is.

이 규약은 작은 규모의 프로그램에서 파일 전송이 용이한 점 때문에 수많은 시스템들이 현재까지도 널리 사용되고 있는데, 데이터의 512 byte의 고정전송, 블록 최대 크기(block max size)가 65535 개라는 제약 때문에 약 32 Mbytes 이상은 전송이 불가능했다. This protocol has been widely used in many systems to date because of the ease of file transfer in small programs, and over 32 Mbytes due to the fixed transfer of 512 bytes of data and the limitation of 65535 blocks max size. Was not transferable.

이러한 제약 사항의 극복을 위해 추후에 옵션 기능이 추가되었고 이 기능 중에는 데이터 전송 크기를 조절할 수 있도록 함으로써 더욱 이용가치가 높아졌다. 이 내용은 'RFC 2347 TFTP Option Extension, RFC 2348 Blocksize Option' 으로 표준화되어 있다.. In order to overcome these limitations, optional features were added later, and these functions became more usable by allowing the data transfer size to be adjusted. This content is standardized in RFC 2347 TFTP Option Extension, RFC 2348 Blocksize Option.

또한, 'RFC2090' 에는 멀티캐스트(Multicast)용 옵션을 두어 멀티캐스트가 가능하도록 하고 있다. 그러나 'RFC2090'은 Experimental 버전으로서 표준화되어 있지는 않고, 서버의 구현은 가능하지만 대부분의 클라이언트들에서는 구현이 되어 있지 않다.In addition, 'RFC2090' has a multicast option to enable multicast. However, 'RFC2090' is an experimental version, not standardized, and the server can be implemented but is not implemented in most clients.

현재 TFTP 서버-클라이언트(server-client) 프로그램은 BSD(Berkeley Software Distribution ; Berkeley Software Design), UNIX, Linux 계열에서는 기본으로 제공되고 있고 Window계열에서도 프리웨어로 쓸 수 있는 프로그램들이 많이 있다.Currently, TFTP server-client programs are provided by Berkeley Software Distribution (BSD), UNIX, and Linux series by default, and there are many programs that can be used as freeware in Windows.

이 TFTP 규약은 네트워크 기능이 잘 구현되어 있는 상황에서는 잘 사용하지 않지만, PC 혹은 많은 시스템(네트워크 기능을 가진 거의 모든 장비들)들이 맨 처음 OS 없이 기본 부팅하여 패키지를 다운받아야 하는 경우 아주 널리 사용되고 있다.This TFTP protocol is not used well in situations where network functions are well implemented, but it is very widely used when PCs or many systems (nearly all devices with network functions) need to first boot without a OS and download a package. .

TFTP 규약은 기본적으로 서버와 클라이언트가 1:1 방식으로 동작하도록 되어 있어 다수의 클라이언트가 하나의 서버로부터 파일을 전송받는데는 적합하지 않다. The TFTP protocol basically allows a server and a client to operate in a 1: 1 manner, which is not suitable for multiple clients receiving files from one server.

PC 클러스터링(clustering) 환경이나 한 장비가 여러 모듈로 이루어져 전원이 들어오는 순간 각 모듈들이 메인 모듈로부터 기본 파일을 전송받아야 하는 등의 환경에서 여러 클라이언트가 동시에 하나의 서버로 파일 전송을 시도하면 서버에서는 모두 1:1 방식으로 파일 전송을 시도하기 때문에 네트워크 부하가 증가하고 파일 전송 오류 역시 증가한다.In a PC clustering environment or when one device is composed of several modules and each module receives basic files from the main module at the moment of power on, when multiple clients attempt to transfer files to one server at the same time, all of the servers Attempting file transfer in a 1: 1 manner increases network load and increases file transfer errors.

이를 극복하기 위하여 'RFC2090'에 멀티캐스트 TFTP가 정의되었으나 experimental 상태로 표준화되어 있지는 않고 클라이언트에서 구현하기에는 복잡하다. In order to overcome this problem, multicast TFTP is defined in 'RFC2090', but it is not standardized in experimental state and is complicated to implement in client.

'RFC2090'에서 정의된 멀티캐스트 기능에서는 전송시 사용할 멀티캐스트 IP 주소가 있어야 하고 클라이언트들은 다른 클라이언트들이 파일 전송을 받는 중에 접속하게 되면 파일의 중간부터 받게 되므로 클라이언트 자체에서 파일 블록 재조합 기능을 가지고 있어야 한다. The multicast function defined in 'RFC2090' must have a multicast IP address to be used for transmission, and clients must have file block recombination on the client itself since other clients will receive from the middle of the file when connecting while receiving a file transfer. .

그러나, TFTP를 사용하는 환경은 일반적으로 정상적인 네트워크 기능이 구축된 상황이 아닌 초기 부팅시에 이루어지기 때문에 클라이언트들의 구현 프로그램들은 가장 단순동작만을 하도록 되어 있다. However, since the environment using TFTP is generally performed at the time of initial booting instead of the normal network function, the implementation programs of clients are designed to perform only the simplest operation.

따라서, 대부분의 TFTP 기능에서 서버 프로그램은 복잡한 기능을 가지도록 개선되어도 문제는 없으나 클라이언트로서의 TFTP 기능은 아주 단순하게 동작하기 때문에 블록 재조합과 같은 기능을 처리하도록 하기는 어렵다. Therefore, in most TFTP functions, the server program can be improved to have a complicated function. However, since the TFTP function as a client operates very simply, it is difficult to handle functions such as block recombination.

이 경우, TFTP 클라이언트 기능은 블록(block) # 에 따라 데이터 패킷과 ACK 패킷을 순서대로 주고받으며 전송중에 패킷이 유실되면 동작이 블록(block)되고 타이머에 의해 파일 전송 자체를 멈추거나 재동작하게 된다.In this case, the TFTP client function exchanges data packets and ACK packets in order according to block #. If a packet is lost during transmission, the operation is blocked and the file transfer itself is stopped or restarted by a timer. .

따라서, 본 발명은 상기와 같은 문제점을 해결하기 위해서 창안된 것으로서, 하나의 서버 시스템에 다수개의 클라이언트 시스템이 연결되어 파일 전송을 요청하여, 동시에 서버 시스템이 파일을 전송하면서 발생하는 클라이언트의 파일 수신 오류를 방지하는 파일 전송 시스템의 파일 전송 방법 및 그 장치를 제공하는 것을 그 목적으로 한다. Accordingly, the present invention was devised to solve the above problems, and a plurality of client systems are connected to one server system to request a file transfer, and a file reception error of the client that occurs while the server system transfers files at the same time. It is an object of the present invention to provide a file transfer method and a device of a file transfer system that prevents.

상기와 같은 목적을 달성하기 위한 본 발명의 일측면에 따른 파일 전송 시스템은, 다중 클라이언트 옵션이 포함된 간단한 파일전송프로토콜(TFTP)의 확장된 읽기 요청 메시지(RRQ)를 전송하고, 옵션 수용 여부 응답 메시지(OACK)를 통해 할당되는 고유 번호 정보를 확인하여, 해당 파일 데이터를 수신하는 적어도 하나 이상의 클라이언트 시스템과, 클라이언트 시스템으로부터 확장된 읽기 요청 메시지가 수신되면, 해당 클라이언트 시스템에 할당하는 고유 번호 정보가 포함되는 옵션 수용 여부 응답 메시지 및 할당하는 고유 번호 정보가 포함된 파일 데이터를 전송하는 서버 시스템을 포함한다.The file transfer system according to an aspect of the present invention for achieving the above object, transmits an extended read request message (RRQ) of a simple file transfer protocol (TFTP) including a multi-client option, the option acceptance response The unique number information allocated through the message (OACK) is checked, and when the extended read request message is received from the client system, and the unique number information allocated to the client system is received. And a server system for transmitting the file data including the option acknowledgment message included and the unique number information to be assigned.

그리고, 본 발명에 따른 읽기 요청 메시지는, 메시지 종류에 대한 값을 나타내는 오퍼레이팅 코드 필드와, 파일네임을 ASCⅡ 코드로 부호화한 파일네임 필드와, 전송 모드를 정의하는 모드 필드와, 다중 클라이언트 시스템을 지원하기 위한 옵션 필드와, 옵션필드의 밸류값을 정의하기 위한 마스크 비트 필드를 포함한다.The read request message according to the present invention supports an operating code field indicating a value for a message type, a file name field encoded with an ASCII code, a mode field defining a transmission mode, and a multi-client system. It includes an option field for doing, and a mask bit field for defining the value of the option field.

또한, 본 발명에 따른 옵션 수용 여부 응답 메시지는, 메시지 종류에 대한 값을 나타내는 오퍼레이팅 코드 필드와, 다중 클라이언트 시스템을 지원하기 위한 다중 클라이언트 필드와, 클라이언트 시스템에 할당되는 고유 번호 정보를 알려주는 고유 번호 필드를 포함한다.In addition, the option acceptance response message according to the present invention includes an operating code field indicating a value for a message type, a multi-client field for supporting a multi-client system, and a unique number for indicating unique number information assigned to the client system. Contains a field.

본 발명의 다른 측면에 따른 파일 전송 시스템의 파일 전송 방법은, 제 1 클라이언트 시스템이 서버 시스템으로 다중 클라이언트 파일 전송을 요청하는 확장된 읽기 요청 메시지(RRQ)를 전송하는 단계와, 서버 시스템이 제 1 클라이언트에 고유 번호 정보를 할당하고, 고유 번호 정보가 포함되는 옵션 수용 여부 응답 메시지(OACK)를 전송하는 단계와, 제 1 클라이언트 시스템이 서버로 할당되는 고유 번호 정보가 포함되는 응답 메시지(ACK)를 전송하는 단계와, 서버 시스템이 제 1 클라이언트로 고유 번호 정보가 포함되는 파일 데이터를 전송하는 단계와, 제 1 클라이언트 시스템이 네트워크를 통해 전송되는 파일 데이터에 포함된 고유 번호 정보가 할당된 고유 번호 정보와 동일한지 여부를 확인하여 동일하면 수신하는 단계를 포함한다.A file transfer method of a file transfer system according to another aspect of the present invention includes the steps of: transmitting, by a first client system, an extended read request message (RRQ) requesting multi-client file transfer to a server system; Assigning the unique number information to the client, transmitting an option acknowledgment message (OACK) including the unique number information, and a response message (ACK) containing the unique number information assigned to the server by the first client system. Transmitting the file data including the unique number information to the first client by the server system; and unique number information to which the unique number information included in the file data transmitted by the first client system through the network is assigned. Checking whether the same and if the same, and receiving the same.

그리고, 본 발명에 따른 파일 전송 시스템의 파일 전송 방법은, 제 2 클라이언트 시스템으로부터 다중 클라이언트 파일 전송을 요청하는 읽기 요청 메시지(RRQ)가 수신되면, 제 2 클라이언트 시스템에 고유 번호 정보를 할당하여, 옵션 수용 여부 응답 메시지(OACK)를 전송하는 단계와, 제 2 클라이언트 시스템이 고유 번호 정보를 파악하고, 고유 번호 정보가 포함되는 응답 메시지(ACK)를 전송하는 단계와, 서버 시스템이 제 1 클라이언트 시스템의 고유 번호 정보가 포함되는 파일 데이터를 전송하면서, 제 2 클라이언트 시스템의 고유 번호 정보가 포함되는 파일 데이터를 전송하는 단계와, 제 2 클라이언트 시스템이 네트워크를 통해 전송되는 파일 데이터의 고유 번호 정보가 자신의 고유 번호 정보와 동일하면, 파일 데이터를 수신하는 단계를 더 포함한다.In addition, in the file transfer method of the file transfer system according to the present invention, when a read request message (RRQ) requesting multi-client file transfer is received from the second client system, unique number information is assigned to the second client system. Transmitting an acknowledgment response message (OACK), acquiring the unique number information by the second client system, transmitting an acknowledgment message (ACK) including the unique number information, and the server system of the first client system. Transmitting the file data including the unique number information of the second client system while transmitting the file data including the unique number information, and the unique number information of the file data transmitted through the network by the second client system is If the same as the unique number information, further comprising the step of receiving file data.

또한, 본 발명에 따른 파일 전송 시스템의 파일 전송 방법은, 서버 시스템이 다중 클라이언트 옵션 기능을 지원하지 못하는 경우, 임의의 클라이언트 시스템으로부터 다중 클라이언트 파일 전송을 요청하는 확장된 읽기 요청 메시지가 전송되면, 서버 시스템이 해당 클라이언트로 에러 메시지를 전송하는 단계를 더 포함한다.In addition, the file transfer method of the file transfer system according to the present invention, if the server system does not support the multi-client option function, if an extended read request message for requesting the multi-client file transfer from any client system is transmitted, The system further includes the step of sending an error message to the client.

아울러, 본 발명에 따른 파일 전송 시스템의 파일 전송 방법은, 서버 시스템이 다중 클라이언트 옵션 기능을 지원하지 못하는 경우, 임의의 클라이언트 시스템으로부터 다중 클라이언트 파일전송을 요청하는 확장된 읽기 요청 메시지가 전송되면, 서버 시스템이 지원할 수 있는 기능만을 추가하여 클라이언트로 옵션 수용 여부 응답 메시지(OACK)를 전송하는 단계를 더 포함한다.In addition, the file transfer method of the file transfer system according to the present invention, if the server system does not support the multi-client option function, if an extended read request message for requesting the multi-client file transfer from any client system is transmitted, The method may further include transmitting an option acknowledgment message (OACK) to the client by adding only a function that can be supported by the system.

이하 본 발명에 따른 파일 전송 시스템의 파일 전송 방법 및 그 장치를 첨부한 도면을 참조하여 상세 설명한다.Hereinafter, a file transfer method and a device thereof of a file transfer system according to the present invention will be described in detail with reference to the accompanying drawings.

도 1은 본 발명에 적용되는 파일 전송 시스템의 전체 구성을 설명하기 위한 전체 블록 도면이다.1 is a block diagram illustrating an entire configuration of a file transfer system applied to the present invention.

도 1을 참조하면, 본 발명에 적용되는 파일 전송 시스템은 서버 시스템(10)과 다수의 클라이언트 시스템(20a~20n)이 네트워크(30)로 연결되어 구성된다.Referring to FIG. 1, the file transfer system applied to the present invention includes a server system 10 and a plurality of client systems 20a to 20n connected to a network 30.

이하 일반적인 파일 전송 시스템(TFTP)에서 서버시스템(10)과 하나의 클라이언트 시스템(20a)간 파일 교환을 예로 들어 설명하면 다음과 같다.Hereinafter, a file exchange between the server system 10 and one client system 20a in a general file transfer system (TFTP) will be described.

서버 시스템(10)과 클라이언트 시스템(20a)은 네트워크(30)를 통하여 서로 연결되어 파일(40)을 교환한다.The server system 10 and the client system 20a are connected to each other via the network 30 to exchange files 40.

이때, 클라이언트 시스템(20a)의 TFTP 클라이언트(24a)와 서버 시스템(10)의 TFTP 서버(14)간 파일 교환은, TCP/UDP중 UDP를 선택하고, IP(Internet Protocol)(12, 22a)를 통해 이더넷(Ethernet)(11a) 상에서 실행된다.At this time, the file exchange between the TFTP client 24a of the client system 20a and the TFTP server 14 of the server system 10 selects UDP among TCP / UDP, and selects IP (Internet Protocol) 12, 22a. Is executed on the Ethernet 11a.

TFTP 클라이언트(24a)는 네트워크(30)를 통해 서버 시스템(10)에 연결되면, 파일(40)을 교환하기 위하여, TFTP 서버(14)에 대한 연결을 시작한다. When the TFTP client 24a is connected to the server system 10 via the network 30, it initiates a connection to the TFTP server 14 to exchange files 40.

즉, TFTP 클라이언트(24a)는 TFTP 서버(14)와 파일을 교환하기 위하여, 읽기/쓰기 요청 메시지(RRQ:Read ReQuest/WRQ:Write ReQuest)를 TFTP 서버(14)로 전송한다.That is, the TFTP client 24a transmits a read / write request message (RRQ: Read ReQuest / WRQ: Write ReQuest) to the TFTP server 14 in order to exchange files with the TFTP server 14.

이때, TFTP 클라이언트(24a)는 클라이언트 시스템(20a)의 TCP/UDP(23a)중 UDP 포트를 선택하고, 이 선택된 포트를 통해 자신의 IP주소와 선택된 포트번호를 포함한 읽기/쓰기 요청 메시지(RRQ/WRQ)를 TFTP 서버(14)로 전송한다.At this time, the TFTP client 24a selects a UDP port among the TCP / UDP 23a of the client system 20a, and reads / writes a request message (RRQ /) including its IP address and the selected port number through the selected port. WRQ) to the TFTP server 14.

TFTP 서버(14)는 서버 시스템(10)의 TCP/UDP(13)중 역시 UDP 포트를 통해 TFTP 클라이언트(24a)로부터 전송된 읽기/쓰기 요청 메시지(RRQ/WRQ)를 수신한다.The TFTP server 14 receives a read / write request message (RRQ / WRQ) sent from the TFTP client 24a also through the UDP port of the TCP / UDP 13 of the server system 10.

그리고, TFTP 서버(14)는 읽기/쓰기 요청 메시지가 수신되면, 해당 TFTP 클라이언트(24a)의 IP주소와 포트 번호를 등록하고, 이 등록된 IP 주소와 포트 번호를 사용하여, 읽기/쓰기 요청 메시지에 대한 응답 메시지(ACK)를 TFTP 클라이언트(24a)로 전송한다.When the read / write request message is received, the TFTP server 14 registers the IP address and port number of the TFTP client 24a, and uses the registered IP address and port number to read / write the request message. Sends a response message (ACK) to the TFTP client 24a.

TFTP 클라이언트(24a)는 읽기/쓰기 요청 메시지를 전송한 클라이언트 시스템(20)의 UDP(23) 포트를 통해 TFTP 서버(14)가 전송한 응답 메시지(ACK)를 수신함으로써, 서버 시스템(10)과 클라이언트 시스템(20)간의 파일 교환을 위한 연결이 이루어지게 된다.The TFTP client 24a receives the response message (ACK) transmitted by the TFTP server 14 through the UDP 23 port of the client system 20 that has transmitted the read / write request message, thereby providing the server system 10 with the server system 10. A connection for file exchange between client systems 20 is made.

TFTP 서버(14)와 TFTP 클라이언트(24a)와 연결되면, 읽기/쓰기 요청 메시지(RRQ/WRQ)를 통해 TFTP 클라이언트(24a)가 요청한 파일(40)을 전송한다.When the TFTP server 14 and the TFTP client 24a are connected, the file 40 requested by the TFTP client 24a is transmitted through a read / write request message RRQ / WRQ.

그리고, TFTP 서버(14)는 TFTP 클라이언트(24a)가 요청한 파일(40)의 전송이 완료될 때까지 TFTP 서버(14)와 TFTP 클라이언트(24a)의 연결은 계속되며, 전송이 완료되고 클라이언트 시스템(20a) 또는 서버 시스템(10)측에서 연결을 닫으면 TFTP 서버(14)와 TFTP 클라이언트(24a)간의 연결은 해제된다.The TFTP server 14 continues the connection between the TFTP server 14 and the TFTP client 24a until the transfer of the file 40 requested by the TFTP client 24a is completed, and the transfer is completed and the client system ( 20a) or closing the connection on the server system 10 side releases the connection between the TFTP server 14 and the TFTP client 24a.

한편, 파일 전송 시스템에 다중 클라이언트로 파일을 전송하기 위해서는 'RFC 2347'의 규약에 따라 신규 옵션을 정의하고, 메시지 형태를 재정의해야 한다.On the other hand, in order to transfer files to the file transfer system to multiple clients, it is necessary to define new options and redefine the message format according to the protocol of RFC 2347.

일반적으로 읽기 요청 메시지(RRQ)는 클라이언트 시스템(20a~20n)이 서버 시스템(10)으로부터 파일(40)을 수신하기 위한 연결을 설정하는데 사용되는 메시지로서, 파일(40)의 다운로드를 위한 요청 메시지이다. In general, the read request message RRQ is a message used by the client system 20a to 20n to establish a connection for receiving the file 40 from the server system 10. The read request message RRQ is a request message for downloading the file 40. to be.

이때 RRQ 메시지의 처음 필드의 OPC(OPeration Code)값은 '1'이 사용되고, 'Filename'은 가변 길이의 문자열로 이루어지고, 전송 모드에 대한 정의 필드가 동반된다.In this case, OPC (OPeration Code) value of the first field of the RRQ message is used with '1', 'Filename' is composed of a variable length character string, and is accompanied by a definition field for the transmission mode.

또한, 쓰기 요청 메시지(WRQ)는 클라이언트 시스템(20a~20n)이 서버 시스템(10)에 파일을 전송하기 위한 연결을 설정하는데 사용되는 메시지로서, 파일의 업로드를 위한 요청 메시지이다. 이때 WRQ 메시지의 처음 필드의 OPC 값은 '2'가 사용된다.In addition, the write request message WRQ is a message used by the client systems 20a to 20n to establish a connection for transmitting a file to the server system 10 and is a request message for uploading a file. In this case, '2' is used as the OPC value of the first field of the WRQ message.

한편, 데이터 블록을 전송하기 위한 메시지의 OPC 값은 '3'이 사용되고, 데이터 블록 수신에 대한 응답(ACK) 메시지의 OPC 값으로는 '4'가 사용된다.Meanwhile, '3' is used as an OPC value of a message for transmitting a data block, and '4' is used as an OPC value of an acknowledgment (ACK) message for receiving a data block.

에러 발생시 에러 메시지의 OPC 값은 '5'가 사용되며, 'Extension TFTP'에서 RRQ 메시지와 WRQ 메시지에 옵션 추가시 OACK(Option ACK: 옵션 수용 여부) 메시지의 OPC 값으로 '6'을 사용하도록 권고하고 있다.When an error occurs, OPC value of error message is used as '5'. It is recommended to use '6' as OPC value of OACK (Option ACK) message when adding option to RRQ message and WRQ message in 'Extension TFTP'. Doing.

도 2a는 본 발명의 바람직한 실시예에 따른 RRQ 메시지 구조를 나타내는 도면이다.2A is a diagram illustrating an RRQ message structure according to a preferred embodiment of the present invention.

도 2a를 참조하면, RRQ 메시지 구조는 오퍼레이팅 코드(OPC) 필드(31), 파일네임 필드(filename)(32), 모드(mode) 필드(34), 옵션(Option) 필드(36), 마스크 비트(Mask bit)필드(38)로 이루어진다.Referring to FIG. 2A, the RRQ message structure includes an operating code (OPC) field 31, a file name field 32, a mode field 34, an option field 36, and a mask bit. (Mask bit) field 38 is formed.

오퍼레이팅 코드 필드(31)의 오퍼레이팅 코드의 밸류(Value)는 '1'이며, 파일네임 필드(32)의 파일네임은 가변길이의 문자열로 ASCⅡ 코드로 부호화하며, 1바이트 필드(33)에 의해 종료점을 표시한다.The value of the operating code of the operating code field 31 is '1', and the file name of the file name field 32 is encoded as an ASCII code in a variable-length character string, and is terminated by a one-byte field 33. Is displayed.

모드 필드(34)는 전송 모드를 정의하는데 사용되며, ASCⅡ모드인 경우에는 "netascii" 문자열이 사용되며, 2진파일인 경우에는 "octet"가 사용되며, 1바이트 필드(35)에 의해 종료점을 표시한다.The mode field 34 is used to define the transmission mode. In the case of the ASCII mode, the string "netascii" is used. In the case of a binary file, the "octet" is used. Display.

옵션 필드(36)는 다중 클라이언트 시스템(20a~20n)을 지원하기 위해 새롭게 정의된 필드로 옵션 문자열로 "mclient"를 사용하며 1바이트 필드(37)에 의해 종료점을 표시한다.Option field 36 is a newly defined field to support multiple client systems 20a-20n using "mclient" as the option string and indicates the endpoint by single byte field 37.

도 2b는 본 발명에 따른 RRQ 메시지의 포맷에 실제 수치를 적용하는 것을 설명하기 위한 도면이다.2B is a view for explaining the application of the actual number to the format of the RRQ message according to the present invention.

도 2b를 참조하면, 오퍼레이팅 코드로 '1', 파일네임으로 "foofile", 전송모드로 "octet", 옵션 필드에는 "mclient" 문자열이 정의되어 있다.Referring to FIG. 2B, an operating code '1', a file name "foofile", a transfer mode "octet", and an option field "mclient" are defined.

즉, 도 2b에 도시된 RRQ 메시지는 클라이언트 시스템(20a~20n)이 서버 시스템(10)으로 "foofile"이란 파일을 "octet" 전송방식으로 요청하는 RRQ 메시지이다.That is, the RRQ message shown in FIG. 2B is an RRQ message that the client systems 20a to 20n request the file “foofile” to the server system 10 in an “octet” transmission method.

한편, 서버 시스템(10)이 클리이언트 시스템(20a~20n)으로부터 수신되는 RRQ 메시지에 대한 응답으로 전송하는 OACK 메시지에 대하여 살펴보자.Meanwhile, the OACK message transmitted by the server system 10 in response to the RRQ message received from the client systems 20a to 20n will be described.

도 3a는 본 발명에 이용되는 서버 시스템이 전송하는 OACK 응답 메시지의 구조를 나타내는 도면이다.3A is a diagram illustrating a structure of an OACK response message transmitted by a server system used in the present invention.

도 3a를 참조하면, OACK 메시지는 오퍼레이팅 코드(OPC) 필드(41), 다중 클라이언트 필드(42), 1바이트 필드(43), 고유 번호 필드(44), 1바이트 필드(45)로 이루어진다.Referring to FIG. 3A, an OACK message consists of an operating code (OPC) field 41, a multiple client field 42, a one byte field 43, a unique number field 44, and a one byte field 45.

오퍼레이팅 코드 필드(41)에 오퍼레이팅 코드의 밸류(Value)는 '6'이며, 다중 클라이언트 필드(42)에는 "mclient" 문자열이 정의되어 있으며, 1바이트 필드(43)에 의해 종료점을 표시한다.The value of the operating code is '6' in the operating code field 41, the string "mclient" is defined in the multi-client field 42, and the end point is indicated by the one-byte field 43.

고유 번호 필드(44)는 다중 클라이언트 옵션에 대한 밸류를 정의하는 것으로, 서버 시스템(10)에서 할당한 각 클라이언트 시스템20a~20n)의 고유 번호 정보가 정의된다.The unique number field 44 defines the values for the multiple client options, and unique number information of each client system 20a to 20n allocated by the server system 10 is defined.

즉, 서버 시스템(10)의 TFTP 서버(14)는 최초 RRQ 메시지를 전송한 클라이언트 시스템(20a~20n)에 난수로 고유 번호를 할당하고, 이후 RRQ 메시지를 전송하는 클라이언트(20a~20n)에 고유 번호를 일정하게 증가시켜 고유 번호를 할당한다.That is, the TFTP server 14 of the server system 10 assigns a unique number in random numbers to the client systems 20a to 20n that transmitted the first RRQ message, and then uniquely to the clients 20a to 20n transmitting the RRQ message. Constantly increase the number to assign a unique number.

이때, TFTP 서버(14)는 다음 표 1과 같은 테이블 형식으로 각 클라이언트(20a~20n)로 고유 번호를 할당할 수 있다.At this time, the TFTP server 14 may assign a unique number to each client (20a ~ 20n) in the table form as shown in Table 1.

상기 표 1은 TFTP 서버(14)는 제 1 클라이언트 시스템(20a)으로부터 RRQ 메시지가 전송되고, 제 2 클라이언트 시스템(20b) 및 제 3 클라이언트 시스템(20c)으로부터 RRQ 메시지가 전송되는 경우에 대하여 설명되어 지고 있다.Table 1 above describes a case in which the TFTP server 14 transmits the RRQ message from the first client system 20a and the RRQ message from the second client system 20b and the third client system 20c. ought.

이때, TFTP 서버(14)는 제 1 클라이언트 시스템(20a)에 고유 번호 '33'이 할당되면, 다음 클라이언트 시스템(20b~20n)에 증가된 '34' 및 '35'를 할당할 수 있다.In this case, when the unique number '33' is assigned to the first client system 20a, the TFTP server 14 may allocate the increased '34' and '35' to the next client systems 20b to 20n.

도 3b는 본 발명에 따른 OACK 메시지의 포맷에 실제 수치를 적용하는 것을 설명하기 위한 도면이다.3B is a view for explaining the application of the actual number to the format of the OACK message according to the present invention.

도 3b를 참조하면, 오퍼레이팅 코드로 '6', 다중 클라이언트 필드는 "mclient", 고유 번호 필드에는 "33"으로 정의될 수 있다.Referring to FIG. 3B, the operating code may be defined as '6', the multiple client field is “mclient”, and the unique number field is “33”.

이때, 고유 번호 필드에 정의된 "33"은 서버 시스템(10)이 해당 클라이언트 시스템(20a~20n)에 할당받은 고유 번호 정보이다.In this case, "33" defined in the unique number field is unique number information allocated to the client systems 20a to 20n by the server system 10.

도 4는 본 발명의 따른 클라이언트 시스템이 전송하는 ACK 메시지를 설명하기 위한 도면이다.4 is a diagram illustrating an ACK message transmitted by a client system according to the present invention.

도 4를 참조하면, 본 발명에 따른 ACK 메시지는 오퍼레이팅 코드 필드(51), 블록 넘버 필드(52) 및 고유 번호 필드(53)로 이루어진다.4, an ACK message according to the present invention consists of an operating code field 51, a block number field 52 and a unique number field 53.

여기서, 블록 넘버 필드(52)는 클라이언트 시스템(20a~20n)이 요청하는 파일(40) 데이터의 시퀸스를 보장하기 위한 블록 번호 정보를 정의하고, 고유 번호 필드(53)는 해당 클라이언트 시스템(20a~20n)이 서버 시스템(10)으로부터 할당받은 고유 번호 정보를 정의한다.Here, the block number field 52 defines block number information for ensuring the sequence of the data of the file 40 requested by the client systems 20a to 20n, and the unique number field 53 indicates the corresponding client system 20a to. 20n) defines the unique number information assigned from the server system 10.

즉, 각 클라이언트 시스템(20a~20n)은 서버 시스템(10)으로부터 수신되는 OACK 메시지에서 할당된 고유 번호 정보를 파악하고, ACK 메시지에 자신이 할당받은 고유 번호 정보 및 전송받는 파일(40) 데이터의 시퀸스를 보장하기 위하여, 전송받은 데이터가 몇 번째 파일(40) 데이터인지를 알리기 위하여 블록 번호 정보를 포함시켜 전송한다.That is, each client system 20a to 20n grasps the unique number information allocated in the OACK message received from the server system 10, and identifies the unique number information assigned to the ACK message and the received file 40 data. In order to guarantee the sequence, the block number information is included and transmitted to inform the data of the file 40 of the received file.

그리고, 서버 시스템(10)은 해당 클라이언트 시스템(20a~20n)으로부터 전송되는 ACK 메시지에 포함된 고유 번호 정보 및 블록 번호 정보를 확인하여, 파일(40)의 데이터를 전송한다.The server system 10 checks the unique number information and the block number information included in the ACK message transmitted from the client systems 20a to 20n, and transmits the data of the file 40.

이때, 오퍼레이션 코드 필드(41)에 정의되는 값은 '4'이다.At this time, the value defined in the operation code field 41 is '4'.

도 5는 본 발명에 따른 서버 시스템이 전송하는 데이터를 설명하기 위한 도면이다.5 is a view for explaining data transmitted by the server system according to the present invention.

도 5를 참조하면, 본 발명에 따른 데이터는 오퍼레이션 코드 필드(61), 블록 넘버 필드(62), 고유 넘버 필드(63) 및 데이터 필드(64)로 이루어진다.Referring to FIG. 5, data according to the present invention is composed of an operation code field 61, a block number field 62, a unique number field 63, and a data field 64.

블록 넘버 필드(62)는 서버 시스템(10)이 전송하는 파일(40)의 블록 번호 정보를 정의하고, 고유 넘버 필드(63)는 전송하는 파일(40)의 데이터를 수신할 클라이언트 시스템(20a~20n)에 할당된 고유 번호를 정의하고, 데이터 필드(64)는 전송하는 파일(40)의 데이터 내용을 정의한다.The block number field 62 defines the block number information of the file 40 transmitted by the server system 10, and the unique number field 63 defines the client system 20a to receive data of the file 40 to be transmitted. A unique number assigned to 20n) is defined, and the data field 64 defines the data content of the file 40 to be transmitted.

즉, 서버 시스템(10)은 각 클라이언트 시스템(20a~20n)으로부터 수신되는 ACK 메시지에서 고유 번호 정보를 파악하여, 해당 클라이언트 시스템(20a~20n)으로 전송할 파일(40)의 데이터를 확인하고, 블록 번호 정보를 파악하여, 전송하고자 하는 파일(40)의 데이터를 전송한다. That is, the server system 10 checks the unique number information in the ACK message received from each client system 20a to 20n, checks the data of the file 40 to be transmitted to the client systems 20a to 20n, and blocks The number information is grasped and the data of the file 40 to be transmitted is transmitted.

이때, 서버 시스템(10)은 파악된 블록 번호 정보의 다음 블록 번호 정보에 해당하는 데이터를 전송하고, 블록 번호 정보를 증가시킨다.At this time, the server system 10 transmits data corresponding to the next block number information of the identified block number information, and increases the block number information.

이때, 오퍼레이션 코드 필드(41)에 정의되는 값은 '2'이다.At this time, the value defined in the operation code field 41 is '2'.

도 6은 본 발명의 일실시예에 따른 파일 전송 방법의 흐름을 설명하는 흐름도이다.6 is a flowchart illustrating a flow of a file transfer method according to an embodiment of the present invention.

도 6을 참조하면, 제 1 클라이언트 시스템(20a)이 서버 시스템(10)으로부터 파일(40)을 다운받고자 읽기 요청(RRQ) 메시지를 전송하게 되는데, 새롭게 정의된 옵션필드에는 "mclient" 옵션을 포함한 RRQ 메시지를 전송한다(S 100).Referring to FIG. 6, the first client system 20a transmits a read request (RRQ) message to download the file 40 from the server system 10. The newly defined option field includes an "mclient" option. The RRQ message is transmitted (S 100).

제 1 클라이언트 시스템(20a)은 서버 시스템(10)으로 "foofile"이란 파일(40)을 "octet" 전송 방식으로 전송하라는 RRQ 메시지를 서버 시스템(10)으로 전송한다.The first client system 20a transmits an RRQ message to the server system 10 to transmit the file 40 called "foofile" to the "octet" transmission method.

이때, 제 1 클라이언트 시스템(20a)은 다중 클라이언트 기능을 통해 파일(40)을 전송받고자 옵션 필드에 "mclient"를 정의하여, RRQ 메시지를 전송한다.At this time, the first client system 20a defines “mclient” in the option field to receive the file 40 through the multi-client function, and transmits an RRQ message.

서버 시스템(10)은 최초의 RRQ 메시지를 받고 "mclient" 옵션을 수용하는 OACK 메시지를 제 1 클라이언트 시스템(20a)으로 전송한다(S 101). The server system 10 receives the original RRQ message and transmits an OACK message to the first client system 20a that accepts the "mclient" option (S 101).

이때, 서버 시스템(10)은 RRQ 메시지에서 해당 클라이언트 시스템(20a~20n)의 IP 주소 및 UDP 포트 정보를 파악하여, 등록하고, 해당 클라이언트 시스템(20a~20n)에 고유 번호를 할당한다. At this time, the server system 10 grasps and registers IP address and UDP port information of the client systems 20a to 20n in the RRQ message, registers them, and assigns a unique number to the client systems 20a to 20n.

일례를 들어, 제 1 클라이언트 시스템(20a)에 '33'을 고유 번호로 할당하는 경우를 들어 설명한다.As an example, a case where '33' is assigned to the first client system 20a as a unique number will be described.

그리고, 서버 시스템(10)은 해당 클라이언트 시스템(20a~20n)에 할당하는 고유 번호 정보가 포함되는 OACK 메시지를 전송한다.In addition, the server system 10 transmits an OACK message including unique number information allocated to the client systems 20a to 20n.

한편, 서버 시스템(10)이 다중 클라이언트 옵션 기능을 지원하지 못하는 경우, 클라이언트 시스템(20a~20n)으로부터 다중 클라이언트 파일 전송을 요청하는 확장된 읽기 요청(RRQ) 메시지가 전송되면, 서버 시스템(10)이 해당 클라이언트 시스템(20a~20n)으로 에러 메시지를 전송하거나, 서버 시스템(10)이 지원할 수 있는 기능만을 추가하여 클라이언트 시스템(20a~20n)으로 옵션 수용 여부 응답 메시지(OACK)를 전송한다.On the other hand, if the server system 10 does not support the multi-client option function, when the extended read request (RRQ) message requesting the multi-client file transfer from the client system (20a ~ 20n) is transmitted, the server system 10 The error message is transmitted to the corresponding client systems 20a to 20n, or only the function that the server system 10 can support is added to transmit the option acknowledgment message (OACK) to the client systems 20a to 20n.

그리고, 제 1 클라이언트 시스템(20a)은 서버 시스템(10)으로부터 OACK 메시지가 수신되면, OACK 메시지에서 자신에서 할당된 고유 번호 정보를 파악하고, 그 파악된 고유 번호 정보가 포함되는 ACK 메시지를 서버 시스템(10)으로 전송한다(S 102).When the OACK message is received from the server system 10, the first client system 20a grasps the unique number information allocated thereto from the OACK message, and the server system sends an ACK message including the identified unique number information. Transmit to 10 (S 102).

그리고, 서버 시스템(10)은 제 1 클라이언트 시스템(20a)으로부터 ACK 메시지가 전송되면, ACK 메시지에 포함된 해당 클라이언트 시스템(20a~20n)의 고유 번호 정보를 확인하고, 할당한 고유 번호 정보가 맞으면, 파일(40)의 데이터를 전송한다(S 103).When the ACK message is transmitted from the first client system 20a, the server system 10 checks the unique number information of the corresponding client systems 20a to 20n included in the ACK message, and if the assigned unique number information is correct, The data of the file 40 is transmitted (S 103).

이때, 서버 시스템(10)의 TFTP 서버(14)는 전송되는 파일(40)의 데이터의 블록 번호 정보를 블록 넘버 필드(62)에 포함시켜 전송한다.At this time, the TFTP server 14 of the server system 10 includes the block number information of the data of the transmitted file 40 in the block number field 62 and transmits it.

제 1 클라이언트 시스템(20a)은 서버 시스템(10)으로부터 네트워크(30)를 통해 파일(40)의 데이터가 수신되면, 데이터의 고유 번호 정보를 확인하여, 자신에게 할당된 고유 번호 정보와 동일하면, 데이터를 수신한다.When the first client system 20a receives the data of the file 40 from the server system 10 via the network 30, the first client system 20a checks the unique number information of the data, and if it is the same as the unique number information assigned to itself, Receive data.

그리고, 제 1 클라이언트 시스템(20a)은 수신된 데이터에 포함된 블록 번호 정보를 확인하고, 그 확인된 블록 번호 정보가 포함되는 ACK 메시지를 서버 시스템(10)으로 전송한다(S 104).The first client system 20a checks the block number information included in the received data, and transmits an ACK message including the checked block number information to the server system 10 (S 104).

한편, 제 2 클라이언트 시스템(20b)이 네트워크(30)를 통해 서버 시스템(10)과 연결되어, 다중 클라이언트 파일 전송 기능으로 파일을 전송받기 위한 RRQ 메시지를 서버 시스템(10)으로 전송하면(S 105), 서버 시스템(10)은 제 2 클라이언트 시스템(20b)의 IP 주소 및 포트 번호를 확인하여 등록하고, 고유 번호를 할당한다.Meanwhile, when the second client system 20b is connected to the server system 10 through the network 30, and transmits an RRQ message to the server system 10 to receive a file through the multi-client file transfer function (S 105). The server system 10 checks and registers the IP address and the port number of the second client system 20b, and assigns a unique number.

이때, 제 1 클라이언트 시스템(20a)에 고유 번호 '33'을 할당하였음으로 제 2 클라이언트 시스템(20b)에는 할당된 '33'에서 '1' 증가시켜 '34'를 고유 번호로 할당할 수 있다.In this case, since the unique number '33' is assigned to the first client system 20a, the second client system 20b may be assigned a unique number by incrementing '1' from the allocated '33'.

그리고, 서버 시스템(10)은 할당된 고유 번호가 포함되는 OACK 메시지를 제 2 클라이언트 시스템(20b)으로 전송한다(S 106).Then, the server system 10 transmits an OACK message including the assigned unique number to the second client system 20b (S 106).

또한, 서버 시스템(10)은 제 1 클라이언트 시스템(20a)으로 전송할 파일(40)의 데이터를 블록 번호 정보 및 제 1 클라이언트 시스템(20a)의 고유 번호를 포함시켜 전송한다(S 107, S 112).In addition, the server system 10 transmits data of the file 40 to be transmitted to the first client system 20a, including block number information and a unique number of the first client system 20a (S 107 and S 112). .

그리고, 제 1 클라이언트 시스템(20a)은 서버 시스템(10)으로부터 파일(40)의 데이터를 전송받으면, 전송받은 파일(40) 데이터의 블록 번호 정보와, 자신이 할당받은 고유 번호가 포함되는 ACK 메시지를 서버 시스템(10)으로 전송한다(S 104, S 113).When the first client system 20a receives the data of the file 40 from the server system 10, the first client system 20a receives the block number information of the received data of the file 40 and an ACK message including the unique number assigned thereto. Is transmitted to the server system 10 (S 104, S 113).

아울러, 서버 시스템(10)은 제 2 클라이언트 시스템(20b)으로 전송할 파일(40)의 데이터를 블록 번호 정보와, 제 2 클라이언트 시스템(20b)의 고유 번호를 포함시켜 전송한다(S 110, S 114, S 116).In addition, the server system 10 transmits the data of the file 40 to be transmitted to the second client system 20b, including block number information and the unique number of the second client system 20b (S 110 and S 114). , S 116).

그리고, 제 2 클라이언트 시스템(20b)은 서버 시스템(10)으로부터 파일(40)의 데이터를 전송받으면, 전송받은 파일(40) 데이터의 블록 번호 정보와, 자신이 할당받은 고유 번호가 포함되는 ACK 메시지를 서버 시스템으로 전송한다(S 111, S 115, S 117).When the second client system 20b receives the data of the file 40 from the server system 10, the second client system 20b includes an ACK message including block number information of the received file 40 data and a unique number assigned thereto. Is transmitted to the server system (S 111, S 115, S 117).

이상 본 발명의 바람직한 실시예에 대해 상세히 기술되었지만, 본 발명이 속하는 기술분야에 있어서 통상의 지식을 가진 사람이라면, 첨부된 청구 범위에 정의된 본 발명의 기술적사상 및 범위를 벗어나지 않으면서 본 발명을 여러 가지로 변형 또는 변경하여 실시할 수 있음을 알 수 있을 것이다. 따라서 본 발명의 앞으로의 실시예들의 변경은 본 발명의 기술을 벗어날 수 없을 것이다.Although described in detail with respect to preferred embodiments of the present invention, those skilled in the art to which the present invention pertains, the present invention without departing from the spirit and scope of the invention defined in the appended claims It will be appreciated that various modifications or changes can be made. Therefore, changes in the future embodiments of the present invention will not be able to escape the technology of the present invention.

상기한 바와 같이, 본 발명에 따르면, 하나의 서버 시스템에 다수개의 클라이언트 시스템이 연결되어 동시에 파일 전송을 요청하는 경우라도 각 클라이언트 시스템에 요청한 파일의 데이터를 오류 없이 수신할 수 있는 효과가 있다.As described above, according to the present invention, even when a plurality of client systems are connected to one server system to request file transfers at the same time, data of the requested file can be received without error.

또한, 기존의 TFTP의 1:1 전송 방식에서 탈피하여, 1:N 전송 방식으로 파일의 데이터를 전송할 수 있음으로 파일 데이터의 전송 속도를 극대화할 수 있는 효과가 있다.In addition, by deviating from the 1: 1 transfer method of the conventional TFTP, the data of the file can be transmitted by the 1: N transmission method, thereby maximizing the transmission speed of the file data.

도 1은 본 발명에 적용되는 파일 전송 시스템의 전체 구성을 설명하기 위한 전체 블록 도면.BRIEF DESCRIPTION OF THE DRAWINGS Fig. 1 is an overall block diagram illustrating the overall configuration of a file transfer system applied to the present invention.

도 2a는 본 발명의 바람직한 실시예에 따른 RRQ 메시지 구조를 나타내는 도면.2A illustrates an RRQ message structure in accordance with a preferred embodiment of the present invention.

도 2b는 본 발명에 따른 RRQ 메시지의 포맷에 실제 수치를 적용하는 것을 설명하기 위한 도면.FIG. 2B is a diagram illustrating the application of an actual number to the format of an RRQ message in accordance with the present invention. FIG.

도 3a는 본 발명에 이용되는 서버 시스템이 전송하는 OACK 응답 메시지의 구조를 나타내는 도면.3A is a diagram illustrating a structure of an OACK response message transmitted by a server system used in the present invention.

도 3b는 본 발명에 따른 OACK 메시지의 포맷에 실제 수치를 적용하는 것을 설명하기 위한 도면.3B is a diagram for explaining the application of actual values to the format of an OACK message according to the present invention.

도 4는 본 발명의 따른 클라이언트 시스템이 전송하는 ACK 메시지를 설명하기 위한 도면.4 is a diagram illustrating an ACK message transmitted by a client system according to the present invention.

도 5는 본 발명에 따른 서버 시스템이 전송하는 데이터를 설명하기 위한 도면.5 is a view for explaining data transmitted by the server system according to the present invention.

도 6은 본 발명의 일실시예에 따른 파일 전송 방법의 흐름을 설명하는 흐름도.6 is a flowchart illustrating a flow of a file transfer method according to an embodiment of the present invention.

<도면의 주요 부분에 대한 부호의 설명><Explanation of symbols for the main parts of the drawings>

10 : 서버 시스템 14 : TFTP 서버10: server system 14: TFTP server

20a~20n : 클라이언트 시스템 24a~24n : TFTP 클라이언트20a ~ 20n: Client System 24a ~ 24n: TFTP Client

Claims (16)

파일 전송 시스템에 있어서, In a file transfer system, 다중 클라이언트 옵션이 포함된 간단한 파일전송프로토콜(TFTP)의 확장된 읽기 요청 메시지(RRQ)를 전송하고, 옵션 수용 여부 응답 메시지(OACK)를 통해 할당되는 고유 번호 정보를 확인하여, 해당 파일 데이터를 수신하는 적어도 하나 이상의 클라이언트 시스템; 및Send an extended read request message (RRQ) of a simple file transfer protocol (TFTP) with multiple client options, check the unique number information assigned through an option acknowledgment message (OACK), and receive the file data. At least one client system; And 상기 클라이언트 시스템으로부터 확장된 읽기 요청 메시지가 수신되면, 해당 클라이언트 시스템에 할당하는 고유 번호 정보가 포함되는 옵션 수용 여부 응답 메시지 및 상기 할당하는 고유 번호 정보가 포함된 파일 데이터를 전송하는 서버 시스템을 포함하는 파일 전송 시스템.If an extended read request message is received from the client system, the server system transmits an option acknowledgment message including the unique number information to be assigned to the client system and file data including the unique number information to be allocated. File transfer system. 제 1 항에 있어서, 상기 확장된 읽기 요청 메시지는,The method of claim 1, wherein the extended read request message, 메시지 종류에 대한 값을 나타내는 오퍼레이팅 코드 필드;An operating code field indicating a value for a message type; 파일네임을 ASCⅡ 코드로 부호화한 파일네임 필드;A file name field encoded with an ASCII code file name; 전송 모드를 정의하는 모드 필드;A mode field defining a transmission mode; 다중 클라이언트 시스템을 지원하기 위한 옵션 필드; 및An option field for supporting multiple client systems; And 옵션필드의 밸류값을 정의하기 위한 마스크 비트 필드를 포함하는 파일 전송 시스템.File transfer system including a mask bit field for defining the value of the option field. 제 1 항에 있어서, 상기 옵션 수용 여부 응답 메시지는,The method of claim 1, wherein the option acceptance message is: 메시지 종류에 대한 값을 나타내는 오퍼레이팅 코드 필드;An operating code field indicating a value for a message type; 다중 클라이언트 시스템을 지원하기 위한 다중 클라이언트 필드; 및Multiple client fields to support multiple client systems; And 상기 클라이언트 시스템에 할당되는 고유 번호 정보를 알려주는 고유 번호 필드를 포함하는 파일 전송 시스템.And a unique number field for indicating unique number information assigned to the client system. 제 1항에 있어서, 상기 서버 시스템은, The method of claim 1, wherein the server system, 최초 읽기 요청 메시지를 전송한 클라이언트 시스템에 랜덤한 고유 번호 정보를 할당하고, 다음 읽기 요청 메시지를 전송하는 클라이언트 시스템에 상기 고유 번호 정보를 증가시켜 해당 클라이언트 시스템에 할당하는 것을 특징으로 하는 파일 전소 시스템.And assigning random unique number information to the client system that transmitted the first read request message, and incrementing the unique number information to the client system transmitting the next read request message and allocating the unique number information to the corresponding client system. 제 1항에 있어서, 상기 서버 시스템은,The method of claim 1, wherein the server system, 상기 파일 데이터의 시퀸스를 보장하기 위하여, 상기 파일 데이터의 블록 번호 정보 및 고유 번호 정보가 포함되는 파일 데이터를 전송하는 것을 특징으로 하는 파일 전송 시스템.And transmitting file data including block number information and unique number information of the file data in order to ensure the sequence of the file data. 제 1항에 있어서, 상기 각 클라이언트 시스템은,The system of claim 1, wherein each client system comprises: 상기 서버 시스템으로부터 전송되는 파일 데이터에 포함된 블록 번호 정보 및 고유 번호 정보를 파악하여, 상기 고유 번호 정보가 상기 옵션 수용 여부 응답 메시지를 통해 할당된 고유 번호 정보와 동일하면, 상기 파일 데이터를 수신하고, 상기 블록 번호 정보가 포함된 응답 메시지(ACK)를 상기 서버 시스템으로 전송하는 것을 특징으로 하는 파일 전송 시스템.The block number information and the unique number information included in the file data transmitted from the server system are identified. If the unique number information is the same as the unique number information allocated through the option acknowledgment response message, the file data is received. And transmitting a response message (ACK) including the block number information to the server system. 제 1항에 있어서, 상기 서버 시스템은, The method of claim 1, wherein the server system, 다중 클라이언트 옵션 기능을 지원하지 못하는 경우, 임의의 클라이언트 시스템으로부터 다중 클라이언트 파일 전송을 요청하는 확장된 읽기 요청 메시지가 전송되면, 서버 시스템이 해당 클라이언트로 에러 메시지를 전송하거나, 지원할 수 있는 기능만을 추가하여 클라이언트로 옵션 수용 여부 응답 메시지(OACK)를 전송하는 것을 특징으로 하는 파일 전송 시스템.If the multi-client optional feature is not supported, and an extended read request message is sent from any client system requesting a multi-client file transfer, the server system can only send an error message to that client or add support for it. A file transfer system comprising transmitting an option acknowledgment message (OACK) to a client. 파일 전송 시스템의 파일 전송 방법에 있어서,In the file transfer method of the file transfer system, 제 1 클라이언트 시스템이 서버 시스템으로 다중 클라이언트 파일 전송을 요청하는 확장된 읽기 요청 메시지(RRQ)를 전송하는 단계;Sending, by the first client system, an extended read request message (RRQ) requesting multiple client file transfers to the server system; 상기 서버 시스템이 상기 제 1 클라이언트에 고유 번호 정보를 할당하고, 상기 고유 번호 정보가 포함되는 옵션 수용 여부 응답 메시지(OACK)를 전송하는 단계;The server system assigning unique number information to the first client and transmitting an option acknowledgment message (OACK) including the unique number information; 상기 제 1 클라이언트 시스템이 상기 서버로 할당되는 고유 번호 정보가 포함되는 응답 메시지(ACK)를 전송하는 단계;Transmitting, by the first client system, an acknowledgment message (ACK) containing unique number information allocated to the server; 상기 서버 시스템이 상기 제 1 클라이언트로 고유 번호 정보가 포함되는 파일 데이터를 전송하는 단계;Transmitting, by the server system, file data including unique number information to the first client; 상기 제 1 클라이언트 시스템이 네트워크를 통해 전송되는 상기 파일 데이터에 포함된 고유 번호 정보가 할당된 고유 번호 정보와 동일한지 여부를 확인하여 동일하면 수신하는 단계를 포함하는 파일 전송 시스템에서 파일 전송 방법.And checking, by the first client system, whether the unique number information included in the file data transmitted through the network is the same as the assigned unique number information and receiving the same if the same. 제 8항에 있어서, The method of claim 8, 제 2 클라이언트 시스템으로부터 다중 클라이언트 파일 전송을 요청하는 읽기 요청 메시지(RRQ)가 수신되면, 상기 제 2 클라이언트 시스템에 고유 번호 정보를 할당하여, 옵션 수용 여부 응답 메시지(OACK)를 전송하는 단계;If a read request message (RRQ) is received from the second client system requesting multi-client file transfer, assigning unique number information to the second client system, and transmitting an option acknowledgment message (OACK); 상기 제 2 클라이언트 시스템이 상기 고유 번호 정보를 파악하고, 상기 고유 번호 정보가 포함되는 응답 메시지(ACK)를 전송하는 단계;Identifying, by the second client system, the unique number information, and transmitting a response message (ACK) including the unique number information; 상기 서버 시스템이 상기 제 1 클라이언트 시스템의 고유 번호 정보가 포함되는 파일 데이터를 전송하면서, 상기 제 2 클라이언트 시스템의 고유 번호 정보가 포함되는 파일 데이터를 전송하는 단계;Transmitting, by the server system, the file data including the unique number information of the first client system and the file data including the unique number information of the second client system; 상기 제 2 클라이언트 시스템이 네트워크를 통해 전송되는 파일 데이터의 고유 번호 정보가 자신의 고유 번호 정보와 동일하면, 상기 파일 데이터를 수신하는 단계를 더 포함하는 파일 전송 시스템에서 파일 전송 방법.And receiving, by the second client system, the file data if the unique number information of the file data transmitted through the network is the same as the unique number information thereof. 제 8항에 있어서, 상기 고유 번호 정보는,The method of claim 8, wherein the unique number information, 최초 읽기 요청 메시지를 전송한 제 1 클라이언트 시스템에 랜덤한 고유 번호 정보를 할당한 후, 다음 읽기 요청 메시지를 전송하는 제 2 클라이언트 시스템에 상기 랜덤한 고유 번호 정보를 증가시켜 할당하는 것을 특징으로 하는 파일 전송 시스템에서 파일 전송 방법.And assigning random unique number information to the first client system that has transmitted the first read request message, and then incrementing and assigning the random unique number information to the second client system that transmits the next read request message. How to transfer files on transfer system. 제 8 항에 있어서, 상기 확장된 읽기 요청 메시지는,The method of claim 8, wherein the extended read request message, 메시지 종류에 대한 값을 나타내는 오퍼레이팅 코드 필드;An operating code field indicating a value for a message type; 파일네임을 ASCⅡ 코드로 부호화한 파일네임 필드;A file name field encoded with an ASCII code file name; 전송 모드를 정의하는 모드 필드;A mode field defining a transmission mode; 다중 클라이언트 시스템을 지원하기 위한 옵션 필드; 및An option field for supporting multiple client systems; And 옵션필드의 밸류값을 정의하기 위한 마스크 비트 필드를 포함하는 파일 전송 시스템에서 파일 전송 방법.A file transfer method in a file transfer system including a mask bit field for defining a value of an option field. 제 8 항에 있어서, 상기 옵션 수용 여부 응답 메시지는,The method of claim 8, wherein the option acceptance message, 메시지 종류에 대한 값을 나타내는 오퍼레이팅 코드 필드;An operating code field indicating a value for a message type; 다중 클라이언트 시스템을 지원하기 위한 다중 클라이언트 필드; 및Multiple client fields to support multiple client systems; And 상기 클라이언트 시스템에 할당되는 고유 번호 정보를 알려주는 고유 번호 필드를 포함하는 파일 전송 시스템에서 파일 전송 방법.And a unique number field for indicating unique number information allocated to the client system. 제 8 항에 있어서, The method of claim 8, 상기 서버 시스템이 다중 클라이언트 옵션 기능을 지원하지 못하는 경우, 임의의 클라이언트 시스템으로부터 다중 클라이언트 파일 전송을 요청하는 확장된 읽기 요청 메시지가 전송되면, 서버 시스템이 해당 클라이언트로 에러 메시지를 전송하는 단계를 더 포함하는 것을 특징으로 하는 파일 전송 시스템에서 파일 전송 방법.If the server system does not support the multi-client option function, if an extended read request message is sent from any client system requesting the multi-client file transfer, the server system further includes sending an error message to the client. File transfer method in a file transfer system, characterized in that. 제 8 항에 있어서, The method of claim 8, 상기 서버 시스템이 다중 클라이언트 옵션 기능을 지원하지 못하는 경우, 임의의 클라이언트 시스템으로부터 다중 클라이언트 파일전송을 요청하는 확장된 읽기 요청 메시지가 전송되면, 상기 서버 시스템이 지원할 수 있는 기능만을 추가하여 클라이언트로 옵션 수용 여부 응답 메시지(OACK)를 전송하는 단계를 더 포함하는 것을 특징으로 하는 파일 전송 시스템에서 파일 전송 방법.If the server system does not support the multi-client option function, if an extended read request message is sent from any client system requesting the multi-client file transfer, the server system adds only the functions that the server system can support to accommodate the option. And transmitting an acknowledgment message (OACK). 제 8항에 있어서, 상기 파일 데이터 전송은,The method of claim 8, wherein the file data transfer, 해당 클라이언트 시스템에 할당한 고유 번호 정보와, 상기 파일의 시퀸스를 보장하기 위한 블록 번호 정보가 포함된 파일 데이터를 전송하는 것을 특징으로 하는 파일 전송 시스템에서 파일 전송 방법.And transmitting file data including unique number information allocated to a corresponding client system and block number information for guaranteeing a sequence of the file. 제 8항에 있어서, 상기 각 클라이언트 시스템은,10. The system of claim 8, wherein each client system comprises: 상기 서버 시스템으로부터 전송되는 파일 데이터의 고유 번호 정보와, 블록 번호 정보를 파악하여, 자신에게 할당된 고유 번호 정보이면, 상기 파일 데이터를 수신하고, 상기 블록 번호 정보 및 고유 번호 정보가 포함되는 응답 메시지(ACK)를 전송하는 것을 특징으로 하는 파일 전송 시스템에서 파일 전송 방법.Recognizes the unique number information and the block number information of the file data transmitted from the server system, and receives the file data if the unique number information is assigned to itself, and includes a response message including the block number information and the unique number information. A file transfer method in a file transfer system, characterized by transmitting (ACK).
KR1020040008084A 2004-02-06 2004-02-06 apparatus and method of file transfer in File Transfer System KR100590886B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020040008084A KR100590886B1 (en) 2004-02-06 2004-02-06 apparatus and method of file transfer in File Transfer System

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020040008084A KR100590886B1 (en) 2004-02-06 2004-02-06 apparatus and method of file transfer in File Transfer System

Publications (2)

Publication Number Publication Date
KR20050079589A true KR20050079589A (en) 2005-08-10
KR100590886B1 KR100590886B1 (en) 2006-06-19

Family

ID=37266497

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040008084A KR100590886B1 (en) 2004-02-06 2004-02-06 apparatus and method of file transfer in File Transfer System

Country Status (1)

Country Link
KR (1) KR100590886B1 (en)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6185623B1 (en) 1997-11-07 2001-02-06 International Business Machines Corporation Method and system for trivial file transfer protocol (TFTP) subnet broadcast
US6170008B1 (en) 1998-12-07 2001-01-02 Mediaone Group, Inc. On-the-fly trivial file transfer protocol
KR100590186B1 (en) * 1999-11-09 2006-06-14 삼성전자주식회사 The File Transfer System using TFTP operated in HTTP
KR20030016740A (en) * 2001-08-21 2003-03-03 엘지전자 주식회사 Tftp file transmission system and a automatic software upgrade method thereof
KR20030037917A (en) * 2001-11-07 2003-05-16 엘지전자 주식회사 TFTP File Downloading Method

Also Published As

Publication number Publication date
KR100590886B1 (en) 2006-06-19

Similar Documents

Publication Publication Date Title
EP1564959B1 (en) System and method for trivial file transfer protocol including broadcasting function
KR100590886B1 (en) apparatus and method of file transfer in File Transfer System
Cisco SLIP and PPP Configuration Commands
Cisco SLIP and PPP Configuration Commands
Cisco SLIP and PPP Configuration Commands
Cisco SLIP and PPP Configuration Commands
Cisco SLIP and PPP Configuration Commands
Cisco SLIP and PPP Configuration Commands
Cisco SLIP and PPP Configuration Commands
Cisco SLIP and PPP Configuration Commands
Cisco SLIP and PPP Configuration Commands
Cisco SLIP and PPP Configuration Commands
Cisco SLIP and PPP Configuration Commands
Cisco SLIP and PPP Configuration Commands
Cisco SLIP and PPP Configuration Commands
Cisco SLIP and PPP Configuration Commands
Cisco SLIP and PPP Configuration Commands
Cisco SLIP and PPP Configuration Commands
Cisco SLIP and PPP Configuration Commands
Cisco SLIP and PPP Configuration Commands
Cisco SLIP and PPP Configuration Commands
Cisco SLIP and PPP Configuration Commands
Cisco SLIP and PPP Configuration Commands
Cisco SLIP and PPP Configuration Commands
Cisco SLIP and PPP Configuration Commands

Legal Events

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