KR102537370B1 - Real-time packet analysis method and apparatus for mass network monitoring - Google Patents

Real-time packet analysis method and apparatus for mass network monitoring Download PDF

Info

Publication number
KR102537370B1
KR102537370B1 KR1020200065005A KR20200065005A KR102537370B1 KR 102537370 B1 KR102537370 B1 KR 102537370B1 KR 1020200065005 A KR1020200065005 A KR 1020200065005A KR 20200065005 A KR20200065005 A KR 20200065005A KR 102537370 B1 KR102537370 B1 KR 102537370B1
Authority
KR
South Korea
Prior art keywords
information
transaction
time
entity
server
Prior art date
Application number
KR1020200065005A
Other languages
Korean (ko)
Other versions
KR20210147575A (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 KR1020200065005A priority Critical patent/KR102537370B1/en
Publication of KR20210147575A publication Critical patent/KR20210147575A/en
Application granted granted Critical
Publication of KR102537370B1 publication Critical patent/KR102537370B1/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/02Capturing 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/06Generation of reports
    • 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/14Network analysis or design
    • 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/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5032Generating service level reports
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/06Generation of reports
    • H04L43/062Generation of reports related to network traffic
    • 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
    • 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
    • H04L43/0852Delays
    • H04L43/0864Round trip delays
    • 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
    • H04L43/0876Network utilisation, e.g. volume of load or congestion level
    • H04L43/0894Packet rate
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]

Abstract

본 발명의 일 양태는 패킷 분석 모듈에서의 대용량 네트워크 모니터링을 위한 실시간 패킷 분석 방법을 개시하고 있다. 상기 방법은, 분석 대상이 되는 복수 개의 패킷들을 수집하는 단계(상기 복수 개의 패킷들은 제 1 엔티티(entity)와 제 2 엔티티 간에 송수신되는 패킷들을 포함함, 상기 제 1 엔티티 및 상기 제 2 엔티티 중 적어도 하나는 컴퓨팅 장치 또는 상기 컴퓨팅 장치에서 실행되는 애플리케이션 인스턴스(application instance)를 포함함), 상기 수집된 복수 개의 패킷들을 트랜잭션 단위로 분석하여 일정 시간 단위로 트랜잭션 블록(TR Block: TRansaction Block)을 생성하는 단계(여기서, 상기 트랜잭션 블록은 상기 일정 시간 동안 처리되는 적어도 하나의 트랜잭션들에 대한 네트워크 성능에 대한 정보를 트랜잭션 단위로 생성한 데이터 블록임) 및 상기 생성된 트랜잭션 블록을 실시간으로 분석 정보 수집 장치로 전송하는 단계를 포함한다.One aspect of the present invention discloses a real-time packet analysis method for monitoring a large-capacity network in a packet analysis module. The method includes collecting a plurality of packets to be analyzed (the plurality of packets include packets transmitted and received between a first entity and a second entity, at least one of the first entity and the second entity) One includes a computing device or an application instance running on the computing device), analyzes the collected plurality of packets in transaction units, and generates a transaction block (TR Block: TRansaction Block) in units of a predetermined time (Here, the transaction block is a data block in which information on network performance for at least one transaction processed during the predetermined time is generated in a transaction unit) and the generated transaction block is transferred to an analysis information collection device in real time. It includes sending.

Figure R1020200065005
Figure R1020200065005

Description

대용량 네트워크 모니터링을 위한 실시간 패킷 분석 방법 및 장치{REAL-TIME PACKET ANALYSIS METHOD AND APPARATUS FOR MASS NETWORK MONITORING}Real-time packet analysis method and apparatus for mass network monitoring

본 발명은 패킷 분석 방법에 관한 것으로, 보다 상세하게는, 대용량 네트워크의 실시간 모니터링을 지원하기 위해 패킷 분석 결과를 제공하는 방법에 관한 것이다.The present invention relates to a packet analysis method, and more particularly, to a method of providing a packet analysis result to support real-time monitoring of a large capacity network.

네트워크는 통신 링크 및 통신링크에 접속된 통신능력을 가진 다양한 장치들을 전반적으로 포함한다. 여기서, 네트워크와 관련된 장치들은, 컴퓨터, 주변장치, 라우터, 저장장치, 및 프로세서와 통신 인터페이스를 갖는 여러 전기제품을 포함한다. 여기서, "장치"라는 용어는 전형적으로 논리 장치들 혹은 기능성 및 데이터를 처리 및 교환할 수 있는 능력을 갖는 다른 장치들을 포함하며, 가정용 장치들 뿐만 아니라 일반 목적의 컴퓨터들을 포함할 수 있다. A network generally includes a variety of devices having communication links and communication capabilities connected to the communication links. Here, devices related to the network include computers, peripheral devices, routers, storage devices, and various electrical appliances having communication interfaces with a processor. As used herein, the term "device" typically includes logic devices or other devices having functionality and the ability to process and exchange data, and may include home devices as well as general purpose computers.

전통적인 네트워크 시스템들은 사용자가 사용하는 클라이언트 장치와 웹 사이트와 연관된 다양한 서버 장치들을 포함한다. 일반적으로 클라이언트 장치는 웹 사이트를 이용하기 위해, 특정 IP 주소를 갖는 서버에 접속요청을 하고, 대기시간을 거쳐 접속한다. 이때, 다수의 사용자에 의해 다수의 클라이언트 장치가 특정 시점에 몰려서 서버에 접속하는 경우, 병목현상(bottleneck)에 의해 서버와 연관된 네트워크 서비스의 성능이 저하될 수 있다. 서비스 성능 또는 품질 문제 발생시 사용자는 지연으로 인해, 기다리는 시간을 늘어서 서비스의 이용률이 떨어지게 되고, 이는 생산성 및 매출의 감소로 이어진다. 또한, IT 운영비용 증가가 발생하고, 서버의 운영자 및/또는 관련 비즈니스의 경영자는 기업의 경쟁력 하락이라는 좋지 않는 결과를 맞게 될 수 있다. Traditional network systems include client devices used by users and various server devices associated with web sites. In general, in order to use a web site, a client device requests access to a server having a specific IP address and accesses it after waiting time. In this case, when a plurality of client devices are flocked by a plurality of users to access the server at a specific time point, performance of a network service associated with the server may be degraded due to a bottleneck. When a service performance or quality problem occurs, the user increases the waiting time due to delay, resulting in a decrease in service utilization rate, which leads to a decrease in productivity and sales. In addition, an increase in IT operating costs may occur, and a server operator and/or a manager of a related business may encounter an unfavorable result of a decrease in corporate competitiveness.

따라서, 성능 저하의 원인을 신속히 파악하고, 이에 대한 대응이 최대한 빠르게 이루어져야 한다. 하지만, 이러한 성능 저하의 원인이 어디에 있는지를 명확히 파악하는 데에는 마땅한 서비스가 없어서 적절한 대응이 이루어지지 못하는 실정이다. 즉, 성능 개선의 골든 타임(golden time)을 놓치게 되는 문제점이 있다. 특히, 대용량의 데이터를 취급하는 환경에서 이를 실시간으로 처리하는 것은 더욱 어렵다.Therefore, it is necessary to quickly identify the cause of the performance degradation and respond to it as quickly as possible. However, there is no appropriate service to clearly identify the cause of such performance degradation, and therefore, an appropriate response cannot be made. That is, there is a problem in that a golden time for performance improvement is missed. In particular, it is more difficult to process data in real time in an environment where large amounts of data are handled.

추가적으로, 클라우드(cloud) 환경에서는 다수의 서버 및/또는 서버 역할을 수행하는 다수의 인스턴스(instance)들이 서로 연계하여 동작하기 때문에, 특정 부분에서의 성능 저하를 파악하는 것은 어렵다는 문제점이 있다. 또한, 클라우드 서비스 제공자가 이를 모니터링하는 별도의 장치를 통해 관련 정보를 제공하는 것을 쉽게 동의하지 않기 때문에, 개별 서버 및/또는 개별 인스턴스들의 네트워크 성능을 실시간으로 모니터링하기는 매우 어렵다는 문제점이 있다. Additionally, in a cloud environment, since a plurality of servers and/or a plurality of instances performing server roles operate in conjunction with each other, it is difficult to determine performance degradation in a specific part. In addition, since cloud service providers do not easily agree to provide related information through a separate device that monitors it, it is very difficult to monitor network performance of individual servers and/or individual instances in real time.

상술한 문제점을 해결하기 위한 본 발명의 일 양태에 따른 목적은 대용량 데이터를 취급하는 네트워크 서비스의 성능을 모니터링하고 이를 효율적으로 통합 관리하기 위한 실시간 패킷 분석 방법을 제공하는 것이다.An object according to an aspect of the present invention for solving the above problems is to provide a real-time packet analysis method for monitoring the performance of a network service that handles large amounts of data and efficiently integrated management thereof.

상기한 목적을 달성하기 위한 본 발명의 일 양태에 따른, 패킷 분석 모듈에서의 대용량 네트워크 모니터링을 위한 실시간 패킷 분석 방법은, 분석 대상이 되는 복수 개의 패킷들을 수집하는 단계(상기 복수 개의 패킷들은 제 1 엔티티(entity)와 제 2 엔티티 간에 송수신되는 패킷들을 포함함, 상기 제 1 엔티티 및 상기 제 2 엔티티 중 적어도 하나는 컴퓨팅 장치 또는 상기 컴퓨팅 장치에서 실행되는 애플리케이션 인스턴스(application instance)를 포함함), 상기 수집된 복수 개의 패킷들을 트랜잭션 단위로 분석하여 일정 시간 단위로 트랜잭션 블록(TR Block: TRansaction Block)을 생성하는 단계(여기서, 상기 트랜잭션 블록은 상기 일정 시간 동안 처리되는 적어도 하나의 트랜잭션들에 대한 네트워크 성능에 대한 정보를 트랜잭션 단위로 생성한 데이터 블록임) 및 상기 생성된 트랜잭션 블록을 실시간으로 분석 정보 수집 장치로 전송하는 단계를 포함할 수 있다.According to one aspect of the present invention for achieving the above object, a real-time packet analysis method for monitoring a large-capacity network in a packet analysis module includes the steps of collecting a plurality of packets to be analyzed (the plurality of packets are first including packets transmitted and received between an entity and a second entity, at least one of the first entity and the second entity including a computing device or an application instance running on the computing device), wherein the Analyzing a plurality of collected packets in transaction units to generate a TRansaction Block (TR Block) in units of a predetermined time (here, the transaction block is a function of network performance for at least one transaction processed for the predetermined period of time) It is a data block in which information about is generated in transaction units) and transmitting the generated transaction block to an analysis information collection device in real time.

상기 트랜잭션 블록은, (i) 상기 적어도 하나의 트랜잭션들에 포함된 각각의 트랜잭션의 한 세트의 요소 정보를 포함하는 트랜잭션 리스트(TR List) 정보, (ii) 상기 트랜잭션 리스트 정보와 연관된 텍스트들의 목록인 텍스트 리스트(Text List) 정보 및 (iii) 상기 일정 시간 동안의 네트워크 성능 지표의 통계 정보를 포함할 수 있다.The transaction block includes (i) transaction list (TR List) information including one set of element information of each transaction included in the at least one transaction, and (ii) a list of texts associated with the transaction list information. It may include text list information and (iii) statistical information of network performance indicators for the predetermined period of time.

상기 한 세트의 요소 정보는 트랜잭션과 관련된 복수 분류의 필수 요소 정보로 구성되어 개별 분류의 요소 정보가 적어도 하나는 포함되도록 구성되되, 상기 복수 분류의 요소 정보는, (i) 상기 제 1 엔티티 및 상기 제 2 엔티티의 IP 주소 및 포트 정보, (ii) 트랜잭션과 관련된 시간 정보, (iii) 트랜잭션과 관련된 세션 요청 및 응답 패킷과 관련된 정보, (iv) 트랜잭션과 관련된 세션의 실시간 데이터 전송 속도 정보 및 (v) 트랜잭션 상태 및 결과 정보를 포함할 수 있다.The set of element information is composed of essential element information of a plurality of categories related to a transaction and includes at least one element information of an individual category, wherein the element information of the plurality of categories includes: (i) the first entity and the element information of the first entity; IP address and port information of the second entity, (ii) time information related to the transaction, (iii) information related to session request and response packets related to the transaction, (iv) real-time data transfer rate information of the session related to the transaction, and (v) ) may include transaction status and result information.

상기 트랜잭션과 관련된 시간 정보는, 트랜잭션 시작 및 종료 시각 정보, 트랜잭션 RTT(Round Trip Time) 정보, 요청전송시간(request time) 정보, 응답대기시간(latency) 정보, 응답데이터 전송시간(response time) 정보를 포함할 수 있다.The time information related to the transaction includes transaction start and end time information, transaction RTT (Round Trip Time) information, request transmission time (request time) information, response latency information, and response data transmission time (response time) information. can include

상기 한 세트의 요소 정보는 상기 제 1 엔티티 또는 상기 제 2 엔티티가 요청한 url(uniform resource locator), 상기 url 중 도메인에 대한 정보(domain) 및 응답 헤더 콘텐츠 타입 정보(MIME)를 더 포함하고, 상기 url 정보, 상기 도메인정보 및 응답 헤더 콘텐츠 타입 정보는 해쉬 값(hash value)으로 표현될 수 있다.The set of element information further includes a uniform resource locator (url) requested by the first entity or the second entity, information on a domain among the urls, and response header content type information (MIME), The url information, the domain information, and the response header content type information may be expressed as a hash value.

상기 해쉬 값은 상기 텍스트 리스트에 포함된 복수 개의 텍스트 중 하나와 매칭되며, 상기 해쉬 값은 복수 개로 구성되어 서로 간에 충돌(collision)을 방지할 수 있다.The hash value is matched with one of a plurality of texts included in the text list, and the hash value is composed of a plurality of texts to prevent collision with each other.

상기 트랜잭션 리스트에 현재 포함된 요소 정보가 후보 요소 정보로 대체될 때, 동일 분류 내의 후보 요소 정보로 대체될 수 있다.When element information currently included in the transaction list is replaced with candidate element information, it may be replaced with candidate element information within the same classification.

상기 일정 시간은 8초 내지 12초이며, 상기 통계 정보는 상기 일정 시간 동안의 적어도 하나의 트랜잭션에서의, 서버측 데이터 전송 속도의 통계값, 응답대기시간의 통계값, 및 트랜잭션 요청 및 응답에 대한 시간과 데이터 양의 통계값을 포함할 수 있다.The predetermined time ranges from 8 seconds to 12 seconds, and the statistical information is a statistical value of a server-side data transmission speed, a statistical value of a response waiting time, and information about transaction requests and responses in at least one transaction during the predetermined time period. It can include statistics of time and amount of data.

상기 통계 정보는 상기 일정시간 동안의 적어도 하나의 트랜잭션에서 발생되는 HTTP 에러의 합계 값 정보를 더 포함할 수 있다.The statistical information may further include information on a total value of HTTP errors generated in at least one transaction for the predetermined time period.

상기 각각의 트랜잭션에 대한 한 세트의 요소 정보는 100 내지 120 Byte의 크기를 가지며, 상기 트랜잭션 리스트는 10000개 이하의 트랜잭션에 대한 정보를 포함하며, 상기 트랜잭션 리스트는 0.8 내지 1.2MiB의 크기로 생성될 수 있다.The set of element information for each transaction has a size of 100 to 120 bytes, the transaction list includes information on 10000 or less transactions, and the transaction list is generated with a size of 0.8 to 1.2 MiB. can

상기 텍스트 리스트는 해쉬 값을 포함하며, 압축에 의해 1MiB 미만의 크기로 생성될 수 있다.The text list includes a hash value and can be created with a size of less than 1 MiB by compression.

상기 통계 정보는 500 Byte 미만의 크기로 생성될 수 있다.The statistical information may be generated in a size of less than 500 bytes.

상기 트랜잭션 블록은 전체적으로 2.2MB 미만의 크기로 생성될 수 있다.The transaction block may be generated with a size of less than 2.2 MB as a whole.

상기 패킷 분석 모듈은, 상기 애플리케이션 인스턴스(application instance)에 에이전트(agent) 형태로 임베디드(embedded)될 수 있다.The packet analysis module may be embedded in the application instance in the form of an agent.

상기 트랜잭션 블록은 상기 일정 시간 단위로 생성되어 HTTP(Hypertext Transfer Protocol)를 이용하여 실시간으로 상기 분석 정보 수집 장치로 제공될 수 있다.The transaction block may be generated in units of the predetermined time and provided to the analysis information collection device in real time using HTTP (Hypertext Transfer Protocol).

상기 패킷 분석 모듈은, 상기 패킷 분석 모듈 단독으로 패킷 분석 전반을 모두 수행하는 일원화된 분석모드인 제 1 모드와 상기 분석정보 수집장치와 분산하여 패킷 분석 전반 중 일부를 수행하는 이원화된 분석모드인 제 2 모드를 중 하나를 선택하여 패킷을 분석하되, 상기 제 1 모드의 분석 결과가 상기 제 2 모드의 분석 결과보다 많은 양을 가질 수 있다.The packet analysis module includes a first mode, which is a unified analysis mode in which overall packet analysis is performed by the packet analysis module alone, and a second mode, which is a dualized analysis mode in which some of the overall packet analysis is performed by dispersing with the analysis information collection device. Packets are analyzed by selecting one of the two modes, and the analysis result of the first mode may have a greater amount than the analysis result of the second mode.

상기 제 1 모드와 상기 제 2 모드 중 하나의 선택은 모니터링 대상 서버들의 수로 결정될 수 있다.Selection of one of the first mode and the second mode may be determined by the number of monitoring target servers.

상기한 목적을 달성하기 위한 본 발명의 다른 양태에 따른, 대용량 네트워크 모니터링을 위한 실시간 패킷 분석을 수행하는 패킷 분석 장치는 분석 대상이 되는 복수 개의 패킷들을 수집하는 패킷 수집부(상기 복수 개의 패킷들은 제 1 엔티티(entity)와 제 2 엔티티 간에 송수신되는 패킷들을 포함함, 상기 제 1 엔티티 및 상기 제 2 엔티티 중 적어도 하나는 컴퓨팅 장치 또는 상기 컴퓨팅 장치에서 실행되는 애플리케이션 인스턴스(application instance)를 포함함), 상기 수집된 복수 개의 패킷들을 트랜잭션 단위로 분석하여 일정 시간 단위로 트랜잭션 블록(TR Block: TRansaction Block)을 생성하는 트랜잭션 블록 생성부(여기서, 상기 트랜잭션 블록은 상기 일정 시간 동안 처리되는 적어도 하나의 트랜잭션들에 대한 네트워크 성능에 대한 정보를 트랜잭션 단위로 생성한 데이터 블록임) 및 상기 생성된 트랜잭션 블록을 실시간으로 분석 정보 수집 장치로 전송하는 분석정보 제공부를 포함할 수 있다.According to another aspect of the present invention for achieving the above object, a packet analysis apparatus for performing real-time packet analysis for monitoring a large-capacity network is a packet collection unit for collecting a plurality of packets to be analyzed (the plurality of packets are Includes packets transmitted and received between a first entity and a second entity, wherein at least one of the first entity and the second entity includes a computing device or an application instance running on the computing device); A transaction block generation unit for analyzing the collected plurality of packets in units of transactions and generating a TRansaction Block (TR Block) in units of a predetermined time (where the transaction block is at least one transaction processed for the predetermined period of time). It is a data block that generates information about network performance in transaction units) and an analysis information providing unit that transmits the generated transaction block to an analysis information collecting device in real time.

상기한 목적을 달성하기 위한 본 발명의 또 다른 양태에 따른, 대용량 네트워크 모니터링을 위한 실시간 패킷 분석을 수행하는 패킷 분석 시스템은 분석 대상이 되는 복수 개의 패킷들 - 상기 복수 개의 패킷들은 제 1 엔티티(entity)와 제 2 엔티티 - 상기 제 1 엔티티 및 상기 제 2 엔티티 중 적어도 하나는 컴퓨팅 장치 또는 상기 컴퓨팅 장치에서 실행되는 애플리케이션 인스턴스(application instance)를 포함함 - 간에 송수신되는 패킷들을 포함함 - 을 수집하여, 트랜잭션 단위로 분석하여 제 1 시간 단위로 트랜잭션 블록(TR Block: TRansaction Block) - 상기 트랜잭션 블록은 상기 제 1 시간 동안 처리되는 적어도 하나의 트랜잭션들에 대한 네트워크 성능에 대한 정보를 트랜잭션 단위로 생성한 데이터 블록임 - 을 생성하고, 상기 생성된 트랜잭션 블록을 실시간으로 분석 정보 수집 장치로 전송하는 패킷 분석 장치 및 상기 트랜잭션 블록을 수신하여 추가적인 성능 분석을 수행하여 레포지토리(repository)에 저장하는 분석정보 수집장치를 포함할 수 있다.According to another aspect of the present invention for achieving the above object, a packet analysis system for performing real-time packet analysis for monitoring a large-capacity network includes a plurality of packets to be analyzed - the plurality of packets are a first entity ) and a second entity, wherein at least one of the first entity and the second entity includes a computing device or an application instance running on the computing device, including packets transmitted and received between them, TRansaction Block (TR Block) in a first time unit by analyzing in a transaction unit - The transaction block is data generating information on network performance in a transaction unit for at least one transaction processed during the first time A packet analysis device that generates a block and transmits the generated transaction block to the analysis information collection device in real time and an analysis information collection device that receives the transaction block, performs additional performance analysis, and stores it in a repository. can include

상기 추가적인 성능 분석은 제 2 시간 단위의 네트워크 성능 지표를 산출하는 것을 포함하되, 상기 제 2 시간은 상기 제 1 시간보다 긴 시간일 수 있다.The additional performance analysis may include calculating a network performance indicator in units of a second time, and the second time may be longer than the first time.

상기 분석정보 수집장치는 상기 트랜잭션 블록에 포함되는 통계 정보에서 처리해야 할 시간 단위인 상기 제 1 시간 및 상기 트랜잭션 블록에 포함되는 트랜잭션 리스트에 포함되는 요소정보를 특정하여 상기 패킷 분석 장치로 통지할 수 있다.The analysis information collection device may specify the first time, which is a time unit to be processed from statistical information included in the transaction block, and element information included in a transaction list included in the transaction block, and notify the packet analysis device. there is.

본 발명의 대용량 네트워크 모니터링을 위한 실시간 패킷 분석 장치 및 방법에 따르면, 대용량 패킷이 송수신되는 네트워크 환경(클라우드 환경 포함)에서 네트워크 성능 문제에 선제적인 대응이 이루어지게 하는 효과가 있다. According to the real-time packet analysis apparatus and method for monitoring a large-capacity network of the present invention, there is an effect of preemptively responding to network performance problems in a network environment (including a cloud environment) in which large-capacity packets are transmitted and received.

도 1은 본 발명의 일 실시예에 따른 대용량 네트워크 모니터링을 위한 실시간 패킷 분석 방법이 적용되는 시스템을 나타낸 개념도,
도 2는 본 발명의 다른 실시예에 따른 대용량 네트워크 모니터링을 위한 실시간 패킷 분석 방법이 적용되는 클라우드 환경을 나타낸 개념도,
도 3은 본 발명의 또 다른 실시예에 따른 대용량 네트워크 모니터링을 위한 실시간 패킷 분석 방법이 적용되는 시스템을 나타낸 개념도,
도 4는 본 발명의 일 실시예에 따른 패킷 분석 모듈의 구성을 구체적으로 나타낸 상세블록도,
도 5는 도 4의 패킷 분석 모듈에서 생성되는 트랜잭션 블록의 구성을 구체적으로 나타낸 개념도,
도 6은 도 5의 트랜잭션 블록 내의 트랜잭션 리스트의 상세 요소 정보의 구성을 구체적으로 나타낸 테이블,
도 7 및 도 8은 본 발명의 일 실시예에 따른 패킷 분석 모듈에서 산출되는 사용자와 서버 간의 네트워크 RTT(Round Trip Time) 지표를 나타낸 개념도,
도 9는 본 발명의 일 실시예에 따른 패킷 분석 모듈에서 산출되는 지연지표를 나타낸 개념도,
도 10은 본 발명의 일 실시예에 따른 패킷 분석 모듈에서 산출되는 서버 응답대기 세션 수 지표를 나타낸 개념도,
도 11은 본 발명의 일 실시예에 따른 패킷 분석 모듈에서 산출되는 CPS/TPS(Connection Per Second/Transaction Per Second) 지표를 나타낸 개념도,
도 12는 도 5의 트랜잭션 블록 내의 텍스트 리스트(text list)의 구성을 구체적으로 나타낸 테이블,
도 13은 도 5의 트랜잭션 블록 내의 통계 정보의 구성을 구체적으로 나타낸 테이블,
도 14는 패킷 분석 모듈로부터의 분석 정보를 수집하는 분석 정보 수집 장치의 구성을 구체적으로 설명하기 위한 상세블록도이다.
1 is a conceptual diagram showing a system to which a real-time packet analysis method for monitoring a large capacity network according to an embodiment of the present invention is applied;
2 is a conceptual diagram showing a cloud environment to which a real-time packet analysis method for monitoring a large capacity network according to another embodiment of the present invention is applied;
3 is a conceptual diagram showing a system to which a real-time packet analysis method for monitoring a large capacity network according to another embodiment of the present invention is applied;
4 is a detailed block diagram showing the configuration of a packet analysis module according to an embodiment of the present invention in detail;
5 is a conceptual diagram specifically showing the configuration of a transaction block generated by the packet analysis module of FIG. 4;
6 is a table specifically showing the configuration of detailed element information of a transaction list in the transaction block of FIG. 5;
7 and 8 are conceptual diagrams showing network RTT (Round Trip Time) indicators between a user and a server calculated by a packet analysis module according to an embodiment of the present invention;
9 is a conceptual diagram showing a delay index calculated by a packet analysis module according to an embodiment of the present invention;
10 is a conceptual diagram showing an indicator of the number of sessions waiting for a server response calculated by a packet analysis module according to an embodiment of the present invention;
11 is a conceptual diagram showing CPS/TPS (Connection Per Second/Transaction Per Second) indicators calculated by a packet analysis module according to an embodiment of the present invention;
12 is a table specifically showing the configuration of a text list in the transaction block of FIG. 5;
13 is a table specifically showing the configuration of statistical information in the transaction block of FIG. 5;
14 is a detailed block diagram for specifically explaining the configuration of an analysis information collection device that collects analysis information from a packet analysis module.

본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다.Since the present invention can make various changes and have various embodiments, specific embodiments are illustrated in the drawings and described in detail.

그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.However, this is not intended to limit the present invention to specific embodiments, and should be understood to include all modifications, equivalents, and substitutes included in the spirit and scope of the present invention.

제 1, 제 2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제 1 구성요소는 제 2 구성요소로 명명될 수 있고, 유사하게 제 2 구성요소도 제 1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.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. 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 terms and/or include any combination of a plurality of related recited items or any of a plurality of related recited items.

