KR102563247B1 - 네트워크 시스템 성능 저하 실시간 모니터링 장치 - Google Patents

네트워크 시스템 성능 저하 실시간 모니터링 장치 Download PDF

Info

Publication number
KR102563247B1
KR102563247B1 KR1020210029940A KR20210029940A KR102563247B1 KR 102563247 B1 KR102563247 B1 KR 102563247B1 KR 1020210029940 A KR1020210029940 A KR 1020210029940A KR 20210029940 A KR20210029940 A KR 20210029940A KR 102563247 B1 KR102563247 B1 KR 102563247B1
Authority
KR
South Korea
Prior art keywords
client
server
session
information
application
Prior art date
Application number
KR1020210029940A
Other languages
English (en)
Other versions
KR20220125965A (ko
Inventor
장원근
한대성
김대진
Original Assignee
엔시큐어 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 엔시큐어 주식회사 filed Critical 엔시큐어 주식회사
Priority to KR1020210029940A priority Critical patent/KR102563247B1/ko
Publication of KR20220125965A publication Critical patent/KR20220125965A/ko
Application granted granted Critical
Publication of KR102563247B1 publication Critical patent/KR102563247B1/ko

Links

Images

Classifications

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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Mining & Analysis (AREA)
  • Environmental & Geological Engineering (AREA)
  • Databases & Information Systems (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer And Data Communications (AREA)

Abstract

이 발명은 다수의 클라이언트장치들과 다수의 서버장치들이 연결된 네트워크 시스템에서, 서버단에서 송수신되는 패킷을 미러링하여 제공받아 네트워크 장애와 외부 공격을 실시간으로 검출하는 네트워크 성능 저하 모니터링 장치에 관한 것이다.
이 네트워크 성능 저하 모니터링 장치는, 미러링된 패킷으로부터 세션에 관한 정보와 상기 세션에 연결된 서버에 관한 정보와 상기 세션에 연결된 클라이언트에 관한 정보와 상기 미러링된 패킷의 종류를 추출하는 패킷 분석 모듈과, 상기 패킷 분석 모듈에서 분석된 정보를 기반으로 세션 구조체와 서버 구조체와 클라이언트 구조체를 관리하는 구조체 관리 모듈과; 상기 세션 구조체와 상기 서버 구조체와 상기 클라이언트 구조체에 저장된 정보로부터 상기 네트워크 시스템에서 이루어지는 모든 플로우 대비 대기 플로우의 비율로서 성능 저하 리스크를 산출하며 관리하는 리스크 관리 모듈과, 상기 네트워크 시스템에서 이루어지는 모든 세션에 대해 각 세션별로 형성된 복수의 세션 구조체들과, 상기 모든 세션을 형성하는 모든 서버에 대해 각 서버별로 형성된 복수의 서버 구조체들과, 상기 모든 세션을 형성하는 모든 클라이언트에 대해 각 클라이언트별로 형성된 복수의 클라이언트 구조체들을 포함한다.

Description

네트워크 시스템 성능 저하 실시간 모니터링 장치{Apparatus for Realtime Monitoring Performance Degradation of Network System}
이 발명은 네트워크 시스템의 성능 저하를 모니터링하는 장치에 관한 것으로서, 보다 상세하게는 네트워크 TCP 프로토콜의 패킷을 빠르게 분석하여 네트워크 장애와 외부 공격을 실시간으로 검출하기 위한 장치에 관한 것이다.
TCP(Transmission Control Protocol)는 IP 프로토콜 위에서 연결형 서비스를 지원하는 전송계층 프로토콜로, 인터넷 환경에서 기본으로 사용한다. TCP 프로토콜 종류로는 FTP, SSH, Telent, SMPT, DNS, DHCP, HTTP, HTTPS, POP3, SNMP, SSL 등이 있다.
TCP 프로토콜은 신뢰할 수 없는 공용망인 인터넷에서 데이터의 유실없는 통신을 보장하기 위해서, 데이터 패킷이 정상적으로 송수신할 준비가 되었는지를 확인하는 절차를 진행하는데, 이를 3-way handshaking이라고 하며, 다음과 같이 이루어진다.
먼저, 클라이언트 시스템은 TCP 연결을 맺기 위해 통신하고자 하는 서버 시스템에게 통신을 하고 싶다는 메시지를 보낸다(SYN 플래그가 세팅된 패킷 전송).
서버 시스템은 SYN 신호를 받으면 SYN-RECEIVED 상태로 변경되고, 그에 대한에 대한 응답 및 나도 통신 준비가 되었다는 메시지로서, SYN-ACK 플래그를 세팅한 메시지를 클라이언트 시스템에게 전송하여 응답한다.
클라이언트 시스템은 이 SYN-ACK 신호를 받으면 ESTABLISHED 상태로 변경하고 서버 시스템에 ACK 신호를 전송하여 응답한다. 클라이언트의 ACK 신호를 받은 서버 시스템이 ESTABLISHED 상태로 변경하면 서버 시스템과 클라이언트 시스템 간의 연결이 성공적으로 완료된다.
이후, 기존 통신과 새로운 통신을 구분해야 하므로 헤더에 플래그(flag)값을 넣어서 트랜잭션(transaction)이 이루어지고, 애플리케이션 서비스마다 세션(session)이 생성된다.
클라이언트 시스템과 서버 시스템 간 트랜잭션은, 클라이언트 시스템과 서버 시스템 사이의 세션이 생성된 상태에서, 클라이언트 시스템이 트랜잭션 요청 메시지를 전송하고, 서버 시스템이 해당 트랜잭션 요청 메시지에 응답하는 절차로 이루어진다. 각 트랜잭션은 하나의 패킷으로 이루어질 수도 있고, 복수의 패킷들로 이루어질 수도 있다. 즉, 서버 시스템과 클라이언트 시스템이 인터넷을 통해 데이터를 보내기 위한 경로배정(라우팅)을 효율적으로 하기 위해서는, 전송 프로토콜에 기반하여 한 번에 보낼 수 있는 데이터의 양이 제한된다. 따라서 하나의 트랜잭션에 데이터의 양이 많은 경우, 여러 개의 조각들로 나누어 전송하는데, 이러한 조각들을 패킷이라고 한다.
전통적인 네트워크 시스템들은 사용자가 사용하는 클라이언트 장치와 웹 사이트와 연관된 다양한 서버 장치들을 포함한다. 일반적으로 클라이언트 장치는 웹 사이트를 이용하기 위해, 특정 IP 주소를 갖는 서버에 접속 요청을 하고, 대기 시간을 거쳐 접속한다. 이때, 다수의 사용자에 의해 다수의 클라이언트 장치가 특정 시점에 몰려서 서버에 접속을 시도하거나 트랜잭션 요청하는 경우, 병목현상에 의해 서버와 연관된 네트워크 시스템의 성능이 저하될 수 있다. 이러한 성능 저하의 원인을 신속하게 파악하고, 이에 대한 대응이 최대한 빠르게 이루어져야 한다.
이러한 네트워크 시스템의 성능 저하의 원인을 파악하기 위한 선행기술로서, 대한민국 공개특허 제2020-0033090호 "네트워크 보안 모니터링 방법, 네트워크 보안 모니터링 장치 및 시스템"이 있다.
상술한 선행기술은, 제1엔티티(서버)와, 제2엔티티(클라이언트단말), 및 제1엔티티 및 제2엔티티 간에 구비되는 스위칭 장치 및 상기 스위칭 장치와 연결되는 네트워크 보안 모니터링 장치를 포함한다. 이 보안 기술은, 네트워크 보안 모니터링 장치가 스위칭 장치로부터 미러링하는 것을 기반으로, 제1엔티티와 제2엔티티 간에 송수신되는 적어도 하나의 패킷들에 대한, 미러링된 적어도 하나의 패킷들을 획득하는 단계; 및 상기 네트워크 보안 모니터링 장치가, 미러링된 적어도 하나의 패킷에 포함된 정보들 중 적어도 일부를 기반으로 제1엔티티와 제2엔티티와 연관된 네트워크에 대한 보안 문제 발생 여부를 결정하는 단계를 포함하여 이루어진다.
이 선행기술에서, 패킷 정보를 기반으로 보안 문제 발생 여부를 결정하는 단계는, 미리 결정한 제1소스 IP 로부터 제1목적지 IP까지의 구간의 접속의 수가 미리 결정한 임계값 이상이라는 결정, 미리 결정한 제1URL에 대한 요청이 미리 결정한 임계값 이상이라는 결정, 미리 결정한 제1서버의 BPS(Bit Per Second)가 미리 결정한 임계값 이상이라는 결정, 미리 결정한 제2소스 IP로부터의 PPS(Packet per Second)가 미리 결정한 임계값 이상이라는 결정, 미리 결정한 제3소스 IP로부터의 동기신호(SYN) 패킷의 수가 미리 결정한 임계값 이상이라는 결정, 및 미리 결정한 제4소스 IP가 미리 결정한 임계값 이상의 개수의 서버 IP로 동시에 접속을 시도한다는 결정 중 적어도 하나를 기반으로 보안 문제 발생 여부를 결정한다.
이러한 선행기술은, 상술한 바와 같이 접속의 수, 요청의 수, BPS, PPS, 동기신호 패킷의 수, 서버 IP로의 동시 접속의 수 등을 각각의 임계값과 비교하여 보안 문제 발생 여부를 결정한다.
선행기술의 발명의 상세한 설명 [0085] 단락 내지 [0187] 단락에, 서버와 클라이언트단말 간 송수신되는 패킷을 분석하는 패킷 분석 모듈의 기능 및 동작이 기재되어 있다. 이러한 선행기술의 패킷 분석 모듈은 패킷들을 분석하여 다양한 성능 지표들을 산출하여 보안 문제 발생 여부를 결정하기 때문에 실시간 처리가 어려운 문제점이 있다.
대한민국 공개특허 제2020-0033090호 대한민국 공개특허 제2019-0088342호 대한민국 공개특허 제2019-0088343호
이 발명의 목적은 네트워크 시스템에 송수신되는 네트워크 패킷 정보를 고속으로 분류, 저장 및 검색함으로써, 네트워크 품질, 장애 및 보안 진단을 빠르게 하고 네트워크 성능 저하를 실시간으로 모니터링하는 장치를 제공하는데 그 목적이 있다.
상술한 목적을 달성하기 위한 이 발명에 따른 네트워크 성능 저하 실시간 모니터링 장치는,
다수의 클라이언트장치들과 다수의 서버장치들이 연결된 네트워크 시스템의 서버단에서 송수신되는 패킷을 미러링하여 제공받는 네트워크 성능 저하 모니터링 장치에 있어서,
상기 미러링된 패킷으로부터 세션에 관한 정보, 상기 세션에 연결된 서버에 관한 정보, 상기 세션에 연결된 클라이언트에 관한 정보, 상기 세션과 연결된 클라이언트에 관한 정보, 상기 클라이언트에서 활성화된 애플리케이션에 관한 정보, 상기 클라이언트가 위치한 지역에 관한 정보 및 상기 미러링된 패킷의 종류를 추출하는 패킷 분석 모듈;
상기 패킷 분석 모듈에서 분석된 정보를 기반으로 세션 구조체, 서버 구조체. 클라이언트 구조체, 애플리케이션 구조체 및 지역 구조체들을 관리하는 구조체 관리 모듈;
상기 세션 구조체, 서버 구조체, 클라이언트 구조체, 애플리케이션 구조체 및 지역 구조체들에 저장된 정보를 이용하여 상기 네트워크 시스템에서 이루어지는 모든 플로우 대비 대기 플로우의 비율로서 성능 저하 리스크를 산출하며 관리하는 리스크 관리 모듈을 포함하고,
상기 구조체 관리 모듈은, 상기 세션 구조체들을 관리하는 세션 트리 테이블, 상기 서버 구조체들을 관리하는 서버 트리 테이블, 상기 클라이언트 구조체들을 관리하는 클라이언트 트리 테이블, 상기 애플리케이션 구조체들을 관리하는 애플리케이션 해쉬 테이블, 및 상기 지역 구조체들을 관리하는 지역 해쉬 테이블을 포함하며,
상기 각 세션 구조체는 해당 세션에 관한 정보와, 해당 세션에 연결된 서버에 대응하는 서버 구조체에 연결하기 위한 서버 구조체 포인터와, 해당 세션에 연결된 클라이언트에 대응하는 클라이언트 구조체에 연결하기 위한 클라이언트 구조체 포인터를 포함하고;
상기 각 서버 구조체는 해당 서버에 관한 정보와, 상기 서버가 연결된 모든 세션들에 대응하는 세션 구조체 포인터들을 관리하는 세션 구조체 관리 테이블과, 상기 서버와 연결된 모든 클라이언트들에 대응하는 클라이언트 IP 주소들을 관리하는 클라이언트 정보 관리 테이블을 포함하고;
상기 각 클라이언트 구조체는 해당 클라이언트에 관한 정보와, 상기 클라이언트가 연결된 모든 세션들에 대응하는 세션 구조체 포인터들을 관리하는 세션 구조체 관리 테이블과, 상기 클라이언트와 연결된 모든 서버들에 대응하는 서버 IP 주소들을 관리하는 서버 정보 관리 테이블을 포함하는 것을 특징으로 한다.
이 발명에 따르면 네트워크 시스템에 송수신되는 네트워크 패킷 정보를 세션별, 서버별, 클라이언트별, 애플리케이션별, 지역별로 분류하여 구조체로 저장 및 링크로 연결하여 관리함으로써, 네트워크 시스템의 성능 저하 여부 및 원인을 신속하게 검출할 수 있는 잇점이 있다.
도 1은 이 발명이 적용되는 네트워크 환경을 도시한 도면이다.
도 2는 이 발명에 따른 네트워크 성능 저하 모니터링 장치의 구성도이다.
도 3은 네트워크 시스템에서, 서버와 클라이언트간 세션 연결 예시도이다.
도 4는 도 3의 네트워크 시스템 예시도에서 생성되는 구조체 구성 및 연결도이다.
도 5는 이 발명에 따른 세션 구조체의 구성도이다.
도 6은 이 발명에 따른 서버 구조체의 구성도이다.
도 7은 이 발명에 따른 클라이언트 구조체의 구성도이다.
도 8은 이 발명에 따른 애플리케이션 구조체의 구성도이다.
도 9는 이 발명에 따른 지역 구조체의 구성도이다.
도 10은 이 발명의 구조체 생성 및 업데이트 과정을 도시한 동작 흐름도이다.
도 11은 이 발명의 리스크 관리 과정을 도시한 동작 흐름도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는바, 특정 실시예들을 도면에 예시하고 상세한 설명에 구체적으로 설명하고자 한다. 그러나 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용한다. 제 1, 제 2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.
예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제 1 구성요소는 제 2 구성요소로 명명될 수 있고, 유사하게 제 2 구성요소도 제 1 구성요소로 명명될 수 있다. "및/또는" 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미가 있다.
일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미가 있는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않아야 한다.
앞서 설명한 바와 같이 서버와 클라이언트 장치간 통신은 3-way handshaking, 세션 연결, 트랜잭셕 요청 및 응답 과정으로 이루어진다. 다수의 사용자에 의해 다수의 클라이언트 장치가 특정 시점에 몰려서 서버에 접속을 시도하거나 트랜잭션 요청을 하는 경우, 특정 서버에 3-way handshaking의 SYN 신호와 트랜잭션 요청이 누적되어, 해당 SYN 신호에 대한 응답 대기 시간이나 트랜잭션 요청에 대한 응답 대기 시간이 길어진다. 다시 말해, 3-way handshaking과 트랜잭션을 포함한 전체 플로우(flow) 중 SYN 대기 플로우와 트랜잭션 대기 플로우가 증가하게 된다. 이 발명에서는 전체 플로우 중 SYN 대기 플로우와 트랜잭션 대기 플로우의 비율을 기반으로 성능 저하 리스크를 관리하는 방법을 제안한다.
도 1은 본 발명이 적용되는 네트워크 환경을 도시한 도면이다.
이 발명이 적용되는 네트워크 환경은 복수의 클라이언트장치(111,112,113), 네트워크(120),라우터(130), 패킷 미러링 기능을 구비한 스위치(140), 복수의 서버장치(151,152,153) 및 이 발명에 따른 네트워크 성능 저하 모니터링 장치(160)가 포함된다.
클라이언트장치(111,112,113)는 네트워크(120)를 통해 특정 웹 사이트 또는 웹 애플리케이션에 접속한다. 이때, 접속은 상기 웹 사이트 및/또는 웹 애플리케이션과 연관된 서버장치(151,152,153)에서 수행된다. 클라이언트장치(111,112,113)는 웹 브라우저를 통해 특정 웹 페이지에 접속하여 원하는 페이지 또는 애플리케이션의 실행을 요청한다. 상기 요청은, html 문서와 같은 정적인 콘텐츠뿐만 아니라 동영상, 오디오와 같은 멀티미디어 콘텐츠 및/또는 기타 다른 애플리케이션의 실행을 포함할 수 있다.
클라이언트장치(111,112,113)는 사용자에 의해 동작하고, 통신 기능(인터넷 접속 및 웹 브라우저 실행 기능 포함) 및 데이터 처리 기능을 포함하는 임의의 장치를 포함할 수 있다. 클라이언트장치(111,112,113)는, 이동국(MS), 이용자 장비(UE: User Equipment), 사용자 터미널(UT: User Terminal), 무선 터미널, 액세스 터미널(AT), 고정 및 이동 가입자 유닛(Subscriber Unit), 가입자 스테이션(SS: Subscriber Station), 셀룰러 전화, 무선기기(wireless device), 무선 통신 디바이스, 무선송수신유닛(WTRU: Wireless Transmit/Receive Unit), 이동 노드, 모바일, 모바일국, 개인 휴대 정보 단말(personal digital assistant), 스마트폰, 랩톱, 넷북, 개인용 컴퓨터, 무선 센서, 소비자 전자기기(CE), 사물인터넷(IoT) 디바이스 또는 다른 용어들로서 지칭될 수 있다. 클라이언트장치(111,112,113)의 다양한 변형 실시예들은 무선 통신 기능을 가지는 휴대용 컴퓨터, 무선 통신 기능을 가지는 디지털 카메라와 같은 촬영장치, 무선 통신 기능을 가지는 게이밍 장치, 무선 통신 기능을 가지는 음악저장 및 재생 가전제품, 무선 인터넷 접속 및 브라우징이 가능한 인터넷 가전제품뿐만 아니라 이러한 기능들의 조합들을 통합하고 있는 휴대형 유닛 또는 단말기들을 포함할 수 있으나, 이에 한정되는 것은 아니다.
각 클라이언트장치(111,112,113)는 사용자 입력을 수신하기 위한 마우스 및 키보드와 같은 입력장치들 및 사용자가 네트워킹된 장치들과 상호 작용하기 위한 제어 사용자 인터페이스를 제공하기 위한 디스플레이를 포함하는 사용자 통신 인터페이스를 포함할 수 있다. 사용자 인터페이스는 사용자에게 정보를 제공하기 위해 그래픽 사용자 인터페이스(GUI: Graphical User Interface)를 포함할 수 있다.
네트워크(120)는 유선 및/또는 무선 네트워크를 포함한다. 네트워크(120)는 인터넷을 포함할 수 있다. 네트워크(120)는 다양하게 접속된 클라이언트장치(111,112,113)와 서버장치(151,152,153) 간에 데이터를 송신하고 수신하기 위해 물리층(매체)을 제공하는 시리얼 버스를 포함할 수 있다. 여기서 시리얼 버스는 1394 시리얼 버스를 포함할 수 있다. 이는 시간-다중 송신(Time-multiplexed) 오디오/비디오(A/V) 스트림 및 표준 아이피(IP: Internet Protocol) 통신(예컨대, IETF REC 2734)을 양쪽 모두 지원할 수 있고, 다만 반드시 이에 한정되는 것은 아니다. 네트워크(120)는 비-1394 네트워크(예컨대, 이더넷 등)도 포함할 수 있다. 또한, 네트워크(120)는 홈 네트워크를 포함할 수도 있다. 뿐만 아니라 네트워크(120)는 사물인터넷(IoT) 연결을 지원하는 임의의 네트워크일 수도 있다. 클라이언트장치(111,112,113) 각각은 네트워크(120)에서 하나 이상의 서버장치들(151,152,153)과 통신할 수 있다.
서버장치(151,152,153)는 사용자에게 서비스들을 제공하기 위해 네트워크 자원을 이용하여 사용자들의 요청에 응답한다. 이는 정보(데이터)의 리턴(return)을 포함한다. 또한, 기능의 성능(예컨대, 기계적인 기능) 및 상태의 리턴, 데이터 스트림 및 상태의 리턴, 데이터 스트림의 수용 및 상태의 리턴, 또는 각종 행위에 대한 상태의 저장을 포함한다. 서버장치(151,152,153)는 그 자신의 하드웨어의 제어를 구현하기 위해, 주문형, 내장형, 제어 프로그램을 포함할 수 있다.
서버장치(151,152,153)는 특정 웹 사이트 및/또는 웹 애플리케이션과 연관될 수 있고, 각 웹 사이트 및/또는 웹 애플리케이션에서 수행되는 작업과 관련된 연산 및 관리를 수행한다. 서버장치(151,152,153)는 클라이언트장치들(111,112,113) 및 다른 서버들과 상호 작용할 수 있다. 예시적인 서비스들은 MPEG 소싱/싱킹(sourcing/sinking), 및 디스플레이 서비스를 포함할 수 있다.
서버장치(151,152,153)는 네트워크(120)를 통해 장치의 명령 및 제어를 위한 인터페이스를 제공하는 인터페이스 데이터(예컨대, HTML, XML, 자바, 자바스크립트, GIF, JPEG, MPEG, 그래픽 파열 또는 의도한 목적에 사용되는 임의의 다른 포맷)와 같은 정보를 처리할 수 있다. 서버장치(151,152,153)는, 그 장치의 명령 및 제어를 제공하는 하나 이상의 하이퍼마크업언어(HTML: Hypertext Markup Language)와 같은 정보를 처리할 수 있다. 서버장치(151,152,153)는 브라우저 기법을 이용하여 HTML 페이지를 나타내는 인터넷 표준을 사용한다.
이 발명에서 서버장치(151,152,153)는 웹 서버, 앱 서버 및 데이터베이스 서버를 포함할 수 있다. 다만, 반드시 3개의 서버장치의 조합으로만 구성되어야 하는 것은 아니다. 웹 서버만 존재하고, 앱 서버 및 데이터베이스 서버는 존재하지 않는 것도 유효하고, 또는 앱 서버 하나만 구성되는 것도 가능하고, 기타 다양한 형태 및 계층의 서버 조합도 가능하다.
웹 서버는 웹 클라이언트(Web Client)에게 요청된 컨텐츠를 제공하는 서버이다. 웹 서버는 정적인 HTML이나 JPEG, GIF 같은 이미지를 HTTP 프로토콜을 통해 웹 브라우저에 제공할 수 있다. 경우에 따라, 웹 서버도 내부 애플리케이션을 동작시킬 수 있는 컨테이너를 내장할 수 있다.
앱 서버는 WAS(Web Application Server) 서버라고도 불릴 수 있고, 이는 클라이언트/서버 환경에서 트랜잭션 처리 및 관리와 애플리케이션 실행 환경을 제공하는 미들웨어 소프트웨어 서버를 나타낸다. 전형적으로, 서버단은 웹 서버, 애플리케이션 서버, 데이터베이스 서버의 3계층 웹 컴퓨팅 환경으로 구축될 수 있는데, 이때, 앱 서버는 클라이언트/서버 환경의 애플리케이션 서버와 같은 역할을 한다. 앱 서버는 애플리케이션 실행 환경과 데이터베이스 접속 기능을 제공하고, 트랜잭션을 관리하며, 업무를 처리하는 비즈니스 로직을 수행하고, 다른 기종 시스템 간의 애플리케이션 연동 등을 수행한다.
데이터베이스 서버는 웹 서버 및/또는 앱 서버가 취급하는 각종 데이터가 저장되어 있는 저장소이다. 데이터베이스 서버는 웹 서버 및/또는 앱 서버가 처리하는 작업, 웹 사이트, 웹 애플리케이션의 성격에 따라 그와 연관된 엄청난 양의 데이터가 저장될 수 있다. 이는 개인정보, 기관정보, 각종 콘텐츠(예컨대, 멀티미디어 콘텐츠)와 연관된 데이터 등을 포함할 수 있다.
라우터(130) 또는 라우팅 기능을 갖는 공유기는 네트워크(120)를 통해 클라이언트장치(111,112,113)로부터 전송된 패킷의 위치 및 수신처를 추출하여, 그 위치에 대한 최적의 경로를 지정하며, 그 경로를 따라 데이터 패킷을 스위치(140)로 전행시킨다. 라우터(130)는 수신측 IP 주소를 식별하여 해당 데이터를 스위치(140)로 포워딩한다.
스위치(140)는 각 서버장치(151,152,153)의 고유한 MAC 주소를 기억하고 있다가, 이 주소를 통해 어떤 패킷이 어디로 전송되어야 하는지 판단하여 라우터(130)로부터 제공받은 패킷을 해당 서버(151,152,153)로 전송한다. 스위치(140)는 OSI 2계층, OSI 3계층, OSI 4계층 및/또는 다른 계층(예컨대, OSI 7계층)의 역할을 하는 스위치를 포함한다. 예컨대, 경로를 설정하는 기능을 수행할 수 있다. 또한, 로드밸런싱이나 포트포워딩, QoS 등의 기능을 수행할 수도 있다. 스위치는 네트워크 스위치, 스위칭 허브, 포트 스위칭 허브 등으로 불릴 수 있다.
스위치(140)는 패킷 미러링 기능을 포함하여, 클라이언트장치(111,112,113)에서 서버장치(151,152,153)로 수신되는 모든 패킷 및 서버장치(151,152,153)에서 클라이언트장치(111,112,113)로 송신되는 모든 패킷을 복제 또는 캡처하고, 복제한 패킷을 이 발명에 따른 네트워크 성능 저하 모니터링 장치(160)로 제공한다.
이 발명에서 세션이라 함은 3-way handshaking하는 과정을 포함하는 것으로 명명한다. 즉, 3-way handshaking이 종료되어야 해당 서버와 클라이언트 간에 세션이 연결된 것이나, 3-way handshaking 시도가 일시적으로 증가하면 네트워크 시스템의 성능 저하가 발생할 수 있으므로, 이 발명의 명세서에서는 클라이언트장치가 서버와 접속하기 위해 SYN 신호를 전송하며 접속 시도할 때부터 세션이라고 명명한다.
도 2는 이 발명에 따른 네트워크 성능 저하 모니터링 장치의 구성도이다.
이 발명의 네트워크 성능 저하 모니터링 장치는, 패킷 분석 모듈(200)과, 구조체 관리 모듈(210)과, 리스크 관리 모듈(220)과, 디스플레이 관리 모듈(230)을 포함한다.
패킷 분석 모듈(200)은 미러링된 패킷으로부터, 세션에 관한 정보와, 서버에 관한 정보와, 클라이언트에 관한 정보와, 애플리케이션에 관한 정보와, 지역에 관한 정보와, 해당 미러링된 패킷 종류(해당 패킷이 SYN 신호인지, SYN-ACK 신호인지, 트랜잭션 요청 신호인지, 트랜잭션 응답 신호인지)를 추출한다. 패킷 분석 모듈(200)이 미러링된 패킷으로부터 상술한 정보들을 분석하는 방법은 선행특허 대한민국 공개특허 제2020-0033090호를 참조할 수 있다.
구조체 관리 모듈(210)은 패킷 분석 모듈(200)에서 분석된 패킷 정보를 기반으로 후술하는 각 구조체들을 관리한다.
리스크 관리 모듈(220)은 네트워크 시스템에서 이루어지는 모든 플로우(flow) 대비 대기 플로우(SYN 대기, 트랜잭션 응답 대기)의 비율로서 성능 저하 리스크를 계산한다. 이 리스크 관리 모듈(220)은 서버별, 클라이언트별, 애플리케이션별, 지역별 및 전체 네트워크 시스템의 성능 저하 리스크를 계산한다.
디스플레이 관리 모듈(230)은 리스크 관리 모듈(220)에서 산출된 서버별, 클라이언트별, 애플리케이션별, 지역 및 전체 네트워크 시스템의 성능 저하 리스크를 화면에 표시하도록 한다.
이 발명의 네트워크 성능 저하 모니터링 장치는, 각 정보들을 구조체로 관리한다.
이 발명의 네트워크 성능 저하 모니터링 장치는, 네트워크 시스템에서 이루어지는 모든 세션에 대해 각 세션별로 형성된 복수의 세션 구조체들(241,242,243)과, 상기 모든 세션을 형성하는 모든 서버에 대해 각 서버별로 형성된 복수의 서버 구조체들(251,252,253)과, 상기 모든 세션을 형성하는 모든 클라이언트에 대해 각 클라이언트별로 형성된 복수의 클라이언트 구조체들(261,262,263)과, 상기 모든 클라이언트가 사용하는 모든 애플리케이션에 대해 각 애플리케이션별로 형성된 복수의 애플리케이션 구조체들(271,272,273)과, 상기 모든 클라이언트가 속한 지역에 대해 각 지역별로 형성된 복수의 지역 구조체들(281,282,283)을 포함한다.
상기 세션 구조체들(241,242,243)은 세션 트리 테이블(240)에 의해 관리되고, 상기 서버 구조체들(251,252,253)은 서버 트리 테이블(250)에 의해 관리되고, 상기 클라이언트 구조체들(261,262,263)은 클라이언트 트리 테이블(260)에 의해 관리되고, 상기 애플리케이션 구조체들(271,272,273)은 애플리케이션 해쉬 테이블(270)에 의해 관리되고, 상기 지역 구조체들(281,282,283)은 지역 해쉬 테이블(280)에 의해 관리된다.
상기 세션 트리 테이블(240)과 상기 서버 트리 테이블(250)과 상기 클라이언트 트리 테이블(260)은 각각이 관리하는 구조체들에 대해 레드블랙 트리(Red-Black Tree) 알고리즘을 적용하여 관리한다.
상기한 지역 정보는 나라(country) 정보일 수도 있고, 도시(city) 정보일 수도 있다. 클라이언트가 속한 지역 정보는 클라이언트 IP 주소로부터 얻을 수 있다.
도 3은 네트워크 시스템에서, 서버와 클라이언트간 세션 연결 예시도이다.
서버1과 클라이언트1(애플리케이션1 사용) 사이에 세션(이를 세션1이라 함)이 연결되고, 서버1과 클라이언트3(애플리케이션1 사용) 사이에 세션(이를 세션2라 함)이 연결되고, 서버2와 클라이언트2(애플리케이션2 사용) 사이에 세션(이를 세션3이라 함)이 연결되고, 서버2와 클라이언트3(애플리케이션2 사용) 사이에 세션(이를 세션4라 함)이 연결되고, 서버2와 클라이언트5(애플리케이션2 사용) 사이에 세션(이를 세션5라 함)이 연결되고, 서버3과 클라이언트4(애플리케이션2 사용) 사이에 세션(이를 세션6이라 함)이 연결된다. 클라이언트1과 클라이언트2는 지역1에 위치하고, 클라이언트3과 클라이언트4와 클라이언트5는 지역2에 위치한다.
도 4는 도 3의 네트워크 시스템 예시도에서 생성되는 구조체 구성 및 연결도이고, 도 5는 이 발명에 따른 세션 구조체의 구성도이다.
도 3의 예시도에서 세션이 6개 이므로 세션 구조체 6개가 형성된다. 세션1 구조체에는 서버1과 클라이언트1 사이에 연결된 세션1에 관한 정보가 기록되고 관리되며, 해당 세션에 관련된 서버, 클라이언트, 애플리케이션, 지역 정보가 기록된 각 구조체가 링크된다.
세션 구조체는 도 5에 도시된 바와 같이 해당 세션에 관한 정보(51)와, 해당 세션에 연결된 서버에 대응하는 서버 구조체에 연결하기 위한 서버 구조체 포인터(52)와, 해당 세션에 연결된 클라이언트에 대응하는 클라이언트 구조체에 연결하기 위한 클라이언트 구조체 포인터(53)와, 해당 세션에 연결된 클라이언트에 의해 활성화된 애플리케이션에 대응하는 애플리케이션 구조체에 연결하기 위한 애플리케이션 구조체 포인터(54)와, 해당 세션에 연결된 클라이언트가 위치한 지역에 대응하는 지역 구조체에 연결하기 위한 지역 구조체 포인터(55)를 포함한다.
여기서, 세션에 관한 정보에는 해당 세션에 연결된 서버 정보와, 해당 세션에 연결된 클라이언트 정보와, 해당 세션에 연결된 클라이언트에 의해 활성화된 애플리케이션 정보와, 해당 세션에 연결된 클라이언트가 위치한 지역 정보와, 해당 세션의 상태 정보(요청, 대기, 응답)가 포함된다. 즉, 클라이언트로부터 SYN 신호 또는 트랜잭션 요청 신호가 서버로 전송되는지, 해당 요청에 대한 응답이 마무리되지 않은 대기 상태인지, 해당 요청에 대한 응답이 클라이언트로 전송된 응답 완료 상태인지 등의 정보를 포함한다. 리스크 관리 모듈(220)은 네트워크 시스템에 연결된 모든 세션에 대해, 주기적으로 해당 세션의 상태 정보를 입력받아 전체 플로우 중 대기 플로우의 비율을 계산하여 성능 저하 리스크를 산출한다.
세션1 구조체는 세션1에 관한 정보와, 서버1 구조체 포인터와, 클라이언트1 구조체 포인터와, 애플리케이션1 구조체 포인터와, 지역1 구조체 포인터가 링크되어 저장된다. 이와 동일하게, 세션2 구조체에는 서버1과 클라이언트3 사이에 연결된 세션2에 관한 정보가 기록되고 관리되며, 세션2에 관한 정보와, 서버1 구조체 포인터와, 클라이언트3 구조체 포인터와, 애플리케이션1 구조체 포인터와, 지역2 구조체 포인터가 링크되어 저장된다.
이와 동일하게, 세션3 구조체에는 서버2와 클라이언트2 사이에 연결된 세션3에 관한 정보가 기록되고 관리되고, 세션4 구조체에는 서버2와 클라이언트3 사이에 연결된 세션4에 관한 정보가 기록되고 관리되며, 세션5 구조체에는 서버2와 클라이언트 5 사이에 연결된 세션5에 관한 정보가 기록되고 관리되고, 세션6 구조체에는 서버3과 클라이언트 4 사이에 연결된 세션6에 관한 정보가 기록되고 관리된다.
각 세션 구조체에는 각 세션에 대한 정보와, 해당 세션에 대응하는 서버 구조체에 연결하기 위한 서버 구조체 포인터와, 해당 세션에 대응하는 클라이언트 구조체에 연결하기 위한 클라이언트 구조체 포인터와, 해당 클라이언트가 사용하는 애플리케이션 구조체에 연결하기 위한 애플리케이션 구조체 포인터와, 해당 클라이언트가 속한 지역 구조체에 연결하기 위한 지역 구조체 포인터가 기록된다.
도 6은 이 발명에 따른 서버 구조체의 구성도이다.
서버 구조체는 해당 서버에 관한 정보(61)와, 상기 서버가 연결된 모든 세션들에 대응하는 세션 구조체 포인터들을 관리하는 세션 구조체 관리 테이블(62)과, 상기 서버와 연결된 모든 클라이언트들에 대응하는 클라이언트 IP 주소들을 관리하는 클라이언트 정보 관리 테이블(63)과, 상기 서버와 연결된 모든 클라이언트들에서 활성화된 모든 애플리케이션들에 대응하는 애플리케이션 리스트를 관리하는 애플리케이션 정보 관리 테이블(64)과, 해당 서버의 과거 리스크 정보들을 저장하는 서버 리스크 테이블(65)과, 해당 서버의 현재 성능 저하 리스크를 저장하는 서버 현재 리스크(66)를 포함한다. 상기 클라이언트 IP 주소와 애플리케이션 리스트는 해쉬값으로 관리되는 것이 바람직하다.
리스크 관리 모듈(220)은 주기적(예컨대, 1초)으로 전체 플로우 대비 대기 플로우의 비율을 산출하여 순간 리스크를 계산하고, 이렇게 산출된 순간 리스크와 각 구조체에 저장된 과거 리스크 정보들을 기반으로 과거 7초간의 리스크들을 평균하여 현재 리스크를 계산한다.
서버1 구조체는 서버1에 관한 정보가 기록되고 관리되고, 서버2 구조체에는 서버2에 관한 정보가 기록되고 관리되며, 서버3 구조체에는 서버 3에 관한 정보가 기록되고 관리된다.
도 7은 이 발명에 따른 클라이언트 구조체의 구성도이다.
클라이언트 구조체는 해당 클라이언트에 관한 정보(71)와, 상기 클라이언트가 연결된 모든 세션들에 대응하는 세션 구조체 포인터들을 관리하는 세션 구조체 관리 테이블(72)과, 상기 클라이언트와 연결된 모든 서버들에 대응하는 서버 IP 주소들을 관리하는 서버 정보 관리 테이블(73)과, 상기 클라이언트에서 활성화된 모든 애플리케이션 리스트를 관리하는 애플리케이션 정보 관리 테이블(74)과, 해당 클라이언트의 과거 리스크 정보들을 저장하는 클라이언트 리스크 테이블(75)과, 해당 클라이언트의 현재 성능 저하 리스크를 저장하는 클라이언트 현재 리스크(76)를 포함한다. 상기 서버 IP 주소와 애플리케이션 리스트는 해쉬값으로 관리되는 것이 바람직하다.
여기서, 클라이언트 리스크는 전체 플로우 중 서버의 대기 플로우를 기반으로 산출되며, 각 클라이언트마다 응답 대기 상태의 플로우의 비율로서 계산된다. 리스크 관리 모듈(220)은 주기적(예컨대, 1초)으로 전체 플로우 대비 대기 플로우의 비율을 순간 리스크를 계산하고, 각 구조체에 저장된 과거 리스크 정보들을 기반으로 과거 7초간의 리스크들을 평균하여 현재 리스크를 계산한다.
도 8은 이 발명에 따른 애플리케이션 구조체의 구성도이다.
애플리케이션 구조체는 해당 애플리케이션에 관한 정보(81)와, 상기 애플리케이션이 활성화된 모든 클라이언트가 연결된 모든 세션들에 대응하는 세션 구조체 포인터들을 관리하는 세션 구조체 관리 테이블(82)과, 상기 애플리케이션이 활성화된 모든 클라이언트들에 대응하는 클라이언트 IP 주소들을 관리하는 클라이언트 정보 관리 테이블(83), 해당 애플리케이션의 과거 리스크 정보들을 저장하는 애플리케이션 리스크 테이블(84)과, 해당 애플리케이션의 현재 성능 저하 리스크를 저장하는 애플리케이션 현재 리스크(85)를 포함한다. 여기서, 상기 클라이언트 IP 주소는 해쉬값으로 관리되는 것이 바람직하다.
도 9는 이 발명에 따른 지역 구조체의 구성도이다.
지역 구조체는 해당 지역에 관한 정보(91)와, 상기 지역에 위치한 모든 클라이언트가 연결된 모든 세션들에 대응하는 세션 구조체 포인터들을 관리하는 세션 구조체 관리 테이블(92)과, 상기 지역에 위치한 모든 클라이언트들에 대응하는 클라이언트 IP 주소들을 관리하는 클라이언트 정보 관리 테이블(93)과, 상기 모든 클라이언트들에 활성화된 애플리케이션들에 대응하는 애플리케이션 리스트를 관리하는 애플리케이션 정보 관리 테이블(94)과, 해당 지역의 상세 지역 분류를 위한 하부 지역 리스트를 관리하는 하부 지역 관리 테이블(95)과, 해당 지역의 과거 리스크 정보들을 저장하는 지역 리스크 테이블(96)과, 해당 지역의 현재 성능 저하 리스크를 저장하는 지역 현재 리스크(97)를 포함한다. 여기서, 상기 클라이언트 IP 주소와 애플리케이션 리스트는 해쉬값으로 관리되는 것이 바람직하다.
도 10은 이 발명의 구조체 생성 및 업데이트 과정을 도시한 동작 흐름도이다.
패킷 분석 모듈은 미러링된 패킷이 입력되면(S101), 해당 패킷을 분석한다(S102). 패킷으로부터 세션 정보를 추출하고, 구조체 관리 모듈(210)은 세션 트리 테이블(240)에 해당 세션에 대응하는 세션 구조체를 쿼리한다. 세션 트리 테이블(240)은 해당 세션 구조체가 존재하지 않은 경우에는 해당 세션 구조체를 생성하여 구조체 관리 모듈에 리턴하고, 해당 세션 구조체가 존재하는 경우에는 해당 세션 구조체의 현재 상태를 업데이트한다(S103).
아울러, 해당 세션 구조체와 링크된 서버 구조체를 생성하거나 해당 서버 구조체를 업데이트한다(S104). 또한, 해당 세션 구조체와 링크된 클라이언트 구조체를 생성하거나 해당 클라이언트 구조체를 업데이트한다(S105). 또한, 해당 세션 구조체와 링크된 애플리케이션 구조체를 생성하거나 해당 애플리케이션 구조체를 업데이트한다(S106). 또한, 해당 세션 구조체와 링크된 지역 구조체를 생성하거나 해당 지역 구조체를 업데이트한다(S107).
즉, 새로운 세션이 생성된 경우, 세션 구조체를 생성하고, 해당 세션 구조체에 대응하는 서버 구조체, 클라이언트 구조체, 애플리케이션 구조체, 지역 구조체를 생성하거나, 기 생성된 서버 구조체, 클라이언트 구조체, 애플리케이션 구조체, 지역 구조체에서, 세션 구조체 관리 테이블, 서버 정보 관리 테이블, 클라이언트 정보 관리 테이블, 애플리케이션 정보 관리 테이블 등을 업데이트하여 현재 생성된 세션에 관한 정보를 추가한다.
도 11은 이 발명의 리스크 관리 과정을 도시한 동작 흐름도이다.
리스크 관리 모듈은 리스크 산출 주기가 도래하면(S111), 모든 플로우의 세션별 상태 정보를 검출한다.(S112). 리스크 관리 모듈은 각 서버별로 플로우 대비 대기 플로우를 산출하고, 각 서버별 과거 리스크 정보를 읽고 평균값을 계산하여 현재 리스크를 계산하고, 각 서버의 서버 구조체의 서버 리스크 테이블 및 서버 현재 리스크를 업데이트한다(S113).
리스크 관리 모듈은 각 클라이언트별로 플로우 대비 대기 플로우를 산출하고, 각 클라이언트별 과거 리스크 정보를 읽고 평균값을 계산하여 현재 리스크를 계산하고, 각 클라이언트의 클라이언트 구조체의 클라이언트 리스크 테이블 및 클라이언트 현재 리스크를 업데이트한다(S114).
리스크 관리 모듈은 각 애플리케이션별로 플로우 대비 대기 플로우를 산출하고, 각 애플리케이션별 과거 리스크 정보를 읽고 평균값을 계산하여 현재 리스크를 계산하고, 각 애플리케이션의 애플리케이션 구조체의 애플리케이션 리스크 테이블 및 애플리케이션 현재 리스크를 업데이트한다(S115).
리스크 관리 모듈은 각 지역별로 플로우 대비 대기 플로우를 산출하고, 각 지역별 과거 리스크 정보를 읽고 평균값을 계산하여 현재 리스크를 계산하고, 각 지역의 지역 구조체의 지역 리스크 테이블 및 지역 현재 리스크를 업데이트한다(S116).
200 : 패킷 분석 모듈 210 : 구조체 관리 모듈
220 : 리스크 관리 모듈 230 : 디스플레이 관리 모듈
240 : 세션 트리 테이블 241~243 : 세션 구조체
250 : 서버 트리 테이블 251~253 : 서버 구조체
260 : 클라이언트 트리 테이블 261~263 : 클라이언트 구조체
270 : 애플리케이션 해쉬 테이블 271~273 : 애플리케이션 구조체
280 : 지역 해쉬 테이블 281~283 : 지역 구조체

Claims (6)

  1. 다수의 클라이언트장치들과 다수의 서버장치들이 연결된 네트워크 시스템의 서버단에서 송수신되는 패킷을 미러링하여 제공받는 네트워크 성능 저하 모니터링 장치에 있어서,
    상기 미러링된 패킷으로부터 세션에 관한 정보, 상기 세션에 연결된 서버에 관한 정보, 상기 세션에 연결된 클라이언트에 관한 정보, 상기 세션과 연결된 클라이언트에 관한 정보, 상기 클라이언트에서 활성화된 애플리케이션에 관한 정보, 상기 클라이언트가 위치한 지역에 관한 정보 및 상기 미러링된 패킷의 종류를 추출하는 패킷 분석 모듈;
    상기 패킷 분석 모듈에서 분석된 정보를 기반으로 세션 구조체, 서버 구조체. 클라이언트 구조체, 애플리케이션 구조체 및 지역 구조체들을 관리하는 구조체 관리 모듈;
    상기 세션 구조체, 서버 구조체, 클라이언트 구조체, 애플리케이션 구조체 및 지역 구조체들에 저장된 정보를 이용하여 상기 네트워크 시스템에서 이루어지는 모든 플로우 대비 대기 플로우의 비율로서 성능 저하 리스크를 산출하며 관리하는 리스크 관리 모듈을 포함하고,
    상기 구조체 관리 모듈은, 상기 세션 구조체들을 관리하는 세션 트리 테이블, 상기 서버 구조체들을 관리하는 서버 트리 테이블, 상기 클라이언트 구조체들을 관리하는 클라이언트 트리 테이블, 상기 애플리케이션 구조체들을 관리하는 애플리케이션 해쉬 테이블, 및 상기 지역 구조체들을 관리하는 지역 해쉬 테이블을 포함하며,
    상기 각 세션 구조체는 해당 세션에 관한 정보, 해당 세션에 연결된 서버에 대응하는 서버 구조체에 연결하기 위한 서버 구조체 포인터, 해당 세션에 연결된 클라이언트에 대응하는 클라이언트 구조체에 연결하기 위한 클라이언트 구조체 포인터를 포함하고;
    상기 각 서버 구조체는 해당 서버에 관한 정보, 상기 서버가 연결된 모든 세션들에 대응하는 세션 구조체 포인터들을 관리하는 세션 구조체 관리 테이블 및, 상기 서버와 연결된 모든 클라이언트들에 대응하는 클라이언트 IP 주소들을 관리하는 클라이언트 정보 관리 테이블을 포함하며,
    상기 각 클라이언트 구조체는 해당 클라이언트에 관한 정보, 상기 클라이언트가 연결된 모든 세션들에 대응하는 세션 구조체 포인터들을 관리하는 세션 구조체 관리 테이블, 및 상기 클라이언트와 연결된 모든 서버들에 대응하는 서버 IP 주소들을 관리하는 서버 정보 관리 테이블을 포함하는 것을 특징으로 하는 네트워크 시스템 성능 저하 실시간 모니터링 장치.
  2. 청구항 1에 있어서,
    상기 세션 구조체는 해당 세션에 연결된 클라이언트에 의해 활성화된 애플리케이션에 대응하는 애플리케이션 구조체에 연결하기 위한 애플리케이션 구조체 포인터, 및 해당 세션에 연결된 클라이언트가 위치한 지역에 대응하는 지역 구조체에 연결하기 위한 지역 구조체 포인터를 더 포함하고,
    상기 서버 구조체는 상기 서버와 연결된 모든 클라이언트들에서 활성화된 모든 애플리케이션들에 대응하는 애플리케이션 리스트를 관리하는 애플리케이션 정보 관리 테이블, 해당 서버의 과거 리스크 정보들을 저장하는 서버 리스크 테이블 및 해당 서버의 현재 성능 저하 리스크를 저장하는 서버 현재 리스크를 더 포함하며,
    상기 클라이언트 구조체는 상기 클라이언트에서 활성화된 모든 애플리케이션 리스트를 관리하는 애플리케이션 정보 관리 테이블, 해당 클라이언트의 과거 리스크 정보들을 저장하는 클라이언트 리스크 테이블 및 해당 클라이언트의 현재 성능 저하 리스크를 저장하는 클라이언트 현재 리스크를 더 포함하는 것을 특징으로 하는 네트워크 시스템 성능 저하 실시간 모니터링 장치.
  3. 청구항 1에 있어서, 상기 지역에 관한 정보는 나라 정보 또는 도시 정보인 것을 특징으로 하는 네트워크 시스템 성능 저하 실시간 모니터링 장치.
  4. 청구항 1에 있어서,
    상기 애플리케이션 구조체는 해당 애플리케이션에 관한 정보, 상기 애플리케이션이 활성화된 모든 클라이언트가 연결된 모든 세션들에 대응하는 세션 구조체 포인터들을 관리하는 세션 구조체 관리 테이블, 상기 애플리케이션이 활성화된 모든 클라이언트들에 대응하는 클라이언트 IP 주소들을 관리하는 클라이언트 정보 관리 테이블, 해당 애플리케이션의 과거 리스크 정보들을 저장하는 애플리케이션 리스크 테이블 및 해당 애플리케이션의 현재 성능 저하 리스크를 저장하는 애플리케이션 현재 리스크를 포함하며,
    상기 지역 구조체는 해당 지역에 관한 정보, 상기 지역에 위치한 모든 클라이언트가 연결된 모든 세션들에 대응하는 세션 구조체 포인터들을 관리하는 세션 구조체 관리 테이블, 상기 지역에 위치한 모든 클라이언트들에 대응하는 클라이언트 IP 주소들을 관리하는 클라이언트 정보 관리 테이블, 상기 모든 클라이언트들에 활성화된 애플리케이션들에 대응하는 애플리케이션 리스트를 관리하는 애플리케이션 정보 관리 테이블, 해당 지역의 상세 지역 분류를 위한 하부 지역 리스트를 관리하는 하부 지역 관리 테이블, 해당 지역의 과거 리스크 정보들을 저장하는 지역 리스크 테이블, 및 해당 지역의 현재 성능 저하 리스크를 저장하는 지역 현재 리스크를 포함하는 것을 특징으로 하는 네트워크 시스템 성능 저하 실시간 모니터링 장치.
  5. 청구항 1에 있어서,
    상기 세션 트리 테이블, 상기 서버 트리 테이블 및 상기 클라이언트 트리 테이블 각각은,
    각각의 관리 대상 구조체들에 대해 레드블랙 트리 알고리즘을 적용하여 관리하는 것을 특징으로 하는 네트워크 시스템 성능 저하 실시간 모니터링 장치.
  6. 청구항 1에 있어서,
    상기 리스크 관리 모듈에서 산출된 서버별, 클라이언트별, 애플리케이션별, 지역 및 전체 네트워크 시스템의 성능 저하 리스크를 화면에 표시하도록 하는 디스플레이 관리 모듈을 더 포함한 것을 특징으로 하는 네트워크 시스템 성능 저하 실시간 모니터링 장치.
KR1020210029940A 2021-03-08 2021-03-08 네트워크 시스템 성능 저하 실시간 모니터링 장치 KR102563247B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210029940A KR102563247B1 (ko) 2021-03-08 2021-03-08 네트워크 시스템 성능 저하 실시간 모니터링 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210029940A KR102563247B1 (ko) 2021-03-08 2021-03-08 네트워크 시스템 성능 저하 실시간 모니터링 장치

Publications (2)

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

Family

ID=83281506

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210029940A KR102563247B1 (ko) 2021-03-08 2021-03-08 네트워크 시스템 성능 저하 실시간 모니터링 장치

Country Status (1)

Country Link
KR (1) KR102563247B1 (ko)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102072700B1 (ko) * 2019-07-31 2020-02-03 (주)소울시스템즈 전수 패킷 처리 기반의 실시간 애플리케이션 성능 모니터링 장치 및 방법
KR102174190B1 (ko) * 2019-09-09 2020-11-04 주식회사 맥데이타 5g 기반의 네트워크 성능 시각화 방법, 장치 및 시스템

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102076862B1 (ko) 2018-01-18 2020-02-12 주식회사맥데이타 네트워크 성능지표를 시각화하는 방법 및 장치, 및 시스템
KR102076861B1 (ko) 2018-01-18 2020-05-18 주식회사맥데이타 네트워크 성능 진단 방법 및 장치, 및 시스템
KR102183897B1 (ko) 2018-09-19 2020-11-27 주식회사 맥데이타 네트워크에 대한 인공지능 기반 이상 징후 검출 방법, 장치 및 시스템

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102072700B1 (ko) * 2019-07-31 2020-02-03 (주)소울시스템즈 전수 패킷 처리 기반의 실시간 애플리케이션 성능 모니터링 장치 및 방법
KR102174190B1 (ko) * 2019-09-09 2020-11-04 주식회사 맥데이타 5g 기반의 네트워크 성능 시각화 방법, 장치 및 시스템

Also Published As

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

Similar Documents

Publication Publication Date Title
US10659354B2 (en) Processing data packets using a policy based network path
US9210122B2 (en) System and method for inspecting domain name system flows in a network environment
EP2629466B1 (en) Method, device and system for forwarding data in communication system
US9838333B2 (en) Software-defined information centric network (ICN)
US7788329B2 (en) Throttling electronic communications from one or more senders
US9338192B1 (en) Connection management using connection request transfer protocol
CA2704964C (en) System and method for improved in-browser notification
Zhang et al. On wide area network optimization
US11381667B1 (en) Methods and systems for implementing a regionally contiguous proxy service
US20100235464A1 (en) Handoff and optimization of a network protocol stack
CN107222561A (zh) 一种传输层反向代理方法
KR20130112038A (ko) 모바일 인터넷 서비스의 구현 방법, 게이트웨이, 프록시 및 시스템
US11575656B1 (en) Customer data handling in a proxy infrastructure
US20230336446A1 (en) Application records using session information
US20190037044A1 (en) Content distribution and delivery optimization in a content delivery network (cdn)
KR102563247B1 (ko) 네트워크 시스템 성능 저하 실시간 모니터링 장치
WO2023065848A1 (zh) 业务调度方法、装置、设备及计算机可读存储介质
US9015309B2 (en) Networked probe system
CN111818134A (zh) 变电站数据中心内基于雾计算的数据传输方法及装置
KR100509097B1 (ko) 웹기반 메시지 전달을 위한 웹 중계기 및 이를 이용한웹기반 메시지 전달방법
CN115474212B (zh) Cdn网络传输的优化方法、***、电子设备和存储介质
KR20080046900A (ko) 통합 보안 모듈을 탑재한 부하 분산 장치를 이용한 부하 분산 시스템 및 방법
NANO Network resource identification

Legal Events

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