KR20210011243A - Method and apparatus for monitoring HTTP/2 header compressed packet - Google Patents

Method and apparatus for monitoring HTTP/2 header compressed packet Download PDF

Info

Publication number
KR20210011243A
KR20210011243A KR1020190088448A KR20190088448A KR20210011243A KR 20210011243 A KR20210011243 A KR 20210011243A KR 1020190088448 A KR1020190088448 A KR 1020190088448A KR 20190088448 A KR20190088448 A KR 20190088448A KR 20210011243 A KR20210011243 A KR 20210011243A
Authority
KR
South Korea
Prior art keywords
http
dynamic table
packet
connection
header
Prior art date
Application number
KR1020190088448A
Other languages
Korean (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 KR1020190088448A priority Critical patent/KR20210011243A/en
Publication of KR20210011243A publication Critical patent/KR20210011243A/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0823Errors, e.g. transmission errors
    • H04L43/0847Transmission error
    • 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
    • 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/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
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • 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/04Protocols for data compression, e.g. ROHC
    • 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/22Parsing or analysis of headers

Landscapes

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

Abstract

The present invention relates to a method for monitoring a hypertext transfer protocol version 2 (HTTP/2) header-compressed packet and an apparatus and a system thereof. According to one embodiment of the present invention, the apparatus comprises: a communication unit monitoring packets on a network and receiving a dynamic table update packet from both ends in which HTTP/2 connections are established; a controller updating a dynamic table corresponding to the HTTP/2 connection based on the received dynamic table update packet; and a decoding unit using the updated dynamic table to decode the monitored packet corresponding to the HTTP/2 connection. Accordingly, packet decoding errors are prevented in a monitoring apparatus, thereby providing an advantage of effectively managing network quality.

Description

HTTP/2 헤더 압축 패킷 모니터링 방법 및 장치{Method and apparatus for monitoring HTTP/2 header compressed packet}Method and apparatus for monitoring HTTP/2 header compressed packet}

본 발명은 패킷 모니터링에 관한 것으로서, 상세하게, 네트워크 품질 관리를 위해 HTTP/2 프로토콜에 따라 헤더 압축된 패킷을 모니터링 하는 방법, 장치 및 시스템에 관한 것이다.The present invention relates to packet monitoring, and more particularly, to a method, apparatus, and system for monitoring a header compressed packet according to the HTTP/2 protocol for network quality management.

HTTP/2의 주요 목표는 스트림 별 복수의 요청을 통해 지연 시간을 줄이고, 응답 다중화를 지원하며, HTTP 헤더 필드의 효율적 압축을 통해 프로토콜 오버헤드(overhead)를 최소화하고, 스트림 내 요청의 의존 관계를 지정하는 우선순위 지정을 추가하여 랜더링 지연을 최소화하고, 서버 푸시를 지원하는 것이다.The main goal of HTTP/2 is to reduce latency through multiple requests per stream, support response multiplexing, minimize protocol overhead through efficient compression of HTTP header fields, and reduce dependency of requests within streams. It minimizes rendering delay and supports server push by adding a designated priority.

특히, HTTP/2는 헤더 필 압축 기능을 도입하고 동일한 연결에서 다중 동시 교환을 허용함으로써 네트워크 리소스를 보다 효율적으로 사용하고 지연 시간을 줄일 수 있는 장점이 있다. 상세하게, HTTP/2는 동일한 연결에서 요청 및 응답 메시지의 인터리빙을 허용하고, HTTP 헤더 필드에 효율적인 코딩을 사용한다. 또한 요청의 우선순위 지정을 허용함으로써 더 중요한 요청이 더 빨리 완료되도록 하여 서비스 만족도를 높일 수 있다.In particular, HTTP/2 introduces a header fill compression function and allows multiple simultaneous exchanges on the same connection, thereby enabling more efficient use of network resources and reducing latency. Specifically, HTTP/2 allows interleaving of request and response messages on the same connection, and uses efficient coding for HTTP header fields. In addition, by allowing prioritization of requests, more important requests can be completed faster, increasing service satisfaction.

네트워크 사업자는 자사 네트워크의 품질을 관리하기 위해 네트워크상에 전송되는 패킷을 모니터링할 수 있다.Network operators can monitor packets transmitted over the network to manage the quality of their network.

하지만, HTTP/2 프로토콜에 따라 헤더 압축된 패킷을 복호하기 위해서는 HTTP/2 연결 설정된 양 종단에서는 정적 테이블 및 동적 테이블을 유지해야 한다.However, in order to decode a header-compressed packet according to the HTTP/2 protocol, static and dynamic tables must be maintained at both ends of the HTTP/2 connection.

마찬가지로, 네트워크상의 HTTP/2 패킷을 모니터링하기 위해서는 양 종단과 동일한 정적 테이블 및 동적 테이블이 모니터링 장치 내 유지되어야 한다.Likewise, in order to monitor HTTP/2 packets on the network, the same static and dynamic tables as both ends must be maintained in the monitoring device.

하지만, 양 종단과 모니터링 장치에 유지된 동적 테이블이 동기화되지 않는 경우 패킷 복호 오류가 발생되는 문제점이 있다.However, there is a problem in that a packet decoding error occurs when both ends and the dynamic table maintained in the monitoring device are not synchronized.

따라서, 정확한 네트워크 품질 관리를 위해서는 동적 테이블의 동기화가 매우 중요하다.Therefore, synchronization of dynamic tables is very important for accurate network quality management.

본 발명은 상술한 종래 기술의 문제점을 해결하기 위해 고안된 것으로, 본 발명의 목적은 HTTP/2 헤더 압축 패킷 모니터링 방법, 장치 및 시스템을 제공하는 것이다.The present invention has been devised to solve the problems of the prior art, and an object of the present invention is to provide a method, apparatus, and system for monitoring HTTP/2 header compressed packets.

실시 예로, 본 발명은 HTTP/2 프로토콜에 따라 헤더 압축된 패킷의 복호 오류를 미연에 방지함으로써, 보다 정확한 네트워크 품질 관리를 수행하는 것이 가능한 HTTP/2 헤더 압축 패킷 모니터링 방법, 장치 및 시스템을 제공하는 것이다.As an embodiment, the present invention provides an HTTP/2 header compressed packet monitoring method, apparatus, and system capable of performing more accurate network quality management by preventing a decoding error of a header compressed packet according to the HTTP/2 protocol. will be.

실시 예로, 본 발명은 동적 테이블 복구 이벤트 감지 시 양 종단으로부터 최신 동적 테이블을 획득하여 복구함으로써, 이후 패킷 복구 오류를 차단하는 것이 가능한 HTTP/2 헤더 압축 패킷 모니터링 방법, 장치 및 시스템을 제공하는 것이다.As an embodiment, the present invention provides a method, apparatus and system for monitoring an HTTP/2 header compressed packet capable of blocking subsequent packet recovery errors by acquiring and recovering the latest dynamic tables from both ends when a dynamic table recovery event is detected.

본 발명에서 이루고자 하는 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급하지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.The technical problems to be achieved in the present invention are not limited to the technical problems mentioned above, and other technical problems that are not mentioned will be clearly understood by those of ordinary skill in the technical field to which the present invention belongs from the following description. I will be able to.

본 발명은 HTTP/2 헤더 압축 패킷 모니터링 방법, 장치 및 시스템을 제공할 수 있다.The present invention can provide an HTTP/2 header compressed packet monitoring method, apparatus, and system.

본 발명의 일 실시 예에 따른 하이퍼텍스트 전송 프로토콜 버전 2(Hyertext Transfer Protocol Version 2: HTTP/2) 헤더 압축 패킷을 모니터링하는 장치는 네트워크상의 패킷을 모니터링하고, HTTP/2 연결이 설정된 양 종단으로부터 동적 테이블 갱신 패킷을 수신하는 통신부와 상기 수신된 동적 테이블 갱신 패킷에 기반하여 상기 HTTP/2 연결에 상응하는 동적 테이블을 갱신하는 제어부와 상기 갱신된 동적 테이블을 이용하여 해당 HTTP/2 연결에 상응하는 상기 모니터링된 패킷을 복호하는 복호부를 포함할 수 있다.An apparatus for monitoring a hypertext transfer protocol version 2 (HTTP/2) header compressed packet according to an embodiment of the present invention monitors a packet on a network, and is dynamically configured from both ends of an HTTP/2 connection. A communication unit that receives a table update packet, a control unit that updates a dynamic table corresponding to the HTTP/2 connection based on the received dynamic table update packet, and the updated dynamic table, the corresponding HTTP/2 connection. It may include a decoder that decodes the monitored packet.

실시 예로, 상기 동적 테이블 갱신 패킷은 주기적으로 수신될 수 있다.In an embodiment, the dynamic table update packet may be periodically received.

실시 예로, 상기 동적 테이블 갱신 패킷은 상기 양 종단의 동적 테이블이 갱신될 때마다 수신될 수 있다.As an example, the dynamic table update packet may be received whenever the dynamic tables at both ends are updated.

실시 예로, 상기 동적 테이블 갱신 패킷은 상기 모니터링 장치가 상기 양 종단에 요청하여 수신될 수 있다.In an embodiment, the dynamic table update packet may be received by requesting the monitoring device from both ends.

실시 예로, 상기 동적 테이블 갱신 패킷은 전용 선로를 이용하여 주기적으로 수신될 수 있다.In an embodiment, the dynamic table update packet may be periodically received using a dedicated line.

실시 예로, 상기 모니터링 장치는 동적 테이블 갱신 이벤트를 감지하는 감지부를 더 포함하고, 상기 감지부는 상기 모니터링 장치의 소프트웨어가 업데이트되거나 상기 모니터링 장치에 일시 장애가 발생한 경우 상기 동적 테이블 갱신 이벤트를 감지할 수 있다.As an example, the monitoring device may further include a detection unit for detecting a dynamic table update event, and the detection unit may detect the dynamic table update event when software of the monitoring device is updated or a temporary failure occurs in the monitoring device.

실시 예로, 상기 동적 테이블 갱신 패킷은 헤더 영역과 데이터 영역을 포함하고, 상기 데이터 영역은 엔트리의 개수를 지시하는 엔트리 개수 필드 및 상기 개수에 상응하는 엔트리로 구성된 프레임 페이로드 필드로 구성될 수 있다.As an example, the dynamic table update packet includes a header area and a data area, and the data area includes an entry number field indicating the number of entries and a frame payload field including entries corresponding to the number.

