KR20080060054A - Distributed flow control system - Google Patents

Distributed flow control system Download PDF

Info

Publication number
KR20080060054A
KR20080060054A KR1020060134124A KR20060134124A KR20080060054A KR 20080060054 A KR20080060054 A KR 20080060054A KR 1020060134124 A KR1020060134124 A KR 1020060134124A KR 20060134124 A KR20060134124 A KR 20060134124A KR 20080060054 A KR20080060054 A KR 20080060054A
Authority
KR
South Korea
Prior art keywords
server
packet
client
sequence
network
Prior art date
Application number
KR1020060134124A
Other languages
Korean (ko)
Other versions
KR100890996B1 (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 KR1020060134124A priority Critical patent/KR100890996B1/en
Publication of KR20080060054A publication Critical patent/KR20080060054A/en
Application granted granted Critical
Publication of KR100890996B1 publication Critical patent/KR100890996B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs

Abstract

A distributed flow control system is provided to enable a system to solve traffic jam and realize efficient data communication by distributing load concentrated on a server without any load distribution device like L(Level)4 and L7 switches. A network receiver(610) receives a packet including a first sequence map, which is generated from sequence numbers received from a transmission server by a client. A controller(620) calculates network delay between the transmission server and the client by determining whether the sequence numbers included in the first sequence map is omitted. A network transmitter(630) transmits a flow control packet, which includes a command for controlling packet transmission from the transmission server to the client according to the calculated network delay between the transmission server and the client, to the transmission server. The controller calculates the network delay, and determines network transmission error between the transmission server and the client by storing the last sequence map and comparing the first sequence map with the last sequence map.

Description

분산 흐름 제어 시스템{DISTRIBUTED FLOW CONTROL SYSTEM}Distributed Flow Control System {DISTRIBUTED FLOW CONTROL SYSTEM}

도 1은 본 발명의 일례에 따른 서비스 처리 시스템의 구성도를 도시한 도면이다.1 is a diagram illustrating a configuration of a service processing system according to an example of the present invention.

도 2a는 본 발명에 따른 서비스 요청 패킷을 도시한 도면이다.2A illustrates a service request packet according to the present invention.

도 2b는 본 발명에 따른 제 1 정보를 도시한 도면이다.2B is a diagram illustrating first information according to the present invention.

도 2c는 본 발명에 따른 응답 패킷을 도시한 도면이다.2C is a diagram illustrating a response packet according to the present invention.

도 3은 본 발명의 또 다른 일례에 따른 분산 흐름 제어 시스템의 구성도를 도시한 도면이다.3 is a diagram illustrating a configuration of a distributed flow control system according to another example of the present invention.

도 4a는 본 발명에 따른 제 1 시퀀스 맵을 도시한 도면이다.4A is a diagram illustrating a first sequence map according to the present invention.

도 4b는 본 발명에 따른 제 2 시퀀스 맵을 도시한 도면이다.4B is a diagram illustrating a second sequence map according to the present invention.

도 5a는 본 발명에 따른 제 1 시퀀스 맵의 일례를 도시한 도면이다.5A is a diagram illustrating an example of a first sequence map according to the present invention.

도 5b는 본 발명에 따른 제 2 시퀀스 맵의 일례를 도시한 도면이다.5B is a diagram illustrating an example of a second sequence map according to the present invention.

도 5c는 본 발명에 따른 제 2 시퀀스 맵의 또 다른 일례를 도시한 도면이다.5C illustrates another example of the second sequence map according to the present invention.

도 5d는 본 발명에 따른 제 2 시퀀스 맵의 또 다른 일례를 도시한 도면이다.5D illustrates another example of the second sequence map according to the present invention.

도 6은 본 발명의 일례에 따른 수신 서버를 도시한 도면이다.6 is a diagram illustrating a receiving server according to an example of the present invention.

도 7은 본 발명의 일례에 따른 분산 흐름 제어 시스템의 흐름도를 도시한 도면이다.7 is a flowchart illustrating a distributed flow control system according to an example of the present invention.

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

100: 송수신 네트워크100: transmit and receive network

110: 클라이언트110: client

120: 수신 서버120: receiving server

130: 송신 서버130: sending server

140: 서비스 요청 패킷140: service request packet

150: 제1 정보150: first information

160: 응답 패킷160: response packet

본 발명은 서비스 처리 시스템에 관한 것으로, 더욱 상세하게는 네트워크에서 서버에 집중되는 부하를 분산시켜 클라이언트로부터의 서비스 요청을 효율적으로 처리하는 경우의 흐름 제어에 관한 것이다.The present invention relates to a service processing system, and more particularly, to flow control in the case of efficiently handling a service request from a client by distributing a load concentrated on a server in a network.

여러 대의 컴퓨터가 작업을 분담하여 처리하는 환경을 분산 처리 환경이라고 한다. 분산 처리 환경에서는 네트워크를 통해 서로 자원을 공유하거나 주고 받을 수 있다. 클라이언트와 서버로 구성된 네트워크에서는 사용자의 단말기가 클라이언트로, 호스트 컴퓨터가 서버로 구성된 통신 시스템이다. 즉, 서비스를 요청하는 클라이언트와 이에 대응하는 서비스를 제공하는 서버가 원격 접속을 통하여 데이터 통신이 가능한 구조를 의미한다. 클라이언트는 데이터의 집중이나 자원의 공유가 목적인 작업을 위하여 서버에 접속한다. 그러나, 인터넷을 기반으로 한 네트워크 환경이 날이 갈수록 복잡해지고 있다. 예를 들어, HTTP(hypertext transfer protocol)라는 하나의 서비스를 받기 위해 사용자 클라이언트들은 인터넷 어느 공간상의 실제 HTTP 서버에 접속하여 원하는 서비스를 받게 된다. 즉 서버가 인터넷이라는 네트워크 환경에 접속만 되어있다면 사용자들은 그것의 물리적인 위치나 주소는 문제가 되지 않고 서비스를 받을 수 있다. 그러나 서버의 입장에서는 사용자 클라이언트들의 입장보다 더 복잡한 문제를 갖는다. 서비스를 안정적으로 그리고 지속적으로 많은 사용자들에게 제공하기 위해서 서버가 서비스를 처리할 수 있는 능력이 커야만 한다. 더 많은 사용자에게 정확한 서비스를 하기 위해서는 더 강력한 성능의 서버로 업그레이드하는 대신에, 복수 개의 서버를 설치하고 클라이언트로부터의 서비스 요청을 상기 복수 개의 서버에 할당하는 스위치가 사용되고 있다. 그러나, 네트워크에서 처리해야 하는 트래픽이 급증하게 되면서, 모든 패킷의 헤더를 처리해야만 하는 스위치에서 정체 현상이 빈번하게 발생하기 시작했다. 스위치에서 정체가 발생하면, 스위치는 수신된 패킷을 처리하지 못하고 이는 다시 클라이언트의 재전송을 초래하여 상황이 더욱 악화되기도 한다. An environment where multiple computers share work and is called a distributed processing environment. In a distributed processing environment, resources can be shared or exchanged with each other over a network. In a network composed of a client and a server, a user's terminal is a client and a host computer is a server. That is, it means a structure in which data requesting is possible between a client requesting a service and a server providing a service corresponding thereto. The client connects to the server for tasks that are intended to concentrate data or share resources. However, the network environment based on the Internet is becoming more and more complicated. For example, in order to receive a service called HTTP (hypertext transfer protocol), user clients connect to a real HTTP server on a space in the Internet and receive a desired service. In other words, if the server is only connected to the network environment of the Internet, users can receive the service without regard to its physical location or address. However, from the server's point of view, the problem is more complicated than that of the user clients. In order to provide services reliably and continuously to many users, the server must have a large ability to process them. Instead of upgrading to more powerful servers to provide more accurate service to more users, switches are installed that install multiple servers and assign service requests from clients to the multiple servers. However, as the traffic that has to be handled in the network has soared, congestion has begun to occur frequently in switches that must handle the headers of all packets. If congestion occurs at the switch, the switch cannot process the received packet, which in turn causes a retransmission of the client, making the situation even worse.

이에 대한 해결 방안으로서 연결 분배 방식이 사용되었다. 연결 분배 방식은 4계층(Layer-4: L4) 스위치에 의한 서버 부하 분산 방법으로, 연결되어 있는 각각의 서버의 로드(load)를 분석하여 각각의 서버로 로드를 분산시키는 방식이다. L4 스위치에 의한 서버 부하 분산 방법은 DNS(domain name server)에 의존하지 않고 다수의 서버들을 하나의 가상 IP(Virtual IP: VIP) 주소로 묶어 사용자들에게는 VIP 만을 알려주고 IP 어드레스뿐 만 아니라, 4계층의 TCP/UDP 포트에서도 특정 서버에 장애가 발생하였을 경우에도 서버들간에 올바른 부하 분산이 가능하도록 한다.As a solution, a connection distribution scheme was used. The connection distribution method is a server load balancing method using a Layer-4 (L4) switch, and analyzes the load of each connected server and distributes the load to each server. The server load balancing method by the L4 switch does not rely on the domain name server (DNS) and binds multiple servers to one virtual IP (VIP) address to inform users of only VIP and not only IP address but also four layers. In the TCP / UDP port, even if a specific server fails, correct load balancing among the servers is possible.

그러나, 종래의 L4 스위치를 사용하는 연결 분배 방식은, L4 스위치가 모든 패킷(packet)을 수신하고 해당 패킷의 커넥션 튜플(connetion tuple)을 추출하여, 커넥션 튜플에 매핑 테이블(mapping table)이 존재하는 경우에 매핑 테이블에서 튜플에 맞는 서버를 추출하여 해당 서버로 패킷을 전달하게 된다. 따라서 모든 패킷이 L4 스위치를 거쳐가야 하므로 L4 스위치에 모든 부하가 집중되어 병목현상이 발생하는 단점이 있다. 또한, 클라이언트로부터 수신되는 사용자 요청 패킷뿐 아니라 복수 개의 서버에서 생성되어 클라이언트로 전달되는 응답 패킷들도 모두 L4 스위치를 통과하기 때문에, L4 스위치에 병목 현상이 발생된다.However, in the connection distribution scheme using the conventional L4 switch, the L4 switch receives all packets and extracts a connection tuple of the corresponding packet so that a mapping table exists in the connection tuple. In this case, the server that matches the tuple is extracted from the mapping table and the packet is delivered to the server. Therefore, since all packets must pass through the L4 switch, the bottleneck occurs because all loads are concentrated on the L4 switch. In addition, since not only the user request packet received from the client but also the response packets generated by the plurality of servers and delivered to the client pass through the L4 switch, a bottleneck occurs in the L4 switch.

따라서, 본 발명은 L4, L7 스위치와 같은 장치의 사용 없이도, 클라이언트로부터 수신한 서비스 요청에는 수신 서버가 대응하고 클라이언트로의 응답에는 송신 서버가 전담하도록 하고, 수신 서버는 이후의 데이터 송신에 관여하지 않도록 함으로써, 부하를 분산 시켜 병목 현상을 해소하고 효율적인 데이터 통신이 가능하도록 하고, 또한 이러한 분산 시스템에서의 흐름 제어 방법을 제안하고자 한다.Therefore, the present invention allows the receiving server to respond to a service request received from the client and to be dedicated to the sending server in response to the client even without the use of devices such as L4 and L7 switches, and the receiving server is not involved in subsequent data transmission. By distributing the load, the bottleneck is eliminated and efficient data communication is possible, and the flow control method in such a distributed system is proposed.

또한, 클라이언트와 수신 서버 또는 송신 서버간의 데이터의 송수신에 있어서, 수신 측의 속도 지연으로 인하여 송신 측의 전송속도가 느려지지 않도록 데이터 흐름을 조정하는 플로우 컨트롤(Flow Control)을 이용하여, 클라이언트와 수신 서버 및 송신 서버간의 효율적인 데이터 통신이 가능한 분산 흐름 제어 시스템을 제안하고자 한다. In addition, in the transmission and reception of data between the client and the reception server or the transmission server, the client and the reception are controlled by using a flow control that adjusts the data flow so that the transmission speed of the transmission side is not slowed down due to the speed delay of the reception side. A distributed flow control system capable of efficient data communication between a server and a sending server is proposed.

또한, 클라이언트와 수신 서버 또는 송신 서버간의 데이터의 송수신에 있어서, 클라이언트 측으로 수신되지 않은 데이터가 재전송되도록 하는 에러 컨트롤(Error Control)을 이용하여, 클라이언트와 수신 서버 및 송신 서버간의 안정적인 데이터 통신이 가능한 분산 흐름 제어 시스템을 제안하고자 한다. In addition, in the transmission and reception of data between the client and the receiving server or the sending server, an error control for retransmitting unreceived data to the client side enables distributed data communication between the client, the receiving server, and the sending server. We would like to propose a flow control system.

본 발명은 상기와 같은 종래 기술을 개선하기 위해 안출된 것으로서, L4, L7 스위치와 같은 부하 분산 장치의 사용 없이도 서버에 집중되는 부하를 분산시켜 병목 현상을 해소하고 효율적인 데이터 통신이 가능한 분산 흐름 제어 시스템을 제공하는 것을 목적으로 한다.The present invention has been made to improve the prior art as described above, distributed flow control system that can solve the bottleneck and efficient data communication by distributing the load concentrated on the server without the use of load balancers such as L4, L7 switch The purpose is to provide.

또한 본 발명은 클라이언트로부터의 데이터 수신은 수신 서버가 전담하고, 클라이언트로의 데이터 송신은 송신 서버가 전담하므로, 특정한 지점에 병목 현상이 발생하지 않는 분산 시스템을 제공하는 것을 목적으로 한다. 특히, 종래의 L4 스위치 등이 수신되는 패킷뿐 아니라 송신하는 패킷도 모두 L4 스위치를 통하여야 하던 것에 비하여, 본 발명은 수신되는 패킷은 수신 서버로만 수신되고, 송신되는 패킷은 상기 수신 서버를 통하지 않고, 바로 송신 서버에 의하여 송신되므로, 종래기술에 따른 병목 현상의 문제가 해결된 분산 흐름 제어 시스템을 제공하는 것을 목적으로 한다.In addition, the present invention is intended to provide a distributed system in which the reception server is dedicated to receiving data from the client, and the transmission server is dedicated to transmitting data to the client, so that no bottleneck occurs at a specific point. In particular, the conventional L4 switch or the like, as well as the packet to be transmitted all received through the L4 switch, the present invention, the received packet is received only to the receiving server, the transmitted packet is not sent through the receiving server Therefore, an object of the present invention is to provide a distributed flow control system in which a problem of a bottleneck according to the prior art is solved because it is transmitted by a transmission server.

또한 본 발명은 클라이언트와 수신 서버간의 네트워크와 클라이언트와 송신 서버간의 네트워크가 서로 분리되어 있으므로, 클라이언트와 수신 서버간의 네트워 크의 지연 상태를 시퀀스 넘버로 구성된 시퀀스 맵들 간의 비교를 통하여 판단하고, 클라이언트와 송신 서버간의 네트워크 지연 상태를 시퀀스 맵에서 누락되어 있는 시퀀스 넘버를 통하여 판단하여, 각각 클라이언트와 수신 서버간의 네트워크와 클라이언트와 송신 서버간의 네트워크의 송수신 속도를 조절하고, 클라이언트로 수신되는 패킷의 재전송이 이루어지도록 하는 것이 가능하므로, 각 네트워크의 지연 상태에 따라서 효율적이고 안정적인 데이터의 송수신이 가능한 분산 흐름 제어 시스템을 제공하는 것을 목적으로 한다.In addition, in the present invention, since the network between the client and the receiving server and the network between the client and the sending server are separated from each other, the delay state of the network between the client and the receiving server is determined through comparison between sequence maps composed of sequence numbers, Determining the network delay between servers through the sequence number missing from the sequence map, adjusting the transmission and reception speeds of the network between the client and the receiving server and the network between the client and the sending server, respectively, and retransmitting packets received to the client. It is possible to provide a distributed flow control system capable of transmitting and receiving data efficiently and stably according to the delay state of each network.

상기의 목적을 이루고 종래기술의 문제점을 해결하기 위하여, 본 발명의 일측에 따른 분산 흐름 제어 시스템은, 제 1 패킷 및 상기 제 1 패킷과 관련한 시퀀스 넘버를 생성하여 클라이언트로 송신하는 송신 서버 및 상기 시퀀스 넘버를 이용하여 상기 클라이언트에 의해 생성된 제1 시퀀스 맵을 포함하는 제 2 패킷을 상기 클라이언트로부터 수신하는 수신 서버를 포함한다. 상기 제1 시퀀스 맵은, 상기 시퀀스 넘버를 소정의 개수만큼 묶어서 생성된다. 상기 수신 서버는, 상기 제1 시퀀스 맵에 포함되어 있는 시퀀스 넘버가 누락되어 있는가의 여부를 판단하여 상기 송신 서버로부터 상기 클라이언트로의 패킷 송신을 조절하도록 하는 명령을 포함한 흐름 제어 패킷을 상기 송신 서버로 송신한다. 상기 수신 서버는, 가장 최근에 수신한 최종 시퀀스 맵을 저장하고, 상기 클라이언트로부터 수신한 상기 제1 시퀀스 맵 및 상기 최종 시퀀스 맵을 비교하여, 상기 클라이언트로부터 상기 수신 서버로의 패킷 송신을 조절하도록 하는 명령을 포함한 흐름 제어 패킷을 상기 송신 서버 로 송신한다.In order to achieve the above object and solve the problems of the prior art, a distributed flow control system according to an aspect of the present invention, the transmission server and the sequence for generating a first packet and the sequence number associated with the first packet to the client And a receiving server that receives from the client a second packet comprising a first sequence map generated by the client using a number. The first sequence map is generated by grouping the sequence number by a predetermined number. The receiving server sends a flow control packet to the transmitting server, the control server comprising a command to determine whether a sequence number included in the first sequence map is missing and to control packet transmission from the transmitting server to the client. Send. The receiving server stores the most recently received final sequence map and compares the first sequence map and the final sequence map received from the client to adjust packet transmission from the client to the receiving server. Send a flow control packet containing the command to the sending server.

본 발명의 또 다른 일측에 따르면, 상기 클라이언트로부터 상기 송신 서버에 수신된 서비스 요청에 대응하여, 상기 송신 서버가 상기 서비스 요청 패킷에 대한 응답 패킷(reply packet)을 생성하여 상기 클라이언트에게 송신하고, 상기 응답 패킷의 목적지 네트워크 주소는 상기 서비스 요청 패킷의 상기 소스 네트워크 주소이고, 상기 응답 패킷의 소스 포트 번호는 상기 서비스 요청 패킷의 상기 목적지 포트 번호이고, 상기 응답 패킷의 목적지 포트 번호는 상기 서비스 요청 패킷의 상기 소스 포트 번호이다.According to still another aspect of the present invention, in response to a service request received from the client to the transmission server, the transmission server generates a reply packet for the service request packet and transmits the response packet to the client. The destination network address of the response packet is the source network address of the service request packet, the source port number of the response packet is the destination port number of the service request packet, and the destination port number of the response packet is of the service request packet. The source port number.

본 발명의 또 다른 일측에 따르면, 송신 서버로부터 수신된 시퀀스 넘버를 이용하여 클라이언트에 의해 생성된 제1 시퀀스 맵을 포함하는 패킷을 상기 클라이언트로부터 수신하는 네트워크 수신부 및 상기 제1 시퀀스 맵에 포함되어 있는 시퀀스 넘버가 누락되어 있는가의 여부를 판단하여 상기 송신 서버와 상기 클라이언트 간의 네트워크 지연을 계산하는 제어부를 포함하며, 상기 계산된 상기 송신 서버와 상기 클라이언트 간의 상기 네트워크 지연에 따라 상기 송신 서버로부터 상기 클라이언트로의 패킷 송신을 조절하도록 하는 명령을 포함한 흐름 제어 패킷을 상기 송신 서버로 송신하는 네트워크 송신부를 더 포함한다.According to still another aspect of the present invention, a network receiver for receiving a packet from the client, the packet including a first sequence map generated by a client using a sequence number received from a transmission server, and included in the first sequence map. And a controller configured to determine whether a sequence number is missing and calculate a network delay between the transmitting server and the client, and from the transmitting server to the client according to the calculated network delay between the transmitting server and the client. And a network transmitter for transmitting a flow control packet to the transmission server, the command including a command to regulate packet transmission of the packet.

본 발명의 또 다른 일측에 따르면, 상기 제어부는, 가장 최근에 수신한 최종 시퀀스 맵을 저장하고, 상기 클라이언트로부터 수신한 상기 제1 시퀀스 맵 및 상기 최종 시퀀스 맵을 비교하여, 상기 클라이언트와 상기 수신 서버 간의 네트워크 지연을 계산한다. 또한, 상기 제어부의 상기 판단 결과에 따라, 상기 클라이언트로부 터 상기 수신 서버로의 패킷 송신을 조절하도록 하는 명령을 포함한 흐름 제어 패킷을 상기 송신 서버로 송신하는 네트워크 송신부를 더 포함한다. According to another aspect of the present invention, the control unit stores the most recently received final sequence map, and compares the first sequence map and the last sequence map received from the client, the client and the receiving server Calculate the network delay between. The apparatus may further include a network transmitter configured to transmit a flow control packet including a command to control packet transmission from the client to the receiving server according to the determination result of the controller.

본 발명의 또 다른 일측에 따르면, 상기 제1 시퀀스 맵은 상기 송신 서버로부터 수신된 n-k번째 서비스 패킷(상기 n 및 상기 k는 1 이상의 정수)에 대한 시퀀스 넘버로부터 n번째 서비스 패킷에 대한 시퀀스 넘버까지를 포함한다. 상기 네트워크 수신부는, 상기 클라이언트가 상기 송신 서버로부터 수신한 n-x-k번째 서비스 패킷(상기 x는 1 이상의 정수)에 대한 시퀀스 넘버로부터 n-x번째 서비스 패킷에 대한 시퀀스 넘버까지를 포함하여 생성한 제2 시퀀스 맵을 수신한다. 상기 제어부는, 상기 제1 시퀀스 맵 및 상기 제2 시퀀스 맵을 비교하여 상기 클라이언트 및 상기 송신 서버 간 네트워크 지연의 변화를 판단한다.According to another aspect of the invention, the first sequence map is a sequence number for the nkth service packet (n and k are integers greater than 1) received from the transmitting server from the sequence number for the nth service packet It includes. The network receiver may generate a second sequence map generated by the client including a sequence number for an nxk-th service packet (where x is an integer of 1 or more) to a sequence number for an nx-th service packet. Receive. The controller compares the first sequence map and the second sequence map to determine a change in network delay between the client and the transmission server.

본 발명의 또 다른 일측에 따르면, 상기 송신 서버 및 상기 수신 서버에 할당된 대표 네트워크 주소를 목적지 네트워크 주소로 하는 패킷은 상기 네트워크 수신부에 수신되고, 상기 클라이언트가 상기 송신 서버로부터 수신한 상기 제1 패킷의 소스 네트워크 주소는 상기 대표 네트워크 주소이다. 상기 네트워크 수신부는 상기 클라이언트로부터 서비스 요청 패킷을 수신하고, 상기 네트워크 송신부는 상기 서비스 요청 패킷의 소스 네트워크 주소, 소스 포트 번호 및 목적지 포트 번호를 상기 송신 서버로 송신한다. 상기 송신 서버는 상기 수신 서버와 물리적으로 분리되고 네트워크로 연결된다.According to still another aspect of the present invention, a packet having a destination network address as a representative network address assigned to the transmission server and the reception server is received in the network reception unit, and the first packet received by the client from the transmission server. The source network address of is the representative network address. The network receiver receives a service request packet from the client, and the network transmitter transmits a source network address, a source port number, and a destination port number of the service request packet to the transmission server. The sending server is physically separated from the receiving server and connected to the network.

본 발명의 또 다른 일측에 따르면, 송신서버로부터 수신된 n-k번째 서비스 패킷(상기 n 및 상기 k는 1 이상의 정수)에 대한 시퀀스 넘버로부터 n번째 서비스 패킷에 대한 시퀀스 넘버를 이용하여 제1 시퀀스 맵을 생성하는 단계 및 상기 제1 시퀀스 맵을 상기 송신 서버와 물리적으로 분리된 수신 서버에게 송신하는 단계를 포함한다. 상기 송신서버로부터 수신된 n-x-k번째 서비스 패킷(상기 x는 1 이상의 정수)에 대한 시퀀스 넘버로부터 n-x번째 서비스 패킷에 대한 시퀀스 넘버까지를 이용하여 제2 시퀀스 맵을 생성하고, 상기 제2 시퀀스 맵을 상기 제1 시퀀스 맵과 함께 상기 수신 서버에 송신하는 단계를 더 포함하며, 상기의 방법을 실행하는 프로그램을 기록한 컴퓨터 판독가능 기록매체를 포함한다.According to another aspect of the present invention, the first sequence map using the sequence number for the n-th service packet from the sequence number for the nk-th service packet (the n and k is an integer of 1 or more) received from the transmitting server Generating and transmitting the first sequence map to a receiving server that is physically separate from the transmitting server. A second sequence map is generated by using a sequence number for an nxkth service packet (where x is an integer equal to or greater than 1) received from the transmitting server to a sequence number for an nxth service packet. And transmitting to the receiving server together with a first sequence map, the computer readable recording medium having recorded thereon a program for executing the method.

이하 첨부된 도면들 및 첨부된 도면들에 기재된 내용들을 참조하여 본 발명의 바람직한 실시예를 상세하게 설명하지만, 본 발명이 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings and the contents described in the accompanying drawings, but the present invention is not limited or limited to the embodiments. Like reference numerals in the drawings denote like elements.

도 1은 본 발명의 일례에 따른 서비스 처리 시스템의 구성도를 도시한 도면이다.1 is a diagram illustrating a configuration of a service processing system according to an example of the present invention.

도 1에 도시된 바와 같이, 본 발명에 따른 서비스 처리 시스템은 수신 서버(120) 및 송신 서버(130)를 포함한다. 상기 수신 서버(120) 및 송신 서버(130)는 송수신 네트워크(100)를 구성하며, 클라이언트(110)와 네트워크로 연결되어 있다.As shown in FIG. 1, the service processing system according to the present invention includes a receiving server 120 and a transmitting server 130. The reception server 120 and the transmission server 130 constitute a transmission / reception network 100 and are connected to the client 110 through a network.

수신 서버(120)는 클라이언트(110)와 네트워크로 연결되어 상기 클라이언트(110)로부터 서비스 요청 패킷(140)을 수신한다. 서비스 요청 패킷(140)은 클라이언트(110) 측에서 서버의 데이터 정보를 이용하기 위하여 특정 서버 측으로 서비스의 요청을 위하여 보내는 패킷(packet)을 말한다. 클라이언트(110)가 서버 측으로 할 수 있는 서비스 요청으로는, 웹사이트의 접속, 데이터의 다운로드, 데이터의 스트리밍 서비스 등이 있을 수 있다. 예를 들어, 클라이언트(110) 측에서 특정 서버로 데이터의 다운로드를 요청 시에, 클라이언트(110)는 특정 서버 측으로 서비스 요청 패킷을 송신하고 특정 서버로부터 데이터를 다운로드 하여 원하는 서비스를 받을 수 있다.The reception server 120 is connected to the network with the client 110 to receive a service request packet 140 from the client 110. The service request packet 140 refers to a packet sent by the client 110 to request a service to a specific server in order to use data information of the server. The service request that the client 110 may make to the server side may include a connection to a website, a download of data, a streaming service of data, and the like. For example, when the client 110 requests a download of data to a specific server, the client 110 may receive a desired service by transmitting a service request packet to the specific server and downloading data from the specific server.

상기 서비스 요청 패킷(140)은 서비스 요청을 하는 클라이언트 측의 IP 주소 및 포트, 그리고 서비스 요청을 받는 서버 측의 IP 주소 및 포트를 포함한다. 상기 수신 서버(120)는 송수신 네트워크(100)의 대표 IP 주소로 설정되어 있으므로, 수신 서버(120)는 클라이언트(110)가 송신하는 서비스 요청 패킷(140) 중에서, 상기 송수신 네트워크(100)의 대표 IP 주소로 수신되는 서비스 요청 패킷(140)을 수신한다.The service request packet 140 includes an IP address and port of a client side making a service request, and an IP address and port of a server side receiving a service request. Since the reception server 120 is set to the representative IP address of the transmission / reception network 100, the reception server 120 is a representative of the transmission / reception network 100 among the service request packets 140 transmitted by the client 110. Receive the service request packet 140 received at the IP address.

특히, 수신 서버(120)의 IP 주소를 송수신 네트워크(100)의 대표 IP 주소로 설정하면, 대표 IP 주소를 목적지 주소로 하는 클라이언트(110)로부터의 서비스 요청 패킷(140)은 모두 수신 서버(120)로 수신된다. 수신 서버(120)는 송수신 네트워크(100) 내에서 상기 송신 서버(130)와 물리적으로 구분되어 상기 클라이언트(110)로부터 서비스 요청 패킷(140)을 수신하는 역할을 전담하며, 상기 서비스 요청 패킷(140)에 대한 응답 패킷(160)을 직접 상기 클라이언트(110)로 송신하지 않는다. In particular, when the IP address of the receiving server 120 is set as the representative IP address of the transmission / reception network 100, all the service request packets 140 from the client 110 having the representative IP address as the destination address are all received server 120. Is received). Receiving server 120 is physically separated from the transmitting server 130 in the transmission and reception network 100 is responsible for receiving the service request packet 140 from the client 110, the service request packet 140 Does not directly send the response packet 160 to the client 110.