어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. It is understood that when an element is referred to as being "connected" or "connected" to another element, it may be directly connected or connected to the other element, but other elements may exist in the middle. It should be. On the other hand, when an element is referred to as “directly connected” or “directly connected” to another element, it should be understood that no other element exists in the middle.

본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.Terms used in this application are only used to describe specific embodiments, and are not intended to limit the present invention. Singular expressions include plural expressions unless the context clearly dictates otherwise. In this application, the terms "include" or "have" are intended to designate that there is a feature, number, step, operation, component, part, or combination thereof described in the specification, but one or more other features It should be understood that the presence or addition of numbers, steps, operations, components, parts, or combinations thereof is not precluded.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가진 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.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 a meaning consistent with the meaning in the context of the related art, and unless explicitly defined in the present application, they should not be interpreted in an ideal or excessively formal meaning. don't

이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 본 발명을 설명함에 있어 전체적인 이해를 용이하게 하기 위하여 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다. Hereinafter, with reference to the accompanying drawings, preferred embodiments of the present invention will be described in more detail. In order to facilitate overall understanding in the description of the present invention, the same reference numerals are used for the same components in the drawings, and redundant descriptions of the same components are omitted.

도 1은 본 발명의 일 실시예에 따른 대용량 네트워크 모니터링을 위한 실시간 패킷 분석 방법이 적용되는 시스템을 나타낸 개념도이다. 도 1에 도시된 바와 같이, 본 발명의 일 실시예에 따른 시스템은 클라이언트 단말(110-1~110-N), 네트워크(120), 서버단(130-1~130-N), 패킷 분석 모듈(140-1~140-N) 및 분석 정보 수집 장치(150)를 포함할 수 있다.1 is a conceptual diagram illustrating a system to which a real-time packet analysis method for monitoring a large capacity network according to an embodiment of the present invention is applied. As shown in FIG. 1, a system according to an embodiment of the present invention includes client terminals 110-1 to 110-N, a network 120, a server terminal 130-1 to 130-N, and a packet analysis module. (140-1 to 140-N) and the analysis information collection device 150.

도 1을 참조하면, 클라이언트 단말(110-1~110-N)은 네트워크(120)를 통해 특정 웹 사이트(web site) 및/또는 웹 애플리케이션(web application)에 접속한다. 이때, 접속은 상기 웹 사이트 및/또는 웹 애플리케이션과 연관된 url(Uniform Resource Locator)을 매개로 이루어질 수 있다. 상기 url로 접속하면, 이를 해당 주소에서의 동작을 실행하는 서버단(130-1~130-N)과 통신한다. 클라이언트 단말(110-1~110-N)은 웹 브라우저를 통해 특정 웹 페이지에 접속하여 원하는 페이지 또는 애플리케이션의 실행을 요청한다. 상기 요청은, HTML 문서와 같은 정적인 콘텐츠뿐만 아니라, 동영상, 오디오와 같은 멀티미디어 콘텐츠, 및/또는 기타 다른 애플리케이션의 실행을 포함할 수 있다. Referring to FIG. 1 , client terminals 110 - 1 to 110 -N access a specific web site and/or web application through a network 120 . At this time, access may be made through a url (Uniform Resource Locator) associated with the web site and/or web application. When connected to the above url, it communicates with the server stages (130-1 to 130-N) that execute the operation at the corresponding address. The client terminals 110-1 to 110-N 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.

본 발명의 일 실시예에 따르면, 클라이언트 단말(110-1~110-N)은 사용자에 의해 동작하고, 통신 기능(인터넷 접속 및 웹 브라우저 실행 기능 포함) 및 데이터 처리 기능을 포함하는 임의의 장치를 포함할 수 있다. 클라이언트 단말(110-1~110-N)은, 이동국(MS), 사용자 장비(UE; User Equipment), 사용자 터미널(UT; User Terminal), 무선 터미널, 액세스 터미널(AT), 터미널, 고정 또는 이동 가입자 유닛(Subscriber Unit), 가입자 스테이션(SS; Subscriber Station), 셀룰러 전화, 무선 기기(wireless device), 무선 통신 디바이스, 무선송수신유닛(WTRU; Wireless Transmit/Receive Unit), 이동 노드, 모바일, 모바일국, 개인 휴대 정보 단말(personal digital assistant; PDA), 스마트폰, 랩톱, 넷북, 개인용 컴퓨터, 무선 센서, 소비자 전자기기(CE) 또는 다른 용어들로서 지칭될 수 있다. 클라이언트 단말(110-1~110-N)의 다양한 실시예들은 셀룰러 전화기, 무선 통신 기능을 가지는 스마트 폰, 무선 통신 기능을 가지는 개인 휴대용 단말기(PDA), 무선 모뎀, 무선 통신 기능을 가지는 휴대용 컴퓨터, 무선 통신 기능을 가지는 디지털 카메라와 같은 촬영장치, 무선 통신 기능을 가지는 게이밍 장치, 무선 통신 기능을 가지는 음악저장 및 재생 가전제품, 무선 인터넷 접속 및 브라우징이 가능한 인터넷 가전제품뿐만 아니라 그러한 기능들의 조합들을 통합하고 있는 휴대형 유닛 또는 단말기들을 포함할 수 있으나, 이에 한정되는 것은 아니다. According to an embodiment of the present invention, the client terminals 110-1 to 110-N are arbitrary devices that are operated by users and include communication functions (including Internet access and web browser execution functions) and data processing functions. can include The client terminals 110-1 to 110-N include a mobile station (MS), user equipment (UE), user terminal (UT), wireless terminal, access terminal (AT), terminal, fixed or mobile. Subscriber Unit, Subscriber Station (SS), Cellular Telephone, Wireless Device, Wireless Communication Device, Wireless Transmit/Receive Unit (WTRU), Mobile Node, Mobile, Mobile Station , personal digital assistant (PDA), smartphone, laptop, netbook, personal computer, wireless sensor, consumer electronic device (CE), or other terms. Various embodiments of the client terminals 110-1 to 110-N include a cellular phone, a smart phone with a wireless communication function, a personal digital assistant (PDA) with a wireless communication function, a wireless modem, a portable computer with 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, a music storage and playback home appliance having a wireless communication function, and an Internet home appliance capable of wireless Internet access and browsing, as well as integrating combinations of such functions. It may include portable units or terminals that are being used, but are not limited thereto.

각 클라이언트 단말(110-1~110-N)은 사용자 입력을 수신하기 위한 마우스 및 키보드와 같은 입력 수단들 및 디스플레이 유닛과 같은 출력 수단들을 포함하는 사용자 인터페이스를 포함할 수 있다. 상기 사용자 인터페이스는 사용자에게 정보를 제공하기 위한 그래픽 사용자 인터페이스(GUI: Graphical User Interface)를 포함할 수 있다. 또한, 사용자가 네트워킹된 장치들과 상호작용하기 위한 통신 인터페이스를 포함한다. Each of the client terminals 110-1 to 110-N may include a user interface including input means such as a mouse and keyboard for receiving user input and output means such as a display unit. The user interface may include a graphical user interface (GUI) for providing information to a user. It also includes a communication interface for the user to interact with the networked devices.

네트워크(120)는 유선 및/또는 무선 네트워크를 포함한다. 네트워크(120)는 인터넷(internet)을 포함할 수 있다. 네트워크(120)는 다양하게 접속된 클라이언트 단말(110-1~110-N)과 서버단(130-1~130-N) 간에 데이터를 송신하고 수신하기 위해 물리층(매체)을 제공하는 시리얼 버스를 포함할 수 있다. 여기서 시리얼 버스는 1394 시리얼 버스를 포함할 수 있다. 이는 시간-다중송신(Time-multiplexed) 오디오/비디오(A/V) 스트림 및 표준 아이피(IP: Internet Protocol) 통신(예컨대, IETF REC 2734)을 양쪽 모두 지원할 수 있고, 다만 반드시 이에 한정되는 것은 아니다. 네트워크(120)는 비-1394 네트워크(예컨대, 이더넷 등)도 포함할 수 있다. 또한, 네트워크(120)는 홈 네트워크를 포함할 수도 있다. 각 클라이언트 단말(110-1~110-N)들은 네트워크(120)에서 하나 이상의 서버 장치들(130-1~130-N)과 통신할 수 있다. Network 120 includes wired and/or wireless networks. Network 120 may include the Internet. The network 120 uses a serial bus that provides a physical layer (medium) to transmit and receive data between variously connected client terminals 110-1 to 110-N and server terminals 130-1 to 130-N. can include 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. Each of the client terminals 110-1 to 110-N may communicate with one or more server devices 130-1 to 130-N in the network 120.

서버단(130-1~130-N)은 사용자에게 서비스들을 제공하기 위해 네트워크(120) 자원을 이용하여 사용자들의 요청에 응답한다. 이는 정보(데이터)의 리턴(return)을 포함한다. 또한, 기능의 성능(예컨대, 기계적인 기능) 및 상태의 리턴, 데이터 스트림 및 상태의 리턴, 데이터 스트림의 수용 및 상태의 리턴, 또는 각종 행위에 대한 상태의 저장을 포함한다. 서버단(130-1~130-N)은 그 자신의 하드웨어의 제어를 구현하기 위해, 주문형, 내장형, 제어 프로그램을 포함할 수 있다. Server stages 130-1 to 130-N respond to user requests by using network 120 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. Server stages 130-1 to 130-N may include custom, built-in, and control programs to implement control of their own hardware.

서버단(130-1~130-N)은 특정 웹 사이트 및/또는 웹 애플리케이션과 연관될 수 있고, 각 웹 사이트 및/또는 웹 애플리케이션에서 수행되는 작업과 관련된 연산 및 데이터 관리를 수행한다. 서버단(130-1~130-N)은 클라이언트 단말들(110-1~110-N) 및 다른 서버들(130-1~130-N)과 상호작용할 수 있다. 예시적인 서비스들은 MPEG 소싱/싱킹(sourcing/sinking) 및 디스플레이 서비스를 포함할 수 있다. The server stages 130-1 to 130-N may be associated with a specific web site and/or web application, and perform operations and data management related to work performed in each web site and/or web application. The server nodes 130-1 to 130-N may interact with the client terminals 110-1 to 110-N and other servers 130-1 to 130-N. Exemplary services may include MPEG sourcing/sinking and display services.

서버단(130-1~130-N)은 네트워크(120)를 통해 장치의 명령 및 제어를 위한 인터페이스를 제공하는 인터페이스 데이터(예컨대, HTML, XML, 자바, 자바스크립트, GIF, JPEG, MPEG, 그래픽 파일 또는 의도한 목적에 사용되는 임의의 다른 포맷)와 같은 정보를 처리할 수 있다. 특정 실시예에서, 각 서버들(130-1~130-N)은 그 장치의 명령 및 제어를 제공하는 하나 이상의 하이퍼텍스트 마크업 언어(HTML: Hypertext Markup Language)와 같은 정보를 처리할 수 있다. 서버단(130-1~130-N)은 브라우저 기법을 이용하여 HTML 페이지를 나타내는 인터넷 표준을 사용한다. Server stages 130-1 to 130-N provide interface data (e.g., HTML, XML, Java, JavaScript, GIF, JPEG, MPEG, graphic information as a file or any other format used for its intended purpose). In certain embodiments, each of the servers 130-1 through 130-N may process information such as one or more Hypertext Markup Language (HTML) that provides command and control of the device. Server stages 130-1 to 130-N use Internet standards to represent HTML pages using a browser technique.

본 발명의 실시예에 따르면, 서버단(130-1~130-N)은 웹 서버(130-1), 앱 서버(130-2: APP server), 및 데이터베이스 서버(130-N: DB 서버)를 포함할 수 있다. 다만, 반드시 서버단이 3개 서버의 조합으로만 구성되어야 하는 것은 아니다. 웹 서버(130-1)만 존재하고, 앱 서버(130-2) 및 데이터베이스 서버(130-N)는 존재하지 않는 것도 유효하고, 또는 앱 서버(130-2) 하나만 구성되는 것도 가능하고, 기타 다양한 형태 및 계층의 서버 조합도 가능하다. 서버단(130-1~130-N)을 구성하는 각각의 서버에 대한 설명은 추후 하기로 한다. According to an embodiment of the present invention, the server stages 130-1 to 130-N include a web server 130-1, an app server 130-2: an APP server, and a database server 130-N: a DB server. can include However, the server side does not necessarily have to consist of only a combination of three servers. It is effective that only the web server 130-1 exists and the app server 130-2 and database server 130-N do not exist, or it is possible to configure only one app server 130-2, and other Server combinations of various types and tiers are also possible. Each server constituting the server stages 130-1 to 130-N will be described later.

서버단(130-1~130-N)은 대용량 패킷을 처리하기 위한 다수의 서버들의 군으로 형성될 수 있다. 경우에 따라, 이는 약 1000여 개가 넘는 대규모 서버 팜(server farm)의 형태로 구성될 수 있다. 이러한 대규모 서버 군에서 송수신되는 패킷들은 그 수가 너무 많기 때문에, 하나의 패킷 분석 장치로는 모든 패킷에 대한 분석이 어렵다. 이 경우, 샘플링(sampling)을 통해 분석을 수행하는 방법도 고려할 수 있지만, 샘플링을 통한 분석 결과는 샘플링의 단위에 따라 그 분석결과의 신뢰도가 결정되는 문제점이 있고, 문제 발생 이후 문제 발생의 원인을 추적하는데도 한계가 있다는 문제점이 있다. The server stages 130-1 to 130-N may be formed as a group of a plurality of servers for processing large-capacity packets. In some cases, this may be configured in the form of a large-scale server farm with more than about 1000 servers. Since the number of packets transmitted and received in such a large group of servers is too large, it is difficult to analyze all packets with one packet analysis device. In this case, a method of performing analysis through sampling may be considered, but the analysis result through sampling has a problem in that the reliability of the analysis result is determined according to the unit of sampling, and the cause of the problem is determined after the problem occurs. There is also a problem that there is a limit to tracking.

한편, 클라이언트 단말(110-1~110-N)과 서버단(130-1~130-N)의 장치들은 네트워크(120)를 통해 패킷을 주고받을 수 있다. 본 명세서 상에서는, 이들을 서버와 클라이언트로 구분하지 않고 하나의 개체 또는 엔티티(entity)라고 부를 수 있다. Meanwhile, devices of the client terminals 110-1 to 110-N and the server terminals 130-1 to 130-N may transmit and receive packets through the network 120. In this specification, they may be referred to as one object or entity without being divided into a server and a client.

패킷 분석 장치(140-1~140-N)는 서버단(130-1~130-N)을 구성하는 다수의 서버들 및/또는 클라이언트 간에 송수신되는 패킷들을 분석하여 분석 결과를 분석정보 수집장치(150)로 제공한다. 특히, 상당히 많은 수의 서버들(130-1~130-N)에서의 패킷들을 빠짐없이 모두 분석하기 위해서는, 해당 서버 각각에 대응하는 패킷 분석 장치(140-1~140-N)가 개별 서버(130-1~130-N)에 임베디드된(embedded) 형태로 구성되어 1차적인 패킷 수집 및 분석을 수행하고, 그 결과를 2차적으로 최종 분석하는 분석정보 수집장치(150)로 제공하는 형태가 바람직하다. 즉, 분석을 이원화하여 실시간 분석이 이루어지도록 하는 것이 바람직하다. The packet analysis devices 140-1 to 140-N analyze packets transmitted and received between a plurality of servers and/or clients constituting the server ends 130-1 to 130-N, and the analysis results are analyzed by an analysis information collection device ( 150) is provided. In particular, in order to analyze all of the packets from a fairly large number of servers 130-1 to 130-N, the packet analysis devices 140-1 to 140-N corresponding to each server are individually 130-1 to 130-N) to perform primary packet collection and analysis, and provide the results to the analysis information collection device 150 for secondary final analysis. desirable. That is, it is desirable to perform real-time analysis by dualizing the analysis.

이러한 실시예에서, 패킷 분석 장치(140-1~140-N)는 소프트웨어적으로 구성되어, 서버 장치 내에서 하나의 기능블록을 이룰 수 있다. 별도의 하드웨어 장치가 아니기 때문에, 이를 패킷 분석 모듈 또는 모듈이라 부를 수 있다. 패킷 분석 모듈(140-1~140-N)은 대용량 데이터를 처리하는 서버단(130-1~130-N)에서 실시간 분석을 효율적으로 수행하기 위해 임베딩된다. 서버와 모듈 간의 대응관계는 1:1이 적합하나, 1:다(多)의 관계도 가능하다. 예컨대, 둘 이상의 서버들에 대해 하나의 패킷 분석 모듈이 대응될 수도 있고, 그 반대의 경우도 가능하다. In this embodiment, the packet analysis devices 140-1 to 140-N are configured in terms of software and may form one functional block in the server device. Since it is not a separate hardware device, it can be called a packet analysis module or module. The packet analysis modules 140-1 to 140-N are embedded to efficiently perform real-time analysis in the server stages 130-1 to 130-N that process large amounts of data. A 1:1 correspondence relationship between the server and the module is suitable, but a 1:many relationship is also possible. For example, one packet analysis module may correspond to two or more servers, and vice versa.

대용량 네트워크에서 송수신되는 다수의 패킷들을 실시간 분석하기 위해, 임베디드된 형태의 모듈(140-1~140-N)은 패킷에 대한 1차 분석 결과를 분석정보 수집장치(150)로 제공하고, 1차 분석 결과를 가지고 2차적으로 분석정보 수집장치(150)가 보다 고차원적인 분석 및 사용자 요청에 대한 응답을 수행한다. 이러한 의미에서, 패킷 분석 모듈(140-1~140-N)은 1차 분석 장치로, 분석정보 수집장치(150)는 2차 분석 장치로 불릴 수 있다. 양자간에는 분석결과를 효율적으로 공유하기 위해, 전체 분석 과정을 나눌 필요가 있다. 그리고, 그 내용을 공유하여 전체적으로 완전한 분석이 이루어지도록 하는 것이 바람직하다. 분석정보 수집장치(150)는 모듈에서의 1차 패킷 분석 방법 및 분석 과정을 공유한다. 그리고, 1차 분석 결과의 송수신 및 데이터 저장 등 연계된 작업을 효율적으로 처리하기 위해, 서로간에 동기를 맞추는 것이 바람직하다. 즉, 전체적인 패킷 분석을 패킷 분석 모듈(140-1~140-N)과 분석정보 수집장치(150) 간에 분할하여 수행하되, 중복이 최대한 이루어지지 않고 분산하여 패킷에 대한 분석이 이루어질 수 있도록 하는 것이 바람직하다. In order to analyze a plurality of packets transmitted and received in a large-capacity network in real time, the embedded modules (140-1 to 140-N) provide the first analysis result of the packet to the analysis information collection device 150, and the first With the analysis result, the analysis information collection device 150 secondarily performs higher-level analysis and responds to user requests. In this sense, the packet analysis modules 140-1 to 140-N may be referred to as primary analysis devices, and the analysis information collection device 150 may be referred to as secondary analysis devices. In order to efficiently share analysis results between the two parties, it is necessary to divide the entire analysis process. And, it is desirable to share the contents so that a complete analysis can be made as a whole. The analysis information collection device 150 shares the primary packet analysis method and analysis process in the module. In addition, in order to efficiently process related tasks such as transmission and reception of primary analysis results and data storage, it is desirable to synchronize with each other. That is, the overall packet analysis is divided between the packet analysis modules 140-1 to 140-N and the analysis information collection device 150, but it is possible to analyze the packets by distributing the analysis without overlapping as much as possible. desirable.

패킷 분석 모듈(140-1~140-N)에서는 자신이 삽입된 개별 서버를 대상으로 클라이언트 또는 다른 서버와 주고받은 패킷들에 대한 1차적인 분석을 수행하여 분석정보 수집장치(150)로 제공한다. 분석정보 수집장치(150)는 1차적인 분석에 의해 생성된 개별 트랜잭션 블록들(142)을 수집하여 추가적인 분석 및 분석 결과에 따른 응용(필터링, 경고, 브라우징 등)을 수행한다.The packet analysis modules 140-1 to 140-N perform primary analysis on packets exchanged with clients or other servers for individual servers into which they have been inserted, and provide them to the analysis information collection device 150. . The analysis information collection device 150 collects the individual transaction blocks 142 generated by the primary analysis and performs additional analysis and applications (filtering, warning, browsing, etc.) according to the analysis results.

패킷 분석 모듈(140-1~140-N)은 패킷을 직접 수집하여 분석할 수도 있고, 이를 미러링(mirroring)하여 미러링된 패킷을 분석할 수도 있다. 미러링된 패킷이라고 기재되어 있어도, 직접 수집한 패킷을 이용하는 것을 고려할 수 있고 반대의 경우도 고려될 수 있음은 본 발명이 속하는 기술분야의 통상의 기술자에게는 자명한 것이다. The packet analysis modules 140-1 to 140-N may directly collect and analyze packets, or may analyze mirrored packets by mirroring them. Even if it is described as a mirrored packet, it is obvious to those skilled in the art that directly collected packets can be used and vice versa.

패킷 분석 모듈(140-1~140-N)은 미러링된 패킷에 포함된 각종 정보들(예컨대, 소스 ID(source id), 목적지 ID(destination id) 및 시간 정보(time) 등)을 기반으로 네트워크 서비스의 성능을 나타내는 각종 지표들을 실시간으로 산출할 수 있다. 지표의 산출은 트랜잭션(transaction) 단위로 이루어질 수 있다. 산출되는 지표는 약 30여 가지가 될 수 있다. 모듈(140-1~140-N)은 이를 데이터 블록(data block) 형태로 형성하여 분석정보 수집장치(150)로 제공한다. 이러한 데이터 블록을 트랜잭션 블록(142)이라고 부를 수 있다.The packet analysis modules 140-1 to 140-N perform network analysis based on various pieces of information included in mirrored packets (eg, source ID, destination ID, and time information). Various indicators representing service performance can be calculated in real time. Calculation of indicators may be performed in units of transactions. About 30 indicators can be calculated. The modules 140-1 to 140-N form data blocks and provide them to the analysis information collection device 150. This block of data may be referred to as a transaction block 142 .

앞서 설명한 바와 같이, 패킷 분석 모듈(140-1~140-N)는 실시간성을 중요시하는 환경에서 사용될 수 있다. 모듈(140-1~140-N)은 패킷들을 1차적으로 트랜잭션 단위로 분석하고, 분석된 내용을 분석정보 수집장치(150)로 제공한다. 이때, 모듈(140-1~140-N)은 기설정된 일정 기간(예를 들어, 10초, 20초 등) 동안의 패킷들을 수집하고, 수집된 패킷들에 포함된 헤더 정보를 분석할 수 있다. 그리고는, 패킷 헤더 정보를 트랜잭션 단위로 분석하여 트랜잭션 블록(142)을 생성한다. 상기 트랜잭션 블록(142)에는 한 개 또는 복수 개의 트랜잭션에 대한 정보가 포함되어 있다. 상기 한 개 또는 복수 개의 트랜잭션은 10초 내에 처리할 수 있는 트랜잭션일 수 있다. 본 명세서 상에서 10초라고 기재된 부분은 사용자 설정에 의해 설정된 다른 임의의 일정 시간으로 대체되어 해석될 수 있음은 자명한 것이다. 예를 들어, 1초, 2초, 5초, 8초, 10초, 15초, 20초, 30초 등의 시간으로 대체되어도 무방하다. 다만, 8초 내지 12초 단위로 분석을 수행하는 것이 효율적일 수 있다. 보다 바람직하게는, 10초 단위로 분석하는 것이 좋다.As described above, the packet analysis modules 140-1 to 140-N may be used in an environment where real-time is important. The modules 140-1 to 140-N primarily analyze packets in transaction units and provide the analyzed information to the analysis information collection device 150. At this time, the modules 140-1 to 140-N may collect packets for a predetermined period of time (eg, 10 seconds, 20 seconds, etc.) and analyze header information included in the collected packets. . Then, the transaction block 142 is generated by analyzing the packet header information in units of transactions. The transaction block 142 includes information on one or a plurality of transactions. The one or more transactions may be transactions that can be processed within 10 seconds. It is obvious that the part described as 10 seconds in this specification can be interpreted by replacing it with any other predetermined time set by user setting. For example, it may be replaced with times such as 1 second, 2 seconds, 5 seconds, 8 seconds, 10 seconds, 15 seconds, 20 seconds, and 30 seconds. However, it may be efficient to perform the analysis in units of 8 to 12 seconds. More preferably, it is good to analyze every 10 seconds.

트랜잭션 블록(142)에는 10초 동안의 트랜잭션들에 대한 정보가 포함되어 있다. 즉, 10초 내에 처리할 수 있는 트랜잭션을 분석하여 분석정보 수집장치(150)로 전달한다. 모듈(140-1~140-N)은 이러한 트랜잭션 블록(142)들을 일정시간(예를 들어, 10초) 간격으로 생성하여 분석정보 수집장치(150)로 제공한다. 즉, 실시간이라고 하지만, 여기서 실시간은 "준실시간"이라고 해석될 수 있고, 실제로는 10초 단위로 데이터(패킷들)를 모았다가 이를 분석한 내용을 기반으로 블록을 생성하여 다른 장치로 전달한다고 볼 수 있다. The transaction block 142 includes information about transactions for 10 seconds. That is, a transaction that can be processed within 10 seconds is analyzed and transmitted to the analysis information collection device 150 . The modules 140-1 to 140-N generate these transaction blocks 142 at regular time intervals (eg, 10 seconds) and provide them to the analysis information collection device 150. In other words, it is called real-time, but real-time here can be interpreted as "quasi-real-time", and in fact, it can be seen that data (packets) are collected in units of 10 seconds, and blocks are generated based on the analysis and transmitted to other devices. can

트랜잭션 블록(142)에는, 약 30여 가지의 정보가 포함될 수 있다. 여기에는, 전송측 엔티티(클라이언트 단말 또는 서버단의 서버들 중 하나) 및 수신측 엔티티(역시, 클라이언트 단말 또는 서버단의 서버들 중 하나)의 IP 및 포트(port) 정보, 트랜잭션과 관련된 시간 정보, 트랜잭션 요청 및 응답 패킷과 관련된 정보, 트랜잭션과 관련된 세션의 실시간 데이터 전송 속도 정보, 트랜잭션 상태 정보, 및 트랜잭션 결과 정보가 포함되어 있을 수 있다. 이러한 상세 정보에 대해서는, 도 5를 통해 보다 상세히 설명한다. About 30 pieces of information may be included in the transaction block 142 . This includes IP and port information of the transmitting entity (either the client terminal or server-side servers) and the receiving-side entity (also either the client terminal or server-side servers), and time information related to the transaction. , information related to transaction request and response packets, real-time data transfer rate information of a session related to a transaction, transaction status information, and transaction result information. This detailed information will be described in more detail with reference to FIG. 5 .

