KR102563247B1 - Apparatus for Realtime Monitoring Performance Degradation of Network System - Google Patents

Apparatus for Realtime Monitoring Performance Degradation of Network System Download PDF

Info

Publication number
KR102563247B1
KR102563247B1 KR1020210029940A KR20210029940A KR102563247B1 KR 102563247 B1 KR102563247 B1 KR 102563247B1 KR 1020210029940 A KR1020210029940 A KR 1020210029940A KR 20210029940 A KR20210029940 A KR 20210029940A KR 102563247 B1 KR102563247 B1 KR 102563247B1
Authority
KR
South Korea
Prior art keywords
client
server
session
information
application
Prior art date
Application number
KR1020210029940A
Other languages
Korean (ko)
Other versions
KR20220125965A (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 KR1020210029940A priority Critical patent/KR102563247B1/en
Publication of KR20220125965A publication Critical patent/KR20220125965A/en
Application granted granted Critical
Publication of KR102563247B1 publication Critical patent/KR102563247B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/12Network monitoring probes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/02Standardisation; Integration
    • H04L41/024Standardisation; Integration using relational databases for representation of network management data, e.g. managing via structured query language [SQL]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0695Management of faults, events, alarms or notifications the faulty arrangement being the maintenance, administration or management system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/02Capturing of monitoring data
    • H04L43/026Capturing of monitoring data using flow identification
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/04Processing captured monitoring data, e.g. for logfile generation
    • H04L43/045Processing captured monitoring data, e.g. for logfile generation for graphical visualisation of monitoring data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/16Threshold monitoring
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/20Support for services
    • H04L49/208Port mirroring
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/146Markers for unambiguous identification of a particular session, e.g. session cookie or URL-encoding
    • 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/163In-band adaptation of TCP data exchange; In-band control procedures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic

Abstract

이 발명은 다수의 클라이언트장치들과 다수의 서버장치들이 연결된 네트워크 시스템에서, 서버단에서 송수신되는 패킷을 미러링하여 제공받아 네트워크 장애와 외부 공격을 실시간으로 검출하는 네트워크 성능 저하 모니터링 장치에 관한 것이다.
이 네트워크 성능 저하 모니터링 장치는, 미러링된 패킷으로부터 세션에 관한 정보와 상기 세션에 연결된 서버에 관한 정보와 상기 세션에 연결된 클라이언트에 관한 정보와 상기 미러링된 패킷의 종류를 추출하는 패킷 분석 모듈과, 상기 패킷 분석 모듈에서 분석된 정보를 기반으로 세션 구조체와 서버 구조체와 클라이언트 구조체를 관리하는 구조체 관리 모듈과; 상기 세션 구조체와 상기 서버 구조체와 상기 클라이언트 구조체에 저장된 정보로부터 상기 네트워크 시스템에서 이루어지는 모든 플로우 대비 대기 플로우의 비율로서 성능 저하 리스크를 산출하며 관리하는 리스크 관리 모듈과, 상기 네트워크 시스템에서 이루어지는 모든 세션에 대해 각 세션별로 형성된 복수의 세션 구조체들과, 상기 모든 세션을 형성하는 모든 서버에 대해 각 서버별로 형성된 복수의 서버 구조체들과, 상기 모든 세션을 형성하는 모든 클라이언트에 대해 각 클라이언트별로 형성된 복수의 클라이언트 구조체들을 포함한다.
The present invention relates to a network performance degradation monitoring device that detects network failures and external attacks in real time by mirroring and receiving packets transmitted and received from a server in a network system in which a plurality of client devices and a plurality of server devices are connected.
The network performance degradation monitoring apparatus includes a packet analysis module for extracting information about a session, information about a server connected to the session, information about a client connected to the session, and a type of the mirrored packet from mirrored packets; a structure management module for managing a session structure, a server structure, and a client structure based on the information analyzed by the packet analysis module; A risk management module for calculating and managing performance degradation risk as a ratio of standby flow to all flows in the network system from information stored in the session structure, the server structure, and the client structure, and for all sessions in the network system A plurality of session structures formed for each session, a plurality of server structures formed for each server for all servers forming all the sessions, and a plurality of client structures formed for each client for all clients forming all the sessions. include them

Description

네트워크 시스템 성능 저하 실시간 모니터링 장치{Apparatus for Realtime Monitoring Performance Degradation of Network System}Network system performance degradation real-time monitoring device {Apparatus for Realtime Monitoring Performance Degradation of Network System}

이 발명은 네트워크 시스템의 성능 저하를 모니터링하는 장치에 관한 것으로서, 보다 상세하게는 네트워크 TCP 프로토콜의 패킷을 빠르게 분석하여 네트워크 장애와 외부 공격을 실시간으로 검출하기 위한 장치에 관한 것이다.The present invention relates to a device for monitoring performance degradation of a network system, and more particularly, to a device for detecting network failures and external attacks in real time by rapidly analyzing network TCP protocol packets.

TCP(Transmission Control Protocol)는 IP 프로토콜 위에서 연결형 서비스를 지원하는 전송계층 프로토콜로, 인터넷 환경에서 기본으로 사용한다. TCP 프로토콜 종류로는 FTP, SSH, Telent, SMPT, DNS, DHCP, HTTP, HTTPS, POP3, SNMP, SSL 등이 있다. TCP (Transmission Control Protocol) is a transport layer protocol that supports connection-type services on top of the IP protocol and is basically used in the Internet environment. Types of TCP protocols include FTP, SSH, Telent, SMPT, DNS, DHCP, HTTP, HTTPS, POP3, SNMP, and SSL.

TCP 프로토콜은 신뢰할 수 없는 공용망인 인터넷에서 데이터의 유실없는 통신을 보장하기 위해서, 데이터 패킷이 정상적으로 송수신할 준비가 되었는지를 확인하는 절차를 진행하는데, 이를 3-way handshaking이라고 하며, 다음과 같이 이루어진다.In order to guarantee communication without loss of data in the Internet, which is an unreliable public network, the TCP protocol proceeds with a procedure to check whether data packets are normally ready to be transmitted and received.

먼저, 클라이언트 시스템은 TCP 연결을 맺기 위해 통신하고자 하는 서버 시스템에게 통신을 하고 싶다는 메시지를 보낸다(SYN 플래그가 세팅된 패킷 전송).First, the client system sends a message that it wants to communicate to the server system it wants to communicate with in order to establish a TCP connection (transmitting a packet with the SYN flag set).

서버 시스템은 SYN 신호를 받으면 SYN-RECEIVED 상태로 변경되고, 그에 대한에 대한 응답 및 나도 통신 준비가 되었다는 메시지로서, SYN-ACK 플래그를 세팅한 메시지를 클라이언트 시스템에게 전송하여 응답한다.When the server system receives the SYN signal, it changes to the SYN-RECEIVED state, and responds by sending a message with the SYN-ACK flag set to the client system as a response and a message that I am ready for communication.

클라이언트 시스템은 이 SYN-ACK 신호를 받으면 ESTABLISHED 상태로 변경하고 서버 시스템에 ACK 신호를 전송하여 응답한다. 클라이언트의 ACK 신호를 받은 서버 시스템이 ESTABLISHED 상태로 변경하면 서버 시스템과 클라이언트 시스템 간의 연결이 성공적으로 완료된다.When the client system receives this SYN-ACK signal, it changes to the ESTABLISHED state and responds by sending an ACK signal to the server system. When the server system receives the client's ACK signal and changes to the ESTABLISHED state, the connection between the server system and the client system is successfully completed.

이후, 기존 통신과 새로운 통신을 구분해야 하므로 헤더에 플래그(flag)값을 넣어서 트랜잭션(transaction)이 이루어지고, 애플리케이션 서비스마다 세션(session)이 생성된다.After that, since existing communication and new communication need to be distinguished, a transaction is performed by putting a flag value in a header, and a session is created for each application service.

클라이언트 시스템과 서버 시스템 간 트랜잭션은, 클라이언트 시스템과 서버 시스템 사이의 세션이 생성된 상태에서, 클라이언트 시스템이 트랜잭션 요청 메시지를 전송하고, 서버 시스템이 해당 트랜잭션 요청 메시지에 응답하는 절차로 이루어진다. 각 트랜잭션은 하나의 패킷으로 이루어질 수도 있고, 복수의 패킷들로 이루어질 수도 있다. 즉, 서버 시스템과 클라이언트 시스템이 인터넷을 통해 데이터를 보내기 위한 경로배정(라우팅)을 효율적으로 하기 위해서는, 전송 프로토콜에 기반하여 한 번에 보낼 수 있는 데이터의 양이 제한된다. 따라서 하나의 트랜잭션에 데이터의 양이 많은 경우, 여러 개의 조각들로 나누어 전송하는데, 이러한 조각들을 패킷이라고 한다.A transaction between a client system and a server system consists of a procedure in which the client system transmits a transaction request message and the server system responds to the transaction request message in a state in which a session is created between the client system and the server system. Each transaction may consist of one packet or a plurality of packets. That is, in order to efficiently route allocation (routing) for sending data between the server system and the client system through the Internet, the amount of data that can be sent at one time is limited based on the transmission protocol. Therefore, when there is a large amount of data in one transaction, it is divided into several pieces and transmitted, and these pieces are called packets.

전통적인 네트워크 시스템들은 사용자가 사용하는 클라이언트 장치와 웹 사이트와 연관된 다양한 서버 장치들을 포함한다. 일반적으로 클라이언트 장치는 웹 사이트를 이용하기 위해, 특정 IP 주소를 갖는 서버에 접속 요청을 하고, 대기 시간을 거쳐 접속한다. 이때, 다수의 사용자에 의해 다수의 클라이언트 장치가 특정 시점에 몰려서 서버에 접속을 시도하거나 트랜잭션 요청하는 경우, 병목현상에 의해 서버와 연관된 네트워크 시스템의 성능이 저하될 수 있다. 이러한 성능 저하의 원인을 신속하게 파악하고, 이에 대한 대응이 최대한 빠르게 이루어져야 한다.Traditional network systems include client devices used by users and various server devices associated with web sites. In general, a client device requests access to a server having a specific IP address in order to use a web site, and connects after waiting time. In this case, when a plurality of client devices are flocked by a plurality of users at a specific point in time to attempt to access the server or request a transaction, performance of a network system associated with the server may be degraded due to a bottleneck. The cause of such performance degradation must be quickly identified and a response to it must be made as quickly as possible.

이러한 네트워크 시스템의 성능 저하의 원인을 파악하기 위한 선행기술로서, 대한민국 공개특허 제2020-0033090호 "네트워크 보안 모니터링 방법, 네트워크 보안 모니터링 장치 및 시스템"이 있다.As a prior art for identifying the cause of performance degradation of such a network system, there is Korean Patent Publication No. 2020-0033090 entitled "Network Security Monitoring Method, Network Security Monitoring Device and System".

상술한 선행기술은, 제1엔티티(서버)와, 제2엔티티(클라이언트단말), 및 제1엔티티 및 제2엔티티 간에 구비되는 스위칭 장치 및 상기 스위칭 장치와 연결되는 네트워크 보안 모니터링 장치를 포함한다. 이 보안 기술은, 네트워크 보안 모니터링 장치가 스위칭 장치로부터 미러링하는 것을 기반으로, 제1엔티티와 제2엔티티 간에 송수신되는 적어도 하나의 패킷들에 대한, 미러링된 적어도 하나의 패킷들을 획득하는 단계; 및 상기 네트워크 보안 모니터링 장치가, 미러링된 적어도 하나의 패킷에 포함된 정보들 중 적어도 일부를 기반으로 제1엔티티와 제2엔티티와 연관된 네트워크에 대한 보안 문제 발생 여부를 결정하는 단계를 포함하여 이루어진다.The prior art described above includes a first entity (server), a second entity (client terminal), a switching device provided between the first entity and the second entity, and a network security monitoring device connected to the switching device. The security technique includes: obtaining mirrored at least one packet for at least one packet transmitted/received between a first entity and a second entity, based on mirroring by the network security monitoring device from the switching device; and determining, by the network security monitoring apparatus, whether a security problem occurs in a network associated with the first entity and the second entity based on at least a portion of information included in at least one mirrored packet.

이 선행기술에서, 패킷 정보를 기반으로 보안 문제 발생 여부를 결정하는 단계는, 미리 결정한 제1소스 IP 로부터 제1목적지 IP까지의 구간의 접속의 수가 미리 결정한 임계값 이상이라는 결정, 미리 결정한 제1URL에 대한 요청이 미리 결정한 임계값 이상이라는 결정, 미리 결정한 제1서버의 BPS(Bit Per Second)가 미리 결정한 임계값 이상이라는 결정, 미리 결정한 제2소스 IP로부터의 PPS(Packet per Second)가 미리 결정한 임계값 이상이라는 결정, 미리 결정한 제3소스 IP로부터의 동기신호(SYN) 패킷의 수가 미리 결정한 임계값 이상이라는 결정, 및 미리 결정한 제4소스 IP가 미리 결정한 임계값 이상의 개수의 서버 IP로 동시에 접속을 시도한다는 결정 중 적어도 하나를 기반으로 보안 문제 발생 여부를 결정한다.In this prior art, the step of determining whether a security problem occurs based on packet information includes determining that the number of connections in a section from a first source IP to a first destination IP is equal to or greater than a predetermined threshold, and determining whether a predetermined first URL Determination that the request for is greater than or equal to a predetermined threshold value, determination that the predetermined BPS (Bit Per Second) of the first server is greater than or equal to the predetermined threshold value, and determination that the predetermined packet per second (PPS) from the second source IP is determined in advance. Determination that the number of synchronization signal (SYN) packets from the predetermined third source IP is greater than or equal to the predetermined threshold, determination that the number of synchronization signal (SYN) packets from the predetermined third source IP is greater than or equal to the predetermined threshold, and simultaneous access by the predetermined fourth source IP to the number of server IPs equal to or greater than the predetermined threshold determines whether a security problem occurs based on at least one of the determinations to attempt

이러한 선행기술은, 상술한 바와 같이 접속의 수, 요청의 수, BPS, PPS, 동기신호 패킷의 수, 서버 IP로의 동시 접속의 수 등을 각각의 임계값과 비교하여 보안 문제 발생 여부를 결정한다. As described above, this prior art compares the number of connections, the number of requests, the number of BPS, PPS, synchronization signal packets, and the number of concurrent connections to the server IP with each threshold to determine whether a security problem occurs. .

선행기술의 발명의 상세한 설명 [0085] 단락 내지 [0187] 단락에, 서버와 클라이언트단말 간 송수신되는 패킷을 분석하는 패킷 분석 모듈의 기능 및 동작이 기재되어 있다. 이러한 선행기술의 패킷 분석 모듈은 패킷들을 분석하여 다양한 성능 지표들을 산출하여 보안 문제 발생 여부를 결정하기 때문에 실시간 처리가 어려운 문제점이 있다.In the detailed description of the invention of the prior art, in paragraphs [0085] to [0187], functions and operations of a packet analysis module for analyzing packets transmitted and received between a server and a client terminal are described. Since the packet analysis module of the prior art analyzes packets and calculates various performance indicators to determine whether a security problem occurs, real-time processing is difficult.

대한민국 공개특허 제2020-0033090호Republic of Korea Patent Publication No. 2020-0033090 대한민국 공개특허 제2019-0088342호Republic of Korea Patent Publication No. 2019-0088342 대한민국 공개특허 제2019-0088343호Republic of Korea Patent Publication No. 2019-0088343

이 발명의 목적은 네트워크 시스템에 송수신되는 네트워크 패킷 정보를 고속으로 분류, 저장 및 검색함으로써, 네트워크 품질, 장애 및 보안 진단을 빠르게 하고 네트워크 성능 저하를 실시간으로 모니터링하는 장치를 제공하는데 그 목적이 있다.An object of the present invention is to provide an apparatus for rapidly diagnosing network quality, failure and security and monitoring network performance degradation in real time by classifying, storing and searching network packet information transmitted and received in a network system at high speed.

상술한 목적을 달성하기 위한 이 발명에 따른 네트워크 성능 저하 실시간 모니터링 장치는, Network performance degradation real-time monitoring device according to the present invention for achieving the above object,

다수의 클라이언트장치들과 다수의 서버장치들이 연결된 네트워크 시스템의 서버단에서 송수신되는 패킷을 미러링하여 제공받는 네트워크 성능 저하 모니터링 장치에 있어서,A network performance degradation monitoring device provided by mirroring packets transmitted and received by a server end of a network system in which a plurality of client devices and a plurality of server devices are connected,

상기 미러링된 패킷으로부터 세션에 관한 정보, 상기 세션에 연결된 서버에 관한 정보, 상기 세션에 연결된 클라이언트에 관한 정보, 상기 세션과 연결된 클라이언트에 관한 정보, 상기 클라이언트에서 활성화된 애플리케이션에 관한 정보, 상기 클라이언트가 위치한 지역에 관한 정보 및 상기 미러링된 패킷의 종류를 추출하는 패킷 분석 모듈;
상기 패킷 분석 모듈에서 분석된 정보를 기반으로 세션 구조체, 서버 구조체. 클라이언트 구조체, 애플리케이션 구조체 및 지역 구조체들을 관리하는 구조체 관리 모듈;
상기 세션 구조체, 서버 구조체, 클라이언트 구조체, 애플리케이션 구조체 및 지역 구조체들에 저장된 정보를 이용하여 상기 네트워크 시스템에서 이루어지는 모든 플로우 대비 대기 플로우의 비율로서 성능 저하 리스크를 산출하며 관리하는 리스크 관리 모듈을 포함하고,
상기 구조체 관리 모듈은, 상기 세션 구조체들을 관리하는 세션 트리 테이블, 상기 서버 구조체들을 관리하는 서버 트리 테이블, 상기 클라이언트 구조체들을 관리하는 클라이언트 트리 테이블, 상기 애플리케이션 구조체들을 관리하는 애플리케이션 해쉬 테이블, 및 상기 지역 구조체들을 관리하는 지역 해쉬 테이블을 포함하며,
From the mirrored packet, information about a session, information about a server connected to the session, information about a client connected to the session, information about a client connected to the session, information about an application activated in the client, a packet analysis module for extracting information about a location and a type of the mirrored packet;
A session structure and a server structure based on the information analyzed by the packet analysis module. a structure management module that manages client structures, application structures and local structures;
A risk management module for calculating and managing a performance degradation risk as a ratio of standby flows to all flows in the network system using information stored in the session structure, server structure, client structure, application structure, and local structures,
The structure management module includes a session tree table for managing the session structures, a server tree table for managing the server structures, a client tree table for managing the client structures, an application hash table for managing the application structures, and the local structure. It includes a local hash table that manages

상기 각 세션 구조체는 해당 세션에 관한 정보와, 해당 세션에 연결된 서버에 대응하는 서버 구조체에 연결하기 위한 서버 구조체 포인터와, 해당 세션에 연결된 클라이언트에 대응하는 클라이언트 구조체에 연결하기 위한 클라이언트 구조체 포인터를 포함하고;Each of the session structures includes information about the corresponding session, a server structure pointer for connecting to a server structure corresponding to a server connected to the corresponding session, and a client structure pointer for connecting to a client structure corresponding to a client connected to the corresponding session. do;

상기 각 서버 구조체는 해당 서버에 관한 정보와, 상기 서버가 연결된 모든 세션들에 대응하는 세션 구조체 포인터들을 관리하는 세션 구조체 관리 테이블과, 상기 서버와 연결된 모든 클라이언트들에 대응하는 클라이언트 IP 주소들을 관리하는 클라이언트 정보 관리 테이블을 포함하고;Each of the server structures includes a session structure management table managing information about the server, session structure pointers corresponding to all sessions connected to the server, and client IP addresses corresponding to all clients connected to the server. includes a client information management table;

상기 각 클라이언트 구조체는 해당 클라이언트에 관한 정보와, 상기 클라이언트가 연결된 모든 세션들에 대응하는 세션 구조체 포인터들을 관리하는 세션 구조체 관리 테이블과, 상기 클라이언트와 연결된 모든 서버들에 대응하는 서버 IP 주소들을 관리하는 서버 정보 관리 테이블을 포함하는 것을 특징으로 한다.Each of the client structures includes a session structure management table managing information about the corresponding client, session structure pointers corresponding to all sessions to which the client is connected, and server IP addresses corresponding to all servers connected to the client. It is characterized in that it includes a server information management table.

이 발명에 따르면 네트워크 시스템에 송수신되는 네트워크 패킷 정보를 세션별, 서버별, 클라이언트별, 애플리케이션별, 지역별로 분류하여 구조체로 저장 및 링크로 연결하여 관리함으로써, 네트워크 시스템의 성능 저하 여부 및 원인을 신속하게 검출할 수 있는 잇점이 있다.According to the present invention, network packet information transmitted and received to and from a network system is classified by session, server, client, application, and region, stored in a structure, and linked and managed to quickly determine whether or not the performance of the network system is degraded and the cause thereof. It has the advantage of being able to detect it accurately.

도 1은 이 발명이 적용되는 네트워크 환경을 도시한 도면이다.
도 2는 이 발명에 따른 네트워크 성능 저하 모니터링 장치의 구성도이다.
도 3은 네트워크 시스템에서, 서버와 클라이언트간 세션 연결 예시도이다.
도 4는 도 3의 네트워크 시스템 예시도에서 생성되는 구조체 구성 및 연결도이다.
도 5는 이 발명에 따른 세션 구조체의 구성도이다.
도 6은 이 발명에 따른 서버 구조체의 구성도이다.
도 7은 이 발명에 따른 클라이언트 구조체의 구성도이다.
도 8은 이 발명에 따른 애플리케이션 구조체의 구성도이다.
도 9는 이 발명에 따른 지역 구조체의 구성도이다.
도 10은 이 발명의 구조체 생성 및 업데이트 과정을 도시한 동작 흐름도이다.
도 11은 이 발명의 리스크 관리 과정을 도시한 동작 흐름도이다.
1 is a diagram showing a network environment to which this invention is applied.
2 is a block diagram of a network performance degradation monitoring device according to the present invention.
3 is an exemplary view of a session connection between a server and a client in a network system.
4 is a structure configuration and connection diagram generated in the exemplary network system of FIG. 3 .
5 is a block diagram of a session structure according to the present invention.
6 is a block diagram of a server structure according to the present invention.
7 is a block diagram of a client structure according to the present invention.
8 is a block diagram of an application structure according to the present invention.
9 is a block diagram of a local structure according to the present invention.
10 is an operational flow diagram illustrating a structure creation and update process of the present invention.
11 is an operational flow diagram illustrating the risk management process of the present invention.

본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는바, 특정 실시예들을 도면에 예시하고 상세한 설명에 구체적으로 설명하고자 한다. 그러나 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.Since the present invention can make various changes and have various embodiments, specific embodiments will be illustrated in the drawings and described in detail in the detailed description. However, this is not intended to limit the present invention to specific embodiments, and should be understood to include all modifications, equivalents, or substitutes included in the spirit and technical scope of the present invention.

각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용한다. 제 1, 제 2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.In describing each figure, like reference numbers are used for like elements. Terms such as first and second may be used to describe various components, but the components should not be limited by the terms. These terms are only used for the purpose of distinguishing one component from another.

예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제 1 구성요소는 제 2 구성요소로 명명될 수 있고, 유사하게 제 2 구성요소도 제 1 구성요소로 명명될 수 있다. "및/또는" 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.For example, a first element may be termed a second element, and similarly, a second element may be termed a first element, without departing from the scope of the present invention. The term "and/or" includes any combination of a plurality of related listed items or any of a plurality of related listed items.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미가 있다.Unless defined otherwise, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art to which the present invention belongs.

일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미가 있는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않아야 한다.Terms such as those defined in commonly used dictionaries should be interpreted as having meanings consistent with the meanings in the context of the related art, and unless explicitly defined in this application, they should not be interpreted in ideal or excessively formal meanings. Should not be.

앞서 설명한 바와 같이 서버와 클라이언트 장치간 통신은 3-way handshaking, 세션 연결, 트랜잭셕 요청 및 응답 과정으로 이루어진다. 다수의 사용자에 의해 다수의 클라이언트 장치가 특정 시점에 몰려서 서버에 접속을 시도하거나 트랜잭션 요청을 하는 경우, 특정 서버에 3-way handshaking의 SYN 신호와 트랜잭션 요청이 누적되어, 해당 SYN 신호에 대한 응답 대기 시간이나 트랜잭션 요청에 대한 응답 대기 시간이 길어진다. 다시 말해, 3-way handshaking과 트랜잭션을 포함한 전체 플로우(flow) 중 SYN 대기 플로우와 트랜잭션 대기 플로우가 증가하게 된다. 이 발명에서는 전체 플로우 중 SYN 대기 플로우와 트랜잭션 대기 플로우의 비율을 기반으로 성능 저하 리스크를 관리하는 방법을 제안한다.As described above, communication between the server and the client device consists of 3-way handshaking, session connection, and transaction request and response processes. When a number of client devices by a number of users flock to the server at a specific point in time and attempt to access the server or request a transaction, the SYN signal of 3-way handshaking and the transaction request are accumulated in the specific server, waiting for a response to the corresponding SYN signal. Response latency to time or transaction requests increases. In other words, among all flows including 3-way handshaking and transactions, the SYN waiting flow and the transaction waiting flow increase. This invention proposes a method for managing performance degradation risk based on the ratio of SYN waiting flows and transaction waiting flows among total flows.

도 1은 본 발명이 적용되는 네트워크 환경을 도시한 도면이다.1 is a diagram showing a network environment to which the present invention is applied.

이 발명이 적용되는 네트워크 환경은 복수의 클라이언트장치(111,112,113), 네트워크(120),라우터(130), 패킷 미러링 기능을 구비한 스위치(140), 복수의 서버장치(151,152,153) 및 이 발명에 따른 네트워크 성능 저하 모니터링 장치(160)가 포함된다.A network environment to which this invention is applied includes a plurality of client devices 111, 112, and 113, a network 120, a router 130, a switch 140 having a packet mirroring function, a plurality of server devices 151, 152, and 153, and a network according to the present invention. A degradation monitoring device 160 is included.

클라이언트장치(111,112,113)는 네트워크(120)를 통해 특정 웹 사이트 또는 웹 애플리케이션에 접속한다. 이때, 접속은 상기 웹 사이트 및/또는 웹 애플리케이션과 연관된 서버장치(151,152,153)에서 수행된다. 클라이언트장치(111,112,113)는 웹 브라우저를 통해 특정 웹 페이지에 접속하여 원하는 페이지 또는 애플리케이션의 실행을 요청한다. 상기 요청은, html 문서와 같은 정적인 콘텐츠뿐만 아니라 동영상, 오디오와 같은 멀티미디어 콘텐츠 및/또는 기타 다른 애플리케이션의 실행을 포함할 수 있다.The client devices 111 , 112 , and 113 access a specific web site or web application via the network 120 . At this time, access is performed in the server devices 151, 152, and 153 associated with the web site and/or web application. The client devices 111, 112, and 113 access a specific web page through a web browser and request execution of a desired page or application. The request may include not only static content such as an html document, but also multimedia content such as video and audio, and/or execution of other applications.

클라이언트장치(111,112,113)는 사용자에 의해 동작하고, 통신 기능(인터넷 접속 및 웹 브라우저 실행 기능 포함) 및 데이터 처리 기능을 포함하는 임의의 장치를 포함할 수 있다. 클라이언트장치(111,112,113)는, 이동국(MS), 이용자 장비(UE: User Equipment), 사용자 터미널(UT: User Terminal), 무선 터미널, 액세스 터미널(AT), 고정 및 이동 가입자 유닛(Subscriber Unit), 가입자 스테이션(SS: Subscriber Station), 셀룰러 전화, 무선기기(wireless device), 무선 통신 디바이스, 무선송수신유닛(WTRU: Wireless Transmit/Receive Unit), 이동 노드, 모바일, 모바일국, 개인 휴대 정보 단말(personal digital assistant), 스마트폰, 랩톱, 넷북, 개인용 컴퓨터, 무선 센서, 소비자 전자기기(CE), 사물인터넷(IoT) 디바이스 또는 다른 용어들로서 지칭될 수 있다. 클라이언트장치(111,112,113)의 다양한 변형 실시예들은 무선 통신 기능을 가지는 휴대용 컴퓨터, 무선 통신 기능을 가지는 디지털 카메라와 같은 촬영장치, 무선 통신 기능을 가지는 게이밍 장치, 무선 통신 기능을 가지는 음악저장 및 재생 가전제품, 무선 인터넷 접속 및 브라우징이 가능한 인터넷 가전제품뿐만 아니라 이러한 기능들의 조합들을 통합하고 있는 휴대형 유닛 또는 단말기들을 포함할 수 있으나, 이에 한정되는 것은 아니다.The client devices 111, 112, and 113 may include any device operated by a user and having a communication function (including Internet connection and web browser execution function) and data processing function. The client devices 111, 112, and 113 include a mobile station (MS), a user equipment (UE), a user terminal (UT), a wireless terminal, an access terminal (AT), a fixed and mobile subscriber unit, and a subscriber. Subscriber Station (SS), cellular phone, wireless device, wireless communication device, wireless transmit/receive unit (WTRU), mobile node, mobile, mobile station, personal digital assistant assistant), smartphone, laptop, netbook, personal computer, wireless sensor, consumer electronics (CE), Internet of Things (IoT) device, or other terms. Various modified embodiments of the client devices 111, 112, and 113 include a portable computer having a wireless communication function, a photographing device such as a digital camera having a wireless communication function, a gaming device having a wireless communication function, and a music storage and playback home appliance having a wireless communication function. , Internet appliances capable of wireless Internet access and browsing, as well as portable units or terminals incorporating combinations of these functions, but are not limited thereto.

