KR100835654B1 - Query processing system and methods for a database with packet information by dividing a table and query - Google Patents
Query processing system and methods for a database with packet information by dividing a table and query Download PDFInfo
- Publication number
- KR100835654B1 KR100835654B1 KR1020070096170A KR20070096170A KR100835654B1 KR 100835654 B1 KR100835654 B1 KR 100835654B1 KR 1020070096170 A KR1020070096170 A KR 1020070096170A KR 20070096170 A KR20070096170 A KR 20070096170A KR 100835654 B1 KR100835654 B1 KR 100835654B1
- Authority
- KR
- South Korea
- Prior art keywords
- packet information
- query
- packet
- time
- partitioning
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/66—Arrangements for connecting between networks having differing types of switching systems, e.g. gateways
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/50—Network service management, e.g. ensuring proper service fulfilment according to agreements
- H04L41/508—Network service management, e.g. ensuring proper service fulfilment according to agreements based on type of value added network service under agreement
- H04L41/5087—Network service management, e.g. ensuring proper service fulfilment according to agreements based on type of value added network service under agreement wherein the managed service relates to voice services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/04—Processing captured monitoring data, e.g. for logfile generation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/18—Protocol analysers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/50—Testing arrangements
- H04L43/55—Testing of service level quality, e.g. simulating service usage
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M3/00—Automatic or semi-automatic exchanges
- H04M3/22—Arrangements for supervision, monitoring or testing
- H04M3/2254—Arrangements for supervision, monitoring or testing in networks
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Mining & Analysis (AREA)
- Quality & Reliability (AREA)
- Business, Economics & Management (AREA)
- General Business, Economics & Management (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Telephonic Communication Services (AREA)
Abstract
Description
본 발명은 인터넷전화망(VoIP)에서 전송되는 모든 패킷을 실시간으로 캡쳐(Mirroring)하여 패킷정보를 분할하여 패킷정보DB로 관리하고 패킷정보에 대한 검색을 실시간으로 즉시 응답할 수 있도록 하기 위하여, 패킷정보에 대한 DB분할 및 쿼리분할을 통한 호흐름 검색 장치 및 방법에 관한 것이다.The present invention captures all packets transmitted from an Internet telephone network (VoIP) in real time, divides packet information into a packet information DB, and manages the packet information DB so that packet information can be immediately answered in real time. An apparatus and method for call flow retrieval through DB partitioning and query partitioning are provided.
인터넷전화망(VoIP)은 음성 데이터를 IP 데이터 패킷으로 변환하여 데이터통신용 패킷망(인터넷이 대표적인 망이다)을 통하여 전송하는 통신서비스 기술이다. VoIP 망의 끝단에는 전화기와 같은 단말장치를 이용함으로써 사용자는 일반전화를 이용하는 것과 같은 서비스를 받을 수 있다. 인터넷전화망(VoIP)에 대한 구성을 도 1을 참조하여 보다 상세히 설명하고자 한다.VoIP is a communication service technology that converts voice data into IP data packets and transmits them through a packet network for data communication (the Internet is a typical network). By using a terminal such as a telephone at the end of the VoIP network, the user can receive the same service as using a regular telephone. The configuration of the VoIP network will be described in more detail with reference to FIG. 1.
VoIP 망을 통하여 일반전화기의 통신과 같은 서비스를 제공하기 위하여 통상 IP PBX(IP 교환장치)(110)이 필요하다. IP 교환장치(110)는 인터넷 전화단말(135)에서 요청되는 콜(Call)을 수신 전화단말(135)을 찾아 연결해주는 장치이다. 일반 전화망(PSTN)에서의 교환기(PBX)와 같은 역할을 한다. 상업적으로 전문적인 서비스를 하기위하여 전문사업자는 대용량 IP 교환장치(110)를 구비하고, 이 IP 교환장치(110)를 백본스위치(132)를 통해 인터넷 전화망(VoIP)(130)에 연결시킨다. 상기 교환장치(110)는 송신측 인터넷 전화단말(135)의 음성패킷이 VoIP망(130)을 통해 들어오면, 목적이 되는 수신 인터넷 전화단말(135)을 찾아 그 패킷을 보내주기도 하며, 인터넷 전화단말(135)이 아닌 일반 전화단말(125)인 경우에도 트렁크 게이트웨이(122)를 통해 연결시켜준다. 동시에 공중교환전화망(PSTN)(120)을 통해 들어오는 일반 전화단말에서의 콜을 받아 인터넷 전화단말(135)에 연결시켜주기도 한다.In order to provide a service such as communication of a general telephone through a VoIP network, an IP PBX (IP switching device) 110 is usually required. The
VoIP는 음성데이터를 패킷으로 변환하여 데이터통신용 패킷망을 통해 전송되는데, 도 2에서 보는 바와 같이, 패킷들은 VoIP 장비(150)들에 의해 중계된다. VoIP 장비(150)는 통상 프록시 서버(115), IP-PBX(110), 트렁크 게이트웨이(122) 등이 있다. VoIP의 음성데이터 통신을 규약하는 프로토콜인 VoIP 프로토콜은 과거에는 H.323이 많이 쓰였으나 최근에 그 구조가 간단하여 많이 활용되는 SIP 의 예를 들기로 한다. 도 3은 SIP 프로토콜을 이용한 VoIP 시스템의 프로토콜 스택을 보여주고 있다. 즉, SIP 서버에서 다루는 VoIP 프로토콜은 주로 호연결(Call Setup) 등을 위한 목적으로 이용되고 UDP 위에서 구현되고, 실제 음성데이터 전송을 위해서는 RTP/RTCP 프로토콜 위에서 구현된다. 즉, 전자의 패킷은 < IP헤더 + UDP헤더 + SIP 프로토콜 > 로 구성되고, 후자의 패킷은 < IP헤더 + UDP헤더 + RTP/RTCP 헤더 + 음성데이터 전송 > 로 구성된다. 따라서 패킷을 캡쳐하여 분석하면, 호(Call)와 관련된 정보인 < Call ID >, < 메소드 >, < 전송시각 >, < 전화단말 정보 >, < 발신전화번호 >, < 수신전화번호 > 등을 알 수 있고, 장비들간 전송될 때의 장비들의 < 소스 IP/Port >와 < 목적 IP/Port > 등을 알아낼 수 있다. 이때 소스 IP/Port와 목적 IP/Port는 장비들의 IP와 세션이 설정되는 Port번호를 의미하므로, VoIP 장비(150)를 통해 중계될 때마다 변한다. 송수신 전화번호는 해당 전화단말(135)의 전화번호를 의미한다. 일반적으로 인터넷 전화번호는 “<전화번호> @ <도메인>”으로 표시된다. 전화단말정보는 전화단말의 제품명 등의 정보를 가지고 있다. 또한, 메소드는 SIP 프로토콜에 의해 호설정 관련 메시지들의 종류를 나타내는 것으로서, 메소드별 패킷흐름을 보면, 호설정이 어떻게 진행되고 있는지를 알 수 있다.VoIP converts voice data into packets and transmits them through a data communication packet network. As shown in FIG. 2, packets are relayed by
이러한 VoIP 망에서 패킷들이 잘 송수신되는지의 여부나 호(Call) 흐름이 전화단말에서 끝단까지 연결이 잘되는지의 여부 등을 관찰하기 위하여 종래에는 패킷분석기(100)나 패킷측정기(Probe) 등이 이용되거나 시도되고 있다. 보통 일시적으로 VoIP망의 성능이나 흐름을 관찰하기 위하여, 도 1에서 보는 바와 같이, 백본스위치(132)에 패킷분석기(100)를 연결하여 패킷정보를 검출한다. 즉, 패킷분석기(100)는 연결된 백본스위치를 통과하는 모든 패킷을 캡쳐하여 분석한다. 그러나 처리해야하는 패킷의 양이 너무 방대하기 때문에 보통은 VoIP 망의 상황 등을 파악하기 위하여 일시적으로 이용될 뿐, 실시간으로 감시를 하지는 못한다. 현재의 한 사업자의 VoIP 망을 예로 들면, 하나의 백본스위치에서 캡쳐하여 분석해야 하는 패킷정보가 1일간 약 1억 5,000만개 정도된다. 인터넷전화 서비스가 보편화되면 더욱 많은 패킷정보를 처리해야 한다. 이를 해결하기 위하여 도 4에서 보는 바와 같이, 패킷측정기(Probe)(105)를 여러 대 설치하여 하나의 패킷측정기(105)에서 측정되는 패킷량을 줄임으로써 실시간으로 모든 패킷을 측정하려는 시도가 있었다. 일반적으로 백본스위치에 연결되어 있는 단위 망별로 패킷측정기(105)를 설치하여 해당 패킷측정기는 단위 망에서 전송되는 패킷만을 캡쳐하여 분석하는 방법이다. 그러나 이 방법의 문제점은 단위 망에서 전송되는 패킷양이 상당히 많은 경우 그 망에 설치된 패킷측정기(105)에서 병목현상이 발생하여 전체 VoIP 망의 패킷전송 상태를 파악하는데 시간이 지연될 수 있고, 패킷측정기(105)를 여러 대 설치하여야 하기 때문에 설치비용과 관리비용이 급격히 늘어난다는 점이다. 무엇보다 가장 큰 문제점은 패킷측정기(105)로 측정되는 데이터들을 집합(Merging)을 시켜 전체 VoIP 망의 상황을 파악하는 기술이 어렵다는 점이다.In order to observe whether the packets are well transmitted and received in the VoIP network or whether the call flow is well connected from the terminal to the terminal, the
본 발명은 상기와 같은 인터넷전화망(VoIP)의 호흐름 현황파악과 성능분석을 실시간으로 처리할 수 없는 기술적 난제를 해결하기 위하여 안출된 것으로, 인터넷전화망(VoIP)에 패킷수집장치를 설치하여 모든 패킷을 캡쳐(Mirroring)하여 패킷정보를 캡쳐시간 기준으로 분할하여 DB화하고 패킷정보에 대한 검색쿼리를 분할하여 수행함으로써, 실시간 망 관리가 가능한 VoIP 패킷정보 검색장치 및 방법을 제공함을 목적으로 한다.The present invention has been made to solve the technical difficulties that can not be handled in real time to the current status of the call flow analysis and performance analysis of the Internet phone network (VoIP), the packet collecting device is installed in the Internet phone network (VoIP) all packets The purpose of the present invention is to provide a VoIP packet information retrieval apparatus and method capable of real-time network management by dividing the packet information into a DB by capturing the packet information based on a capture time and dividing a search query for the packet information.
또한, 상기와 같이 실시간으로 발생되는 패킷의 방대한 양을 처리하기 위하여 종래에는 한 백본스위치에 여러 대의 패킷측정기(Probe)를 설치하여 많은 설치비용 소모과 결과의 취합(Merging)의 복잡성을 극복하기 위하여, 백본 스위치에 보다 적은 패킷수집장치만을 설치하고 일괄적으로 처리함으로써 설치비용 감소와 운용의 단순화를 꾀하는 VoIP 패킷정보 검색장치 및 방법을 제공함을 목적으로 한다.In addition, in order to deal with a large amount of packets generated in real time as described above, in order to overcome the complexity of merging a lot of installation cost and result by installing several packet probes (Probe) in one backbone switch, It is an object of the present invention to provide a VoIP packet information retrieval apparatus and method for reducing installation cost and simplifying operation by installing only a small number of packet collecting devices in a backbone switch and processing them collectively.
또한, 상기와 같이 종래는 방대한 패킷을 처리하는 시간이 많이 걸려 실시간이라 하더라도 다소 발생시간보다는 늦은 정보를 생성하여 보여주었으나, 이를 극복하여 거의 실시간에 가까운 VoIP 망의 호흐름 및 성능상황을 보여주는 VoIP 패킷정보 검색장치 및 방법을 제공함을 목적으로 한다.In addition, as described above, although it takes a lot of time to process a large packet, even in real time, the information is generated later than the time of occurrence, but the information is shown, but VoIP which shows the call flow and performance situation of the near-real-time VoIP network is overcome. An object of the present invention is to provide a packet information retrieval apparatus and method.
또한, 종래에는 사전에 필요하거나 특정화된 패킷정보나 아주 짧은 시간만의 패킷정보만을 다루어, VoIP 망 관리자가 검색할 수 있는 형태가 제한적인 것을 극복하여, 일정시간동안 패킷정보를 전부 보관함으로써 VoIP 망 관리자가 원하는 거 의 모든 형태의 패킷정보를 검색할 수 있는 VoIP 패킷정보 검색장치 및 방법을 제공함을 목적으로 한다.In addition, in the prior art, only the packet information required or specified in advance or packet information for a very short time is dealt with, and the form that the VoIP network manager can search is overcome, thereby preserving all the packet information for a predetermined time. It is an object of the present invention to provide a VoIP packet information retrieval apparatus and method for retrieving almost any type of packet information desired by an administrator.
상기 목적을 달성하기 위한 본 발명인 패킷정보에 대한 DB분할 및 쿼리분할을 통한 호흐름 검색 장치는, 인터넷전화망(VoIP)에 연결된 백본 스위치에 연결되어 VoIP 망에 전송되는 모든 패킷을 캡쳐(Mirroring)하는 패킷수집부와, 패킷정보를 저장할 수 있는 테이블로서 동일한 구조로 다수의 패킷정보 테이블을 구성하고 있는 패킷정보DB, 수집된 패킷들을 패킷정보DB의 패킷정보 테이블에 구조에 맞게 변환하여 상기 테이블에 저장하는 패킷정보 생성부, 호흐름과 관련한 패킷정보를 검색하기 위한 쿼리를 패킷정보 테이블의 구조에 맞게 분할하여 쿼리를 최적화한 후 상기 패킷정보DB에 쿼리요청을 하는 호흐름 검색단말을 포함하는 것을 특징으로 한다.Call flow retrieval apparatus through DB partitioning and query splitting for packet information, which is the present invention for achieving the above object, is connected to a backbone switch connected to an Internet telephone network (VoIP) to capture all the packets transmitted to the VoIP network (Mirroring) The packet collecting unit and the packet information DB, which constitute a plurality of packet information tables in the same structure as a table for storing the packet information, and convert the collected packets into the packet information table of the packet information DB according to the structure and store them in the table. Packet information generation unit, and a call flow search terminal for querying the packet information DB after optimizing the query by dividing a query for searching packet information related to a call flow according to the structure of a packet information table It is done.
상술한 바와 같이, 본 발명은 인터넷전화망(VoIP)에 패킷수집장치를 설치하여 모든 패킷을 캡쳐(Mirroring)하여 패킷정보를 캡쳐시간 기준으로 분할하여 DB화하고 패킷정보에 대한 요청 쿼리를 분할하여 수행함으로써, 인터넷전화망(VoIP)의 호흐름 현황파악과 성능분석을 실시간으로 처리할 수 있게 하였다. 종래에는 패킷분석장치의 방대한 패킷정보에 대한 처리의 한계와 기술적 구성의 한계로 인하여 사실상 실시간 처리를 제공해 줄 수 없었던 난제였다. 특히, 향후 VoIP 망이 보편 화가 되고 그 패킷양이 더욱 급격히 늘어날 경우 본 발명이 제시하는 해결책으로 이를 극복할 수 있을 것이다.As described above, the present invention installs a packet collecting device in a VoIP network, captures all packets, divides packet information based on a capture time, makes a DB, and splits a request query for packet information. By doing so, it is possible to process the call flow status and performance analysis of VoIP in real time. In the past, due to the limitations of the processing of the vast packet information of the packet analysis device and the limitations of the technical configuration, the real-time processing could not be provided. In particular, if the VoIP network becomes universal in the future and the amount of packets increases more rapidly, the solution proposed by the present invention may overcome this problem.
특히, 패킷전체를 처리하게 되면 DB테이블의 크기가 방대해지고, 그 크기가 어느 정도 커지면 DBMS의 처리속도가 급격히 늦어지게 된다. 본 발명은 테이블을 분할하여 처리함으로써 상기와 같은 문제점을 해결하고, 방대한 양의 전체 패킷정보 검색이 가능한 장치와 방법을 제시하고 있다.In particular, if the entire packet is processed, the size of the DB table is enormous, and if the size is increased to some extent, the processing speed of the DBMS is drastically slowed. The present invention solves the above problems by dividing and processing a table, and proposes an apparatus and method capable of retrieving a large amount of total packet information.
또한, 테이블을 분할함에 있어, 패킷이 생성되는 시간을 기준으로 분할함으로써, 보다 효과적으로 검색할 수 있는 쿼리로 최적화가 가능하도록 하는 장치와 방법을 제시하고 있다.In addition, in partitioning a table, an apparatus and a method for optimizing a query that can be searched more effectively by dividing based on a time when a packet is generated are proposed.
또한, 일정기간 동안 패킷정보를 전부 보관하고 검색속도도 향상시켜 검색시간이 많이 걸리는 검색도 즉시 실행할 수 있도록 하였기 때문에, VoIP 망 관리자가 원하는 거의 모든 형태의 패킷정보를 검색할 수 있게 되었다. 통상적으로 30일정도의 통신자료를 보관하면 VoIP 통신에서 발생되는 대부분의 상황 및 문제점들을 파악해 낼 수 있고, 패킷정보에서 필요한 모든 데이터를 저장할 수 있기 때문에 VoIP 망 관리자에게 필요한 모든 정보를 제공해 줄 수 있다고 해도 무리는 아니다. 또한 데이터의 일부분만 매칭하는 검색 등은 일반적으로도 검색시간이 많이 소요되는데, 패킷정보가 방대하여 이런 검색은 종래의 기술상 거의 짧은 시간내 검색이 불가능하여 검색에 일정한 제약이 있을 수밖에 없었다. 그러나 본 발명은 이러한 검색도 아주 짧은 시간내에 처리가 가능하므로, VoIP 망 관리자가 사실상 필요한 모든 검색을 제공해 줄 수 있다.In addition, since all packet information is kept for a certain period of time, and the search speed is improved, a search that takes a long time can be executed immediately. Thus, almost any type of packet information desired by the VoIP network manager can be retrieved. In general, if you store 30 days of communication data, you can identify most situations and problems that occur in VoIP communication and store all the necessary data in packet information. It is not too difficult. In addition, a search that matches only a part of the data generally takes a lot of searching time. Due to the large packet information, such a search cannot be searched in a short time in the related art, and thus there is no limit to the search. However, the present invention can process such a search in a very short time, so that the VoIP network manager can provide virtually all the necessary searches.
또한, 본 발명은 방대한 양의 패킷에 대한 수집은 다수의 패킷수집장치에서 캡쳐하고 필요한 패킷정보만을 추출하여 그 양을 상당히 축소하여 DB화하고, 가장 기초가 되는 패킷정보에 대해 DB서버가 주되게 관리하고, 관련된 검색쿼리 등은 단말에서 처리하여, 방대한 양을 처리하기 위하기 위하여 각 기능을 분할함으로써, 자원을 보다 효율적으로 사용한다.In addition, the present invention is to collect a large amount of packets from a plurality of packet collecting devices and extract only the necessary packet information, significantly reduced the amount of DB to the database, the DB server for the most basic packet information The terminal manages the related search query and the like, and divides each function in order to process a large amount, thereby using resources more efficiently.
본 발명을 이용한다면 VoIP 망 사업자는 호 흐름을 거의 실시간으로 파악이 가능하므로, 장애가 발생하였거나 사용자가 불편에 대한 요구가 발생하였을 경우, 빠른 시간내에 그 문제를 찾아낼 수 있고 그 해결책을 제시해 줄 수 있게 된다. 따라서 VoIP 망 사업자는 본 발명의 장치와 방법을 통해 사용자에게 일정한 서비스 수준을 유지하여 제공할 수 있게 된다.According to the present invention, since the VoIP network operator can grasp the call flow in near real time, when a failure occurs or a user needs a discomfort, the VoIP network service provider can quickly find the problem and provide a solution. Will be. Therefore, the VoIP network operator can maintain and provide a certain service level to the user through the apparatus and method of the present invention.
또한, 본 발명의 다른 일실시예를 통해, 클라이언트에게 복잡한 분할된 테이블의 내부구조를 노출시키지 않고 내부적으로 이를 처리하게 하여, 클라이언트에서 구현되는 패킷정보 검색과 관련된 프로그램의 작성을 단순하게 하고, 서버의 내부 테이블 구조변경에서 자유로워지게 하여, 유지보수를 편리하게 하였다.In addition, through another embodiment of the present invention, it is possible to process the internally without exposing the internal structure of the complex partitioned table to the client, simplifying the creation of a program related to the packet information search implemented in the client, the server It is free from modification of the internal table structure, which makes maintenance easy.
이하, 패킷정보에 대한 DB분할 및 쿼리분할을 통한 호흐름 검색 장치 및 방법을 참조도면을 통하여 상세히 설명하고자 한다.Hereinafter, an apparatus and method for searching call flows through DB partitioning and query partitioning for packet information will be described in detail with reference to the accompanying drawings.
도 5는 본 발명의 패킷정보 검색장치의 바람직한 일실시예의 구성을 도시한 것이다.5 is a block diagram showing a preferred embodiment of the packet information retrieval apparatus of the present invention.
도 5에 보는 바와 같이, 본 발명의 패킷정보 검색장치는 패킷정보DB(220) 와, 패킷수집부(210)와 패킷정보 생성부(230)로 구성된 다수의 패킷수집장치(201), 다수의 호흐름 단말(250)로 구성되어 있다.As shown in FIG. 5, the packet information retrieval apparatus of the present invention includes a
상기 패킷수집장치(201)는 인터넷전화망(VoIP)(130)의 백본스위치(132)에 연결되어 패킷을 수집하여 패킷정보를 추출하여 주기적으로 패킷정보DB(220)에 저장한다. 패킷수집장치(201)는 백본스위치(132)에 여러 대를 물릴 수 있다. 즉, 패킷수집장치(201)는 백본스위치(132)에 패킷을 캡쳐할 수 있는 곳에 여러 대를 물려 전체 패킷을 미러링할 수 있게 설치하고 필요한 패킷정보만 패킷정보DB(220)에 모으는 작업을 수행하는 장치이다.The
상기 패킷수집부(210)는 인터넷전화망(VoIP)(130)의 백본스위치(132)에 연결되어 백본스위치(132)에서 전송되는 모든 패킷을 캡쳐(Mirroring)한다. 보통 백본스위치(132)에 단위 VoIP 망들이 연결되어 스위칭되고 백본스위치(132)도 다른 백본스위치(132)에 연결되기도 한다. 이때 패킷수집부(210)는 한 백본스위치(210)에 하나가 연결되어 패킷을 수집할 수 있다. 패킷수집부(210)에 모든 패킷을 미러링하여 패킷을 캡쳐한 시간과 함께 임시파일에 저장한다. 패킷을 캡쳐한 시간이 패킷의 생성시간으로서 다루게 되는 시간값으로서, 패킷정보 검색에 유용하게 이용되는 정보이다. 임시파일에는 짧은 시간동안만 보관되지만 패킷정보를 DB화 할 수 있는 시간보다는 오래 보관한다. 이는 지속적으로 전송되는 패킷을 계속 캡쳐하여 보관하기 위하여 무한정 큰 임시저장 공간을 확보할 수 없기 때문이다.The
패킷정보DB(220)는 패킷정보를 저장할 수 있는 테이블로서 동일한 구조로 다수의 패킷정보 테이블을 구성하고 있다.The
패킷정보DB(220)의 구조에 대하여 도 6을 참조하여 보다 상세하게 설명하고자 한다. 도 6a는 패킷정보DB(220)의 구조에 대한 바람직한 일실시예이고, 도 6b는 패킷정보 테이블의 구조에 대한 바람직한 일실시예이다. 패킷정보DB(220)는 M개의 패킷정보 테이블(221)로 구성되고, 이 패킷정보 테이블(221)들은 모두 동일한 구조를 가진다. 즉, 테이블의 필드명이나 그 필드의 크기 등 그 구조가 동일할 뿐만 아니라, 테이블의 크기, 즉 레코드의 수도 R 개로 동일하게 구성된다. 패킷정보 테이블(221)의 개수와 크기(한 테이블당 레코드의 개수)는 수집되는 패킷의 수량과 DB 쿼리를 했을 경우 처리속도, 그리고, 패킷정보를 보관해야 하는 기간에 의하여 결정된다. 예를 들어 하루에 1억 5천만개의 패킷을 수집하는 경우를 살펴보기로 한다. 테이블의 레코드 수가 증가하면 이 테이블에 대한 쿼리 속도는 늦어지게 된다. 사용자에게 쿼리를 처리해줘야 하는 시간에 의하여 이 레코드 수는 결정된다. 여기의 예에서는 패킷정보 테이블(221)의 레코드 수는 약 100만개 정도로 구성한다. 그리고 패킷정보를 30일전 데이터까지 보관하는 정책을 결정하면, 패킷정보 테이블(221)의 개수는 약 5500개 ( = 30일 * 1억 5천만개 / 100만개 ) 정도로 결정되는 것이다.The structure of the
패킷정보 테이블(221)의 구조는 도 6b에서 보는 바와 같이, < Call ID >, < 발신전화번호 >, < 수신전화번호 >, < 소스 IP/Port >, < 목적 IP/Port >, < 메소드 >, < 생성시간 >, < 전화단말정보 > 로 구성된다. 호(Call)와 관련된 정보인 < Call ID >, < 메소드 >, < 전화단말 정보 >, < 발신전화번호 >, < 수신전화번호 > 등은 VoIP 프로토콜의 호와 관련된 정보이고, < 소스 IP/Port >와 < 목적 IP/Port > 는 장비들간 전송될 때의 장비들에 관한 정보이다. < 생성시간 > 은 패킷을 캡쳐할 때 저장된 시간이다.As shown in FIG. 6B, the packet information table 221 has a structure of <Call ID>, <Calling ID>, <Incoming Call Number>, <Source IP / Port>, <Destination IP / Port>, and <Method>. , <Generation time>, and <telephone information>. Call related information such as <Call ID>, <Method>, <Phone Terminal Information>, <Outgoing Call Number>, and <Incoming Call Number> are information related to calls of VoIP protocol, and <Source IP / Port > And <Destination IP / Port> are information about devices when they are transmitted between devices. <Generation time> is the time saved when capturing the packet.
각 패킷정보 테이블(221)은 생성시간 기준으로 저장대상 범위가 정해져 있고 다수의 패킷정보 테이블(221)은 시간기준 저장범위에 따라 순서가 정해진다. 예를 들면, 최초의 패킷캡쳐를 12:00부터 수행하고, 패킷정보 테이블(221)의 시간기준 저장범위를 10분단위로 정한다고 하자. 그러면 첫 번째의 패킷정보 테이블(221)은 12:00부터 12:10까지에 캡쳐되는 패킷정보만 저장하고, 이 테이블의 시간기준 저장범위는 12:00부터 12:10까지가 된다. 두 번째의 테이블에는 12:11부터 12:20까지에 캡쳐되는 패킷정보만 저장되고, 그 시간기준 저장범위는 12:11부터 12:20까지가 된다. 이는 패킷정보의 생성시간 값이 그 패킷정보가 저장되는 테이블의 시간기준 저장범위에 포함된다는 의미이기도 하다. 각 패킷정보테이블은 시간기준 저장범위가 정해져 있고, 저장범위단위가 일정한 경우는 최초 시간만 가지고 있어도 저장범위를 알 수 있다. 상기 저장범위단위는 캡쳐되는 패킷의 수에 따라 임의로 조정될 수 있다. 즉, 저장범위 단위시간당 패킷수가 테이블의 레코드 수를 넘는다면 저장범위단위는 더 늘어나야 한다.Each packet information table 221 has a storage target range determined on a generation time basis, and a plurality of packet information tables 221 are ordered according to a time reference storage range. For example, suppose that the first packet capture is performed from 12:00 and the time reference storage range of the packet information table 221 is set in units of 10 minutes. Then, the first packet information table 221 stores only packet information captured from 12:00 to 12:10, and the time reference storage range of this table is from 12:00 to 12:10. In the second table, only packet information captured from 12:11 to 12:20 is stored, and the time base storage range is from 12:11 to 12:20. This also means that the generation time value of the packet information is included in the time base storage range of the table in which the packet information is stored. Each packet information table has a time-based storage range. If the storage range unit is constant, the storage range can be known even with the initial time. The storage range unit may be arbitrarily adjusted according to the number of packets to be captured. In other words, if the number of packets per storage unit time exceeds the number of records in the table, the storage unit must be increased.
패킷정보 생성부(230)는 상기 패킷수집부(210)에서 수집된 패킷들에서 필요한 정보와 패킷의 생성시간을 패킷정보 테이블(221)의 구조에 맞게 변환하여 상기 테이블에 저장한다. 1 ~ M 번째까지의 패킷정보 테이블(221)에서 저장되는 테이블의 순서는 테이블의 저장범위의 시간에 따라 정해진다. 각 패킷정보 테이블(221)에는 시간기준 저장범위가 정해진다. 앞서본 바와 같이, 10분단위로 패킷정보 테이 블(221)을 분할한다면, 최초시간부터 10분후까지는 제 1 번째 테이블에, 그 다음 10분후부터 20분후까지는 제 2 번째 테이블에 저장된다. 그러나 다른 실시예로서, 처음 들어오는 패킷정보는 1번째 패킷정보 테이블(221)에 저장되고, 이 테이블이 꽉 차면 다음 테이블, 즉 2번째 패킷정보 테이블(221)에 저장된다. 전자의 방법은 테이블에 모두 이용할 수 없다는 단점이 있으나 각 테이블의 생성시간범위 계산이 간단한 것이 장점이며, 후자의 방법은 장단점이 반대가 된다. 양 경우 모두, M번째 패킷정보 테이블(221)까지 모두 저장된다면 다시 1번째 패킷정보 테이블(221)부터 저장된다. 이 경우 처음에 저장된 패킷정보는 소실되게 된다. 즉, 패킷정보는 일정시간만 보관하게 된다. 패킷정보 생성부(230)에서 수집된 패킷들를 저장하는 프로세스는 일정시간 간격으로 주기적으로 반복된다. 즉, 패킷수집부(210)에서 일정시간동안 패킷을 수집하여 임시파일에 저장하여 보관하면, 패킷정보 생성부(230)가 주기적으로 패킷정보를 패킷정보 테이블(221)에 저장하게 된다.The packet information generation unit 230 converts the information required from the packets collected by the
호흐름 단말(250)은 패킷정보DB(220)와 서버에 대한 클라이언트의 관계이다. 즉, 호흐름 단말(250)은 클라이언트로서 패킷정보DB(220)에 필요한 패킷정보에 대한 쿼리로 요청하면, 패킷정보DB(220)는 그 쿼리를 처리해준다. 그래서 호흐름 단말(250)은 필요한 검색된 패킷정보를 얻게 된다. 패킷정보의 < 발신전화번호 > 와 < 수신전화번호 > 등에 의해 호가 결정되고, 각 호간 내에서 지나가는 VoIP 장비(150)들은 < 소스 IP/Port > 와 < 목적 IP/Port > 에 의해 결정된다. 호흐름은 동일한 < 발신전화번호 > 와 < 수신전화번호 > 를 갖는 패킷정보를 모두 검색함으로써, 호흐름 내에 어떤 VoIP 장비를 거치는지 등 호흐름을 검색해 낼 수 있다.The
호흐름 단말(250)에서 패킷정보DB(220)에 요청하는 쿼리는 도 7을 통해 보다 상세히 기술하고자 한다. 도 7은 호흐름 단말(250)에서 사용자가 요청하는 쿼리를 분할최적화하는 예시도이다.The query requesting the
패킷정보DB(220)에 요청하는 쿼리는 원시검색쿼리(310)와 분할된 쿼리(320)로 구분된다. The query requesting the
원시검색쿼리(310)는 패킷정보DB(220)의 분할된 다수의 패킷정보테이블(221)을 하나의 테이블로 간주하여 쿼리를 작성한 것이다. 즉, 도 7에서 보는 바와 같이, 원시검색쿼리(310)의 쿼리문인 FROM < 테이블명 >에서 < 테이블명 > 이 < DayRegi > 로 전체 테이블명으로 기재된다.The
분할된 검색쿼리(320)는 원시검색쿼리(310)를 분할된 다수의 패킷정보테이블(221)의 구조에 맞게 쿼리를 분할하여 작성한 검색쿼리이다. 원시검색쿼리(310)를 분석하여 쿼리에서 참조하는 패킷정보 테이블(221)이 어느 것인지를 결정하고 결정된 테이블별로 쿼리를 각각 작성한다. 원시검색쿼리(310)에서 어느 패킷정보 테이블(221)을 참조하느냐는 것은 쿼리의 조건문인 WHERE 절의 < 생성시간 > 조건에 의해 결정된다. 즉, 패킷정보 테이블(221)은 시간기준 저장범위로 분할되어 있으므로, 원시검색쿼리(310)의 생성시간 조건내의 패킷정보들을 저장하는 테이블들이 이에 해당한다. 예를 들면, 도 7의 예에서 쿼리의 조건이 < 생성시간 > 이 3시 10분에서 4시 30분 사이이면, 패킷정보 테이블(221)의 시간기준 저장범위가 이와 겹치는 테이블은 모두 해당된다.The divided
겹치는 패킷정보 테이블(221)별 쿼리 작성은 다음과 같다. 쿼리의 내용은 < 테이블명 > 과 < 생성시간 > 항목만을 제외하고는 동일하다. < 테이블명 > 은 겹치는 패킷정보 테이블(221)의 이름으로 대체된다. < 생성시간 > 조건은 겹치는 패킷정보 테이블(221)의 시간기준 저장범위내로 좁힌다. 그 이유는 각 테이블은 패킷정보의 생성시간이 시간기준 저장범위 내에 들어오는 패킷만 저장하기 때문이다. 예를 들면, 도 7에서 보는 바와 같이, 테이블 < DayRegi-L > 이 4시20분부터 4시 30분까지 생성된 패킷정보를 가지고 있다면, 이 테이블에 대한 쿼리 조건을 < 4시 20분부터 4시 25분까지 > 로 정하면 된다. 또한, 상기 테이블별 쿼리(321)의 조건문에서 생성시간을 제일 먼저 기재함으로써도 쿼리의 최적화를 수행한다. 그 이유는 생성시간 항목이 검색에서 인덱스 역할을 하기 때문에 DB에서 보다 빠른 검색을 수행할 수 있다. 상기와 같이, 각 테이블에 대한 테이블별 쿼리(321)가 만들어지면, 이를 전체로 합치는 UNION 명령어를 이용하여 전체 결과를 묶도록 한다. 결론적으로, 원시검색쿼리(310)를 분할된 쿼리(320)로 분할하는 것은 단순히 모든 패킷정보 테이블(221)에 대하여 분할하는 것이 아니라, 해당 테이블인지의 여부판단과 생성시간의 쿼리조건에 대하여 쿼리의 최적화를 수행한다.A query for each overlapping packet information table 221 is as follows. The contents of the query are the same except for the <table name> and <create time> items. <Table name> is replaced with the name of the overlapping packet information table 221. The condition of <creation time> is narrowed within the time reference storage range of the overlapping packet information table 221. This is because each table stores only packets whose packet information generation time falls within the time base storage range. For example, as shown in FIG. 7, if the table <DayRegi-L> has packet information generated from 4:20 to 4:30, the query condition for this table is <4:20 to 4 You can set> to 25 minutes. In addition, the query optimization is also performed by first writing the creation time in the conditional statement of the query for each table 321. The reason is that the creation time item can serve as an index in the search, so the search can be performed faster in the DB. As described above, when a table-
상기와 같이, 쿼리를 분할하여 UNION 명령어를 이용하여 쿼리를 재구성하면 쿼리처리속도가 획기적으로 빨라진다. 테이블의 크기, 즉, 테이블의 레코드 수가 많아질수록 쿼리처리속도는 늦어진다. 그런데, 그 크기가 어느 정도 커지면 쿼리처리속도가 급격히 늦어지는 현상이 발생한다. 이러한 현상은 CPU의 프로세스 처리방법과 메모리 관리 방식에 그 근본적인 원인이 있다. 즉, 레코드의 수가 많아짐에 따라 프로세스의 컨텍스 스위치(Context switch)와 메모리 스왑(Swap)이 통상 CPU 가 처리할 수 있는 것보다 많이 발생되어 처리속도가 급격히 늦어지는 것이다. 따라서 테이블의 크기를 급격히 늦어지지 않도록 일정크기로 제한하여 순차적으로 처리하게 하면, 급격한 처리속도의 저하를 방지할 수 있다.As mentioned above, recomposing a query using the UNION command by dividing the query greatly speeds up the query processing. As the size of the table, i.e. the number of records in the table, increases, the query processing speed slows down. However, if the size increases to some extent, the query processing speed may be drastically slowed down. This phenomenon is attributable to how the CPU processes and manages memory. In other words, as the number of records increases, more process context switches and memory swaps occur than can be handled by the CPU. Therefore, if the size of the table is limited to a certain size so as not to be suddenly delayed, and the processing is performed sequentially, a sudden drop in processing speed can be prevented.
호흐름 단말(250)은 상기 분할된 검색쿼리가 생성되면 이 쿼리를 패킷정보DB에 요청하고 그 결과를 받아, 호흐름에 대한 정보를 재구성한다. 패킷정보DB에는 일정기간 전까지는 거의 모든 패킷정보가 있으므로 원하는 정보를 어느 형태로든지 추출하여 볼 수 있다. 또한 쿼리처리가 속도가 빠르기 때문에, 데이터의 단어 일부만 매칭이 되는 검색 등 시간이 많이 소요되는 쿼리들도 사용자가 속도저하를 심히 느끼지 않고도 그 결과를 볼 수 있다. 즉, 관리자가 원하는 형태는 거의 대부분을 쿼리로 구성할 수 있게 된다.When the split search query is generated, the
상기에 적시한 호흐름 단말(250)은 주로 호 흐름을 분석하고 모니터링하기 위한 목적으로 패킷정보를 검색하는 것이나, 이는 하나의 바람직한 일실시예이며, 다른 목적으로 패킷정보를 검색하는 단말도 이 기술범위에 포함된다고 볼 수 있다.The
도 8은 패킷정보에 대한 DB분할 및 쿼리분할 방법의 바람직한 일실시예에 대한 흐름도이다.8 is a flowchart illustrating a preferred embodiment of a DB partitioning and query partitioning method for packet information.
패킷정보에 대한 DB분할 및 쿼리분할의 방법은 패킷정보DB 분할단계(S410)와, 실시간 패킷캡쳐(Mirroring)단계(S420), 패킷정보 테이블 저장단계(S430), 원시 검색쿼리 생성단계(S440), 분할된 검색쿼리 생성단계(S450), 쿼리요청 및 결과생성단계(S460)로 구성된다.The method of DB partitioning and query partitioning for packet information includes packet information DB partitioning step S410, real time packet capturing step S420, packet information table storing step S430, and raw search query generation step S440. It consists of a divided search query generation step (S450), query request and result generation step (S460).
패킷정보DB 분할단계(S410)는 패킷정보를 저장하는 테이블을 다수의 동일한 패킷정보 테이블로 구성하는 단계를 말한다. 상기 DB테이블은 필드명이나 필드의 크기 등 그 구조가 동일할 뿐만 아니라, 테이블의 크기, 즉 레코드의 수도 동일하게 구성된다. 앞서 살펴본 바와 같이, 패킷정보 테이블의 개수와 크기는 수집되는 패킷의 수량과 DB쿼리를 했을 경우 처리속도, 그리고 패킷정보를 보관해야 하는 기간에 의하여 결정된다. 또한, 패킷정보 테이블의 구성은 < Call ID >, < 발신전화번호 >, < 수신전화번호 >, < 소스 IP/Port >, < 목적 IP/Port >, < 메소드 >, < 시간 >, < 전화단말정보 > 등을 포함한다.The packet information DB dividing step S410 refers to a step of configuring a table for storing packet information into a plurality of identical packet information tables. The DB table not only has the same structure such as field name and field size, but also has the same size of the table, that is, the number of records. As described above, the number and size of the packet information table are determined by the number of packets to be collected, the processing speed when the DB query is performed, and the period of storing the packet information. In addition, the packet information table consists of <Call ID>, <Outgoing Call Number>, <Incoming Call Number>, <Source IP / Port>, <Destination IP / Port>, <Method>, <Time>, <Phone Terminal Information> and the like.
실시간 패킷캡쳐(Mirroring)단계(S420)는 인터넷전화망(VoIP)의 백본스위치에 연결되어 백본스위치(132)에서 전송되는 모든 패킷을 캡쳐(Mirroring)하고 패킷을 캡쳐한 시간과 함께 임시파일에 저장한다. 패킷을 캡쳐한 시간이 패킷의 생성시간으로서 다루게 되는 시간 값으로서, 패킷정보 검색에 유용하게 이용되는 정보이다. 임시파일에는 짧은 시간동안만 보관되지만 패킷정보를 DB화 할 수 있는 시간보다는 오래 보관한다.Real time packet capturing (Mirroring) step (S420) is connected to the backbone switch of the Internet telephone network (VoIP) captures all the packets transmitted from the backbone switch 132 (Mirroring) and stores the packet with the time to capture the packet in a temporary file . The time at which the packet is captured is a time value to be treated as the generation time of the packet, which is useful for packet information retrieval. Temporary files are kept for only a short time, but they are kept longer than the packet information can be DBized.
패킷정보 테이블 저장단계(S430)는 수집된 패킷들과 캡쳐된 시간(생성시간)을 패킷정보DB의 패킷정보 테이블에 그 구조에 맞게 변환하여 저장하며, 다수의 동일한 패킷정보 테이블들에 입력하는 순서는 시간단위로 순차적으로 저장한다. 즉, 각 패킷정보 테이블(221)은 생성시간 기준으로 저장대상 범위가 정해져 있고 다수의 패킷정보 테이블은 시간기준 저장범위에 따라 순서가 정해진다.In the packet information table storing step (S430), the collected packets and the captured time (generation time) are converted into the packet information table of the packet information DB according to its structure and stored, and the input order is input to a plurality of identical packet information tables. Stores sequentially in time units. That is, each packet information table 221 has a storage target range determined on a generation time basis, and a plurality of packet information tables are ordered on a time basis storage range.
더 자세하게는, 패킷정보 테이블이 M개가 있는 경우에는 1 ~ M 번째까지의 패킷정보 테이블에서 저장되는 테이블의 순서는 테이블의 저장범위의 시간에 따라 정해진다. 각 패킷정보 테이블(221)에는 시간기준 저장범위가 정해진다. 10분단위로 패킷정보 테이블을 분할한다면, 최초시간부터 10분후까지는 제 1 번째 테이블에, 그 다음 10분후부터 20분후까지는 제 2 번째 테이블에 저장된다. 그러나 다른 실시예로서, 처음 들어오는 패킷정보는 1번째 패킷정보 테이블(221)에 저장되고, 이 테이블이 꽉 차면 다음 테이블, 즉 2번째 패킷정보 테이블(221)에 저장된다. 양 경우 모두, M번째 패킷정보 테이블(221)까지 모두 저장된다면 다시 1번째 패킷정보 테이블(221)부터 저장된다. 이 경우 처음에 저장된 패킷정보는 소실되게 된다. 즉, 패킷정보는 일정시간만 보관하게 된다. 상기 패킷정보 테이블 저장단계(S430)는 일정시간 간격으로 주기적으로 반복된다. 즉, 실시간 패킷캡쳐단계(S420)에서 일정시간동안 패킷을 수집하여 임시파일에 저장하여 보관하면, 주기적으로 패킷정보를 패킷정보 테이블에 저장하게 된다.In more detail, when there are M packet information tables, the order of the tables stored in the 1st to Mth packet information tables is determined according to the time of the storage range of the table. In each packet information table 221, a time-based storage range is determined. If the packet information table is divided into 10-minute units, the packet information table is stored in the first table from the first time to 10 minutes later and in the second table from 10 minutes to 20 minutes later. However, as another embodiment, the first incoming packet information is stored in the first packet information table 221, and when this table is full, it is stored in the next table, that is, the second packet information table 221. In both cases, if up to the M th packet information table 221 is stored, it is stored from the first packet information table 221 again. In this case, the initially stored packet information is lost. That is, the packet information is kept only for a certain time. The packet information table storing step S430 is periodically repeated at regular time intervals. That is, in the real time packet capture step (S420), if the packet is collected for a predetermined time and stored in a temporary file, the packet information is periodically stored in the packet information table.
상기 원시 검색쿼리 생성단계(S440)는 패킷정보DB의 패킷정보테이블이 하나의 테이블인 것으로 간주하여 필요로 하는 패킷정보에 대한 쿼리를 작성하는 단계이다. 패킷정보 테이블은 다수로 나뉘어져 있지만, 그 구조가 동일하므로 개념적으로 하나의 테이블로 간주할 수 있다. 특히, 클라이언트 입장에서는 생성시간에 따라 어느 테이블인지 인지할 필요가 없이 개념적으로 필요한 쿼리를 작성할 수 있는 이점이 있다. 즉, 원시검색쿼리의 쿼리문인 FROM < 테이블명 > 에서 < 테이블명 > 이 전체 테이블명으로 기재된다.The raw search query generation step (S440) is a step of writing a query for the packet information required by considering that the packet information table of the packet information DB is one table. The packet information table is divided into a plurality, but since the structure is the same, it can be conceptually regarded as one table. In particular, the client has the advantage of being able to write conceptually necessary queries without having to know which table according to the creation time. In other words, in FROM <table name> which is a query statement of a source search query, <table name> is written as the full table name.
상기 분할된 검색쿼리 생성단계(S450)는 작성된 원시검색쿼리를 각 테이블별로 분할하여 검색쿼리로 변환하고, 생성시간에 대한 조건문을 각 테이블의 시간기 준 저장범위에 따라 그 값을 조정한다.The split search query generation step (S450) divides the created raw search query into each table and converts it into a search query, and adjusts the value according to the time-based storage range of each table.
더 상세하게는, 분할된 검색쿼리 생성단계(S450)는 패킷정보DB의 각 테이블에 대한 시간기준 저장범위에 대한 정보를 가져오는 단계(S451)와, 시간기준 저장범위가 원시검색쿼리의 생성시간 조건과 겹치는 패킷정보 테이블들을 결정하는 단계(S452), 결정된 테이블들에 대하여 해당 테이블만 참조하는 테이블별 쿼리를 작성하는 단계(S453), 각 테이블별 쿼리내 조건문에서 생성시간 조건을 테이블의 시간기준 저장범위 안에 포함되도록 조정하는 단계(S454), 각 테이블별 쿼리내 조건문에서 생성시간 조건을 쿼리내 조건들 중 제일 앞에 기재하는 단계(S455), 작성된 모든 테이블별 쿼리를 UNION 명령어로 병합하여 분할된 검색쿼리를 생성하는 단계(S456)를 포함한다.More specifically, the divided search query generation step (S450) is a step (S451) of obtaining information on the time-based storage range for each table of the packet information DB, and the time-based storage range is the generation time of the raw search query Determining the packet information tables overlapping with the condition (S452), creating a query for each table referencing only the table with respect to the determined tables (S453), the generation time condition in the conditional statement in the query for each table, the time base of the table Adjusting to be included in the storage range (S454), the step of writing the creation time condition in the first condition of the query in the query for each table (S455), merged all the created query for each table by the UNION command partitioned Generating a search query (S456).
패킷정보 테이블에는 패킷정보의 생성시간에 따라 순차적으로 저장되기 때문에 각 DB테이블의 생성시간 정보는 쿼리를 분할하고 최적화하는데 필요한 중요한 항목이다. 즉, 원시검색쿼리가 참조하는 테이블이 어느 테이블인지는 생성시간의 조건에 해당하는 테이블만 알면 찾을 수 있기 때문이다. 또한 패킷정보 테이블은 생성시간에 따라 순차적으로 저장되기 때문에 원시검색쿼리가 여러 개의 테이블을 참조한다면 일련의 테이블을 참조하게 된다. 각 테이블에 대한 분할쿼리는 원시검색쿼리에 비해, 다른 모든 내용은 동일하고 참조 테이블의 이름이 전체 테이블명에서 해당 테이블 이름만 변환되어 생성된다. 각 테이블에 대한 테이블별 쿼리에서 < 생성시간 > 조건은 쿼리의 최적화를 위하여 재설정한다. 즉, 각 테이블내에서 패킷의 생성시간은 시간기준 저장범위 안에 있으므로, 테이블별 쿼리의 생성시간 조건 은 테이블의 시간기준 저장범위 내로 정한다. 또한, 생성시간 조건을 쿼리의 조건에서 맨 앞으로 가져다 놓는다. 마지막으로, 각 테이블에 대한 테이블별 쿼리가 만들어지면, 이를 전체로 합치는 UNION 명령어를 이용하여 전체 결과를 묶어 분할된 검색쿼리를 만든다.Since the packet information table is stored sequentially according to the packet generation time, the creation time information of each DB table is an important item for partitioning and optimizing a query. In other words, which table the source search query refers to is because only the table corresponding to the creation time condition can be found. Also, since the packet information table is stored sequentially according to the creation time, if the raw search query refers to several tables, it refers to a series of tables. Compared to the raw search query, the split query for each table is created with all other contents being the same and the name of the reference table is converted from only the table name to the corresponding table name. The <creation time> condition in the table-specific query for each table is reset to optimize the query. That is, since the packet generation time in each table is within the time base storage range, the generation time condition of a query for each table is determined within the time base storage range of the table. It also brings the creation time condition to the front of the query condition. Finally, when a table-by-table query is made for each table, a partitioned search query is made by combining the whole results by using the UNION command that combines them as a whole.
쿼리요청 및 결과생성단계(S460)는 상기와 같은 쿼리가 생성되면 이 쿼리를 패킷정보DB에 요청하고 그 결과를 받아, 호흐름에 대한 정보로 재구성한다. 패킷정보DB에는 일정기간 전까지는 거의 모든 패킷정보가 있으므로 원하는 호흐름 정보를 어느 형태로든지 추출하여 볼 수 있다.In the query request and result generation step (S460), when the above query is generated, the query is requested to the packet information DB, and the result is received, and the information is reconstructed into the information on the call flow. Since the packet information DB contains almost all packet information until a certain period, the desired call flow information can be extracted and viewed in any form.
도 9는 본 발명의 호흐름 검색을 위한 패킷정보 검색서버의 일실시예에 대한 구성도이다.9 is a block diagram of an embodiment of a packet information search server for call flow search of the present invention.
도 9에 보는 바와 같이, 본 발명의 패킷정보 검색장치는 패킷수집부(510)와 패킷정보 생성부(530)로 구성된 패킷수집장치(501)와, 패킷정보DB(520)와 검색쿼리처리부(540)로 구성된 패킷정보DB서버(502)를 포함한다.As shown in FIG. 9, the packet information retrieval apparatus of the present invention includes a
상기 패킷수집장치(501)는 인터넷전화망(VoIP)(130)의 백본스위치(132)에 연결되어 패킷을 수집하여 패킷정보를 추출하여 주기적으로 패킷정보DB(220)에 저장한다. 패킷수집장치(201)는 백본스위치(132)에 여러 대를 물릴 수 있다. 즉, 패킷수집장치(201)는 백본스위치(132)에 패킷을 캡쳐할 수 있는 곳에 여러 대를 물려 전체 패킷을 미러링할 수 있게 설치하고 필요한 패킷정보만 패킷정보DB(220)에 모으는 작업을 수행하는 장치이다.The
상기 패킷정보DB서버(502)는 패킷정보를 가지는 다수의 패킷정보 테이 블(221)을 실시간 검색이 가능하도록 분할하여 관리하나, 외부 사용자, 즉 호흐름 검색단말(550)에서 내부의 분할을 알 필요없이 하나의 테이블로 간주하여 쿼리를 요청하면 이를 내부 테이블 구조에 맞게 변환하여 검색쿼리에 대한 답변을 준다.The packet
보다 자세하게는, 상기 패킷수집부(510)는 인터넷전화망(VoIP)(130)의 백본스위치(132)에 연결되어 백본스위치(132)에서 전송되는 모든 패킷을 캡쳐(Mirroring)한다. 보통 백본스위치(132)에 단위 VoIP 망들이 연결되어 스위칭되고 백본스위치(132)도 다른 백본스위치(132)에 연결되기도 한다. 이때 패킷수집부(510)는 한 백본스위치(210)에 하나가 연결되어 패킷을 수집할 수 있다. 패킷수집부(510)에 모든 패킷을 미러링하여 패킷을 캡쳐한 시간과 함께 임시파일에 저장한다. 임시파일에는 짧은 시간동안만 보관되지만 패킷정보를 DB화 할 수 있는 시간보다는 오래 보관한다.In more detail, the
상기 패킷정보DB(520)는 패킷정보를 저장할 수 있는 테이블로서 동일한 구조로 다수의 패킷정보 테이블을 구성하고 있다. 패킷정보 테이블(221)의 구조는 < Call ID >, < 발신전화번호 >, < 수신전화번호 >, < 소스 IP/Port >, < 목적 IP/Port >, < 메소드 >, < 생성시간 >, < 전화단말정보 > 로 구성된다. 호(Call)와 관련된 정보인 < Call ID >, < 메소드 >, < 전화단말 정보 >, < 발신전화번호 >, < 수신전화번호 > 등은 VoIP 프로토콜의 호와 관련된 정보이고, < 소스 IP/Port >와 < 목적 IP/Port > 는 장비들간 전송될 때의 장비들에 관한 정보이다. < 생성시간> 은 패킷을 캡쳐할 때 저장된 시간이다. 각 패킷정보 테이블(221)은 생성시간 기준으로 저장대상 범위가 정해져 있고 다수의 패킷정보 테이블(221)은 시간기준 저장 범위에 따라 순서가 정해진다. 각 패킷정보테이블은 시간기준 저장범위가 정해져 있고, 저장범위단위가 일정한 경우는 최초 시간만 가지고 있어도 저장범위를 알 수 있다. 상기 저장범위단위는 캡쳐되는 패킷의 수에 따라 임의로 조정될 수 있다.The
상기 패킷정보 생성부(530)는 상기 패킷수집부(510)에서 수집된 패킷들에서 필요한 정보와 패킷의 생성시간을 패킷정보 테이블(221)의 구조에 맞게 변환하여 상기 테이블에 저장한다. 1 ~ M 번째까지의 패킷정보 테이블(221)에서 저장되는 테이블의 순서는 테이블의 저장범위의 시간에 따라 정해진다. 각 패킷정보 테이블(221)에는 사전에 시간기준 저장범위가 정해진다. 즉, 상기 패킷정보 생성부(530)는 생성된 패킷정보를 생성시간 기준에 따라 상기 다수의 패킷정보 테이블(221)들에 순차적으로 저장하고, 마지막 테이블까지 모두 저장되면 처음 테이블부터 다시 순환하여 저장한다.The packet information generation unit 530 converts the information required from the packets collected by the
상기 검색쿼리 처리부(540)는 다수의 패킷정보 테이블(221)을 하나의 테이블로 간주하여 작성된 VoIP 호흐름 단말(550)의 원시검색쿼리(310)를 받아 분할된 다수의 테이블의 구조에 맞게 쿼리를 분할하여 작성하고, 이 분할된 검색쿼리(320)를 상기 패킷정보DB(520)에 요청하여 처리하게 하여 그 결과를 반환한다.The search
더 상세하게는, 상기 패킷정보 검색장치(500)는 내부적으로는 다수의 패킷정보 테이블(221)로 패킷정보DB를 구분하여 처리하나, 외부적으로는 이러한 분할구조를 보여주지 않고, 대신 하나의 패킷정보 테이블로서 그 구조만 노출시킨다. 이는 다수의 패킷정보 테이블(221)은 동일한 구조를 가지고 있으므로 가능하다. 따라서 클라이언트인 VoIP 호흐름 단말(550)은 패킷정보를 검색할 때, 하나의 패킷정보 테 이블로 간주하고 검색쿼리를 작성하여 본 발명인 상기 패킷정보 검색장치(500)에 쿼리처리를 요청한다. 요청되는 검색쿼리는 앞서 살펴본 원시검색쿼리(310)와 같다. 즉, 원시검색쿼리(310)는 패킷정보DB(220)의 분할된 다수의 패킷정보테이블(221)을 하나의 테이블로 간주하여 쿼리를 작성한 것이다. 원시검색쿼리(310)의 쿼리문인 < 테이블명 > 은 전체 테이블명으로 기재된다.More specifically, the packet
상기 패킷정보DB서버(502)의 검색쿼리 처리부(540)는 VoIP 호흐름 단말(550)로부터 요청받은 원시검색쿼리(310)를 분할된 다수의 패킷정보테이블(221)의 구조에 맞게 쿼리를 분할하여 분할된 검색쿼리(320)을 작성한다. 원시검색쿼리(310)를 분석하여 쿼리에서 참조하는 패킷정보 DB테이블(221)이 어느 것인지를 결정하고 결정된 테이블별로 쿼리를 각각 작성한다. 원시검색쿼리(310)에서 어느 패킷정보 DB테이블(221)을 참조하느냐는 것은 쿼리의 조건문인 WHERE 절의 < 생성시간 > 조건에 의해 결정된다. 즉, 패킷정보 DB테이블(221)은 시간기준 저장범위로 분할되어 있으므로, 원시검색쿼리(310)의 생성시간 조건내의 패킷정보들을 저장하는 테이블들이 이에 해당한다.The search
겹치는 패킷정보 테이블(221)별 쿼리 작성은 다음과 같다. 쿼리의 내용은 < 테이블명 > 과 < 생성시간 > 항목만을 제외하고는 동일하다. < 테이블명 > 은 겹치는 패킷정보 테이블(221)의 이름으로 대체된다. < 생성시간 > 조건은 겹치는 패킷정보 테이블(221)의 시간기준 저장범위내로 좁힌다. 그 이유는 각 테이블은 패킷정보의 생성시간이 시간기준 저장범위 내에 들어오는 패킷만 저장하기 때문이다. 또한, 상기 테이블별 쿼리(321)의 조건문에서 생성시간을 제일 먼저 기재함으로써도 쿼리의 최적화를 수행한다. 그 이유는 생성시간 항목이 검색에서 인덱스 역할을 하기 때문에 DB에서 보다 빠른 검색을 수행할 수 있다.A query for each overlapping packet information table 221 is as follows. The contents of the query are the same except for the <table name> and <create time> items. <Table name> is replaced with the name of the overlapping packet information table 221. The condition of <creation time> is narrowed within the time reference storage range of the overlapping packet information table 221. This is because each table stores only packets whose packet information generation time falls within the time base storage range. In addition, the query optimization is also performed by first writing the creation time in the conditional statement of the query for each table 321. The reason is that the creation time item can serve as an index in the search, so the search can be performed faster in the DB.
상기와 같이, 각 테이블에 대한 테이블별 쿼리(321)가 만들어지면, 이를 전체로 합치는 UNION 명령어를 이용하여 전체 결과를 묶도록 한다. 결론적으로, 원시검색쿼리(310)를 분할된 쿼리(320)로 분할하는 것은 단순히 모든 패킷정보 테이블(221)에 대하여 분할하는 것이 아니라, 해당 테이블인지의 여부판단과 생성시간의 쿼리조건에 대하여 쿼리의 최적화를 수행한다.As described above, when a table-
상기 검색쿼리 처리부(540)는 작성된 분할된 검색쿼리(320)를 패킷정보DB(520)에 쿼리처리를 요청하고 그 결과를 받아 VoIP 호흐름 단말(550)에 반환한다. 이때, 모든 패킷정보 테이블(221)은 그 구조가 동일하고 각 테이블별 쿼리를 UNION하였으므로, 상기 결과를 가공없이 그대로 상기 단말에 보내주면 된다. The search
도 9에 의해 설명되어진 상기 본 발명의 상세한 설명에 있어 미진한 부분은 앞서 설명된 도 5에 의한 본 발명의 일실시예에 의해 유추되어 설명되어질 수 있다.In the detailed description of the present invention described by FIG. 9, the incomplete parts may be inferred and explained by an embodiment of the present invention by FIG. 5 described above.
상기와 같이 클라이언트에게 복잡한 내부구조를 노출시키지 않고 내부적으로 이를 처리하게 되면, 클라이언트에서 구현되는 패킷정보 검색과 관련된 프로그램은 작성이 단순해지고, 서버의 내부 테이블 구조변경에서 자유로워지므로 유지보수가 편해진다. 예컨대, 앞서 본 바와 같이 패킷정보 테이블의 시간기준 저장범위를 일정단위로 고정시키는 정책에서 테이블에 패킷정보를 꽉차게 저장하면서 저장범위를 유동적으로 하는 정책으로 변경하면 테이블의 시간기준 저장범위를 계산하는 방법 이 변화하게 된다. 이런 경우 클라이언트의 프로그램 변경없이 서버에서만 관련 프로그램을 변경하면 되기 때문에 유지보수가 쉬워진다.If this is handled internally without exposing the complicated internal structure to the client as described above, the program related to retrieving the packet information implemented in the client is simpler to write and free from the internal table structure change of the server, thereby making maintenance easier. . For example, in the policy of fixing the time-based storage range of the packet information table in a predetermined unit as described above, when changing the policy to store the packet information in the table full and the storage range is fluid, the time-based storage range of the table is calculated. The method will change. In this case, maintenance is easy because only the relevant program needs to be changed on the server without changing the program of the client.
도 10은 패킷정보에 대한 DB분할 및 쿼리분할 방법의 바람직한 또 다른 일실시예에 대한 흐름도이다.10 is a flowchart illustrating still another preferred embodiment of a DB partitioning and query partitioning method for packet information.
패킷정보에 대한 DB분할 및 쿼리분할의 방법은 패킷정보DB 분할단계(S610)와, 실시간 패킷캡쳐(Mirroring)단계(S620), 패킷정보 테이블 저장단계(S630), 원시 검색쿼리 접수단계(S640), 분할된 검색쿼리 생성단계(S650), 쿼리요청 및 결과전송단계(S660)로 구성된다.DB partitioning and query partitioning method for packet information includes packet information DB partitioning step (S610), real time packet capturing (Mirroring) step (S620), packet information table storage step (S630), raw search query reception step (S640). It consists of a divided search query generation step (S650), query request and result transmission step (S660).
패킷정보DB 분할단계(S610)는 패킷정보를 저장하는 테이블을 다수의 동일한 패킷정보 테이블로 구성하는 단계를 말한다. 상기 DB테이블은 필드명이나 필드의 크기 등 그 구조가 동일할 뿐만 아니라, 테이블의 크기, 즉 레코드의 수도 동일하게 구성된다. 앞서 살펴본 바와 같이, 패킷정보 테이블의 개수와 크기는 수집되는 패킷의 수량과 DB쿼리를 했을 경우 처리속도, 그리고 패킷정보를 보관해야 하는 기간에 의하여 결정된다. 또한, 패킷정보 테이블의 구성은 < Call ID >, < 발신전화번호 >, < 수신전화번호 >, < 소스 IP/Port >, < 목적 IP/Port >, < 메소드 >, < 시간 >, < 전화단말정보 > 등을 포함한다.The packet information DB dividing step S610 refers to a step of configuring a table for storing packet information into a plurality of identical packet information tables. The DB table not only has the same structure such as field name and field size, but also has the same size of the table, that is, the number of records. As described above, the number and size of the packet information table are determined by the number of packets to be collected, the processing speed when the DB query is performed, and the period of storing the packet information. In addition, the packet information table consists of <Call ID>, <Outgoing Call Number>, <Incoming Call Number>, <Source IP / Port>, <Destination IP / Port>, <Method>, <Time>, <Phone Terminal Information> and the like.
실시간 패킷캡쳐(Mirroring)단계(S620)는 인터넷전화망(VoIP)의 백본스위치에 연결되어 백본스위치(132)에서 전송되는 모든 패킷을 캡쳐(Mirroring)하고 패킷을 캡쳐한 시간과 함께 임시파일에 저장한다. 패킷을 캡쳐한 시간이 패킷의 생성시간으로서 다루게 되는 시간 값으로서, 패킷정보 검색에 유용하게 이용되는 정보이 다. 임시파일에는 짧은 시간동안만 보관되지만 패킷정보를 DB화 할 수 있는 시간보다는 오래 보관한다.Real time packet capturing (Mirroring) step (S620) is connected to the backbone switch of the Internet telephone network (VoIP) captures all the packets transmitted from the backbone switch 132 (Mirroring) and stores the packet in the temporary file with the time captured . The time that a packet is captured is a time value to be treated as a packet generation time, which is useful for packet information retrieval. Temporary files are kept for only a short time, but they are kept longer than the packet information can be DBized.
패킷정보 테이블 저장단계(S630)는 수집된 패킷들과 캡쳐된 시간(생성시간)을 패킷정보DB의 패킷정보 테이블에 그 구조에 맞게 변환하여 저장하며, 다수의 동일한 패킷정보 테이블들에 입력하는 순서는 시간단위로 순차적으로 저장한다. 즉, 각 패킷정보 테이블(221)은 생성시간 기준으로 저장대상 범위가 정해져 있고 다수의 패킷정보 테이블은 시간기준 저장범위에 따라 순서가 정해진다.In the packet information table storing step (S630), the collected packets and the captured time (generation time) are converted and stored in the packet information table of the packet information DB according to the structure thereof, and the input order is input to a plurality of identical packet information tables. Stores sequentially in time units. That is, each packet information table 221 has a storage target range determined on a generation time basis, and a plurality of packet information tables are ordered on a time basis storage range.
더 자세하게는, 패킷정보 테이블이 M개가 있는 경우에는 1 ~ M 번째까지의 패킷정보 테이블에서 저장되는 테이블의 순서는 테이블의 저장범위의 시간에 따라 정해진다. 각 패킷정보 테이블(221)에는 시간기준 저장범위가 정해진다. 10분단위로 패킷정보 테이블을 분할한다면, 최초시간부터 10분후까지는 제 1 번째 테이블에, 그 다음 10분후부터 20분후까지는 제 2 번째 테이블에 저장된다. 그러나 다른 실시예로서, 처음 들어오는 패킷정보는 1번째 패킷정보 테이블(221)에 저장되고, 이 테이블이 꽉 차면 다음 테이블, 즉 2번째 패킷정보 테이블(221)에 저장된다. 양 경우 모두, M번째 패킷정보 테이블(221)까지 모두 저장된다면 다시 1번째 패킷정보 테이블(221)부터 저장된다. 이 경우 처음에 저장된 패킷정보는 소실되게 된다. 즉, 패킷정보는 일정시간만 보관하게 된다. 상기 패킷정보 테이블 저장단계(S630)는 일정시간 간격으로 주기적으로 반복된다. 즉, 실시간 패킷캡쳐단계(S620)에서 일정시간동안 패킷을 수집하여 임시파일에 저장하여 보관하면, 주기적으로 패킷정보를 패킷정보 테이블에 저장하게 된다.In more detail, when there are M packet information tables, the order of the tables stored in the 1st to Mth packet information tables is determined according to the time of the storage range of the table. In each packet information table 221, a time-based storage range is determined. If the packet information table is divided into 10-minute units, the packet information table is stored in the first table from the first time to 10 minutes later and in the second table from 10 minutes to 20 minutes later. However, as another embodiment, the first incoming packet information is stored in the first packet information table 221, and when this table is full, it is stored in the next table, that is, the second packet information table 221. In both cases, if up to the M th packet information table 221 is stored, it is stored from the first packet information table 221 again. In this case, the initially stored packet information is lost. That is, the packet information is kept only for a certain time. The packet information table storing step (S630) is repeated at regular intervals. That is, in the real-time packet capture step (S620), if the packet is collected for a predetermined time and stored in a temporary file, the packet information is periodically stored in the packet information table.
상기 원시 검색쿼리 접수단계(S640)는 패킷정보DB의 패킷정보테이블이 하나의 테이블로 간주하여 작성된 패킷정보에 대한 검색쿼리를 요청받는 단계이다. 즉, 요청받은 쿼리인 원시검색쿼리는 < 테이블명 > 이 전체 테이블명으로 기재된다.The raw search query accepting step (S640) is a step for receiving a search query for the packet information created by considering the packet information table of the packet information DB as one table. In other words, the original query, the requested query, is written with <table name> as the full table name.
상기 분할된 검색쿼리 생성단계(S650)는 요청받은 원시검색쿼리를 각 테이블별로 분할하여 검색쿼리로 변환하고, 생성시간에 대한 조건문을 각 테이블의 시간기준 저장범위에 따라 그 값을 조정한다.The split search query generation step (S650) divides the requested raw search query into each table and converts it into a search query, and adjusts the value according to the time reference storage range of each table.
더 상세하게는, 분할된 검색쿼리 생성단계(S650)는 패킷정보DB의 각 테이블에 대한 시간기준 저장범위에 대한 정보를 가져오는 단계(S651)와, 시간기준 저장범위가 원시검색쿼리의 생성시간 조건과 겹치는 패킷정보 테이블들을 결정하는 단계(S652), 결정된 테이블들에 대하여 해당 테이블만 참조하는 테이블별 쿼리를 작성하는 단계(S653), 각 테이블별 쿼리내 조건문에서 생성시간 조건을 테이블의 시간기준 저장범위 안에 포함되도록 조정하는 단계(S654), 각 테이블별 쿼리내 조건문에서 생성시간 조건을 쿼리내 조건들 중 제일 앞에 기재하는 단계(S655), 작성된 모든 테이블별 쿼리를 UNION 명령어로 병합하여 분할된 검색쿼리를 생성하는 단계(S656)를 포함한다.More specifically, the divided search query generation step (S650) is a step (S651) of obtaining information on the time-based storage range for each table of the packet information DB, and the time-based storage range is the generation time of the raw search query Determining the packet information tables overlapping with the condition (S652), creating a query for each table referencing only the table with respect to the determined tables (S653), the generation time condition in the conditional statement in the query for each table, the time reference of the table Adjusting to be included in the storage range (S654), step (S655) to write the generation time condition in the first condition of the query in the query for each table, merged all the created query for each table by UNION command Generating a search query (S656).
쿼리요청 및 결과전송단계(S660)는 상기와 같은 쿼리가 생성되면 이 쿼리를 패킷정보DB에 요청하고 그 결과를 받아, 원시검색쿼리를 요청한 단말(클라이언트)에 전송한다.In the query request and the result transmission step (S660), when the above query is generated, the query is requested to the packet information DB, the result is received, and the raw search query is transmitted to the terminal (client).
도 11은 검색된 패킷정보를 통해 호흐름을 재구성하여 화면으로 보여지는 일실시예의 화면이다. 상기 화면은 패킷정보를 < 생성시간 >, < 발신전화번호 >, < 수신전화번호 > 를 기초로 검색하여 각 VoIP 장비간에 패킷의 흐름을 표시하여 각 VoIP 장비별 요청 및 응답 등을 한눈에 볼 수 있도록 시각화한 것이다. 이런 시각화를 통해 각 호 흐름을 찾아갈 수 있고 이상이 있는지의 유무를 쉽게 관찰할 수 있다.FIG. 11 is a screen of an embodiment in which a call flow is reconfigured and displayed as a screen through the retrieved packet information. The screen retrieves packet information based on <generation time>, <outgoing call number>, and <incoming call number> to display the flow of packets between each VoIP device to view requests and responses for each VoIP device at a glance. To be visualized. This visualization makes it possible to navigate through each call flow and easily observe whether there are any abnormalities.
도 1은 인터넷전화망(VoIP)의 구성,1 is a configuration of an Internet telephone network (VoIP),
도 2는 인터넷전화망(VoIP)에서의 패킷흐름 예시도,2 is an exemplary packet flow diagram of an Internet telephone network (VoIP).
도 3은 VoIP 프로토콜의 스택구조,3 is a stack structure of a VoIP protocol,
도 4는 패킷분석을 통한 인터넷전화망(VoIP)의 성능측정을 위한 종래 장치의 구성도,4 is a configuration diagram of a conventional apparatus for measuring the performance of an Internet telephone network (VoIP) through packet analysis;
도 5는 본 발명의 패킷정보 검색장치의 바람직한 일실시예의 구성도,5 is a block diagram of a preferred embodiment of a packet information retrieval apparatus of the present invention;
도 6a는 패킷정보6a shows packet information DBDB 의 구조에 대한 바람직한 Desirable for the structure of 일실시예의One embodiment 구성도, Diagram,
도 6b는 패킷정보 테이블의 구조에 대한 바람직한 Figure 6b is a preferred structure of the packet information table 일실시의Implementation 예시도, Example,
도 7은 호흐름 단말에서 사용자가 요청하는 쿼리를 분할최적화하는 예시도,7 is an exemplary diagram of partition optimization of a query requested by a user in a call flow terminal;
도 8은 패킷정보에 대한 DB분할 및 쿼리분할 방법의 바람직한 일실시예에 대한 흐름도,8 is a flowchart illustrating a preferred embodiment of a DB partitioning and query partitioning method for packet information;
도 9는 본 발명의 패킷정보 검색서버장치의 바람직한 또 다른 일실시예의 구성도,9 is a configuration diagram of yet another preferred embodiment of the packet information retrieval server apparatus of the present invention;
도 10은 패킷정보에 대한 DB분할 및 쿼리분할 방법의 바람직한 또 다른 일실시예에 대한 흐름도,10 is a flowchart illustrating still another preferred embodiment of a DB partitioning and query partitioning method for packet information;
도 11은 검색된 패킷정보를 통해 호흐름을 재구성하여 화면으로 보여지는 일실시예의 화면.11 is a screen of an embodiment shown in a screen by reconfiguring the call flow through the retrieved packet information.
* 도면의 주요 부분에 대한 부호의 설명 * Explanation of symbols on the main parts of the drawings
130 : 인터넷전화망(VoIP) 132 : 백본스위치130: VoIP network 132: backbone switch
135 : 인터넷 전화단말 150: VoIP 장비135: Internet telephone terminal 150: VoIP equipment
210 : 패킷수집부 220 : 패킷정보DB210: packet collecting unit 220: packet information DB
221 : 패킷정보 테이블 250 : VoIP 호흐름 단말221: packet information table 250: VoIP call flow terminal
310 : 원시검색쿼리 320 : 분할된 검색쿼리310: raw search query 320: partitioned search query
Claims (32)
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020070096170A KR100835654B1 (en) | 2007-09-20 | 2007-09-20 | Query processing system and methods for a database with packet information by dividing a table and query |
PCT/KR2008/005554 WO2009038384A1 (en) | 2007-09-20 | 2008-09-19 | Query processing system and methods for a database with packet information by dividing a table and query |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020070096170A KR100835654B1 (en) | 2007-09-20 | 2007-09-20 | Query processing system and methods for a database with packet information by dividing a table and query |
Publications (1)
Publication Number | Publication Date |
---|---|
KR100835654B1 true KR100835654B1 (en) | 2008-06-05 |
Family
ID=39770225
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020070096170A KR100835654B1 (en) | 2007-09-20 | 2007-09-20 | Query processing system and methods for a database with packet information by dividing a table and query |
Country Status (2)
Country | Link |
---|---|
KR (1) | KR100835654B1 (en) |
WO (1) | WO2009038384A1 (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009038384A1 (en) * | 2007-09-20 | 2009-03-26 | Haechang Systems Co., Ltd. | Query processing system and methods for a database with packet information by dividing a table and query |
KR101286725B1 (en) * | 2011-12-19 | 2013-07-16 | 주식회사 프라이머리넷 | Internet telephone system displaying international call |
WO2014058189A1 (en) * | 2012-10-10 | 2014-04-17 | 주식회사 아이디어웨어 | Polling detection device and method, and recording medium |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8521732B2 (en) | 2008-05-23 | 2013-08-27 | Solera Networks, Inc. | Presentation of an extracted artifact based on an indexing technique |
WO2011060377A1 (en) * | 2009-11-15 | 2011-05-19 | Solera Networks, Inc. | Method and apparatus for real time identification and recording of artifacts |
US8666985B2 (en) | 2011-03-16 | 2014-03-04 | Solera Networks, Inc. | Hardware accelerated application-based pattern matching for real time classification and recording of network traffic |
US9608879B2 (en) | 2014-12-02 | 2017-03-28 | At&T Intellectual Property I, L.P. | Methods and apparatus to collect call packets in a communications network |
CN111314565B (en) * | 2019-11-01 | 2022-03-08 | 厦门快商通科技股份有限公司 | Voice packet capturing and distributing processing method and system, mobile terminal and storage medium |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004248192A (en) | 2003-02-17 | 2004-09-02 | Nippon Telegr & Teleph Corp <Ntt> | CONTROL SEQUENCE GENERATING METHOD IN VoIP SERVICE, TESTING METHOD USING THE SAME, TESTING AND CAPTURING DEVICE USED FOR TESTING METHOD AND COMPUTER PROGRAM FOR IMPLEMENTING TESTING AND CAPTURING DEVICE |
US20060268847A1 (en) | 2002-06-13 | 2006-11-30 | Nice Systems Ltd. | Voice over IP capturing |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100835654B1 (en) * | 2007-09-20 | 2008-06-05 | (주)해창시스템 | Query processing system and methods for a database with packet information by dividing a table and query |
-
2007
- 2007-09-20 KR KR1020070096170A patent/KR100835654B1/en not_active IP Right Cessation
-
2008
- 2008-09-19 WO PCT/KR2008/005554 patent/WO2009038384A1/en active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060268847A1 (en) | 2002-06-13 | 2006-11-30 | Nice Systems Ltd. | Voice over IP capturing |
JP2004248192A (en) | 2003-02-17 | 2004-09-02 | Nippon Telegr & Teleph Corp <Ntt> | CONTROL SEQUENCE GENERATING METHOD IN VoIP SERVICE, TESTING METHOD USING THE SAME, TESTING AND CAPTURING DEVICE USED FOR TESTING METHOD AND COMPUTER PROGRAM FOR IMPLEMENTING TESTING AND CAPTURING DEVICE |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009038384A1 (en) * | 2007-09-20 | 2009-03-26 | Haechang Systems Co., Ltd. | Query processing system and methods for a database with packet information by dividing a table and query |
KR101286725B1 (en) * | 2011-12-19 | 2013-07-16 | 주식회사 프라이머리넷 | Internet telephone system displaying international call |
WO2014058189A1 (en) * | 2012-10-10 | 2014-04-17 | 주식회사 아이디어웨어 | Polling detection device and method, and recording medium |
Also Published As
Publication number | Publication date |
---|---|
WO2009038384A1 (en) | 2009-03-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100835654B1 (en) | Query processing system and methods for a database with packet information by dividing a table and query | |
US9565076B2 (en) | Distributed network traffic data collection and storage | |
Wullink et al. | ENTRADA: A high-performance network traffic data streaming warehouse | |
US10691748B2 (en) | Methods and apparatus to process call packets collected in a communications network | |
US7437451B2 (en) | System and method for collecting desired information for network transactions at the kernel level | |
US8370369B2 (en) | Method and system for network fault management | |
US8179799B2 (en) | Method for partitioning network flows based on their time information | |
EP2561645B1 (en) | Integrated network data collection arrangement | |
WO2005109754A1 (en) | System and method for real-time monitoring and analysis for network traffic and content | |
US10177969B2 (en) | System and method of troubleshooting in a telecommunications network | |
CN112632129A (en) | Code stream data management method, device and storage medium | |
US9736215B1 (en) | System and method for correlating end-user experience data and backend-performance data | |
KR102423039B1 (en) | Real-time packet data storing method and apparatus for mass network monitoring | |
CN106648722A (en) | Flume receiving side data processing method and device based on big data | |
CN110475161B (en) | Automatic fault positioning method and system for IPTV service live link | |
US10164819B2 (en) | Correlating web traffic events to a web page session | |
CN109818799A (en) | Log collection analysis method and equipment | |
KR102423038B1 (en) | Real-time packet data collection method and apparatus for mass network monitoring | |
KR100835647B1 (en) | Statistical data managing system and methods of mirrored packets for realtime monitoring and performance trend analysis by separating realtime statistical data and transition analysis data | |
KR101345095B1 (en) | Method and system for bgp routing data processing based on cluster | |
CN109088877A (en) | A kind of sort algorithm of tracing to the source under the environment suitable for Attack monitoring | |
KR102537370B1 (en) | Real-time packet analysis method and apparatus for mass network monitoring | |
EP3474489B1 (en) | A method and a system to enable a (re-)configuration of a telecommunications network | |
Hall | Multi-layer network monitoring and analysis | |
Djatmiko et al. | Privacy preserving distributed network outage monitoring |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
A302 | Request for accelerated examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
LAPS | Lapse due to unpaid annual fee |