실시 예로, 상기 엔트리는 인덱스 필드, 이름 길이 필드, 이름 필드, 값 길이 필드 및 값 필드를 포함할 수 있다.As an example, the entry may include an index field, a name length field, a name field, a value length field, and a value field.

실시 예로, 상기 헤더 영역은 스트림 식별자 필드를 포함하고, 상기 제어부는 상기 적어도 하나의 엔트리를 이용하여 해당 스트림 식별자에 상응하는 동적 테이블을 갱신할 수 있다.In an embodiment, the header area includes a stream identifier field, and the controller may update a dynamic table corresponding to a corresponding stream identifier using the at least one entry.

실시 예로, 상기 제어부는 복호 오류가 발생되는 HTTP/2 연결이 존재하면, 해당 HTTP/2 연결에 상응하는 양 종단에 동적 테이블 재전송을 요청할 수 있다.In an embodiment, if there is an HTTP/2 connection in which a decoding error occurs, the controller may request dynamic table retransmission to both ends corresponding to the HTTP/2 connection.

본 발명의 다른 실시 예에 따른 클라이언트와 서버 사이에 전송되는 하이퍼텍스트 전송 프로토콜 버전 2(Hyertext Transfer Protocol Version 2: HTTP/2) 헤더 압축 패킷을 모니터링하는 방법은 HTTP/2 연결이 설정된 양 종단으로부터 동적 테이블 갱신 패킷을 수신하는 단계와 상기 수신된 동적 테이블 갱신 패킷에 기반하여 상기 HTTP/2 연결에 상응하는 동적 테이블을 갱신하는 단계와 상기 갱신된 동적 테이블을 이용하여 해당 HTTP/2 연결에 상응하는 패킷을 복호하는 단계를 포함할 수 있다.According to another embodiment of the present invention, a method of monitoring a hypertext transfer protocol version 2 (HTTP/2) header compressed packet transmitted between a client and a server is dynamic from both ends of the HTTP/2 connection. Receiving a table update packet, updating a dynamic table corresponding to the HTTP/2 connection based on the received dynamic table update packet, and a packet corresponding to the HTTP/2 connection using the updated dynamic table It may include the step of decrypting.

실시 예로, 상기 동적 테이블 갱신 패킷은 주기적으로 수신될 수 있다.In an embodiment, the dynamic table update packet may be periodically received.

실시 예로, 상기 동적 테이블 갱신 패킷은 상기 양 종단의 동적 테이블이 갱신될 때마다 수신될 수 있다.As an example, the dynamic table update packet may be received whenever the dynamic tables at both ends are updated.

실시 예로, 상기 동적 테이블 갱신 패킷은 상기 양 종단에 요청하여 수신될 수 있다.In an embodiment, the dynamic table update packet may be received by requesting from both ends.

실시 예로, 상기 방법은 동적 테이블 갱신 이벤트를 감지하는 단계를 더 포함하되, 상기 동적 테이블 갱신 이벤트는 모니터링 장치의 소프트웨어가 업데이트되거나 상기 모니터링 장치에 일시 장애가 발생한 경우 감지될 수 있다.In an embodiment, the method further includes detecting a dynamic table update event, wherein the dynamic table update event may be detected when software of a monitoring device is updated or a temporary failure occurs in the monitoring device.

실시 예로, 상기 동적 테이블 갱신 패킷은 헤더 영역과 데이터 영역을 포함하고, 상기 데이터 영역은 엔트리의 개수를 지시하는 엔트리 개수 필드 및 상기 개수에 상응하는 엔트리로 구성된 프레임 페이로드 필드로 구성될 수 있다.As an example, the dynamic table update packet includes a header area and a data area, and the data area includes an entry number field indicating the number of entries and a frame payload field including entries corresponding to the number.

실시 예로, 상기 엔트리는 인덱스 필드, 이름 길이 필드, 이름 필드, 값 길이 필드 및 값 필드를 포함할 수 있다.As an example, the entry may include an index field, a name length field, a name field, a value length field, and a value field.

실시 예로, 상기 헤더 영역은 스트림 식별자 필드를 포함하고, 상기 적어도 하나의 엔트리를 이용하여 해당 스트림 식별자에 상응하는 동적 테이블이 갱신될 수 있다.As an example, the header area includes a stream identifier field, and a dynamic table corresponding to a corresponding stream identifier may be updated using the at least one entry.

실시 예로, 상기 방법은 복호 오류가 발생되는 HTTP/2 연결이 존재하는지 여부를 판단하는 단계와 상기 판단 결과, 상기 복호 오류가 발생된 HTTP/2 연결이 존재하면, 해당 HTTP/2 연결에 상응하는 양 종단에 동적 테이블 재전송을 요청하는 단계를 더 포함할 수 있다.In an embodiment, the method includes determining whether there is an HTTP/2 connection in which a decryption error occurs, and if there is an HTTP/2 connection in which the decryption error occurs, the corresponding HTTP/2 connection It may further include requesting dynamic table retransmission to both ends.

실시 예로, 상기 방법은 상기 복호 결과에 기초하여 네트워크 품질을 평가하는 단계를 더 포함할 수 있다.As an example, the method may further include evaluating network quality based on the decoding result.

본 발명의 또 다른 실시 예에 따른 클라이언트와 서버 사이에 전송되는 하이퍼텍스트 전송 프로토콜 버전 2(Hyertext Transfer Protocol Version 2: HTTP/2) 헤더 압축 패킷을 모니터링하는 방법은 동적 테이블 복구 이벤트를 감지하는 단계와 현재 설정된 HTTP/2 연결 별 동적 테이블 전송을 요청하는 단계와 상기 HTTP/2 연결 별 수신된 동적 테이블 복구 패킷에 기반하여 해당 HTTP/2 연결에 상응하는 동적 테이블을 복구하는 단계를 포함할 수 있다.According to another embodiment of the present invention, a method of monitoring a hypertext transfer protocol version 2: HTTP/2 header compressed packet transmitted between a client and a server includes the steps of detecting a dynamic table recovery event and It may include requesting transmission of a dynamic table for each HTTP/2 connection that is currently set, and recovering a dynamic table corresponding to a corresponding HTTP/2 connection based on the dynamic table recovery packet received for each HTTP/2 connection.

상기 본 발명의 양태들은 본 발명의 바람직한 실시 예들 중 일부에 불과하며, 본원 발명의 기술적 특징들이 반영된 다양한 실시 예들이 당해 기술분야의 통상적인 지식을 가진 자에 의해 이하 상술할 본 발명의 상세한 설명을 기반으로 도출되고 이해될 수 있다.The aspects of the present invention are only some of the preferred embodiments of the present invention, and various embodiments reflecting the technical features of the present invention will be described in detail below by those of ordinary skill in the art. It can be derived and understood on the basis of.

본 발명에 따른 방법 및 장치에 대한 효과에 대해 설명하면 다음과 같다.The effects on the method and apparatus according to the present invention will be described as follows.

실시 예에 따른 본 발명은 HTTP/2 프로토콜에 따라 헤더 압축된 패킷의 복호 오류를 미연에 방지함으로써, 보다 정확한 네트워크 품질 관리를 수행하는 것이 가능한 HTTP/2 헤더 압축 패킷 모니터링 방법, 장치 및 시스템을 제공하는 장점이 있다.The present invention according to an embodiment provides an HTTP/2 header compressed packet monitoring method, apparatus, and system capable of performing more accurate network quality management by preventing a decoding error of a header compressed packet according to the HTTP/2 protocol in advance. There is an advantage.

또한, 실시 예에 따른 본 발명은 동적 테이블 복구 이벤트 감지 시 HTTP/2 연결된 양 종단으로부터 최신 동적 테이블을 획득하여 동기화시킴으로써, 이후 패킷 복구 오류를 차단하는 것이 가능한 HTTP/2 헤더 압축 패킷 모니터링 방법, 장치 및 시스템을 제공하는 장점이 있다.In addition, the present invention according to the embodiment is a method and apparatus for monitoring an HTTP/2 header compressed packet capable of blocking subsequent packet recovery errors by obtaining and synchronizing the latest dynamic tables from both ends connected to HTTP/2 when a dynamic table recovery event is detected And there is an advantage of providing a system.

이하에 첨부되는 도면들은 본 발명에 관한 이해를 돕기 위한 것으로, 상세한 설명과 함께 본 발명에 대한 실시예들을 제공한다. 다만, 본 발명의 기술적 특징이 특정 도면에 한정되는 것은 아니며, 각 도면에서 개시하는 특징들은 서로 조합되어 새로운 실시예로 구성될 수 있다.
도 1은 실시 예에 따른 시스템 구성도이다.
도 2는 실시 예에 따른 클라이언트(10)와 서버(20) 사이의 HTTP/2 통신 절차를 설명하기 위한 흐름도이다.
도 3은 본 발명의 실시 예에 따른 시스템에서 HTTP/2 프로토콜을 지원하는 컴퓨팅 장치의 구조를 설명하기 위한 블록도이다.
도 4는 실시 예에 따른 모니터링 장치의 구조를 설명하기 위한 블록도이다.
도 5는 실시 예에 따른 모니터링 장치에서 네트워크 품질 관리를 위한 패킷 모니터링 방법을 설명하기 위한 순서도이다.
도 6은 다른 실시 예에 따른 모니터링 장치에서 네트워크 품질 관리를 위한 패킷 모니터링 방법을 설명하기 위한 순서도이다.
도 7은 실시 예에 따른 HTTP/2 패킷 구조를 설명하기 위한 도면이다.
도 8은 실시 예에 따른 동적 테이블 갱신 패킷의 프레임 페이로드 구조를 설명하기 위한 도면이다.
BRIEF DESCRIPTION OF THE DRAWINGS The accompanying drawings are provided to aid understanding of the present invention and provide embodiments of the present invention together with a detailed description. However, the technical features of the present invention are not limited to a specific drawing, and features disclosed in each drawing may be combined with each other to constitute a new embodiment.
1 is a system configuration diagram according to an embodiment.
2 is a flowchart illustrating an HTTP/2 communication procedure between the client 10 and the server 20 according to an embodiment.
3 is a block diagram illustrating a structure of a computing device supporting the HTTP/2 protocol in a system according to an embodiment of the present invention.
4 is a block diagram illustrating a structure of a monitoring device according to an embodiment.
5 is a flowchart illustrating a packet monitoring method for network quality management in a monitoring device according to an embodiment.
6 is a flowchart illustrating a packet monitoring method for network quality management in a monitoring device according to another embodiment.
7 is a diagram for describing an HTTP/2 packet structure according to an embodiment.
8 is a diagram illustrating a frame payload structure of a dynamic table update packet according to an embodiment.