즉, 본 발명에서는 수신 서버(120)는 클라이언트(110)로부터의 데이터 수신을 전담하고, 송신 서버(130)는 클라이언트로(110)의 데이터 송신을 전담한다. 이와 같이 본 발명에서는 클라이언트로부터의 데이터 수신과 데이터 송신이 각각 수 신 서버(120) 빛 송신 서버(130)로 분리되어 수행됨으로써, 전체적인 네트워크 서비스에 있어서 한 지점에 병목이 발생되지 않도록 한다. 이를 위하여, 수신 서버(120)와 송신 서버(130)는 물리적으로 분리되고 네트워크로 연결된다.That is, in the present invention, the receiving server 120 is dedicated to receiving data from the client 110, and the transmitting server 130 is dedicated to transmitting data from the client 110. As described above, in the present invention, data reception and data transmission from the client are separately performed by the reception server 120 and the light transmission server 130, thereby preventing bottlenecks at one point in the overall network service. To this end, the receiving server 120 and the sending server 130 are physically separated and connected to the network.

또한, 수신 서버(120)는 클라이언트(110)로부터 수신한 서비스 요청 패킷(140)을 이용하여, 이에 대응하는 제 1 정보(150)를 생성하고 상기 송신 서버(130)로 송신한다. 상기 제 1 정보(150)에는 상기 클라이언트(110)의 IP 주소 및 포트, 송수신 네트워크(100)의 포트 번호 등이 포함되어 있다. 이와 같이, 수신 서버(120)는 클라이언트(110) 측으로부터 수신한 서비스 요청 패킷(140)에 포함되어 있는 클라이언트(110)의 정보를 가공하여 제 1 정보(150)를 생성하여 송신 서버(130)로 송신한다. 따라서, 송신 서버(130)는 상기 제 1 정보(150)를 수신하여 클라이언트(110)가 필요로 하는 서비스에 상응하는 응답 패킷(160)을 상기 클라이언트(110)로 송신할 수 있다. 예를 들어, 클라이언트(110)로부터 서버 측으로 데이터의 다운로드의 서비스 요청이 발생하면, 송수신 네트워크(100)의 대표 IP를 갖는 수신 서버(120)가 상기 클라이언트(110)로부터 서비스 요청 패킷(140)을 수신하고 상기 서비스 요청 패킷(140)을 가공하여 제 1 정보를 생성한 후, 상기 제 1 정보(150)를 송신 서버(130)로 송신한다.In addition, the reception server 120 generates the first information 150 corresponding to the service request packet 140 received from the client 110 and transmits the first information 150 to the transmission server 130. The first information 150 includes an IP address and port of the client 110, a port number of the transmission / reception network 100, and the like. As such, the reception server 120 processes the information of the client 110 included in the service request packet 140 received from the client 110 to generate the first information 150, thereby transmitting the server 130. To send. Accordingly, the transmission server 130 may receive the first information 150 and transmit a response packet 160 corresponding to the service required by the client 110 to the client 110. For example, when a service request for downloading data from the client 110 to the server side occurs, the receiving server 120 having the representative IP of the transmission / reception network 100 receives the service request packet 140 from the client 110. After receiving and processing the service request packet 140 to generate first information, the first information 150 is transmitted to the transmission server 130.

송신 서버(130)는 상기 수신 서버(120)로부터 제 1 정보(150)를 수신하여 이에 대한 응답으로서, 제 1 패킷(160)을 생성하여 상기 클라이언트(110)로 송신한다. 상기 제 1 패킷(160)은 클라이언트(110) 측에서 필요로 하는 서비스를 가능하도록 하는 데이터이다. 따라서, 클라이언트(110)는 상기 송신 서버(130)로부터 제 1 패킷 (160)을 수신하여 필요로 하는 서비스를 받을 수 있다. 예를 들어, 클라이언트(110)로부터 서버 측으로 데이터의 다운로드의 서비스 요청이 발생하면, 송신 서버(130)는 수신 서버(120)로부터 제 1 정보(150)를 수신하고, 송신 서버(130)가 상기 제 1 정보(150)에 기초하여 상기 클라이언트(110)측으로 데이터, 즉 제 1 패킷(160)을 송신한다. 상기 송신 서버(130)로부터 클라이언트(110)로 송신되는 제 1 패킷(160)에는 소스 네트워크 주소로서 송수신 네트워크(100)의 대표 IP 주소가 설정되며, 목적지 네트워크 주소로서 클라이언트(110)의 IP 주소가 설정되며, 소스 포트 번호로서 송수신 네트워크(100)의 포트 번호가 설정되고, 목적지 포트 번호로서 클라이언트(110)의 포트 번호가 설정되어, 상기 클라이언트(110)로 송신된다.The transmitting server 130 receives the first information 150 from the receiving server 120, generates a first packet 160, and transmits the first information 150 to the client 110 in response thereto. The first packet 160 is data for enabling a service required by the client 110. Accordingly, the client 110 may receive the first packet 160 from the transmitting server 130 and receive the required service. For example, when a service request for downloading data from the client 110 to the server side occurs, the transmitting server 130 receives the first information 150 from the receiving server 120, and the transmitting server 130 receives the above information. Based on the first information 150, the data 110, that is, the first packet 160 is transmitted to the client 110. In the first packet 160 transmitted from the transmission server 130 to the client 110, a representative IP address of the transmission / reception network 100 is set as a source network address, and an IP address of the client 110 is set as a destination network address. The port number of the transmission / reception network 100 is set as the source port number, the port number of the client 110 is set as the destination port number, and transmitted to the client 110.

이때, 송신 서버(130)는 클라이언트(110)로부터의 서비스 요청 패킷(140)에 응답하는 제 1 패킷(160)을 클라이언트(110)에게 송신할 뿐, 클라이언트(110)로부터 아무런 패킷을 수신하지 않는다. 이는 외부적으로 수신 서버(120) 및 송신 서버(130)가 동일 한 대표 IP 주소를 사용하되, 외부로부터 상기 대표 IP 주소로 수신되는 패킷은 수신 서버(120)로만 전달되도록 함으로써 수행 될 수 있다. 즉, 외부적으로 대표 IP 주소를 사용하는 서버는 수신 서버(120)로 설정되어 있으므로, TCP/IP 네트워크의 동작에 의하여 대표 IP 주소를 목적지 주소로 하는 패킷은 수신 서버(120)로만 수신된다.At this time, the transmitting server 130 only transmits the first packet 160 corresponding to the service request packet 140 from the client 110 to the client 110, and does not receive any packet from the client 110. . This may be performed by allowing the receiving server 120 and the sending server 130 to externally use the same representative IP address, but to receive packets received from the outside with the representative IP address only to the receiving server 120. That is, since the server using the representative IP address externally is set as the receiving server 120, a packet having the representative IP address as the destination address is received only by the receiving server 120 by the operation of the TCP / IP network.

클라이언트(110)는 상기 송신 서버(130)로부터 제 1 패킷(160)을 수신하여 원하는 서비스를 받을 수 있다. 이때, 클라이언트(110)는 수신 서버(120)와 송신 서버(130)의 분리를 전혀 인식하지 못한 채 서비스 요청 패킷(140)에 대한 제 1 패 킷(160)을 수신하게 되므로, 클라이언트(110)의 프로그램은 아무런 수정 없이도 본 발명에 따라 수행될 수 있다.The client 110 may receive the first service by receiving the first packet 160 from the transmission server 130. In this case, since the client 110 receives the first packet 160 for the service request packet 140 without any recognition of the separation between the receiving server 120 and the transmitting server 130, the client 110 may receive the first packet 160. The program of can be carried out according to the present invention without any modification.

클라이언트(110)는 상기 송신 서버(130)로부터 제 1 패킷(160)을 수신하고 그에 대한 응답으로서 제 2 패킷(미도시)을 송수신 네트워크(100) 측으로 전송한다. 이때, 상기 제 2 패킷(미도시)은 클라이언트(100)가 상기 송신 서버(130)로부터 수신한 제 1 패킷(160)에 대한 응답으로서 송수신 네트워크(100)로 전송된다. 클라이언트(110)는 상기 제 2 패킷(미도시)을 송수신 네트워크(100)로 송신하여, 송수신 네트워크(100) 측으로부터 제 1 패킷(160)을 정상적으로 수신 하였음을 알린다.The client 110 receives the first packet 160 from the transmission server 130 and transmits a second packet (not shown) to the transmit / receive network 100 in response thereto. In this case, the second packet (not shown) is transmitted to the transmission / reception network 100 in response to the first packet 160 received by the client 100 from the transmission server 130. The client 110 transmits the second packet (not shown) to the transmission / reception network 100 to inform that the first packet 160 is normally received from the transmission / reception network 100 side.

이와 같이, 수신 서버(120)는 클라이언트(110)로부터 서비스 요청 패킷(140)의 수신을 담당하고, 송신 서버(130)는 클라이언트(110)로부터의 제 1 패킷(160)의 전송을 담당하며, 송신 서버(130)는 클라이언트(110)로부터 수신한 요청 패킷(140)의 정보를 이용하여 서비스 요청에 대응함으로써, 보다 빠르게 클라이언트(110)의 서비스 요청을 처리 할 수 있다. As such, the receiving server 120 is responsible for receiving the service request packet 140 from the client 110, and the transmitting server 130 is responsible for transmitting the first packet 160 from the client 110. The transmission server 130 may process the service request of the client 110 more quickly by responding to the service request by using the information of the request packet 140 received from the client 110.

도 2a는 본 발명에 따른 서비스 요청 패킷을 도시한 도면이고, 도 2b는 본 발명에 따른 제 1 정보를 도시한 도면이며, 도 2c는 본 발명에 따른 제 1 패킷을 도시한 도면이다.2A is a diagram illustrating a service request packet according to the present invention, FIG. 2B is a diagram illustrating first information according to the present invention, and FIG. 2C is a diagram illustrating a first packet according to the present invention.

서비스 요청 패킷(140)은 서비스를 요청하는 클라이언트(140)에 관한 정보와 상기 서비스 요청 패킷(140)을 수신할 수신 서버(120)에 관한 정보를 가지고 있으며, 도 2a에 도시된 바와 같이, 소스 네트워크 주소(201), 목적지 네트워크 주소 (202), 소스 포트 번호(203), 목적지 네트워크 주소(204) 및 데이터 필드(205)를 포함하여 구성된다.The service request packet 140 has information about a client 140 requesting a service and information about a receiving server 120 to receive the service request packet 140. As shown in FIG. Network address 201, destination network address 202, source port number 203, destination network address 204, and data fields 205.

상기 서비스 요청 패킷(140)은 소스 네트워크 주소(201)로서 클라이언트(110)의 IP 주소를 가지고 있고, 목적지 네트워크 주소(202)로서 서비스 요청 패킷(140)을 수신할 서버의 IP 주소를 가지고 있다. 따라서, 상기 서비스 요청 패킷(140)을 송신하는 클라이언트(110)는 서비스 요청 패킷(140)에 목적지 네트워크 주소(202)가 포함하여 송신하고, 상기 서비스 요청 패킷(140)을 수신하는 서버 측에서는 소스 네트워크 주소(201)를 참조하여 서비스 요청을 한 클라이언트(110)를 식별할 수 있다. 또한, 서비스 요청 패킷(140)에는 소스 포트 번호(203)로서 클라이언트(110)의 포트 번호와 목적지 포트 번호(204)로서 수신 서버(120)의 포트 번호가 포함되어 있다. 따라서, 상기 서비스 요청 패킷(140)은 목적지 포트 번호(204)에 해당하는 수신 서버(120)의 포트로 수신되고, 수신 서버(120) 측에서는 상기 소스 포트 번호(203)를 참조하여 상기 서비스 요청 패킷(140)이 어느 클라이언트(110)의 포트로부터 송신 되었는지를 알 수 있다. 예를 들어, 도 2a에서와 같이, 클라이언트(110)는 소스 네트워크 주소(201)에는 클라이언트(110) 자신의 IP 주소인 88.24.5.6을 설정하고, 목적지 네트워크 주소(202)에는 서비스 요청에 응해 줄 수신 서버(120)의 IP 주소인 157.8.7.6을 설정하고, 소스 포트 번호(203)에는 서비스를 요청할 클라이언트(110)의 포트인 777을 설정하고, 목적지 포트 번호(204)에는 서비스 요청에 응해 줄 수신 서버(120)의 포트인 80을 설정하여 서비스 요청 패킷(140)을 생성하고, 생성된 서비스 요청 패킷(140)을 수신 서버(120)로 송신한다. The service request packet 140 has an IP address of the client 110 as a source network address 201 and an IP address of a server to receive the service request packet 140 as a destination network address 202. Accordingly, the client 110 transmitting the service request packet 140 includes the destination network address 202 in the service request packet 140 and transmits the source network at the server side that receives the service request packet 140. The client 110 that has made a service request may be identified by referring to the address 201. In addition, the service request packet 140 includes the port number of the client 110 as the source port number 203 and the port number of the receiving server 120 as the destination port number 204. Accordingly, the service request packet 140 is received through the port of the receiving server 120 corresponding to the destination port number 204, and the receiving server 120 refers to the source port number 203 and the service request packet. It can be seen from which port of the client 110 140 has been sent. For example, as shown in FIG. 2A, the client 110 sets the source network address 201 to 88.24.5.6, which is the client's own IP address, and the destination network address 202 to respond to the service request. 157.8.7.6, which is the IP address of the receiving server 120, is set, the source port number 203 is set to 777, which is the port of the client 110 to request service, and the destination port number 204 is set to respond to the service request. The service request packet 140 is generated by setting the port 80 of the receiving server 120, and the generated service request packet 140 is transmitted to the receiving server 120.

수신 서버(120)는 상기 서비스 요청 패킷(140)을 수신하여, 상기 서비스 요청 패킷(140)에 포함되어 있는 클라이언트(110)의 IP 주소, 수신 서버(120)의 IP 주소, 클라이언트(110)의 포트 번호, 수신 서버(120)의 포트 번호 등의 정보를 가공하여 제 1 정보(150)를 생성하고 송신 서버(130)로 송신한다. 도 2 b에 도시된 바와 같이, 상기 제 1 정보(150)에는 클라이언트의 IP 주소(211), 클라이언트의 포트 번호(212), 수신 서버의 포트 번호(213) 및 데이터 필드(214)를 포함된다. 이와 같이, 수신 서버(120)는 클라이언트(110)로부터 수신한 서비스 요청 패킷(140)에 포함되어 있는 정보를 이용하여 제 1 정보(150)를 생성하고 송신 서버(130)로 송신한다. 예를 들어, 서비스 요청 패킷(140)에 포함되어 있는 클라이언트 IP 주소(201)가 88.24.5.6이고, 클라이언트 포트 번호(203)가 777이며, 수신 서버의 포트 번호(204)가 80인 경우에는, 수신 서버(130)는 상기 서비스 요청 패킷(140)에 포함되어 있는 정보를 이용하여 클라이언트 IP 주소(211)가 88.24.5.6이고, 클라이언트 포트 번호(212)가 777이며, 수신 서버의 포트(213)가 80이며, 데이터 필드(214)를 포함하여 구성되는 제 1 정보(150)를 생성하여 송신 서버(130)로 전달한다.The receiving server 120 receives the service request packet 140, the IP address of the client 110 included in the service request packet 140, the IP address of the receiving server 120, and the client 110. Information such as a port number and a port number of the reception server 120 is processed to generate the first information 150 and transmitted to the transmission server 130. As shown in FIG. 2B, the first information 150 includes an IP address 211 of the client, a port number 212 of the client, a port number 213 of the receiving server, and a data field 214. . As such, the reception server 120 generates the first information 150 using the information included in the service request packet 140 received from the client 110 and transmits the first information 150 to the transmission server 130. For example, if the client IP address 201 included in the service request packet 140 is 88.24.5.6, the client port number 203 is 777, and the receiving server port number 204 is 80, The receiving server 130 uses the information included in the service request packet 140, and the client IP address 211 is 88.24.5.6, the client port number 212 is 777, and the port 213 of the receiving server. Is 80 and the first information 150 including the data field 214 is generated and transmitted to the transmission server 130.

송신 서버(130)는 상기 수신 서버(120)와 연결된 네트워크를 통하여 상기 수신 서버(120)로부터 상기 제 1 정보(150)를 수신한다. 송신 서버(130)가 수신 서버(120)로부터 수신한 제 1 정보(150)에는 클라이언트의 IP 주소(211), 클라이언트의 포트 번호(212), 수신 서버의 포트 번호(213) 등이 포함되어 있으므로, 이를 이용하여 클라이언트(110) 측으로 송신할 제 1 패킷(160)을 생성할 수 있다. 도 2c에 도시된 바와 같이, 제 1 패킷(160)은 소스 네트워크 주소(221), 목적지 네트워크 주소(222), 소스 포트 번호(223), 목적지 포트 번호(224) 및 데이터 필드로 구성된다. 예를 들어, 송신 서버(130)는 수신 서버(120)로부터 수신한 제 1 정보(150)를 이용하여 소스 네트워크 주소(221)에는 수신 서버(120)의 IP 주소인 157.8.7.6을 설정하고, 목적지 네트워크 주소(222)에는 제 1 패킷(160)을 수신할 클라이언트(110)의 IP 주소인 88.24.5.6을 설정하여 제 1 패킷(160)을 생성한다. 또한, 송신 서버(130)는 소스 포트 번호(223)에는 수신 서버(120)의 포트인 80을 설정하고, 목적지 포트 번호(224)에는 제 1 패킷(160)을 수신할 클라이언트(110)의 포트인 777을 설정하고, 데이터 필드(225)와 함께 제 1 패킷(160)을 생성한다. 송신 서버(130)는 서비스 요청을 한 클라이언트(110) 측으로 상기 제 1 패킷(160)을 송신하며, 클라이언트(110)는 송신 서버(130)로부터 제 1 패킷(160), 즉 서비스 요청에 대응되는 데이터를 수신하므로 클라이언트(110)가 요청했던 서비스를 받을 수 있다.The transmitting server 130 receives the first information 150 from the receiving server 120 through a network connected with the receiving server 120. The first information 150 received by the sending server 130 from the receiving server 120 includes an IP address 211 of the client, a port number 212 of the client, a port number 213 of the receiving server, and the like. By using this, the first packet 160 to be transmitted to the client 110 may be generated. As shown in FIG. 2C, the first packet 160 consists of a source network address 221, a destination network address 222, a source port number 223, a destination port number 224, and a data field. For example, the transmission server 130 sets 157.8.7.6, which is the IP address of the reception server 120, in the source network address 221 using the first information 150 received from the reception server 120. In the destination network address 222, the first packet 160 is generated by setting 88.24.5.6, which is the IP address of the client 110 to receive the first packet 160. In addition, the source server 130 sets the source port number 223, which is the port of the receiving server 120, and the destination port number 224, the port of the client 110 to receive the first packet 160. 777 is set and the first packet 160 is generated together with the data field 225. The transmitting server 130 transmits the first packet 160 to the client 110 that has made a service request, and the client 110 corresponds to the first packet 160, that is, the service request from the transmitting server 130. Since the data is received, the client 110 may receive the service requested.

이후, 클라이언트(110)는 상기 제 1 패킷(160)의 수신이 모두 정상적으로 완료되는 경우, 송신 서버(130)로부터 제 1 패킷(160)을 수신 하였음을 알리는 제 2 패킷(미도시)을 송수신 네트워크(100) 측으로 송신하며, 송수신 네트워크(100)의 대표 IP를 갖는 수신 서버(120)는 상기 제 2 패킷(미도시)을 수신하여, 클라이언트(110)가 필요로 하는 서비스의 제공이 정상적으로 이루어 졌음을 확인 할 수 있다.Thereafter, when the reception of the first packet 160 is normally completed, the client 110 transmits and receives a second packet (not shown) indicating that the first packet 160 has been received from the transmission server 130. Receiving server 120 that transmits to the (100) side, the representative IP of the transmission and reception network 100 receives the second packet (not shown), the service required by the client 110 has been provided normally can confirm.

상기와 같이 구성되는 송수신 네트워크(110)와 클라이언트(110)간의 서비스의 요청 및 그에 대응하는 서비스의 제공에 있어서, 클라이언트(110)와 수신 서버(120)간의 네트워크 연결 상태와, 송신 서버(130)와 클라이언트(110)간의 네트워크 연결 상태를 확인하고, 네트워크 연결 상태에 따라 패킷의 송수신 속도를 제어할 수 있는 구성 및 방법을 설명하면 다음과 같다. In the request for the service between the transmission and reception network 110 and the client 110 configured as described above and the provision of the corresponding service, the network connection state between the client 110 and the reception server 120 and the transmission server 130. The configuration and method for checking the network connection state between the client and the client 110 and controlling the transmission / reception rate of the packet according to the network connection state are as follows.

도 3은 본 발명의 또 다른 일례에 따른 분산 흐름 제어 시스템의 구성도를 도시한 도면이다.3 is a diagram illustrating a configuration of a distributed flow control system according to another example of the present invention.

도 3에 도시된 바와 같이, 클라이언트(310)가 서비스 요청 패킷(미도시)을 수신 서버(320)로 송신하면, 수신 서버(320)는 상기 서비스 요청 패킷(미도시)을 수신하고, 상기 서비스 요청 패킷(미도시)을 이용하여 제 1 정보(미도시)를 생성하여 송신 서버(330)로 송신한다.As shown in FIG. 3, when the client 310 transmits a service request packet (not shown) to the receiving server 320, the receiving server 320 receives the service request packet (not shown) and the service. First information (not shown) is generated using the request packet (not shown) and transmitted to the transmission server 330.

송신 서버(330)는 수신 서버(320)로부터 제 1 정보(미도시)를 수신하여 이에 대한 응답으로서, 제 1 패킷(335)을 생성하여 상기 클라이언트(310)로 송신한다. 상기 제 1 패킷(335)은 클라이언트(310) 측에서 필요로 하는 서비스에 해당하는 데이터 이다. 상기 송신 서버(320)로부터 클라이언트(310)로 송신되는 제 1 패킷(335)에는 소스 네트워크 주소로서 송수신 네트워크(300)의 대표 IP 주소가 설정되며, 목적지 네트워크 주소로서 클라이언트(310)의 IP 주소가 설정되며, 소스 포트 번호로서 송수신 네트워크(300)의 포트 번호가 설정되고, 목적지 포트 번호로서 클라이언트(310)의 포트 번호가 설정되어, 상기 클라이언트(310)로 송신된다. 이때, 상기 송신 서버(330)는 상기 제 1 패킷(335)에 시퀀스 넘버(Sequence number: 340)를 포함하여 송신한다. 상기 시퀀스 넘버(340)는 송신서버(330)로부터 클라이언트(310)로 송신되는 패킷들의 순서에 관한 정보이다.The transmitting server 330 receives the first information (not shown) from the receiving server 320 and generates a first packet 335 as a response to the receiving server 320 and transmits the first packet 335 to the client 310. The first packet 335 is data corresponding to a service required by the client 310. In the first packet 335 transmitted from the transmission server 320 to the client 310, a representative IP address of the transmission / reception network 300 is set as a source network address, and an IP address of the client 310 is set as a destination network address. The port number of the transmission / reception network 300 is set as the source port number, and the port number of the client 310 is set as the destination port number and transmitted to the client 310. In this case, the transmission server 330 transmits the first packet 335 including a sequence number 340. The sequence number 340 is information on the order of packets transmitted from the transmission server 330 to the client 310.

상기 송신 서버(330)는 상기 클라이언트(310)로 송신되는 제 1 패킷(335)에 상기 시퀀스 넘버(340)를 포함하여 송신하므로, 상기 제 1 패킷(335)을 수신하는 클라이언트(310) 측에서는 상기 시퀀스 넘버(340)를 이용하여, 상기 제 1 패킷(335)이 상기 송신 서버(330)로부터 송신된 순서를 알 수 있다. 또한 상기 시퀀스 넘버(340)는 클라이언트(310)에서 상기 제 1 패킷(335)들을 순서에 의하여 정리하여 클라이언트(310)의 서비스 요청에 대응한 데이터를 재구성하는 데에 사용된다. 특히, 상기 시퀀스 넘버(340)는 송신 서버(330)로부터 송신된 상기 제 1 패킷(335)이 패킷 손실(packet loss)없이 클라이언트(310)측으로 수신되었는가의 여부를 판단하는 데에도 사용된다. 예를 들어, 상기 클라이언트(310)과 상기 송신 서버(330) 사이의 네트워크 연결 상태가 좋지 않거나 네트워크 지연이 발생하는 경우에는, 송신 서버(330)로부터 송신된 서비스 요청에 대한 서비스 패킷, 즉 상기 제 1 패킷(335)이 클라이언트(310)측으로 수신되지 않는 경우가 발생한다. 이때, 상기 시퀀스 넘버(340)를 체크하여 상기 송신 서버(330)로부터 제 1 패킷(335)을 수신하였는가의 여부를 확인할 수 있다. Since the transmitting server 330 includes the sequence number 340 in the first packet 335 transmitted to the client 310, the transmitting server 330 receives the first packet 335 from the client 310. By using the sequence number 340, the order in which the first packet 335 is transmitted from the transmission server 330 may be known. In addition, the sequence number 340 is used to reconstruct the data corresponding to the service request of the client 310 by arranging the first packets 335 in the order in the client 310. In particular, the sequence number 340 is also used to determine whether the first packet 335 transmitted from the transmission server 330 has been received to the client 310 without packet loss. For example, when the network connection state between the client 310 and the transmission server 330 is not good or a network delay occurs, a service packet for the service request transmitted from the transmission server 330, that is, the first packet is transmitted. There is a case where one packet 335 is not received to the client 310 side. In this case, the sequence number 340 may be checked to determine whether the first packet 335 is received from the transmission server 330.

클라이언트(310)는 송신 서버(330)로부터 서비스 요청에 대한 제 1 패킷(335)을 수신하여 원하는 서비스를 받을 수 있으며, 이때 상기 제 1 패킷(335)과 함께 시퀀스 넘버(340)를 수신한다. 또한, 클라이언트(310)는 송수신 네트워크(300) 측으로 제 1 패킷(335)의 수신을 알리는 제 2 패킷(350)을 송신하는데, 상기 제 2 패킷(350)은 클라이언트(310)가 송신 서버(330)로부터 제 1 패킷(335)을 수신하여 클라이언트(110)가 필요로 하는 서비스의 제공이 정상적으로 이루어졌음을 알리기 위한 패킷이다.The client 310 may receive a desired service by receiving the first packet 335 for the service request from the transmitting server 330, and receives the sequence number 340 together with the first packet 335. In addition, the client 310 transmits a second packet 350 informing the reception and reception of the first packet 335 to the transmit / receive network 300, wherein the second packet 350 is transmitted by the client 310 to the transmission server 330. The first packet 335 is received from the packet 335 to indicate that the service required by the client 110 has been normally provided.

클라이언트(310)가 송신 서버(330)로 제 1 패킷(335)의 수신을 알리는 응답 패킷인 제 2 패킷(350)을 송신하는 방법으로는 온디맨드 방식(on-demand method)과 주기적 방식(periodical method)의 2가지가 있다. On-demand 방식은 서비스 패킷(즉, 제1 패킷(335))이 도착할 때 마다 또는 몇 개의 서비스 패킷(335)이 도착할 때마다 응답(즉, 제2 패킷(350))을 전송하는 방식이다. Periodical 방식은 서비스 패킷(335)이 도착하지 않더라도, 응답 패킷(350)을 전송하고 일정시간이 지나면 현재 상황에 대한 응답 패킷(350)을 전송하는 방식이다. On-demand 방식은 서비스 패킷(335)이 도착할 때마다 응답이 이루어지기 때문에 반응 속도가 빠르다는 장점이 있다. 그러나, On-demand 방식에서, 서비스 패킷(335)이 도착하지 않으면 반응이 없기 때문에 수신 서버(320)에서 클라이언트(310)의 최근의 수신 현황을 알 수 없으며, 응답 패킷(350)이 손실된 경우 조치를 취할 수 없다. Periodical 방식은 서비스 패킷(335)이 도착하는 것과는 별개로 일정 시간마다 클라이언트(310)의 수신 상황을 전달하기 때문에 반응 속도는 느리더라도, 서비스 패킷(335)의 전송 없이도 클라이언트(310)의 최근 수신 현황을 알 수 있으며, 응답 패킷(350)이 손실되더라도 잠시 후에 다시 응답 패킷(350)이 전송되기 때문에, 수신 서버(320)에서 서비스 패킷(335)이 없더라도 클라이언트(310)의 수신 상황을 알 수 있다. 본 발명의 일실시예에 따르면, 클라이언트(310)는 on-demand 방식과 periodical 방식을 혼합하여 사용한다. 이 실시예에 따르면, 응답 속도도 높아지고, 수신 서버(320)는 서비스 패킷(335)이 없더라도 클라이언트(310)의 수신 상황을 알 수 있다.The client 310 transmits the second packet 350, which is a response packet informing the reception server 330 of the reception of the first packet 335, to an on-demand method and a periodic method. There are two methods. The on-demand method transmits a response (that is, the second packet 350) every time a service packet (ie, the first packet 335) arrives or every time several service packets 335 arrives. In the periodic method, even if the service packet 335 does not arrive, the response packet 350 is transmitted, and after a predetermined time, the response packet 350 for the current situation is transmitted. On-demand method has an advantage that the response speed is fast because the response is made each time the service packet 335 arrives. However, in the on-demand method, since there is no response when the service packet 335 does not arrive, the reception server 320 cannot know the latest reception status of the client 310, and the response packet 350 is lost. No action can be taken. Since the periodic method transmits the reception status of the client 310 every predetermined time independently of the arrival of the service packet 335, even if the response speed is slow, the recent reception status of the client 310 without the transmission of the service packet 335 Even if the response packet 350 is lost, since the response packet 350 is transmitted again after a while, the reception status of the client 310 can be known even if the service server 335 is not present at the receiving server 320. . According to an embodiment of the present invention, the client 310 uses a mixture of the on-demand method and the periodical method. According to this embodiment, the response speed is also increased, and the reception server 320 can know the reception status of the client 310 even without the service packet 335.

상기 클라이언트(310)는 상기 송신 서버(330)로부터 수신한 제 1 패킷(335) 에 포함되어 있는 시퀀스 넘버(340)를 이용하여 시퀀스 맵(Sequence map: 360, 370)을 생성한다. 시퀀스 맵(360, 370)이라 함은, 적어도 하나 이상의 상기 시퀀스 넘버(340)가 순차적으로 배열되어 구성된 맵(map)을 말한다. 클라이언트(310)는 상기 시퀀스 넘버(340)를 소정의 개수만큼 묶어서 시퀀스 맵(360, 370)을 생성하며, 생성된 상기 시퀀스 맵(360, 370)을 상기 제 1 패킷(350)과 함께 수신 서버(320)로 송신한다.The client 310 generates sequence maps 360 and 370 using the sequence number 340 included in the first packet 335 received from the transmission server 330. The sequence maps 360 and 370 refer to a map formed by sequentially arranging at least one or more of the sequence numbers 340. The client 310 generates the sequence maps 360 and 370 by binding the sequence number 340 by a predetermined number, and receives the generated sequence maps 360 and 370 together with the first packet 350. Send to 320.

상기 송수신 네트워크(300)의 대표 IP 를 갖는 수신 서버(320)는 클라이언트(310)로부터 상기 시퀀스 맵(360, 370)이 포함되어 있는 제 2 패킷(350)을 수신한다. 상기 시퀀스 맵(360, 370) 중에서 제 1 시퀀스 맵(360)은, 클라이언트(310)가 송신 서버(330)로부터 수신한 시퀀스 넘버(340)를 이용하여 생성되어, 수신 서버(320)가 상기 제 1 시퀀스 맵(360) 중에 포함되어 있는 시퀀스 넘버(340)가 누락되어 있는 가의 여부를 판단하는 데에 사용된다. 특히, 수신 서버(320)는 상기 제 1 시퀀스 맵(360) 중에 시퀀스 넘버(340)가 누락되어 있는 경우, 상기 송신 서버(330)와 클라이언트(310) 사이의 네트워크에 지연이 발생하는 것으로 판단하여, 송신 서버(330)로부터 클라이언트(310)로의 제 1 패킷(340)의 송신을 조절하도록 하는 흐름 제어 패킷(325)을 상기 송신 서버(330)로 송신하거나, 상기 누락된 시퀀스 넘버(340)에 해당하는 제 1 패킷(340)을 재전송 하도록 하는 패킷(325)을 상기 송신 서버(330)로 송신할 수 있다.The reception server 320 having the representative IP of the transmission / reception network 300 receives the second packet 350 including the sequence maps 360 and 370 from the client 310. Among the sequence maps 360 and 370, a first sequence map 360 is generated using the sequence number 340 received by the client 310 from the transmission server 330, so that the reception server 320 generates the first sequence map 360. 1 is used to determine whether the sequence number 340 included in the sequence map 360 is missing. Particularly, when the sequence number 340 is missing from the first sequence map 360, the reception server 320 determines that a delay occurs in the network between the transmission server 330 and the client 310. , Transmits a flow control packet 325 to the transmission server 330 to regulate transmission of the first packet 340 from the transmission server 330 to the client 310, or to the missing sequence number 340. The packet 325 for retransmitting the corresponding first packet 340 may be transmitted to the transmission server 330.

클라이언트(310)가 시퀀스 맵(360, 370)를 생성하는 예를 설명하면 다음과 같다. 클라이언트(310)는 송신 서버(330)로부터 시퀀스 넘버(340)를 포함한 제 1 패킷(335)을 수신하고, 상기 시퀀스 맵(360, 370)에 해당하는 시퀀스 넘버(340)들을 포함한 제 1 패킷(335)을 수신하였는가의 여부를 체크한다. 즉, 클라이언트(310)가 1, 2, 3, 4, 5 등의 5개의 시퀀스 넘버(360)로 이루어진 시퀀스 맵(350)을 생성하는 경우, 클라이언트(310)는 시퀀스 맵(350)의 시퀀스 넘버(340) 중에 누락된 시퀀스 넘버(360)를 체크하여, 3과 5의 시퀀스 넘버(360)가 누락되었으면, 클라이언트(310)가 상기 3과 5 시퀀스 넘버(360)가 빠진 (1, 2, X, 4, X)의 시퀀스 맵(360)을 생성하여 상기 수신 서버(320)로 송신한다. 수신 서버(320)는 상기 클라이언트(350)로부터 수신한 시퀀스 맵(360)을 체크하고 3과 5 시퀀스 넘버(360)가 누락된 것으로 확인되면, 송신 서버(330)와 클라이언트(310) 간의 네트워크에 지연이 발생한 것으로 판단하여, 송신 서버(330)로부터 상기 클라이언트(310)로의 제 1 패킷(335)의 송신을 조절하도록 하는 흐름 제어 패킷(325)을 송신 서버(330)로 송신한다. 또한, 수신 서버(320)는 누락된 시퀀스 넘버(360) 3 및 5에 해당하는 제 1 패킷(335)을 재전송하도록 하는 패킷(325)을 송신 서버(330)로 송신한다. 송신 서버(330)는 상기 수신 서버(320)로부터 흐름 제어 패킷(325)을 수신하고, 상기 흐름 제어 패킷(325)에 따라서 상기 클라이언트(310)로의 상기 제 1 패킷(335)의 송신 속도를 조절한다. 또한, 송신 서버(330)는 상기 누락된 시퀀스 넘버(360)인 3과 5에 해당하는 제 1 패킷(335)을 재전송 한다. 그러면, 클라이언트(310)는 송신 서버(330)와 클라이어언트(310) 사이의 네트워크에 따라 송신 속도가 조절된 상기 제 1 패킷(340)을 수신하게 되고, 또한 누락된 시퀀스 넘버(360)인 3과 5에 해당하는 제 1 패킷(335)을 재수신 한다.An example in which the client 310 generates the sequence maps 360 and 370 is as follows. The client 310 receives the first packet 335 including the sequence number 340 from the transmitting server 330, and the first packet including the sequence numbers 340 corresponding to the sequence maps 360 and 370. 335) whether or not it is received. That is, when the client 310 generates a sequence map 350 composed of five sequence numbers 360 such as 1, 2, 3, 4, 5, etc., the client 310 generates the sequence map 350 of the sequence map 350. If the sequence number 360 of 3 and 5 is missed by checking the missing sequence number 360 in step 340, the client 310 checks that the 3 and 5 sequence numbers 360 are missing (1, 2, X). , 4, X generates a sequence map 360 and transmits it to the receiving server 320. The receiving server 320 checks the sequence map 360 received from the client 350 and if it is determined that the 3 and 5 sequence numbers 360 are missing, the receiving server 320 checks the network between the transmitting server 330 and the client 310. Determining that a delay has occurred, a flow control packet 325 is transmitted to the transmission server 330 to regulate transmission of the first packet 335 from the transmission server 330 to the client 310. In addition, the reception server 320 transmits a packet 325 to the transmission server 330 to retransmit the first packet 335 corresponding to the missing sequence numbers 360 and 3. The transmitting server 330 receives the flow control packet 325 from the receiving server 320, and adjusts the transmission rate of the first packet 335 to the client 310 according to the flow control packet 325. do. In addition, the transmission server 330 retransmits the first packet 335 corresponding to 3 and 5, which are the missing sequence numbers 360. Then, the client 310 receives the first packet 340 whose transmission speed is adjusted according to the network between the transmission server 330 and the client 310, and is the missing sequence number 360. The first packet 335 corresponding to 3 and 5 is received again.

