KR100844999B1 - 로컬 네트워크를 통해 연결되어 있는 로컬 서버들과 외부서버간의 데이터 전송 방법 및 시스템 - Google Patents

로컬 네트워크를 통해 연결되어 있는 로컬 서버들과 외부서버간의 데이터 전송 방법 및 시스템 Download PDF

Info

Publication number
KR100844999B1
KR100844999B1 KR1020060099637A KR20060099637A KR100844999B1 KR 100844999 B1 KR100844999 B1 KR 100844999B1 KR 1020060099637 A KR1020060099637 A KR 1020060099637A KR 20060099637 A KR20060099637 A KR 20060099637A KR 100844999 B1 KR100844999 B1 KR 100844999B1
Authority
KR
South Korea
Prior art keywords
server
local
data
control message
servers
Prior art date
Application number
KR1020060099637A
Other languages
English (en)
Other versions
KR20080033678A (ko
Inventor
임승빈
Original Assignee
임승빈
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 임승빈 filed Critical 임승빈
Priority to KR1020060099637A priority Critical patent/KR100844999B1/ko
Publication of KR20080033678A publication Critical patent/KR20080033678A/ko
Application granted granted Critical
Publication of KR100844999B1 publication Critical patent/KR100844999B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/20Support for services
    • H04L49/201Multicast operation; Broadcast operation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/611Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for multicast or broadcast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

본 발명은 로컬 서버들과 외부 서버간의 데이터 전송 방법 및 시스템에 관한 것으로서, 로컬 네트워크를 통해 연결되어 있는 적어도 하나 이상의 로컬 서버들 중 어느 하나인 제1 서버가 외부 서버가 연결되어 외부 서버로부터 데이터를 수신하고 상기 수신한 데이터를 로컬 네트워크를 통해 연결되어 있는 적어도 하나 이상의 다른 로컬 서버로 데이터를 전송하는 방법에 있어서, 상기 적어도 하나 이상의 다른 로컬 서버들이 상기 제1 서버로부터 로컬 네트워크를 통해 자신이 외부 서버와 직접 연결되어 데이터를 수신하고 있다는 것을 알리는 제1 제어 메시지가 소정 주기 내에 수신되지 않는 경우, 상기 적어도 하나 이상의 다른 로컬 서버들 중 어느 하나를 상기 외부 서버와 직접 연결할 중계 서버로 결정하는 단계; 상기 중계 서버로 결정된 로컬 서버가 상기 외부 서버에 접속하여 데이터를 수신하고 수신한 데이터를 로컬 네트워크를 통해 연결되어 있는 다른 로컬 서버들로 전송하는 단계; 및 상기 중계 서버로 결정된 로컬 서버가 로컬 네트워크를 통해 자신이 외부 서버와 직접 연결되어 데이터를 수신하고 있다는 것을 알리는 제1 제어 메시지를 전송하는 단계를 포함하는 데이터 전송 방법을 제공한다.
중계 서버, 멀티캐스팅

Description

로컬 네트워크를 통해 연결되어 있는 로컬 서버들과 외부 서버간의 데이터 전송 방법 및 시스템{METHOD AND SYSTEM FOR DATA TRANSMITTING BETWEEN LOCAL SERVERS CONNECTED TO EACH OTHER VIA LOCAL NETWORK AND OUTSIDE SERVER}
도 1은 종래의 데이터 전송 방법을 설명하기 위한 도면,
도 2는 본 발명에 의한 데이터 전송 방법의 원리를 설명하기 위해 로컬 네트워크를 통해 서로 연결되어 있는 로컬 서버와 외부 서버의 관계를 설명하기 위한 도면,
도 3은 본 발명에 따른 데이터 전송 방법의 일실시예가 수행되는 과정을 설명하기 위한 흐름도,
도 4는 제어 메시지의 구성의 일예를 나타낸 도면,
도 5는 중계 서버에서 로컬 서버로 전송되는 데이터를 패킷 구조를 설명하기 위한 도면,
도 6은 본 발명에 따른 데이터 전송 방법을 구현하기 위한 중계 서버 및 로컬 서버의 내부 구성을 나타낸 블록도이다.
<도면 주요 부분의 부호에 대한 설명>
100...외부 서버,
200,300,400,500...로컬 서버,
본 발명은 로컬 서버들과 외부 서버간의 데이터 전송 방법 및 시스템에 관한 것으로서, 보다 상세하게는 로컬 네트워크를 통해 서로 연결되어 있는 로컬 서버들과 상기 로컬 서버들 중 어느 하나가 외부 서버와 연결되어 외부 서버로부터 데이터를 전송받아 이를 로컬 네트워크를 통해 다른 로컬 서버들에게 전송하기 위한 방법 및 시스템에 관한 것이다.
최근, 인터넷 등과 같은 컴퓨터 네트워크의 급속한 발전과 더불어 대용량의 데이터를 실시간으로 전송하는 여러 가지 방법이 사용되고 있다. 예컨대, 증권 거래 분야나 각종 금융 기관의 경우에는 동시에 다수의 사용자들이 접속하므로 실시간으로 대용량의 데이터를 처리하기 위해 복수개의 서버를 설치하여 다수의 사용자들에게 동시에 데이터를 전송하고 있다. 그러나, 이러한 경우 복수개의 서버들은 동일한 시간에 동일한 데이터를 보유하고 있어야 하며 또한 어느 하나의 서버에 고장이 발생한 경우에 대처할 수 있도록 이들은 대부분 미러링(mirroring) 등과 같은 방식에 의하여 같은 데이터를 저장하도록 되어 있다.
도 1은 이러한 연결 상태를 나타낸 도면으로서, 도 1을 참조하면, 원시 데이터를 저장하고 있는 외부 서버(10)와 이 외부 서버와 각각 연결되어 있는 복수개의 로컬 서버(20,30,40,50)를 나타낸 것이다. 이들 로컬 서버(20,30,40,50)들은 같은 로컬 네트워크에 속해 있을 수도 있고 물리적으로 다른 네트워크에 포함되어 있을 수도 있다. 외부 서버(10) 또한 동일한 데이터를 저장하는 복수개의 서버로 구성될 수 있으며 이 외부 서버(10) 상단에 별도의 원시 데이터를 보유하는 서버가 존재할 수도 있다. 어떠한 경우에든 최하단의 로컬 서버(20,30,40,50)들은 외부 서버(10)로부터 동일한 시간대에 동일한 데이터를 수신할 수 있도록 구성되어야 한다. 그러나, 이러한 종래의 구조하에서는, 로컬 서버(20,30,40,50)들은 각각 외부 서버(10)와 연결되어 각각 데이터를 송수신하게 되므로, 그만큼에 비례하여 네트워크 대역폭을 점유하게 된다는 근본적인 한계점이 있다. 로컬 서버가 더 추가되면 그 갯수에 비례하여 그만큼의 대역폭을 점유하게 될 것이다.
본 발명은 상기한 바와 같은 한계점을 극복하기 위한 것으로서, 로컬 네트워크를 통해 서로 연결되어 있는 로컬 서버들 중 어느 하나만을 외부 서버와 연결시켜 외부 서버로부터 데이터를 수신하도록 하고, 수신된 데이터는 로컬 네트워크를 통해 다른 로컬 서버들로 전송하도록 함으로써, 네트워크 대역폭을 현저하게 감소시키고 실시간 대용량 데이터를 처리하기 위한 서버와 네트워크의 유지 및 관리 비용을 대폭 절감할 수 있도록 하는 효율적인 데이터 전송 방법 및 시스템을 제공하는 것을 목적으로 한다.
또한, 본 발명은 외부 서버와 연결된 로컬 서버에 고장이 발생한 경우에도 이 로컬 서버와 로컬 네트워크를 통해 연결되어 있는 다른 로컬 서버 중의 어느 하나가 고장이 발생한 로컬 서버의 역할을 대신하도록 함으로써 외부 서버와의 연결 및 로컬 네트워크를 통한 로컬 서버와의 데이터 전송을 신뢰성있게 유지할 수 있도록 하는 데이터 전송 방법 및 시스템을 제공하는 것을 또 다른 목적으로 한다.
상기한 바와 같은 목적을 달성하기 위하여 본 발명은, 로컬 네트워크를 통해 서로 연결되는 복수개의 로컬 서버 중 어느 하나를 통해 외부 서버와 데이터를 송수신하는 방법에 있어서, 로컬 네트워크에 제1 로컬 서버가 접속한 경우 상기 로컬 네트워크에 접속되어 있는 다른 로컬 서버가 존재하지 않는 경우 또는 상기 로컬 네트워크에 접속되어 있는 다른 모든 로컬 서버로부터 외부 서버와 직접 연결되어 데이터를 수신하고 있다는 것을 알리는 제1 제어 메시지가 수신되지 않는 경우, 상기 제1 로컬 서버가 외부 서버와 직접 접속하여 데이터를 수신하는 동시에 상기 로컬 네트워크를 통해 자신이 외부 서버와 직접 연결되어 데이터를 수신하고 있다는 것을 알리는 제1 제어 메시지를 전송하고, 로컬 네트워크에 제1 로컬 서버가 접속한 경우 상기 로컬 네트워크에 접속되어 있는 다른 로컬 서버 중 어느 하나인 제2 로컬 서버로부터 자신이 외부 서버와 직접 연결되어 데이터를 수신하고 있다는 것을 알리는 제1 제어 메시지를 수신한 경우, 상기 제2 로컬 서버에 접속하여 상기 제2 로컬 서버로부터 데이터를 수신하는 동시에 상기 로컬 네트워크를 통해 자신이 로컬 서버 중 어느 하나에 접속하여 데이터를 수신하고 있음을 알리는 제2 제어 메 시지를 전송하는 것을 특징으로 하는 데이터 송수신 방법을 제공할 수 있다.
여기에서, 상기 제2 로컬 서버로부터 제1 로컬 서버로 전송되는 데이터는 멀티캐스팅에 의해 전송될 수 있다.
삭제
본 발명의 다른 측면에 의하면, 로컬 네트워크를 통해 연결되어 있는 적어도 하나 이상의 로컬 서버들 중 어느 하나인 제1 서버가 외부 서버가 연결되어 외부 서버로부터 데이터를 수신하고 상기 수신한 데이터를 로컬 네트워크를 통해 연결되어 있는 적어도 하나 이상의 다른 로컬 서버로 데이터를 전송하는 방법에 있어서, 상기 적어도 하나 이상의 다른 로컬 서버들이 상기 제1 서버로부터 로컬 네트워크를 통해 자신이 외부 서버와 직접 연결되어 데이터를 수신하고 있다는 것을 알리는 제1 제어 메시지가 수신되지 않는 경우, 상기 적어도 하나 이상의 다른 로컬 서버들 중 어느 하나를 상기 외부 서버와 직접 연결할 중계 서버로 결정하는 단계-여기서, 상기 적어도 하나 이상의 다른 로컬 서버들은 자신이 상기 제1 서버에 접속하여 데이터를 수신하고 있음을 알리는 제2 제어 메시지를 상기 로컬 네트워크를 통해 전송함-; 상기 중계 서버로 결정된 로컬 서버가 상기 외부 서버에 접속하여 데이터를 수신하고 수신한 데이터를 로컬 네트워크를 통해 연결되어 있는 다른 로컬 서버들로 전송하는 단계; 및 상기 중계 서버로 결정된 로컬 서버가 로컬 네트워크를 통해 자신이 외부 서버와 직접 연결되어 데이터를 수신하고 있다는 것을 알리는 제1 제어 메시지를 전송하는 단계를 포함하는 데이터 전송 방법을 제공할 수 있다.
여기에서, 상기 제1 제어 메시지 및 제2 제어 메시지는 로컬 서버 자신의 IP 주소를 더 포함하며, 상기 적어도 하나 이상의 다른 로컬 서버들 중 어느 하나를 상기 외부 서버와 직접 연결할 중계 서버로 결정하는 단계는 상기 제1 제어 메시지 및 제2 제어 메시지에 포함된 로컬 서버들의 IP 주소에 의거하여 중계 서버를 결정할 수 있다.
또한, 상기 적어도 하나 이상의 다른 로컬 서버들 중 어느 하나를 상기 외부 서버와 직접 연결할 중계 서버로 결정하는 단계는 상기 로컬 서버들의 IP 주소 중 가장 큰 IP 주소를 갖는 로컬 서버를 중계 서버로 결정할 수 있다.
또한, 상기 제1 제어 메시지 및 제2 제어 메시지는 로컬 서버 자신의 중앙 처리 장치의 사용량, 메모리 사용량, 네트워크 사용량 및 서버 가동 시간에 대한 데이터를 적어도 어느 하나 이상 더 포함하며, 상기 적어도 하나 이상의 다른 로컬 서버들 중 어느 하나를 상기 외부 서버와 직접 연결할 중계 서버로 결정하는 단계는 상기 데이터들 중 적어도 어느 하나 이상 또는 그 조합에 의거하여 중계 서버를 결정할 수 있다.
또한, 상기 중계 서버로 결정된 로컬 서버가 상기 외부 서버에 접속하여 데이터를 수신하고 수신한 데이터를 로컬 네트워크를 통해 다른 로컬 서버들로 전송하는 단계에 있어서, 상기 다른 로컬 서버들로 전송되는 데이터는 멀티캐스팅에 의해 전송될 수 있다.
또한, 상기 다른 로컬 서버들로 전송되는 데이터는 UDP(User datagram protocol)에 의해 전송될 수 있다.
또한, 상기 중계 서버로 결정된 로컬 서버가 로컬 네트워크를 통해 중계 서버 존재 메시지가 포함된 제1 제어 메시지를 전송하는 단계 이후, 상기 중계 서버로 결정된 로컬 서버 이외의 다른 로컬 서버가 상기 중계 서버로 결정된 로컬 서버로부터 수신되는 데이터의 오류 여부를 검증하고 오류가 있는 경우 상기 중계 서버로 결정된 로컬 서버로 데이터의 재전송을 요청하고 이에 상응하여 중계 서버로부터 재전송 데이터를 수신할 수 있다.
또한, 상기 중계 서버로부터 전송되는 재전송 데이터는 TCP(Transmission control protocol)에 의해 전송될 수 있다.
또한, 상기 제1 제어 메시지 및 제2 제어 메시지는 멀티캐스팅에 의해 로컬 네트워크를 통해 전송될 수 있다.
본 발명의 또 다른 측면에 의하면, 외부 서버와 직접 연결되어 외부 서버로부터 데이터를 송수신하는 제1 로컬 서버와, 상기 제1 로컬 서버와 로컬 네트워크를 통해 연결된 적어도 하나 이상의 다른 로컬 서버들로 구성된 데이터 송수신 시스템에 있어서, 상기 제1 로컬 서버는, 외부 서버로부터 전송되는 데이터를 수신하는 데이터 수신부; 상기 외부 서버로부터 수신한 데이터를 상기 적어도 하나 이상의 다른 로컬 서버들로 로컬 네트워크를 통해 전송하는 로컬 데이터 전송부; 및 외부 서버와 직접 연결되어 데이터를 수신하고 있다는 것을 알리는 제1 제어 메시지를 로컬 네트워크를 통해 상기 적어도 하나 이상의 다른 로컬 서버들로 전송하는 제어 메시지 전송부를 포함하고, 상기 적어도 하나 이상의 다른 로컬 서버들은, 상 기 제1 로컬 서버로부터 전송되는 로컬 데이터를 수신하는 로컬 데이터 수신부; 자신이 로컬 서버 중 어느 하나에 접속하여 데이터를 수신하고 있음을 알리는 제2 제어 메시지를 전송하는 제어 메시지 전송부; 및 상기 제1 제어 메시지와 상기 제2 제어 메시지를 수신하는 제어 메시지 수신부를 포함하는 것을 특징으로 하는 데이터 송수신 시스템을 제공할 수 있다.
여기에서, 상기 적어도 하나 이상의 다른 모든 로컬 서버들의 상기 제어 메시지 수신부가 상기 제1 로컬 서버로부터 전송되는 제1 제어 메시지를 수신하지 못하는 경우 상기 적어도 하나 이상의 다른 로컬 서버들 중 어느 하나를 상기 외부 서버와 직접 연결할 중계 서버로 결정하는 중계 서버 결정부를 더 포함하며, 상기 중계 서버 결정부에 의하여 중계 서버로 결정된 로컬 서버는 상기 외부 서버에 접속하여 데이터를 수신하고 수신한 데이터를 로컬 네트워크를 통해 연결되어 있는 다른 로컬 서버들로 전송하도록 구성할 수도 있다.
또한, 상기 제1 제어 메시지 및 제2 제어 메시지는 로컬 서버 자신의 IP 주소를 더 포함하며, 상기 중계 서버 결정부는 상기 제1 제어 메시지 및 제2 제어 메시지에 포함된 상기 로컬 서버들의 IP 주소에 의거하여 중계 서버를 결정할 수 있다.
또한, 상기 중계 서버 결정부는 상기 로컬 서버들의 IP 주소 중 가장 큰 IP 주소를 갖는 로컬 서버를 중계 서버로 결정할 수 있다.
또한, 상기 중계 서버 결정부에 의해 중계 서버로 결정된 로컬 서버의 제어 메시지 전송부는 자신이 로컬 서버 중 어느 하나에 접속하여 데이터를 수신하고 있 음을 알리는 제2 제어 메시지를 전송하는 대신 외부 서버와 직접 연결되어 데이터를 수신하고 있다는 것을 알리는 제1 제어 메시지를 로컬 네트워크를 통해 상기 적어도 하나 이상의 다른 로컬 서버들로 전송할 수 있다.
이하, 첨부 도면을 참조하여 본 발명에 의한 실시예를 상세하게 설명한다,
도 2는 본 발명에 의한 데이터 전송 방법의 원리를 설명하기 위해 로컬 네트워크를 통해 서로 연결되어 있는 로컬 서버와 외부 서버의 관계를 설명하기 위한 도면이다.
도 2를 참조하면, 외부 서버(100)는 원시 데이터를 보유하고 있는 서버이며, 로컬 서버(200,300,400,500)들은 동일한 로컬 네트워크(local network, LAN)에 포함되어 있는 서버로서, 외부 서버(100)로부터 원시 데이터를 수신하도록 되어 있다. 여기에서, 로컬 서버(200,300,400,500) 중 어느 하나의 로컬 서버(200)만이 외부 서버(100)와 직접 연결되어 외부 서버(100)로부터 원시 데이터를 수신하고, 다른 로컬 서버들(300,400,500)은 상기 로컬 서버(200)와 연결되어 이 로컬 서버(200)를 통해 외부 서버(100)로부터 전송되어 오는 데이터를 수신하도록 되어 있다. 바람직하게는, 로컬 서버(200)는 다른 로컬 서버(300,400,500)로 동시에 데이터를 전송할 수 있도록 UDP(User Datagram Protocol)에 따른 멀티캐스팅 방식에 의하여 데이터를 전송하고, 외부 서버(100)와 로컬 서버(200)간의 데이터 전송은 데이터 송수신 오류를 보다 확실하게 검증할 수 있도록 TCP(Transmission Control Protocol) 방식에 따라 데이터를 전송한다.
도 3은 도 2와 같은 연결 상태에서, 본 발명에 따른 데이터 전송 방법의 일실시예가 수행되는 과정을 설명하기 위한 흐름도이다.
도 3을 참조하면, 우선 로컬 서버(200,300,400,500)들 중 어느 하나가 로컬 네트워크에 접속한 경우 우선 로컬 네트워크 상에 제1 제어 메시지가 존재하는지를 확인한다(S1000). 제1 제어 메시지라 함은, 외부 서버와 직접 연결되어 데이터를 수신하는 로컬 서버가 자신이 외부 서버와 직접 연결되어 데이터를 수신하고 있음을 알리기 위한 메시지를 의미하며, 이하 동일한 의미로 사용한다. 이러한 제1 제어 메시지가 존재하지 않는다는 것은 외부 서버와 직접 연결되어 데이터를 수신하는 로컬 서버가 없는 경우이거나 로컬 네트워크 상의 모든 로컬 서버가 고장인 경우이므로 로컬 네트워크에 새로 접속한 로컬 서버가 자신이 외부 서버와 직접 연결하여 데이터를 수신하는 로컬 서버(이러한 역할을 수행하는 로컬 서버를 이하에서는 중계 서버라 한다)가 된다.
이와 같이, 로컬 서버가 중계 서버로 동작하는 경우를 중계 서버 모드라고 하며, 중계 서버인 로컬 서버는 외부 서버와 직접 연결되고(S200) 로컬 네트워크를 통해 자신이 중계 서버로서의 역할을 수행하고 있다는 것을 알리는 제1 제어 메시지를 전송한다(S210). 여기에서, 제1 제어 메시지는 로컬 네트워크에 포함된 다른 모든 로컬 서버들로 동시에 데이터를 전송할 수 있도록 UDP에 따른 멀티캐스팅 방식에 의하여 전송될 수 있다.
다음으로, 외부 서버로부터 데이터를 수신하고(S220) 수신한 데이터를 로컬 네트워크 상에 연결되어 있는 다른 로컬 서버들로 전송(S230)하는 과정을 반복한다. 이 때, 앞서 설명한 바와 같이, 중계 서버는 외부 서버와 TCP에 의해 데이터를 수신하고, 중계 서버는 다른 로컬 서버들에게 UDP에 따른 멀티캐스팅(multicasting) 방식으로 데이터를 동시에 전송하는 것이 바람직하다.
한편, 상기 단계(S100)에서, 제1 제어 메시지가 존재하는 경우 즉, 로컬 네트워크 상에 이미 중계 서버로서의 역할을 수행하는 다른 로컬 서버가 존재하는 경우, 로컬 네트워크에 접속한 로컬 서버는 이미 존재하는 중계 서버에 접속한다(S300). 이 때, 중계 서버에 접속한 로컬 서버는 자신이 중계 서버가 아님을 알리는 메시지 즉, 자신이 중계 서버로부터 데이터를 수신하는 역할만을 수행하고 있음을 알리는 제2 제어 메시지를 로컬 네트워크를 통해 다른 로컬 서버들로 전송한다(S310). 다음으로, 중계 서버에 접속한 로컬 서버는 중계 서버로부터 데이터를 수신(S320)하게 된다.
한편, 상기 단계(S100)에서 제1 제어 메시지가 존재하는 경우 로컬 서버는 중계 서버에 접속하는 동시에(S300), 소정 주기마다 로컬 네트워크를 통해 제1 제어 메시지가 수신되는지 여부를 계속 확인한다(S330). 이는 중계 서버가 고장없이 제대로 역할을 수행하는가를 판단하기 위한 것이다. 소정 주기마다 제1 제어 메시지가 수신된다면, 중계 서버가 고장없이 제대로 작동된다는 것이므로 특별한 과정 수행 없이 계속 소정 주기마다 제1 제어 메시지 존재 여부를 확인한다.
만약, 소정 주기마다 제1 제어 메시지가 수신되지 않는다면 중계 서버에 고장이 발생한 경우이므로, 자신이 중계 서버의 역할을 수행할 것인지를 결정한다(S340).
이 때, 로컬 네트워크에 연결된 복수개의 로컬 서버 중에서 어느 로컬 서버가 중계 서버로서의 역할을 수행할 것인가를 결정하기 위하여, 제어 메시지를 사용할 수 있다. 앞서 설명한 바와 같은 제1 제어 메시지 또는 제2 제어 메시지에 부가하여 로컬 서버 자신의 정보를 포함시키도록 구성하고, 이들 제어 메시지에 포함된 로컬 서버들의 정보에 의해 중계 서버로서의 역할을 수행할 로컬 서버를 결정할 수 있다.
도 4는 이러한 제어 메시지의 구성의 일예를 나타낸 것이다. 도 4에 나타낸 바와 같이, 제1 제어 메시지 또는 제2 제어 메시지에 로컬 서버 자신의 IP 주소, CPU 사용량, 메모리 사용량, 네트워크 사용량, 시스템 가동 시간 등의 정보를 포함하도록 하고, 이들 중 어느 하나 또는 이들의 조합에 의해 또는 가중치를 부여하는 방식등에 의해 중계 서버를 결정할 수 있다. 도 4와 같이 제1 제어 메시지 및 제2 제어 메시지를 구성하는 경우, 제1 제어 메시지와 제2 제어 메시지의 구별은 서버유형 필드에 의해 가능하다. 즉, 외부 서버와 연결되는 중계 서버인 경우와 중계 서버와 연결되어 데이터를 단순히 수신하는 로컬 서버를 구별하여 서버 유형 필드와 같이 구성함으로써 제1 제어 메시지와 제2 제어 메시지를 구별할 수 있다.
한편, IP 주소에 의해 중계 서버를 결정하는 것은 여러 가지 방식을 사용할 수 있으나, 중계 서버의 대치는 빠른 시간 내에 이루어지는 것이 바람직하므로 단순한 알고리듬을 사용하는 것이 바람직할 수 있다. 이를 위하여, 예컨대, IP 주소가 가장 큰 로컬 서버 또는 IP 주소가 가장 작은 로컬 서버 등을 중계 서버로 선택하도록 할 수 있다.
또한, CPU 사용량, 메모리 사용량, 네트워크 사용량 등은 각각의 사용량이 적은 로컬 서버를 중계 서버로 결정하도록 구성할 수 있으며, 시스템 가동시간의 경우에는 시스템 가동시간이 가장 최근인 로컬 서버를 중계 서버로 선택하도록 구성할 수도 있다.
이와 같은 방식에 의하여 중계 서버로서의 역할을 수행할 것인지를 각각의 로컬 서버가 판단하여 자신이 중계 서버의 역할을 수행해야 하는 것으로 결정되면, 앞서 설명한 바와 같이 중계 서버 모드로 변환되어 단계(S200) 내지 단계(S230)을 수행하게 된다.
한편, 중계 서버가 로컬 서버로 데이터를 전송하는 경우, 로컬 서버에서 데이터가 제대로 수신되었는지를 검증하기 위하여, 도 5에 나타낸 바와 같이, 중계 서버에서 로컬 서버로 전송되는 데이터를 패킷화하여 각 패킷의 헤더부에 각 패킷의 순서, 패킷의 크기 등을 나타내는 정보를 포함하도록 할 수 있다. 물론, 이러한 데이터 패킷은 외부 서버에서 구성되어 중계 서버로 전송되도록 하고 중계 서버는 이를 그대로 로컬 서버들로 전송하도록 구성할 수도 있다. 도 3에서는 명확히 나타내지는 않았지만, 로컬 서버에서 패킷화된 데이터를 확인하여 데이터가 제대로 수 신되지 않은 경우에는 중계 서버로 해당 데이터 패킷을 재전송하도록 요청하고, 중계 서버는 요청된 데이터를 재전송하도록 구성할 수도 있다. 이 때, 재전송되는 데이터는 확실한 데이터 전송을 위해 TCP에 의해 이루어지도록 하는 것이 바람직하다.
도 6은 앞서 살펴 본 바와 같은 본 발명에 따른 데이터 전송 방법의 일실시예를 구현하기 위한 중계 서버 및 로컬 서버의 내부 구성을 나타낸 블록도이다.
도 6에 나타낸 바와 같이, 중계 서버는 외부 서버 데이터 수신부, 로컬 데이터 전송부 및 제어 메시지 전송부를 포함할 수 있다. 외부 서버 데이터 수신부는 외부 서버와 직접 연결되어 데이터를 외부 서버로부터 수신하며, 수신된 데이터는 로컬 데이터 전송부를 통해 로컬 네트워크를 통해 연결된 다른 로컬 서버들로 UDP에 따른 멀티캐스팅 방식으로 데이터를 전송한다. 제어 메시지 전송부는 앞서 설명한 바와 같이 외부 서버와 직접 연결되어 중계 서버로서의 역할을 수행한다는 것을 알리는 제1 제어 메시지를 로컬 네트워크를 통해 다른 로컬 서버들로 전송하는 역할을 수행한다.
한편, 로컬 서버들은 로컬 데이터 수신부, 제어 메시지 수신부, 제어 메시지 전송부 및 중계 서버 결정부를 포함할 수 있다. 로컬 데이터 수신부는 중계 서버로부터 전송되는 로컬 데이터를 수신하며, 제어 메시지 수신부는 로컬 네트워크를 통해 전송되는 제1 제어 메시지 또는 제2 제어 메시지를 수신한다. 제2 제어 메시지는 로컬 서버가 자신이 로컬 서버임을 알리기 위한 메시지임은 앞서 설명한 바와 같다. 중계 서버 결정부는 중계 서버에 고장이 발생한 경우 새로운 중계 서버를 결정하기 위한 것으로서 도 3에서 설명한 바와 같은 방식에 따라 중계 서버를 결정한다.
한편, 도 6에 명시적으로 나타내지는 않았지만, 로컬 서버와 중계 서버는 오류 데이터가 존재하는 경우 즉 로컬 서버에서 제대로 데이터가 수신되지 않은 경우에 미수신된 데이터를 중계 서버로 재전송 요청하고 수신하기 위한 구성을 더 포함할 수 있다. 이러한 동작은 앞서 도 3 및 도 5에서 살펴 본 바와 같은 방식에 따라 수행될 수 있다.
도 6에서는 중계 서버와 로컬 서버는 그 기능 및 역할을 설명하기 위하여 별개의 구성을 포함하는 것으로 설명하였으나 실제 물리적으로는 동일한 구성일 수 있으며 중계 서버인지 또는 로컬 서버인지 그 기능에 따라 각각의 구성을 포함하는 것으로 해석해야 할 것이다.
이상에서, 본 발명의 바람직한 실시예를 참조하여 본 발명의 구성을 설명하였으나 본 발명은 상기 실시예들에 한정되는 것이 아니며, 첨부된 특허청구범위 및 도면 등을 참조하여 본 발명의 범위 내에서 여러 가지 변형 및 수정 실시예가 가능할 수 있음은 당업자에게는 자명한 일이라는 것을 유의해야 한다.
본 발명에 의하면, 로컬 네트워크를 통해 서로 연결되어 있는 로컬 서버들 중 어느 하나만을 외부 서버와 연결시켜 외부 서버로부터 데이터를 수신하도록 하고, 수신된 데이터는 로컬 네트워크를 통해 다른 로컬 서버들로 전송하도록 함으로써, 네트워크 대역폭을 현저하게 감소시키고 실시간 대용량 데이터를 처리하기 위한 서버와 네트워크의 유지 및 관리 비용을 대폭 절감할 수 있도록 하는 효율적인 데이터 전송 방법 및 시스템을 제공할 수 있다.
또한, 본 발명에 의하면, 외부 서버와 연결된 로컬 서버에 고장이 발생한 경우에도 이 로컬 서버와 로컬 네트워크를 통해 연결되어 있는 다른 로컬 서버 중의 어느 하나가 고장이 발생한 로컬 서버의 역할을 대신하도록 함으로써 외부 서버와의 연결 및 로컬 네트워크를 통한 로컬 서버와의 데이터 전송을 신뢰성있게 유지할 수 있도록 하는 데이터 전송 방법 및 시스템을 제공할 수 있다.

Claims (17)

  1. 로컬 네트워크를 통해 서로 연결되는 복수개의 로컬 서버 중 어느 하나를 통해 외부 서버와 데이터를 송수신하는 방법에 있어서,
    로컬 네트워크에 제1 로컬 서버가 접속한 경우 상기 로컬 네트워크에 접속되어 있는 다른 로컬 서버가 존재하지 않는 경우 또는 상기 로컬 네트워크에 접속되어 있는 다른 모든 로컬 서버로부터 외부 서버와 직접 연결되어 데이터를 수신하고 있다는 것을 알리는 제1 제어 메시지가 수신되지 않는 경우, 상기 제1 로컬 서버가 외부 서버와 직접 접속하여 데이터를 수신하는 동시에 상기 로컬 네트워크를 통해 자신이 외부 서버와 직접 연결되어 데이터를 수신하고 있다는 것을 알리는 제1 제어 메시지를 전송하고,
    로컬 네트워크에 제1 로컬 서버가 접속한 경우 상기 로컬 네트워크에 접속되어 있는 다른 로컬 서버 중 어느 하나인 제2 로컬 서버로부터 자신이 외부 서버와 직접 연결되어 데이터를 수신하고 있다는 것을 알리는 제1 제어 메시지를 수신한 경우, 상기 제2 로컬 서버에 접속하여 상기 제2 로컬 서버로부터 데이터를 수신하는 동시에 상기 로컬 네트워크를 통해 자신이 로컬 서버 중 어느 하나에 접속하여 데이터를 수신하고 있음을 알리는 제2 제어 메시지를 전송하는 것
    을 특징으로 하는 데이터 송수신 방법.
  2. 삭제
  3. 제1항에 있어서,
    상기 제2 로컬 서버로부터 제1 로컬 서버로 전송되는 데이터는 멀티캐스팅에 의해 전송되는 것을 특징으로 하는 데이터 송수신 방법.
  4. 로컬 네트워크를 통해 연결되어 있는 적어도 하나 이상의 로컬 서버들 중 어느 하나인 제1 서버가 외부 서버가 연결되어 외부 서버로부터 데이터를 수신하고 상기 수신한 데이터를 로컬 네트워크를 통해 연결되어 있는 적어도 하나 이상의 다른 로컬 서버로 데이터를 전송하는 방법에 있어서,
    상기 적어도 하나 이상의 다른 로컬 서버들이 상기 제1 서버로부터 로컬 네트워크를 통해 자신이 외부 서버와 직접 연결되어 데이터를 수신하고 있다는 것을 알리는 제1 제어 메시지가 수신되지 않는 경우, 상기 적어도 하나 이상의 다른 로컬 서버들 중 어느 하나를 상기 외부 서버와 직접 연결할 중계 서버로 결정하는 단계-여기서, 상기 적어도 하나 이상의 다른 로컬 서버들은 자신이 상기 제1 서버에 접속하여 데이터를 수신하고 있음을 알리는 제2 제어 메시지를 상기 로컬 네트워크를 통해 전송함-;
    상기 중계 서버로 결정된 로컬 서버가 상기 외부 서버에 접속하여 데이터를 수신하고 수신한 데이터를 로컬 네트워크를 통해 연결되어 있는 다른 로컬 서버들로 전송하는 단계; 및
    상기 중계 서버로 결정된 로컬 서버가 로컬 네트워크를 통해 자신이 외부 서버와 직접 연결되어 데이터를 수신하고 있다는 것을 알리는 제1 제어 메시지를 전송하는 단계
    를 포함하는 데이터 전송 방법.
  5. 제4항에 있어서,
    상기 제1 제어 메시지 및 제2 제어 메시지는 로컬 서버 자신의 IP 주소를 더 포함하며, 상기 적어도 하나 이상의 다른 로컬 서버들 중 어느 하나를 상기 외부 서버와 직접 연결할 중계 서버로 결정하는 단계는 상기 제1 제어 메시지 및 제2 제어 메시지에 포함된 로컬 서버들의 IP 주소에 의거하여 중계 서버를 결정하는 것을 특징으로 하는 데이터 전송 방법.
  6. 제5항에 있어서,
    상기 적어도 하나 이상의 다른 로컬 서버들 중 어느 하나를 상기 외부 서버 와 직접 연결할 중계 서버로 결정하는 단계는 상기 로컬 서버들의 IP 주소 중 가장 큰 IP 주소를 갖는 로컬 서버를 중계 서버로 결정하는 것을 특징으로 하는 데이터 전송 방법.
  7. 제4항에 있어서,
    상기 제1 제어 메시지 및 제2 제어 메시지는 로컬 서버 자신의 중앙 처리 장치의 사용량, 메모리 사용량, 네트워크 사용량 및 서버 가동 시간에 대한 데이터를 적어도 어느 하나 이상 더 포함하며, 상기 적어도 하나 이상의 다른 로컬 서버들 중 어느 하나를 상기 외부 서버와 직접 연결할 중계 서버로 결정하는 단계는 상기 데이터들 중 적어도 어느 하나 이상 또는 그 조합에 의거하여 중계 서버를 결정하는 것을 특징으로 하는 데이터 전송 방법.
  8. 제4항에 있어서,
    상기 중계 서버로 결정된 로컬 서버가 상기 외부 서버에 접속하여 데이터를 수신하고 수신한 데이터를 로컬 네트워크를 통해 다른 로컬 서버들로 전송하는 단계에 있어서, 상기 다른 로컬 서버들로 전송되는 데이터는 멀티캐스팅에 의해 전송되는 것을 특징으로 하는 데이터 전송 방법.
  9. 제8항에 있어서,
    상기 다른 로컬 서버들로 전송되는 데이터는 UDP(User datagram protocol)에 의해 전송되는 것을 특징으로 하는 데이터 전송 방법.
  10. 제4항에 있어서,
    상기 중계 서버로 결정된 로컬 서버가 로컬 네트워크를 통해 중계 서버 존재 메시지가 포함된 제1 제어 메시지를 전송하는 단계 이후,
    상기 중계 서버로 결정된 로컬 서버 이외의 다른 로컬 서버가 상기 중계 서버로 결정된 로컬 서버로부터 수신되는 데이터의 오류 여부를 검증하고 오류가 있는 경우 상기 중계 서버로 결정된 로컬 서버로 데이터의 재전송을 요청하고 이에 상응하여 중계 서버로부터 재전송 데이터를 수신하는 것을 특징으로 하는 데이터 전송 방법.
  11. 제10항에 있어서,
    상기 중계 서버로부터 전송되는 재전송 데이터는 TCP(Transmission control protocol)에 의해 전송되는 것을 특징으로 하는 데이터 전송 방법.
  12. 제4항에 있어서,
    상기 제1 제어 메시지 및 제2 제어 메시지는 멀티캐스팅에 의해 로컬 네트워크를 통해 전송되는 것을 특징으로 하는 데이터 전송 방법.
  13. 외부 서버와 직접 연결되어 외부 서버로부터 데이터를 송수신하는 제1 로컬 서버와, 상기 제1 로컬 서버와 로컬 네트워크를 통해 연결된 적어도 하나 이상의 다른 로컬 서버들로 구성된 데이터 송수신 시스템에 있어서,
    상기 제1 로컬 서버는,
    외부 서버로부터 전송되는 데이터를 수신하는 데이터 수신부;
    상기 외부 서버로부터 수신한 데이터를 상기 적어도 하나 이상의 다른 로컬 서버들로 로컬 네트워크를 통해 전송하는 로컬 데이터 전송부; 및
    외부 서버와 직접 연결되어 데이터를 수신하고 있다는 것을 알리는 제1 제어 메시지를 로컬 네트워크를 통해 상기 적어도 하나 이상의 다른 로컬 서버들로 전송하는 제어 메시지 전송부를 포함하고,
    상기 적어도 하나 이상의 다른 로컬 서버들은,
    상기 제1 로컬 서버로부터 전송되는 로컬 데이터를 수신하는 로컬 데이터 수신부;
    자신이 로컬 서버 중 어느 하나에 접속하여 데이터를 수신하고 있음을 알리 는 제2 제어 메시지를 전송하는 제어 메시지 전송부; 및
    상기 제1 제어 메시지와 상기 제2 제어 메시지를 수신하는 제어 메시지 수신부
    를 포함하는 것을 특징으로 하는 데이터 송수신 시스템.
  14. 제13항에 있어서,
    상기 적어도 하나 이상의 다른 모든 로컬 서버들의 상기 제어 메시지 수신부가 상기 제1 로컬 서버로부터 전송되는 제1 제어 메시지를 수신하지 못하는 경우 상기 적어도 하나 이상의 다른 로컬 서버들 중 어느 하나를 상기 외부 서버와 직접 연결할 중계 서버로 결정하는 중계 서버 결정부
    를 더 포함하며,
    상기 중계 서버 결정부에 의하여 중계 서버로 결정된 로컬 서버는 상기 외부 서버에 접속하여 데이터를 수신하고 수신한 데이터를 로컬 네트워크를 통해 연결되어 있는 다른 로컬 서버들로 전송하는 것을 특징으로 하는 데이터 송수신 시스템.
  15. 제14항에 있어서,
    상기 제1 제어 메시지 및 제2 제어 메시지는 로컬 서버 자신의 IP 주소를 더 포함하며, 상기 중계 서버 결정부는 상기 제1 제어 메시지 및 제2 제어 메시지에 포함된 상기 로컬 서버들의 IP 주소에 의거하여 중계 서버를 결정하는 것을 특징으로 하는 데이터 송수신 시스템.
  16. 제15항에 있어서,
    상기 중계 서버 결정부는 상기 로컬 서버들의 IP 주소 중 가장 큰 IP 주소를 갖는 로컬 서버를 중계 서버로 결정하는 것을 특징으로 하는 데이터 송수신 시스템.
  17. 제14항에 있어서,
    상기 중계 서버 결정부에 의해 중계 서버로 결정된 로컬 서버의 제어 메시지 전송부는 자신이 로컬 서버 중 어느 하나에 접속하여 데이터를 수신하고 있음을 알리는 제2 제어 메시지를 전송하는 대신 외부 서버와 직접 연결되어 데이터를 수신하고 있다는 것을 알리는 제1 제어 메시지를 로컬 네트워크를 통해 상기 적어도 하나 이상의 다른 로컬 서버들로 전송하는 것을 특징으로 하는 데이터 송수신 시스템.
KR1020060099637A 2006-10-13 2006-10-13 로컬 네트워크를 통해 연결되어 있는 로컬 서버들과 외부서버간의 데이터 전송 방법 및 시스템 KR100844999B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020060099637A KR100844999B1 (ko) 2006-10-13 2006-10-13 로컬 네트워크를 통해 연결되어 있는 로컬 서버들과 외부서버간의 데이터 전송 방법 및 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060099637A KR100844999B1 (ko) 2006-10-13 2006-10-13 로컬 네트워크를 통해 연결되어 있는 로컬 서버들과 외부서버간의 데이터 전송 방법 및 시스템

Publications (2)

Publication Number Publication Date
KR20080033678A KR20080033678A (ko) 2008-04-17
KR100844999B1 true KR100844999B1 (ko) 2008-07-08

Family

ID=39573535

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060099637A KR100844999B1 (ko) 2006-10-13 2006-10-13 로컬 네트워크를 통해 연결되어 있는 로컬 서버들과 외부서버간의 데이터 전송 방법 및 시스템

Country Status (1)

Country Link
KR (1) KR100844999B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102032607B1 (ko) * 2017-03-07 2019-10-15 주식회사 엘지유플러스 LoRa 서버의 네트워크 통신 복구 방법
KR102148612B1 (ko) * 2019-10-04 2020-08-26 주식회사 엘지유플러스 LoRa 서버의 네트워크 통신 복구 방법

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20000074380A (ko) * 1999-05-20 2000-12-15 정몽규 차량용 자동 변속기의 변속 제어 방법
KR20020048274A (ko) * 2000-12-18 2002-06-22 박종섭 반도체 소자의 플러그 형성 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20000074380A (ko) * 1999-05-20 2000-12-15 정몽규 차량용 자동 변속기의 변속 제어 방법
KR20020048274A (ko) * 2000-12-18 2002-06-22 박종섭 반도체 소자의 플러그 형성 방법

Also Published As

Publication number Publication date
KR20080033678A (ko) 2008-04-17

Similar Documents

Publication Publication Date Title
Yi et al. A case for stateful forwarding plane
US7738495B2 (en) Method of determining a maximum transmission unit value of a network path using transport layer feedback
US7532577B2 (en) Managing transmission control protocol (TCP) connections
US7929422B2 (en) Method of moving a transport connection among network hosts
KR101746629B1 (ko) 통신 장치 및 통신 방법
CN1633647B (zh) 用于管理网络中的数据传送的系统、方法
CN104025525B (zh) 用于发送分组的方法和设备以及交换机装置
KR101455434B1 (ko) 에지 라우팅을 갖는 피어-투-피어 협업 시스템
US8806007B2 (en) Inter-node communication scheme for node status sharing
US7496038B2 (en) Method for faster detection and retransmission of lost TCP segments
TW201014395A (en) Load management in wireless mesh communications networks
CN108322836A (zh) 一种数据传输的方法及装置
US7505484B2 (en) Remote discovery and storage of a path maximum transmission unit (PMTU) value
CN103825822A (zh) 一种网络设备的状态信息传输方法和装置
JP2006287925A (ja) エラー回復機構およびそれを備えるネットワーク要素
US10594584B2 (en) Network analysis and monitoring tool
KR100844999B1 (ko) 로컬 네트워크를 통해 연결되어 있는 로컬 서버들과 외부서버간의 데이터 전송 방법 및 시스템
US7535916B2 (en) Method for sharing a transport connection across a multi-processor platform with limited inter-processor communications
US20240022638A1 (en) Systems and methods for processing heartbeat packets in switching hardware
US7506036B1 (en) Proxy device and method of operation for a windowing internet protocol data network
JP4969421B2 (ja) 受信装置及び通信システム
US8064335B2 (en) Communication monitoring method, communication monitoring system, management system, and external device
CN111314447B (zh) 代理服务器及其处理访问请求的方法
US20070286197A1 (en) Interoperable transport protocol for internetwork routing
KR101481311B1 (ko) 컨텐츠 기반 네트워크에서 트래픽 제어 방법 및 시스템

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
FPAY Annual fee payment

Payment date: 20130717

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20140626

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20150619

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20160630

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20170703

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20180712

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20190710

Year of fee payment: 12