이하, 본 발명의 실시예들이 적용되는 장치 및 다양한 방법들에 대하여 도면을 참조하여 보다 상세하게 설명한다. 이하의 설명에서 사용되는 구성요소에 대한 접미사 "모듈" 및 "부"는 명세서 작성의 용이함만이 고려되어 부여되거나 혼용되는 것으로서, 그 자체로 서로 구별되는 의미 또는 역할을 갖는 것은 아니다.Hereinafter, an apparatus and various methods to which embodiments of the present invention are applied will be described in more detail with reference to the drawings. The suffixes "module" and "unit" for components used in the following description are given or used interchangeably in consideration of only the ease of preparation of the specification, and do not have meanings or roles that are distinguished from each other by themselves.

실시예의 설명에 있어서, 각 구성 요소의 " 상(위) 또는 하(아래)"에 형성되는 것으로 기재되는 경우에 있어, 상(위) 또는 하(아래)는 두개의 구성 요소들이 서로 직접 접촉되거나 하나 이상의 또 다른 구성 요소가 두 개의 구성 요소들 사이에 배치되어 형성되는 것을 모두 포함한다. 또한 “상(위) 또는 하(아래)”으로 표현되는 경우 하나의 구성 요소를 기준으로 위쪽 방향뿐만 아니라 아래쪽 방향의 의미도 포함할 수 있다.In the description of the embodiment, in the case of being described as being formed on "upper (upper) or lower (lower)" of each component, the upper (upper) or lower (lower) two components directly contact each other or It includes all of the one or more other components formed by being disposed between the two components. In addition, when expressed as "upper (upper) or lower (lower)", the meaning of not only an upward direction but also a downward direction based on one component may be included.

도 1은 실시 예에 따른 시스템 구성도이다.1 is a system configuration diagram according to an embodiment.

상세하게, 도 1은 무선망 운영 시 네트워크 품질 관리를 위한 시스템 구성도이다.In detail, FIG. 1 is a system configuration diagram for network quality management when operating a wireless network.

도 1을 참조하면, 실시 예에 따른 시스템(100)은 클라이언트(10), 서버(20), 모니터링 장치(30) 및 네트워크(40)을 포함하여 구성될 수 있다.Referring to FIG. 1, a system 100 according to an embodiment may include a client 10, a server 20, a monitoring device 30, and a network 40.

본 실시 예에 따른 클라이언트(10)와 서버(20)는 5G 코어 네트워크에 연결된 장치일 수 있다.The client 10 and the server 20 according to the present embodiment may be devices connected to a 5G core network.

클라이언트(10)와 서버(20)와 네트워크(40)를 TCP 세션을 설정하고, 설정된 TCP 세션을 통해 HTTP 버전 2(이하, 설명의 편의를 위해, “HTTP/2”라 명함) 프로토콜 프레임을 교환하여 HTTP/2 연결을 설정할 수 있다. TCP 전송 프로토콜은 패킷의 순차적인 전송을 보장한다.A TCP session is established between the client 10, the server 20, and the network 40, and HTTP version 2 (hereinafter, for convenience of explanation, a business card called “HTTP/2”) protocol frames are exchanged through the established TCP session. You can establish an HTTP/2 connection. The TCP transport protocol guarantees the sequential transmission of packets.

클라이언트(10)가 HTTP 요청 메시지를 서버(20)에 전송하면, 서버(20)는 HTTP 요청 메시지에 상응하는 HTTP 응답 메시지를 클라이언트(10)에 전송할 수 있다. 여기서, HTTP 요청 메시지와 HTTP 응답 메시지는 헤더(header)와 페이로드(payload)를 포함하여 구성될 수 있다.When the client 10 transmits an HTTP request message to the server 20, the server 20 may transmit an HTTP response message corresponding to the HTTP request message to the client 10. Here, the HTTP request message and the HTTP response message may be configured to include a header and a payload.

모니터링 장치(30)는 생성된 HTTP 연결 별 메시지를 모니터링하여 네트워크 품질을 측정 및 분석할 수 있다. The monitoring device 30 may measure and analyze network quality by monitoring the generated HTTP connection-specific message.

기존 LTE(Long Term Evolution) 시스템의 경우, 장비 간에 주고 받는 메시지인 3GPP/IETF에서 정의한 GTPv2-C(Evolved General Packet Radio Service (GPRS) Tunnelling Protocol for Control plane) 메시지 및 디아미터(Diameter) 메시지는 별도의 헤더 압축을 적용하지 않았다.In the case of the existing LTE (Long Term Evolution) system, GTPv2-C (Evolved General Packet Radio Service (GPRS) Tunneling Protocol for Control Plane) message and diameter message defined by 3GPP/IETF, which are messages exchanged between devices, are separate. Did not apply header compression.

따라서 전용 장비를 활용하여 패킷을 캡처하면 어렵지 않게 내용을 분석해낼 수 있다.Therefore, if the packet is captured using dedicated equipment, the contents can be analyzed without difficulty.

실시 예에 따른 클라이언트(10)와 서버(20)는 3GPP/IETF RFC 7521에 정의된 HPACK(Header Compression for HTTP/2)을 사용하여 메시지의 헤더 필드에 대한 압축을 수행할 수 있다.According to an embodiment, the client 10 and the server 20 may perform compression on a header field of a message using HPACK (Header Compression for HTTP/2) defined in 3GPP/IETF RFC 7521.

이하에서는 발명의 이해를 돕기 위해 HPACK에 대해 간단히 설명하기로 한다.Hereinafter, the HPACK will be briefly described to aid understanding of the invention.

HPACK은 HTTP 헤더 필드를 효율적으로 표현하기 위한 압축 포맷이다.HPACK is a compression format for efficiently expressing HTTP header fields.

HPACK은 중복 헤더 필드를 제거하여 오버헤드를 줄이고, 알려진 보안 공격으로부터의 취약성을 제안하며, 제한된 메모리 요구 사항을 가지는 새로운 압축기를 정의한다.HPACK reduces overhead by removing redundant header fields, proposes vulnerabilities from known security attacks, and defines a new compressor with limited memory requirements.

인코딩에 관한 정보는 헤더 필드를 인덱싱된 값으로 매핑한 헤더 필드 테이블에 의해 알려진다. 이러한 헤더 필드 테이블은 새로운 헤더 필드가 인코딩되거나 디코딩될 때 동적으로 업데이트될 수 있다.Information about encoding is known by a header field table that maps a header field to an indexed value. This header field table can be dynamically updated when a new header field is encoded or decoded.

인코더는 헤더 필드 테이블에 새로운 항목으로 삽입될 헤더 필드를 결정할 수 있다. 디코더는 인코더에 의해 규정된 헤더 필드 테이블에 대한 변경을 실행하여 헤더 필드 리스트를 재구성할 수 있다. 이를 통해 디코더는 단순함을 유지하고, 다양한 인코더와 상호 연동될 수 있다.The encoder may determine a header field to be inserted as a new item in the header field table. The decoder can reconstruct the header field list by making changes to the header field table specified by the encoder. Through this, the decoder can maintain simplicity and interoperate with various encoders.

HPACK은 헤더 필드를 인덱스에 연결하기 위해 두 개의 테이블을 사용한다.HPACK uses two tables to link header fields to indexes.

그 하나는 미리 정의되어 있으며, 공통 헤더 필드(Common Header Field) 및 자주 발생하는 헤더 필드를 인덱스 값과 정적으로 연관시키는 정적 테이블이고, 나머지 하나는 동적이며 인코드된 헤더 목록에서 반복되는 헤더 필드를 인덱싱하기 위해 인코더가 사용할 수 있는 동적 테이블이다. 이 두 테이블은 인덱스 값을 정의하기 위한 단일 주소 공간으로 결합될 수 있다. 즉, 정적 테이블과 동적 테이블은 단일 인덱스 주소 공간으로 결합될 수 있다.One is a predefined, static table that statically associates Common Header Fields and frequently occurring header fields with index values, and the other is a dynamic, encoded header field that is repeated in a list of headers. This is a dynamic table that the encoder can use for indexing. These two tables can be combined into a single address space for defining index values. That is, static tables and dynamic tables can be combined into a single index address space.

정적 테이블은 항상 읽기 전용이나, 동적 테이블은 동적으로 변경될 수 있다.Static tables are always read-only, but dynamic tables can be changed dynamically.

복호기는 동적 테이블을 디코딩 컨텍스트로 유지하기만 하면 압축된 헤더 블록을 압축 해제할 수 있다.The decoder can decompress the compressed header block simply by keeping the dynamic table in the decoding context.

HPACK이 HTTP와 같은 양방향 통신에 사용되는 경우, 종단에서 관리하는 인코딩 동적 테이블과 디코딩 동적 테이블은 완전히 독립적이다. 즉, 요청 및 응답 동적 테이블은 별도이다.When HPACK is used for two-way communication such as HTTP, the encoding dynamic table and decoding dynamic table managed by the end are completely independent. That is, the request and response dynamic tables are separate.

동적 테이블은 선입 선출(FIFO: First Input First Out) 순서로 유지되는 일련의 헤더 필드 목록으로 구성된다.The dynamic table consists of a list of a series of header fields maintained in First Input First Out (FIFO) order.

동적 테이블은 처음에 비어 있다가, 헤더 블록이 압축 해제될 때마다 항목이 추가된다. 즉, 클라이언트(10)와 서버(20)는 HTTP 메시지를 주고 받으면서 각각 동적 테이블을 갱신한다.The dynamic table is initially empty, and an entry is added each time the header block is decompressed. That is, the client 10 and the server 20 each update the dynamic table while exchanging HTTP messages.

동적 테이블은 중복된 엔트리-즉, 같은 이름과 값은 값을 가진 엔트리-를 포함할 수 있다. 따라서, 동적 테이블에 포함된 중복 엔트리는 복호기에 의해 오류로 취급되지 않는다.A dynamic table can contain duplicate entries-that is, entries with the same name and value. Therefore, duplicate entries included in the dynamic table are not treated as errors by the decoder.