각 클라이언트장치(111,112,113)는 사용자 입력을 수신하기 위한 마우스 및 키보드와 같은 입력장치들 및 사용자가 네트워킹된 장치들과 상호 작용하기 위한 제어 사용자 인터페이스를 제공하기 위한 디스플레이를 포함하는 사용자 통신 인터페이스를 포함할 수 있다. 사용자 인터페이스는 사용자에게 정보를 제공하기 위해 그래픽 사용자 인터페이스(GUI: Graphical User Interface)를 포함할 수 있다.Each client device 111, 112, 113 may include a user communication interface including input devices such as a mouse and keyboard for receiving user input and a display for providing a control user interface for the user to interact with the networked devices. can The user interface may include a graphical user interface (GUI) to provide information to the user.

네트워크(120)는 유선 및/또는 무선 네트워크를 포함한다. 네트워크(120)는 인터넷을 포함할 수 있다. 네트워크(120)는 다양하게 접속된 클라이언트장치(111,112,113)와 서버장치(151,152,153) 간에 데이터를 송신하고 수신하기 위해 물리층(매체)을 제공하는 시리얼 버스를 포함할 수 있다. 여기서 시리얼 버스는 1394 시리얼 버스를 포함할 수 있다. 이는 시간-다중 송신(Time-multiplexed) 오디오/비디오(A/V) 스트림 및 표준 아이피(IP: Internet Protocol) 통신(예컨대, IETF REC 2734)을 양쪽 모두 지원할 수 있고, 다만 반드시 이에 한정되는 것은 아니다. 네트워크(120)는 비-1394 네트워크(예컨대, 이더넷 등)도 포함할 수 있다. 또한, 네트워크(120)는 홈 네트워크를 포함할 수도 있다. 뿐만 아니라 네트워크(120)는 사물인터넷(IoT) 연결을 지원하는 임의의 네트워크일 수도 있다. 클라이언트장치(111,112,113) 각각은 네트워크(120)에서 하나 이상의 서버장치들(151,152,153)과 통신할 수 있다.Network 120 includes wired and/or wireless networks. Network 120 may include the Internet. The network 120 may include a serial bus that provides a physical layer (media) for transmitting and receiving data between variously connected client devices 111, 112, and 113 and server devices 151, 152, and 153. Here, the serial bus may include a 1394 serial bus. This may support both time-multiplexed audio/video (A/V) streams and standard IP (Internet Protocol) communication (eg, IETF REC 2734), but is not necessarily limited thereto. . Network 120 may also include non-1394 networks (eg, Ethernet, etc.). Network 120 may also include a home network. In addition, the network 120 may be any network supporting Internet of Things (IoT) connection. Each of the client devices 111 , 112 , and 113 may communicate with one or more server devices 151 , 152 , and 153 on the network 120 .