트랜잭션 블록(142)은 장치에 부담이 가지 않는 선에서 데이터 처리를 수행하고 그에 따라 최소한의 실시간성을 보장하기 위해, 적절한 크기로 생성되는 것이 바람직하다. 그 크기는 2.2MB 미만의 크기를 갖는 것이 바람직하다. 이러한 크기 및 규격은 실시간성의 보장과 패킷 분석 정보의 다양성(그에 따른 네트워크 모니터링의 정확성)과의 상관관계를 고려할 때, 매우 중요하게 다뤄져야할 필요가 있다. 패킷 분석을 통해 100여 개가 넘는 성능지표를 추출할 수 있지만, 트랜잭션 블록(142)은 대용량 네트워크 및 실시간 분석이라는 조건을 고려할 때, 비교적 제공하는 정보를 단순화하여 장치(150)로 제공된다. 여기에는, 기초 통계(예를 들어, 약 10초 동안의 트랜잭션에 대한 데이터 전송 속도, 지연, 에러 관련 통계를 포함함)가 함께 제공된다. 일 예에서, 이러한 트랜잭션 블록(142)에는 약 10000개 정도의 트랜잭션에 대한 정보가 포함될 수 있다. 하나의 트랜잭션에 있어서, 산출되는 지표는 120가지의 종류의 상세 정보(후보 요소 정보)들 중 필수적이라 여겨지는 일부의 지표가 포함될 수 있다. The transaction block 142 is preferably created in an appropriate size in order to perform data processing in a line that does not burden the device and to ensure minimum real-time performance accordingly. Its size is preferably less than 2.2 MB. These sizes and specifications need to be treated very seriously when considering the correlation between the guarantee of real-time and the diversity of packet analysis information (accuracy of network monitoring accordingly). Although more than 100 performance indicators can be extracted through packet analysis, the transaction block 142 is provided to the device 150 after relatively simplifying the provided information, considering the conditions of large-capacity network and real-time analysis. It comes with basic statistics (including, for example, data transfer rates, delays, and errors related statistics for transactions lasting about 10 seconds). In one example, the transaction block 142 may include information about about 10,000 transactions. In one transaction, the calculated indicator may include some indicators considered essential among 120 types of detailed information (candidate element information).

한편, 트랜잭션 블록(142)은 HTTP(Hypertext Transfer Protocol)를 이용하여 일정 시간(예를 들어, 8초 내지 12초, 보다 바람직하게는 10초) 단위로 분석정보 수집장치(150)로 제공될 수 있다. Meanwhile, the transaction block 142 may be provided to the analysis information collection device 150 in units of a predetermined time (eg, 8 to 12 seconds, more preferably 10 seconds) using HTTP (Hypertext Transfer Protocol). there is.

분석정보 수집장치(150)는 실시간으로 제공되는 트랜잭션 블록(142)를 수신하는 장치이다. 분석정보 수집장치(150)는 분석정보를 추가적으로 수행하는 별도의 장치로 구현될 수도 있다. 경우에 따라, 일반 클라이언트 단말(110-1~110-N)과 같이 네트워크(120)를 통해 트랜잭션 블록(142) 정보를 수신하는, 사용자 측의 단말장치로 구현될 수도 있다. 또한, 분석정보 수집장치(150)는 2차로 트랜잭션 블록(142)을 추가 분석한 후, 해당 정보를 사용자 단의 단말(110-1~110-N)으로 제공하여, 사용자에게 네트워크 성능 및 보안과 관련된 사항을 제공하는 장치로서 동작할 수도 있다. The analysis information collection device 150 is a device that receives the transaction block 142 provided in real time. The analysis information collection device 150 may be implemented as a separate device that additionally performs analysis information. In some cases, it may be implemented as a user-side terminal device that receives transaction block 142 information through the network 120 like the general client terminals 110-1 to 110-N. In addition, the analysis information collection device 150 additionally analyzes the transaction block 142 secondly, and then provides the corresponding information to the terminals 110-1 to 110-N of the user, providing users with network performance and security. It can also act as a device that provides related information.

분석정보 수집장치(150)는 트랜잭션 블록(142)을 기반으로 2차적으로 네트워크 성능과 관련된 지표를 산출하여, 어떤 구간에 속도 지연, 대기 지연, 트래픽 초과, 에러 발생과 같은 문제가 있는지 여부를 서버 단의 특정 구간 별로 판단하고, 판단 결과를 운영자 또는 관리자가 확인할 수 있도록 시각화할 수 있다. 여기서, 운영자 또는 관리자는 네트워크 운영자 또는 네트워크 관리자를 포함한다. 이를 통해, 에러 구간을 신속하게 파악하고, 이를 기반으로 에러구간에 대한 대응이 신속하게 이루어질 수 있도록 한다. The analysis information collection device 150 secondarily calculates an index related to network performance based on the transaction block 142, and determines whether there are problems such as speed delay, waiting delay, traffic excess, and error occurrence in a section. It can be judged for each specific section of the stage and visualized so that the operator or manager can check the judgment result. Here, the operator or manager includes a network operator or network manager. Through this, the error section is quickly identified, and based on this, a response to the error section can be quickly made.

다른 실시예에서, 분석정보 수집장치(150) 없이, 패킷 분석 모듈(140-1~140-N)만 존재하는 시스템이 있을 수 있다. 이 경우, 트랜잭션 블록(142) 형태의 분석결과가 제공될 수 있다. In another embodiment, there may be a system in which only the packet analysis modules 140-1 to 140-N exist without the analysis information collection device 150. In this case, an analysis result in the form of a transaction block 142 may be provided.

한편, 패킷 분석 모듈(140-1~140-N)과 분석정보 수집장치(150)는 패킷 분석 결과를 가지고 악의적인 사용자로부터의 접근(보안 이슈 관련)을 추적할 수 있고, 이에 대한 대응도 실시간으로 이루어질 수 있도록 한다. Meanwhile, the packet analysis modules 140-1 to 140-N and the analysis information collection device 150 can track access from malicious users (related to security issues) with the packet analysis results, and respond to them in real time. to make it possible to

서버단(130-1~130-N)에 대해 보다 상세히 설명하면, 웹 서버(130-1)는 웹 클라이언트(Web Client)에게 요청된 컨텐츠를 제공하는 서버이다. 웹 서버(130-1)는 정적인 HTML이나 JPEG, GIF같은 이미지를 HTTP 프로토콜을 통해 웹 브라우저에 제공할 수 있다. 경우에 따라, 웹 서버(130-1)도 내부 애플리케이션을 동작시킬 수 있는 컨테이너를 내장할 수 있다. The server stages 130-1 to 130-N will be described in more detail. The web server 130-1 is a server that provides requested content to web clients. The web server 130-1 may provide images such as static HTML, JPEG, or GIF to a web browser through an HTTP protocol. In some cases, the web server 130-1 may also embed a container capable of operating an internal application.

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

본 발명의 실시예에 따르면, 웹 서버(130-1)와 WAS(130-2)의 기능적 분류를 통해 효과적인 분산을 유도할 수 있다. 정적인 데이터는 구조적으로 앞에 존재하는 웹 서버(130-1)에서 처리하고, 동적인 데이터는 뒷단의 WAS(130-2)가 처리할 수 있다. 예컨대, 사용자의 요청에 대해서 정적 데이터인 HTML과 자바스크립트 파일, CSS, 이미지 등을 앞단의 웹 서버(130-1)에 위치시켜 처리함으로써 WAS(130-2)로 서비스 요청이 넘어가지 않게 한다. 또한, 웹 애플리케이션 서비스를 위치적으로 뒤편에 존재하는 WAS(130-2)에 넘겨줌으로써 WAS(130-2)는 웹 애플이케이션의 수행에 집중할 수 있다. 웹 서버(130-1)에서 처리할 것과 WAS(130-2)에게 넘겨질 것을 처리하는 방식은 웹 서버(130-1)의 컨피규어레이션(Configuration)을 통해 처리할 수 있다. 특정 확장자나 디렉토리 업무를 WAS(130-2)로 넘길지 여부는 웹 서버(130-1)에서 처리한다.According to an embodiment of the present invention, effective distribution can be induced through functional classification of the web server 130-1 and the WAS 130-2. Static data can be structurally processed by the web server 130-1 in the front, and dynamic data can be processed by the WAS 130-2 in the back. For example, with respect to a user's request, static data such as HTML, JavaScript files, CSS, images, etc. are placed and processed in the front web server 130-1 to prevent the service request from passing to the WAS 130-2. In addition, by handing over the web application service to the WAS 130-2 located behind it, the WAS 130-2 can focus on performing the web application. A method of processing what is to be processed by the web server 130-1 and what is to be handed over to the WAS 130-2 can be processed through the configuration of the web server 130-1. The web server 130-1 handles whether to transfer specific extensions or directory tasks to the WAS 130-2.

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

도 2는 본 발명의 다른 실시예에 따른 네트워크 모니터링을 위한 실시간 패킷 분석 방법이 적용되는 클라우드 환경을 나타낸 개념도이다.2 is a conceptual diagram illustrating a cloud environment to which a real-time packet analysis method for network monitoring according to another embodiment of the present invention is applied.

도 2를 참조하면, 패킷 분석 모듈(220)은 클라우드 환경에서 동작할 수 있다. 클라우드 환경에는 다수의 앱 인스턴스(Application instance: 210)가 존재할 수 있다. 하나의 앱 인스턴스(210)는 하나 또는 둘 이상의 서비스를 수행하는 기능 블록일 수 있다. 이는 하나 또는 둘 이상의 기능 또는 특징 또는 서비스의 실행을 위한 소프트웨어 프로그램일 수 있다. 또는, 상기 앱 인스턴스(210)는 특정 고객(또는 가입자, 엔드 유저(end-user), 단말 또는 서버 등)에 의해 이용되는, 가상 머신(virtual machine), 프로세서 또는 컴퓨팅 설비에 의해 상기 앱 인스턴스(210) 프로그램을 실행하는 프로세스 또는 태스크(task)와 연관될 수 있다. 이는 "네트워크 기능 가상화(NFV: Network Function Virtualization) 환경에서 "가상 네트워크 기능-인스턴스(VNF-I: Virtual Network Function-Instance)에 대응하는 개념일 수 있다. 경우에 따라, 인스턴스는 앞서 설명한 개체(entity)에 대응되는 개념으로 해석될 수 있다. 앱 인스턴스(210)는 인스턴스라고 불릴 수 있다. 한편, 일 예에서, 복수 개의 인스턴스(210)들은 연결되어 하나의 서비스 체인을 형성할 수 있다. Referring to FIG. 2 , the packet analysis module 220 may operate in a cloud environment. A plurality of app instances 210 may exist in the cloud environment. One app instance 210 may be a functional block that performs one or more services. It may be a software program for the execution of one or more functions or features or services. Alternatively, the app instance 210 is used by a specific customer (or subscriber, end-user, terminal or server, etc.) by a virtual machine, processor, or computing device ( 210) may be associated with a process or task that executes a program. This may be a concept corresponding to a virtual network function-instance (VNF-I) in a network function virtualization (NFV) environment. In some cases, an instance may be interpreted as a concept corresponding to the entity described above. An app instance 210 may be referred to as an instance. Meanwhile, in one example, a plurality of instances 210 may be connected to form one service chain.

본 발명의 일 실시예에 따른 패킷 분석 모듈(220)은 하나의 인스턴스(210)에 에이전트 형태로 삽입되어 해당 인스턴스로 송수신되는 패킷을 분석할 수 있다. 패킷은 해당 인스턴스와 클라이언트 간에 송수신되는 패킷 및 다른 인스턴스와 송수신된 패킷을 포함한다. 패킷 분석 모듈(220)은 일정시간 단위로 상기 패킷들을 분석하여 트랜잭션 블록을 생성한 후, 이를 외부의 분석정보 수집장치(232)로 제공할 수 있다. The packet analysis module 220 according to an embodiment of the present invention may be inserted into one instance 210 in the form of an agent and analyze packets transmitted and received by the instance 210 . Packets include packets transmitted and received between the corresponding instance and clients and packets transmitted and received with other instances. The packet analysis module 220 may generate a transaction block by analyzing the packets in units of a predetermined time, and then provide the transaction block to the external analysis information collecting device 232 .

본 발명의 실시예에 따르면, 패킷 분석 모듈(220)은 다수 개로 구성되어 약 1000 여개의 인스턴스(210)의 패킷들을 처리할 수 있다. 이때, 인스턴스(210)와 패킷 분석 모듈(220)의 대응관계는 1:1이 바람직하나, 2:1, 3:1 또는 더 다수 대 1, 및/또는 1:2, 1:3, 1: 다수의 관계를 가질 수도 있다. 이는 서비스 체인 단위로 대응되도록 할 수 있다. 이러한 다수의 패킷 분석 모듈(220)들은 최대 100만 TPS(Transaction Per Second)를 처리할 수 있다. 즉, 인스턴스(210)당 평균 1000 TPS로 처리할 수 있다. 즉, 1M TPS로 처리할 수 있다.According to an embodiment of the present invention, the packet analysis module 220 is composed of a plurality of packets and can process packets of about 1000 instances 210 . At this time, the correspondence relationship between the instance 210 and the packet analysis module 220 is preferably 1:1, but 2:1, 3:1 or more to 1, and/or 1:2, 1:3, 1: You may have multiple relationships. This can be made to correspond on a service chain basis. These multiple packet analysis modules 220 can process up to 1 million TPS (Transaction Per Second). That is, an average of 1000 TPS per instance 210 can be processed. That is, it can be processed with 1M TPS.

또한, 모든 인스턴스(210)들에서 발생하는 모든 트랜잭션을 처리할 수 있다. 보다 구체적으로는, HTTP 관련 정보, WAS 서버와 관련된 것 및/또는 SQL(Structured Query Language) 등을 처리할 수 있다. 패킷 분석 모듈(220)은 실시간으로 클라우드 환경의 대용량 네트워크에서의 각각의 인스턴스(210)의 패킷 분석을 목표로 할 수 있다. 이에 실시간성을 담보로 하기 위해, 앞선 도 1의 설명과 같이, 일정 시간 단위로 패킷들을 수집하고, 트랜잭션 단위로 패킷 분석 결과를 도출하되, 기초적인 통계를 분석정보 수집장치(230)로 제공하는 형태로 동작하는 것이 바람직하다. 따라서, 다수(약 1000개)의 패킷 분석 모듈(220)들은 8초 내지 12초 단위(보다 바람직하게는, 10초 단위)로 약 10000개의 트랜잭션들을 처리할 수 있다. 이때, 각각의 패킷 분석 모듈(220)은 동기화를 수행하여 10초 간격으로 트랜잭션 블록을 분석 정보 수집 장치(230)로 제공한다. 즉, 트래픽 흐름의 안정성을 위해, 서로 다른 패킷 분석 모듈(220)들은 각자 정해진 시간(서로 다른 시간)에 순차적으로 10초 단위 트랜잭션 블록을 전송하도록 동기화되어 있을 수 있다. 경우에 따라 동기화된 상태에서 동시에 트랜잭션 블록을 전송할 수도 있다.Also, all transactions occurring in all instances 210 may be processed. More specifically, it can process information related to HTTP, information related to the WAS server, and/or SQL (Structured Query Language). The packet analysis module 220 may target packet analysis of each instance 210 in a large-capacity network in a cloud environment in real time. Therefore, in order to ensure real-time, as described above in FIG. 1, packets are collected in units of a certain time, and packet analysis results are derived in units of transactions, but basic statistics are provided to the analysis information collection device 230 It is desirable to operate in the form Accordingly, a plurality (about 1000) of packet analysis modules 220 may process about 10000 transactions in 8 to 12 second units (more preferably, 10 second units). At this time, each packet analysis module 220 performs synchronization and provides the transaction block to the analysis information collection device 230 at intervals of 10 seconds. That is, for stability of traffic flow, different packet analysis modules 220 may be synchronized to sequentially transmit 10-second transaction blocks at predetermined times (different times). In some cases, transaction blocks may be transmitted simultaneously in a synchronized state.

한편, 앞서 설명한 바와 같이, 복수 개의 인스턴스들(210)이 하나의 서비스 체인을 구성하는 경우, 서비스 체인을 구성하는 인스턴스들(210)에 삽입된 패킷 분석 모듈(220) 중 적어도 하나가 해당 서비스 체인으로 송수신되는 패킷들을 분석하여 트랜잭션 블록을 생성할 수 있다. 이때, 인스턴스 단위뿐만 아니라 서비스 체인 단위의 트랜잭션을 분석할 수 있다. 또한, 패킷 분석 결과를 통해 복수 개의 인스턴스들(210)이 하나의 서비스 체인으로 동작하는 것을 인지하면, 상기 복수 개의 인스턴스들(210)과 연관된 복수 개의 패킷 분석 모듈(220)들 중 일부 또는 하나만 대표로서 서비스 체인 단위로 패킷 분석을 수행하도록 할 수 있다. 이때, 개별 인스턴스(210)는 서비스 체인 단위로 동작하면서 동시에 개별적인 동작도 가능하기 때문에, 개별 인스턴스(210)에 대한 패킷 분석도 함께 이루어지도록 할 수 있다.Meanwhile, as described above, when a plurality of instances 210 constitute one service chain, at least one of the packet analysis modules 220 inserted in the instances 210 constituting the service chain is a corresponding service chain. A transaction block can be created by analyzing packets transmitted and received. At this time, it is possible to analyze transactions in service chain units as well as in instance units. In addition, if it is recognized through the packet analysis result that the plurality of instances 210 operate as one service chain, some or only one of the plurality of packet analysis modules 220 associated with the plurality of instances 210 are represented. As a service chain unit, packet analysis can be performed. At this time, since the individual instances 210 operate in units of service chains and simultaneously operate individually, packet analysis for the individual instances 210 can also be performed.

분석 정보 수집 장치(230)는 하나의 장치로 구현되되, 복수 개의 모듈(232, 234, 236, 238)을 포함할 수 있다. 상기 분석정보 수집장치(230)는 수집 모듈(232), 인덱싱 모듈(234), 경고 모듈(236) 및 브라우징 모듈(238)을 포함할 수 있다. 패킷 분석 모듈들(220)에서 생성된 트랜잭션 블록 데이터는 수집 모듈(232)에 의해 수집된다. 수집 모듈(232)은 이를 트랜잭션 블록을 수신하여 임시 파일(temporary file)로 저장하고, 이를 정렬하여 대용량 저장소(240: repository)에 저장한다. 상기 저장소(240)는 클라우드 파일 스토리지(대용량 스토리지)를 포함한다. 예를 들어, 이는 Amazon EFS(Elastic File System), EFS IA, Google Cloud, Microsoft Azure 등의 저장소로 구현될 수 있다. The analysis information collection device 230 is implemented as one device and may include a plurality of modules 232 , 234 , 236 , and 238 . The analysis information collection device 230 may include a collection module 232 , an indexing module 234 , a warning module 236 and a browsing module 238 . Transaction block data generated by packet analysis modules 220 is collected by collection module 232 . The collection module 232 receives the transaction block and stores it as a temporary file, sorts it, and stores it in the mass storage 240 (repository). The storage 240 includes cloud file storage (mass storage). For example, it can be implemented with storage such as Amazon EFS (Elastic File System), EFS IA, Google Cloud, Microsoft Azure, etc.

데이터가 저장소(240)에 저장되면, 인덱싱 모듈(234)은 저장소(240)에 저장된 데이터를 오프셋(offset)을 이용하여 인덱싱한다. 경고 모듈(236)은, 저장된 데이터 또는 필터링된 데이터에 대해 경고 상태 머신(alert state machine)을 실행시켜, 적절하게 경고 신호를 발생시키는 동작을 수행한다. 브라우징 모듈(238)은 사용자 검색 입력에 반응하여 인덱싱 필드를 통해 기본 검색을 수행하고, 필터링 필드를 이용하여 추가적인 검색을 수행할 수 있다. 이를 통해 사용자 입력에 대한 최종 검색 결과를 정렬하여 출력한다. 이는 도 14를 통해 보다 상세히 설명한다. When data is stored in the storage 240, the indexing module 234 indexes the data stored in the storage 240 using an offset. The alert module 236 executes an alert state machine on the stored or filtered data to generate an alert signal as appropriate. The browsing module 238 may perform a basic search through an indexing field in response to a user search input and perform an additional search using a filtering field. Through this, the final search result for user input is sorted and output. This will be described in more detail with reference to FIG. 14 .

한편, 상기 분석 정보 수집 장치(230)는 각 모듈들 단위로 개별 장치로 구현되어 복수 개의 장치들로 구현될 수도 있다. Meanwhile, the analysis information collection device 230 may be implemented as a plurality of devices by being implemented as an individual device in units of modules.

도 3은 본 발명의 또 다른 실시예에 따른 네트워크 모니터링을 위한 실시간 패킷 분석 방법이 적용되는 시스템을 나타낸 개념도이다.3 is a conceptual diagram illustrating a system to which a real-time packet analysis method for network monitoring according to another embodiment of the present invention is applied.

도 3을 참조하면, 패킷 분석 장치(340)는 스위치(미도시)에 연결되어 스위치를 통해 서버(330-1~330-2)로 제공되는 모든 패킷을 미러링하여 획득할 수 있다. 이때, 패킷 미러링은 스위치에서 수행될 수 있다. 스위치는 서버(330-1~330-2)로 제공되는 패킷을 복제한 후, 패킷 분석 장치(340)와 연결된 포트를 목적지 포트(destination port)로 설정하여 패킷을 패킷 분석 장치(340)로 제공할 수 있다. 이때, 해당 포트를 분석 용도로 지정하여 제공할 수 있다.Referring to FIG. 3 , the packet analysis device 340 may be connected to a switch (not shown) and obtain mirroring of all packets provided to the servers 330-1 to 330-2 through the switch. In this case, packet mirroring may be performed in a switch. The switch copies the packet provided to the servers 330-1 to 330-2, sets the port connected to the packet analysis device 340 as a destination port, and provides the packet to the packet analysis device 340. can do. In this case, the corresponding port may be designated and provided for analysis purposes.

패킷 분석 장치(340)는 네트워크(320)와 웹 서버(330-1) 사이, 웹 서버(330-1)와 앱 서버(330-2) 사이 및 앱 서버(330-2)와 데이터베이스 서버 사이 중 적어도 하나에 배치될 수 있다. 패킷 분석 장치(340)는 네트워크(320)와 웹 서버(330-1) 사이, 웹 서버(330-1)와 앱 서버(330-2) 사이 및 앱 서버(330-2)와 데이터베이스 서버 사이 중 적어도 하나에 배치된 스위칭 장치(미도시)와 연결되어 두 개체 간에 송수신되는 패킷 또는 이를 미러링한 패킷을 기반으로 네트워크 서버스의 성능을 구간별로 진단한다. The packet analysis device 340 is between the network 320 and the web server 330-1, between the web server 330-1 and the app server 330-2, and between the app server 330-2 and the database server. It can be placed in at least one. The packet analysis device 340 is between the network 320 and the web server 330-1, between the web server 330-1 and the app server 330-2, and between the app server 330-2 and the database server. The performance of the network service is diagnosed for each section based on packets transmitted and received between two entities connected to at least one switching device (not shown) or mirrored packets.

본 발명의 상기 실시예에 따르면, 미러링된 패킷은 실제 송수신되는 패킷(실제 사용되는 사용자 트래픽)을 복사함에 의해 생성될 수 있으므로, 네트워크 서비스의 성능 진단을 위해 별도의 인위적인 테스트 패킷을 생성할 필요가 없다. 특히, 패킷 분석 장치(340)는 이러한 방식을 통해 샘플링되는 일부 패킷이 아닌, 모든 패킷에 대한 모니터링이 가능하다. According to the above embodiment of the present invention, since mirrored packets can be generated by copying packets that are actually transmitted and received (actually used user traffic), there is no need to create separate artificial test packets for performance diagnosis of network services. does not exist. In particular, the packet analysis device 340 can monitor all packets, not some packets sampled through this method.

도 3의 실시예에 따르면, 패킷 분석 장치(340) 및 분석정보 수집장치(350)는 상기 스위칭 장치에 연결되는 하드웨어로 구현될 수 있다. 이에 따라, 서버단(330-1~330-2)에 실질적으로 부하를 주는 에이전트(agent) 설치를 요구하지 않을 수 있다. 이 경우, 서버단(330-1~330-2)의 작업속도를 늦추는 등의 부담을 주지 않는다. According to the embodiment of FIG. 3 , the packet analysis device 340 and the analysis information collection device 350 may be implemented as hardware connected to the switching device. Accordingly, it may not be required to install an agent that substantially imposes a load on the server ends 330-1 to 330-2. In this case, a burden such as slowing down the working speed of the server stages 330-1 to 330-2 is not applied.

패킷 분석 장치(340)는 1차 패킷 분석한 내용을 기반으로 트랜잭션 블록(342)을 생성하여 분석정보 수집장치(350)로 제공한다. 이때, 서로 다른 구간에 배치된 패킷 분석 장치(340)를 이용하여 각 구간별 네트워크 성능을 파악할 수 있다. The packet analysis device 340 generates a transaction block 342 based on the contents of the primary packet analysis and provides it to the analysis information collection device 350 . At this time, the network performance for each section can be grasped using the packet analyzer 340 disposed in different sections.

도 4는 본 발명의 일 실시예에 따른 패킷 분석 모듈의 구성을 구체적으로 나타낸 상세블록도이다. 도 4에 도시된 바와 같이, 본 발명의 일 실시예에 따른 패킷 분석 모듈은 패킷 수신부(410), 트랜잭션 블록 생성부(420) 및 분석 정보 전송부(430)를 포함할 수 있다.4 is a detailed block diagram showing the configuration of a packet analysis module according to an embodiment of the present invention in detail. As shown in FIG. 4 , the packet analysis module according to an embodiment of the present invention may include a packet receiving unit 410 , a transaction block generating unit 420 and an analysis information transmitting unit 430 .

도 4를 참조하면, 패킷 수신부(410)는 특정 장치 또는 특정 인스턴스로 송수신되는 패킷들을 수집한다. 패킷 수신부(410)는 소프트웨어적으로 구현될 수도 있고, 하드웨에적으로 포트(port) 형태로 구비될 수 있다. 패킷 수신부(410)는 수신된 패킷을 트랜잭션 블록 생성부(420)로 제공한다. Referring to FIG. 4 , the packet receiving unit 410 collects packets transmitted and received by a specific device or a specific instance. The packet receiving unit 410 may be implemented in software or may be provided in the form of a port in hardware. The packet receiver 410 provides the received packet to the transaction block generator 420 .

트랜잭션 블록 생성부(420)는 패킷 수신부(410)에서 실시간으로 수집되는 패킷들을 트랜잭션 단위로 분석하여 성능지표를 산출하고, 텍스트 정보를 생성하여 해쉬 값을 이용하여 성능지표 정보와 연관시키고, 이를 기반으로 단위 기간 동안 성능지표와 관련된 간략한 통계를 낸 후, 상기 성능지표 정보와 상기 통계 정보를 합쳐 트랜잭션 블록을 생성한다. 즉, 트랜잭션 블록 생성부(420)는 성능지표 정보를 포함하는 트랜잭션 리스트, 그리고 그와 연관된 텍스트를 목록화한 텍스트 리스트 및 10초 단위 트랜잭션들에 대한 통계 정보인 10초 통계 정보를 포함하는 트랜잭션 블록을 생성한다. The transaction block generating unit 420 analyzes the packets collected in real time by the packet receiving unit 410 in units of transactions to calculate a performance indicator, generates text information, associates it with the performance indicator information using a hash value, and based on this After generating brief statistics related to performance indicators for a unit period, a transaction block is generated by combining the performance indicator information and the statistical information. That is, the transaction block generator 420 includes a transaction list including performance indicator information, a text list listing texts associated with the transaction list, and a transaction block including 10-second statistical information that is statistical information on 10-second transactions. generate

트랜잭션 블록 생성부(420)는 수집되는 패킷의 헤더를 분석할 수 있다. 이를 통해, HTTP 패킷인지, DB와 연관된 패킷인지, TCP와 연관된 패킷인지 구분할 수 있다. 이를 통해 "GET/웹 주소/HTTP/1.1"과 같은 요청 정보를 어떤 서버로 전송했는지 확인할 수 있다. 트랜잭션 블록 생성부(420)는 패킷 헤더 정보를 파싱하여 구문해석한다. 상기 실시예에서, "GET"은 요청 메시지가 되고, "웹 주소"는 요청과 연관된 웹 주소를 나타낸다. 그리고, "HTTP/1.1"은 HTTP 1.1 버전인 것을 의미하며, 이외에 패킷과 연관된 언어 정보(예컨대, ko-kr)도 확인하여 저장할 수 있다. 요청 매소드는 GET 외에도, POST, HEAD, PUT, DELETE 등이 상황에 따라 전송될 수 있다.The transaction block generator 420 may analyze headers of collected packets. Through this, it can be distinguished whether it is an HTTP packet, a packet related to a DB, or a packet related to TCP. Through this, you can check to which server the request information such as "GET/web address/HTTP/1.1" was sent. The transaction block generator 420 parses and parses the packet header information. In the above embodiment, "GET" becomes a request message, and "web address" indicates a web address associated with the request. In addition, "HTTP/1.1" means HTTP 1.1 version, and language information (eg, ko-kr) associated with the packet may also be checked and stored. In addition to GET, request methods such as POST, HEAD, PUT, and DELETE may be transmitted depending on circumstances.

트랜잭션 블록 생성부(420)는 각각의 패킷의 인덱스를 부여하고, 부여된 인덱스를 기반으로, 어떤 패킷인지, 해당 패킷이 HTTP 기반의 요청 패킷인지, 그에 대한 응답 패킷인지를 확인한다. 이때, 과거 수신했던 패킷들로부터 획득한 정보와의 비교분석도 수행된다. 즉, 제 1 개체로부터 획득된 요청 패킷이 존재하는 경우, 이후 제 2 개체로부터 그에 대한 응답 패킷이 존재할 수 있고, 이때, 시계열적인 적어도 둘 이상의 패킷, 제 1 개체와 제 2 개체로부터 송수신되는 패킷들의 관계를 파악하여 하나의 세션 확립, 및 그 안의 트랜잭션들의 흐름을 분석할 수 있다. The transaction block generating unit 420 assigns an index to each packet, and based on the assigned index, determines which packet it is, whether the corresponding packet is an HTTP-based request packet, or a response packet to it. At this time, a comparative analysis with information obtained from packets received in the past is also performed. That is, if there is a request packet obtained from the first entity, there may be a response packet thereafter from the second entity. At this time, at least two packets in time series, packets transmitted and received from the first entity and the second entity It is possible to analyze the establishment of a session and the flow of transactions therein by grasping the relationship.

또한, 트랜잭션 블록 생성부(420)는 분석 대상 장치 또는 분석 대상 인스턴스와 관련된 클라이언트 단말이 어떤 브라우저를 사용했는지, HOST와 연관된 정보, 이전 url 주소 정보, 브라우저 지원 언어 정보를 파싱할 수 있다. 이때, 헤더가 어떤 종류의 헤더(general header인지, request header인지, entity header인지)인지 분석할 수 있고, 헤더와 페이로드의 경계선을 나타내는 정보를 파싱할 수 있다. In addition, the transaction block generator 420 may parse which browser was used by the client terminal related to the device to be analyzed or the instance to be analyzed, information related to the HOST, previous url address information, and browser support language information. At this time, it is possible to analyze what type of header (general header, request header, or entity header) the header is, and parse information indicating the boundary between the header and the payload.

그리고는, 트랜잭션 블록 생성부(420)는 수집되는 패킷의 url(Uniform Resource Locator)(또는 URI(uniform resource identifier)), 소스 IP(Source_ip), 목적지 IP(Dest_ip) 및 시간정보를 분석할 수 있다. 여기서, url 값을 확인해 보면, "https://www.google.co.kr/?gws_rd=ssl"와 같이, 어떤 주소로 리디렉트(redirect)시켜주는 패킷인지 확인할 수 있다. 또한, 소스 IP는 클라이언트 단말의 IP 주소를, 목적지 IP는 요청의 최종 목적지 사이트와 연관된 서버의 IP를 나타낼 수 있다. 응답 패킷의 경우 반대의 정보를 나타낼 수 있다. 시간정보는 타임스탬프 형식으로 제공될 수 있다. 이외에 전체 패킷의 길이 정보(length)도 확인할 수 있다.Then, the transaction block generating unit 420 may analyze the url (Uniform Resource Locator) (or URI (uniform resource identifier)), source IP (Source_ip), destination IP (Dest_ip), and time information of the collected packets. . Here, if you check the url value, you can see which address the packet is being redirected to, such as "https://www.google.co.kr/?gws_rd=ssl". In addition, the source IP may indicate the IP address of the client terminal, and the destination IP may indicate the IP of the server associated with the final destination site of the request. In the case of a response packet, opposite information may be indicated. Time information may be provided in a timestamp format. In addition, length information (length) of the entire packet may be checked.

트랜잭션 블록 생성부(420)는 각각의 프로토콜, 예컨대, HTTP, IP, UDP, TCP, DNS 등 다양한 프로토콜에 대응한 패킷 분석 알고리즘을 포함하고 있고, 각 프로토콜에 맞게 적응적으로 패킷으로부터 url, 소스 IP, 목적지 IP 및 시간정보를 추출하여 분석에 이용할 수 있다.The transaction block generation unit 420 includes packet analysis algorithms corresponding to various protocols such as HTTP, IP, UDP, TCP, and DNS, and adaptively generates url and source IP from packets according to each protocol. , destination IP and time information can be extracted and used for analysis.

이렇게 2차 분석으로 추출된 패킷 관련 정보를 기반으로 1 트랜잭션당 약 30여 개의 한 세트의 성능지표 정보를 산출하여 트랜잭션 블록을 생성한다. 트랜잭션 블록에 포함되는 상기 30여 개의 성능지표 정보는 120여개 요소의 성능지표 정보 중 필수적으로 필요하다고 생각되는 항목들로 구성된다. 이는 기선택된 것일 수 있다. 다만, 이는 사용자 설정을 통해 가변될 수도 있다. 이러한 120여개 후보 요소 성능지표들 중 필수항목이라고 여겨지는 약 30여 개 항목의 추출 또는 선택은, 대용량 패킷의 처리에 있어서 매우 중요하게 여겨질 수 있다. 트랜잭션 블록에 포함되는 30여개의 요소 성능지표는 도 6을 통해 보다 상세히 설명한다. 여기서, 트랜잭션 블록에 포함 가능한 후보인 120여개 성능지표들도 함께 소개한다. Based on the packet-related information extracted through the secondary analysis, a transaction block is created by calculating about 30 sets of performance indicator information per transaction. The 30 pieces of performance indicator information included in the transaction block are composed of items considered essential among the performance indicator information of 120 elements. This may be pre-selected. However, this may be variable through user settings. Extraction or selection of about 30 or so items considered essential among these 120 or so candidate element performance indicators may be considered very important in processing large packets. About 30 element performance indicators included in the transaction block will be described in detail with reference to FIG. 6 . Here, we introduce about 120 performance indicators that can be included in the transaction block.

트랜잭션 블록 생성부(420)는 1초에 약 1000개의 트랜잭션을 분석 및 처리한다. 이를 약 10초 단위로 생성하기 때문에, 10초에 10000 개의 트랜잭션을 분석 및 처리할 수 있다. 이러한 패킷 분석 모듈이 1000개의 인스턴스에 붙어있다고 가정할 때, 약 1000만 트랜잭션을 10초 단위로 처리하여 2차 수집 장치인 분석 정보 수집 장치로 제공할 수 있다. The transaction block generator 420 analyzes and processes about 1000 transactions per second. Since it is generated in about 10 second units, 10000 transactions can be analyzed and processed in 10 seconds. Assuming that these packet analysis modules are attached to 1000 instances, about 10 million transactions can be processed in units of 10 seconds and provided to the secondary collection device, the analysis information collection device.

트랜잭션 블록 생성부(420)는 산출된 성능지표 중 텍스트로 기재되어야 하는 정보는 텍스트 리스트도 별도 관리되도록 한다. 즉, 텍스트 리스트를 별도로 생성하고, 텍스트 리스트의 특정 텍스트가 성능지표들의 조합으로 이루어진 트랜잭션 리스트의 특정 성능지표와 매핑되도록 둘을 연관시킨다. 이때, 해쉬(hash) 값이 사용될 수 있다. The transaction block generating unit 420 allows information to be described in text among the calculated performance indicators to be separately managed in a text list. That is, a text list is created separately, and the two are associated so that a specific text in the text list is mapped to a specific performance index of a transaction list composed of a combination of performance indicators. In this case, a hash value may be used.

트랜잭션 블록 생성부(420)는 상기 산출된 한 세트의 성능지표(약 30여 개의 성능지표)를 기반으로 기초 통계 값을 산출한다. 즉, 10초 평균 또는 10초 단위 스냅샷 정보를 산출하여 통계 리스트를 생성한다. 그리고는, 트랜잭션 블록 생성부(420)는 산출된 성능지표 정보, 텍스트 리스트 및 기초 통계값을 합성하여 10초 단위 트랜잭션 블록을 생성한다. The transaction block generating unit 420 calculates a basic statistical value based on the calculated set of performance indicators (about 30 performance indicators). That is, a 10-second average or 10-second snapshot information is calculated to generate a statistics list. Then, the transaction block generator 420 synthesizes the calculated performance indicator information, text list, and basic statistical values to generate a 10-second transaction block.

분석 정보 전송부(430)는 트랜잭션 블록 생성부(430)에서 생성된 트랜잭션 블록 및/또는 기타 정보를 분석 정보 수집장치로 제공한다. 보다 구체적으로는, 분석 정보 수집장치의 수집 모듈로 제공한다.The analysis information transmission unit 430 provides the transaction block and/or other information generated by the transaction block generation unit 430 to the analysis information collecting device. More specifically, it is provided as a collection module of an analysis information collection device.

한편, 본 발명의 실시예에 있어서, 패킷 분석 모듈은 분석정보 수집장치에서 이루어지는 분석까지 수행하는 일원화된 분석 모드인 제 1 모드와 분석정보 수집장치와 분석과정 중 일부를 나누어서 이원화된 분석을 수행하는 제 2 모드를 가지고 선택적으로 동작할 수 있다. 즉, 일원화된 분석 모드(제 1 모드)는 120여개의 네트워크 성능지표를 모두 산출하는 모드일 수 있다. 이원화된 분석 모드(제 2 모드)는 분석정보 수집장치와 연동하는 분산 수행 모드로써, 30여개의 필수성능지표만 산출하여 트랜잭션 블록 형태로 분석정보 수집장치로 제공한다. 이 때, 이러한 모드의 선택은 다음의 파라미터에 따라 적응적으로 결정될 수 있다. 이를 결정하는 파라미터는 단위 시간 당 패킷의 수/바이트, 트래픽 속도, 지연시간, wait의 수, 및 모니터링 대상 서버들의 수 중 적어도 하나를 포함한다. 즉, 기준이 되는 파라미터 값을 미리 설정해 두고, 기준 파라미터 값을 넘는 상황이 발생하면, 제 1 모드에서 제 2 모드로 변경하고, 제 2 모드로 동작 중에, 다시 기준 파라미터 값보다 낮은 값을 갖는 네트워크 상태가 감지되면, 제 1 모드로 변경하도록 제어할 수 있다. 예를 들어, 네트워크 모니터링 대상 서버(또는 인스턴스)의 기준값이 100이라고 할 때, 100대 이하의 서버들에 대한 모니터링을 수행하고 있을 때면, 장치는 제 1 모드로 동작하다가 관리 대상 서버가 100대를 넘어가면 제 2 모드로 동작하도록 할 수 있다. On the other hand, in an embodiment of the present invention, the packet analysis module divides the first mode, which is a unified analysis mode that performs analysis performed by the analysis information collection device, and part of the analysis information collection device and analysis process to perform dual analysis It can operate selectively with the second mode. That is, the unified analysis mode (first mode) may be a mode for calculating all 120 network performance indicators. The dual analysis mode (second mode) is a distributed execution mode that interworks with the analysis information collection device, and calculates only about 30 essential performance indicators and provides them to the analysis information collection device in the form of a transaction block. At this time, selection of this mode may be adaptively determined according to the following parameters. Parameters that determine this include at least one of the number of packets/byte per unit time, traffic speed, delay time, number of waits, and number of monitoring target servers. That is, a parameter value as a standard is set in advance, and when a situation exceeding the standard parameter value occurs, the first mode is changed to the second mode, and while operating in the second mode, a network having a value lower than the standard parameter value again When the state is detected, it may be controlled to change to the first mode. For example, assuming that the reference value of the network monitoring target server (or instance) is 100, and monitoring of less than 100 servers is performed, the device operates in the first mode and then the management target server monitors 100 servers. If passed, the second mode can be operated.

도 5는 도 4의 패킷 분석 모듈에서 생성되는 트랜잭션 블록의 구성을 구체적으로 나타낸 개념도이다. 도 5에 도시된 바와 같이, 하나의 앱 인스턴스에 부착된 패킷 분석 모듈로부터 생성되는 10초 단위 트랜잭션 블록은 10초 통계 정보, 텍스트 리스트 및 트랜잭션 리스트 정보를 포함할 수 있다. FIG. 5 is a conceptual diagram specifically illustrating the configuration of a transaction block generated by the packet analysis module of FIG. 4 . As shown in FIG. 5 , a 10-second transaction block generated from a packet analysis module attached to one app instance may include 10-second statistical information, text list, and transaction list information.

도 5를 참조하면, 트랜잭션 리스트는 10초 단위의 트랜잭션들에 대한 상세 정보를 포함한다. 여기에는, 최대 10,000개의 트랜잭션들에 대한 정보가 포함될 수 있다. 하나의 트랜잭션에 대해서는, 약 30개의 요소 정보, 즉, 성능지표 정보가 포함될 수 있다. 이는 120개 후보 성능지표들 중 필수적이라고 여겨지는 약 30여개의 정보이며, 한 세트의 요소 정보라고 부를 수 있다. 이는 사용자 설정에 의해 미리 설정되어 있을 수 있다. 하나의 트랜잭션에 대한 요소정보들은 100 내지 120 Byte의 크기를 가질 수 있고, 10초 단위 트랜잭션 리스트는 전체적으로 약 0.8 내지 1.2MiB 의 크기로 생성되는 것이 바람직하다. 보다 바람직하게는, 1.07MiB 이하의 크기를 갖도록 하는 것이 좋다. Referring to FIG. 5 , the transaction list includes detailed information on transactions in units of 10 seconds. This may include information on up to 10,000 transactions. For one transaction, about 30 element information, that is, performance indicator information may be included. This is about 30 pieces of information that are considered essential among 120 candidate performance indicators, and can be called a set of element information. This may be preset by user setting. The element information for one transaction may have a size of 100 to 120 Bytes, and the 10-second transaction list is preferably generated with a size of about 0.8 to 1.2 MiB as a whole. More preferably, it is good to have a size of 1.07 MiB or less.

텍스트 리스트는 트랜잭션 리스트의 텍스트 정보들의 목록이다. 텍스트는 url, 도메인, 콘텐츠 타입, DB 쿼리문 등의 정보를 포함한다.이는 트랜잭션 리스트의 어느 하나의 요소 정보(성능지표)와 해쉬 값을 통해 연계될 수 있다. 텍스트 리스트는 2MiB 이하의 크기로 생성되며, 압축을 통해 1MiB 미만의 크기로 생성될 수 있다. The text list is a list of text information of the transaction list. The text includes information such as url, domain, content type, and DB query statement. This can be linked with information (performance indicator) of any one element of the transaction list through a hash value. A text list is created with a size of 2 MiB or less, and can be created with a size of less than 1 MiB through compression.

10초 단위 통계 정보는 10초 동안의 평균 성능지표 정보, 또는 10초 단위 스탭샷 정보를 포함한다. 여기에는, 약 30여개의 통계 정보가 포함될 수 있으며, 약 300 내지 500 Byte의 크기를 가질 수 있다. 보다 바람직하게는, 380 내지 416 Byte의 크기를 가질 수 있다. Statistical information in units of 10 seconds includes average performance indicator information for 10 seconds or snapshot information in units of 10 seconds. This may include about 30 pieces of statistical information, and may have a size of about 300 to 500 bytes. More preferably, it may have a size of 380 to 416 bytes.

트랜잭션 블록에 포함되는 10초 통계 정보, 텍스트 리스트 정보 및 트랜잭션 리스트 정보를 병합하였을 때, 전체적으로 1.8MB 내지 2.2MB의 크기를 갖는 것이 바람직하며, 보다 바람직하게는, 1.9MB 내지 2.07MB 인 것이 좋다. 이하, 트랜잭션 리스트 내의 정보, 텍스트 리스트 내의 정보 및 10초 통계 정보 각각의 구성에 대해 보다 상세히 설명한다. When the 10-second statistical information, text list information, and transaction list information included in the transaction block are merged, it is preferable to have a size of 1.8 MB to 2.2 MB as a whole, more preferably 1.9 MB to 2.07 MB. Hereinafter, the configuration of each of the information in the transaction list, the information in the text list, and the 10-second statistical information will be described in more detail.

도 6은 도 5의 트랜잭션 블록 내의 트랜잭션 상세 정보의 구성을 구체적으로 나타낸 테이블이다. FIG. 6 is a table specifically showing the configuration of detailed transaction information in the transaction block of FIG. 5 .

도 6을 참조하면, 트랜잭션 블록 내에 포함된 트랜잭션 리스트는 하나의 트랜잭션에 대한 상세 정보(요소 정보)를 포함한다. 이는 client_ip, server_ip, client_port, server_port 정보를 포함한다. 이는 각각 클라이언트의 IP 정보, 서버의 IP 정보, 클라이언트의 포트 정보 및 서버의 포트 정보를 나타낸다. 이때, client_ip 및 server_ip 정보는 스트링(string)을 단위로 사용하여(예컨대, 222.103.141.187) 4 Byte의 크기를 가질 수 있다. client_port 및 server_port 정보는 넘버(number)를 단위로 사용하여(예컨대, 1254 또는 80), 2Byte의 크기를 가질 수 있다. Referring to FIG. 6 , a transaction list included in a transaction block includes detailed information (element information) on one transaction. This includes client_ip, server_ip, client_port, and server_port information. This represents client IP information, server IP information, client port information, and server port information, respectively. In this case, the client_ip and server_ip information may have a size of 4 bytes by using a string as a unit (eg, 222.103.141.187). The client_port and server_port information may have a size of 2 bytes by using a number as a unit (eg, 1254 or 80).

다음으로, 트랜잭션 블록은 패킷 수신 시간에 대한 정보로써 receive_time 정보를 포함할 수 있다. 이는 4 Byte의 크기를 가질 수 있다. Next, the transaction block may include receive_time information as information about the packet reception time. It may have a size of 4 bytes.

다음으로, 트랜잭션 리스트는 트랜잭션의 시작과 종료와 관련된 정보를 포함할 수 있다. 여기에는, start_usec 정보, end_usec 정보 및 fin_usec가 포함될 수 있다. 이는, 패킷의 소스 ip, 목적지 ip 및 타임 정보를 기반으로 동일한 소스(예컨대, 클라이언트)와 목적지(예컨대, 서버)에서 일정한 시간 구간 내에서 요청 패킷을 주고 그와 관련된 데이터를 모두 수신하였는지에 대한 내역을 분석함으로써 획득될 수 있다. 이는 각각 4 Byte의 크기를 가질 수 있다.Next, the transaction list may include information related to the start and end of a transaction. This may include start_usec information, end_usec information, and fin_usec. This is based on the source ip, destination ip and time information of the packet, the same source (e.g., client) and destination (e.g., server) give a request packet within a certain time period and receive all related data. can be obtained by analyzing Each of these may have a size of 4 bytes.

start_usec 정보는 트랜잭션이 완성되어 개시되는 시간이 될 수 있다(예컨대, 2012-07-18 22:33:06.288370). end_usec 정보는 트랜잭션 종료 시각을 백만 분의 1초 단위로 나타낸 것이다. fin_usec 정보는 트랜잭션 완전종료 시각을 백만 분의 1초 단위로 나타낸 것이다. The start_usec information may be a time when a transaction is completed and started (eg, 2012-07-18 22:33:06.288370). end_usec information indicates the transaction end time in units of milliseconds. fin_usec information represents the complete end time of a transaction in units of one millionth of a second.

트랜잭션 시작과 종료와 관련하여, 트랜잭션 리스트에 포함될 수 있는 후보 요소 정보로는, start_time 정보, end_time 정보, fin_time 정보가 있다. start_time 정보는 트랜잭션 시작 시간(년월일 시분초: 예컨대, 2012-07-18 22:33:06)을 나타낸다. 앞서 설명한 start_usec 정보는 상기 start_time과 합쳐서 완성된 시간이 될 수 있다(예컨대, 2012-07-18 22:33:06.288370). end_time 정보는 트랜잭션 종료 시각을 나타낸다. 즉, 데이터의 종료(트랜잭션의 마지막 Response Data를 받은 시간)을 나타낸다. 예컨대, 2012-07-18 22:33:12로 표현될 수 있다. fin_time 정보는 트랜잭션이 종료된 후, 다음 트랜잭션이 오거나, 트랜잭션이 완료(Fin을 받음)되거나 타임아웃(Timeout)으로 끝나거나 하여 완전히 종료된 시간을 나타낸다. 예컨대, 2012-07-18 22:35:23로 표현될 수 있다. 후보 요소 정보는 사용자의 설정 또는 네트워크 상태의 변경에 따라 특정 시점에 트랜잭션 리스트에 포함되는 것으로 설정된 요소 정보를 대신하거하 아니면 추가적으로 트랜잭션 리스트에 포함될 수 있다. 즉, 단위 시간 당 패킷의 수가 기준 파라미터 값 이상 증가하면, start_usec 정보 대신 start_time 정보가 트랜잭션 리스트에 들어갈 수 있다. 후보 요소의 대체는 트랜잭션 상세 정보의 분류(예를 들어, 트랜잭션 시작/종료 시각 정보 분류, 트랜잭션 지연시간 정보 분류, 세션 응답/요청 패킷 분류, 트랜잭션 상태/결과 분류 등)를 고려하여, 동일 분류에서 이루어지도록 하는 것이 바람직하다. 다른 예에서, start_usec 정보가 포함된 상태에서 start_time 정보가 추가적으로 트랜잭션 리스트에 포함되도록 할 수 있다. In relation to transaction start and end, candidate element information that may be included in the transaction list includes start_time information, end_time information, and fin_time information. The start_time information indicates the transaction start time (year month day hour minute second: eg 2012-07-18 22:33:06). The start_usec information described above may be combined with the start_time to become a completion time (eg, 2012-07-18 22:33:06.288370). end_time information represents the transaction end time. That is, it indicates the end of data (the time when the last response data of the transaction was received). For example, it can be expressed as 2012-07-18 22:33:12. The fin_time information represents the time when a transaction is completely terminated, such as when a next transaction comes after a transaction ends, a transaction completes (receives fin), or ends due to a timeout. For example, it can be expressed as 2012-07-18 22:35:23. Candidate element information may be included in the transaction list instead of or additionally to element information set to be included in the transaction list at a specific point in time according to a user's setting or network state change. That is, when the number of packets per unit time increases by more than the reference parameter value, start_time information may be included in the transaction list instead of start_usec information. Substitution of candidate elements takes into account the classification of transaction detailed information (eg, transaction start/end time information classification, transaction latency information classification, session response/request packet classification, transaction status/result classification, etc.) in the same classification. It is desirable to make it happen. In another example, in a state where start_usec information is included, start_time information may be additionally included in the transaction list.

다음으로, 트랜잭션 블록은 RTT 정보, 요청시간 정보, 응답지연시간과 관련된 응답 및 요청에 대한 시간 정보(지연정보 포함)를 포함할 수 있다. 이는 tran_client_rtt, tran_req_time, tran_latency 및 tran_rsp_time으로 표현될 수 있다. 이들 정보는 각각 4 Byte의 크기를 가질 수 있다. Next, the transaction block may include RTT information, request time information, and response and request time information (including delay information) related to response delay time. This can be expressed as tran_client_rtt, tran_req_time, tran_latency and tran_rsp_time. Each of these pieces of information may have a size of 4 bytes.

여기서, tran_client_rtt 정보는 해당 트랜잭션에서 클라이언트의 실시간 RTT를 나타낸다. tran_req_time은 요청전송시간에 대한 정보로써, 클라이언트로부터 서버로의 복수 개의 요청을 전송 시작한 시간부터, 해당 요청이 서버에 도달한 시간을 나타낸다. Here, tran_client_rtt information represents the real-time RTT of a client in a corresponding transaction. tran_req_time is information about request transmission time, indicating the time from when a plurality of requests from the client to the server start to be transmitted to the time when the request reaches the server.

tran_latency 정보는 트랜잭션 응답대기시간을 나타낸다. 이는 클라이언트가 요청을 보낸 후 서버로부터 첫 데이터를 받기까지의 대기 시간을 나타낸다. 이는 백만 분의 1초를 단위로 한다. 예컨대, 76328 값을 가질 수 있다. tran_rsp_time는 트랜잭션 응답 시간으로써, 응답 데이터의 전송 시간을 나타낸다. 즉, 서버가 응답 데이터를 전송한 시간을 나타낸다. 이 역시, 백만 분의 1초를 단위로 사용한다.The tran_latency information indicates transaction response latency. This represents the waiting time from when the client sends the request to receiving the first data from the server. It is in units of one millionth of a second. For example, it may have a value of 76328. tran_rsp_time is a transaction response time and represents the transmission time of response data. That is, it indicates the time when the server transmits the response data. Again, units of one millionth of a second are used.

이하, 도 7 내지 도 9를 이용하여 RTT 값, 요청전송시간 값, 응답대기시간 값 및 응답 데이터 전송 시간 값의 산출 방법을 보다 상세히 설명한다. Hereinafter, a method of calculating an RTT value, a request transmission time value, a response waiting time value, and a response data transmission time value will be described in more detail using FIGS. 7 to 9 .

도 7 및 도 8은 본 발명의 일 실시예에 따른 패킷 분석 모듈에서 산출되는 사용자와 서버 간의 네트워크 RTT(Round Trip Time) 지표를 나타낸 개념도이다. 7 and 8 are conceptual diagrams illustrating a network RTT (Round Trip Time) indicator between a user and a server calculated by a packet analysis module according to an embodiment of the present invention.

도 7을 참조하면, 패킷 분석 모듈은 사용자와 서버 간의 네트워크 상의 패킷의 왕복도달 시간(RTT) 정보를 산출한다. 패킷 분석 모듈은 인스턴스에 에이전트 형태로 동작할 때, 부착된 인스턴스가 서버에 대응될 수 있다. 패킷 분석 모듈은 클라이언트와 서버 사이에 있다고 가정한다. 기본적인 동기화 시나리오를 가정하여, 최초 클라이언트가 동기신호(SYN)를 전송하고, 서버는 이를 수신하며, 서버는 수신된 동기신호에 응답하여 동기신호와 응답신호(ACK)를 함께 전송하고, 클라이언트는 서버로부터의 신호에 응답하여 응답신호(ACK)를 전송할 수 있다. 이러한 3개 신호의 송수신을 3-way Handshake라고 부를 수 있다.Referring to FIG. 7 , the packet analysis module calculates round-trip arrival time (RTT) information of a packet on a network between a user and a server. When the packet analysis module operates in the form of an agent to an instance, an attached instance may correspond to a server. A packet analysis module is assumed to be between the client and the server. Assuming a basic synchronization scenario, the first client transmits a synchronization signal (SYN), the server receives it, the server transmits a synchronization signal and a response signal (ACK) together in response to the received synchronization signal, and the client sends the server A response signal (ACK) may be transmitted in response to a signal from. The transmission and reception of these three signals can be called a 3-way handshake.

이러한 신호 전송 시나리오에서, 패킷 분석 모듈은 클라이언트와 서버 사이에 있기 때문에, 클라이언트에서 출발하여 실제 서버에 동기신호(SYN)가 도착하는 시간보다 이른 T1 시점에 패킷 분석 모듈에 패킷이 도착한다. 그리고, 서버로부터의 동기신호 및 응답신호는 클라이언트 도착시점보다 이른 T2 시점에 패킷 분석 모듈에 도착한다. 마지막으로, 클라이언트에서의 응답신호(ACK)는 서버에서의 도착시점보다 이른 T3 시점에 패킷 분석 모듈에 도착한다. In this signal transmission scenario, since the packet analysis module is located between the client and the server, the packet arrives at the packet analysis module at time T1, which is earlier than the time when a synchronization signal (SYN) arrives at the actual server from the client. And, the synchronization signal and the response signal from the server arrive at the packet analysis module at a time T2 earlier than the arrival time of the client. Finally, the response signal (ACK) from the client arrives at the packet analysis module at time T3 earlier than the arrival time from the server.

이러한 관계에서, 패킷 분석 모듈은 3개 패킷 송수신 시점과 관련하여, T1 내지 T3 시간 정보를 확보할 수 있고, 서버에서의 도달시간에서 일정 시간 이른시점으로 쉬프트된 RTT 값을 "T3-T1"을 이용하여 산출할 수 있다. 이는 네트워크 RTT라고 부를 수 있다.In this relationship, the packet analysis module may secure T1 to T3 time information in relation to the three packet transmission/reception points, and set the RTT value shifted from the arrival time in the server to a point in time earlier by a certain time to “T3-T1”. can be calculated using This may be referred to as network RTT.

도 8을 참조하면, 네트워크 RTT를 보다 세분화하여, 서버에서의 RTT와 클라이언트에서의 RTT를 구분하여 산출할 수 있다. 서버에서의 RTT(sRTT)는 하나의 패킷에 대해 서버에서 지연되는 시간을 나타내고, 이는 "T2-T1"을 이용하여 산출할 수 있다.Referring to FIG. 8 , the network RTT may be further subdivided, and RTT in the server and RTT in the client may be separately calculated. RTT (sRTT) at the server represents the delay time at the server for one packet, which can be calculated using “T2-T1”.

또한, 클라이언트에서의 RTT(cRTT)는 클라이언트에서의 RTT로써, "T3-T2"를 이용하여 산출할 수 있다.In addition, the RTT (cRTT) at the client can be calculated using “T3-T2” as the RTT at the client.

본 발명의 일 실시예에 따른 패킷 분석 모듈은 상기한 3개의 RTT, 네트워크 RTT, 서버 RTT 및/또는 클라이언트 RTT를 실시간으로 매 트랜잭션마다 산출하여 저장한다. 클라이언트 RTT는 tran_client_rtt 지표로써 트랜잭션 리스트에 포함되고, 서버 RTT는 server_rtt 지표에 대한 10초 단위 통계 정보 산출을 위해 사용된다. The packet analysis module according to an embodiment of the present invention calculates and stores the three RTTs, network RTT, server RTT, and/or client RTT for each transaction in real time. The client RTT is included in the transaction list as the tran_client_rtt index, and the server RTT is used to calculate statistical information in 10 second units for the server_rtt index.

도 9는 본 발명의 일 실시예에 따른 패킷 분석 모듈에서 산출되는 지연지표를 나타낸 개념도이다. 9 is a conceptual diagram illustrating a delay index calculated by a packet analysis module according to an embodiment of the present invention.

도 9를 참조하면, 패킷 분석 모듈은 다양한 지연지표를 산출할 수 있다. 앞서 설명한 것과 같이, 패킷 분석 모듈은 클라이언트와 서버 사이에 존재하며, 클라이언트는 복수 개의 요청 패킷을 서버로 전송하고, 서버는 복수 개의 요청에 대응하여 복수 개의 응답 패킷을 클라이언트로 전송하는 실시예를 가정한다. Referring to FIG. 9 , the packet analysis module may calculate various delay indexes. As described above, it is assumed that the packet analysis module exists between the client and the server, the client transmits a plurality of request packets to the server, and the server transmits a plurality of response packets to the client in response to the plurality of requests. do.

패킷 분석 모듈은 패킷 분석 모듈에 최초 클라이언트 요청 패킷이 도달한 T1 시간, 마지막 클라이언트 요청 패킷이 도달한 T2 시간, 서버로부터 최초 응답 패킷이 도달한 T3 시간, 및 서버로부터 마지막 응답 패킷이 도달한 T4 시간을 미러링된 패킷의 도착시간을 통해 획득할 수 있다.The packet analysis module determines the T1 time when the first client request packet arrives, the T2 time when the last client request packet arrives, the T3 time when the first response packet arrives from the server, and the T4 time when the last response packet arrives from the server. can be obtained through the arrival time of the mirrored packet.

이때, 지연지표 중 요청전송시간(request time) 정보는 클라이언트로부터 서버로의 복수 개의 요청을 전송 시작한 시간부터, 해당 요청이 서버에 도달한 시간을 나타낸다. 이와 관련하여, 패킷 분석 모듈은 cRTT를 반으로 나눈 값을 통해, T1 시점을 기준으로 최초 요청 패킷이 클라이언트에서 출발한 시간을 알 수 있다. 또한, sRTT를 반으로 나눈 값을 통해 마지막 요청 패킷이 실제 서버에 도달한 시간을 알 수 있다. 이러한 산술적인 분석을 통해, "request time = cRTT/2 + (T2-T1) + sRTT/2"를 이용하여 산출할 수 있고, 일반적으로 sRTT 값은 매우 작은 값이므로, cRTT/2 + (T2-T1) 값과 근사한 값으로 산출된다. 요청전송시간 값은 tran_req_time이라는 지표로써, 트랜잭션 리스트에 하나의 정보로 포함되며, 10초 통계 정보에도 10초 동안의 요청전송시간의 합산 값이 포함된다. At this time, among the delay indicators, request transmission time (request time) information represents a time from when a plurality of requests from a client to a server start to be transmitted and a corresponding request reaches the server. In this regard, the packet analysis module may know the time at which the first request packet departs from the client based on the time point T1 through a value obtained by dividing the cRTT by half. In addition, the time when the last request packet arrived at the actual server can be known through the value obtained by dividing the sRTT by half. Through this arithmetic analysis, it can be calculated using "request time = cRTT/2 + (T2-T1) + sRTT/2", and since the sRTT value is generally a very small value, cRTT/2 + (T2- It is calculated as a value close to the value of T1). The request transmission time value is an index called tran_req_time, and is included as one piece of information in the transaction list, and the sum of request transmission times for 10 seconds is also included in the 10-second statistical information.

다음으로, 응답대기시간(latency)은 클라이언트의 요청과 연관된 url로부터 요청과 연관된 컨텐츠 또는 데이터를 서버가 수신할 때까지의 응답지연시간을 나타낸다. 즉, 서버는 데이터를 수신하자마자 클라이언트로 전송을 수행한다고 보고, 서버가 해당 url로부터 요청과 관련된 첫 데이터를 수신할 때까지의 시간을 나타낸다. 이는 결국 (T2-T3)에서 sRTT 값을 뺀 값으로 산출된다. 여기서, sRTT 값을 무시해도 될 정도로 작은 값일 수 있으므로, "T2-T3"가 응답대기시간이 될 수 있다. 응답대기시간 정보는 tran_latency라는 지표로써, 트랜잭션 리스트에 하나의 정보로 포함되며, 10초 통계 정보에도, 응답대기시간의 합산 값, 최소값 및 최대값이 포함될 수 있다. Next, the response latency (latency) represents the response delay time until the server receives the content or data associated with the request from the url associated with the client's request. That is, the server assumes that data is transmitted to the client as soon as it is received, and indicates the time until the server receives the first data related to the request from the url. This is eventually calculated by subtracting the sRTT value from (T2-T3). Here, since the sRTT value may be a negligibly small value, “T2-T3” may be the response waiting time. Response latency information is an index called tran_latency and is included as one piece of information in the transaction list, and the sum of response latency, minimum and maximum values may be included in 10-second statistical information.

다음으로, 응답데이터 전송시간(response time)은 서버가 클라이언트로 요청과 관련된 컨텐츠를 전송하는데 소요되는 시간을 나타낸다. 이는 "response time = sRTT/2 + (T4-T3) + cRTT/2"의 수학식을 이용하여 산출된다. sRTT가 매우 작은 값인 것을 고려하면, 이는 (T4-T3) + cRTT/2 값과 거의 일치한다. 응답데이터 전송시간 값은 tran_rsp_time이라는 지표로써, 트랜잭션 리스트에 하나의 정보로 포함되며, 10초 통계 정보에도 10초 동안의 응답데이터 전송시간의 합산 값이 포함된다. Next, response data transmission time (response time) represents the time required for the server to transmit content related to the request to the client. This is calculated using the equation of "response time = sRTT/2 + (T4-T3) + cRTT/2". Considering that sRTT is a very small value, it is almost identical to the value of (T4-T3) + cRTT/2. The response data transmission time value is an indicator called tran_rsp_time, and is included as one piece of information in the transaction list, and the sum of response data transmission times for 10 seconds is included in the 10-second statistical information.

클라이언트 측에서 요청을 전송한 후부터 요청과 관련된 전체 응답 데이터를 수신할 때까지의 이용시간(used time)을 산출하면, 이는 결국 요청전송시간과 응답대기시간 및 응답데이터 전송시간의 합이므로, "used time = (T4-T1) + cRTT"를 이용하여 산출된다. 이용시간 역시, 트랜잭션 리스트에 포함되는 후보 요소 정보로써 기능할 수 있다. If the used time is calculated from the time the client sends the request to the time it receives the entire response data related to the request, it is the sum of the request transmission time, response waiting time, and response data transmission time. It is calculated using time = (T4-T1) + cRTT". The usage time can also function as candidate element information included in the transaction list.

다시 도 6으로 돌아가서, client_ip, server_ip, client_port, server_port, receive_time, start_user, end_usec, fin_usec, tran_client_rtt, tran_req_time, tran_latency, 및 tran_rsp_time에 이어, 트랜잭션 리스트에는, session_req_pkts 정보 및 session_rsp_pkts 정보가 포함될 수 있다. 이는 트랜잭션을 요청하는 데이터 패킷의 수와 이에 대한 응답 패킷의 수를 나타낸다. 이는 각각 4 Byte의 크기를 가질 수 있다. Returning to FIG. 6 again, following client_ip, server_ip, client_port, server_port, receive_time, start_user, end_usec, fin_usec, tran_client_rtt, tran_req_time, tran_latency, and tran_rsp_time, the transaction list may include session_req_pkts information and session_rsp_pkts information. This indicates the number of data packets requesting a transaction and the number of response packets. Each of these may have a size of 4 bytes.

session_req_pkts 정보는 트랜잭션 요청 데이터 패킷의 수를 나타내며, 이는 특정 클라이언트가 요청 데이터로써 보낸 패킷의 수를 기반으로 산출된다. 이는 넘버를 단위로 한다. The session_req_pkts information represents the number of transaction request data packets, which is calculated based on the number of packets sent as request data by a specific client. It is in units of numbers.

session_rsp_pkts 정보는, 트랜잭션 응답 패킷의 수를 나타내며, 특정 서버가 클라이언트로 보낸 응답 데이터의 패킷 수를 기반으로 산출된다. 넘버를 단위로 한다. The session_rsp_pkts information indicates the number of transaction response packets and is calculated based on the number of response data packets sent from a specific server to the client. number as a unit.

추가적으로, 트랜잭션 리스트에는 session_pps 정보가 포함될 수 있다. 이는, session_pps 정보는 세션의 실시간 PPS를 나타내며, 현재 맺어진 세션의 PPS를 기반으로 산출된다. 단위는 넘버이다. 이 역시 4 Byte의 크기를 갖는 것이 바람직하다.Additionally, session_pps information may be included in the transaction list. The session_pps information represents the real-time PPS of a session, and is calculated based on the PPS of a currently connected session. Unit is number. It is also desirable to have a size of 4 bytes.

다른 예에서, 트랜잭션과 관련된 세션의 pps 속도 관련 지표로써, sess_max_pps 정보가 후보로써 고려될 수 있다. sess_max_pps 정보는 세션의 최대 PPS를 나타내며, 해당 세션이 사용될 기간동안의 최대 PPS를 기반으로 산출된다. 단위는 넘버이다. In another example, as an index related to the pps speed of a session related to a transaction, sess_max_pps information may be considered as a candidate. The sess_max_pps information indicates the maximum PPS of a session, and is calculated based on the maximum PPS during a period in which the corresponding session is to be used. Unit is number.

다음으로, 트랜잭션 리스트에는, content_len 정보가 포함될 수 있다. 이는, content_len, 정보는 응답 헤더의 콘텐츠 길이를 나타내며, 서버가 보낸 응답 HTTP 헤더 중 포함된 콘텐츠의 길이를 나타낸다. 예컨대, "/jsp/front/search/include/akc.jsp의 byte"를 의미할 수 있다. 단위는 스트링이고, 그 크기는 4 Byte를 갖는 것이 바람직하다. Next, content_len information may be included in the transaction list. This, content_len, information indicates the content length of the response header, and indicates the length of content included in the response HTTP header sent by the server. For example, it may mean "a byte of /jsp/front/search/include/akc.jsp". The unit is a string, and the size is preferably 4 bytes.

그 다음으로, 트랜잭션 리스트에는, state 정보 및 result 정보가 포함될 수 있다. 이는 각각 1 Byte의 크기를 가질 수 있다. Next, the transaction list may include state information and result information. Each of these may have a size of 1 Byte.

보다 구체적으로, state 정보는 트랜잭션 상태를 나타낸다. 이는 7개의 넘버로써 표현될 수 있으며, 다음과 같다. More specifically, state information represents a transaction state. This can be expressed as 7 numbers, as follows.

트랜잭션 상태 코드(Code)Transaction Status Code (Code)

1 - session_finish : 초기상태 1 - session_finish : initial state

2 - 3whs_syn_sent : 3 handshake 중 클라이언트가 syn을 보낸상태2 - 3whs_syn_sent : Client sent syn during 3 handshake

3 - 3whs_syn_received : 3 handshake 중 클라이언트가 syn/ack를 받은상태3 - 3whs_syn_received : Client received syn/ack during 3 handshake

4 - 3whs_ack_received : 3 handshake 중 서버가 ack를 받은상태4 - 3whs_ack_received : Server received ack during 3 handshake

5 - session_connected : 세션이 맺어진 상태5 - session_connected : Session is connected

6 - session_request : 클라이언트가 Request(요청)을 한 상태6 - session_request : A state in which the client has made a request

7 - session_response : 서버가 Response(응답)을 한 상태7 - session_response : Server has responded

다음으로, 트랜잭션 결과를 "result"라는 정보 이름으로 리스트에 포함시킨다. 이는 10개의 넘버로써 표현될 수 있으며, 다음과 같다. Next, the transaction result is included in the list with the information name "result". This can be expressed as a number of 10, as follows.

트랜잭션 결과 코드transaction result code

1 - trans_finish : 한 트랜잭션이 끝난 상태 1 - trans_finish : A transaction is finished

2 - client_finish : 세션을 클라이언트가 종료한 상태 (Finish-FIN을 보냄) 2 - client_finish : The session is terminated by the client (Finish-FIN is sent)

3 - server_finish : 세션을 서버가 종료한 상태 (Finish-FIN을 보냄)3 - server_finish : The session is terminated by the server (Finish-FIN is sent)

4 - client_reset : 세션을 클라이언트가 종료한 상태 (Reset-RST를 보냄)4 - client_reset : The session is terminated by the client (Reset-RST is sent)

5 - server_reset : 세션을 서버가 종료한 상태 (Reset-RST를 보냄)5 - server_reset : The session is terminated by the server (Reset-RST is sent)

6 - client_timeout : 클라이언트가 요청을 보내는 중 Timeout에 걸려 종료된 상태6 - client_timeout : The client terminated due to Timeout while sending a request.

7 - server_timeout : 서버가 응답을 보내는 중 Timeout에 결려 종료된 상태7 - server_timeout : The server terminated due to timeout while sending a response

8 - session_error : HTTP 세션 오류8 - session_error : HTTP session error

9 - req_parser_error : HTTP Request Header 오류9 - req_parser_error : HTTP Request Header error

10 - rsp_parser_error : HTTP Response Header 오류10 - rsp_parser_error : HTTP Response Header error

그 다음으로, 트랜잭션 리스트에는, method 정보가 포함될 수 있다. 이는 1 Byte의 크기를 가질 수 있다. method 정보는 요청 메소드(POST, GET, HEAD, PUT ...)의 종류로써, 클라이언트가 요청한 요청 메소드의 타입을 나타낸다. 단위는 스트링이다. Next, method information may be included in the transaction list. This may have a size of 1 Byte. The method information is a type of request method (POST, GET, HEAD, PUT ...) and indicates the type of request method requested by the client. Unit is string.

추가적으로, 트랜잭션 리스트에는, response_code_number 정보가 포함될 수 있다. response_code_number 정보는 응답 결과로써, HTTP 상태 코드로 나타낸다. 예컨대, 서버가 응답한 Response Status Code로 "200, 304, 404, 500 …" 중 하나의 값으로 표현될 수 있다. 단위는 스트링이다. 이 역시, 1 Byte의 크기를 갖는 것이 좋다.Additionally, response_code_number information may be included in the transaction list. response_code_number information is a response result and is represented as an HTTP status code. For example, it can be expressed as one of "200, 304, 404, 500..." as the Response Status Code that the server responded. Unit is string. Also, it is good to have the size of 1 Byte.

다음으로, session_req_pkts 및 session_rsp_pkts에 이어, 트랜잭션 요청 및 응답과 관련된 추가적인 정보로써, session_req_bytes 정보 및 session_rsp_bytes 정보가 트랜잭션 리스트에 포함될 수 있다. 여기서, session_req_bytes 정보는, 트랜잭션의 요청 데이터의 바이트를 나타내며, 특정 클라이언트가 요청 데이터로써 보낸 바이트의 양을 기반으로 산출된다. 단위는 byte이다. session_rsp_bytes 정보는 트랜잭션의 응답 데이터의 바이트를 나타내며, 특정 서버가 응답 데이터로써 보낸 바이트의 양을 기반으로 산출된다. 단위는 byte이다. 이들 지표는 8 Byte의 크기를 가질 수 있다. Next, as additional information related to transaction requests and responses following session_req_pkts and session_rsp_pkts, session_req_bytes information and session_rsp_bytes information may be included in the transaction list. Here, the session_req_bytes information represents bytes of request data of a transaction, and is calculated based on the amount of bytes sent as request data by a specific client. Unit is byte. The session_rsp_bytes information represents bytes of transaction response data, and is calculated based on the amount of bytes sent as response data by a specific server. Unit is byte. These indicators may have a size of 8 bytes.

트랜잭션과 관련된 세션의 속도 정보로써, session_pps에 이어, session_bps 정보가 트랜잭션 리스트에 포함될 수 있다. session_bps 정보는 세션의 실시간 BPS를 나타내며, 현재 맺어진 세션의 BPS(Bit Per Second)를 기반으로 산출된다. 단위는 넘버이다. 이는 8 Byte의 크기를 가질 수 있다. As session speed information related to a transaction, session_bps information following session_pps may be included in the transaction list. The session_bps information represents the real-time BPS of a session and is calculated based on the BPS (Bit Per Second) of the currently connected session. Unit is number. It may have a size of 8 bytes.

마지막으로, 텍스트 리스트와 연관되는 요소 정보들이 트랜잭션 리스트의 말미에 생성될 수 있다. 이는 domain 정보, url 정보 및 mime 정보를 포함한다. 이는 해쉬 값으로 생성될 수 있다. 이들은 8 Byte의 크기를 가질 수 있다. Finally, element information associated with the text list may be created at the end of the transaction list. This includes domain information, url information and mime information. It can be created as a hash value. These may have a size of 8 bytes.

domain 정보는 클라이언트가 요청한 url 중 도메인과 연관된 정보를 나타낸다. 이는 스트링을 단위로 한다. 예컨대, "www.lgmobile.co.kr"과 같은 정보를 나타낸다. 이와 같은 텍스트는 텍스트에 기록하고, 여기에는 8 Byte의 해쉬값이 표시된다. Domain information represents information related to the domain among the urls requested by the client. It is based on strings. For example, information such as "www.lgmobile.co.kr" is indicated. Such text is recorded in text, and hash value of 8 bytes is displayed here.

url 정보는 클라이언트가 요청한 url로써, "/jsp/front/search/include/akc.jsp"와 같은 정보를 나타낸다. The url information is the url requested by the client and indicates information such as "/jsp/front/search/include/akc.jsp".

mime 정보는 응답 헤더 콘텐츠 타입을 나타낸다. 예컨대, text/html 등 중 하나일 수 있다. 이는 서버가 보낸 응답 HTTP 헤더 중 포함된 콘텐츠 타입 정보이다. The mime information represents a response header content type. For example, it may be one of text/html and the like. This is the content type information included in the response HTTP header sent by the server.

트랜잭션 리스트를 전체적으로 살펴보면, 여기에는, client_ip, server_ip, client_port, server_port, receive_time, start_user, end_usec, fin_usec, tran_client_rtt, tran_req_time, tran_latency, 및 tran_rsp_time, session_req_pkts, session_Rsp_pkts, session_pps, content_len, state, result, method, response_code_number, session_req_bytes, session_rsp_bytes, session_bps, domain, url, mime 정보의 총 26개의 정보가 포함될 수 있다. 즉, 하나의 트랜잭션 당 26개의 정보를 트랜잭션을 모니터링하기 위한 필수정보로써 1차적으로 트랜잭션 블록 생성부에서 생성한다. 그리고, 그 크기는 112 Byte인 것이 적절하다. 다만, 여기서 사용자 설정을 통해 후보 요소 정보를 더하거나 빼서 약 20개 정보 내지 30 개 정보를 트랜잭션 리스트로 사용할 수 있다. Looking at the transaction list as a whole, it includes: client_ip, server_ip, client_port, server_port, receive_time, start_user, end_usec, fin_usec, tran_client_rtt, tran_req_time, tran_latency, and tran_rsp_time, session_req_pkts, session_Rsp_pkts, session_pps, content_len, state, result, method, response_code_number, A total of 26 pieces of information such as session_req_bytes, session_rsp_bytes, session_bps, domain, url, and mime information can be included. That is, 26 pieces of information per one transaction are primarily generated by the transaction block generator as essential information for monitoring the transaction. And, it is appropriate that the size is 112 bytes. However, about 20 to 30 pieces of information may be used as a transaction list by adding or subtracting candidate element information through user settings.

향후 트랜잭션 리스트에 포함될 수 있는 후보 요소 정보로는, 세션이 맺어진 후 생성된 트랜잭션 번호를 나타내는 transaction_number 정보, 앞서 설명한, start_time, end_time, fin_time, used_time, 트랜잭션 완전종료까지의 사용 시간을 나타내는, fin_used_time 정보가 포함될 수 있다. 또한, 해당 url의 실시간 사용자(Client IP기준)의 수를 나타내는 users 정보, url이 사용되고 있을 시간 동안의 해당 url의 최대 사용자수를 나타내는 max_users 정보, 해당 url의 실시간 세션 수를 나타내는 sessions 정보, url이 사용되고 있을 시간 동안의 해당 url의 최대 세션 수를 나타내는 max_sessions 정보, 해당 url의 실시간 Wait 수를 나타내는 wait 정보, url이 사용되고 있을 시간 동안의 해당 url의 최대 응답대기 세션 수를 나타내는 max_wait 정보가 후보 요소 정보로 고려될 수 있다. 여기서, wait는 응답대기 중인 세션의 수를 나타낸다. 이는 도 10을 통해 보다 상세히 설명한다. Candidate element information that can be included in the future transaction list includes transaction_number information indicating the transaction number generated after the session is established, start_time, end_time, fin_time, used_time, and fin_used_time information indicating the usage time until the complete end of the transaction. can be included In addition, users information indicating the number of real-time users (based on client IP) of the url, max_users information indicating the maximum number of users of the url during the time the url is being used, sessions information indicating the number of real-time sessions of the url, and Candidate element information includes max_sessions information indicating the maximum number of sessions of the corresponding url during the time it is being used, wait information indicating the number of real-time waits of the corresponding url, and max_wait information indicating the maximum number of sessions waiting for response of the corresponding url during the time the url is being used. can be considered as Here, wait represents the number of sessions waiting for a response. This will be described in more detail with reference to FIG. 10 .

한편, 해당 url의 실시간 UPS(User Per Second)를 나타내는 ups 정보, 해당 url의 Max UPS를 나타내는 max_ups 정보, 해당 url의 실시간 CPS(Connection Per Second)를 나타내는 cps 정보, 해당 url의 Max CPS를 나타내는 max_cps 정보, 해당 url의 실시간 TPS(Transaction Per Second)를 나타내는 tps 정보, 해당 url의 Max TPS를 나타내는 max_tps 정보, 해당 url의 Idle을 나타내는 idle 정보 역시 후보 요소 정보로서, 고려될 수 있다. 네트워크의 속도와 관련된 CPS, TPS 등의 산출 방법은 이하 도 11을 통해 보다 상세히 설명한다. On the other hand, ups information indicating the real-time UPS (User Per Second) of the corresponding url, max_ups information indicating the Max UPS of the corresponding url, cps information indicating the real-time CPS (Connection Per Second) of the corresponding url, max_cps indicating the Max CPS of the corresponding url Information, tps information indicating real-time TPS (Transaction Per Second) of the corresponding url, max_tps information indicating Max TPS of the corresponding url, and idle information indicating idle of the corresponding url may also be considered as candidate element information. A method of calculating CPS, TPS, etc. related to network speed will be described in detail with reference to FIG. 11 below.

또한, 응답 헤더와 관련된 정보로 referrers 정보, 클라이언트가 보낸 요청 HTTP 헤더 중 포함된 에이전트를 나타내는 agent 정보, 및 클라이언트가 보낸 요청 HTTP 헤더 중 포함된 쿠키와 연관된 정보를 나타내는 cookie 정보도 후보 요소 정보로 고려될 수 있다.Also, as information related to the response header, referrers information, agent information indicating an agent included in the request HTTP header sent by the client, and cookie information indicating information related to the cookie included in the request HTTP header sent by the client are also considered candidate element information. It can be.

또한, 특정 서버의 네트워크 서비스와 관련된 정보로써, 해당 서버의 실시간 나라 수를 나타내는 server_countrys, 해당 서버의 Max Country 수를 나타내는 server_max_countrys, 해당 서버의 실시간 에러(400, 500대 Response Code)의 수를 나타내는 server_error, 해당 서버의 실시간 사용자 수(Client IP 기준)를 나타내는 server_user, 해당 서버의 최대 사용자 수를 나타내는 server_max_user, 해당 서버의 실시간 세션 수를 나타내는 server_sessions, 해당 서버의 Max 세션 수를 나타내는 server_max_sessions, 및 서버에서의 속도들과 관련된 지표로써, server_bps, server_max_bps, server_pps, server_max_pps, server_rtt, server_max_rtt, server_ups, server_max_ups, server_cps, server_max_cps, server_tps, server_max_tps, server_hps, server_max_hps, server_wait, server_max_wait, server_idle 정보가 트랜잭션 리스트에 포함될 요소 정보로서 고려될 수 있다. 다만, 서버측과 관련된 정보는 10초 단위 통계 정보에 다수 포함되므로, 트랜잭션 리스트에 중복하여 표시하지 않아도 된다.In addition, as information related to the network service of a specific server, server_countrys indicates the number of real-time countries of the server, server_max_countrys indicates the number of Max Countries of the server, and server_error indicates the number of real-time errors (400 and 500 response codes) of the server. , server_user indicating the number of real-time users of the server (based on Client IP), server_max_user indicating the maximum number of users on the server, server_sessions indicating the number of real-time sessions on the server, server_max_sessions indicating the maximum number of sessions on the server, and As indicators related to speeds, server_bps, server_max_bps, server_pps, server_max_pps, server_rtt, server_max_rtt, server_ups, server_max_ups, server_cps, server_max_cps, server_tps, server_max_tps, server_hps, server_max_hps, server_wait, server_max_wait, and server_idle information are considered as element information to be included in the transaction list. It can be. However, since a lot of information related to the server side is included in the 10-second statistical information, it is not necessary to display it redundantly in the transaction list.

server_error 정보는 해당 서버의 실시간 에러(400, 500대 Response Code)의 수를 나타낸다. 예컨대, 203.247.157.199 서버가 응답한 Response Status Code 중 400~599까지의 사용자 에러 및/또는 서버 에러의 수를 나타낼 수 있다.server_error information indicates the number of real-time errors (400, 500 response codes) of the corresponding server. For example, 203.247.157.199 may indicate the number of user errors and/or server errors from 400 to 599 among Response Status Codes responded by the server.

server_sessions 해당 서버의 실시간 세션 수를 나타낸다. server_max_sessions 정보는 해당 서버의 Max 세션 수를 나타낸다. server_bps 정보는 해당 서버의 실시간 BPS를 나타낸다. server_max_bps 정보는 해당 서버의 Max BPS를 나타낸다. server_pps 정보는 해당 서버의 실시간 PPS를 나타낸다. server_max_pps 정보는 해당 서버의 Max PPS를 나타낸다. server_sessions Indicates the number of real-time sessions on the server. server_max_sessions information indicates the maximum number of sessions for the server. The server_bps information represents the real-time BPS of the corresponding server. The server_max_bps information indicates the Max BPS of the server. The server_pps information indicates the real-time PPS of the corresponding server. The server_max_pps information indicates the Max PPS of the server.

server_rtt 정보는 해당 서버의 실시간 RTT를 나타낸다. server_max_rtt 정보는 해당 서버의 Max RTT를 나타내며, 예컨대, 이는 "203.247.157.199 서버의 최대 평균 RTT"로 해결될 수 있다. server_rtt 정보 및 server_max_rtt 정보의 단위는 micro sec이다. 특히, server_rtt는 10초 통계 정보 산출에 이용될 수 있다.server_rtt information indicates the real-time RTT of the corresponding server. The server_max_rtt information represents the Max RTT of the corresponding server, and for example, this may be resolved as “maximum average RTT of the 203.247.157.199 server”. The unit of server_rtt information and server_max_rtt information is micro sec. In particular, server_rtt can be used to calculate 10-second statistical information.

server_ups 정보는 해당 서버의 실시간 UPS를 나타낸다. 이는 "203.247.157.199 서버의 실시간 UPS"를 나타낼 수 있고, 이는 203.247.157.199 서버에는 초당 1명 정도의 사용자가 연결되고 있음을 의미한다. server_ups information indicates the real-time UPS of the corresponding server. This can represent "real-time UPS of server 203.247.157.199", which means that about 1 user is connecting to server 203.247.157.199 per second.

server_max_ups 정보는 해당 서버의 Max UPS를 나타낸다.The server_max_ups information indicates the Max UPS of the server.

server_cps 정보는 해당 서버의 실시간 CPS를 나타내고, 예컨대, "203.247.157.199 서버의 실시간 CPS"를 나타낼 수 있다. 이는 203.247.157.199 서버에는 초당 15개 정도의 세션이 연결되고 있음을 의미한다.The server_cps information indicates a real-time CPS of a corresponding server, and may indicate, for example, “real-time CPS of a server 203.247.157.199”. This means that about 15 sessions per second are connected to the 203.247.157.199 server.

server_max_cps 정보는 해당 서버의 Max CPS를 나타낸다.The server_max_cps information indicates the Max CPS of the server.

server_tps 정보는 해당 서버의 실시간 TPS를 나타내며, 예컨대, "203.247.157.199 서버의 실시간 TPS"를 나타낼 수 있다. 이는 203.247.157.199 서버에는 초당 79개 정도의 트랜잭션이 발생되고 있음을 나타낸다. The server_tps information indicates the real-time TPS of the corresponding server, and may indicate, for example, “real-time TPS of the 203.247.157.199 server”. This indicates that about 79 transactions per second are occurring in the 203.247.157.199 server.

server_max_tps 정보는 해당 서버의 Max TPS를 나타낸다.The server_max_tps information indicates the Max TPS of the server.

server_hps 정보는 해당 서버의 실시간 HPS(Hit Per Second: 초당 요청하는 url의 수)를 나타낸다. 예컨대, "203.247.157.199 서버의 실시간 HPS"를 나타낼 수 있다. 이는 203.247.157.199 서버r에는 초당 79개 정도의 url이 요청되고 있음을 의미한다.The server_hps information indicates the real-time HPS (Hit Per Second: the number of urls requested per second) of the server. For example, it may indicate “real-time HPS of server 203.247.157.199”. This means that about 79 urls are being requested per second to the 203.247.157.199 server.

server_max_hps 정보는 해당 서버의 Max HPS를 나타낸다.The server_max_hps information indicates the Max HPS of the server.

server_wait 정보는 해당 서버의 Wait 수를 나타낸다. 예컨대, "203.247.157.199 서버의 실시간 Wait 수"를 나타낼 수 있다. 이는 203.247.157.199 서버에는 현재 206개의 세션 중 46개의 세션이 응답대기 중임을 타나낼 수 있다.server_wait information indicates the number of waits of the corresponding server. For example, "the number of real-time waits of the 203.247.157.199 server" may be indicated. This can indicate that 46 sessions among 206 sessions are currently waiting for a response in the 203.247.157.199 server.

server_max_wait 정보는 해당 서버의 Max Wait 수를 나타낸다. server_max_wait information indicates the number of Max Waits for the server.

server_idle 정보는 해당 서버의 Idle Time을 나타낸다. 예컨대, "203.247.157.199 서버에 요청이 없었던 시간"을 나타낼 수 있다. 해당 서버가 접속자가 많은 경우 Idle은 짧아지고 접속자가 작을 경우 Idle이 길어진다. 단위는 micro sec이다.server_idle information indicates the idle time of the corresponding server. For example, it may indicate "the time when there was no request to the 203.247.157.199 server". If the server has many visitors, Idle becomes short, and if there are few visitors, Idle becomes long. The unit is micro sec.

추가적으로, 특정 클라이언트의 네트워크 서비스와 관련된 정보로써, 클라이언트의 나라 코드(KR ..)를 나타내는 client_country_code, 클라이언트의 실시간 에러 수를 나타내는 client_error, 클라이언트의 실시간 서버 접속 수를 나타내는 client_servers, 클라이언트의 최대 동시 서버의 수를 나타내는 client_max_servers, 클라이언트의 실시간 세션 수를 나타내는 client_sessions, 클라이언트의 최대 세션 수를 나타내는 client_max_sessions가 트랜잭션 리스트에 포함될 요소정보 후보로 고려될 수 있다. 이외에, 클라이언트 측 속도 관련 정보로써, client_bps, client_max_bps, client_pps, client_max_pps, client_max_rtt, client_sps, client_max_sps, client_cps, client_max_cps, client_tps, client_max_tps, client_hps, client_max_hps, client_wait, client_max_wait 및 client_idle 정보가 추가적으로 고려될 수 있다.Additionally, as information related to the network service of a specific client, client_country_code indicating the country code (KR ..) of the client, client_error indicating the number of real-time errors of the client, client_servers indicating the number of real-time server connections of the client, maximum number of simultaneous servers of the client client_max_servers indicating the number, client_sessions indicating the number of real-time sessions of a client, and client_max_sessions indicating the maximum number of sessions of a client may be considered as element information candidates to be included in the transaction list. In addition, client_bps, client_max_bps, client_pps, client_max_pps, client_max_rtt, client_sps, client_max_sps, client_cps, client_max_cps, client_tps, client_max_tps, client_hps, client_max_hps, client_wait, client_max_wait, and client_idle information may be additionally considered as client-side speed-related information.

마지막으로, 트랜잭션 리스트에 포함되는 것으로 고려될 수 있는 후보 요소 정보는 org, city_id, isp_id, os_id, browser_id, mobile_id, telcom_id 정보가 있다. 여기서, org 정보는 IP 기반 클라이언트의 조직을 나타낸다. 예컨대, "222.103.141.187 Client의 조직"은 Korea Telecom임을 나타낼 수 있다. city_id 정보는 IP 기반 클라이언트의 City Code를 나타낼 수 있다. 예컨대, "222.103.141.187 Client의 City"는 Seoul임을 나타낼 수 있다. isp_id 정보는 IP 기반 클라이언트의 ISP Code를 나타낸다. 예컨대, "222.103.141.187 Client의 ISP"는 Korea Telecom임을 나타낼 수 있다. os_id 정보는 클라이언트의 Client의 OS Code를 나타낸다. 이를 통해, 해당 클라이언트가 OS로 Win XP를 사용하는지, iOS를 사용하는지, 안드로이드를 사용하는지에 대한 정보를 확인할 수 있다. browser_id는 클라이언트의 Browser Code를 나타낸다. 이를 통해, 해당 클라이언트가 웹 브라우저로, explorer를 사용하는지, chrome을 사용하는지, MSIE9를 사용하는지에 대한 정보를 확인할 수 있다. mobile_id 정보는 클라이언트의 Mobile Code를 나타낸다. 이는 클라이언트의 기기 식별 정보로써, 삼성, 팬택, 애플 기기인지에 대한 정보를 나타낸다. telcom_id 정보는 클라이언트의 TelCom Code를 나타낸다. 이는 클라이언트의 통신사가 SKT인지 KT인지, LGT인지에 대한 정보를 나타낸다.Finally, candidate element information that can be considered to be included in the transaction list includes org, city_id, isp_id, os_id, browser_id, mobile_id, and telcom_id information. Here, the org information represents the organization of IP-based clients. For example, "organization of 222.103.141.187 Client" may represent Korea Telecom. city_id information may represent the city code of an IP-based client. For example, "222.103.141.187 Client's City" may represent Seoul. isp_id information represents the ISP Code of an IP-based client. For example, "222.103.141.187 Client's ISP" may represent Korea Telecom. os_id information indicates the client's OS Code of the client. Through this, it is possible to check information on whether the corresponding client uses Win XP, iOS, or Android as the OS. browser_id represents the browser code of the client. Through this, information on whether the corresponding client uses explorer, chrome, or MSIE9 as a web browser can be checked. mobile_id information indicates the mobile code of the client. This is the device identification information of the client, and indicates whether it is a Samsung, Pantech, or Apple device. The telcom_id information indicates the TelCom Code of the client. This indicates information about whether the client's carrier is SKT, KT, or LGT.

도 10은 본 발명의 일 실시예에 따른 패킷 분석 모듈에서 산출되는 서버 응답대기 세션 수 지표를 나타낸 개념도이다. 10 is a conceptual diagram illustrating an indicator of the number of sessions waiting for a server response calculated by a packet analysis module according to an embodiment of the present invention.

도 10을 참조하면, 서버는 복수 개의 클라이언트로부터 적어도 하나의 요청을 처리하기 때문에, 하나의 서버에서도 상기 요청들과 관련하여 복수 개의 세션들을 처리한다. 이때, 서버에서의 처리 시간이 길어지면 클라이언트에서의 대기시간이 길어지게 되고, 이는 클라이언트 장치의 사용자로 하여금 인내심을 요구하게 된다. 따라서, 서버에서의 이러한 응답대기 세션 수 정보는 상당히 중요한 의미를 갖는다. Referring to FIG. 10 , since a server processes at least one request from a plurality of clients, one server also processes a plurality of sessions in relation to the requests. At this time, if the processing time in the server becomes longer, the waiting time in the client becomes longer, which requires patience from the user of the client device. Therefore, information on the number of sessions waiting for a response in the server has a very important meaning.

응답대기 세션수는 요청과 연관된 복수 개의 세션들 중 서버에서의 처리를 거쳐 실제 응답데이터가 클라이언트로 전송된 세션을 뺀 나머지 세션의 수로 산출된다. 예컨대, 3개의 세션에 대해 1개의 세션에 대한 응답만 이루어진 경우, 응답대기 세션 수, wait = 3-1 = 2로써 산출된다. 즉, 패킷 분석 모듈은 클라이언트와 서버 사이에 존재하여 양자 간에 송수신되는 패킷들을 모두 확보 가능하므로 현재 서버 내에서 처리 중인 응답대기 세션의 수를 명확히 파악할 수 있다. The number of sessions waiting for response is calculated as the number of sessions remaining after subtracting the session in which actual response data is transmitted to the client through processing in the server among a plurality of sessions associated with the request. For example, when only one session is answered for three sessions, the number of waiting sessions, wait = 3-1 = 2, is calculated. That is, since the packet analysis module exists between the client and the server and can secure all packets transmitted and received between the two, the number of waiting sessions currently being processed in the server can be clearly identified.

서버에서 특정 요청에 대한 처리가 완료되었는지 여부는, 소스 ip와 목적지 ip를 기반으로 특정 url에 대한 요청에 대한 응답 패킷이 클라이언트로 전송되었는지를 기반으로 확인할 수 있다. 응답 패킷의 경우, 요청 패킷에서 나타난 상기 특정 url과 연관되어 있으면서, 목적지 ip와 소스 ip가 요청 패킷과 반대로 포함되었는지 여부를 확인함으로써 파악 가능하다. Whether or not processing of a specific request is completed in the server can be confirmed based on whether a response packet to a request for a specific url is transmitted to the client based on the source IP and the destination IP. In the case of a response packet, it can be identified by checking whether or not a destination ip and a source ip are included in the request packet, while being associated with the specific url shown in the request packet.

도 11은 본 발명의 일 실시예에 따른 패킷 분석 모듈에서 산출되는 CPS/TPS(Connection Per Second/Transaction Per Second) 지표를 나타낸 개념도이다. 11 is a conceptual diagram illustrating CPS/TPS (Connection Per Second/Transaction Per Second) indicators calculated by a packet analysis module according to an embodiment of the present invention.

도 11을 참조하면, 하나의 트랜잭션은 클라이언트와 서버 간에 적어도 하나의 요청과 상기 적어도 하나의 요청에 따른 적어도 하나의 응답데이터 패킷을 포함한다. 도 11의 실시예에서는 하나의 GET 요청에 대해 3개의 응답 데이터 패킷이 하나의 트랜잭션을 이루고 있는데, 이는 반드시 1:3의 관계를 가져야 하는 것은 아니고, 요청 패킷이 더 많고, 해당 요청 패킷에 대응 응답 데이터 패킷이 더 적은 관계를 가져도 무방하다. Referring to FIG. 11, one transaction includes at least one request between a client and a server and at least one response data packet according to the at least one request. In the embodiment of FIG. 11, three response data packets form one transaction for one GET request, which does not necessarily have a 1:3 relationship, and the number of request packets is greater, and the response data packet corresponds to the corresponding request packet. It is okay for data packets to have fewer relationships.

이러한 트랜잭션도 네트워크 서비스의 속도 및 지연과 연관하여 중요한 의미를 갖는다. 이에, 패킷 미러링 장치는 초당 새롭게 시도되는 트랜잭션의 수를 산출한다. 이는 TPS라고 한다. 또한, 특정 클라이언트와 특정 서버 간의 연결의 수, 이를 커넥션(connection)이라 부를 수 있는데, 초당 새롭게 시도되는 커넥션의 수를 산출한다. 이는 CPS라고 한다. These transactions also have important implications in relation to the speed and delay of network services. Accordingly, the packet mirroring device calculates the number of newly attempted transactions per second. This is called TPS. In addition, the number of connections between a specific client and a specific server, which can be called a connection, calculates the number of newly attempted connections per second. This is called CPS.

이외에도, 초당 연결되는 사용자의 수를 나타내는 UPS(User Per Second) 정보 및 특정 클라이언트, 특정 서버 또는 특정 세션을 통해 초당 송수신되는 데이터의 양을 나타내는 BPS 정보도 주기적으로 산출한다. 초당 송수신되는 패킷의 수를 나타내는 PPS 정보, 초당 요청하는 url의 수를 나타내는 HPS 정보 및 초당 연결되는 서버의 수를 나타내는 SPS(Server Per Second) 정보도 역시 주기적으로 산출한다. In addition, UPS (User Per Second) information indicating the number of users connected per second and BPS information indicating the amount of data transmitted/received per second through a specific client, specific server, or specific session are also calculated periodically. PPS information indicating the number of packets transmitted and received per second, HPS information indicating the number of urls requested per second, and SPS (Server Per Second) information indicating the number of servers connected per second are also periodically calculated.

도 12는 도 5의 트랜잭션 블록 내의 텍스트 리스트(text list)의 구성을 구체적으로 나타낸 테이블이다. FIG. 12 is a table showing the configuration of a text list in the transaction block of FIG. 5 in detail.

도 12를 참조하면, 텍스트 리스트는 도메인 정보, url 정보 및 mime 정보와 대응되는 텍스트 정보를 포함할 수 있다. 하나의 텍스트에 해쉬 함수를 적용하여 특정 값의 색인(index) 값을 생성한다. 생성되는 색인 값은 충돌 방지를 위해 H-1 해쉬 값과 H-2 해쉬 값의 연결로 생성될 수 있다. 즉, 제 1 텍스트는 H-1_TEXT1 해쉬값과 H-2_TEXT1 해쉬값의 연결로 생성될 수 있다. 이는 트랜잭션 리스트의 특정 정보와 연관된다. 예를 들어, 제 1 텍스트는 domain 정보와, 제 2 텍스트는 url 정보와, 그리고 제 3 텍스트는 mime 정보와 연관될 수 있다. Referring to FIG. 12 , the text list may include text information corresponding to domain information, url information, and mime information. A hash function is applied to one text to generate an index value of a specific value. The generated index value may be created by connecting the H-1 hash value and the H-2 hash value to prevent collision. That is, the first text may be generated by connecting the H- 1_TEXT1 hash value and the H- 2_TEXT1 hash value. It is associated with specific information in the transaction list. For example, the first text may be associated with domain information, the second text with url information, and the third text with mime information.

이때, 트랜잭션 리스트에 domain 정보로 생성된 8 Byte의 값 역시 동일한 색인을 나타내는 해쉬 값으로 표시된다. 다만, 나중에 입력된 정보와의 충돌 방지를 위해, H-1 해쉬값과 H-2 해쉬값을 연결리스트로 사용하여 써서 서로 간에 충돌이 나지 않도록 하여 두 리스트의 값들을 매칭시킨다. At this time, the 8-byte value generated as domain information in the transaction list is also displayed as a hash value indicating the same index. However, in order to prevent collision with information entered later, the values of the two lists are matched by using the H-1 hash value and the H-2 hash value as a linked list to prevent collision between them.

도 13은 도 5의 트랜잭션 블록 내의 통계 정보의 구성을 구체적으로 나타낸 테이블이다. FIG. 13 is a table specifically showing the configuration of statistical information in the transaction block of FIG. 5 .

도 13을 참조하면, 트랜잭션 블록은 일정시간(예컨대, 10초) 동안의 패킷 분석의 통계치를 나타내는 통계 정보를 포함한다. 통계 정보에는 약 30개 정도의 통계 정보가 포함될 수 있다. 통계 정보로 트랜잭션 리스트의 트랜잭션에 대한 상세 정보를 그대로 사용하는 것도 있고, 트랜잭션 상세 정보로부터 평균값(mean), 최대값(max), 최소값(min), 중간값(median) 및 합산값(sum)과 같은 산출치를 사용하는 것도 있다. 또는, 트랜잭션 리스트에는 포함되어 있진 않으나, 후보 요소 정보 또는 후보 요소 정보로부터 산출된 값이 포함될 수도 있다.Referring to FIG. 13 , a transaction block includes statistical information indicating a statistical value of packet analysis for a certain period of time (eg, 10 seconds). Statistical information may include about 30 statistical information. Some use detailed information about transactions in the transaction list as statistical information, and from transaction detailed information, the average value (mean), maximum value (max), minimum value (min), median value (median), and total value (sum) Some use the same calculation. Alternatively, although not included in the transaction list, candidate element information or a value calculated from candidate element information may be included.

통계 정보에 포함되는 산출치를 보다 구체적으로 살펴보면, 통계 정보에는 4 Byte 크기의 서버 IP 정보(server_ip), 4 Byte 크기의 통계 완료 시각 정보(stats_time) 및 8 Byte 크기의 도메인 정보(domain)가 포함될 수 있다. Looking at the calculated value included in the statistical information in more detail, the statistical information may include server IP information (server_ip) of 4 bytes, statistics completion time information (stats_time) of 4 bytes, and domain information (domain) of 8 bytes. there is.

server_ip 정보에는 10초 동안의 트랜잭션과 관련된 서버의 IP 정보가 포함된다. stats_time 정보는, 해당 통계의 완료 시각에 대한 정보가 포함된다. 이는, mmddhhmms0 에서 끝자리 0을 제외한 전체 9자리 정수로 표현될 수 있다. 예를 들어, 5월 21일 19시 38분 0초 내지 9초 까지의 통계는 052119381로 저장된다. 만약 끝자리가 0이면 10초 통계가 아닌 1분, 10분등의 누산된 통계를 나타낸다. 도메인 정보는 10 동안의 트랜잭션과 관련된 도메인 정보가 포함된다.The server_ip information includes the IP information of the server related to the transaction for 10 seconds. The stats_time information includes information about the completion time of the corresponding statistics. This can be expressed as a whole 9-digit integer excluding the 0 at the end of mmddhhmms0. For example, statistics from 19:38:0 to 9 seconds on May 21 are stored as 052119381. If the last digit is 0, it indicates accumulated statistics for 1 minute, 10 minutes, etc., not 10 second statistics. The domain information includes domain information related to 10 transactions.

다음으로, 10초 통계정보에는, 해당 트랜잭션과 관련된 서버의 트랜잭션 상태를 나타내는 다음의 정보들이 포함될 수 있다. 여기에는, server_user 정보, server_sessions 정보, server_session_c 정보, server_session_error 정보 및 server_transactions 정보가 포함되며, 위 정보들은 10초 동안의 트랜잭션들의 상기 지표 값의 합산 값(sum)으로 표시된다. 상기 정보들은 각각 8 Byte의 크기를 갖는 것이 바람직하다.Next, the 10-second statistical information may include the following information representing the transaction state of the server related to the corresponding transaction. This includes server_user information, server_sessions information, server_session_c information, server_session_error information, and server_transactions information, and the above information is displayed as a sum of the index values of transactions for 10 seconds. Preferably, each of the pieces of information has a size of 8 bytes.

보다 구체적으로, server_user 정보는, 10초 동안의 트랜잭션들과 관련된 적어도 하나의 서버들의 실시간 사용자 수(Client IP 기준)의 합산값을 나타낸다. server_sessions 정보는 10초 동안의 트랜잭션들과 관련된 적어도 하나의 서버들의 실시간 세션들의 합산값을 나타낸다. server_session_c 정보는 10초 동안의 트랜잭션과 관련된 서버의 session의 누적값을 나타낸다. 이는 일정한 시점에서 reset되는 값을 갖는다. 앞서 설명한 server_session은 해당 10초 동안의 session 수이므로, 10초 간격으로 끊어질 수 없다. 따라서 해당 서버의 실제 session 수는 server_session의 누적값으로 해결할 수 없기 때문에, 일정한 시간 단위로 server_session_c 값을 유지하는 것이 바람직하다.More specifically, the server_user information represents the sum of the number of real-time users (based on Client IP) of at least one server related to transactions for 10 seconds. The server_sessions information represents the sum of real-time sessions of at least one server related to transactions for 10 seconds. The server_session_c information indicates the cumulative value of server sessions related to transactions for 10 seconds. This has a value that is reset at a certain point in time. As the server_session described above is the number of sessions for 10 seconds, it cannot be disconnected every 10 seconds. Therefore, since the actual number of sessions of the server cannot be determined by the cumulative value of server_session, it is desirable to maintain the value of server_session_c in a certain unit of time.

다음으로, server_session_error 정보는, 10초 동안의 트랜잭션들과 관련된 적어도 하나의 서버들의 실시간 에러(400, 500대 Response Code)의 수의 합산값을 나타낸다. 그리고, server_transactions 정보는, 10초 동안의 트랜잭션들과 관련된 적어도 하나의 서버들의 트랜잭션의 수의 합산값을 나타낸다. 다수의 트랜잭션이 모여 하나의 세션을 이룰 수 있다.Next, server_session_error information represents the sum of the number of real-time errors (response codes of 400 and 500) of at least one server related to transactions for 10 seconds. And, server_transactions information represents the sum of the number of transactions of at least one server related to transactions for 10 seconds. Multiple transactions can be gathered to form one session.

다음으로, 10초 통계정보에는, 해당 트랜잭션과 관련된 서버의 트랜잭션에 사용되는 패킷의 전송속도와 관련된 통계정보들이 포함될 수 있다. 여기에는, server_bps 정보, server_req_bps 정보, server_rsp_bps 정보, server_pps 정보, server_ups 정보, server_cps 정보, server_tps 정보, server_hps 정보 및 server_rtt 정보, server_wait 정보, server_syn_wait 정보가 포함되며, 위 정보들은 10초 동안의 트랜잭션들의 상기 지표 값의 합산 값(sum), 최소값(min) 및 최대값(max)으로 표시된다. 상기 정보들은 각각 24 Byte의 크기를 갖는 것이 바람직하다. 즉, 합산값, 최소값 및 최대값이 각각 8 Byte의 크기를 가질 수 있다.Next, the 10-second statistical information may include statistical information related to the transmission speed of packets used for transactions of servers related to the transaction. This includes server_bps information, server_req_bps information, server_rsp_bps information, server_pps information, server_ups information, server_cps information, server_tps information, server_hps information, server_rtt information, server_wait information, and server_syn_wait information, which are the above indicators of transactions for 10 seconds. It is expressed as the sum of the values (sum), the minimum value (min) and the maximum value (max). Preferably, each of the pieces of information has a size of 24 bytes. That is, the sum value, the minimum value, and the maximum value may each have a size of 8 bytes.

보다 구체적으로, server_bps 정보는, 10초 동안의 트랜잭션들과 관련된 적어도 하나의 서버들의 해당 서버의 실시간 bps의 합산값, 최소값 및 최대값을 나타낸다. server_req_bps 정보는 10초 동안의 트랜잭션들과 관련된 적어도 하나의 서버들의 요청(request)과 연관된 패킷들의 bps 값들의 합산값, 최소값 및 최대값을 나타낸다. 즉, 이를 통해, 클라이언트 측의 속도를 유추할 수 있다. More specifically, the server_bps information represents the sum, minimum and maximum values of real-time bps of at least one server associated with transactions for 10 seconds. The server_req_bps information indicates a sum of bps values, a minimum value, and a maximum value of packets associated with a request of at least one server associated with transactions for 10 seconds. That is, through this, the speed of the client side can be inferred.

server_rsp_bps 정보는 10초 동안의 트랜잭션들과 관련된 적어도 하나의 서버들의 요청에 대한 응답(response)과 연관된 패킷들의 bps 값들의 합산값, 최소값 및 최대값을 나타낸다. 이를 통해 서버측의 속도를 유추할 수 있다. server_pps 정보는, 10초 동안의 트랜잭션들과 관련된 적어도 하나의 서버들의 해당 서버의 실시간 pps의 합산값, 최소값 및 최대값을 나타낸다. server_ups 정보는, 10초 동안의 트랜잭션들과 관련된 적어도 하나의 서버들의 해당 서버의 실시간 ups의 합산값, 최소값 및 최대값을 나타낸다. server_cps 정보는, 10초 동안의 트랜잭션들과 관련된 적어도 하나의 서버들의 해당 서버의 실시간 cps의 합산값, 최소값 및 최대값을 나타낸다. server_tps 정보는, 10초 동안의 트랜잭션들과 관련된 적어도 하나의 서버들의 해당 서버의 실시간 tps의 합산값, 최소값 및 최대값을 나타낸다. server_hps 정보는, 10초 동안의 트랜잭션들과 관련된 적어도 하나의 서버들의 해당 서버의 실시간 hps의 합산값, 최소값 및 최대값을 나타낸다. server_rtt 정보는 10초 동안의 트랜잭션들과 관련된 적어도 하나의 서버들의 실시간 RTT 값의 합산값, 최소값 및 최대값을 나타낸다. 다음으로, server_wait 정보는, 10초 동안의 트랜잭션들과 관련된 적어도 하나의 서버들의 wait 수의 합산값, 최소값 및 최대값을 나타낸다. 요청 이후에 응답이 끝나지 않은 session의 수로 산출된다. The server_rsp_bps information indicates a sum of bps values, a minimum value, and a maximum value of packets associated with a response to a request of at least one server associated with transactions for 10 seconds. Through this, the speed of the server side can be inferred. The server_pps information represents the sum, minimum, and maximum values of real-time pps of at least one server associated with transactions for 10 seconds. The server_ups information indicates a sum of real-time ups, a minimum value, and a maximum value of at least one server associated with transactions for 10 seconds. The server_cps information represents the sum, minimum and maximum values of real-time cps of a corresponding server of at least one server related to transactions for 10 seconds. The server_tps information represents the sum, minimum and maximum values of real-time tps of at least one server associated with transactions for 10 seconds. The server_hps information represents the sum, minimum, and maximum values of real-time hps of at least one server associated with transactions for 10 seconds. The server_rtt information represents the sum of real-time RTT values of at least one server related to transactions for 10 seconds, minimum value, and maximum value. Next, the server_wait information indicates the sum of the wait numbers of at least one server associated with transactions for 10 seconds, a minimum value, and a maximum value. It is calculated as the number of sessions for which a response has not been completed after a request.

그리고, server_syn_wait 정보는, 10초 동안의 트랜잭션들과 관련된 적어도 하나의 서버들로 전달 또는 서버들로부터 전달되는 동기 패킷(syn)의 wait 수의 합산값, 최소값 및 최대값을 나타낸다. 세션에 따라서 동기화(syn)가 완성되지 않은 상태나, 완료(fin)가 완료되지 않은 상태가 10초 통계 작성 시점에 발생할 수 있기 때문에, 이를 보완하는 용도로 작성된 필드이다.And, the server_syn_wait information represents the sum, minimum and maximum values of wait numbers of sync packets (syn) delivered to or from at least one server related to transactions for 10 seconds. Depending on the session, a state in which synchronization (syn) or fin is not completed may occur at the time of writing the 10-second statistics, so this field is created to compensate for this.

다음으로, 10초 통계정보에는, 해당 트랜잭션과 관련된 서버의 Idle Time과 관련된 정보가 포함된다. 이는, server_idle 지표로 표현되며, server_idle 지표들의 합산값(sum)으로 산출된다. 이는 8 Byte의 크기를 갖는 것이 바람직하다. 보다 구체적으로, 10초 동안의 트랜잭션들과 관련된 적어도 하나의 서버들의 Idle Time을 나타낸다. 즉 해당 서버(들)에 요청이 없었던 시간을 나타내며, 이 시간들의 합산값을 상기 통계 값에 표시한다. 단위는 micro sec인 것이 바람직하다.Next, the 10-second statistical information includes information related to the idle time of the server related to the transaction. This is expressed as a server_idle index, and is calculated as a sum of server_idle indexes. It is desirable to have a size of 8 bytes. More specifically, it indicates the idle time of at least one server related to transactions for 10 seconds. That is, it indicates the time when there is no request to the corresponding server(s), and the sum of these times is displayed in the statistical value. The unit is preferably micro sec.

다음으로, 10초 통계정보에는, 해당 트랜잭션들에서 나타난 HTTP 응답 코드(HTTP response code)에 대한 정보들이 포함될 수 있다. 이는 에러 응답 코드를 나타낸다. 여기에는, rsp_400 정보, rsp_500 정보, rsp_300 정보, 및 rsp_200 정보가 포함되며, 위 정보들은 10초 동안의 트랜잭션들에서 특정 에러의 수의 합산 값(sum)으로 표시된다. 상기 정보들은 각각 8 Byte의 크기를 갖는 것이 바람직하다.Next, the 10-second statistical information may include information about HTTP response codes appearing in corresponding transactions. This represents an error response code. This includes rsp_400 information, rsp_500 information, rsp_300 information, and rsp_200 information, and the above information is displayed as a sum of the number of specific errors in transactions for 10 seconds. Preferably, each of the pieces of information has a size of 8 bytes.

보다 구체적으로, rsp_400 정보는, 10초 동안의 트랜잭션들에서 400 에러의 발생 수의 합산값을 나타낸다. 즉, 요청 실패(bad request)의 횟수의 합계를 나타낸다. rsp_500 정보는, 10초 동안의 트랜잭션들에서 500 에러의 발생 수의 합산값을 나타낸다. 즉, 웹 서버가 요청사항을 수행할 수 없음을 나타내는 서버 내부 오류(internal server error)의 횟수의 합계를 나타낸다. rsp_300 정보는, 10초 동안의 트랜잭션들에서 최근에 옮겨진 데이터를 요청하는 300 에러(Multiple Choices)의 발생 수의 합산값을 나타낸다. rsp_200 정보는, 10초 동안의 트랜잭션들에서 에러 없이 전송 성공된 200 응답의 발생 수의 합산값을 나타낸다. More specifically, the rsp_400 information represents the sum of the number of occurrences of 400 errors in transactions for 10 seconds. That is, it represents the sum of the number of bad requests. The rsp_500 information represents the sum of the number of occurrences of 500 errors in transactions for 10 seconds. That is, it represents the sum of the number of internal server errors indicating that the web server was unable to fulfill the request. The rsp_300 information represents the sum of the number of occurrences of 300 errors (Multiple Choices) requesting recently moved data in transactions for 10 seconds. The rsp_200 information represents the sum of the number of occurrences of 200 responses transmitted successfully without errors in transactions for 10 seconds.

다음으로, 10초 통계정보에는, 해당 트랜잭션과 관련된 url에서의 응답대기시간에 대한 것으로 특정 웹 페이지에서의 실시간 응답대기시간의 합산값, 최소값 및 최대값을 나타낸다. 이는 24 Byte의 크기를 갖는 것이 바람직하다. Next, in the 10-second statistical information, it is about the response waiting time in the url related to the transaction, and indicates the total value, minimum value, and maximum value of real-time response waiting time in a specific web page. It is desirable to have a size of 24 bytes.

마지막으로, 10초 통계정보에는, 해당 트랜잭션과 관련된 요청전송시간(tran_req_time), 응답데이터 전송시간(tran_rsp_time), 요청 데이터의 양을 나타내는 req_byte 및 응답데이터의 양을 나타내는 rsp_byte 값의 통계정보가 포함된다. 이는 합산값으로 표현되는 것이 바람직하며, 각각 8 Byte의 크기를 가질 수 있다. Finally, the 10-second statistical information includes request transmission time (tran_req_time), response data transmission time (tran_rsp_time) related to the transaction, req_byte indicating the amount of request data, and rsp_byte value indicating the amount of response data. . It is preferable to express this as a sum value, and each may have a size of 8 Bytes.

보다 구체적으로, 요청전송시간(tran_req_time) 정보는 10초 동안의 트랜잭션과 관련된 요청 데이터(예컨대, 클라이언트로부터 서버로의 요청들)의 요청 전송 시간부터, 요청이 서버에 도달한 시간 값으로 산출된다. 이는 적어도 하나의 요청들의 요청전송시간 값들의 합으로 산출될 수 있다.More specifically, the request transmission time (tran_req_time) information is calculated from a request transmission time of request data (eg, requests from a client to a server) related to a transaction for 10 seconds to a time value at which the request reaches the server. This may be calculated as the sum of request transmission time values of at least one request.

응답데이터 전송시간(tran_rsp_time) 정보는 10초 동안의 트랜잭션과 관련된 응답 데이터의 전송시간으로써, 서버가 클라이언트로 요청과 관련된 컨텐츠를 전송하는데 소요되는 시간을 나타낸다. 이는 적어도 하나의 응답들의 전송시간들의 합으로 산출될 수 있다. 보다 구체적인 산출방법은 도 9를 참조하여 설명한다. req_byte 정보는, 10초 동안의 트랜잭션들에서의 요청으로 보낸 데이터의 양을 바이트로 나타낸 것이며, 요청 패킷들의 양의 합으로 산출될 수 있다. 또한, rsp_byte 정보는, 10초 동안의 트랜잭션들에서의 응답으로 보낸 데이터를 바이트로 나타낸 것이며, 응답 패킷들의 양의 합으로 산출될 수 있다. Response data transmission time (tran_rsp_time) information is the transmission time of response data related to a transaction for 10 seconds, indicating the time required for the server to transmit contents related to the request to the client. This may be calculated as the sum of transmission times of at least one response. A more specific calculation method will be described with reference to FIG. 9 . The req_byte information represents the amount of data sent as a request in transactions for 10 seconds in bytes, and can be calculated as the sum of the amount of request packets. In addition, rsp_byte information represents data sent as a response in transactions for 10 seconds in bytes, and can be calculated as the sum of the amounts of response packets.

추가적으로, 10초 통계 이외에, 1분, 10분 1시간 및 1일 상태에 대한 최대값 및 평균값(max, avg)도 해당하는 시간의 트랜잭션 블록에 포함되어 분석정보 수집장치로 제공될 수 있다. Additionally, in addition to the 10-second statistics, maximum and average values (max, avg) for 1 minute, 10 minutes, 1 hour, and 1 day states may also be included in the transaction block of the corresponding time and provided to the analysis information collection device.

도 14는 패킷 분석 모듈로부터의 분석 정보를 수집하는 분석 정보 수집 장치의 구성을 구체적으로 설명하기 위한 상세블록도이다. 도 14에 도시된 바와 같이, 본 발명의 일 실시예에 따른 분석 정보 수집 장치는 리시버(receiver), 로컬 파일 시스템(local F/S), 저장부, 레포지토리(Repository), 인덱싱 모듈, 브라우징 모듈, 경고 모듈 및 사용자 인터페이스를 포함할 수 있다. 14 is a detailed block diagram for specifically explaining the configuration of an analysis information collection device that collects analysis information from a packet analysis module. As shown in FIG. 14, the analysis information collection apparatus according to an embodiment of the present invention includes a receiver, a local file system (local F/S), a storage unit, a repository, an indexing module, a browsing module, It may include an alert module and user interface.

도 14를 참조하면, 수집모듈은 리시버, 로컬 파일 시스템 및 저장부를 포함할 수 있다. 그리고, 레포지토리와 연동할 수 있다. Referring to FIG. 14 , the collection module may include a receiver, a local file system, and a storage unit. And, it can be linked with the repository.

우선, 복수 개의 패킷 분석 모듈로부터 수집 모듈의 리시버는 HTTP 프로토콜(특히, HTTP3)을 이용하여 트랜잭션 블록 및 기타 정보를 수신할 수 있다. 여기서, 기타 정보는 실제 패킷을 포함한다. 리시버는 수신된 트랜잭션 블록 정보를 기반으로 파일 이름을 트랜잭션 블록의 수신시점 또는 트랜잭션 블록과 연관된 패킷의 수신시점으로 하여 템포러리 파일(temporary file)로 로컬 파일 시스템에 저장한다. 저장부는 리시버를 통해 템포러리 파일로 저장된, 동 시간대의 10초 트랜잭션 블록을 수신시간으로 정렬하여 1분 단위로 디렉토리(directory)를 만들어서 레포지토리에 저장한다. 정렬을 위해 10초 지연을 저장할 수 있다. 이때, 각 디렉토리는 8자리의 수신 연도, 월, 일 인덱스(yyyymmdd)와 4자리의 수신 시간 및 분(hhmm)의 인덱스로 저장된다. 수집 모듈은 이를 1분 단위 및 10분 단위로 통계치를 산출하여 함께 저장한다. 즉, 10초 단위 통계(이는 트랜잭션 블록에서 가져올 수 있음), 1분 단위 통계, 10분 단위 통계 등에 대한 분석이 이루어지고, 분석된 통계 결과는 각 디렉토리에 저장된다. 다시 말해, 개별 디렉토리에는 10초 통계 60개, 1분 통계 10개, 10분 통계 1개가 함께 저장된다. 인덱싱 모듈은 이러한 통계 정보에 개별적으로 검색용 인덱스를 붙인다. 이때, 00분 디렉토리에는 1시간 통계가 저장되고, 이와 유사하게, 0000분에는 1일 레포지토리 분석 결과가 함께 저장될 수 있다. 상기 1분 통계, 10분 통계, 1시간 통계 및 1일 통계는 트랜잭션 블록의 통계 정보와 동일 또는 유사한 정보의 통계치가 저장될 수 있다. 즉, 특정 성능지표의 평균값, 합산값, 최소값, 최대값, 중간값 중 적어도 하나를 산출하여 저장할 수 있다. First, a receiver of a collection module may receive transaction blocks and other information from a plurality of packet analysis modules using an HTTP protocol (in particular, HTTP3). Here, other information includes actual packets. The receiver sets the file name as the reception time of the transaction block or the reception time of the packet related to the transaction block based on the received transaction block information and stores it as a temporary file in the local file system. The storage unit sorts the 10-second transaction blocks of the same time zone, which are stored as temporary files through the receiver, by the reception time, creates a directory by 1 minute unit, and stores them in the repository. A 10 second delay can be stored for alignment. At this time, each directory is stored with an 8-digit year, month, and day index (yyyymmdd) and a 4-digit index of the received hour and minute (hhmm). The collection module calculates statistics by 1 minute and 10 minutes and stores them together. That is, 10-second statistics (which can be obtained from a transaction block), 1-minute statistics, 10-minute statistics, etc. are analyzed, and the analyzed statistical results are stored in each directory. In other words, each directory stores 60 10-second stats, 10 1-minute stats, and 1 10-minute stat. The indexing module individually attaches an index for search to such statistical information. At this time, statistics for 1 hour may be stored in the 00 minute directory, and similarly, 1 day repository analysis results may be stored together with 0000 minutes. The 1-minute statistics, 10-minute statistics, 1-hour statistics, and 1-day statistics may store statistical values of the same or similar information as the statistical information of the transaction block. That is, at least one of an average value, a summed value, a minimum value, a maximum value, and a median value of a specific performance index may be calculated and stored.

인덱싱 모듈은 시간에 대한 인덱스(Time Index), IP 또는 MAC 어드레스(MAC address)에 대한 인덱스(sIP(mac) Index), 텍스트 인덱스(Text Index), 상태 인덱스(State Index), 결과 인덱스(Result Index) 및 응답 코드 인덱스(Rsp. Code Index)를 1분 디렉토리의 각각의 트랜잭션에 붙일 수 있다. The indexing module includes a Time Index, an IP or MAC address index (sIP(mac) Index), a Text Index, a State Index, and a Result Index. ) and response code index (Rsp. Code Index) can be attached to each transaction in the 1-minute directory.

이를 통해, 브라우징 모듈에서 사용자 입력에 따라 효율적인 검색이 이루어지도록 할 수 있다. 즉, 기본 검색은 인덱싱 필드에 의해 검색되도록 한다. 인덱싱 필드는 앞서 설명한 인덱스들 중, 시간 인덱스, IP/MAC 인덱스 중 적어도 하나를 포함한다. Through this, it is possible to perform an efficient search according to user input in the browsing module. That is, the basic search is to be searched by indexing field. The indexing field includes at least one of a time index and an IP/MAC index among the indexes described above.

그리고는, 추가적인 검색은 필터링 필드를 통해 이루어지도록 한다. 필터링 필드는 응답 코드 인덱스, 상태 인덱스 및 결과 인덱스를 포함한다. 2차적인 필터링은 응답지연시간(latency), 이외의 추가 조건, 및/또는 명확한 특정 로그 검색을 위한 검색어를 통해 이루어질 수 있다. Then, additional searches are made through the filtering fields. Filtering fields include response code index, status index and result index. Secondary filtering may be performed through response latency, additional conditions other than that, and/or search terms for clear specific log searches.

한편, 분석정보 수집장치와 패킷 분석 모듈은 하나의 모니터링 시스템으로써, 서로 간에 정보를 주고받으며 모니터링을 수행한다. 이때, 트랜잭션 리스트 및 통계 정보의 운영과 관련된 정보를 주고받을 수 있다. 예를 들어, 트랜잭션 리스트에 26개의 요소정보를 포함시키는 제 1 방식, 20개의 요소정보를 포함시키는 제 2 방식 및 30개 이상의 요소정보를 포함시키는 제 3 방식 등을 설정하고, 거기에 포함되는 정보들의 목록을 공유한 후, 현재 사용하고 있는 방식을 공유하는 형태로 동작할 수 있다. 이때, 현재 모니터링 대상 서버들(또는 인스턴스들)의 수에 따라 어느 방식을 사용할지 분석정보 수집장치가 결정하여 패킷 분석 모듈로 안내할 수 있다. 패킷 분석 모듈은 분석정보 수집장치의 결정에 따라 그에 맞는 방식으로 트랜잭션 블록을 생성한다. 더욱이, 통계 정보도 마찬가지로 운영될 수 있다. 기본 방식은 패킷 분석 모듈이 생성하는 트랜잭션 블록이 10초 단위 통계를 내고, 분석정보 수집장치에서 1분 단위, 10분 단위, 및 1시간, 그리고 나아가 1일 단위 통계를 낸다. 다만, 분석정보 수집장치는 이를 다른 방식으로 분산수행할 것을 결정하여 명령할 수 있다. 예를 들어, 10초 단위 및 1분 단위 통계를 패킷 분석 모듈에서 산출하고, 10분 단위, 1시간 및 1일 단위 통계만 분석정보 수집장치에서 산출하도록 제어할 수 있다. 또는, 10초 단위, 1분 단위 및 10분 단위 통계까지 패킷 분석 모듈에서 산출하고, 1시간 및 1일 단위 통계만 분석정보 수집장치에서 산출하도록 제어할 수도 있다. Meanwhile, the analysis information collection device and the packet analysis module perform monitoring by exchanging information with each other as one monitoring system. At this time, information related to the operation of the transaction list and statistical information may be exchanged. For example, a first method including 26 element information, a second method including 20 element information, and a third method including 30 or more element information are set in the transaction list, and the information included therein After sharing the list of , it can operate in the form of sharing the currently used method. At this time, the analysis information collection device may determine which method to use according to the number of currently monitored servers (or instances) and guide the packet analysis module. The packet analysis module generates a transaction block according to the decision of the analysis information collection device in a suitable manner. Moreover, statistical information can be operated as well. In the basic method, the transaction block generated by the packet analysis module generates statistics in units of 10 seconds, and the analysis information collection device generates statistics in units of 1 minute, 10 minutes, 1 hour, and furthermore, 1 day. However, the analysis information collection device may determine and command to perform the distribution in a different way. For example, the packet analysis module may calculate statistics by 10 seconds and units of 1 minute, and the analysis information collection device may calculate only statistics by units of 10 minutes, 1 hour, and 1 day. Alternatively, the packet analysis module may calculate statistics by 10 seconds, 1 minute, and 10 minutes, and the analysis information collecting device may calculate only statistics by 1 hour and 1 day.

이상에서 설명된 시스템 또는 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 시스템, 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPA(field programmable array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.The system or apparatus described above may be implemented as hardware components, software components, and/or a combination of hardware components and software components. For example, systems, devices and components described in the embodiments may include, for example, a processor, a controller, an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, a field programmable array (FPA) ), programmable logic unit (PLU), microprocessor, or any other device capable of executing and responding to instructions. A processing device may run an operating system (OS) and one or more software applications running on the operating system. A processing device may also access, store, manipulate, process, and generate data in response to execution of software. For convenience of understanding, there are cases in which one processing device is used, but those skilled in the art will understand that the processing device includes a plurality of processing elements and/or a plurality of types of processing elements. It can be seen that it can include. For example, a processing device may include a plurality of processors or a processor and a controller. Other processing configurations are also possible, such as parallel processors.

소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.Software may include a computer program, code, instructions, or a combination of one or more of the foregoing, which configures a processing device to operate as desired or processes independently or collectively. The device can be commanded. Software and/or data may be any tangible machine, component, physical device, virtual equipment, computer storage medium or device, intended to be interpreted by or provide instructions or data to a processing device. , or may be permanently or temporarily embodied in a transmitted signal wave. Software may be distributed on networked computer systems and stored or executed in a distributed manner. Software and data may be stored on one or more computer readable media.

실시예들에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The method according to the embodiments may be implemented in the form of program instructions that can be executed through various computer means and recorded on a computer readable medium. The computer readable medium may include program instructions, data files, data structures, etc. alone or in combination. Program commands recorded on the medium may be specially designed and configured for the embodiment or may be known and usable to those skilled in computer software. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks and magnetic tapes, optical media such as CD-ROMs and DVDs, and magnetic media such as floptical disks. - includes hardware devices specially configured to store and execute program instructions, such as magneto-optical media, and ROM, RAM, flash memory, and the like. Examples of program instructions include high-level language codes that can be executed by a computer using an interpreter, as well as machine language codes such as those produced by a compiler. The hardware devices described above may be configured to operate as one or more software modules to perform the operations of the embodiments, and vice versa.

이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.As described above, although the embodiments have been described with limited examples and drawings, those skilled in the art can make various modifications and variations from the above description. For example, the described techniques may be performed in an order different from the method described, and/or components of the described system, structure, device, circuit, etc. may be combined or combined in a different form than the method described, or other components may be used. Or even if it is replaced or substituted by equivalents, appropriate results can be achieved.

그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.Therefore, other implementations, other embodiments, and equivalents of the claims are within the scope of the following claims.

Claims (21)

패킷 분석 모듈에서의 대용량 네트워크의 모니터링을 위한 실시간 패킷 분석 방법에 있어서,
분석 대상이 되는 복수 개의 패킷들을 수집하는 단계, 상기 복수 개의 패킷들은 제 1 엔티티(entity)와 제 2 엔티티 간에 송수신되는 패킷들을 포함함, 상기 제 1 엔티티 및 상기 제 2 엔티티 중 적어도 하나는 컴퓨팅 장치 또는 상기 컴퓨팅 장치에서 실행되는 애플리케이션 인스턴스(application instance)를 포함함;
상기 수집된 복수 개의 패킷들을 트랜잭션 단위로 분석하여 일정 시간 단위로 트랜잭션 블록(TR Block: TRansaction Block)을 생성하는 단계, 여기서, 상기 트랜잭션 블록은 상기 일정 시간 동안 처리되는 적어도 하나의 트랜잭션들에 대한 네트워크 성능에 대한 정보를 트랜잭션 단위로 생성한 데이터 블록임; 및
상기 생성된 트랜잭션 블록을 실시간으로 분석 정보 수집 장치로 전송하는 단계를 포함하되,
상기 대용량 네트워크는 클라우드 네트워크(cloud network)를 포함하며,
상기 패킷 분석 모듈을 개별적으로 포함하는, 상기 제 1 엔티티 및 제 3 엔티티는 상기 클라우드 네트워크의 서버단에 포함된 애플리케이션 인스턴스 기반의 엔티티이고,
상기 제 2 엔티티는 상기 클라우드 네트워크의 서버단에 포함되지 않은 엔티티이며,
상기 제 1 엔티티는 상기 클라우드 네트워크의 서버단을 구성하는 제 3 엔티티와 동기화되어 상기 일정 시간 간격으로 트랜잭션 블록을 상기 분석 정보 수집 장치로 제공하되,
상기 트랜잭션 블록은, (i) 상기 적어도 하나의 트랜잭션들에 포함된 각각의 트랜잭션의 한 세트의 요소 정보를 포함하는 트랜잭션 리스트(TR List) 정보, (ii) 상기 트랜잭션 리스트 정보와 연관된 텍스트들의 목록인 텍스트 리스트(Text List) 정보 및 (iii) 상기 일정 시간 동안의 네트워크 성능 지표의 통계 정보를 포함하고,
상기 한 세트의 요소 정보는 트랜잭션과 관련된 복수 분류의 필수 요소 정보로 구성되어 개별 분류의 요소 정보가 적어도 하나는 포함되도록 구성되되,
상기 복수 분류의 요소 정보는,
(i) 상기 제 1 엔티티 및 상기 제 2 엔티티의 IP 주소 및 포트 정보;
(ii) 트랜잭션과 관련된 시간 정보;
(iii) 트랜잭션과 관련된 세션 요청 및 응답 패킷과 관련된 정보;
(iv) 트랜잭션과 관련된 세션의 실시간 데이터 전송 속도 정보; 및
(v) 트랜잭션 상태 및 결과 정보를 포함하며,
상기 트랜잭션 블록은 전체적으로 2.2MB 미만의 크기로 생성되는, 대용량 네트워크 모니터링을 위한 실시간 패킷 분석 방법.
In the real-time packet analysis method for monitoring a large-capacity network in a packet analysis module,
Collecting a plurality of packets to be analyzed, the plurality of packets including packets transmitted and received between a first entity and a second entity, wherein at least one of the first entity and the second entity is a computing device or an application instance running on the computing device;
Analyzing the collected plurality of packets in transaction units to generate a TRansaction Block (TR Block) in units of a predetermined time, wherein the transaction block is a network information for at least one transaction processed for the predetermined period of time. It is a data block in which performance information is generated in units of transactions; and
Transmitting the generated transaction block to an analysis information collection device in real time,
The large-capacity network includes a cloud network,
The first entity and the third entity, which individually include the packet analysis module, are application instance-based entities included in a server end of the cloud network,
The second entity is an entity not included in the server side of the cloud network,
The first entity is synchronized with a third entity constituting the server side of the cloud network to provide a transaction block to the analysis information collection device at the predetermined time interval,
The transaction block includes (i) transaction list (TR List) information including one set of element information of each transaction included in the at least one transaction, and (ii) a list of texts associated with the transaction list information. Includes text list information and (iii) statistical information of network performance indicators for the predetermined time period;
The set of element information is composed of essential element information of a plurality of categories related to a transaction and includes at least one element information of an individual category,
Element information of the plurality of classifications,
(i) IP address and port information of the first entity and the second entity;
(ii) time information related to the transaction;
(iii) information related to session request and response packets related to the transaction;
(iv) real-time data transfer rate information of the session associated with the transaction; and
(v) contain transaction status and result information;
The transaction block is generated in a size of less than 2.2 MB as a whole, a real-time packet analysis method for monitoring a large-capacity network.
삭제delete 삭제delete 제 1 항에 있어서,
상기 트랜잭션과 관련된 시간 정보는, 트랜잭션 시작 및 종료 시각 정보, 트랜잭션 RTT(Round Trip Time) 정보, 요청전송시간(request time) 정보, 응답대기시간(latency) 정보 및 응답데이터 전송시간(response time) 정보를 포함하는, 대용량 네트워크 모니터링을 위한 실시간 패킷 분석 방법.
According to claim 1,
The time information related to the transaction includes transaction start and end time information, transaction RTT (Round Trip Time) information, request transmission time (request time) information, response latency information, and response data transmission time (response time) information. Including, real-time packet analysis method for monitoring large-capacity network.
제 1 항에 있어서,
상기 한 세트의 요소 정보는 상기 제 1 엔티티 또는 상기 제 2 엔티티가 요청한 url(uniform resource locator), 상기 url 중 도메인에 대한 정보(domain) 및 응답 헤더 콘텐츠 타입 정보(MIME)를 더 포함하고,
상기 url의 정보, 상기 도메인에 대한 정보 및 응답 헤더 콘텐츠 타입 정보는 해쉬 값(hash value)으로 표현되는, 대용량 네트워크 모니터링을 위한 실시간 패킷 분석 방법.
According to claim 1,
The set of element information further includes a uniform resource locator (url) requested by the first entity or the second entity, domain information (domain), and response header content type information (MIME) among the urls,
The url information, the domain information, and the response header content type information are expressed as a hash value, a real-time packet analysis method for monitoring a large-capacity network.
제 5 항에 있어서,
상기 해쉬 값은 상기 텍스트 리스트에 포함된 복수 개의 텍스트 중 하나와 매칭되며,
상기 해쉬 값은 복수 개로 구성되어 서로 간에 충돌(collision)을 방지하는, 대용량 네트워크 모니터링을 위한 실시간 패킷 분석 방법.
According to claim 5,
The hash value matches one of a plurality of texts included in the text list,
The hash value is composed of a plurality of pieces to prevent collisions with each other, a real-time packet analysis method for monitoring a large-capacity network.
제 1 항에 있어서,
상기 트랜잭션 리스트에 현재 포함된 요소 정보가 후보 요소 정보로 대체될 때, 동일 분류 내의 후보 요소 정보로 대체되는, 대용량 네트워크 모니터링을 위한 실시간 패킷 분석 방법.
According to claim 1,
When element information currently included in the transaction list is replaced with candidate element information, it is replaced with candidate element information within the same classification.
제 1 항에 있어서,
상기 일정 시간은 8초 내지 12초이며,
상기 통계 정보는 상기 일정 시간 동안의 적어도 하나의 트랜잭션에서의, 서버측 데이터 전송 속도의 통계값, 응답대기시간의 통계값, 및 트랜잭션 요청 및 응답에 대한 시간과 데이터 양의 통계값을 포함하는, 대용량 네트워크 모니터링을 위한 실시간 패킷 분석 방법.
According to claim 1,
The predetermined time is 8 seconds to 12 seconds,
The statistical information includes a statistical value of a server-side data transfer rate, a statistical value of a response waiting time, and a statistical value of time and data amount for transaction request and response in at least one transaction during the predetermined time period. A real-time packet analysis method for monitoring high-capacity networks.
제 8 항에 있어서,
상기 통계 정보는 상기 일정시간 동안의 적어도 하나의 트랜잭션에서 발생되는 HTTP 에러의 합계 값 정보를 더 포함하는, 대용량 네트워크 모니터링을 위한 실시간 패킷 분석 방법.
According to claim 8,
The statistical information further includes information on the total value of HTTP errors generated in at least one transaction for the predetermined time period, real-time packet analysis method for monitoring a large-capacity network.
제 1 항에 있어서,
상기 각각의 트랜잭션에 대한 한 세트의 요소 정보는 100 내지 120 Byte의 크기를 가지며,
상기 트랜잭션 리스트는 10000개 이하의 트랜잭션에 대한 정보를 포함하며,
상기 트랜잭션 리스트는 0.8 내지 1.2MiB의 크기로 생성되는, 대용량 네트워크 모니터링을 위한 실시간 패킷 분석 방법.
According to claim 1,
One set of element information for each transaction has a size of 100 to 120 bytes,
The transaction list includes information about 10000 or less transactions,
The transaction list is generated in a size of 0.8 to 1.2 MiB, a real-time packet analysis method for monitoring a large-capacity network.
제 10 항에 있어서,
상기 텍스트 리스트는 해쉬 값을 포함하며,
압축에 의해 1MiB 미만의 크기로 생성되는, 대용량 네트워크 모니터링을 위한 실시간 패킷 분석 방법.
According to claim 10,
The text list includes hash values,
A real-time packet analysis method for monitoring large-capacity networks generated by compression to a size of less than 1 MiB.
제 1 항에 있어서,
상기 통계 정보는 500 Byte 미만의 크기로 생성되는, 대용량 네트워크 모니터링을 위한 실시간 패킷 분석 방법.
According to claim 1,
The statistical information is generated in a size of less than 500 bytes, a real-time packet analysis method for monitoring a large-capacity network.
삭제delete 제 1 항에 있어서,
상기 패킷 분석 모듈은, 상기 애플리케이션 인스턴스(application instance)에 에이전트(agent) 형태로 임베디드되는(embedded), 대용량 네트워크 모니터링을 위한 실시간 패킷 분석 방법.
According to claim 1,
The packet analysis module is embedded in the application instance in the form of an agent, a real-time packet analysis method for monitoring a large-capacity network.
제 1 항에 있어서,
상기 트랜잭션 블록은 상기 일정 시간 단위로 생성되어 HTTP(Hypertext Transfer Protocol)를 이용하여 실시간으로 상기 분석 정보 수집 장치로 제공되는, 대용량 네트워크 모니터링을 위한 실시간 패킷 분석 방법.
According to claim 1,
The real-time packet analysis method for monitoring a large-capacity network, wherein the transaction block is generated in units of the predetermined time and provided to the analysis information collection device in real time using HTTP (Hypertext Transfer Protocol).
제 1 항에 있어서, 상기 패킷 분석 모듈은,
상기 패킷 분석 모듈 단독으로 패킷 분석 전반을 모두 수행하는 일원화된 분석모드인 제 1 모드와 상기 분석정보 수집장치와 분산하여 패킷 분석 전반 중 일부를 수행하는 이원화된 분석모드인 제 2 모드를 중 하나를 선택하여 패킷을 분석하되,
상기 제 1 모드의 분석 결과가 상기 제 2 모드의 분석 결과보다 많은 양을 갖는, 대용량 네트워크 모니터링을 위한 실시간 패킷 분석 방법.
The method of claim 1, wherein the packet analysis module,
One of the first mode, which is a unified analysis mode in which the entire packet analysis is performed by the packet analysis module alone, and the second mode, which is a dualized analysis mode in which some of the overall packet analysis is performed in a distributed manner with the analysis information collection device. select and analyze the packet,
The real-time packet analysis method for monitoring a large-capacity network, wherein the analysis result of the first mode has a larger amount than the analysis result of the second mode.
제 16 항에 있어서,
상기 제 1 모드와 상기 제 2 모드 중 하나의 선택은 모니터링 대상 서버들의 수로 결정되는, 대용량 네트워크 모니터링을 위한 실시간 패킷 분석 방법.
17. The method of claim 16,
The real-time packet analysis method for monitoring a large-capacity network, wherein selection of one of the first mode and the second mode is determined by the number of monitoring target servers.
대용량 네트워크의 모니터링을 위한 실시간 패킷 분석을 수행하는 패킷 분석 장치에 있어서,
분석 대상이 되는 복수 개의 패킷들을 수집하는 패킷 수집부, 상기 복수 개의 패킷들은 제 1 엔티티(entity)와 제 2 엔티티 간에 송수신되는 패킷들을 포함함, 상기 제 1 엔티티 및 상기 제 2 엔티티 중 적어도 하나는 컴퓨팅 장치 또는 상기 컴퓨팅 장치에서 실행되는 애플리케이션 인스턴스(application instance)를 포함함;
상기 수집된 복수 개의 패킷들을 트랜잭션 단위로 분석하여 일정 시간 단위로 트랜잭션 블록(TR Block: TRansaction Block)을 생성하는 트랜잭션 블록 생성부, 여기서, 상기 트랜잭션 블록은 상기 일정 시간 동안 처리되는 적어도 하나의 트랜잭션들에 대한 네트워크 성능에 대한 정보를 트랜잭션 단위로 생성한 데이터 블록임; 및
상기 생성된 트랜잭션 블록을 실시간으로 분석 정보 수집 장치로 전송하는 분석정보 제공부를 포함하되,
상기 대용량 네트워크는 클라우드 네트워크(cloud network)를 포함하며,
상기 제 1 엔티티 및 제 3 엔티티는 상기 클라우드 네트워크의 서버단에 포함된 애플리케이션 인스턴스 기반의 엔티티이고,
상기 패킷 분석 장치는 상기 제 1 엔티티 및 상기 제 3 엔티티 각각에 개별적으로 포함되고,
상기 제 2 엔티티는 상기 클라우드 네트워크의 서버단에 포함되지 않은 엔티티이며,
상기 제 1 엔티티는 상기 클라우드 네트워크의 서버단을 구성하는 제 3 엔티티와 동기화되어 상기 일정 시간 간격으로 트랜잭션 블록을 상기 분석 정보 수집 장치로 제공하되,
상기 트랜잭션 블록은, (i) 상기 적어도 하나의 트랜잭션들에 포함된 각각의 트랜잭션의 한 세트의 요소 정보를 포함하는 트랜잭션 리스트(TR List) 정보, (ii) 상기 트랜잭션 리스트 정보와 연관된 텍스트들의 목록인 텍스트 리스트(Text List) 정보 및 (iii) 상기 일정 시간 동안의 네트워크 성능 지표의 통계 정보를 포함하고,
상기 한 세트의 요소 정보는 트랜잭션과 관련된 복수 분류의 필수 요소 정보로 구성되어 개별 분류의 요소 정보가 적어도 하나는 포함되도록 구성되되,
상기 복수 분류의 요소 정보는,
(i) 상기 제 1 엔티티 및 상기 제 2 엔티티의 IP 주소 및 포트 정보;
(ii) 트랜잭션과 관련된 시간 정보;
(iii) 트랜잭션과 관련된 세션 요청 및 응답 패킷과 관련된 정보;
(iv) 트랜잭션과 관련된 세션의 실시간 데이터 전송 속도 정보; 및
(v) 트랜잭션 상태 및 결과 정보를 포함하며,
상기 트랜잭션 블록은 전체적으로 2.2MB 미만의 크기로 생성되는, 대용량 네트워크 모니터링을 위한 실시간 패킷 분석을 수행하는 패킷 분석 장치.
A packet analysis apparatus for performing real-time packet analysis for monitoring of a large-capacity network,
A packet collecting unit that collects a plurality of packets to be analyzed, the plurality of packets including packets transmitted and received between a first entity and a second entity, at least one of the first entity and the second entity Comprising a computing device or an application instance running on the computing device;
A transaction block generation unit that analyzes the collected packets in units of transactions and generates a TRansaction Block (TR Block) in units of a predetermined time, wherein the transaction block includes at least one transaction processed for the predetermined period of time. It is a data block that generates information on network performance for , in units of transactions; and
Including an analysis information providing unit for transmitting the generated transaction block to an analysis information collection device in real time,
The large-capacity network includes a cloud network,
The first entity and the third entity are application instance-based entities included in the server side of the cloud network,
The packet analysis device is individually included in each of the first entity and the third entity,
The second entity is an entity not included in the server side of the cloud network,
The first entity is synchronized with a third entity constituting the server side of the cloud network to provide a transaction block to the analysis information collection device at the predetermined time interval,
The transaction block includes (i) transaction list (TR List) information including one set of element information of each transaction included in the at least one transaction, and (ii) a list of texts associated with the transaction list information. Includes text list information and (iii) statistical information of network performance indicators for the predetermined time period;
The set of element information is composed of essential element information of a plurality of categories related to a transaction and includes at least one element information of an individual category,
Element information of the plurality of classifications,
(i) IP address and port information of the first entity and the second entity;
(ii) time information related to the transaction;
(iii) information related to session request and response packets related to the transaction;
(iv) real-time data transfer rate information of the session associated with the transaction; and
(v) contain transaction status and result information;
The packet analysis apparatus for performing real-time packet analysis for monitoring a large-capacity network, wherein the transaction block is generated in a size of less than 2.2 MB as a whole.
대용량 네트워크의 모니터링을 위한 실시간 패킷 분석을 수행하는 패킷 분석 시스템에 있어서,
분석 대상이 되는 복수 개의 패킷들 - 상기 복수 개의 패킷들은 제 1 엔티티(entity)와 제 2 엔티티 - 상기 제 1 엔티티 및 상기 제 2 엔티티 중 적어도 하나는 컴퓨팅 장치 또는 상기 컴퓨팅 장치에서 실행되는 애플리케이션 인스턴스(application instance)를 포함함 - 간에 송수신되는 패킷들을 포함함 - 을 수집하여, 트랜잭션 단위로 분석하여 제 1 시간 단위로 트랜잭션 블록(TR Block: TRansaction Block) - 상기 트랜잭션 블록은 상기 제 1 시간 동안 처리되는 적어도 하나의 트랜잭션들에 대한 네트워크 성능에 대한 정보를 트랜잭션 단위로 생성한 데이터 블록임 - 을 생성하고, 상기 생성된 트랜잭션 블록을 실시간으로 분석 정보 수집 장치로 전송하는 패킷 분석 장치; 및
상기 트랜잭션 블록을 수신하여 추가적인 성능 분석을 수행하여 레포지토리(repository)에 저장하는 분석정보 수집장치를 포함하되,
상기 대용량 네트워크는 클라우드 네트워크(cloud network)를 포함하며,
상기 제 1 엔티티 및 제 3 엔티티는 상기 클라우드 네트워크의 서버단에 포함된 애플리케이션 인스턴스 기반의 엔티티이고,
상기 패킷 분석 장치는 상기 제 1 엔티티 및 상기 제 3 엔티티 각각에 개별적으로 포함되고,
상기 제 2 엔티티는 상기 클라우드 네트워크의 서버단에 포함되지 않은 엔티티이며,
상기 제 1 엔티티는 상기 클라우드 네트워크의 서버단을 구성하는 제 3 엔티티와 동기화되어 일정 시간 간격으로 트랜잭션 블록을 상기 분석 정보 수집 장치로 제공하되,
상기 트랜잭션 블록은, (i) 상기 적어도 하나의 트랜잭션들에 포함된 각각의 트랜잭션의 한 세트의 요소 정보를 포함하는 트랜잭션 리스트(TR List) 정보, (ii) 상기 트랜잭션 리스트 정보와 연관된 텍스트들의 목록인 텍스트 리스트(Text List) 정보 및 (iii) 상기 일정 시간 동안의 네트워크 성능 지표의 통계 정보를 포함하고,
상기 한 세트의 요소 정보는 트랜잭션과 관련된 복수 분류의 필수 요소 정보로 구성되어 개별 분류의 요소 정보가 적어도 하나는 포함되도록 구성되되,
상기 복수 분류의 요소 정보는,
(i) 상기 제 1 엔티티 및 상기 제 2 엔티티의 IP 주소 및 포트 정보;
(ii) 트랜잭션과 관련된 시간 정보;
(iii) 트랜잭션과 관련된 세션 요청 및 응답 패킷과 관련된 정보;
(iv) 트랜잭션과 관련된 세션의 실시간 데이터 전송 속도 정보; 및
(v) 트랜잭션 상태 및 결과 정보를 포함하며,
상기 트랜잭션 블록은 전체적으로 2.2MB 미만의 크기로 생성되는, 대용량 네트워크 모니터링을 위한 실시간 패킷 분석을 수행하는 패킷 분석 시스템.
In a packet analysis system for performing real-time packet analysis for monitoring of a large-capacity network,
A plurality of packets to be analyzed - the plurality of packets are a first entity and a second entity - at least one of the first entity and the second entity is a computing device or an application instance ( application instance) - including packets transmitted and received between them - is collected, analyzed in units of transactions, and a transaction block (TR Block: TRansaction Block) in units of a first time unit - the transaction block is processed during the first time a packet analyzer for generating information about network performance of at least one transaction, which is a data block generated in transaction units, and transmitting the generated transaction block to an analysis information collection device in real time; and
Including an analysis information collection device for receiving the transaction block, performing additional performance analysis, and storing it in a repository,
The large-capacity network includes a cloud network,
The first entity and the third entity are application instance-based entities included in the server side of the cloud network,
The packet analysis device is individually included in each of the first entity and the third entity,
The second entity is an entity not included in the server side of the cloud network,
The first entity is synchronized with a third entity constituting the server side of the cloud network and provides a transaction block to the analysis information collection device at regular time intervals,
The transaction block includes (i) transaction list (TR List) information including one set of element information of each transaction included in the at least one transaction, and (ii) a list of texts associated with the transaction list information. Includes text list information and (iii) statistical information of network performance indicators for the predetermined time period;
The set of element information is composed of essential element information of a plurality of categories related to a transaction and includes at least one element information of an individual category,
Element information of the plurality of classifications,
(i) IP address and port information of the first entity and the second entity;
(ii) time information related to the transaction;
(iii) information related to session request and response packets related to the transaction;
(iv) real-time data transfer rate information of the session associated with the transaction; and
(v) contain transaction status and result information;
The packet analysis system for performing real-time packet analysis for large-capacity network monitoring, wherein the transaction block is generated in a size of less than 2.2 MB as a whole.
제 19 항에 있어서,
상기 추가적인 성능 분석은 제 2 시간 단위의 네트워크 성능 지표를 산출하는 것을 포함하되,
상기 제 2 시간은 상기 제 1 시간보다 긴 시간인, 대용량 네트워크 모니터링을 위한 실시간 패킷 분석을 수행하는 패킷 분석 시스템.
According to claim 19,
The additional performance analysis includes calculating a network performance indicator of a second time unit,
The second time is a time longer than the first time, a packet analysis system for performing real-time packet analysis for monitoring a large-capacity network.
제 19 항에 있어서,
상기 분석정보 수집장치는 상기 트랜잭션 블록에 포함되는 통계 정보에서 처리해야 할 시간 단위인 상기 제 1 시간 및 상기 트랜잭션 블록에 포함되는 트랜잭션 리스트에 포함되는 요소정보를 특정하여 상기 패킷 분석 장치로 통지하는, 대용량 네트워크 모니터링을 위한 실시간 패킷 분석을 수행하는 패킷 분석 시스템.
According to claim 19,
The analysis information collection device specifies the first time, which is a time unit to be processed in the statistical information included in the transaction block, and element information included in the transaction list included in the transaction block, and notifies the packet analysis device. A packet analysis system that performs real-time packet analysis for high volume network monitoring.
KR1020200065005A 2020-05-29 2020-05-29 Real-time packet analysis method and apparatus for mass network monitoring KR102537370B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200065005A KR102537370B1 (en) 2020-05-29 2020-05-29 Real-time packet analysis method and apparatus for mass network monitoring

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200065005A KR102537370B1 (en) 2020-05-29 2020-05-29 Real-time packet analysis method and apparatus for mass network monitoring

Publications (2)

Publication Number Publication Date
KR20210147575A KR20210147575A (en) 2021-12-07
KR102537370B1 true KR102537370B1 (en) 2023-05-30

Family

ID=78867962

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200065005A KR102537370B1 (en) 2020-05-29 2020-05-29 Real-time packet analysis method and apparatus for mass network monitoring

Country Status (1)

Country Link
KR (1) KR102537370B1 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140293804A1 (en) 2013-04-01 2014-10-02 Cellco Partnership D/B/A Verizon Wireless Backhaul network performance monitoring using segmented analytics

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150116509A (en) * 2014-04-07 2015-10-16 한국전자통신연구원 Method and appratus for collecting and analyzing traffic data on cloud computing system
EP3251295A1 (en) * 2015-01-27 2017-12-06 Nokia Solutions and Networks Oy Traffic flow monitoring
KR102457261B1 (en) * 2015-10-27 2022-10-19 에스케이플래닛 주식회사 System for server management in middleware environment
CN106790762B (en) * 2017-01-11 2022-05-24 腾讯科技(深圳)有限公司 Domain name resolution method and device
KR102076861B1 (en) * 2018-01-18 2020-05-18 주식회사맥데이타 Network performance diagnosis method and apparatus, and system
KR102076862B1 (en) * 2018-01-18 2020-02-12 주식회사맥데이타 Network performance indicator visualization 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 (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140293804A1 (en) 2013-04-01 2014-10-02 Cellco Partnership D/B/A Verizon Wireless Backhaul network performance monitoring using segmented analytics

Also Published As

Publication number Publication date
KR20210147575A (en) 2021-12-07

Similar Documents

Publication Publication Date Title
KR102298268B1 (en) An apparatus for network monitoring based on edge computing and method thereof, and system
Zhou et al. Online internet traffic monitoring system using spark streaming
KR102076862B1 (en) Network performance indicator visualization method and apparatus, and system
US5600632A (en) Methods and apparatus for performance monitoring using synchronized network analyzers
US9306816B2 (en) System and method for replaying network captures
US7437451B2 (en) System and method for collecting desired information for network transactions at the kernel level
WO2005109754A1 (en) System and method for real-time monitoring and analysis for network traffic and content
Liu et al. NetAlytics: Cloud-scale application performance monitoring with SDN and NFV
EP2880839A2 (en) Web caching method and system for content distribution network (cdn)
KR102423039B1 (en) Real-time packet data storing method and apparatus for mass network monitoring
Cardaci et al. Performance evaluation of SPDY over high latency satellite channels
US9055113B2 (en) Method and system for monitoring flows in network traffic
US8966321B2 (en) Logical port and layer protocol test configuration resource manager
KR102423038B1 (en) Real-time packet data collection method and apparatus for mass network monitoring
US8526470B2 (en) Synchronized commands for network testing
KR102537370B1 (en) Real-time packet analysis method and apparatus for mass network monitoring
Shieh et al. A stateless approach to connection-oriented protocols
KR102027759B1 (en) Network-related new device registration method and apparatus
Viipuri Traffic analysis and modeling of IP core networks
Gharakheili et al. iTeleScope: Intelligent video telemetry and classification in real-time using software defined networking
Uzun et al. End-to-end internet speed analysis of mobile networks with mapReduce
Hall Multi-layer network monitoring and analysis
Nikitinskiy et al. Analyzing the possibility of applying asymmetric transport protocols in terms of software defined networks
Caviglione et al. Characterizing SPDY over high latency satellite channels
Abd Rahman et al. Hybrid optimisation for managed network services

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E601 Decision to refuse application
E902 Notification of reason for refusal
GRNT Written decision to grant