이상에서 설명한 바와 같이, 동적 테이블은 클라이언트(10)와 서버(20) 사이에 HTTP/2 연결이 생성된 후 동적으로 변경되기 때문에 네트워크(40)의 품질을 분석하는 모니터링 장치(30)가 네트워크(40)상의 패킷을 정상적으로 복호하기 위해서는 다음과 같은 요구 사항이 발생한다. 상세하게, 헤더 압축된 HTTP/2 패킷의 정상적인 해석-즉, 복호-를 위해서 모니터링 장치(30)는 클라이언트(10)와 서버(20) 각각이 관리하는 동적 테이블을 정확히 알아야만 한다.As described above, since the dynamic table is dynamically changed after HTTP/2 connection is created between the client 10 and the server 20, the monitoring device 30 for analyzing the quality of the network 40 In order to decode the packet above 40) normally, the following requirements arise. In detail, for normal interpretation of the header-compressed HTTP/2 packet-that is, decoding-the monitoring device 30 must accurately know the dynamic tables managed by the client 10 and the server 20, respectively.

첫째, 모니터링 장치(30)는 HTTP/2 연결 생성 시점부터 HTTP/2 메시지에 대한 모니터링을 수행할 수 있어야만 한다.First, the monitoring device 30 must be able to monitor HTTP/2 messages from the point of creation of the HTTP/2 connection.

둘째, 모니터링 장치(30)는 클라이언트(10)와 서버(20)에서 주고 받는 모든 패킷을 빠짐없이 모니터링할 수 있어야만 한다.Second, the monitoring device 30 must be able to monitor all packets exchanged between the client 10 and the server 20 without omission.

하지만, 모니터링 장치(30)의 소프트웨어가 업데이트되거나 모니터링 장치(30)에 일시적인 장애가 발생한 경우, 동적 테이블에 대한 변경 흐름이 누락될 수 있다. 이 경우, 모니터링 장치(30)는 이후 발생되는 패킷을 정상적으로 해석할 수 없는 문제점이 있다.However, when software of the monitoring device 30 is updated or a temporary failure occurs in the monitoring device 30, a change flow for the dynamic table may be omitted. In this case, there is a problem in that the monitoring device 30 cannot normally interpret a packet generated afterwards.

따라서, 모니터링 장치(30)의 소프트웨어 변경 또는 일시적인 장애가 발생되는 경우, 빠른 시간 내에 동적 테이블을 갱신 및 복구하여 정상적인 네트워크 품질 관리를 수행할 수 있는 방법이 요구되고 있는 실정이다.Accordingly, when a software change or temporary failure of the monitoring device 30 occurs, there is a demand for a method capable of performing normal network quality management by updating and restoring a dynamic table within a short time.

도 2는 실시 예에 따른 클라이언트(10)와 서버(20) 사이의 HTTP/2 통신 절차를 설명하기 위한 흐름도이다.2 is a flowchart illustrating an HTTP/2 communication procedure between the client 10 and the server 20 according to an embodiment.

도 2를 참조하면, 클라이언트(10)와 서버(20)는 TCP 세션을 설정할 수 있다(S210).2, the client 10 and the server 20 may establish a TCP session (S210).

클라이언트(10)와 서버(20)는 HTTP 설정 프레임을 교환하여 HTTP/2 연결을 생성할 수 있다(S220).The client 10 and the server 20 may exchange HTTP configuration frames to create an HTTP/2 connection (S220).

클라이언트(10)는 HTTP/2 요구 메시지를 생성하여 서버(20)에 전송하고, 서버(20)는 수신된 HTTP/2 요구 메시지에 상응하는 HTTP/2 응답 메시지 생성하여 클라이언트(10)에 전송할 수 있다.The client 10 generates an HTTP/2 request message and transmits it to the server 20, and the server 20 generates an HTTP/2 response message corresponding to the received HTTP/2 request message and transmits it to the client 10. have.

특히, 클라이언트(10)와 서버(20)는 HTTP/2 메시지를 주고 받을 때마다 동적 테이블을 갱신할 수 있다(S230). 클라이언트(10)와 서버(20)는 갱신된 동적 테이블을 이용하여 다음 수신되는 HTTP/2 메시지의 압축 헤더를 복호할 수 있다.In particular, the client 10 and the server 20 may update the dynamic table whenever HTTP/2 messages are exchanged (S230). The client 10 and the server 20 may decode the compressed header of the next received HTTP/2 message using the updated dynamic table.

일 예로, 클라이언트(10)는 자신의 동적 테이블에 새로운 헤더가 추가된 경우, 추가된 헤더들에 대한 정보를 인코딩된 헤더 리스트를 통해 서버(10)에 시그널링할 수 있다.For example, when a new header is added to its own dynamic table, the client 10 may signal information about the added headers to the server 10 through an encoded header list.

즉, 인코딩을 위한 테이블과 디코딩을 위한 테이블이 서로 동기화된다. 압축된 헤더들은 인코딩된 순서대로 동일하게 디코딩되어야만 한다. TCP 세션은 패킷의 순차적인 전송을 보장하므로, 인코딩된 헤더 패킷들은 순차적으로 디코더에 전달되어 복호될 수 있다.That is, the table for encoding and the table for decoding are synchronized with each other. Compressed headers must be decoded in the same order in which they are encoded. Since the TCP session guarantees sequential transmission of packets, the encoded header packets may be sequentially transmitted to the decoder and decoded.

도 3은 본 발명의 실시 예에 따른 시스템에서 HTTP/2 프로토콜을 지원하는 컴퓨팅 장치의 구조를 설명하기 위한 블록도이다.3 is a block diagram illustrating a structure of a computing device supporting the HTTP/2 protocol in a system according to an embodiment of the present invention.

일 예로, 컴퓨팅 장치는 마이크로 컴퓨터, 데스크탑, 스마트폰 등의 휴대용 단말, 워크 스테이션 등을 포함할 수 있으며, 상술한 클라이언트(10) 및 서버(20)로서 동작할 수 있다.As an example, the computing device may include a portable terminal such as a microcomputer, a desktop, and a smart phone, a workstation, and the like, and may operate as the above-described client 10 and server 20.

도 3을 참조하면, 컴퓨팅 장치(300)는 프로세서(310), RAM(Random Access Memory, 320), ROM(Read Only Memory, 330), 통신 모뎀(340) 및 버스(Bus, 350)를 포함하여 구성될 수 있다. 프로세서(310), RAM(320), ROM(330) 및 통신 모뎀(340)은 모드 버스(350)를 통해 상호 연동될 수 있다.Referring to FIG. 3, the computing device 300 includes a processor 310, a random access memory (RAM) 320, a read only memory (ROM) 330, a communication modem 340, and a bus 350. Can be configured. The processor 310, the RAM 320, the ROM 330, and the communication modem 340 may interwork with each other through the mod bus 350.

프로세서(310)는 컴퓨팅 장치(300)의 전체적인 동작을 제어하는 마이크로 프로세서일 수 있다.The processor 310 may be a microprocessor that controls the overall operation of the computing device 300.

RAM(320)은 본 발명의 실시 예에 따른 방법을 실행시키기 위한 각종 변수 및 파라메터 뿐만 아니라 실행 코드가 저장될 수 있다.The RAM 320 may store execution codes as well as various variables and parameters for executing a method according to an embodiment of the present invention.

일 예로, RAM(320)는 HTTP/2 메시지의 인코딩 및 디코딩을 위한 동적 테이블이 저장될 수 있다.For example, the RAM 320 may store a dynamic table for encoding and decoding HTTP/2 messages.

ROM(330)은 본 발명의 실시 예에 따른 방법을 구현하기 위한 컴퓨터 프로그램이 기록될 수 있다. 다른 실시 예로, 일부 실행 코드는 ROM(330)에 기록될 수도 있다.The ROM 330 may record a computer program for implementing a method according to an embodiment of the present invention. In another embodiment, some execution codes may be recorded in the ROM 330.

일 예로, ROM(330)에는 정적 테이블이 기록되어 유지될 수 있다.For example, a static table may be recorded and maintained in the ROM 330.

통신 모뎀(340)은 네트워크(40)에 연결되어 메시지를 송수신할 수 있다. 통신 모뎀(340)은 TCP/IP 통신 신호 및 HTTP/2 통신 신호를 처리할 수 있다.The communication modem 340 is connected to the network 40 to transmit and receive messages. The communication modem 340 may process a TCP/IP communication signal and an HTTP/2 communication signal.

통신 모뎀(340)은 무선망에 접속하기 위한 무선 인터페이스 및 유선망에 접속하기 위한 유선 인터페이스 중 적어도 하나를 포함할 수 있다.The communication modem 340 may include at least one of a wireless interface for accessing a wireless network and a wired interface for accessing a wired network.

통신 모뎀(340)은 프로세서(310)에 의해 실행되는 응용 소프트웨어의 제어 신호에 따라 해당 네트워크를 패킷을 전송하거나 해당 네트워크로부터 패킷을 수신할 수 있다.The communication modem 340 may transmit a packet through a corresponding network or receive a packet from the corresponding network according to a control signal of application software executed by the processor 310.

프로세서(310)는 동적 테이블 및 정적 테이블을 참조하여 인코딩 및 디코딩을 수행할 수 있다. 여기서, 인코딩을 위한 동적 테이블과 디코딩을 위한 동적 테이블은 상이할 수 있으며, RAM(320)의 서로 다른 기록 영역에 저장될 수 있다.The processor 310 may perform encoding and decoding by referring to the dynamic table and the static table. Here, the dynamic table for encoding and the dynamic table for decoding may be different, and may be stored in different recording areas of the RAM 320.

도 4는 실시 예에 따른 모니터링 장치의 구조를 설명하기 위한 블록도이다.4 is a block diagram illustrating a structure of a monitoring device according to an embodiment.

도 4를 참조하면, 모니터링 장치(30)는 복호기(310), 감지부(320), 복구부(330), RAM(Random Access Memory, 340), ROM(Read Only Memory, 350), 통신부(360) 및 제어부(370)을 포함하여 구성될 수 있다.Referring to FIG. 4, the monitoring device 30 includes a decoder 310, a detection unit 320, a recovery unit 330, a random access memory (RAM) 340, a read only memory (ROM) 350, and a communication unit 360. ) And the control unit 370 may be included.

제어부(370)는 프로세서가 탑재되어 모니터링 장치(30)의 전체적인 동작 및 입출력을 제어할 수 있다.The control unit 370 is equipped with a processor to control the overall operation and input/output of the monitoring device 30.

통신부(360)는 네트워크(40)를 통해 패킷을 수신하거나 네트워크(40)로 패킷을 전송할 수 있다.The communication unit 360 may receive a packet through the network 40 or may transmit a packet to the network 40.

통신부(360)는 HTTP/2 연결 별 양 종단에 의해 생성된 패킷을 모니터링할 수 있다.The communication unit 360 may monitor packets generated by both ends of each HTTP/2 connection.

통신부(360)는 패킷을 감지하면, 감지된 패킷을 제어부(370)를 통해 복호기(310)에 전달할 수 있다.When the communication unit 360 detects a packet, the communication unit 360 may transmit the detected packet to the decoder 310 through the control unit 370.

복호기(310)는 ROM(350)에 저장된 정적 테이블과 RAM(340)에 저장된 동적 테이블을 이용하여 HTTP/2 프로토콜에 따라 헤더 압축된 패킷을 복호할 수 있다.The decoder 310 may decode the header-compressed packet according to the HTTP/2 protocol using the static table stored in the ROM 350 and the dynamic table stored in the RAM 340.

복호기(310)는 패킷 복호에 실패한 경우, 해당 정보를 제어부(370)에 전달할 수 있다. 일 예로, 제어부(370)는 패킷 복호에 실패한 HTTP/2 연결에 대한 동적 테이블 갱신 또는 복구 절차를 개시할 수 있다.When the packet decoding fails, the decoder 310 may transmit corresponding information to the controller 370. For example, the controller 370 may initiate a dynamic table update or recovery procedure for an HTTP/2 connection that fails to decode a packet.

일 예로, 제어부(370)는 복호 오류율이 기준치를 초과하는 HTTP/2 연결을 식별하고, 식별된 HTTP/2 연결에 대한 동적 테이블 갱신 또는 복구 절차를 개시할 수 있다.For example, the control unit 370 may identify an HTTP/2 connection whose decoding error rate exceeds a reference value, and initiate a dynamic table update or recovery procedure for the identified HTTP/2 connection.

다른 일 예로, 제어부(370)는 연속해서 소정 개수의 패킷 오류가 감지된 경우, 해당 HTTP/2 연결에 대한 동적 테이블 갱신 또는 복구 절차를 개시할 수도 있다.As another example, when a predetermined number of packet errors are continuously detected, the controller 370 may initiate a dynamic table update or recovery procedure for a corresponding HTTP/2 connection.

감지부(320)는 동적 테이블 복구 이벤트를 감지하여 제어부(370)에 해당 이벤트 발생을 알릴 수 있다.The detection unit 320 may detect the dynamic table recovery event and notify the control unit 370 of the occurrence of the event.

일 예로, 동적 테이블 복구 이벤트는 모니터링 장치(30)의 소프트웨어가 업데이트되어 재부팅되거나 네트워크 장애 또는 정전과 같은 일시적인 장애로 인해 재부팅 또는 재시동이 이루어지는 경우 발생될 수 있다.For example, the dynamic table recovery event may occur when the software of the monitoring device 30 is updated and rebooted, or when a reboot or restart is performed due to a temporary failure such as a network failure or a power outage.

복구부(330)는 감지부(320)에 의해 동적 테이블 복구 이벤트가 감지되면, 제어부(370)의 제어 신호에 따라 모든 HTTP/2 연결에 대한 동적 테이블 복구 절차를 개시할 수 있다.When a dynamic table recovery event is detected by the detection unit 320, the recovery unit 330 may initiate a dynamic table recovery procedure for all HTTP/2 connections according to a control signal from the controller 370.

복구부(330)는 동적 테이블 복구 절차가 개시되면, HTTP/2 연결 별 양 종단에 동적 테이블 전송을 요청할 수 있다.When the dynamic table recovery procedure is initiated, the recovery unit 330 may request dynamic table transmission to both ends of each HTTP/2 connection.

이때, RAM(340)에는 현재 활성화된 HTTP/2 연결에 관한 정보 및 각각의 HTTP/2 연결에 상응하는 장치들의 동적 테이블이 유지될 수 있다.In this case, information on the currently active HTTP/2 connection and a dynamic table of devices corresponding to each HTTP/2 connection may be maintained in the RAM 340.

복구부(330)는 HTTP/2 연결 별 수신된 동적 테이블 복구 패킷에 기반하여 해당 HTTP/2 연결에 상응하는 동적 테이블을 복구할 수 있다.The recovery unit 330 may recover a dynamic table corresponding to a corresponding HTTP/2 connection based on the dynamic table recovery packet received for each HTTP/2 connection.

본 실시 예에 따른 모니터링 장치(30)는 소프트웨어 변경 또는 일시적인 장애로 동적 테이블의 동기화에 실패하여 정상적인 패킷 모니터링이 불가한 상황이 발생하더라도 동적 테이블 복구 패킷을 HTTP/2 연결된 양 종단으로부터 수신하여 내부 동적 테이블을 빠르게 복원하고, 동기화시킬 수 있으며, 그에 따라 HTTP/2 헤더 압축된 패킷을 정상적으로 디코딩할 수 있는 장점이 있다.The monitoring device 30 according to the present embodiment receives a dynamic table recovery packet from both ends connected to HTTP/2 even if synchronization of the dynamic table fails due to software change or temporary failure, and thus normal packet monitoring is not possible, Tables can be quickly restored and synchronized, and accordingly, HTTP/2 header compressed packets can be decoded normally.

도 5는 실시 예에 따른 모니터링 장치에서 네트워크 품질 관리를 위한 패킷 모니터링 방법을 설명하기 위한 순서도이다.5 is a flowchart illustrating a packet monitoring method for network quality management in a monitoring device according to an embodiment.

도 5를 참조하면, 모니터링 장치(30)는 HTTP/2 연결이 설정된 양쪽 종단으로부터 동적 테이블 갱신 패킷을 수신할 수 있다(S510).Referring to FIG. 5, the monitoring device 30 may receive a dynamic table update packet from both ends of which an HTTP/2 connection is established (S510).

일 예로, 양쪽 종단은 클라이언트(10)와 서버(20)일 수 있다.For example, both ends may be the client 10 and the server 20.

실시 예에 따른, 양 종단은 자신의 동적 테이블이 갱신될 때마다 해당 갱신 내역이 포함된 동적 테이블 갱신 패킷을 모니터링 장치(30)에 전송할 수도 있다.According to an embodiment, both ends may transmit a dynamic table update packet including the corresponding update details to the monitoring device 30 whenever their dynamic table is updated.

다른 실시 예로, 양 종단은 동적 테이블의 갱신 내역이 기준 데이터량을 초과하면 해당 갱신 내역이 포함된 동적 테이블 갱신 패킷을 모니터링 장치(30)에 전송할 수도 있다.As another example, when the update details of the dynamic table exceed the reference data amount, both ends may transmit a dynamic table update packet including the corresponding update details to the monitoring device 30.

또 다른 실시 예로, 양 종단은 일정 주기로 갱신 내역이 포함된 동적 테이블 갱신 패킷을 모니터링 장치(30)에 전송할 수도 있다.In another embodiment, both ends may transmit, to the monitoring device 30, a dynamic table update packet including update details at regular intervals.

모니터링 장치(30)는 수신된 동적 테이블 갱신 패킷에 기반하여 해당 HTTP/2 연결에 상응하는 동적 테이블을 갱신할 수 있다(S520).The monitoring device 30 may update the dynamic table corresponding to the HTTP/2 connection based on the received dynamic table update packet (S520).

모니터링 장치(30)는 갱신된 동적 테이블에 이용하여 해당 HTTP/2 연결에 상응하여 주고 받는 패킷을 디코딩할 수 있다(S530). 여기서, 패킷은 HTTP/2 프로토콜에 따라 헤더 압축된 패킷일 수 있다.The monitoring device 30 may use the updated dynamic table to decode packets transmitted and received corresponding to the corresponding HTTP/2 connection (S530). Here, the packet may be a header compressed packet according to the HTTP/2 protocol.

모니터링 장치(30)는 패킷 디코딩 결과에 기초하여 네트워크 품질을 평가할 수 있다(S540).The monitoring device 30 may evaluate the network quality based on the packet decoding result (S540).

상기 도 5의 실시 예를 통해, 본 발명에 따른 모니터링 장비(30)은 자신의 동적 테이블을 클라이언트(10) 및 서버(20)에 유지된 동적 테이블과 동기화시킬 수 있으므로 HTTP/2 헤더 압축된 패킷을 항상 정상적으로 디코딩할 수 있는 장점이 있다.5, the monitoring device 30 according to the present invention can synchronize its own dynamic table with the dynamic table maintained in the client 10 and the server 20, so that the HTTP/2 header compressed packet There is an advantage of being able to decode normally.

도 6는 다른 실시 예에 따른 모니터링 장치에서 네트워크 품질 관리를 위한 패킷 모니터링 방법을 설명하기 위한 순서도이다.6 is a flowchart illustrating a packet monitoring method for network quality management in a monitoring device according to another embodiment.

도 6을 참조하면, 모니터링 장치(30)는 동적 테이블 복구 이벤트가 발생되었는지 판단할 수 있다(S610).Referring to FIG. 6, the monitoring device 30 may determine whether a dynamic table recovery event has occurred (S610).

일 예로, 동적 테이블 복구 이벤트는 모니터링 장치(30)의 소프트웨어가 변경되어 재부팅되거나 일시 장애로 인해 재부팅되는 경우 발생될 수 있다. 다른 일 예로, 동적 테이블 복구 이벤트는 일정 시간 동안 패킷 디코딩에 실패하거나 소정 개수의 패킷에 대한 디코딩이 연속적으로 실패한 경우 발생될 수도 있다.For example, the dynamic table recovery event may occur when software of the monitoring device 30 is changed and rebooted or rebooted due to a temporary failure. As another example, the dynamic table recovery event may be generated when packet decoding fails for a predetermined time or when decoding of a predetermined number of packets continuously fails.

모니터링 장치(30)는 동적 테이블 복구 이벤트가 발생된 경우, HTTP/2 연결 별 양 종단에 동적 테이블 전송을 요청할 수 있다(S620).When a dynamic table recovery event occurs, the monitoring device 30 may request dynamic table transmission to both ends of each HTTP/2 connection (S620).

모니터링 장치(30)는 HTTP/2 연결 별 수신된 동적 테이블 복구 패킷에 기반하여 해당 HTTP/2 연결에 상응하는 동적 테이블을 복구할 수 있다(S630).The monitoring device 30 may recover a dynamic table corresponding to the HTTP/2 connection based on the dynamic table recovery packet received for each HTTP/2 connection (S630).

모니터링 장치(30)는 복구된 동적 테이블을 이용하여 HTTP/2 헤더 압축된 패킷을 디코딩할 수 있다.The monitoring device 30 may decode the HTTP/2 header compressed packet using the recovered dynamic table.

모니터링 장치(30)는 디코딩 오류가 발생되는 HTTP/2 연결의 존재 여부를 모니터링할 수 있다(S640).The monitoring device 30 may monitor whether there is an HTTP/2 connection in which a decoding error occurs (S640).

모니터링 결과, 디코딩 오류가 발생되는 HTTP/2 연결의 존재하면, 해당 HTTP/2 연결에 상응하는 클라이언트(10)와 서버(20)로 동적 테이블 재전송을 요청하여 동적 테이블을 복구할 수 있다(S650).As a result of monitoring, if there is an HTTP/2 connection in which a decoding error occurs, the dynamic table may be restored by requesting a dynamic table retransmission to the client 10 and the server 20 corresponding to the HTTP/2 connection (S650). .

상기 도 6의 실시 예를 통해, 본 발명에 따른 모니터링 장비(30)는 소프트웨어 변경 또는 일시적인 장애로 동적 테이블의 동기화에 실패하여 정상적인 패킷 모니터링이 불가한 상황이 발생하더라도 동적 테이블 복구 패킷을 통해 동적 테이블을 빠르게 복원하여 동기화시킬 수 있으므로 이후 HTTP/2 헤더 압축된 패킷을 정상적으로 디코딩할 수 있는 장점이 있다.6, the monitoring equipment 30 according to the present invention uses a dynamic table recovery packet through a dynamic table recovery packet even though synchronization of the dynamic table fails due to software change or temporary failure, and thus normal packet monitoring is impossible. Since it can be quickly restored and synchronized, there is an advantage in that the HTTP/2 header compressed packet can be decoded normally.

도 7은 실시 예에 따른 HTTP/2 패킷의 구조를 설명하기 위한 도면이다.7 is a diagram illustrating a structure of an HTTP/2 packet according to an embodiment.

도 7을 참조하면, HTTP/2 패킷(700)은 크게 헤더 영역(701)과 데이터 영역(702)를 포함하여 구성될 수 있다.Referring to FIG. 7, the HTTP/2 packet 700 may be largely configured to include a header area 701 and a data area 702.

헤더 영역(701)은 24비트의 길이 필드(Length Field, 710), 8비트의 타입 필드(Type Field, 720), 8비트의 플래그 필드(Flags Field, 730) 및 31비트의 스트림 식별자 필드(Stream Identifier Field, 740)를 포함하여 구성될 수 있다. The header area 701 includes a 24-bit length field (Length Field, 710), an 8-bit type field (720), an 8-bit Flags field (730), and a 31-bit stream identifier field (Stream Identifier Field, 740) may be included.

데이터 영역(702)는 가변 길이를 가지는 프레임 페이로드 필드(Frame Payload Field, 750)를 포함하여 구성될 수 있다.The data area 702 may include a frame payload field 750 having a variable length.

HTTP/2 연결은 다수의 스트림으로 구성될 수 있으며, 각각의 스트림은 복수의 요청(Request)과 복수의 응답(Response)을 포함할 수 있다.The HTTP/2 connection may consist of a plurality of streams, and each stream may include a plurality of requests and a plurality of responses.

복수의 요청 및 응답을 가지는 스트림의 유연한 구조 덕분에 HTTP/2 프로토콜의 경우, 서버에서 만들어진 응답 프레임들은 요청 순서에 상관 없이 만들어진 순서대로 클라이언트에 전달될 수 있는 장점이 있다. 즉, 하나의 TCP 연결상에서, 다수의 클라이언트 요청과 서버의 응답이 비동기 방식으로 이루어지는 멀티플렉싱(Multiplexing) 기술이 지원된다.In the case of the HTTP/2 protocol, thanks to the flexible structure of a stream having a plurality of requests and responses, response frames created by the server can be delivered to the client in the order they were created regardless of the order of requests. That is, a multiplexing technique in which a plurality of client requests and server responses are asynchronously performed over one TCP connection is supported.

길이 필드(710)는 프레임 페이로드의 길이가 기록되는 필드이다.The length field 710 is a field in which the length of the frame payload is recorded.

타입 필드(720)는 프래임 타입이 기록되는 필드이다. 일 예로, 프레임 타입은 데이터 전송을 위한 데이터(DATA, 0x00) 타입, 헤더 전송을 위한 헤더(HEADER, 0x01) 타입, 스트림 내 요청의 의존성을 지정하기 위한 우선순위(PRIORITY, 0x02) 타입, 스트림의 예약 상태를 해제하기 위한 리셋스트림(RST_STREAM, 0x03) 타입, 설정 정보를 전달하기 위한 설정(SETTING, 0x04) 타입, 서버가 푸시 메시지를 전송하기 위한 푸시_프로마이즈(PUSH_PROMISE, 0x05) 타입, 핑 메시지를 전송하기 위한 핑(PING, 0x06) 타입, 피어(peer)측의 현재 HTTP/2 연결에 대한 스트림 생성을 중단시키기 위한 고어웨이(GOAWAY, 0x07) 타입, 흐름 제어를 위한 윈도우업데이트(WINDOW_UPDATE, 0x08) 타입 등을 포함할 수 있다.The type field 720 is a field in which a frame type is recorded. For example, the frame type is a data (DATA, 0x00) type for data transmission, a header (HEADER, 0x01) type for header transmission, a priority (PRIORITY, 0x02) type for specifying the dependency of a request in a stream, and Reset stream (RST_STREAM, 0x03) type to release the reservation status, setting (SETTING, 0x04) type to deliver setting information, push_promize (PUSH_PROMISE, 0x05) type to send a push message from the server, ping message Ping (PING, 0x06) type for transmitting data, GOAWAY (0x07) type to stop stream generation for the current HTTP/2 connection on the peer side, window update for flow control (WINDOW_UPDATE, 0x08) ) Type, etc.

여기서, 정의되지 않은 타입의 패킷이 수신되면 해당 패킷은 무시될 수 있다.Here, when a packet of an undefined type is received, the packet may be ignored.

실시 예에 따른 타입 필드(720)는 동적 테이블 갱신을 위한 패킷 타입이 추가 정의될 수 있다. 일 예로, 동적 테이블 갱신 패킷을 위한 패킷 타입은 동적테이블갱신(DYNAMIC_TABLE_UPDATE, 0xff)으로 정의될 수 있다.In the type field 720 according to an embodiment, a packet type for dynamic table update may be additionally defined. As an example, the packet type for the dynamic table update packet may be defined as dynamic table update (DYNAMIC_TABLE_UPDATE, 0xff).

실시 예에 따른 타입 필드(720)는 동적 테이블 복구를 위한 패킷 타입이 추가 정의될 수도 있다. 일 예로, 동적 테이블 복구 패킷을 위한 패킷 타입은 동적테이블복구(DYNAMIC_TABLE_RECOVERY, 0xfe)로 정의될 수 있다.In the type field 720 according to an embodiment, a packet type for dynamic table recovery may be additionally defined. For example, the packet type for the dynamic table recovery packet may be defined as dynamic table recovery (DYNAMIC_TABLE_RECOVERY, 0xfe).

본 실시예에 따라 신규 정의된 프레임 타입이 아직 반영되지 않은 종단 장치들의 경우 신규 정의된 동적 테이블 갱신 패킷이 수신되어도 이를 무시하면 되므로 영향이 없다.According to the present embodiment, in the case of end devices that have not yet reflected the newly defined frame type, even if a newly defined dynamic table update packet is received, it is not affected because it can be ignored.

플래그 필드(730)는 프레임 타입 특정 부울(boolean) 플래그 용도로 예약된 필드이다.The flag field 730 is a field reserved for a frame type specific boolean flag.

플래그는 지정된 프레임 타입에 특정된 의미를 할당할 수 있다.The flag can assign a specific meaning to a designated frame type.

특정 프레임 타입을 위한 의미 체계가 정의되지 않은 플래그들은 무시되어야 하며, 해당 프레임을 전송할 때 플래그는 비설정 상태로 남겨 놓아야 한다.Flags for which a semantic system for a specific frame type is not defined should be ignored, and the flag should be left unset when transmitting the frame.

스트림 필드(740)는 스트림을 식별하기 위한 스트림 식별자가 기록되는 필드이다.The stream field 740 is a field in which a stream identifier for identifying a stream is recorded.

프레임 페이로드(750)의 내용 및 구조는 전적으로 프레임 타입에 의존한다.The content and structure of frame payload 750 depends entirely on the frame type.

도 8은 실시 예에 따른 동적 테이블 갱신 패킷의 프레임 페이로드 구조를 설명하기 위한 도면이다.8 is a diagram illustrating a frame payload structure of a dynamic table update packet according to an embodiment.

도 8을 참조하면, 동적 테이블 갱신 패킷의 프레임 페이로드(800)는 복수의 엔트리(entry)를 포함하여 구성될 수 있다.Referring to FIG. 8, a frame payload 800 of a dynamic table update packet may be configured to include a plurality of entries.

동적 테이블 갱신 패킷의 프레임 페이로드(800)는 크게 엔트리 개수 필드(Number of entry field, 810)와 엔트리 개수 필드(810)에 기록된 값만큼의 엔트리(820)를 포함하여 구성될 수 있다. 일 예로, 엔트리 개수 필드(810)는 16비트의 길이를 가질 수 있다.The frame payload 800 of the dynamic table update packet may largely include a Number of entry field 810 and an entry 820 corresponding to a value recorded in the number of entries field 810. For example, the number of entries field 810 may have a length of 16 bits.

각각의 엔트리(820)는 인덱스 필드(Index field, 822), 이름 길이 필드(Name length field, 822), 이름 필드(Name field, 823), 값 길이 필드(Value length field, 824) 및 값 필드(Value field, 825)를 포함하여 구성될 수 있다.Each entry 820 includes an index field (822), a name length field (822), a name field (823), a value length field (824), and a value field ( Value field, 825).

정적 테이블과 동적 테이블은 인덱스, 해당 인덱스에 상응하는 헤더 이름 및 해당 헤더 이름에 상응하는 헤더 값으로 구성될 수 있다.Static and dynamic tables can consist of an index, a header name corresponding to the index, and a header value corresponding to the header name.

HTTP/2 프로토콜에서 헤더 압축은 동일 헤더 전송 시 헤더 이름 및 헤더 값을 동적 테이블의 해당 인덱스로 대체함으로써 전송 데이터의 양을 현저하게 줄일 수 있다.In the HTTP/2 protocol, header compression can significantly reduce the amount of transmitted data by replacing the header name and header value with the corresponding index of the dynamic table when transmitting the same header.

실시 예에 따른 동적 테이블 복구 패킷은 상기 동적 테이블 갱신 패킷과 동일한 구조를 가질 수 있다.The dynamic table recovery packet according to the embodiment may have the same structure as the dynamic table update packet.

이상에서, 본 발명의 실시 예를 구성하는 모든 구성 요소들이 하나로 결합되어 동작하는 것으로 설명되었다고 해서, 본 발명이 반드시 이러한 실시 예에 한정되는 것은 아니다.In the above, just because all the components constituting the embodiments of the present invention are described as being combined into one and operating, the present invention is not necessarily limited to these embodiments.

즉, 본 발명의 목적 범위 안에서라면, 그 모든 구성 요소들이 하나 이상으로 선택적으로 결합하여 동작할 수도 있다.That is, within the scope of the object of the present invention, all of the constituent elements may be selectively combined and operated in one or more.

또한, 그 모든 구성 요소들이 각각 하나의 독립적인 하드웨어로 구현될 수 있지만, 각 구성 요소들의 그 일부 또는 전부가 선택적으로 조합되어 하나 또는 복수 개의 하드웨어에서 조합된 일부 또는 전부의 기능을 수행하는 프로그램 모듈을 갖는 컴퓨터 프로그램으로서 구현될 수도 있다.In addition, although all of the components may be implemented as one independent hardware, a program module that performs some or all functions combined in one or more hardware by selectively combining some or all of the components. It may be implemented as a computer program having

그 컴퓨터 프로그램을 구성하는 코드들 및 코드 세그먼트들은 본 발명의 기술 분야의 당업자에 의해 용이하게 추론될 수 있을 것이다. 이러한 컴퓨터 프로그램은 컴퓨터가 읽을 수 있는 저장매체(Computer Readable Media)에 저장되어 컴퓨터에 의하여 읽혀지고 실행됨으로써, 본 발명의 실시 예를 구현할 수 있다. 컴퓨터 프로그램의 저장매체로서는 자기 기록매체, 광 기록매체 등이 포함될 수 있다.Codes and code segments constituting the computer program may be easily inferred by those skilled in the art. Such a computer program is stored in a computer-readable storage medium, and is read and executed by a computer, thereby implementing an embodiment of the present invention. The storage medium of the computer program may include a magnetic recording medium, an optical recording medium, and the like.

또한, 이상에서 기재된 "포함하다", "구성하다" 또는 "가지다" 등의 용어는, 특별히 반대되는 기재가 없는 한, 해당 구성 요소가 내재될 수 있음을 의미하는 것이므로, 다른 구성 요소를 제외하는 것이 아니라 다른 구성 요소를 더 포함할 수 있는 것으로 해석되어야 한다.In addition, terms such as "include", "consist of" or "have" described above mean that the corresponding component may be embedded, unless otherwise specified, excluding other components It should not be construed as being able to further include other components.

기술적이거나 과학적인 용어를 포함한 모든 용어들은, 다르게 정의되지 않는 한, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 사전에 정의된 용어와 같이 일반적으로 사용되는 용어들은 관련 기술의 문맥 상의 의미와 일치하는 것으로 해석되어야 하며, 본 발명에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.All terms, including technical or scientific terms, unless otherwise defined, have the same meaning as commonly understood by one of ordinary skill in the art to which the present invention belongs. Terms generally used, such as terms defined in the dictionary, should be interpreted as being consistent with the meaning in the context of the related technology, and are not interpreted as ideal or excessively formal meanings unless explicitly defined in the present invention.

또한, 본 발명의 구성 요소를 설명하는 데 있어서, 제 1, 제 2, A, B, (a), (b) 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질이나 차례 또는 순서 등이 한정되지 않는다. 어떤 구성 요소가 다른 구성 요소에 "연결", "결함" 또는 "접속"된다고 기재된 경우, 그 구성 요소는 그 다른 구성 요소에 직접적으로 연결되거나 또는 접속될 수 있지만, 각 구성 요소 사이에 또 다른 구성 요소가 "연결", "결함" 또는 "접속"될 수도 있다고 이해되어야 할 것이다.In addition, in describing the constituent elements of the present invention, terms such as first, second, A, B, (a), (b) may be used. These terms are only used to distinguish the component from other components, and the nature, order, or order of the component is not limited by the term. When a component is described as being "connected", "defective" or "connected" to another component, that component may be directly connected or connected to that other component, but between each component another component It should be understood that an element may be “connected”, “defective” or “connected”.

상기와 같이 설명된 HTTP/2 헤더 압축된 패킷을 모니터링하는 방법들은 컴퓨터로 읽을 수 있는 기록 매체에 컴퓨터가 읽을 수 있는 코드로서 구현되는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체로는 컴퓨터 시스템에 의하여 해독될 수 있는 데이터가 저장된 모든 종류의 기록 매체를 포함한다.The methods for monitoring the HTTP/2 header compressed packet described above may be implemented as computer-readable codes on a computer-readable recording medium. Computer-readable recording media include all types of recording media in which data that can be decoded by a computer system are stored.

예를 들어, ROM(Read Only Memory), RAM(Random Access Memory), 자기 테이프, 자기 디스크, 플래쉬 메모리, 광 데이터 저장장치 등이 있을 수 있다. 또한, 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 통신망으로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 읽을 수 있는 코드로서 저장되고 해당 장치에 다운로드되어 실행될 수도 있다.For example, there may be read only memory (ROM), random access memory (RAM), magnetic tape, magnetic disk, flash memory, optical data storage device, and the like. Further, the computer-readable recording medium may be distributed to a computer system connected through a computer communication network, stored as code that can be read in a distributed manner, and downloaded to the corresponding device for execution.

또한, 상기에서는 본 발명의 바람직한 실시 예를 참조하여 설명하였지만, 해당 기술 분야에서 통상의 지식을 가진 자라면 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.In addition, although the above has been described with reference to preferred embodiments of the present invention, those of ordinary skill in the relevant technical field can use the present invention within the scope not departing from the spirit and scope of the present invention described in the following claims. It will be appreciated that various modifications and changes can be made.

Claims (20)

하이퍼텍스트 전송 프로토콜 버전 2(Hyertext Transfer Protocol Version 2: HTTP/2) 헤더 압축 패킷을 모니터링하는 장치에 있어서,
네트워크상의 패킷을 모니터링하고, HTTP/2 연결이 설정된 양 종단으로부터 동적 테이블 갱신 패킷을 수신하는 통신부;
상기 수신된 동적 테이블 갱신 패킷에 기반하여 상기 HTTP/2 연결에 상응하는 동적 테이블을 갱신하는 제어부; 및
상기 갱신된 동적 테이블을 이용하여 해당 HTTP/2 연결에 상응하는 상기 모니터링된 패킷을 복호하는 복호부
를 포함하는 모니터링 장치.
In the apparatus for monitoring hypertext transfer protocol version 2 (Hyertext Transfer Protocol Version 2: HTTP/2) header compressed packet,
A communication unit that monitors a packet on the network and receives a dynamic table update packet from both ends of which an HTTP/2 connection is established;
A controller for updating a dynamic table corresponding to the HTTP/2 connection based on the received dynamic table update packet; And
A decoder that decodes the monitored packet corresponding to the HTTP/2 connection by using the updated dynamic table
Monitoring device comprising a.
제1항에 있어서,
상기 동적 테이블 갱신 패킷은 주기적으로 수신되는 모니터링 장치.
The method of claim 1,
The monitoring device that the dynamic table update packet is periodically received.
제1항에 있어서,
상기 동적 테이블 갱신 패킷은 상기 양 종단의 동적 테이블이 갱신될 때마다 수신되는 모니터링 장치.
The method of claim 1,
The dynamic table update packet is a monitoring device that is received whenever the dynamic tables at both ends are updated.
제1항에 있어서,
상기 동적 테이블 갱신 패킷은 상기 모니터링 장치가 상기 양 종단에 요청하여 수신되는 모니터링 장치.
The method of claim 1,
The monitoring device that the dynamic table update packet is received by requesting the monitoring device from both ends.
제4항에 있어서,
동적 테이블 갱신 이벤트를 감지하는 감지부를 더 포함하고, 상기 감지부는 상기 모니터링 장치의 소프트웨어가 업데이트되거나 상기 모니터링 장치에 일시 장애가 발생한 경우 상기 동적 테이블 갱신 이벤트를 감지하는 모니터링 장치.
The method of claim 4,
A monitoring device further comprising a detection unit detecting a dynamic table update event, wherein the detection unit detects the dynamic table update event when software of the monitoring device is updated or a temporary failure occurs in the monitoring device.
제1항에 있어서,
상기 동적 테이블 갱신 패킷은 헤더 영역과 데이터 영역을 포함하고, 상기 데이터 영역은 엔트리의 개수를 지시하는 엔트리 개수 필드 및 상기 개수에 상응하는 엔트리로 구성된 프레임 페이로드 필드로 구성되는 모니터링 장치.
The method of claim 1,
The dynamic table update packet includes a header area and a data area, and the data area includes an entry number field indicating the number of entries and a frame payload field including entries corresponding to the number.
제6항에 있어서,
상기 엔트리는 인덱스 필드, 이름 길이 필드, 이름 필드, 값 길이 필드 및 값 필드를 포함하는 모니터링 장치.
The method of claim 6,
The entry is a monitoring device including an index field, a name length field, a name field, a value length field, and a value field.
제6항에 있어서,
상기 헤더 영역은 스트림 식별자 필드를 포함하고, 상기 제어부는 상기 적어도 하나의 엔트리를 이용하여 해당 스트림 식별자에 상응하는 동적 테이블을 갱신하는 모니터링 장치.
The method of claim 6,
The header area includes a stream identifier field, and the controller updates a dynamic table corresponding to a corresponding stream identifier by using the at least one entry.
제1항에 있어서,
상기 제어부는 복호 오류가 발생되는 HTTP/2 연결이 존재하면, 해당 HTTP/2 연결에 상응하는 양 종단에 동적 테이블 재전송을 요청하는 모니터링 장치.
The method of claim 1,
The control unit is a monitoring device for requesting dynamic table retransmission to both ends corresponding to the HTTP/2 connection when there is an HTTP/2 connection in which a decoding error occurs.
클라이언트와 서버 사이에 전송되는 하이퍼텍스트 전송 프로토콜 버전 2(Hyertext Transfer Protocol Version 2: HTTP/2) 헤더 압축 패킷을 모니터링하는 방법에 있어서,
HTTP/2 연결이 설정된 양 종단으로부터 동적 테이블 갱신 패킷을 수신하는 단계;
상기 수신된 동적 테이블 갱신 패킷에 기반하여 상기 HTTP/2 연결에 상응하는 동적 테이블을 갱신하는 단계; 및
상기 갱신된 동적 테이블을 이용하여 해당 HTTP/2 연결에 상응하는 패킷을 복호하는 단계
를 포함하는 HTTP/2 헤더 압축 패킷 모니터링 방법.
In the method for monitoring a hypertext transfer protocol version 2 (Hyertext Transfer Protocol Version 2: HTTP/2) header compressed packet transmitted between a client and a server,
Receiving a dynamic table update packet from both ends of the HTTP/2 connection;
Updating a dynamic table corresponding to the HTTP/2 connection based on the received dynamic table update packet; And
Decoding a packet corresponding to the HTTP/2 connection using the updated dynamic table
HTTP/2 header compression packet monitoring method comprising a.
제10항에 있어서,
상기 동적 테이블 갱신 패킷은 주기적으로 수신되는 HTTP/2 헤더 압축 패킷 모니터링 방법.
The method of claim 10,
The dynamic table update packet is periodically received HTTP/2 header compression packet monitoring method.
제10항에 있어서,
상기 동적 테이블 갱신 패킷은 상기 양 종단의 동적 테이블이 갱신될 때마다 수신되는 HTTP/2 헤더 압축 패킷 모니터링 방법.
The method of claim 10,
The dynamic table update packet is an HTTP/2 header compression packet monitoring method that is received whenever the dynamic tables at both ends are updated.
제10항에 있어서,
상기 동적 테이블 갱신 패킷은 상기 양 종단에 요청하여 수신되는 HTTP/2 헤더 압축 패킷 모니터링 방법.
The method of claim 10,
HTTP/2 header compression packet monitoring method that the dynamic table update packet is requested and received at both ends.
제10항에 있어서,
동적 테이블 갱신 이벤트를 감지하는 단계를 더 포함하되, 상기 동적 테이블 갱신 이벤트는 모니터링 장치의 소프트웨어가 업데이트되거나 상기 모니터링 장치에 일시 장애가 발생한 경우 감지되는 HTTP/2 헤더 압축 패킷 모니터링 방법.
The method of claim 10,
The method further comprises detecting a dynamic table update event, wherein the dynamic table update event is detected when software of a monitoring device is updated or a temporary failure occurs in the monitoring device.
제10항에 있어서,
상기 동적 테이블 갱신 패킷은 헤더 영역과 데이터 영역을 포함하고, 상기 데이터 영역은 엔트리의 개수를 지시하는 엔트리 개수 필드 및 상기 개수에 상응하는 엔트리로 구성된 프레임 페이로드 필드로 구성되는 HTTP/2 헤더 압축 패킷 모니터링 방법.
The method of claim 10,
The dynamic table update packet includes a header area and a data area, and the data area includes an entry number field indicating the number of entries and a frame payload field composed of entries corresponding to the number of entries. Monitoring method.
제15항에 있어서,
상기 엔트리는 인덱스 필드, 이름 길이 필드, 이름 필드, 값 길이 필드 및 값 필드를 포함하는 HTTP/2 헤더 압축 패킷 모니터링 방법.
The method of claim 15,
The entry includes an index field, a name length field, a name field, a value length field, and a value field.
제15항에 있어서,
상기 헤더 영역은 스트림 식별자 필드를 포함하고, 상기 적어도 하나의 엔트리를 이용하여 해당 스트림 식별자에 상응하는 동적 테이블이 갱신되는 HTTP/2 헤더 압축 패킷 모니터링 방법.
The method of claim 15,
The header area includes a stream identifier field, and a dynamic table corresponding to a corresponding stream identifier is updated using the at least one entry.
제10항에 있어서,
복호 오류가 발생되는 HTTP/2 연결이 존재하는지 여부를 판단하는 단계; 및
상기 판단 결과, 상기 복호 오류가 발생된 HTTP/2 연결이 존재하면, 해당 HTTP/2 연결에 상응하는 양 종단에 동적 테이블 재전송을 요청하는 단계
를 더 포함하는 HTTP/2 헤더 압축 패킷 모니터링 방법.
The method of claim 10,
Determining whether there is an HTTP/2 connection in which a decryption error occurs; And
As a result of the determination, if there is an HTTP/2 connection in which the decryption error has occurred, requesting dynamic table retransmission to both ends corresponding to the HTTP/2 connection
HTTP/2 header compressed packet monitoring method further comprising.
제10항에 있어서,
상기 복호 결과에 기초하여 네트워크 품질을 평가하는 단계를 더 포함하는 HTTP/2 헤더 압축 패킷 모니터링 방법.
The method of claim 10,
The HTTP/2 header compressed packet monitoring method further comprising the step of evaluating the network quality based on the decoding result.
클라이언트와 서버 사이에 전송되는 하이퍼텍스트 전송 프로토콜 버전 2(Hyertext Transfer Protocol Version 2: HTTP/2) 헤더 압축 패킷을 모니터링하는 방법에 있어서,
동적 테이블 복구 이벤트를 감지하는 단계;
현재 설정된 HTTP/2 연결 별 동적 테이블 전송을 요청하는 단계; 및
상기 HTTP/2 연결 별 수신된 동적 테이블 복구 패킷에 기반하여 해당 HTTP/2 연결에 상응하는 동적 테이블을 복구하는 단계
를 포함하는 HTTP/2 헤더 압축 패킷 모니터링 방법.
In the method for monitoring a hypertext transfer protocol version 2 (Hyertext Transfer Protocol Version 2: HTTP/2) header compressed packet transmitted between a client and a server,
Detecting a dynamic table recovery event;
Requesting a dynamic table transmission for each currently established HTTP/2 connection; And
Restoring a dynamic table corresponding to the HTTP/2 connection based on the dynamic table recovery packet received for each HTTP/2 connection
HTTP/2 header compression packet monitoring method comprising a.
KR1020190088448A 2019-07-22 2019-07-22 Method and apparatus for monitoring HTTP/2 header compressed packet KR20210011243A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190088448A KR20210011243A (en) 2019-07-22 2019-07-22 Method and apparatus for monitoring HTTP/2 header compressed packet

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190088448A KR20210011243A (en) 2019-07-22 2019-07-22 Method and apparatus for monitoring HTTP/2 header compressed packet

Publications (1)

Publication Number Publication Date
KR20210011243A true KR20210011243A (en) 2021-02-01

Family

ID=74571403

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190088448A KR20210011243A (en) 2019-07-22 2019-07-22 Method and apparatus for monitoring HTTP/2 header compressed packet

Country Status (1)

Country Link
KR (1) KR20210011243A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114710565A (en) * 2022-03-31 2022-07-05 绿盟科技集团股份有限公司 Network message compression and decompression method, device, equipment and readable storage medium
CN115883683A (en) * 2021-09-24 2023-03-31 北京中创信测科技股份有限公司 Header decoding method and device

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115883683A (en) * 2021-09-24 2023-03-31 北京中创信测科技股份有限公司 Header decoding method and device
CN114710565A (en) * 2022-03-31 2022-07-05 绿盟科技集团股份有限公司 Network message compression and decompression method, device, equipment and readable storage medium
CN114710565B (en) * 2022-03-31 2023-11-03 绿盟科技集团股份有限公司 Compression and decompression method, device and equipment of network message and readable storage medium

Similar Documents

Publication Publication Date Title
WO2021121370A1 (en) Message loss detection method and apparatus for message queue
CN112804707B (en) Data transmission method, data transmission device, computer readable medium and electronic equipment
US9596313B2 (en) Method, terminal, cache server and system for updating webpage data
KR20210011243A (en) Method and apparatus for monitoring HTTP/2 header compressed packet
CN108282485A (en) A kind of control user login method, smart television and storage device
US20120315931A1 (en) Short message processing method and apparatus
JP5651558B2 (en) Management server, video distribution control system, and video distribution control method
CN109788251B (en) Video processing method, device and storage medium
US9781010B2 (en) Managing remote devices
CN106209942B (en) Data compression transmission method and system, terminal and server thereof
CN114500243B (en) Data communication method, device, computer readable medium and electronic equipment
CN110572315A (en) Information interaction method and device, robot and storage medium
CN110585724B (en) Method and device for updating form data in game client
CN113220481A (en) Request processing and feedback method and device, computer equipment and readable storage medium
CN116455531A (en) Main and standby redundant communication system and method based on UDP protocol
CN113066139B (en) Picture processing method and device, storage medium and electronic equipment
US9008077B2 (en) Method for quick map recovery in case of error in MoCA
CN110753057B (en) Communication method, device and equipment of fault indicator
CN110290173A (en) A kind of active and standby DNS synchronous method and device
CN113810357B (en) Distributed gateway system, data interaction method and medium of distributed gateway system
CN117354199A (en) Message processing method, publishing terminal, subscribing terminal and computer readable storage medium
CN115426684B (en) Pre-hospital data receiving method
WO2013000371A1 (en) Transparent cache for mobile users
CN113133107B (en) Method and device for synchronizing information
WO2021062690A1 (en) Ethernet frame packet header compression processing method and apparatus, user terminal, base station and medium

Legal Events

Date Code Title Description
E601 Decision to refuse application