서버장치(151,152,153)는 사용자에게 서비스들을 제공하기 위해 네트워크 자원을 이용하여 사용자들의 요청에 응답한다. 이는 정보(데이터)의 리턴(return)을 포함한다. 또한, 기능의 성능(예컨대, 기계적인 기능) 및 상태의 리턴, 데이터 스트림 및 상태의 리턴, 데이터 스트림의 수용 및 상태의 리턴, 또는 각종 행위에 대한 상태의 저장을 포함한다. 서버장치(151,152,153)는 그 자신의 하드웨어의 제어를 구현하기 위해, 주문형, 내장형, 제어 프로그램을 포함할 수 있다.Server devices 151, 152, and 153 respond to users' requests by using network resources to provide services to users. This includes the return of information (data). It also includes the performance of a function (e.g., a mechanical function) and return of state, the return of data stream and state, the acceptance of data stream and return of state, or the storage of state for various actions. The server devices 151, 152, and 153 may include custom, built-in, and control programs to implement control of their own hardware.

서버장치(151,152,153)는 특정 웹 사이트 및/또는 웹 애플리케이션과 연관될 수 있고, 각 웹 사이트 및/또는 웹 애플리케이션에서 수행되는 작업과 관련된 연산 및 관리를 수행한다. 서버장치(151,152,153)는 클라이언트장치들(111,112,113) 및 다른 서버들과 상호 작용할 수 있다. 예시적인 서비스들은 MPEG 소싱/싱킹(sourcing/sinking), 및 디스플레이 서비스를 포함할 수 있다.The server devices 151 , 152 , and 153 may be associated with a specific web site and/or web application, and perform calculations and management related to work performed in each web site and/or web application. Server devices 151, 152, 153 may interact with client devices 111, 112, 113 and other servers. Exemplary services may include MPEG sourcing/sinking, and display services.