상기 시퀀스 맵(360, 370) 중에 상기 제 1 시퀀스 맵(360)은 도 4의 (a)에서와 같이, 송신 서버(330)로부터 수신된 n-k 번째 제 1 패킷(335)에 대한 시퀀스 넘버(340)로부터 n번째 제 1 패킷(335)에 대한 시퀀스 넘버(340)까지 포함하여 구성될 수 있으며, 상기 제 2 시퀀스 맵(370)은 도 4의 (b)에서와 같이, 송신 서버(330)로부터 수신된 n-x-k 번째 제 1 패킷(335)에 대한 시퀀스 넘버(340)로부터 n-x 번째 제 1 패킷(335)에 대한 시퀀스 넘버(340)까지를 포함하여 구성될 수 있다. 이때, 상기 n, x, 및 k는 1 이상의 정수이다. 이와 같이 구성된 상기 제 1 시퀀스 맵(360)과 상기 제 2 시퀀스 맵(370)을 비교하여 상기 클라이언트(310)와 송신 서버(330) 사이의 네트워크 지연의 변화를 판단할 수 있다. 예를 들어, 상기 n이 100, x는 1, k는 9로 설정되었을 때는, 상기 제 1 시퀀스 맵(360)은 도 5의 (a)에 도시된 바와 같이 구성되며, 상기 제 2 시퀀스 맵(370)은 도 5의 (b)에 고시된 바와 같이 구성된다. 이때, 수신 서버(320)가 시간적으로 먼저 수신한 제2 패킷(350)의 제 1 시퀀스 맵(360)은 91, 92, 93, ... 99, 100 등의 시퀀스 넘버(340)로 구성되며, 상기 제 2 시퀀스 맵(370)은 90, 91, 92, ... 98, 99 등의 시퀀스 넘버(340)로 구성된다. 또한, 수신 서버(320)가 시간적으로 나중에 수신한 제2 패킷(350)의 제 1 시퀀스 맵(360)은 92, 93, 94, ... 100, 101 등의 시퀀스 넘버(340)로 구성되며, 상기 제 2 시퀀스 맵(370)은 91, 92, 93, ... 99, 100 등의 시퀀스 넘버(340)로 구성된다.Among the sequence maps 360 and 370, the first sequence map 360 is a sequence number 340 for the nk th first packet 335 received from the transmitting server 330, as shown in FIG. 4A. ) Up to the sequence number 340 for the n th first packet 335, and the second sequence map 370 may be configured from the transmission server 330 as shown in FIG. And a sequence number 340 for the received nxk th first packet 335 to a sequence number 340 for the nx th first packet 335. In this case, n, x, and k is an integer of 1 or more. The change of the network delay between the client 310 and the transmission server 330 may be determined by comparing the first sequence map 360 and the second sequence map 370 configured as described above. For example, when n is set to 100, x is 1, and k is 9, the first sequence map 360 is configured as shown in FIG. 370 is configured as disclosed in FIG. 5B. At this time, the first sequence map 360 of the second packet 350 received in time by the receiving server 320 is composed of sequence numbers 340 such as 91, 92, 93, 99, 100, etc. The second sequence map 370 includes sequence numbers 340 such as 90, 91, 92, ... 98, 99, and the like. In addition, the first sequence map 360 of the second packet 350 received later in time by the receiving server 320 includes a sequence number 340 of 92, 93, 94, ... 100, 101, etc. The second sequence map 370 includes sequence numbers 340 such as 91, 92, 93, 99, 100, and the like.

수신 서버(320)는 상기 시퀀스 맵들(360, 370)을 수신하여 비교한다. 즉, 시간적으로 먼저 수신한 제2 패킷(350)의 제 1 시퀀스 맵(360)과, 수신 서버(320)가 시간적으로 나중에 수신한 제2 패킷(350)의 제 2 시퀀스 맵(370)을 비교한다. 비교한 결과, 도 5의 (a)에서와 같이 91, 92, 93, ... 99, 100 등의 시퀀스 번호(340)가 일치하는 경우, 수신 서버(320)는 상기 클라이언트(310)와 수신 서버(320)간의 네트워크가 지연 없이 동작하는 것으로 판단한다. 이때, 수신 서버(320)는 상기 제 1 시퀀스 맵(360)과 상기 제 2 시퀀스 맵(370)의 시퀀스 넘버(340)를 체크하여, 도 5의 (c)에 도시된 바와 같이, 특정 시퀀스 넘버(340)가 누락되어 있는 경우, 수신 서버(320)가 송신 서버(330)로 흐름 제어 패킷(325)를 송신하여, 송신 서버(330)가 클라이언트(310)로 제 1 패킷(335)의 송신 속도를 조절하여 송신하도록 하거나, 송신 서버(330)가 클라이언트(310)로 상기 누락된 시퀀스 넘버(340)에 해당하는 제 1 패킷(335)을 재전송 하도록 할 수 있다. 특히, 상기 k가 1로 설정되는 경우, 상기에서와 같이 송신 서버(330)와 클라이언트(310) 사이의 네트워크 상태의 보다 상세한 변화 추이가 가능하다. The receiving server 320 receives and compares the sequence maps 360 and 370. That is, the first sequence map 360 of the second packet 350 received in time first and the second sequence map 370 of the second packet 350 received later in time by the receiving server 320 are compared. do. As a result of comparison, when the sequence numbers 340 of 91, 92, 93, 99, 100, etc. match as shown in FIG. 5 (a), the receiving server 320 receives the client 310 from the receiving server 310. It is determined that the network between the servers 320 operates without delay. At this time, the receiving server 320 checks the sequence number 340 of the first sequence map 360 and the second sequence map 370, as shown in (c) of Figure 5, a specific sequence number If 340 is missing, the receiving server 320 sends the flow control packet 325 to the sending server 330, so that the sending server 330 sends the first packet 335 to the client 310. The transmission rate may be adjusted, or the transmission server 330 may retransmit the first packet 335 corresponding to the missing sequence number 340 to the client 310. In particular, when k is set to 1, a more detailed change of the network state between the transmitting server 330 and the client 310 is possible as described above.

본 실시예에서는 송신 서버(330)로부터 클라이언트(310)가 수신하지 못한 시퀀스 넘버를 누락하여 시퀀스 맵을 구성하지만, 본 발명은 이에 한정되지 않는다. 예를 들어, 시퀀스 맵의 해당 위치에 소정의 값(예를 들어, -1)을 표시하여 서비스 패킷이 수신되지 않았음을 표시할 수 있다.In this embodiment, the sequence map is configured by omitting sequence numbers that the client 310 has not received from the transmitting server 330, but the present invention is not limited thereto. For example, a predetermined value (for example, -1) may be displayed at a corresponding position of the sequence map to indicate that a service packet has not been received.

한편, 제 1 시퀀스 맵(360)이 91, 92, 93, ... 99, 100 등의 시퀀스 번호(340)로 구성되었으나, 상기 제 1 시퀀스 맵(360)이 수신된 바로 다음의 시퀀스 맵으로서, 도 5의 (d)에 도시된 바와 같이, 제 2 시퀀스 맵(370)이 80, 81, 82, ... 88, 89 등의 시퀀스 번호(340)로 구성되어 수신 서버(320)로 수신된 경우에는, 수 신 서버(320)가 상기 클라이언트(310)와 수신 서버(320) 사이의 네트워크에 지연이 발생하여 시퀀스 맵(360, 370)을 순차적으로 수신하지 못한 것으로 판단한다. 즉, 수신 서버(320)가 수신했어야 할 시퀀스 맵이 일부 수신되지 않은 것이다. 따라서, 클라이언트(310)로부터 수신 서버(320)로 서비스 요청 패킷(140)을 천천히 송신하도록 하는 흐름 제어 패킷(325)을 송신 서버(330)로 송신한다. 송신 서버(330)는 상기 수신 서버(320)로부터 흐름 제어 패킷(325)을 수신하고, 그에 따른 패킷을 상기 클라이언트(310)로 송신하여 클라이언트(310)가 서비스 요청 패킷(140)의 송신 속도를 조절할 수 있도록 한다.Meanwhile, although the first sequence map 360 is composed of sequence numbers 340 such as 91, 92, 93, 99, 100, etc., the first sequence map 360 is the next sequence map received. 5, the second sequence map 370 is composed of sequence numbers 340 such as 80, 81, 82, ... 88, 89 and received by the receiving server 320. In this case, the receiving server 320 determines that a delay has occurred in the network between the client 310 and the receiving server 320 and thus has not received the sequence maps 360 and 370 sequentially. That is, part of the sequence map that the receiving server 320 should have received is not received. Accordingly, the flow control packet 325 is transmitted to the transmission server 330 to slowly transmit the service request packet 140 from the client 310 to the reception server 320. The transmitting server 330 receives the flow control packet 325 from the receiving server 320 and transmits the packet accordingly to the client 310 so that the client 310 increases the transmission rate of the service request packet 140. Make it adjustable.

도 6은 본 발명의 일례에 따른 수신 서버를 도시한 도면이다.6 is a diagram illustrating a receiving server according to an example of the present invention.

도 6 에 도시된 바와 같이, 본 발명에 따른 수신 서버(400)는 네트워크 수신부(410), 제어부(420) 및 네트워크 송신부(430)를 포함한다.As shown in FIG. 6, the reception server 400 according to the present invention includes a network receiver 410, a controller 420, and a network transmitter 430.

송수신 네트워크(300)의 대표 IP 주소를 갖는 수신 서버(400) 내의 네트워크 수신부(410)는, 송수신 네트워크(300)의 대표 IP 주소를 목적지 네트워크 주소로 하는 패킷을 수신한다. 따라서, 송수신 네트워크(300)로 송신되는 패킷은 모두 네트워크 수신부(410)에서 수신된다. 그러므로, 상기 네트워크 수신부(410)는 클라이언트(310)로부터 송신되는 서비스 요청 패킷(140)을 수신한다. The network receiver 410 in the reception server 400 having the representative IP address of the transmission / reception network 300 receives a packet having the representative IP address of the transmission / reception network 300 as a destination network address. Therefore, all packets transmitted to the transmission and reception network 300 are received by the network receiver 410. Therefore, the network receiver 410 receives the service request packet 140 transmitted from the client 310.

또한, 상기 송신 서버(330)로부터 송신되는 패킷의 소스 네트워크 주소는 송수신 네트워크(300)의 대표 IP 주소, 즉 수신 서버(320)의 IP 주소를 소스 네트워크 주소로 갖는다. In addition, the source network address of the packet transmitted from the transmission server 330 has a representative IP address of the transmission and reception network 300, that is, the IP address of the reception server 320 as the source network address.

상기 네트워크 수신부(610)는 클라이언트(310)로부터 제 2 패킷(350)에 포함 되어 있는 제 1 시퀀스 맵(360)과 제 2 시퀀스 맵(370)을 수신한다. 상기 제 1 시퀀스 맵(360) 및 제 2 시퀀스 맵(370)은 클라이언트(310)가 송신 서버(330)로부터 수신한 시퀀스 넘버(340)를 이용하여 생성한 시퀀스 맵이다.The network receiver 610 receives the first sequence map 360 and the second sequence map 370 included in the second packet 350 from the client 310. The first sequence map 360 and the second sequence map 370 are sequence maps generated by the client 310 using the sequence number 340 received from the transmission server 330.

제어부(620)는 상기 제 1 시퀀스 맵(360)과 제 2 시퀀스 맵(370) 중에 특정 시퀀스 넘버(340)가 누락되어 있는 경우, 상기 송신 서버(330)와 클라이언트(310) 사이의 네트워크에 지연이 발생하는 것으로 판단한다. 또는, 상기 제 1 시퀀스 맵(360)과 제 2 시퀀스 맵(370)을 비교하여, 상기 클라이언트(310)와 수신 서버(330)간의 네트워크 지연을 계산 하거나, 또는 제 1 시퀀스 맵(360)및 제 2 시퀀스 맵(370)보다 시간적으로 가장 최근에 수신한 최종 시퀀스 맵(미도시)을 저장하고, 상기 제 1 시퀀스 맵(360) 및또는/및 제 2 시퀀스 맵(370)과 최종 시퀀스 맵(미도시)을 비교하여 상기 클라이언트(310)와 수신 서버(330)간의 네트워크 지연을 계산할 수 있다. 본 발명의 일실시예에 따르면, 상기 제 1 시퀀스 맵(360) 또는/및 제 2 시퀀스 맵(370)과 최종 시퀀스 맵(미도시)을 비교함으로써 클라이언트(310)와 수신 서버(330)간의 네트워크 지연 외에 클라이언트(310)와 상기 수신 서버(330) 간의 네트워크 전송 에러를 판단할 수 있다. 예를 들어, 수신 서버(330)가 가장 최근에 수신하여 저장하고 있는 최종 시퀀스 맵이 91, 92, 93, ... 100의 시퀀스 넘버로 구성되어 있고, 새로 수신될 시퀀스 맵이 92, 93, ... 101의 시퀀스 넘버로 구성되어 있어야 하는데, 실제로 수신한 시퀀스 맵이 93, 94, ... 101, 102의 시퀀스 넘버로 구성되어 있다면, 92, 93, ... 101의 시퀀스 넘버로 구성된 시퀀스 맵에 전송 에러가 발생한 것을 판단할 수 있다. 이때, 클라이언트(310)로부터 수신 서버 (330)로 전달되는 시퀀스 맵은 하나 또는 둘 이상일 수 있다.If a specific sequence number 340 is missing from the first sequence map 360 and the second sequence map 370, the controller 620 delays the network between the transmitting server 330 and the client 310. It is assumed that this occurs. Alternatively, the network delay between the client 310 and the receiving server 330 may be calculated by comparing the first sequence map 360 and the second sequence map 370, or the first sequence map 360 and the first sequence map 360 may be calculated. Stores the last sequence map (not shown) most recently received in time than the second sequence map 370, and stores the first sequence map 360 and / or the second sequence map 370 and the final sequence map (not shown). Network delay between the client 310 and the receiving server 330 may be calculated. According to one embodiment of the invention, the network between the client 310 and the receiving server 330 by comparing the first sequence map 360 or / and the second sequence map 370 and the final sequence map (not shown) In addition to the delay, a network transmission error between the client 310 and the receiving server 330 may be determined. For example, the last sequence map that the receiving server 330 receives and stores most recently is composed of sequence numbers of 91, 92, 93, ... 100, and the newly received sequence map is 92, 93, ... should be composed of 101 sequence numbers. If the received sequence map is actually composed of 93, 94, ... 101, 102 sequence numbers, it will consist of 92, 93, ... 101 sequence numbers. It can be determined that a transmission error has occurred in the sequence map. In this case, one or more sequence maps transmitted from the client 310 to the receiving server 330 may be provided.

네트워크 송신부(630)는 제어부(620)의 네트워크 지연에 대한 판단에 따라서, 송신 서버(330)로부터 클라이언트(310)로의 제 1 패킷(340)의 송신을 조절하도록 하는 흐름 제어 패킷(325)을 상기 송신 서버(330)로 송신하거나, 상기 누락된 특정 시퀀스 넘버(340)에 해당하는 제 1 패킷(340)을 재전송 하도록 하는 흐름 제어 패킷(325)을 상기 송신 서버(330)로 송신할 수 있다.The network transmitter 630 may recognize the flow control packet 325 for adjusting the transmission of the first packet 340 from the transmission server 330 to the client 310 according to the determination of the network delay of the controller 620. The flow control packet 325 for transmitting to the transmission server 330 or retransmitting the first packet 340 corresponding to the missing specific sequence number 340 may be transmitted to the transmission server 330.

예를 들어, 네트워크 수신부(610)가 시간적으로 먼저 수신한 제2 패킷(350)의 제 1 시퀀스 맵(360)은 91, 92, 93, ... 99, 100 등의 시퀀스 넘버(340)로 구성되며, 상기 제 2 시퀀스 맵(370)은 90, 91, 92, ... 98, 99 등의 시퀀스 넘버(340)로 구성된다. 또한, 시간적으로 나중에 수신한 제2 패킷(350)의 제 1 시퀀스 맵(360)은 92, 93, 94, ... 100, 101 등의 시퀀스 넘버(340)로 구성되며, 상기 제 2 시퀀스 맵(370)은 91, 92, 93, ... 99, 100 등의 시퀀스 넘버(340)로 구성된다.For example, the first sequence map 360 of the second packet 350 received in time by the network receiver 610 may be a sequence number 340 such as 91, 92, 93, 99, 100, or the like. The second sequence map 370 includes sequence numbers 340 such as 90, 91, 92, ... 98, 99, and the like. In addition, the first sequence map 360 of the second packet 350 received later in time is composed of sequence numbers 340 such as 92, 93, 94, ... 100, 101, and the like. 370 includes sequence numbers 340 such as 91, 92, 93, ... 99, 100, and so on.

제어부(620)는 상기 네트워크 수신부(610)가 수신한 시퀀스 맵(360, 370)을 전달받고 비교한다. 상기 n이 100, x는 1, k는 9로 설정되었을 경우, 시간적으로 먼저 수신한 제2 패킷(350)의 제 1 시퀀스 맵(360)이 91, 92, 93, ... 99, 100 등의 시퀀스 번호(340)로 구성되고, 시간적으로 나중에 수신한 제2 패킷(350)의 제 2 시퀀스 맵(370)이 동일하게 91, 92, 93, ... 99, 100 등의 시퀀스 번호(340)로 구성되는 경우, 제어부(620)는 상기 클라이언트(310)와 수신 서버(320)간의 네트워크가 지연 없이 동작하는 것으로 판단한다. 이때, 수신 서버(320)는 상기 제 1 시퀀스 맵(360)과 상기 제 2 시퀀스 맵(370)의 시퀀스 넘버(340)를 각각 체크하고, 특 정 시퀀스 넘버(340)가 누락되어 있는 경우, 네트워크 송신부(630)가 흐름 제어 패킷(325)를 송신하여, 송신 서버(330)가 클라이언트(310)로 제 1 패킷(335)의 송신 속도를 조절하여 송신하도록 하거나, 송신 서버(330)가 클라이언트(310)로 상기 누락된 시퀀스 넘버(340)에 해당하는 제 1 패킷(335)을 재전송 하도록 할 수 있다. 특히, 상기 x가 1로 설정되는 경우, 상기에서와 같이 송신 서버(330)와 클라이언트(310) 사이의 네트워크 상태의 보다 상세한 변화 추이가 가능하다.The controller 620 receives and compares the sequence maps 360 and 370 received by the network receiver 610. When n is set to 100, x is set to 1, and k is set to 9, the first sequence map 360 of the second packet 350 received in time is 91, 92, 93, 99, 100, etc. The second sequence map 370 of the second packet 350 received later in time is identical to the sequence number 340 of 91, 92, 93, 99, 100, etc. ), The controller 620 determines that the network between the client 310 and the receiving server 320 operates without delay. At this time, the receiving server 320 checks the sequence number 340 of the first sequence map 360 and the second sequence map 370, respectively, and if a specific sequence number 340 is missing, the network The transmitter 630 transmits the flow control packet 325 so that the transmission server 330 adjusts the transmission speed of the first packet 335 to the client 310, or the transmission server 330 sends the client ( 310 may retransmit the first packet 335 corresponding to the missing sequence number 340. In particular, when x is set to 1, a more detailed change of the network state between the transmitting server 330 and the client 310 is possible as described above.

도 7은 본 발명의 일례에 따른 분산 흐름 제어 시스템의 흐름도를 도시한 도면이다.7 is a flowchart illustrating a distributed flow control system according to an example of the present invention.

도 7을 참조하여, 본 발명에 따른 분산 흐름 제어 방법을 설명하면 다음과 같다.Referring to FIG. 7, the distributed flow control method according to the present invention will be described.

송신 서버(330)가 제 1 패킷(335)과 함께 시퀀스 넘버(340)를 송신한다(S710).The transmission server 330 transmits the sequence number 340 together with the first packet 335 (S710).

클라이언트(310)는 시퀀스 넘버(340)를 수신하고, 수신한 시퀀스 넘버(340)를 이용하여 제 1 시퀀스 맵(360) 및 제 2 시퀀스 맵(370)을 생성한 후, 수신 서버(320)로 생성된 시퀀스 맵(360, 370)을 송신한다(S720).The client 310 receives the sequence number 340, generates the first sequence map 360 and the second sequence map 370 using the received sequence number 340, and then sends the received sequence number to the receiving server 320. The generated sequence maps 360 and 370 are transmitted (S720).

수신 서버(320)는 클라이언트(310)로부터 제 1 시퀀스 맵(360) 및 제 2 시퀀스 맵(370)을 수신한다. 시간적으로 먼저 수신한 패킷의 제 1 시퀀스 맵(360)과 시간적으로 나중에 수신한 패킷의 제 2 시퀀스 맵(370)을 비교하거나, 또는 상기 두 시퀀스 맵(360, 370)에 누락되어 있는 시퀀스 번호(340)를 각각 체크한다. 상기 제 1 시퀀스 맵(360)과 제 2 시퀀스 맵(370)을 비교하여, 제 1 시퀀스 맵(360)과 제 2 시퀀스 맵(370)이 일치하는가의 여부에 따라서 클라이언트(310)와 수신 서버(320)간의 네트워크에 지연이 발생하였는가의 여부를 판단할 수 있다. 또한, 제 1 시퀀스 맵(360) 및 제 2 시퀀스 맵(370) 중에 특정 시퀀스 넘버(340)가 누락되었는가의 여부를 체크하여 클라이언트(310)와 송신 서버(330)간의 네트워크에 지연이 발생하였는가의 여부를 판단 할 수 있다.The receiving server 320 receives the first sequence map 360 and the second sequence map 370 from the client 310. Compare the first sequence map 360 of the packets received first temporally and the second sequence map 370 of the packets received later temporally, or the sequence numbers missing from the two sequence maps 360, 370 ( Check 340 respectively. The first sequence map 360 and the second sequence map 370 are compared, and the client 310 and the receiving server according to whether the first sequence map 360 and the second sequence map 370 match. It may be determined whether a delay has occurred in the network between 320 and 320. In addition, it is checked whether a specific sequence number 340 is missing in the first sequence map 360 and the second sequence map 370 to determine whether there is a delay in the network between the client 310 and the transmission server 330. You can judge whether or not.

수신 서버(320)는 상기와 같은, 클라이언트(310)와 수신 서버(320)간의 네트워크에 지연이 발생하였는가의 여부를 판단한 결과와, 클라이언트(310)와 송신 서버(330)간의 네트워크에 지연이 발생하였는가의 여부를 판단한 결과를 이용하여, 흐름 제어 패킷(325)을 생성하여 송신 서버(330)로 송신한다(S740). 흐름 제어 패킷(325)에는 송신 서버(330)로부터 송신되는 응답 패킷, 즉 제 1 패킷(335)의 송신 속도를 조절하거나 재전송하도록 하는 명령이 포함되어 있거나, 클라이언트(310)가 서비스 요청 패킷(140)을 천천히 송신하도록 하는 명령이 포함되어 있다.The reception server 320 determines whether there is a delay in the network between the client 310 and the reception server 320 as described above, and a delay occurs in the network between the client 310 and the transmission server 330. The flow control packet 325 is generated and transmitted to the transmission server 330 by using the result of the determination of whether or not it is performed (S740). The flow control packet 325 includes a response packet transmitted from the transmission server 330, that is, an instruction to adjust or retransmit the transmission rate of the first packet 335, or the client 310 may request a service request packet 140. ) Is sent to send slowly.

송신 서버(330)는 수신 서버(320)로부터 상기 서비스 요청 패킷(140)을 수신하고, 서비스 요청 패킷(140)에 포함되어 있는 명령에 응답하여, 클라이언트(310)로 송신되는 제 1 패킷(335)의 송신 속도를 느리거나 빠르게 조절하거나 또는 재전송 한다(S750). 또한, 송신 서버(330)는 클라이언트(310)측으로, 클라이언트(310)가 서비스 요청 패킷(140)을 수신 서버(320)측으로 천천히 송신하도록 하는 명령을 송신 할 수 있다.The transmitting server 330 receives the service request packet 140 from the receiving server 320, and in response to a command included in the service request packet 140, the first server 335 transmitted to the client 310. Slowly or quickly adjust the transmission speed of the) or retransmit (S750). In addition, the transmission server 330 may transmit a command to the client 310 side, the client 310 to slowly transmit the service request packet 140 to the receiving server 320 side.

클라이언트(310)는 송신 서버(330)로부터 송신 속도가 조절된 상기 제 1 패킷(335)을 수신하거나 또는 제 1 패킷(335)을 재수신 한다(S760). 또한, 송신 서버 (330)로부터 수신 서버(320)로의 서비스 요청 패킷(140)의 송신 속도를 조절하도록 하는 명령을 수신하여, 수신 서버(320)측으로 서비스 요청 패킷(140)을 조절하여 송신한다.The client 310 receives the first packet 335 whose transmission speed is adjusted from the transmission server 330 or re-receives the first packet 335 (S760). In addition, a command for adjusting the transmission speed of the service request packet 140 from the transmission server 330 to the reception server 320 is received, and the service request packet 140 is adjusted and transmitted to the reception server 320.

이상의 실시예에서 클라이언트로부터 수신 서버로 전달되는 시퀀스 맵은 하나이거나 2개인 경우를 설명하였으나, 본 발명의 범위 내에서 3개 이상으로 확장될 수 있다.In the above embodiment, the case where one or two sequence maps are transmitted from the client to the receiving server has been described, but may be extended to three or more within the scope of the present invention.

본 발명에 따르면, L4, L7 스위치와 같은 부하 분산 장치의 사용 없이도 서버에 집중되는 부하를 분산시켜 병목 현상을 해소하고 효율적인 데이터 통신이 가능하다.According to the present invention, it is possible to solve the bottleneck and efficient data communication by distributing the load concentrated on the server without using load balancers such as L4 and L7 switches.

또한 본 발명에 따르면, 클라이언트로부터의 데이터 수신은 수신 서버가 전담하고, 클라이언트로의 데이터 송신은 송신 서버가 전담하므로, 특정한 지점에 병목 현상이 발생하지 않는 분산 시스템이 제공된다. 특히, 종래의 L4 스위치 등이 수신되는 패킷뿐 아니라 송신하는 패킷도 모두 L4 스위치를 통하여야 하던 것에 비하여, 본 발명은 수신되는 패킷은 수신 서버로만 수신되고, 송신되는 패킷은 상기 수신 서버를 통하지 않고, 바로 송신 서버에 의하여 송신되므로, 종래기술에 따른 병목 현상의 문제가 해결된다.In addition, according to the present invention, since the receiving server is dedicated to receiving data from the client and the transmitting server is dedicated to transmitting data to the client, a distributed system is provided in which no bottleneck occurs at a specific point. In particular, the conventional L4 switch or the like, as well as the packet to be transmitted all received through the L4 switch, the present invention, the received packet is received only to the receiving server, the transmitted packet is not sent through the receiving server Since it is transmitted directly by the transmission server, the problem of the bottleneck according to the prior art is solved.

또한, 본 발명에 따르면, 클라이언트와 수신 서버간의 네트워크와 클라이언트와 송신 서버간의 네트워크가 서로 분리되어 있으므로, 클라이언트와 송신 서버간의 네트워크 지연 상태를 시퀀스 넘버들로 구성된 시퀀스 맵들을 이용하여 계산 하여, 각각 클라이언트와 수신 서버간의 네트워크와 클라이언트와 송신 서버간의 네트워크의 송수신 속도를 조절하는 것이 가능하며, 시퀀스 맵에 누락되어 있는 시퀀스 넘버를 체크하여, 수신하지 못한 패킷을 재송신 및 재수신 하는 것이 가능하므로, 각 네트워크의 상태에 따라서 효율적이고 안정적인 데이터의 전송이 가능하다.In addition, according to the present invention, since the network between the client and the receiving server and the network between the client and the sending server are separated from each other, the network delay between the client and the sending server is calculated using sequence maps composed of sequence numbers, respectively. It is possible to adjust the transmission and reception speed of the network between the network and the receiving server, and the network between the client and the sending server, and by checking the sequence number missing in the sequence map, it is possible to retransmit and receive the unreceived packets. It is possible to transmit data efficiently and stably depending on the state of.

또한, 본 발명을 이용하면 분산된 네트워크 자원을 하나의 네트워크 자원처럼 인식하여 사용하는 네트워크 가상화(network virtualization)가 가능하다.In addition, the present invention enables network virtualization that recognizes and uses distributed network resources as one network resource.

이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 이는 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다. 따라서, 본 발명 사상은 아래에 기재된 특허 청구 범위에 의해서만 파악되어야 하고, 이의 균등 또는 등가적 변형 모두는 본 발명 사상의 범주에 속한다고 할 것이다.As described above, the present invention has been described by way of limited embodiments and drawings, but the present invention is not limited to the above-described embodiments, which can be variously modified and modified by those skilled in the art to which the present invention pertains. Modifications are possible. Accordingly, the spirit of the present invention should be understood only by the claims set forth below, and all equivalent or equivalent modifications thereof will belong to the scope of the present invention.

Claims (19)

제 1 패킷 및 상기 제 1 패킷과 관련한 시퀀스 넘버를 생성하여 클라이언트로 송신하는 송신 서버; 및A transmission server for generating a first packet and a sequence number associated with the first packet and transmitting the same to a client; And 상기 시퀀스 넘버를 이용하여 상기 클라이언트에 의해 생성된 제1 시퀀스 맵을 포함하는 제 2 패킷을 상기 클라이언트로부터 수신하는 수신 서버A receiving server that receives from the client a second packet comprising a first sequence map generated by the client using the sequence number 를 포함하는 것을 특징으로 하는 분산 흐름 제어 시스템.Distributed flow control system comprising a. 제1항에 있어서, 상기 제1 시퀀스 맵은,The method of claim 1, wherein the first sequence map, 상기 시퀀스 넘버를 소정의 개수만큼 묶어서 생성되는 것을 특징으로 하는 분산 흐름 제어 시스템.Distributed sequence control system characterized in that the generated by binding the sequence number by a predetermined number. 제1항에 있어서, 상기 수신 서버는,The method of claim 1, wherein the receiving server, 상기 제1 시퀀스 맵에 포함되어 있는 시퀀스 넘버가 누락되어 있는가의 여부를 판단하여 상기 송신 서버로부터 상기 클라이언트로의 패킷 송신을 조절하도록 하는 명령을 포함한 흐름 제어 패킷을 상기 송신 서버로 송신하는 것을 특징으로 하는 분산 흐름 제어 시스템.Determining whether a sequence number included in the first sequence map is missing, and transmitting a flow control packet including a command to control packet transmission from the transmission server to the client to the transmission server. Distributed flow control system. 제3항에 있어서, 상기 수신 서버는,The method of claim 3, wherein the receiving server, 가장 최근에 수신한 최종 시퀀스 맵을 저장하고, 상기 클라이언트로부터 수 신한 상기 제1 시퀀스 맵 및 상기 최종 시퀀스 맵을 비교하여, 상기 클라이언트로부터 상기 수신 서버로의 패킷 송신을 조절하도록 하는 명령을 포함한 흐름 제어 패킷을 상기 송신 서버로 송신하는 것을 특징으로 하는 분산 흐름 제어 시스템.A flow control including instructions for storing a most recently received last sequence map and comparing the first sequence map and the last sequence map received from the client to regulate packet transmission from the client to the receiving server Distributed flow control system for transmitting a packet to the transmission server. 제1항에 있어서,The method of claim 1, 상기 클라이언트로부터 상기 송신 서버에 수신된 서비스 요청에 대응하여, 상기 송신 서버가 상기 서비스 요청 패킷에 대한 응답 패킷(reply packet)을 생성하여 상기 클라이언트에게 송신하고, 상기 응답 패킷의 목적지 네트워크 주소는 상기 서비스 요청 패킷의 상기 소스 네트워크 주소이고, 상기 응답 패킷의 소스 포트 번호는 상기 서비스 요청 패킷의 상기 목적지 포트 번호이고, 상기 응답 패킷의 목적지 포트 번호는 상기 서비스 요청 패킷의 상기 소스 포트 번호인 것을 특징으로 하는 분산 흐름 제어 시스템.In response to the service request received from the client to the sending server, the sending server generates a reply packet for the service request packet and transmits the reply packet to the client, and the destination network address of the reply packet is the service. The source network address of the request packet, the source port number of the response packet is the destination port number of the service request packet, and the destination port number of the response packet is the source port number of the service request packet Distributed flow control system. 송신 서버로부터 수신된 시퀀스 넘버를 이용하여 클라이언트에 의해 생성된 제1 시퀀스 맵을 포함하는 패킷을 상기 클라이언트로부터 수신하는 네트워크 수신부; 및 A network receiver configured to receive a packet from the client, the packet including a first sequence map generated by the client using a sequence number received from a transmission server; And 상기 제1 시퀀스 맵에 포함되어 있는 시퀀스 넘버가 누락되어 있는가의 여부를 판단하여 상기 송신 서버와 상기 클라이언트 간의 네트워크 지연을 계산하는 제어부A controller for determining whether a sequence number included in the first sequence map is missing and calculating a network delay between the transmitting server and the client 를 포함하는 것을 특징으로 하는 수신 서버.Receiving server comprising a. 제6항에 있어서,The method of claim 6, 상기 계산된 상기 송신 서버와 상기 클라이언트 간의 상기 네트워크 지연에 따라 상기 송신 서버로부터 상기 클라이언트로의 패킷 송신을 조절하도록 하는 명령을 포함한 흐름 제어 패킷을 상기 송신 서버로 송신하는 네트워크 송신부A network transmitter that transmits a flow control packet including a command to adjust packet transmission from the transmission server to the client according to the calculated network delay between the transmission server and the client. 를 더 포함하는 것을 특징으로 하는 수신 서버.Receiving server further comprises. 제6항에 있어서, 상기 제어부는,The method of claim 6, wherein the control unit, 가장 최근에 수신한 최종 시퀀스 맵을 저장하고, 상기 클라이언트로부터 수신한 상기 제1 시퀀스 맵 및 상기 최종 시퀀스 맵을 비교하여, 상기 클라이언트와 상기 수신 서버 간의 네트워크 지연을 계산하는 것을 특징으로 하는 수신 서버.And storing the most recently received last sequence map and comparing the first sequence map and the last sequence map received from the client to calculate a network delay between the client and the receiving server. 제8항에 있어서, The method of claim 8, 상기 제어부의 상기 판단 결과에 따라, 상기 클라이언트로부터 상기 수신 서버로의 패킷 송신을 조절하도록 하는 명령을 포함한 흐름 제어 패킷을 상기 송신 서버로 송신하는 네트워크 송신부A network transmitter that transmits a flow control packet including a command to control packet transmission from the client to the receiver server according to the determination result of the controller 를 더 포함하는 것을 특징으로 하는 수신 서버.Receiving server further comprises. 제6항에 있어서, 상기 제어부는,The method of claim 6, wherein the control unit, 가장 최근에 수신한 최종 시퀀스 맵을 저장하고, 상기 클라이언트로부터 수 신한 상기 제1 시퀀스 맵 및 상기 최종 시퀀스 맵을 비교하여, 상기 클라이언트와 상기 수신 서버 간의 네트워크 전송 에러를 판단하는 것을 특징으로 하는 수신 서버.A receiving server, wherein the receiving server stores the last sequence map received most recently and compares the first sequence map and the final sequence map received from the client to determine a network transmission error between the client and the receiving server. . 제6항에 있어서,The method of claim 6, 상기 제1 시퀀스 맵은 상기 송신 서버로부터 수신된 n-k번째 서비스 패킷(상기 n 및 상기 k는 1 이상의 정수)에 대한 시퀀스 넘버로부터 n번째 서비스 패킷에 대한 시퀀스 넘버까지를 포함하는 것을 특징으로 하는 수신 서버.The first sequence map includes a sequence number for the nkth service packet (n and k are integers greater than 1) received from the transmitting server to a sequence number for the nth service packet. . 제11항에 있어서, 상기 네트워크 수신부는,The method of claim 11, wherein the network receiver, 상기 클라이언트가 상기 송신 서버로부터 수신한 n-x-k번째 서비스 패킷(상기 x는 1 이상의 정수)에 대한 시퀀스 넘버로부터 n-x번째 서비스 패킷에 대한 시퀀스 넘버까지를 포함하여 생성한 제2 시퀀스 맵을 수신하는 것을 특징으로 하는 수신 서버.Receiving a second sequence map generated by the client including a sequence number for an nxk-th service packet (x is an integer greater than or equal to 1) received from the transmission server to a sequence number for the nx-th service packet. Receiving server. 제12항에 있어서, 상기 제어부는,The method of claim 12, wherein the control unit, 상기 제1 시퀀스 맵 및 상기 제2 시퀀스 맵을 비교하여 상기 클라이언트 및 상기 송신 서버 간 네트워크 지연의 변화를 판단하는 것을 특징으로 하는 수신 서버.And comparing the first sequence map and the second sequence map to determine a change in network delay between the client and the sending server. 제6항에 있어서,The method of claim 6, 상기 송신 서버 및 상기 수신 서버에 할당된 대표 네트워크 주소를 목적지 네트워크 주소로 하는 패킷은 상기 네트워크 수신부에 수신되고, 상기 클라이언트가 상기 송신 서버로부터 수신한 상기 제1 패킷의 소스 네트워크 주소는 상기 대표 네트워크 주소인 것을 특징으로 하는 수신 서버.A packet having a destination network address as a representative network address assigned to the sending server and the receiving server is received in the network receiving unit, and the source network address of the first packet received by the client from the transmitting server is the representative network address. A receiving server, characterized in that. 제6항에 있어서,The method of claim 6, 상기 네트워크 수신부는 상기 클라이언트로부터 서비스 요청 패킷을 수신하고, 상기 네트워크 송신부는 상기 서비스 요청 패킷의 소스 네트워크 주소, 소스 포트 번호 및 목적지 포트 번호를 상기 송신 서버로 송신하는 것을 특징으로 하는 수신 서버.And the network receiving unit receives a service request packet from the client, and the network transmitting unit transmits a source network address, a source port number, and a destination port number of the service request packet to the transmitting server. 제6항에 있어서,The method of claim 6, 상기 송신 서버는 상기 수신 서버와 물리적으로 분리되고 네트워크로 연결되는 것을 특징으로 하는 수신 서버.And the sending server is physically separated from the receiving server and connected to a network. 송신서버로부터 수신된 n-k번째 서비스 패킷(상기 n 및 상기 x는 1 이상의 정수)에 대한 시퀀스 넘버로부터 n번째 서비스 패킷에 대한 시퀀스 넘버를 이용하여 제1 시퀀스 맵을 생성하는 단계; 및Generating a first sequence map using a sequence number for an n-th service packet from a sequence number for an n-k th service packet received from a transmitting server (where n and x are integers of 1 or more); And 상기 제1 시퀀스 맵을 상기 송신 서버와 물리적으로 분리된 수신 서버에게 송신하는 단계Transmitting the first sequence map to a receiving server that is physically separate from the transmitting server. 를 포함하는 것을 특징으로 하는 분산 흐름 제어 방법.Distributed flow control method comprising a. 제17항에 있어서, The method of claim 17, 상기 송신서버로부터 수신된 n-x-k번째 서비스 패킷(상기 k는 1 이상의 정수)에 대한 시퀀스 넘버로부터 n-x번째 서비스 패킷에 대한 시퀀스 넘버까지를 이용하여 제2 시퀀스 맵을 생성하고, 상기 제2 시퀀스 맵을 상기 제1 시퀀스 맵과 함께 상기 수신 서버에 송신하는 단계A second sequence map is generated using a sequence number for an nxkth service packet (where k is an integer equal to or greater than 1) received from the transmitting server to a sequence number for an nxth service packet. Transmitting to the receiving server with a first sequence map 를 더 포함하는 것을 특징으로 하는 분산 흐름 제어 방법.Distributed flow control method further comprising. 제17항 또는 제18항의 방법을 실행하는 프로그램을 기록한 컴퓨터 판독가능 기록매체.A computer-readable recording medium having recorded thereon a program for executing the method of claim 17 or 18.
KR1020060134124A 2006-12-26 2006-12-26 Distributed flow control system KR100890996B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020060134124A KR100890996B1 (en) 2006-12-26 2006-12-26 Distributed flow control system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060134124A KR100890996B1 (en) 2006-12-26 2006-12-26 Distributed flow control system

Publications (2)

Publication Number Publication Date
KR20080060054A true KR20080060054A (en) 2008-07-01
KR100890996B1 KR100890996B1 (en) 2009-03-31

Family

ID=39812745

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060134124A KR100890996B1 (en) 2006-12-26 2006-12-26 Distributed flow control system

Country Status (1)

Country Link
KR (1) KR100890996B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10397896B2 (en) * 2017-04-19 2019-08-27 International Business Machines Corporation IP address geo-position detection based on landmark sequencing

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4183664B2 (en) 2003-09-25 2008-11-19 株式会社東芝 Authentication method, server computer, client computer, and program
KR100773778B1 (en) * 2006-03-10 2007-11-12 (주)게임어스 Method for controlling server with multicast transmitting and System thereof

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10397896B2 (en) * 2017-04-19 2019-08-27 International Business Machines Corporation IP address geo-position detection based on landmark sequencing
US11229001B2 (en) 2017-04-19 2022-01-18 International Business Machines Corporation IP address geo-position detection based on landmark sequencing
US11647481B2 (en) 2017-04-19 2023-05-09 International Business Machines Corporation IP address geo-position detection based on landmark sequencing

Also Published As

Publication number Publication date
KR100890996B1 (en) 2009-03-31

Similar Documents

Publication Publication Date Title
US10938941B2 (en) Proxy server failover and load clustering using hash value ranges and hash value calculations based on IP addresses
US11277341B2 (en) Resilient segment routing service hunting with TCP session stickiness
US10027781B2 (en) TCP link configuration method, apparatus, and device
US8938553B2 (en) Cooperative proxy auto-discovery and connection interception through network address translation
US7386624B2 (en) Method, system and article for dynamic real-time stream aggregation in a network
US20130111063A1 (en) Routing method in content-centric network
US11711293B2 (en) Per-provider origin pull
US20040133631A1 (en) Communication system
US10952264B2 (en) Persistent distribution of connectionless traffic supporting virtual connection migration
US11115498B2 (en) Multi-path management
US11895009B2 (en) Intelligently routing internet traffic
US7564848B2 (en) Method for the establishing of connections in a communication system
KR100890996B1 (en) Distributed flow control system
KR100922306B1 (en) Service processing system
EP3408989B1 (en) Detecting malware on spdy connections
KR100920327B1 (en) Service processing system
CN117813595A (en) Apparatus and method for remote direct memory access
KR100825963B1 (en) Distributed flow control system
KR100915424B1 (en) Service processing system
US9172774B2 (en) Technique for managing communications at a router
KR100827493B1 (en) Method and System for supplying Anycast service

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: 20120322

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee