KR101933175B1 - Mediatioin appratus mediating communication betwwen server and client - Google Patents

Mediatioin appratus mediating communication betwwen server and client Download PDF

Info

Publication number
KR101933175B1
KR101933175B1 KR1020170065857A KR20170065857A KR101933175B1 KR 101933175 B1 KR101933175 B1 KR 101933175B1 KR 1020170065857 A KR1020170065857 A KR 1020170065857A KR 20170065857 A KR20170065857 A KR 20170065857A KR 101933175 B1 KR101933175 B1 KR 101933175B1
Authority
KR
South Korea
Prior art keywords
server
client
packet
tcp stack
side tcp
Prior art date
Application number
KR1020170065857A
Other languages
Korean (ko)
Other versions
KR20180130152A (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 KR1020170065857A priority Critical patent/KR101933175B1/en
Publication of KR20180130152A publication Critical patent/KR20180130152A/en
Application granted granted Critical
Publication of KR101933175B1 publication Critical patent/KR101933175B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/562Brokering proxy services
    • H04L67/2809
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/161Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields

Landscapes

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

Abstract

본 발명의 실시예에 따른 중개 장치는 서버와 클라이언트간 통신을 중개하며, 제 1 TCP 상태 정보 및 제 1 리시브 버퍼 정보를 포함하는 서버측 TCP 스택, 제 2 TCP 상태 정보 및 제 2 리시브 버퍼 정보를 포함하는 클라이언트측 TCP 스택 및 상기 서버측 TCP 스택과 상기 클라이언트측 TCP 스택을 관리하는 운영체제를 포함하고, 상기 서버로부터 상기 클라이언트로 전송되는 제 1 패킷과 상기 클라이언트로부터 상기 서버로 전송되는 제 2 패킷을 감시하는 동안, 상기 제 1 리시브 버퍼와 상기 제 2 리시브 버퍼는 불활성화하여 상기 운영체제가 상기 서버측 TCP 스택과 상기 클라이언트측 TCP 스택을 관리하도록 제어하는 제어부를 포함할 수 있다.The mediation apparatus mediates communication between a server and a client and includes a server-side TCP stack including first TCP status information and first receive buffer information, second TCP status information, and second receive buffer information Side TCP stack, and an operating system for managing the server-side TCP stack and the client-side TCP stack, wherein the first packet transmitted from the server to the client and the second packet transmitted from the client to the server And a controller for controlling the operating system to manage the server-side TCP stack and the client-side TCP stack while the first receiving buffer and the second receiving buffer are inactivated during monitoring.

Description

서버와 클라이언트간 통신을 중개하는 중개장치{MEDIATIOIN APPRATUS MEDIATING COMMUNICATION BETWWEN SERVER AND CLIENT}[0001] MEDIATIOIN APPRATUS MEDIATING COMMUNICATION BETWEEN SERVER AND CLIENT [0002]

본 발명은 서버와 클라이언트간 통신을 중개하는 중개장치에 관한 것으로, 중개 장치에 포함된 서버측 TCP 스택 또는 클라이언트측 TCP 중 일부 또는 전부를 불활성화하여 서버와 클라이언트간 통신을 중개하는 중개 장치에 관한 것이다. The present invention relates to an intermediary apparatus for mediating communication between a server and a client, and more particularly, to an intermediary apparatus for mediating communication between a server and a client by deactivating a part or all of a server-side TCP stack or a client-side TCP included in an intermediary apparatus will be.

최근 클라우드 등 통신 네트워크를 기반으로 하는 서비스가 증가하고 있고, 이에 따라 일반적인 사업체뿐만 아니라 가정에서 생성되는 데이터량 역시 증가하고 있다. 그 결과, 통신 네트워크를 통해 전송되어야 하는 데이터량이 지속적으로 증가하고 있다.Recently, services based on communication networks such as the cloud are increasing, and thus the amount of data generated in the home as well as the general business is also increasing. As a result, the amount of data to be transmitted over the communication network is continuously increasing.

한편, 네트워크 중간에 위치하는 미들박스(middle-box)를 운영하는 통신 사업자 등은 실제로 송수신되는 데이터량을 측정하거나 네트워크로 제공되는 일부 서비스의 질을 향상시키는 등 여러가지 목적을 위해 네트워크에서 송수신되는 데이터를 감시할 필요가 있다.Meanwhile, a communication company or the like operating a middle-box located in the middle of a network may transmit and receive data transmitted and received through the network for various purposes, such as measuring the amount of data actually transmitted and received, To be monitored.

하지만, 통신 네트워크를 감시하기 위한 기존의 하드웨어 장비는 상대적으로 고가의 장비인 경우가 많다. 나아가, 하드웨어 장비의 제조사에서 제공해주는 기능 외에 새로운 감시 방법을 정의해 추가하는 것이 용이하지 않다. 그 결과, 늘어나는 통신 데이터량에 따라 효율적인 새로운 감시 방법을 도입하기 위해 고가의 장비를 추가적으로 구매해야 한다. 다시 말해, 기존의 통신 감시를 위한 하드웨어 장비는 새로운 감시 방법에 대응하는 유연성이 부족해 효율적이지 못하다는 문제점이 있다.However, conventional hardware equipment for monitoring a communication network is often relatively expensive. Furthermore, it is not easy to define and add new monitoring methods beyond those provided by hardware device manufacturers. As a result, additional expensive equipment must be purchased to introduce efficient new monitoring methods depending on the increasing amount of communication data. In other words, existing hardware devices for communication monitoring have a problem in that it is not efficient due to lack of flexibility in coping with new monitoring methods.

또한, 네트워크 중간에 위치하는 중개 장치가 늘어나는 통신 데이터량을 감시하기 위해서는 메모리 상에 이러한 상태 정보를 저장해야하며, 지속적인 연산이 수행되야 하므로, 중개 장치의 성능에 한계가 있을 수 있다는 문제가 있다.In addition, in order to monitor the amount of communication data that increases in the intermediate apparatus located in the middle of the network, such state information must be stored in the memory, and continuous computation must be performed, thus limiting the performance of the intermediary apparatus.

본 발명은 상기 문제점을 해결하기 위해 도출된 것으로, 중개 장치에 포함된 서버측 TCP 스택 또는 클라이언트측 TCP 중 일부 또는 전부를 불활성화하여 서버와 클라이언트간 통신을 중개함으로써 중개 장치의 성능을 향상시키고 그 비용을 절감하는 것에 그 목적이 있다. SUMMARY OF THE INVENTION The present invention has been made to solve the above problems, and it is an object of the present invention to improve the performance of an intermediary apparatus by mediating communication between a server and a client by deactivating a part or all of a server- The purpose is to reduce the cost.

본 발명의 일 실시예에 따르면, 서버와 클라이언트간 통신을 중개하는 중개장치는 제 1 TCP 상태 정보 및 제 1 리시브 버퍼 정보를 포함하는 서버측 TCP 스택(142), 제 2 TCP 상태 정보 및 제 2 리시브 버퍼 정보를 포함하는 클라이언트측 TCP 스택(143) 및 상기 서버측 TCP 스택(142)과 상기 클라이언트측 TCP 스택(143)을 관리하는 운영체제를 포함하고, 서버로부터 클라이언트로 전송되는 제 1 패킷과 상기 클라이언트로부터 상기 서버로 전송되는 제 2 패킷을 감시하는 동안, 제어부가 제 1 리시브 버퍼와 제 2 리시브 버퍼는 불활성화하여 운영체제가 서버측 TCP 스택과 클라이언트측 TCP 스택을 관리하도록 제어할 수 있다.According to an embodiment of the present invention, an intermediate apparatus for mediating communication between a server and a client may include a server-side TCP stack 142 including first TCP status information and first receive buffer information, Side TCP stack 143 including the receive buffer information and an operating system for managing the server-side TCP stack 142 and the client-side TCP stack 143. The first packet transmitted from the server to the client, The controller may control the operating system to manage the server-side TCP stack and the client-side TCP stack by deactivating the first receive buffer and the second receive buffer while monitoring a second packet transmitted from the client to the server.

본 발명의 다른 실시예에 따르면, 서버와 클라이언트간 통신을 중개하는 중개장치가 제 1 TCP 상태 정보 및 제 1 리시브 버퍼 정보를 포함하는 서버측 TCP 스택, 제 2 TCP 상태 정보 및 제 2 리시브 버퍼 정보를 포함하는 클라이언트측 TCP 스택 및 서버측 TCP 스택과 클라이언트측 TCP 스택을 관리하는 운영체제를 포함하고, 서버로부터 클라이언트로 전송되는 제 1 패킷과 클라이언트로부터 서버로 전송되는 제 2 패킷을 감시하는 동안, 제어부가 서버측 TCP 스택(142)을 불활성화하여 운영체제가 클라이언트측 TCP 스택을 관리하도록 제어할 수 있다.According to another embodiment of the present invention, an intermediate apparatus for mediating communication between a server and a client includes a server-side TCP stack including first TCP status information and first receive buffer information, second TCP status information, and second receive buffer information Side TCP stack, and an operating system for managing the server-side TCP stack and the client-side TCP stack. While monitoring the first packet transmitted from the server to the client and the second packet transmitted from the client to the server, Side TCP stack 142, thereby controlling the operating system to manage the client-side TCP stack.

본 발명의 다른 실시예에 따르면, 서버와 클라이언트간 통신을 중개하는 중개장치가 제 1 TCP 상태 정보 및 제 1 리시브 버퍼 정보를 포함하는 서버측 TCP 스택, 제 2 TCP 상태 정보 및 제 2 리시브 버퍼 정보를 포함하는 클라이언트측 TCP 스택 및 서버측 TCP 스택과 클라이언트측 TCP 스택을 관리하는 운영체제를 포함하고, 제어부가 서버로부터 클라이언트로 전송되는 제 1 패킷과 클라이언트로부터 서버로 전송되는 제 2 패킷을 감시하는 동안, 클라이언트측 TCP 스택을 불활성화하여 운영체제가 서버측 TCP 스택을 관리하도록 제어할 수 있다. According to another embodiment of the present invention, an intermediate apparatus for mediating communication between a server and a client includes a server-side TCP stack including first TCP status information and first receive buffer information, second TCP status information, and second receive buffer information Side TCP stack including a server-side TCP stack and an operating system for managing a client-side TCP stack, wherein the controller monitors a first packet transmitted from the server to the client and a second packet transmitted from the client to the server, , The client side TCP stack can be deactivated to control the operating system to manage the server side TCP stack.

본 발명의 다른 실시예에 따르면, 서버와 클라이언트간 통신을 중개하는 중개장치가 제 1 TCP 상태 정보 및 제 1 리시브 버퍼 정보를 포함하는 서버측 TCP 스택, 제 2 TCP 상태 정보 및 제 2 리시브 버퍼 정보를 포함하는 클라이언트측 TCP 스택 및 서버측 TCP 스택과 클라이언트측 TCP 스택을 관리하는 운영체제를 포함하고, 제어부가 서버로부터 클라이언트로 전송되는 제 1 패킷과 클라이언트로부터 서버로 전송되는 제 2 패킷을 감시하는 동안, 서버측 TCP 스택과 클라이언트측 TCP 스택을 불활성화하도록 운영체제를 제어할 수 있다.According to another embodiment of the present invention, an intermediate apparatus for mediating communication between a server and a client includes a server-side TCP stack including first TCP status information and first receive buffer information, second TCP status information, and second receive buffer information Side TCP stack including a server-side TCP stack and an operating system for managing a client-side TCP stack, wherein the controller monitors a first packet transmitted from the server to the client and a second packet transmitted from the client to the server, , The operating system can be controlled to disable the server-side TCP stack and the client-side TCP stack.

본 발명의 실시예에 따르면, 특정 응용 어플리케이션이 리시브 버퍼 정보는 참조하지 않고 오직 서버(200)와 클라이언트(300)간 통신 연결의 메타 데이터에만 관심이 있는 경우, 리시브 버퍼 정보는 불활성화하도록 하여 저장 자원 및 연산 자원을 아끼고 통신 연결 및 감시에 대한 시간을 절약할 수 있다.According to an embodiment of the present invention, if a particular application does not refer to the receive buffer information and is only interested in the metadata of the communication connection between the server 200 and the client 300, Saving resources and computing resources and saving time for communication connection and monitoring.

또한, 서버측 TCP 스택(142) 또는 클라이언트측 TCP 스택(143) 중 어느 하나만을 관리하므로 통신 연결에 다른 트래픽이 완화되고 저장 및 연산 자원을 아낄 수 있다는 장점이 있다.In addition, since only one of the server-side TCP stack 142 and the client-side TCP stack 143 is managed, other traffic is mitigated in the communication connection, and storage and computation resources can be saved.

그리고, 제 1 패킷과 제 2 패킷을 감시함에 따라 성능이 떨어지는 한계를 극복할 수 있다는 장점이 있을 수 있다.The monitoring of the first packet and the second packet may be advantageous in overcoming the limitation of performance.

도 1은 본 발명의 실시예들에 따른 중개장치(100)를 포함하는 통신 시스템에 대한 블록도이다.
도 2는 도 1의 중개 장치(100)에 포함된 제어부(160)가 동작하는 일 예를 나타내는 블록도이다.
도 3은 본 발명의 실시예에 따른 중개 장치(100)에 포함된 메모리부(140)의 구성을 도시한 개략도이다.
도 4a는 내지 도 4d는 본 발명의 실시예에 따른 중개 장치(100)의 구성에 대한 블록도이다.
1 is a block diagram of a communication system including an intermediary apparatus 100 in accordance with embodiments of the present invention.
2 is a block diagram illustrating an example of the operation of the controller 160 included in the intermediate apparatus 100 of FIG.
FIG. 3 is a schematic view showing a configuration of a memory unit 140 included in an intermediate apparatus 100 according to an embodiment of the present invention.
4A to 4D are block diagrams of a configuration of an intermediate apparatus 100 according to an embodiment of the present invention.

후술하는 본 발명에 대한 상세한 설명은, 본 발명이 실시될 수 있는 특정 실시예를 예시로서 도시하는 첨부 도면을 참조한다. 이들 실시예는 당업자가 본 발명을 실시할 수 있기에 충분하도록 상세히 설명된다. 본 발명의 다양한 실시예는 서로 다르지만 상호 배타적일 필요는 없음이 이해되어야 한다. 예를 들어, 여기에 기재되어 있는 특정 형상, 구조 및 특성은 일 실시예에 관련하여 본 발명의 정신 및 범위를 벗어나지 않으면서 다른 실시예로 구현될 수 있다. 또한, 각각의 개시된 실시예 내의 개별 구성요소의 위치 또는 배치는 본 발명의 정신 및 범위를 벗어나지 않으면서 변경될 수 있음이 이해되어야 한다. 따라서, 후술하는 상세한 설명은 한정적인 의미로서 취하려는 것이 아니며, 본 발명의 범위는, 적절하게 설명된다면, 그 청구항들이 주장하는 것과 균등한 모든 범위와 더불어 첨부된 청구항에 의해서만 한정된다. 도면에서 유사한 참조부호는 여러 측면에 걸쳐서 동일하거나 유사한 기능을 지칭한다.The following detailed description of the invention refers to the accompanying drawings, which illustrate, by way of illustration, specific embodiments in which the invention may be practiced. These embodiments are described in sufficient detail to enable those skilled in the art to practice the invention. It should be understood that the various embodiments of the present invention are different, but need not be mutually exclusive. For example, certain features, structures, and characteristics described herein may be implemented in other embodiments without departing from the spirit and scope of the invention in connection with an embodiment. It is also to be understood that the position or arrangement of the individual components within each disclosed embodiment may be varied without departing from the spirit and scope of the invention. The following detailed description is, therefore, not to be taken in a limiting sense, and the scope of the present invention is to be limited only by the appended claims, along with the full scope of equivalents to which such claims are entitled, if properly explained. In the drawings, like reference numerals refer to the same or similar functions throughout the several views.

이하, 첨부되는 도면을 참조하여 본 발명의 실시예에 따른 터치 입력 장치를 설명한다. 이하에서는 정전용량 방식의 터치 센서 패널(100) 및 압력 검출 모듈(400)을 예시하나 임의의 방식으로 터치 위치 및/또는 터치 압력을 검출할 수 있는 터치 센서 패널(100) 및 압력 검출 모듈(400)이 적용될 수 있다. Hereinafter, a touch input device according to an embodiment of the present invention will be described with reference to the accompanying drawings. Hereinafter, the capacitive touch sensor panel 100 and the pressure detection module 400 are illustrated, but the touch sensor panel 100 and the pressure detection module 400 capable of detecting a touch position and / ) Can be applied.

도 1은 본 발명의 실시예들에 따른 중개장치(100)를 포함하는 통신 시스템에 대한 블록도이다.1 is a block diagram of a communication system including an intermediary apparatus 100 in accordance with embodiments of the present invention.

도 1을 참조하면, 통신 시스템은 중개 장치(100), 서버(200), 클라이언트(300)를 포함할 수 있고, 중개 장치(100)는 패킷 송수신부(120), 메모리부(140) 및 제어부(160)를 포함할 수 있다.1, the communication system may include an intermediate apparatus 100, a server 200, and a client 300. The intermediate apparatus 100 includes a packet transmission / reception unit 120, a memory unit 140, (Not shown).

발신자는 보내고자 하는 데이터를 분할함으로써 적어도 하나 이상의 패킷(PKT)을 생성할 수 있다. 이 때, 패킷(PKT)은 통신 프로토콜에 따라 생성될 수 있다. 즉, 발신자는 통신 프로토콜에서 정해진 규칙에 따라 패킷(PKT)을 생성할 수 있다. 예를 들어, 통신 프로토콜은 전송 제어 프로토콜(Transmission Control Protocol; TCP)일 수 있고, 발신자는 전송 제어 프로토콜에서 정해진 규칙에 맞추어 패킷(PKT)을 생성할 수 있다. TCP 프로토콜 하에서는 양방향 통신이 가능하므로, 본 발명의 실시예에 따른 발신자는 서버(200) 또는 클라이언트(300)일 수 있다.The sender can generate at least one packet (PKT) by dividing the data to be sent. At this time, the packet PKT may be generated according to the communication protocol. That is, the sender can generate the packet (PKT) according to the rule set in the communication protocol. For example, the communication protocol may be a Transmission Control Protocol (TCP), and the sender may generate a packet (PKT) according to the rules defined in the transmission control protocol. Since the bidirectional communication is possible under the TCP protocol, the sender according to the embodiment of the present invention may be the server 200 or the client 300. [

생성된 패킷(PKT)은 통신 네트워크를 통해 송신될 수 있고, 패킷(PKT)을 수신한 수신자에 의해 재조립될 수 있다. 수신자 역시 발신자와 동일한 통신 프로토콜에 따라 패킷(PKT)을 재조립할 수 있고, 데이터를 복원할 수 있다. 예를 들어, 수신자는 전송 제어 프로토콜에 따라 패킷(PKT)을 재조립함으로써 데이터를 복원할 수 있다. 본 발명의 실시예에 따라 TCP 프로토콜 상에서 수신자는 서버(200) 또는 클라이언트(300)일 수 있다.The generated packet (PKT) can be transmitted over the communication network and can be reassembled by the recipient receiving the packet (PKT). The recipient can also reassemble the packet (PKT) according to the same communication protocol as the sender and recover the data. For example, the receiver can recover the data by reassembling the packet (PKT) according to the transmission control protocol. The recipient may be the server 200 or the client 300 on the TCP protocol according to an embodiment of the present invention.

중개 장치(100)에 포함되는 패킷 송수신부(120)는 패킷(PKT)을 수신할 수 있다. 여기서, 패킷 송수신부(120)를 포함하는 중개 장치(100)는 데이터를 통신 네트워크를 통해 보내는 발신자 또는 데이터를 통신 네트워크를 통해 받는 수신자가 아닌 제3자일 수 있다. 예를 들어, 중개 장치(100)는 통신 네트워크 상에서 발신자와 수신자 사이에 위치한 라우팅(routing) 기능을 가진 중간자일 수 있다.The packet transmission / reception unit 120 included in the intermediate apparatus 100 can receive the packet PKT. Here, the intermediate apparatus 100 including the packet transmission / reception unit 120 may be a sender that sends data through a communication network, or a third party that does not receive data via a communication network. For example, the intermediary apparatus 100 may be an intermediary having a routing function located between a sender and a receiver on a communication network.

중개 장치(100)에 포함된 패킷 송수신부(120)는 패킷(PKT)을 송수신할 수 있고, 패킷 송수신부(120)는 제어부(160)의 제어 신호(CTRL)에 의해 제어될 수 있다.The packet transmitting and receiving unit 120 included in the intermediate apparatus 100 can transmit and receive the packet PKT and the packet transmitting and receiving unit 120 can be controlled by the control signal CTRL of the controller 160. [

메모리부(140)는 제어부(160)의 처리 결과를 저장하거나 저장된 데이터가 제어부(160)에 전송될 수 있다. The memory unit 140 may store the processing result of the controller 160 or the stored data may be transmitted to the controller 160. [

예를 들어, 본 발명의 실시예에 따라, 메모리부(140)에는 서버측 TCP 스택(142) 및 클라이언트측 TCP 스택(143)이 저장될 수 있고, 서버측 TCP 스택(142)에는 제 1 TCP 상태 정보 및 제 1 리시브 버퍼 정보가 포함될 수 있으며, 클라이언트측 TCP 스택(143)에는 제 2 TCP 상태 정보 및 제 2 리시브 버퍼 정보가 포함될 수 있다. 또한, 메모리부(140)에는 서버측 TCP 스택(142)과 클라이언트측 TCP 스택(143)을 관리하는 운영체제(예, 미들박스 운영체제)가 저장될 수 있다.For example, according to an embodiment of the present invention, the server side TCP stack 142 and the client side TCP stack 143 may be stored in the memory unit 140, and the first TCP State information and first receive buffer information, and the client-side TCP stack 143 may include second TCP state information and second receive buffer information. The memory unit 140 may store an operating system (e.g., a middle box operating system) for managing the server-side TCP stack 142 and the client-side TCP stack 143.

제어부(160)는 운영체제에 기반하여 패킷 송수신부(120), 메모리부(140) 와의 데이터 송수신을 제어하거나, 서버(200), 클라이언트(300)와의 데이터 송수신을 중개하도록 제어한다.The control unit 160 controls data transmission / reception with the packet transmission / reception unit 120 and the memory unit 140 based on the operating system, and controls transmission and reception of data with the server 200 and the client 300.

또한, 제어부(160)는 미들박스 운영체제(mOS, 162)에 기초하여 동작할 수 있다. 여기서, 미들박스 운영체제(mOS, 162) 상에는 적어도 하나 이상의 응용 어플리케이션이 구동될 수 있다. 예를 들어, 사용자는 일 목적에 따라 미들박스 운영체제(mOS, 162) 상에 제1 응용 어플리케이션을 구동시킬 수 있고, 다른 목적에 따라 미들박스 운영체제(mOS, 162) 상에 제2 응용 어플리케이션을 구동시킬 수 있다.In addition, the control unit 160 may operate based on the middle box operating system (mOS) 162. Here, at least one application program may be run on the middle box operating system (mOS) 162. For example, a user can run a first application on a middle box operating system (mos) 162 according to a purpose, and a second application on a middle box operating system (mOS) 162 according to another purpose .

도 2는 도 1의 중개 장치(100)에 포함된 제어부(160)가 동작하는 일 예를 나타내는 블록도이다.2 is a block diagram illustrating an example of the operation of the controller 160 included in the intermediate apparatus 100 of FIG.

도 2를 참조하면, 제어부(160)는 패킷(PKT)을 미들박스 운영체제(mOS, 162) 상에서 구동되는 응용 어플리케이션(164)에 기초하여 감시할 수 있다.2, the control unit 160 may monitor the packet PKT based on the application application 164 running on the middle box operating system (mOS) 162.

제어부(160)는 미들박스 운영체제(mOS, 162)에 기초하여 동작할 수 있다. 여기서, 미들박스 운영체제(mOS, 162)상에는 적어도 하나 이상의 응용 어플리케이션(164)이 구동될 수 있다. 예를 들어, 사용자는 일 목적에 따라 미들박스 운영체제(mOS, 162)상에 제1 응용 어플리케이션을 구동시킬 수 있고, 다른 목적에 따라 미들박스 운영체제(mOS, 162) 상에 제2 응용 어플리케이션을 구동시킬 수 있다.The control unit 160 may operate based on the middle box operating system (mOS) 162. Here, at least one application 164 may be driven on the middle box operating system (mOS) 162. For example, a user can run a first application on a middle box operating system (mos) 162 according to a purpose, and a second application on a middle box operating system (mOS) 162 according to another purpose .

도 3은 본 발명의 실시예에 따른 중개 장치(100)에 포함된 메모리부(140)의 구성을 도시한 개략도이다.FIG. 3 is a schematic view showing a configuration of a memory unit 140 included in an intermediate apparatus 100 according to an embodiment of the present invention.

도 3에 도시한 바와 같이, 본 발명의 실시예에 따른 메모리부(140)는 미들박스 운영체제(141), 서버측 TCP 스택(142), 및 클라이언트측 TCP 스택(143)을 저장할 수 있다. 그리고, 서버측 TCP 스택(142)에는 제 1 TCP 상태 정보 및 제 1 리시브 버퍼 정보가 포함될 수 있으며, 클라이언트측 TCP 스택(143)에는 제 2 TCP 상태 정보 및 제 2 리시브 버퍼 정보가 포함될 수 있다. 또한, 메모리부(140)에는 서버측 TCP 스택(142)과 클라이언트측 TCP 스택(143)을 관리하는 운영체제(예, 미들박스 운영체제, 141)가 저장될 수 있다. 본 발명의 실시예에 따른 서버측 TCP 스택(142)이란, 서버(200)에 포함된 TCP 스택을 모방하여 중개 장치(100)에 포함된 별도의 스택이고, 클라이언트측 TCP 스택(143)이란, 클라이언트(300)에 포함된 TCP 스택을 모방하여 중개 장치(100)에 포함된 별도의 스택을 의미할 수 있다. 3, the memory unit 140 according to the embodiment of the present invention may store the middle box operating system 141, the server side TCP stack 142, and the client side TCP stack 143. The first TCP state information and the first receive buffer information may be included in the server-side TCP stack 142, and the second TCP state information and the second receive buffer information may be included in the client-side TCP stack 143. [ The memory unit 140 may store an operating system (e.g., a middle box operating system) 141 that manages the server-side TCP stack 142 and the client-side TCP stack 143. The server side TCP stack 142 according to the embodiment of the present invention is a separate stack included in the intermediate apparatus 100 by mimicking the TCP stack included in the server 200, May refer to a separate stack included in the intermediate apparatus 100 by mimicking the TCP stack included in the client 300.

도 4a는 내지 도 4d는 본 발명의 실시예에 따른 중개 장치(100)의 구성에 대한 블록도이다.4A to 4D are block diagrams of a configuration of an intermediate apparatus 100 according to an embodiment of the present invention.

도 4a에 도시한 바와 같이, 본 발명의 제 1 실시예에 따른 중개 장치(100)는 제 1 TCP 상태 정보 및 제 1 리시브 버퍼 정보를 포함하는 서버측 TCP 스택(142), 제 2 TCP 상태 정보 및 제 2 리시브 버퍼 정보를 포함하는 클라이언트측 TCP 스택(143) 및 서버측 TCP 스택(142)과 클라이언트측 TCP 스택(143)을 관리하는 운영체제를 포함하고, 제어부(160)는 서버(200)로부터 클라이언트(300)로 전송되는 제 1 패킷과 클라이언트(300)로부터 서버(200)로 전송되는 제 2 패킷을 감시할 수 있다. 제어부(160)가 제 1 패킷과 제 2 패킷을 감시하는 동안, 제 1 리시브 버퍼와 함께 제 2 리시브 버퍼는 불활성할 수 있다.(도 4a의 빗금부분) 이와 같이, 제 1 리시브 버퍼와 제 2 리시브 버퍼가 불활성화될 경우, 제어부(160)는 제 1 패킷과 제 2 패킷을 감시하기 위하여 운영체제(162)에 의해 오직 제 1 TCP 상태 정보 및 제 2 TCP 상태 정보만이 관리되도록 제어할 수 있다.4A, the intermediate apparatus 100 according to the first embodiment of the present invention includes a server side TCP stack 142 including first TCP status information and first receive buffer information, Side TCP stack 142 and a client-side TCP stack 143 including the first receive buffer information and the second receive buffer information, and the control unit 160 controls the server side TCP stack 142 and the client side TCP stack 143, The first packet transmitted to the client 300 and the second packet transmitted from the client 300 to the server 200 can be monitored. The second receive buffer together with the first receive buffer may be inactive while the controller 160 monitors the first packet and the second packet. (Hatched portion in FIG. 4A) Thus, the first receive buffer and the second receive buffer When the receive buffer is deactivated, the control unit 160 can control only the first TCP state information and the second TCP state information to be managed by the operating system 162 to monitor the first packet and the second packet .

본 발명의 실시예에 따른 제 1 TCP 상태 정보 및 제 2 TCP 상태 정보는 각각 서버(200)와 클라이언트(300)간 통신 연결 또는 종료 상태를 포함할 수 있다. 구체적으로, 서버(200)와 클라이언트(300)는 통신 연결을 개시할 의사가 있다는 동기화(SYN) 메시지를 상대방에게 전송하고, 이에 대한 응답으로 수락(ACK) 메시지를 받는 과정을 양쪽 모두 완료했을 때에 비로소 데이터 통신을 개시할 수 있다. 또한, 데이터 전송후 연결을 종료하기 위해서 별도의 연결 종료 과정이 필요하며, 서버(200)와 클라이언트(300)가 각각 연결 종료 의사인 종료(FIN) 메시지를 상대방에게 보내고, 이에 대한 응답으로 수락(ACK) 메시지를 받아야 연결을 종료할 수 있다. The first TCP state information and the second TCP state information according to the embodiment of the present invention may include a communication connection or termination state between the server 200 and the client 300, respectively. Specifically, when both the server 200 and the client 300 have completed a process of transmitting a synchronization (SYN) message to the other party that they intend to initiate a communication connection and receiving an acceptance (ACK) message in response thereto The data communication can be started. In addition, a separate connection termination process is required to terminate the connection after the data transmission, and the server 200 and the client 300 send a FIN message to the other party, respectively, ACK) message to terminate the connection.

본 발명의 실시예에 따른 제 1 리시브 버퍼 정보 및 제 2 리시브 버퍼 정보는 각각 패킷 재조합 버퍼(packet reassembly buffer) 또는 패킷 시퀀스 넘버(packet sequence number)를 포함할 수 있다.The first receive buffer information and the second receive buffer information according to the embodiment of the present invention may include a packet reassembly buffer or a packet sequence number, respectively.

패킷 재조합 버퍼는 미들박스 운영체제(mOS, 162)에서 기본적으로 제공되는 것일 수 있고, 응용 어플리케이션에서 생성된 것일 수 있다. 다시 말해, 응용 어플리케이션은 미들박스 운영체제(mOS, 162)에서 기본적으로 제공되는 패킷 재조합 버퍼만을 이용하도록 제작될 수도 있지만, 스스로 생성한 패킷 재조합 버퍼도 함께 이용하도록 제작될 수 있다.The packet recombination buffer may be provided basically in the middle box operating system (mOS) 162, and may be generated in an application application. In other words, the application application may be made to use only the packet recombination buffer provided in the middle box operating system (mOS, 162), but may also be made to use the self-generated packet recombination buffer.

미들박스 운영체제(mOS, 162)는 응용 어플리케이션에 필수적이거나 자주 사용되는 패킷 재조립 버퍼 정보를 기본적으로 제공할 수 있다. 예를 들어, 미들박스 운영체제(mOS, 162)에서 제공되는 패킷 재조합 버퍼는 패킷(PKT)이 신규 패킷인지 여부, 패킷(PKT)이 개시(initiation) 패킷인지 여부, 패킷(PKT)이 재송신(retransmission) 패킷인지 여부, 패킷(PKT)이 종료(termination) 패킷인지 여부, 패킷(PKT)이 범위 밖(out-of-flow) 패킷인지 여부, 누적 데이터가 목표 데이터에 도달했는지 여부, 패킷의 일부분이 소실되어 누적 데이터가 목표 데이터에 도달하지 못했는지 여부, 선행 패킷의 수신 시점으로부터 기 설정된 시간이 경과된 후에 수신된 패킷이 선행 패킷을 수신한 이후에 수신될 것으로 기대되는 후행 패킷인지 여부, 패킷 덮어쓰기(overwriting)가 필요한 상태인지 여부 중 적어도 하나 이상을 포함할 수 있다.The middle box operating system (mOS) 162 can basically provide packet reassembly buffer information that is essential or often used for application applications. For example, the packet reconfiguration buffer provided in the middle box operating system (mOS) 162 may be configured to determine whether the packet PKT is a new packet, whether the packet PKT is an initiation packet, whether the packet PKT is a retransmission Whether the packet is a termination packet, whether the packet (PKT) is an out-of-flow packet, whether cumulative data has reached the target data, whether a portion of the packet Whether the accumulated data has not reached the target data, whether the packet received after a preset time has elapsed from the reception of the preceding packet is a trailing packet expected to be received after receiving the preceding packet, And whether or not overwriting is required.

제어부(160)는 패킷(PKT)이 기존에 수신되지 않은 신규 패킷인지 여부를 판단할 수 있다. 제어부(160)는 수신된 시점까지의 누적 데이터에 기초하여 수신된 패킷(PKT)이 기존에 패킷 송수신부(120)가 수신했던 패킷(PKT)인지 여부를 판단할 수 있다.The control unit 160 can determine whether the packet PKT is a new packet that has not been received. The controller 160 may determine whether the received packet PKT is a packet PKT received by the packet transmitting / receiving unit 120 based on the accumulated data up to the received time.

제어부(160)는 패킷(PKT)이 새로운 통신 연결이 시작됨을 선언하는 개시 패킷인지 여부를 판단할 수 있다. 개시 패킷은 발신자와 수신자 사이의 상호확인절차가 종료된 후 새로운 통신 연결이 시작됨을 선언하기 위해 생성된 패킷(PKT)일 수 있다. 제어부(160)는 발신자 및 수신자가 사용하는 통신 프로토콜과 실질적으로 동일한 통신 프로토콜을 이용할 수 있고, 동일한 통신 프로토콜에 기초하여 수신된 패킷(PKT)이 개시 패킷인지 여부를 판단할 수 있다.The control unit 160 may determine whether the packet PKT is a start packet that declares a new communication connection to be started. The initiation packet may be a packet (PKT) generated to declare that a new communication connection is initiated after the mutual verification procedure between the sender and the recipient is terminated. The control unit 160 can use a communication protocol that is substantially the same as the communication protocol used by the sender and the receiver and can determine whether the received packet (PKT) is a start packet based on the same communication protocol.

제어부(160)는 패킷(PKT)이 재송신 패킷인지 여부를 판단할 수 있다. 재송신 패킷은 발신자가 일 패킷을 발송한 후 수신자로부터 재송신의 요청을 받은 때 생성될 수 있다. 또는, 재송신 패킷은 발신자가 일 패킷(PKT)을 발송한 후 소정의 시간이 경과되었음에도 수신자로부터 일 패킷(PKT)에 대한 수신확인을 받지 못한 때 생성될 수 있다. 제어부(160)는 발신자 및 수신자가 사용하는 통신 프로토콜과 실질적으로 동일한 통신 프로토콜을 이용할 수 있고, 동일한 통신 프로토콜에 기초하여 수신된 패킷(PKT)이 재송신 패킷인지 여부를 판단할 수 있다.The control unit 160 may determine whether the packet PKT is a retransmission packet. A retransmission packet may be generated when a sender sends a packet and then receives a retransmission request from the receiver. Alternatively, the retransmission packet may be generated when the originator does not receive the acknowledgment for one packet (PKT) from the recipient even though the predetermined time has elapsed after sending the one packet (PKT). The control unit 160 can use a communication protocol that is substantially the same as the communication protocol used by the sender and the receiver and can determine whether the received packet (PKT) is a retransmission packet based on the same communication protocol.

제어부(160)는 패킷(PKT)이 상태 전환 패킷인지 여부를 판단할 수 있다. 상태 전환 패킷은 통신 연결에서 발신자 상태(state)가 전환될 때 생성되는 제1 상태 전환 패킷일 수 있고, 통신 연결의 수신자가 수신함으로써 수신자 상태가 전환되는 제2 상태 전환 패킷일 수 있다. 발신자는 발신자 상태에 따라 상이한 패킷(PKT)을 생성할 수 있고, 수신자는 수신자 상태에 따라 수신한 패킷(PKT)에 대해 상이한 처리를 수행할 수 있다. 발신자 상태 및 수신자 상태는 통신 프로토콜의 정의에 따라 상이할 수 있다. 패킷 송수신부(120)는 발신자와 수신자 사이에서 패킷(PKT)을 수신할 수 있고, 제어부(160)는 패킷(PKT)에 포함된 내용에 기초하여 수신된 패킷(PKT)이 상태 전환 패킷인지 여부를 판단할 수 있다. 이를 위해, 제어부(160)는 발신자 및 수신자가 사용하는 통신 프로토콜과 실질적으로 동일한 통신 프로토콜을 이용할 수 있다.The control unit 160 can determine whether the packet PKT is a state transition packet. The state transition packet may be a first state transition packet generated when the sender state is changed in the communication connection and may be the second state transition packet in which the receiver state is switched by receiving the communication connection recipient. The sender can generate a different packet (PKT) according to the sender status, and the receiver can perform different processing for the received packet (PKT) according to the receiver status. The sender state and the receiver state may differ depending on the definition of the communication protocol. The packet transmission / reception unit 120 can receive the packet (PKT) between the sender and the receiver, and the control unit 160 determines whether the received packet (PKT) based on the contents contained in the packet (PKT) Can be determined. For this, the control unit 160 may use a communication protocol substantially the same as the communication protocol used by the sender and the receiver.

제어부(160)는 패킷(PKT)이 통신 연결이 종료됨을 선언하는 종료 패킷인지 여부를 판단할 수 있다. 종료 패킷은 발신자와 수신자 사이의 데이터 교환이 종료된 후 생성되었던 통신 연결이 종료됨을 선언하기 위해 생성된 패킷(PKT)일 수 있다. 제어부(160)는 발신자 및 수신자가 사용하는 통신 프로토콜과 실질적으로 동일한 통신 프로토콜을 이용할 수 있고, 동일한 통신 프로토콜에 기초하여 수신된 패킷(PKT)이 종료 패킷인지 여부를 판단할 수 있다.The control unit 160 can determine whether the packet PKT is an end packet that declares that the communication connection is ended. The termination packet may be a packet (PKT) generated to declare that the communication connection that was created after the data exchange between the sender and the recipient is terminated is terminated. The control unit 160 can use a communication protocol that is substantially the same as the communication protocol used by the sender and the receiver and can determine whether the received packet (PKT) is a termination packet based on the same communication protocol.

제어부(160)는 패킷(PKT)이 범위 밖 패킷인지 여부를 판단할 수 있다. 범위 밖 패킷은 통신 프로토콜에서 정의되지 않은 방식으로 생성된 패킷(PKT)일 수 있다. 이를 위해, 제어부(160)는 감시 범위로 삼고자 하는 특정 통신 프로토콜에 기초하여 패킷(PKT)을 감시할 수 있다. 예를 들어, 제어부(160)는 패킷(PKT)이 전송 제어 프로토콜에서 정의되지 않은 방식으로 생성된 패킷(PKT)인지 여부를 판단할 수 있다.The control unit 160 can determine whether the packet PKT is out of the range. The out-of-range packet may be a packet (PKT) generated in a manner not defined in the communication protocol. For this purpose, the control unit 160 can monitor the packet (PKT) based on the specific communication protocol to be set as the monitoring range. For example, the control unit 160 may determine whether the packet PKT is a packet (PKT) generated in a manner not defined in the transmission control protocol.

제어부(160)는 누적 데이터가 목표 데이터에 도달했는지 여부를 판단할 수 있다. 또한, 제어부(160)는 누적 데이터가 목표 데이터에 도달하지 못했는지 여부를 판단할 수 있다. 여기서, 누적 데이터는 패킷(PKT)이 누적됨으로써 형성될 수 있고, 목표 데이터는 통신 연결의 전송 목표일 수 있다.The control unit 160 can determine whether or not the accumulated data has reached the target data. In addition, the control unit 160 can determine whether or not the accumulated data has not reached the target data. Here, the accumulated data may be formed by accumulating the packets PKT, and the target data may be the transmission target of the communication connection.

일 통신 연결은 목표 데이터를 손실없이 수신자에게 보내는 것을 목표로 할 수 있다. 목표 데이터는 복수의 구성 패킷들로 분할될 수 있고, 구성 패킷들은 순차적으로 전송될 수 있다. 발신자와 수신자 사이에 위치하는 패킷 송수신부(120)는 중간에서 패킷(PKT)을 수신할 수 있고, 제어부(160)는 패킷(PKT)이 누적됨으로써 형성되는 누적 데이터가 목표 데이터에 도달했는지 여부를 판단할 수 있다. 나아가, 패킷 송수신부(120)가 네트워크 장애로 인해 발신자가 보낸 순서와 상이한 순서로 구성 패킷들을 수신한 경우, 제어부(160)는 최종적으로 형성된 누적 데이터가 목표 데이터에 도달할 때까지 대기할 수 있다. 이 때, 누적 데이터는 별도의 저장소에 저장될 수 있다.A day communication connection may aim to send the target data to the recipient without loss. The target data may be divided into a plurality of configuration packets, and the configuration packets may be transmitted sequentially. The packet transmission / reception unit 120 located between the sender and the receiver can receive the packet PKT in the middle, and the control unit 160 determines whether or not the accumulated data formed by accumulation of the packet PKT reaches the target data It can be judged. In addition, when the packet transmission / reception unit 120 receives the configuration packets in the order different from the order of the sender due to the network failure, the control unit 160 may wait until the accumulated data finally formed reaches the target data . At this time, the accumulated data can be stored in a separate storage.

그러나, 누적 데이터가 목표 데이터에 도달하지 못할 때 누적 데이터의 크기는 지속적으로 증가할 수 있고, 결국 저장소가 갖는 한계치를 넘어설 수 있다. 따라서, 제어부(160)는 누적 데이터가 기 설정된 크기를 초과하였음에도 누적 데이터가 목표 데이터에 도달하지 못했는지 여부를 판단할 수 있다. 그 결과, 누적 데이터의 크기가 저장소의 한계치를 초과하지 않을 수 있다.However, when the cumulative data does not reach the target data, the size of the cumulative data may continuously increase and eventually exceed the limit of the storage. Accordingly, the controller 160 can determine whether the cumulative data has not reached the target data even though the cumulative data exceeds the predetermined size. As a result, the size of the accumulated data may not exceed the limit of the storage.

제어부(160)는 선행 패킷이 수신된 시점으로부터 기 설정된 시간이 경과되었음에도 선행 패킷 이후에 수신될 것으로 기대되는 후행 패킷이 수신되지 않았는지 여부를 판단할 수 있다. 통신 프로토콜에 따라 생성된 패킷(PKT)은 2 이상이 시간적으로 선후관계를 가질 수 있다. 예를 들어, 패킷 송수신부(120)가 일 패킷(PKT)을 선행 패킷으로서 수신할 때, 제어부(160)는 선행 패킷에 대응되는 후행 패킷을 곧 수신할 것이라는 것을 예측할 수 있다. 그러나, 선행 패킷이 수신된 시점으로부터 기 설정된 시간이 경과되었음에도 후행 패킷이 수신되지 않은 경우 제어부(160)는 일반적인 절차에서 벗어난 것임을 판단할 수 있고, 선행 패킷에 포함된 내용에 따라 발신자 상태 및 수신자 상태를 추측할 수 있다.The control unit 160 can determine whether or not a trailing packet that is expected to be received after the preceding packet has not been received even though a predetermined time has elapsed since the reception of the preceding packet. The packet (PKT) generated according to the communication protocol may have two or more temporal posterior relations. For example, when the packet transmission / reception unit 120 receives one packet (PKT) as a preceding packet, the control unit 160 can predict that it will soon receive a trailing packet corresponding to the preceding packet. However, if a trailing packet is not received even after a preset time has elapsed from the reception of the preceding packet, the control unit 160 may determine that the procedure is out of the normal procedure. If the trailing packet is not received, Can be estimated.

패킷 재조합 버퍼는 미들박스 운영체제(mOS, 162) 상에서 구동되는 응용 어플리케이션에서 생성될 수 있다. 즉, 패킷 재조합 버퍼 중 일부는 미들박스 운영체제(mOS, 162)에서 기본적으로 제공되지 않은 것일 수 있다. 또한, 어플리케이션에서 생성된 패킷 재조합 버퍼는 미들박스 운영체제(mOS, 162)에서 기본적으로 제공된 패킷 재조합 버퍼를 2 이상 조합한 것일 수 있다. 생성된 패킷 재조합 버퍼 또한 기본적으로 제공되는 패킷 재조합 버퍼와 마찬가지로 미들박스 운영체제(mOS, 162) 상에서 이용될 수 있다. 예를 들어, 제어부(160)는 응용 어플리케이션에서 생성된 패킷 재조합 버퍼에 기초하여 미들박스 운영체제(mOS, 162) 상에서 패킷(PKT) 또는 누적 데이터를 판단할 수 있다.The packet recombination buffer may be generated in an application application running on the middle box operating system (mOS) 162. That is, some of the packet recombination buffers may not be provided in the middle box operating system (mOS) 162 by default. In addition, the packet recombination buffer generated by the application may be a combination of two or more packet recombination buffers basically provided in the middle box operating system (mOS) 162. The generated packet recombination buffer can also be used on the middle box operating system (mOS, 162), as well as the packet reconfiguration buffer provided by default. For example, the control unit 160 may determine the packet (PKT) or accumulated data on the middle box operating system (mOS) 162 based on the packet recombination buffer generated in the application application.

본 발명의 실시예들에 따른 중개 장치(100)는 미들박스 운영체제(mOS, 162) 상에서 패킷(PKT) 및 누적 데이터를 감시해 미들박스 운영체제(mOS, 162) 상에서 구동되는 응용 어플리케이션에 전달함으로써 용이하게 새로운 감시 방법을 추가할 수 있다. 즉, 사용자는 미들박스 운영체제(mOS, 162)에서 제공하는 개발도구에 기초하여 응용 어플리케이션을 개발함으로써, 효율적인 감시 방법을 용이하게 추가할 수 있다.The intermediary apparatus 100 according to the embodiments of the present invention monitors the packet (PKT) and cumulative data on the middle box operating system (mOS) 162 and transfers it to application applications running on the middle box operating system (mOS) 162 You can add a new monitoring method. That is, the user can easily add an efficient monitoring method by developing an application based on the development tool provided by the middle box operating system (mOS) 162.

또한, 패킷 시퀀스 넘버(packet sequence number)는 최초 패킷 시퀀스 넘버(initial sequence number), 다음으로 도착할 것으로 예상되는 시퀀스 넘버(next byte expected sequence number), 마지막으로 도착한 데이터에 해당하는 시퀀스 넘버(last byte received) 정보 등을 포함할 수 있다. 구체적으로, 최초 패킷 시퀀스 넘버(initial sequence number)는 TCP 연결이 시작된 첫 패킷의 시퀀스 넘버를 저장하여, 이를 보고 제어부(160)는 얼마나 많은 양의 데이터가 전송되었는지 판단할 수 있다. 다음으로 도착할 것으로 예상되는 시퀀스 넘버(next byte expected sequence number)는 순서대로 다음에 도착해야 하는 패킷의 시퀀스 넘버를 의미하는 것으로, 패킷 재조합 버퍼(packet reassembly buffer)의 마지막 데이터에 1을 더한 값에 해당하는 시퀀스 넘버를 의미한다. 마지막으로 도착한 데이터에 해당하는 시퀀스 넘버(last byte received) 정보는 현재 정확한 순서대로 마지막에 도착한 데이터에 해당하는 시퀀스 넘버 정보 또는 순서에 맞지 않게(out-of-order) 도착한 패킷들 중 가장 마지막에 도착한 패킷에 대한 정보를 포함할 수 있다.The packet sequence number includes an initial sequence number, a next byte expected sequence number, and a last byte received (i.e., ) Information, and the like. Specifically, the initial sequence number stores the sequence number of the first packet in which the TCP connection is started, and the report control unit 160 can determine how much data has been transmitted. The next byte expected sequence number is the sequence number of a packet that should arrive next in order. It corresponds to a value obtained by adding 1 to the last data of the packet reassembly buffer. Quot; sequence number " The last byte received information corresponding to the last arrived data is the sequence number information corresponding to the last arriving data in the correct order or the last arriving packet among the packets arriving out-of-order And may include information about the packet.

이러한 본 발명의 제 1 실시예에 따를 경우, 특정 응용 어플리케이션이 리시브 버퍼 정보는 참조하지 않고 오직 서버(200)와 클라이언트(300)간 통신 연결의 메타 데이터에만 관심이 있는 경우, 리시브 버퍼 정보는 불활성화하도록 하여 저장 자원 및 연산 자원을 아끼고 통신 연결 및 감시에 대한 시간을 절약할 수 있다.According to the first embodiment of the present invention, when a specific application does not refer to the receive buffer information but only the metadata of the communication connection between the server 200 and the client 300, Thereby saving storage resources and computational resources and saving time for communication connection and monitoring.

한편, 도 4a에서는 제 1 리시브 버퍼와 함께 제 2 리시브 버퍼를 모두 불활성화하는 경우를 예시하였으나, 제 1 리시브 버퍼 또는 제 2 리시브 버퍼 중 하나만 불활성화할 수도 있다. (미도시) In FIG. 4A, all the second receive buffers are deactivated together with the first receive buffer. However, only one of the first receive buffer and the second receive buffer may be deactivated. (Not shown)

도 4b에 도시한 바와 같이, 본 발명의 제 2 실시예에 따른 중개 장치(100)에 포함되는 제어부(160)는 서버(200)로부터 클라이언트(300)로 전송되는 제 1 패킷과 클라이언트(300)로부터 서버(200)로 전송되는 제 2 패킷을 감시하는 동안, 서버측 TCP 스택(142)을 불활성화(도 4b의 빗금부분)하여 운영체제(162)가 클라이언트측 TCP 스택(143)을 관리하도록 제어할 수 있다. 즉, 서버측 TCP 스택(142)는 불활성화되므로, 서버측 TCP 스택(142)에 포함되는 제 1 TCP 상태 정보와 제 1 리시브 버퍼 정보는 운영체제에 의해 전혀 관리되지 않도록 할 수 있다. 이 경우, 제어부(160)는 제 1 패킷을 감시하기 위하여 운영체제(162)에 의해 제 2 TCP 상태 정보 및 제 2 리시브 버퍼 정보가 관리되도록 제어하고, 제 2 패킷을 감시하기 위하여 운영체제(162)에 의해 오직 제 2 TCP 상태 정보만이 관리되도록 제어할 수 있다.The controller 160 included in the intermediate apparatus 100 according to the second embodiment of the present invention transmits the first packet transmitted from the server 200 to the client 300 and the first packet transmitted from the client 300, Side TCP stack 142 to the operating system 162 to manage the client-side TCP stack 143 while monitoring the second packet transmitted from the server-side TCP stack 142 to the server 200 (step < RTI ID = 0.0 & can do. That is, since the server-side TCP stack 142 is inactivated, the first TCP status information and the first receive buffer information included in the server-side TCP stack 142 can be completely managed by the operating system. In this case, the control unit 160 controls the second TCP state information and the second receive buffer information to be managed by the operating system 162 to monitor the first packet, and controls the operating system 162 to monitor the second packet So that only the second TCP state information is managed.

한편, 도 4c에 도시한 바와 같이, 본 발명의 제 3 실시예에 따른 중개 장치(100)에 포함되는 제어부(160)는 서버(200)로부터 클라이언트(300)로 전송되는 제 1 패킷과 클라이언트(300)로부터 서버(200)로 전송되는 제 2 패킷을 감시하는 동안, 클라이언트측 TCP 스택(143)을 불활성화하여(도4c의 빗금부분) 운영체제(162)가 서버측 TCP 스택(142)을 관리하도록 제어할 수 있다. 이 경우, 제 2 패킷을 감시하기 위하여 운영체제(162)에 의해 제 1 TCP 상태 정보 및 제 1 리시브 버퍼 정보가 관리되도록 제어하고, 제 1 패킷을 감시하기 위하여 운영체제(162)에 의해 오직 제 1 TCP 상태 정보만이 관리되도록 제어할 수 있다.4C, the controller 160 included in the intermediate apparatus 100 according to the third embodiment of the present invention transmits a first packet transmitted from the server 200 to the client 300, Side TCP stack 142 is disabled (hatched portion in FIG. 4C) so that the operating system 162 manages the server-side TCP stack 142 while monitoring the second packet transmitted from the server 200 to the server 200 . In this case, the operating system 162 controls the first TCP state information and the first receive buffer information to be managed by the operating system 162 to monitor the second packet, and only the first TCP So that only state information can be controlled.

전술한 본 발명의 제 2 실시예 및 제 3 실시예에 따를 경우, 제 1 패킷과 제 2 패킷을 감시하기 위해 서버측 TCP 스택(142) 또는 클라이언트측 TCP 스택(143) 중 어느 하나만을 관리하므로 통신 연결에 다른 트래픽이 완화되고 저장 및 연산 자원을 아낄 수 있다는 장점이 있다. According to the second and third embodiments of the present invention, only one of the server-side TCP stack 142 and the client-side TCP stack 143 is managed to monitor the first packet and the second packet It has the advantage of mitigating other traffic to the communication connection and saving storage and computational resources.

한편, 도 4d에 도시한 바와 같이, 본 발명의 제 4 실시예에 따른 중개 장치(100)에 포함되는 제어부(160)는 서버(200)로부터 클라이언트(300)로 전송되는 제 1 패킷과 클라이언트(300)로부터 서버(200)로 전송되는 제 2 패킷을 감시하는 동안, 서버측 TCP 스택(142)과 클라이언트측 TCP 스택(143)을 모두 함께 불활성화하도록(도 4d의 빗금부분) 운영체제(162)를 제어할 수도 있다. 이럴 경우, 제 1 패킷과 제 2 패킷을 감시함에 따라 성능이 떨어지는 한계를 극복할 수 있다는 장점이 있을 수 있다.4D, the controller 160 included in the intermediate apparatus 100 according to the fourth embodiment of the present invention transmits a first packet transmitted from the server 200 to the client 300, Side TCP stack 142 and the client-side TCP stack 143 together (hatched portion in FIG. 4D) while monitoring the second packet transmitted from the server 200 to the server 200, . In this case, monitoring the first packet and the second packet may be advantageous in overcoming the limitation of the performance.

이상에서 실시예들에 설명된 특징, 구조, 효과 등은 본 발명의 하나의 실시예에 포함되며, 반드시 하나의 실시예에만 한정되는 것은 아니다. 나아가, 각 실시예에서 예시된 특징, 구조, 효과 등은 실시예들이 속하는 분야의 통상의 지식을 가지는 자에 의해 다른 실시예들에 대해서도 조합 또는 변형되어 실시 가능하다. 따라서 이러한 조합과 변형에 관계된 내용들은 본 발명의 범위에 포함되는 것으로 해석되어야 할 것이다.The features, structures, effects and the like described in the embodiments are included in one embodiment of the present invention and are not necessarily limited to only one embodiment. Furthermore, the features, structures, effects and the like illustrated in the embodiments can be combined and modified by other persons skilled in the art to which the embodiments belong. Therefore, it should be understood that the present invention is not limited to these combinations and modifications.

또한, 이상에서 실시예를 중심으로 설명하였으나 이는 단지 예시일 뿐 본 발명을 한정하는 것이 아니며, 본 발명이 속하는 분야의 통상의 지식을 가진 자라면 본 실시예의 본질적인 특성을 벗어나지 않는 범위에서 이상에 예시되지 않은 여러 가지의 변형과 응용이 가능함을 알 수 있을 것이다. 예를 들어, 실시예에 구체적으로 나타난 각 구성 요소는 변형하여 실시할 수 있는 것이다. 그리고 이러한 변형과 응용에 관계된 차이점들은 첨부된 청구 범위에서 규정하는 본 발명의 범위에 포함되는 것으로 해석되어야 할 것이다.While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is clearly understood that the same is by way of illustration and example only and is not to be taken by way of illustration, It can be seen that various modifications and applications are possible. For example, each component specifically shown in the embodiments can be modified and implemented. It is to be understood that all changes and modifications that come within the meaning and range of equivalency of the claims are therefore intended to be embraced therein.

Claims (8)

서버와 클라이언트간 통신을 중개하는 중개장치에 있어서,
제 1 TCP 상태 정보 및 제 1 리시브 버퍼 정보를 포함하는 서버측 TCP 스택;
제 2 TCP 상태 정보 및 제 2 리시브 버퍼 정보를 포함하는 클라이언트측 TCP 스택; 및
상기 서버측 TCP 스택과 상기 클라이언트측 TCP 스택을 관리하는 운영체제;를 포함하고,
상기 서버로부터 상기 클라이언트로 전송되는 제 1 패킷과 상기 클라이언트로부터 상기 서버로 전송되는 제 2 패킷을 감시하는 동안, 상기 제 1 리시브 버퍼와 상기 제 2 리시브 버퍼는 불활성화하여 상기 운영체제가 상기 서버측 TCP 스택과 상기 클라이언트측 TCP 스택을 관리하도록 제어하는 제어부;를 포함하는 중개 장치.
1. An intermediate apparatus for mediating communication between a server and a client,
A server-side TCP stack including first TCP state information and first receive buffer information;
A client-side TCP stack including second TCP state information and second receive buffer information; And
And an operating system for managing the server-side TCP stack and the client-side TCP stack,
While monitoring the first packet transmitted from the server to the client and the second packet transmitted from the client to the server, the first receiving buffer and the second receiving buffer are deactivated, And a controller for controlling the stack and the client-side TCP stack.
제 1항에 있어서,
상기 제 1 TCP 상태 정보 및 상기 제 2 TCP 상태 정보는 각각 상기 서버와 상기 클라이언트간 통신 연결 또는 종료 상태를 포함하는 중개 장치.
The method according to claim 1,
Wherein the first TCP state information and the second TCP state information each include a communication connection or termination state between the server and the client.
제 1 항에 있어서,
상기 제 1 리시브 버퍼 정보 및 상기 제 2 리시브 버퍼 정보는 각각 패킷 재조합 버퍼(packet reassembly buffer) 또는 패킷 시퀀스 넘버(packet sequence number)를 포함하는 중개 장치.
The method according to claim 1,
Wherein the first receive buffer information and the second receive buffer information each include a packet reassembly buffer or a packet sequence number.
서버와 클라이언트간 통신을 중개하는 중개장치에 있어서,
제 1 TCP 상태 정보 및 제 1 리시브 버퍼 정보를 포함하는 서버측 TCP 스택;
제 2 TCP 상태 정보 및 제 2 리시브 버퍼 정보를 포함하는 클라이언트측 TCP 스택; 및
상기 서버측 TCP 스택과 상기 클라이언트측 TCP 스택을 관리하는 운영체제;를 포함하고,
상기 서버로부터 상기 클라이언트로 전송되는 제 1 패킷과 상기 클라이언트로부터 상기 서버로 전송되는 제 2 패킷을 감시하는 동안, 상기 서버측 TCP 스택을 불활성화하여 상기 운영체제가 상기 클라이언트측 TCP 스택을 관리하도록 제어하는 제어부;를 포함하는 중개 장치.
1. An intermediate apparatus for mediating communication between a server and a client,
A server-side TCP stack including first TCP state information and first receive buffer information;
A client-side TCP stack including second TCP state information and second receive buffer information; And
And an operating system for managing the server-side TCP stack and the client-side TCP stack,
Side TCP stack, the server-side TCP stack is deactivated while the first packet transmitted from the server to the client and the second packet transmitted from the client to the server are monitored to control the operating system to manage the client-side TCP stack And a control unit.
제 4항에 있어서,
상기 제어부는,
상기 제 1 패킷을 감시하기 위하여 상기 운영체제에 의해 상기 제 2 TCP 상태 정보 및 제 2 리시브 버퍼 정보가 관리되도록 제어하고,
상기 제 2 패킷을 감시하기 위하여 상기 운영체제에 의해 상기 제 2 TCP 상태 정보가 관리되도록 제어하는 중개 장치.
5. The method of claim 4,
Wherein,
Controlling the second TCP state information and the second receive buffer information to be managed by the operating system to monitor the first packet,
And controls the second TCP state information to be managed by the operating system to monitor the second packet.
서버와 클라이언트간 통신을 중개하는 중개장치에 있어서,
제 1 TCP 상태 정보 및 제 1 리시브 버퍼 정보를 포함하는 서버측 TCP 스택;
제 2 TCP 상태 정보 및 제 2 리시브 버퍼 정보를 포함하는 클라이언트측 TCP 스택; 및
상기 서버측 TCP 스택과 상기 클라이언트측 TCP 스택을 관리하는 운영체제;를 포함하고,
상기 서버로부터 상기 클라이언트로 전송되는 제 1 패킷과 상기 클라이언트로부터 상기 서버로 전송되는 제 2 패킷을 감시하는 동안, 상기 클라이언트측 TCP 스택을 불활성화하여 상기 운영체제가 상기 서버측 TCP 스택을 관리하도록 제어하는 제어부;를 포함하는 중개 장치.
1. An intermediate apparatus for mediating communication between a server and a client,
A server-side TCP stack including first TCP state information and first receive buffer information;
A client-side TCP stack including second TCP state information and second receive buffer information; And
And an operating system for managing the server-side TCP stack and the client-side TCP stack,
Side TCP stack to be managed by the operating system while monitoring the first packet transmitted from the server to the client and the second packet transmitted from the client to the server And a control unit.
제 6항에 있어서,
상기 제어부는,
상기 제 2 패킷을 감시하기 위하여 상기 운영체제에 의해 상기 제 1 TCP 상태 정보 및 제 1 리시브 버퍼 정보가 관리되도록 제어하고,
상기 제 1 패킷을 감시하기 위하여 상기 운영체제에 의해 상기 제 1 TCP 상태 정보가 관리되도록 제어하는 중개 장치.
The method according to claim 6,
Wherein,
Controlling the first TCP state information and the first receive buffer information to be managed by the operating system to monitor the second packet,
And controls the first TCP state information to be managed by the operating system to monitor the first packet.
서버와 클라이언트간 통신을 중개하는 중개장치에 있어서,
제 1 TCP 상태 정보 및 제 1 리시브 버퍼 정보를 포함하는 서버측 TCP 스택;
제 2 TCP 상태 정보 및 제 2 리시브 버퍼 정보를 포함하는 클라이언트측 TCP 스택; 및
상기 서버측 TCP 스택과 상기 클라이언트측 TCP 스택을 관리하는 운영체제;를 포함하고,
상기 서버로부터 상기 클라이언트로 전송되는 제 1 패킷과 상기 클라이언트로부터 상기 서버로 전송되는 제 2 패킷을 감시하는 동안, 상기 서버측 TCP 스택과 상기 클라이언트측 TCP 스택을 불활성화하도록 상기 운영체제를 제어하는 제어부;를 포함하는 중개 장치.
1. An intermediate apparatus for mediating communication between a server and a client,
A server-side TCP stack including first TCP state information and first receive buffer information;
A client-side TCP stack including second TCP state information and second receive buffer information; And
And an operating system for managing the server-side TCP stack and the client-side TCP stack,
A controller for controlling the operating system to deactivate the server-side TCP stack and the client-side TCP stack while monitoring a first packet transmitted from the server to the client and a second packet transmitted from the client to the server; Lt; / RTI >
KR1020170065857A 2017-05-29 2017-05-29 Mediatioin appratus mediating communication betwwen server and client KR101933175B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170065857A KR101933175B1 (en) 2017-05-29 2017-05-29 Mediatioin appratus mediating communication betwwen server and client

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170065857A KR101933175B1 (en) 2017-05-29 2017-05-29 Mediatioin appratus mediating communication betwwen server and client

Publications (2)

Publication Number Publication Date
KR20180130152A KR20180130152A (en) 2018-12-07
KR101933175B1 true KR101933175B1 (en) 2019-04-05

Family

ID=64669548

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170065857A KR101933175B1 (en) 2017-05-29 2017-05-29 Mediatioin appratus mediating communication betwwen server and client

Country Status (1)

Country Link
KR (1) KR101933175B1 (en)

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
Design Challenges for High Performance, Scalable NFV Interconnects(Guyue Liu 외 2명, 출처 ACM DL, 2017.08.21.)
ETSI GS NFV-REL 003 V1.1.1(2016년4월)
NetAlytics: Cloud-Scale Application Performance Monitoring with SDN and NFV(Guyue Liu 외 3명, The George Washington University, 2016.12.16.)
OpenANFV: Accelerating Network Function Virtualization with a Consolidated Framework in OpenStack(Xiongzi Ge 외 5명, 출처 ACM DL, 2014.08.17.)

Also Published As

Publication number Publication date
KR20180130152A (en) 2018-12-07

Similar Documents

Publication Publication Date Title
EP3255847B1 (en) Transmission control protocol data packet transmission method, transmission device and system
KR101746629B1 (en) Communication apparatus and communication method
KR100785293B1 (en) System and Method for TCP Congestion Control Using Multiple TCP ACKs
JP5544430B2 (en) Communication apparatus and communication system
US20060203730A1 (en) Method and system for reducing end station latency in response to network congestion
JP5867188B2 (en) Information processing apparatus, congestion control method, and congestion control program
CN102148662B (en) Adjusting method and device for data transmitting speed
KR20040015009A (en) Method for reliable and efficient support of congestion control in nack-based protocols
CN102891883A (en) Wireless transmission control protocol processing method and equipment
CN104683259A (en) TCP congestion control method and device
JP4786354B2 (en) iSCSI communication control method and storage system using the same
WO2005020524A1 (en) Session relay device and relay method
CN111147573A (en) Data transmission method and device
JP6963411B2 (en) Communication equipment, communication methods, and programs
US20120106344A1 (en) Data communication acknowledgement in a network
EP2245537B1 (en) Network message management device and methods thereof
CN112866338A (en) Server state detection method and device
KR101933175B1 (en) Mediatioin appratus mediating communication betwwen server and client
JP4506430B2 (en) Application monitor device
JP6200870B2 (en) Data transfer control device, method and program
JP2017034627A (en) System and method for communication control
JP2009284433A (en) System and method for detecting and controlling p2p terminal
KR102131427B1 (en) Method and apparatus for performing a congestion control in stream control transmission protocol
EP3619854B1 (en) Elimination of latency in a communication channel
KR101820117B1 (en) Communication monitoring device, method of monitoring communication and storage media of middle-box operating system implementing the same

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right