서버장치(151,152,153)는 네트워크(120)를 통해 장치의 명령 및 제어를 위한 인터페이스를 제공하는 인터페이스 데이터(예컨대, HTML, XML, 자바, 자바스크립트, GIF, JPEG, MPEG, 그래픽 파열 또는 의도한 목적에 사용되는 임의의 다른 포맷)와 같은 정보를 처리할 수 있다. 서버장치(151,152,153)는, 그 장치의 명령 및 제어를 제공하는 하나 이상의 하이퍼마크업언어(HTML: Hypertext Markup Language)와 같은 정보를 처리할 수 있다. 서버장치(151,152,153)는 브라우저 기법을 이용하여 HTML 페이지를 나타내는 인터넷 표준을 사용한다.The server devices 151 , 152 , and 153 interface data (e.g., HTML, XML, Java, JavaScript, GIF, JPEG, MPEG, graphics bursting or for the intended purpose) providing an interface for command and control of the device over the network 120. information in any other format used). The server devices 151, 152, and 153 may process information such as one or more hypertext markup languages (HTML) that provide command and control of the device. The server devices 151, 152, and 153 use Internet standards to represent HTML pages using a browser technique.

이 발명에서 서버장치(151,152,153)는 웹 서버, 앱 서버 및 데이터베이스 서버를 포함할 수 있다. 다만, 반드시 3개의 서버장치의 조합으로만 구성되어야 하는 것은 아니다. 웹 서버만 존재하고, 앱 서버 및 데이터베이스 서버는 존재하지 않는 것도 유효하고, 또는 앱 서버 하나만 구성되는 것도 가능하고, 기타 다양한 형태 및 계층의 서버 조합도 가능하다.In this invention, the server devices 151, 152, and 153 may include a web server, an app server, and a database server. However, it does not necessarily have to consist only of a combination of three server devices. It is effective that only the web server exists and the app server and database server do not exist, or it is possible to configure only one app server, and other combinations of servers in various forms and layers are possible.

웹 서버는 웹 클라이언트(Web Client)에게 요청된 컨텐츠를 제공하는 서버이다. 웹 서버는 정적인 HTML이나 JPEG, GIF 같은 이미지를 HTTP 프로토콜을 통해 웹 브라우저에 제공할 수 있다. 경우에 따라, 웹 서버도 내부 애플리케이션을 동작시킬 수 있는 컨테이너를 내장할 수 있다.A web server is a server that provides requested contents to web clients. A web server can provide static HTML or images such as JPEG or GIF to a web browser through the HTTP protocol. In some cases, a web server can also embed a container that can run internal applications.

앱 서버는 WAS(Web Application Server) 서버라고도 불릴 수 있고, 이는 클라이언트/서버 환경에서 트랜잭션 처리 및 관리와 애플리케이션 실행 환경을 제공하는 미들웨어 소프트웨어 서버를 나타낸다. 전형적으로, 서버단은 웹 서버, 애플리케이션 서버, 데이터베이스 서버의 3계층 웹 컴퓨팅 환경으로 구축될 수 있는데, 이때, 앱 서버는 클라이언트/서버 환경의 애플리케이션 서버와 같은 역할을 한다. 앱 서버는 애플리케이션 실행 환경과 데이터베이스 접속 기능을 제공하고, 트랜잭션을 관리하며, 업무를 처리하는 비즈니스 로직을 수행하고, 다른 기종 시스템 간의 애플리케이션 연동 등을 수행한다.The app server may also be called a web application server (WAS) server, and represents a middleware software server that provides transaction processing and management and an application execution environment in a client/server environment. Typically, the server side can be built as a three-tier web computing environment of a web server, application server, and database server. At this time, the app server plays the same role as an application server in a client/server environment. The app server provides an application execution environment and database access function, manages transactions, performs business logic for processing tasks, and performs application linkage between different types of systems.

데이터베이스 서버는 웹 서버 및/또는 앱 서버가 취급하는 각종 데이터가 저장되어 있는 저장소이다. 데이터베이스 서버는 웹 서버 및/또는 앱 서버가 처리하는 작업, 웹 사이트, 웹 애플리케이션의 성격에 따라 그와 연관된 엄청난 양의 데이터가 저장될 수 있다. 이는 개인정보, 기관정보, 각종 콘텐츠(예컨대, 멀티미디어 콘텐츠)와 연관된 데이터 등을 포함할 수 있다.The database server is a repository where various data handled by the web server and/or the app server are stored. The database server may store a huge amount of data related to the work processed by the web server and/or the app server, depending on the nature of the web site or web application. This may include personal information, organization information, and data related to various contents (eg, multimedia contents).

라우터(130) 또는 라우팅 기능을 갖는 공유기는 네트워크(120)를 통해 클라이언트장치(111,112,113)로부터 전송된 패킷의 위치 및 수신처를 추출하여, 그 위치에 대한 최적의 경로를 지정하며, 그 경로를 따라 데이터 패킷을 스위치(140)로 전행시킨다. 라우터(130)는 수신측 IP 주소를 식별하여 해당 데이터를 스위치(140)로 포워딩한다.The router 130 or a router having a routing function extracts the location and destination of packets transmitted from the client devices 111, 112, and 113 through the network 120, designates an optimal path to the location, and data along the path. Forward the packet to switch 140. The router 130 identifies the destination IP address and forwards the corresponding data to the switch 140 .

스위치(140)는 각 서버장치(151,152,153)의 고유한 MAC 주소를 기억하고 있다가, 이 주소를 통해 어떤 패킷이 어디로 전송되어야 하는지 판단하여 라우터(130)로부터 제공받은 패킷을 해당 서버(151,152,153)로 전송한다. 스위치(140)는 OSI 2계층, OSI 3계층, OSI 4계층 및/또는 다른 계층(예컨대, OSI 7계층)의 역할을 하는 스위치를 포함한다. 예컨대, 경로를 설정하는 기능을 수행할 수 있다. 또한, 로드밸런싱이나 포트포워딩, QoS 등의 기능을 수행할 수도 있다. 스위치는 네트워크 스위치, 스위칭 허브, 포트 스위칭 허브 등으로 불릴 수 있다.The switch 140 stores the unique MAC address of each server device 151, 152, and 153, and determines which packet should be transmitted to where through this address, and transmits the packet provided from the router 130 to the corresponding server 151, 152, and 153. send. The switch 140 includes switches serving as OSI layer 2, OSI layer 3, OSI layer 4, and/or other layers (eg, OSI layer 7). For example, a function of setting a route may be performed. In addition, functions such as load balancing, port forwarding, and QoS may be performed. A switch may be called a network switch, a switching hub, a port switching hub, and the like.

스위치(140)는 패킷 미러링 기능을 포함하여, 클라이언트장치(111,112,113)에서 서버장치(151,152,153)로 수신되는 모든 패킷 및 서버장치(151,152,153)에서 클라이언트장치(111,112,113)로 송신되는 모든 패킷을 복제 또는 캡처하고, 복제한 패킷을 이 발명에 따른 네트워크 성능 저하 모니터링 장치(160)로 제공한다.The switch 140 includes a packet mirroring function, and duplicates or captures all packets received from the client devices 111, 112, and 113 to the server devices 151, 152, and 153 and all packets transmitted from the server devices 151, 152, and 153 to the client devices 111, 112, and 113, and , and provides the duplicated packet to the network performance degradation monitoring device 160 according to the present invention.

이 발명에서 세션이라 함은 3-way handshaking하는 과정을 포함하는 것으로 명명한다. 즉, 3-way handshaking이 종료되어야 해당 서버와 클라이언트 간에 세션이 연결된 것이나, 3-way handshaking 시도가 일시적으로 증가하면 네트워크 시스템의 성능 저하가 발생할 수 있으므로, 이 발명의 명세서에서는 클라이언트장치가 서버와 접속하기 위해 SYN 신호를 전송하며 접속 시도할 때부터 세션이라고 명명한다.In this invention, a session is named as including a process of 3-way handshaking. That is, the session is connected between the server and the client only when the 3-way handshaking is terminated, but if the 3-way handshaking attempt temporarily increases, the performance of the network system may be deteriorated. To do so, a SYN signal is transmitted and a session is named from the time of connection attempt.

도 2는 이 발명에 따른 네트워크 성능 저하 모니터링 장치의 구성도이다.2 is a block diagram of a network performance degradation monitoring device according to the present invention.

이 발명의 네트워크 성능 저하 모니터링 장치는, 패킷 분석 모듈(200)과, 구조체 관리 모듈(210)과, 리스크 관리 모듈(220)과, 디스플레이 관리 모듈(230)을 포함한다.The network performance degradation monitoring device of this invention includes a packet analysis module 200, a structure management module 210, a risk management module 220, and a display management module 230.

패킷 분석 모듈(200)은 미러링된 패킷으로부터, 세션에 관한 정보와, 서버에 관한 정보와, 클라이언트에 관한 정보와, 애플리케이션에 관한 정보와, 지역에 관한 정보와, 해당 미러링된 패킷 종류(해당 패킷이 SYN 신호인지, SYN-ACK 신호인지, 트랜잭션 요청 신호인지, 트랜잭션 응답 신호인지)를 추출한다. 패킷 분석 모듈(200)이 미러링된 패킷으로부터 상술한 정보들을 분석하는 방법은 선행특허 대한민국 공개특허 제2020-0033090호를 참조할 수 있다.The packet analysis module 200 determines, from the mirrored packets, information about the session, information about the server, information about the client, information about the application, information about the area, and the corresponding mirrored packet type (corresponding packet Whether this is a SYN signal, a SYN-ACK signal, a transaction request signal, or a transaction response signal) is extracted. For a method in which the packet analysis module 200 analyzes the above-described information from mirrored packets, reference may be made to Korean Patent Publication No. 2020-0033090.

구조체 관리 모듈(210)은 패킷 분석 모듈(200)에서 분석된 패킷 정보를 기반으로 후술하는 각 구조체들을 관리한다.The structure management module 210 manages each structure described below based on the packet information analyzed by the packet analysis module 200 .

리스크 관리 모듈(220)은 네트워크 시스템에서 이루어지는 모든 플로우(flow) 대비 대기 플로우(SYN 대기, 트랜잭션 응답 대기)의 비율로서 성능 저하 리스크를 계산한다. 이 리스크 관리 모듈(220)은 서버별, 클라이언트별, 애플리케이션별, 지역별 및 전체 네트워크 시스템의 성능 저하 리스크를 계산한다.The risk management module 220 calculates the performance degradation risk as a ratio of standby flows (SYN waiting, transaction response waiting) to all flows made in the network system. The risk management module 220 calculates performance degradation risks for each server, each client, each application, each region, and the entire network system.

디스플레이 관리 모듈(230)은 리스크 관리 모듈(220)에서 산출된 서버별, 클라이언트별, 애플리케이션별, 지역 및 전체 네트워크 시스템의 성능 저하 리스크를 화면에 표시하도록 한다.The display management module 230 displays the performance degradation risk of each server, each client, each application, region, and the entire network system calculated by the risk management module 220 on the screen.

이 발명의 네트워크 성능 저하 모니터링 장치는, 각 정보들을 구조체로 관리한다.The network performance degradation monitoring apparatus of this invention manages each piece of information in a structure.

이 발명의 네트워크 성능 저하 모니터링 장치는, 네트워크 시스템에서 이루어지는 모든 세션에 대해 각 세션별로 형성된 복수의 세션 구조체들(241,242,243)과, 상기 모든 세션을 형성하는 모든 서버에 대해 각 서버별로 형성된 복수의 서버 구조체들(251,252,253)과, 상기 모든 세션을 형성하는 모든 클라이언트에 대해 각 클라이언트별로 형성된 복수의 클라이언트 구조체들(261,262,263)과, 상기 모든 클라이언트가 사용하는 모든 애플리케이션에 대해 각 애플리케이션별로 형성된 복수의 애플리케이션 구조체들(271,272,273)과, 상기 모든 클라이언트가 속한 지역에 대해 각 지역별로 형성된 복수의 지역 구조체들(281,282,283)을 포함한다.An apparatus for monitoring network performance degradation according to the present invention includes a plurality of session structures 241, 242, and 243 formed for each session for all sessions performed in a network system, and a plurality of server structures formed for each server for all servers forming all sessions. 251, 252, 253, a plurality of client structures 261, 262, 263 formed for each client for all clients forming all sessions, and a plurality of application structures formed for each application for all applications used by all clients ( 271, 272, and 273), and a plurality of regional structures 281, 282, and 283 formed for each region with respect to regions to which all the clients belong.

상기 세션 구조체들(241,242,243)은 세션 트리 테이블(240)에 의해 관리되고, 상기 서버 구조체들(251,252,253)은 서버 트리 테이블(250)에 의해 관리되고, 상기 클라이언트 구조체들(261,262,263)은 클라이언트 트리 테이블(260)에 의해 관리되고, 상기 애플리케이션 구조체들(271,272,273)은 애플리케이션 해쉬 테이블(270)에 의해 관리되고, 상기 지역 구조체들(281,282,283)은 지역 해쉬 테이블(280)에 의해 관리된다.The session structures 241, 242, and 243 are managed by a session tree table 240, the server structures 251, 252, and 253 are managed by a server tree table 250, and the client structures 261, 262, and 263 are managed by a client tree table ( 260), the application structures 271, 272 and 273 are managed by the application hash table 270, and the local structures 281, 282 and 283 are managed by the local hash table 280.

상기 세션 트리 테이블(240)과 상기 서버 트리 테이블(250)과 상기 클라이언트 트리 테이블(260)은 각각이 관리하는 구조체들에 대해 레드블랙 트리(Red-Black Tree) 알고리즘을 적용하여 관리한다.The session tree table 240, the server tree table 250, and the client tree table 260 are managed by applying a red-black tree algorithm to structures managed respectively.

상기한 지역 정보는 나라(country) 정보일 수도 있고, 도시(city) 정보일 수도 있다. 클라이언트가 속한 지역 정보는 클라이언트 IP 주소로부터 얻을 수 있다.The region information may be country information or city information. Local information to which the client belongs can be obtained from the client IP address.

도 3은 네트워크 시스템에서, 서버와 클라이언트간 세션 연결 예시도이다.3 is an exemplary view of a session connection between a server and a client in a network system.

서버1과 클라이언트1(애플리케이션1 사용) 사이에 세션(이를 세션1이라 함)이 연결되고, 서버1과 클라이언트3(애플리케이션1 사용) 사이에 세션(이를 세션2라 함)이 연결되고, 서버2와 클라이언트2(애플리케이션2 사용) 사이에 세션(이를 세션3이라 함)이 연결되고, 서버2와 클라이언트3(애플리케이션2 사용) 사이에 세션(이를 세션4라 함)이 연결되고, 서버2와 클라이언트5(애플리케이션2 사용) 사이에 세션(이를 세션5라 함)이 연결되고, 서버3과 클라이언트4(애플리케이션2 사용) 사이에 세션(이를 세션6이라 함)이 연결된다. 클라이언트1과 클라이언트2는 지역1에 위치하고, 클라이언트3과 클라이언트4와 클라이언트5는 지역2에 위치한다.A session (we call this Session 1) is connected between Server1 and Client1 (using Application1), and a session (we call this Session2) is connected between Server1 and Client3 (Using Application1), and Server2 A session (this is called session 3) is connected between server 2 and client 2 (using application 2), a session (this is called session 4) is connected between server 2 and client 3 (using application 2), and server 2 and client A session (this is called session 5) is connected between 5 (using application 2), and a session (this is called session 6) is connected between server 3 and client 4 (using application 2). Client 1 and Client 2 are located in Region 1, and Client 3, Client 4 and Client 5 are located in Region 2.

도 4는 도 3의 네트워크 시스템 예시도에서 생성되는 구조체 구성 및 연결도이고, 도 5는 이 발명에 따른 세션 구조체의 구성도이다.4 is a structure configuration and connection diagram generated in the exemplary network system of FIG. 3, and FIG. 5 is a configuration diagram of a session structure according to the present invention.

도 3의 예시도에서 세션이 6개 이므로 세션 구조체 6개가 형성된다. 세션1 구조체에는 서버1과 클라이언트1 사이에 연결된 세션1에 관한 정보가 기록되고 관리되며, 해당 세션에 관련된 서버, 클라이언트, 애플리케이션, 지역 정보가 기록된 각 구조체가 링크된다.In the example of FIG. 3, since there are 6 sessions, 6 session structures are formed. Information about session 1 connected between server 1 and client 1 is recorded and managed in the session 1 structure, and each structure in which server, client, application, and local information related to the session is recorded is linked.

세션 구조체는 도 5에 도시된 바와 같이 해당 세션에 관한 정보(51)와, 해당 세션에 연결된 서버에 대응하는 서버 구조체에 연결하기 위한 서버 구조체 포인터(52)와, 해당 세션에 연결된 클라이언트에 대응하는 클라이언트 구조체에 연결하기 위한 클라이언트 구조체 포인터(53)와, 해당 세션에 연결된 클라이언트에 의해 활성화된 애플리케이션에 대응하는 애플리케이션 구조체에 연결하기 위한 애플리케이션 구조체 포인터(54)와, 해당 세션에 연결된 클라이언트가 위치한 지역에 대응하는 지역 구조체에 연결하기 위한 지역 구조체 포인터(55)를 포함한다.As shown in FIG. 5, the session structure includes information 51 about the session, a server structure pointer 52 for connecting to a server structure corresponding to a server connected to the session, and a server structure pointer 52 corresponding to a client connected to the session. A client structure pointer 53 for connection to the client structure, an application structure pointer 54 for connection to the application structure corresponding to the application activated by the client connected to the session, and the location where the client connected to the session is located. Contains a local structure pointer 55 to connect to the corresponding local structure.

여기서, 세션에 관한 정보에는 해당 세션에 연결된 서버 정보와, 해당 세션에 연결된 클라이언트 정보와, 해당 세션에 연결된 클라이언트에 의해 활성화된 애플리케이션 정보와, 해당 세션에 연결된 클라이언트가 위치한 지역 정보와, 해당 세션의 상태 정보(요청, 대기, 응답)가 포함된다. 즉, 클라이언트로부터 SYN 신호 또는 트랜잭션 요청 신호가 서버로 전송되는지, 해당 요청에 대한 응답이 마무리되지 않은 대기 상태인지, 해당 요청에 대한 응답이 클라이언트로 전송된 응답 완료 상태인지 등의 정보를 포함한다. 리스크 관리 모듈(220)은 네트워크 시스템에 연결된 모든 세션에 대해, 주기적으로 해당 세션의 상태 정보를 입력받아 전체 플로우 중 대기 플로우의 비율을 계산하여 성능 저하 리스크를 산출한다.Here, the information about the session includes server information connected to the session, client information connected to the session, application information activated by the client connected to the session, region information where the client connected to the session is located, and It contains status information (request, wait, response). That is, it includes information such as whether a SYN signal or transaction request signal is transmitted from the client to the server, whether a response to the corresponding request is in an unfinished waiting state, or whether the response to the corresponding request is in a completed state sent to the client. The risk management module 220 calculates a performance degradation risk by periodically receiving status information of corresponding sessions for all sessions connected to the network system and calculating a ratio of standby flows among all flows.

세션1 구조체는 세션1에 관한 정보와, 서버1 구조체 포인터와, 클라이언트1 구조체 포인터와, 애플리케이션1 구조체 포인터와, 지역1 구조체 포인터가 링크되어 저장된다. 이와 동일하게, 세션2 구조체에는 서버1과 클라이언트3 사이에 연결된 세션2에 관한 정보가 기록되고 관리되며, 세션2에 관한 정보와, 서버1 구조체 포인터와, 클라이언트3 구조체 포인터와, 애플리케이션1 구조체 포인터와, 지역2 구조체 포인터가 링크되어 저장된다.In the Session1 structure, information about Session 1, server 1 structure pointer, client 1 structure pointer, application 1 structure pointer, and region 1 structure pointer are linked and stored. Similarly, in the Session2 structure, information on Session 2 connected between Server 1 and Client 3 is recorded and managed, and information on Session 2, server 1 structure pointer, client 3 structure pointer, and application 1 structure pointer And, the region 2 structure pointer is linked and stored.

이와 동일하게, 세션3 구조체에는 서버2와 클라이언트2 사이에 연결된 세션3에 관한 정보가 기록되고 관리되고, 세션4 구조체에는 서버2와 클라이언트3 사이에 연결된 세션4에 관한 정보가 기록되고 관리되며, 세션5 구조체에는 서버2와 클라이언트 5 사이에 연결된 세션5에 관한 정보가 기록되고 관리되고, 세션6 구조체에는 서버3과 클라이언트 4 사이에 연결된 세션6에 관한 정보가 기록되고 관리된다.Similarly, information about session 3 connected between server 2 and client 2 is recorded and managed in the session 3 structure, and information about session 4 connected between server 2 and client 3 is recorded and managed in the session 4 structure. Information about session 5 connected between server 2 and client 5 is recorded and managed in the session 5 structure, and information about session 6 connected between server 3 and client 4 is recorded and managed in the session 6 structure.

각 세션 구조체에는 각 세션에 대한 정보와, 해당 세션에 대응하는 서버 구조체에 연결하기 위한 서버 구조체 포인터와, 해당 세션에 대응하는 클라이언트 구조체에 연결하기 위한 클라이언트 구조체 포인터와, 해당 클라이언트가 사용하는 애플리케이션 구조체에 연결하기 위한 애플리케이션 구조체 포인터와, 해당 클라이언트가 속한 지역 구조체에 연결하기 위한 지역 구조체 포인터가 기록된다.Each session structure contains information about each session, a server structure pointer to connect to the server structure corresponding to the session, a client structure pointer to connect to the client structure corresponding to the session, and an application structure used by the corresponding client. An application structure pointer to connect to and a local structure pointer to connect to a local structure to which the client belongs are recorded.

도 6은 이 발명에 따른 서버 구조체의 구성도이다.6 is a block diagram of a server structure according to the present invention.

서버 구조체는 해당 서버에 관한 정보(61)와, 상기 서버가 연결된 모든 세션들에 대응하는 세션 구조체 포인터들을 관리하는 세션 구조체 관리 테이블(62)과, 상기 서버와 연결된 모든 클라이언트들에 대응하는 클라이언트 IP 주소들을 관리하는 클라이언트 정보 관리 테이블(63)과, 상기 서버와 연결된 모든 클라이언트들에서 활성화된 모든 애플리케이션들에 대응하는 애플리케이션 리스트를 관리하는 애플리케이션 정보 관리 테이블(64)과, 해당 서버의 과거 리스크 정보들을 저장하는 서버 리스크 테이블(65)과, 해당 서버의 현재 성능 저하 리스크를 저장하는 서버 현재 리스크(66)를 포함한다. 상기 클라이언트 IP 주소와 애플리케이션 리스트는 해쉬값으로 관리되는 것이 바람직하다.The server structure includes information about the corresponding server 61, a session structure management table 62 that manages session structure pointers corresponding to all sessions to which the server is connected, and a client IP corresponding to all clients connected to the server. A client information management table 63 for managing addresses, an application information management table 64 for managing an application list corresponding to all applications activated in all clients connected to the server, and past risk information of the corresponding server It includes a server risk table 65 to store and a server current risk 66 to store the current performance degradation risk of the corresponding server. Preferably, the client IP address and application list are managed as hash values.

리스크 관리 모듈(220)은 주기적(예컨대, 1초)으로 전체 플로우 대비 대기 플로우의 비율을 산출하여 순간 리스크를 계산하고, 이렇게 산출된 순간 리스크와 각 구조체에 저장된 과거 리스크 정보들을 기반으로 과거 7초간의 리스크들을 평균하여 현재 리스크를 계산한다.The risk management module 220 calculates the instantaneous risk by calculating the ratio of the standby flow to the total flow periodically (eg, 1 second), and calculates the instantaneous risk for the past 7 seconds based on the calculated instantaneous risk and past risk information stored in each structure. Calculate the current risk by averaging the risks of

서버1 구조체는 서버1에 관한 정보가 기록되고 관리되고, 서버2 구조체에는 서버2에 관한 정보가 기록되고 관리되며, 서버3 구조체에는 서버 3에 관한 정보가 기록되고 관리된다.Information about server 1 is recorded and managed in the server 1 structure, information about server 2 is recorded and managed in the server 2 structure, and information about server 3 is recorded and managed in the server 3 structure.

도 7은 이 발명에 따른 클라이언트 구조체의 구성도이다.7 is a block diagram of a client structure according to the present invention.

클라이언트 구조체는 해당 클라이언트에 관한 정보(71)와, 상기 클라이언트가 연결된 모든 세션들에 대응하는 세션 구조체 포인터들을 관리하는 세션 구조체 관리 테이블(72)과, 상기 클라이언트와 연결된 모든 서버들에 대응하는 서버 IP 주소들을 관리하는 서버 정보 관리 테이블(73)과, 상기 클라이언트에서 활성화된 모든 애플리케이션 리스트를 관리하는 애플리케이션 정보 관리 테이블(74)과, 해당 클라이언트의 과거 리스크 정보들을 저장하는 클라이언트 리스크 테이블(75)과, 해당 클라이언트의 현재 성능 저하 리스크를 저장하는 클라이언트 현재 리스크(76)를 포함한다. 상기 서버 IP 주소와 애플리케이션 리스트는 해쉬값으로 관리되는 것이 바람직하다.The client structure includes information about the corresponding client 71, a session structure management table 72 that manages session structure pointers corresponding to all sessions to which the client is connected, and a server IP corresponding to all servers connected to the client. A server information management table 73 for managing addresses, an application information management table 74 for managing a list of all applications activated in the client, and a client risk table 75 for storing past risk information of the corresponding client; A client current risk 76 storing the current performance degradation risk of the corresponding client is included. Preferably, the server IP address and application list are managed as hash values.

여기서, 클라이언트 리스크는 전체 플로우 중 서버의 대기 플로우를 기반으로 산출되며, 각 클라이언트마다 응답 대기 상태의 플로우의 비율로서 계산된다. 리스크 관리 모듈(220)은 주기적(예컨대, 1초)으로 전체 플로우 대비 대기 플로우의 비율을 순간 리스크를 계산하고, 각 구조체에 저장된 과거 리스크 정보들을 기반으로 과거 7초간의 리스크들을 평균하여 현재 리스크를 계산한다.Here, the client risk is calculated based on the standby flow of the server among all flows, and is calculated as a ratio of the flow waiting for a response for each client. The risk management module 220 periodically (eg, 1 second) calculates the instantaneous risk of the ratio of the standby flow to the total flow, and averages the risks of the past 7 seconds based on the past risk information stored in each structure to determine the current risk Calculate.

도 8은 이 발명에 따른 애플리케이션 구조체의 구성도이다.8 is a block diagram of an application structure according to the present invention.

애플리케이션 구조체는 해당 애플리케이션에 관한 정보(81)와, 상기 애플리케이션이 활성화된 모든 클라이언트가 연결된 모든 세션들에 대응하는 세션 구조체 포인터들을 관리하는 세션 구조체 관리 테이블(82)과, 상기 애플리케이션이 활성화된 모든 클라이언트들에 대응하는 클라이언트 IP 주소들을 관리하는 클라이언트 정보 관리 테이블(83), 해당 애플리케이션의 과거 리스크 정보들을 저장하는 애플리케이션 리스크 테이블(84)과, 해당 애플리케이션의 현재 성능 저하 리스크를 저장하는 애플리케이션 현재 리스크(85)를 포함한다. 여기서, 상기 클라이언트 IP 주소는 해쉬값으로 관리되는 것이 바람직하다.The application structure includes information about the corresponding application 81, a session structure management table 82 that manages session structure pointers corresponding to all sessions to which all clients activated by the application are connected, and all clients activated by the application. A client information management table 83 for managing client IP addresses corresponding to the corresponding applications, an application risk table 84 for storing past risk information of the corresponding application, and an application current risk 85 for storing the current performance degradation risk of the corresponding application. ). Here, the client IP address is preferably managed as a hash value.

도 9는 이 발명에 따른 지역 구조체의 구성도이다.9 is a block diagram of a local structure according to the present invention.

지역 구조체는 해당 지역에 관한 정보(91)와, 상기 지역에 위치한 모든 클라이언트가 연결된 모든 세션들에 대응하는 세션 구조체 포인터들을 관리하는 세션 구조체 관리 테이블(92)과, 상기 지역에 위치한 모든 클라이언트들에 대응하는 클라이언트 IP 주소들을 관리하는 클라이언트 정보 관리 테이블(93)과, 상기 모든 클라이언트들에 활성화된 애플리케이션들에 대응하는 애플리케이션 리스트를 관리하는 애플리케이션 정보 관리 테이블(94)과, 해당 지역의 상세 지역 분류를 위한 하부 지역 리스트를 관리하는 하부 지역 관리 테이블(95)과, 해당 지역의 과거 리스크 정보들을 저장하는 지역 리스크 테이블(96)과, 해당 지역의 현재 성능 저하 리스크를 저장하는 지역 현재 리스크(97)를 포함한다. 여기서, 상기 클라이언트 IP 주소와 애플리케이션 리스트는 해쉬값으로 관리되는 것이 바람직하다.The region structure includes information about the region 91, a session structure management table 92 that manages session structure pointers corresponding to all sessions to which all clients located in the region are connected, and all clients located in the region. A client information management table 93 for managing corresponding client IP addresses, an application information management table 94 for managing an application list corresponding to applications activated on all clients, and detailed region classification of the corresponding region A sub-region management table 95 for managing a sub-region list for the corresponding region, a region risk table 96 for storing past risk information of the corresponding region, and a region current risk 97 for storing the current performance degradation risk of the corresponding region include Here, it is preferable that the client IP address and application list are managed as hash values.

도 10은 이 발명의 구조체 생성 및 업데이트 과정을 도시한 동작 흐름도이다.10 is an operational flow diagram illustrating a structure creation and update process of the present invention.

패킷 분석 모듈은 미러링된 패킷이 입력되면(S101), 해당 패킷을 분석한다(S102). 패킷으로부터 세션 정보를 추출하고, 구조체 관리 모듈(210)은 세션 트리 테이블(240)에 해당 세션에 대응하는 세션 구조체를 쿼리한다. 세션 트리 테이블(240)은 해당 세션 구조체가 존재하지 않은 경우에는 해당 세션 구조체를 생성하여 구조체 관리 모듈에 리턴하고, 해당 세션 구조체가 존재하는 경우에는 해당 세션 구조체의 현재 상태를 업데이트한다(S103).When a mirrored packet is input (S101), the packet analysis module analyzes the corresponding packet (S102). After extracting session information from the packet, the structure management module 210 queries the session tree table 240 for a session structure corresponding to the corresponding session. In the session tree table 240, when the corresponding session structure does not exist, the corresponding session structure is created and returned to the structure management module, and when the corresponding session structure exists, the current state of the corresponding session structure is updated (S103).

아울러, 해당 세션 구조체와 링크된 서버 구조체를 생성하거나 해당 서버 구조체를 업데이트한다(S104). 또한, 해당 세션 구조체와 링크된 클라이언트 구조체를 생성하거나 해당 클라이언트 구조체를 업데이트한다(S105). 또한, 해당 세션 구조체와 링크된 애플리케이션 구조체를 생성하거나 해당 애플리케이션 구조체를 업데이트한다(S106). 또한, 해당 세션 구조체와 링크된 지역 구조체를 생성하거나 해당 지역 구조체를 업데이트한다(S107).In addition, a server structure linked with the corresponding session structure is created or the corresponding server structure is updated (S104). In addition, a client structure linked with the corresponding session structure is created or the corresponding client structure is updated (S105). Also, an application structure linked with the corresponding session structure is created or the corresponding application structure is updated (S106). In addition, a local structure linked with the corresponding session structure is created or the corresponding local structure is updated (S107).

즉, 새로운 세션이 생성된 경우, 세션 구조체를 생성하고, 해당 세션 구조체에 대응하는 서버 구조체, 클라이언트 구조체, 애플리케이션 구조체, 지역 구조체를 생성하거나, 기 생성된 서버 구조체, 클라이언트 구조체, 애플리케이션 구조체, 지역 구조체에서, 세션 구조체 관리 테이블, 서버 정보 관리 테이블, 클라이언트 정보 관리 테이블, 애플리케이션 정보 관리 테이블 등을 업데이트하여 현재 생성된 세션에 관한 정보를 추가한다.That is, when a new session is created, a session structure is created, and a server structure, client structure, application structure, and local structure corresponding to the session structure are created, or previously created server structures, client structures, application structures, and local structures are created. In , information on a currently created session is added by updating a session structure management table, a server information management table, a client information management table, an application information management table, and the like.

도 11은 이 발명의 리스크 관리 과정을 도시한 동작 흐름도이다.11 is an operational flow diagram illustrating the risk management process of the present invention.

리스크 관리 모듈은 리스크 산출 주기가 도래하면(S111), 모든 플로우의 세션별 상태 정보를 검출한다.(S112). 리스크 관리 모듈은 각 서버별로 플로우 대비 대기 플로우를 산출하고, 각 서버별 과거 리스크 정보를 읽고 평균값을 계산하여 현재 리스크를 계산하고, 각 서버의 서버 구조체의 서버 리스크 테이블 및 서버 현재 리스크를 업데이트한다(S113).When the risk calculation period arrives (S111), the risk management module detects state information for each session of all flows (S112). The risk management module calculates the flow versus standby flow for each server, reads the past risk information for each server and calculates the average value to calculate the current risk, and updates the server risk table of the server structure of each server and the server current risk ( S113).

리스크 관리 모듈은 각 클라이언트별로 플로우 대비 대기 플로우를 산출하고, 각 클라이언트별 과거 리스크 정보를 읽고 평균값을 계산하여 현재 리스크를 계산하고, 각 클라이언트의 클라이언트 구조체의 클라이언트 리스크 테이블 및 클라이언트 현재 리스크를 업데이트한다(S114). The risk management module calculates the flow versus standby flow for each client, reads the past risk information for each client, calculates the average value to calculate the current risk, and updates the client risk table of the client structure of each client and the current risk of the client ( S114).

리스크 관리 모듈은 각 애플리케이션별로 플로우 대비 대기 플로우를 산출하고, 각 애플리케이션별 과거 리스크 정보를 읽고 평균값을 계산하여 현재 리스크를 계산하고, 각 애플리케이션의 애플리케이션 구조체의 애플리케이션 리스크 테이블 및 애플리케이션 현재 리스크를 업데이트한다(S115).The risk management module calculates the flow versus standby flow for each application, reads the past risk information for each application, calculates the average value to calculate the current risk, and updates the application risk table of the application structure of each application and the current risk of the application ( S115).

리스크 관리 모듈은 각 지역별로 플로우 대비 대기 플로우를 산출하고, 각 지역별 과거 리스크 정보를 읽고 평균값을 계산하여 현재 리스크를 계산하고, 각 지역의 지역 구조체의 지역 리스크 테이블 및 지역 현재 리스크를 업데이트한다(S116).The risk management module calculates the flow versus standby flow for each region, reads the past risk information for each region, calculates the average value, calculates the current risk, and updates the regional risk table of the regional structure of each region and the regional current risk (S116). ).

200 : 패킷 분석 모듈 210 : 구조체 관리 모듈
220 : 리스크 관리 모듈 230 : 디스플레이 관리 모듈
240 : 세션 트리 테이블 241~243 : 세션 구조체
250 : 서버 트리 테이블 251~253 : 서버 구조체
260 : 클라이언트 트리 테이블 261~263 : 클라이언트 구조체
270 : 애플리케이션 해쉬 테이블 271~273 : 애플리케이션 구조체
280 : 지역 해쉬 테이블 281~283 : 지역 구조체
200: packet analysis module 210: structure management module
220: risk management module 230: display management module
240: session tree table 241~243: session structure
250: server tree table 251~253: server structure
260: client tree table 261~263: client structure
270: application hash table 271 to 273: application structure
280: local hash table 281~283: local structure

Claims (6)

다수의 클라이언트장치들과 다수의 서버장치들이 연결된 네트워크 시스템의 서버단에서 송수신되는 패킷을 미러링하여 제공받는 네트워크 성능 저하 모니터링 장치에 있어서,
상기 미러링된 패킷으로부터 세션에 관한 정보, 상기 세션에 연결된 서버에 관한 정보, 상기 세션에 연결된 클라이언트에 관한 정보, 상기 세션과 연결된 클라이언트에 관한 정보, 상기 클라이언트에서 활성화된 애플리케이션에 관한 정보, 상기 클라이언트가 위치한 지역에 관한 정보 및 상기 미러링된 패킷의 종류를 추출하는 패킷 분석 모듈;
상기 패킷 분석 모듈에서 분석된 정보를 기반으로 세션 구조체, 서버 구조체. 클라이언트 구조체, 애플리케이션 구조체 및 지역 구조체들을 관리하는 구조체 관리 모듈;
상기 세션 구조체, 서버 구조체, 클라이언트 구조체, 애플리케이션 구조체 및 지역 구조체들에 저장된 정보를 이용하여 상기 네트워크 시스템에서 이루어지는 모든 플로우 대비 대기 플로우의 비율로서 성능 저하 리스크를 산출하며 관리하는 리스크 관리 모듈을 포함하고,
상기 구조체 관리 모듈은, 상기 세션 구조체들을 관리하는 세션 트리 테이블, 상기 서버 구조체들을 관리하는 서버 트리 테이블, 상기 클라이언트 구조체들을 관리하는 클라이언트 트리 테이블, 상기 애플리케이션 구조체들을 관리하는 애플리케이션 해쉬 테이블, 및 상기 지역 구조체들을 관리하는 지역 해쉬 테이블을 포함하며,
상기 각 세션 구조체는 해당 세션에 관한 정보, 해당 세션에 연결된 서버에 대응하는 서버 구조체에 연결하기 위한 서버 구조체 포인터, 해당 세션에 연결된 클라이언트에 대응하는 클라이언트 구조체에 연결하기 위한 클라이언트 구조체 포인터를 포함하고;
상기 각 서버 구조체는 해당 서버에 관한 정보, 상기 서버가 연결된 모든 세션들에 대응하는 세션 구조체 포인터들을 관리하는 세션 구조체 관리 테이블 및, 상기 서버와 연결된 모든 클라이언트들에 대응하는 클라이언트 IP 주소들을 관리하는 클라이언트 정보 관리 테이블을 포함하며,
상기 각 클라이언트 구조체는 해당 클라이언트에 관한 정보, 상기 클라이언트가 연결된 모든 세션들에 대응하는 세션 구조체 포인터들을 관리하는 세션 구조체 관리 테이블, 및 상기 클라이언트와 연결된 모든 서버들에 대응하는 서버 IP 주소들을 관리하는 서버 정보 관리 테이블을 포함하는 것을 특징으로 하는 네트워크 시스템 성능 저하 실시간 모니터링 장치.
A network performance degradation monitoring device provided by mirroring packets transmitted and received by a server end of a network system in which a plurality of client devices and a plurality of server devices are connected,
From the mirrored packet, information about a session, information about a server connected to the session, information about a client connected to the session, information about a client connected to the session, information about an application activated in the client, a packet analysis module for extracting information about a location and a type of the mirrored packet;
A session structure and a server structure based on the information analyzed by the packet analysis module. a structure management module that manages client structures, application structures and local structures;
A risk management module for calculating and managing a performance degradation risk as a ratio of standby flows to all flows in the network system using information stored in the session structure, server structure, client structure, application structure, and local structures,
The structure management module includes a session tree table for managing the session structures, a server tree table for managing the server structures, a client tree table for managing the client structures, an application hash table for managing the application structures, and the local structure. It includes a local hash table that manages
Each session structure includes information about the corresponding session, a server structure pointer for connecting to a server structure corresponding to a server connected to the corresponding session, and a client structure pointer for connecting to a client structure corresponding to a client connected to the corresponding session;
Each of the server structures includes information about the corresponding server, a session structure management table managing session structure pointers corresponding to all sessions to which the server is connected, and a client managing client IP addresses corresponding to all clients connected to the server. It includes an information management table,
Each of the client structures includes information about the corresponding client, a session structure management table managing session structure pointers corresponding to all sessions to which the client is connected, and a server managing server IP addresses corresponding to all servers connected to the client. Network system performance degradation real-time monitoring device comprising an information management table.
청구항 1에 있어서,
상기 세션 구조체는 해당 세션에 연결된 클라이언트에 의해 활성화된 애플리케이션에 대응하는 애플리케이션 구조체에 연결하기 위한 애플리케이션 구조체 포인터, 및 해당 세션에 연결된 클라이언트가 위치한 지역에 대응하는 지역 구조체에 연결하기 위한 지역 구조체 포인터를 더 포함하고,
상기 서버 구조체는 상기 서버와 연결된 모든 클라이언트들에서 활성화된 모든 애플리케이션들에 대응하는 애플리케이션 리스트를 관리하는 애플리케이션 정보 관리 테이블, 해당 서버의 과거 리스크 정보들을 저장하는 서버 리스크 테이블 및 해당 서버의 현재 성능 저하 리스크를 저장하는 서버 현재 리스크를 더 포함하며,
상기 클라이언트 구조체는 상기 클라이언트에서 활성화된 모든 애플리케이션 리스트를 관리하는 애플리케이션 정보 관리 테이블, 해당 클라이언트의 과거 리스크 정보들을 저장하는 클라이언트 리스크 테이블 및 해당 클라이언트의 현재 성능 저하 리스크를 저장하는 클라이언트 현재 리스크를 더 포함하는 것을 특징으로 하는 네트워크 시스템 성능 저하 실시간 모니터링 장치.
The method of claim 1,
The session structure further includes an application structure pointer for connecting to an application structure corresponding to an application activated by a client connected to the corresponding session, and a local structure pointer for connecting to a local structure corresponding to a region where the client connected to the corresponding session is located. include,
The server structure includes an application information management table for managing an application list corresponding to all applications activated in all clients connected to the server, a server risk table for storing past risk information of the server, and a current performance degradation risk of the server. The server that stores the current risk further includes,
The client structure further includes an application information management table for managing a list of all applications activated in the client, a client risk table for storing past risk information of the corresponding client, and a client current risk for storing the current performance degradation risk of the corresponding client Network system performance degradation real-time monitoring device, characterized in that.
청구항 1에 있어서, 상기 지역에 관한 정보는 나라 정보 또는 도시 정보인 것을 특징으로 하는 네트워크 시스템 성능 저하 실시간 모니터링 장치.The real-time monitoring device for performance degradation of a network system according to claim 1 , wherein the region information is country information or city information. 청구항 1에 있어서,
상기 애플리케이션 구조체는 해당 애플리케이션에 관한 정보, 상기 애플리케이션이 활성화된 모든 클라이언트가 연결된 모든 세션들에 대응하는 세션 구조체 포인터들을 관리하는 세션 구조체 관리 테이블, 상기 애플리케이션이 활성화된 모든 클라이언트들에 대응하는 클라이언트 IP 주소들을 관리하는 클라이언트 정보 관리 테이블, 해당 애플리케이션의 과거 리스크 정보들을 저장하는 애플리케이션 리스크 테이블 및 해당 애플리케이션의 현재 성능 저하 리스크를 저장하는 애플리케이션 현재 리스크를 포함하며,
상기 지역 구조체는 해당 지역에 관한 정보, 상기 지역에 위치한 모든 클라이언트가 연결된 모든 세션들에 대응하는 세션 구조체 포인터들을 관리하는 세션 구조체 관리 테이블, 상기 지역에 위치한 모든 클라이언트들에 대응하는 클라이언트 IP 주소들을 관리하는 클라이언트 정보 관리 테이블, 상기 모든 클라이언트들에 활성화된 애플리케이션들에 대응하는 애플리케이션 리스트를 관리하는 애플리케이션 정보 관리 테이블, 해당 지역의 상세 지역 분류를 위한 하부 지역 리스트를 관리하는 하부 지역 관리 테이블, 해당 지역의 과거 리스크 정보들을 저장하는 지역 리스크 테이블, 및 해당 지역의 현재 성능 저하 리스크를 저장하는 지역 현재 리스크를 포함하는 것을 특징으로 하는 네트워크 시스템 성능 저하 실시간 모니터링 장치.
The method of claim 1,
The application structure includes information about a corresponding application, a session structure management table managing session structure pointers corresponding to all sessions connected to all clients in which the application is activated, and a client IP address corresponding to all clients in which the application is activated. It includes a client information management table for managing them, an application risk table for storing past risk information of the corresponding application, and an application current risk for storing the current performance degradation risk of the corresponding application,
The region structure manages information about a corresponding region, a session structure management table managing session structure pointers corresponding to all sessions to which all clients located in the region are connected, and client IP addresses corresponding to all clients located in the region. a client information management table that manages an application list corresponding to applications activated on all clients, a lower region management table that manages a lower region list for detailed regional classification of a corresponding region, A network system performance degradation real-time monitoring device comprising: a region risk table for storing historical risk information; and a region current risk for storing current performance degradation risks in a corresponding region.
청구항 1에 있어서,
상기 세션 트리 테이블, 상기 서버 트리 테이블 및 상기 클라이언트 트리 테이블 각각은,
각각의 관리 대상 구조체들에 대해 레드블랙 트리 알고리즘을 적용하여 관리하는 것을 특징으로 하는 네트워크 시스템 성능 저하 실시간 모니터링 장치.
The method of claim 1,
Each of the session tree table, the server tree table, and the client tree table,
An apparatus for monitoring network system performance degradation in real time, characterized in that each structure to be managed is managed by applying a red-black tree algorithm.
청구항 1에 있어서,
상기 리스크 관리 모듈에서 산출된 서버별, 클라이언트별, 애플리케이션별, 지역 및 전체 네트워크 시스템의 성능 저하 리스크를 화면에 표시하도록 하는 디스플레이 관리 모듈을 더 포함한 것을 특징으로 하는 네트워크 시스템 성능 저하 실시간 모니터링 장치.
The method of claim 1,
Network system performance degradation real-time monitoring device, characterized in that it further comprises a display management module to display on the screen the performance degradation risk of each server, each client, each application, region and the entire network system calculated by the risk management module.
KR1020210029940A 2021-03-08 2021-03-08 Apparatus for Realtime Monitoring Performance Degradation of Network System KR102563247B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210029940A KR102563247B1 (en) 2021-03-08 2021-03-08 Apparatus for Realtime Monitoring Performance Degradation of Network System

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210029940A KR102563247B1 (en) 2021-03-08 2021-03-08 Apparatus for Realtime Monitoring Performance Degradation of Network System

Publications (2)

Publication Number Publication Date
KR20220125965A KR20220125965A (en) 2022-09-15
KR102563247B1 true KR102563247B1 (en) 2023-08-03

Family

ID=83281506

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210029940A KR102563247B1 (en) 2021-03-08 2021-03-08 Apparatus for Realtime Monitoring Performance Degradation of Network System

Country Status (1)

Country Link
KR (1) KR102563247B1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102072700B1 (en) * 2019-07-31 2020-02-03 (주)소울시스템즈 Apparatus and method for real-time application performance monitoring based on full packet processing
KR102174190B1 (en) * 2019-09-09 2020-11-04 주식회사 맥데이타 Performance visualization method, apparatus and system for 5g based network

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102076862B1 (en) 2018-01-18 2020-02-12 주식회사맥데이타 Network performance indicator visualization method and apparatus, and system
KR102076861B1 (en) 2018-01-18 2020-05-18 주식회사맥데이타 Network performance diagnosis method and apparatus, and system
KR102183897B1 (en) 2018-09-19 2020-11-27 주식회사 맥데이타 An apparatus for anomaly detecting of network based on artificial intelligent and method thereof, and system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102072700B1 (en) * 2019-07-31 2020-02-03 (주)소울시스템즈 Apparatus and method for real-time application performance monitoring based on full packet processing
KR102174190B1 (en) * 2019-09-09 2020-11-04 주식회사 맥데이타 Performance visualization method, apparatus and system for 5g based network

Also Published As

Publication number Publication date
KR20220125965A (en) 2022-09-15

Similar Documents

Publication Publication Date Title
US10659354B2 (en) Processing data packets using a policy based network path
US9210122B2 (en) System and method for inspecting domain name system flows in a network environment
EP2629466B1 (en) Method, device and system for forwarding data in communication system
US9838333B2 (en) Software-defined information centric network (ICN)
US7788329B2 (en) Throttling electronic communications from one or more senders
CA2704964C (en) System and method for improved in-browser notification
US9338192B1 (en) Connection management using connection request transfer protocol
Zhang et al. On wide area network optimization
US11381667B1 (en) Methods and systems for implementing a regionally contiguous proxy service
US20100235464A1 (en) Handoff and optimization of a network protocol stack
CN107222561A (en) A kind of transport layer reverse proxy method
KR20130112038A (en) Method, gateway, proxy and system for implementing mobile internet services
US20230336446A1 (en) Application records using session information
US20230254384A1 (en) Graceful shutdown of supernodes in an internet proxy system
US20190037044A1 (en) Content distribution and delivery optimization in a content delivery network (cdn)
KR102563247B1 (en) Apparatus for Realtime Monitoring Performance Degradation of Network System
WO2023065848A1 (en) Service scheduling method and apparatus, device and computer readable storage medium
US9015309B2 (en) Networked probe system
CN111818134A (en) Data transmission method and device based on fog calculation in substation data center
KR100509097B1 (en) Web relay for transporting the web-based message to web user and method thereof using the web relay
CN115474212B (en) CDN network transmission optimization method, system, electronic equipment and storage medium
KR20080046900A (en) Load balancing system and method load balancing device
NANO Network resource identification

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant