KR101524806B1 - Method and Apparatus for processing packet in order to preventing from generating out-of-order packet - Google Patents

Method and Apparatus for processing packet in order to preventing from generating out-of-order packet Download PDF

Info

Publication number
KR101524806B1
KR101524806B1 KR1020140033980A KR20140033980A KR101524806B1 KR 101524806 B1 KR101524806 B1 KR 101524806B1 KR 1020140033980 A KR1020140033980 A KR 1020140033980A KR 20140033980 A KR20140033980 A KR 20140033980A KR 101524806 B1 KR101524806 B1 KR 101524806B1
Authority
KR
South Korea
Prior art keywords
packet
current
current packet
packets
reverse
Prior art date
Application number
KR1020140033980A
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 KR1020140033980A priority Critical patent/KR101524806B1/en
Application granted granted Critical
Publication of KR101524806B1 publication Critical patent/KR101524806B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/34Flow control; Congestion control ensuring sequence integrity, e.g. using sequence numbers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/36Flow control; Congestion control by determining packet size, e.g. maximum transfer unit [MTU]

Landscapes

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

Abstract

Disclosed is a method for processing a packet in order to prevent an out-of-order packet. According to an embodiment of the present invention, the method for processing the out-of-order packet comprises the steps of: receiving a forward direction packet between the forward direction packet which a first host transmits to a second host and a backward direction packet which the second host transmits to the first host as a present packet; comparing the present packet with stored forward direction packets and backward direction packets which are received before the present packet and are stored, and deciding the storage position of the present packet; and storing the present packet based on the decided storage position.

Description

역전 패킷 발생을 방지하는 패킷 처리 방법 및 그 장치{Method and Apparatus for processing packet in order to preventing from generating out-of-order packet}BACKGROUND OF THE INVENTION 1. Field of the Invention [0001] The present invention relates to a packet processing method and a packet processing method,

본 발명의 일 실시예는 패킷 처리에 관한 것으로, 특히 역전 패킷(out-of-order pacekt) 발생을 방지하는 패킷 처리 방법 및 그 장치에 관한 것이다. One embodiment of the present invention relates to packet processing, and more particularly, to a packet processing method and apparatus for preventing out-of-order packet generation.

초고속 인터넷의 보급과 다양한 인터넷 기반 응용(application)의 등장으로 인해 트래픽이 복잡 다양해지고 있다. 이러한 상황 속에서 효과적인 네트워크의 관리를 위해 패킷을 발생시킨 응용을 탐지할 수 있어야 한다. Traffic is becoming more complicated due to the spread of high-speed Internet and the emergence of various Internet-based applications. In this situation, it is necessary to be able to detect the application that generated the packet in order to manage the effective network.

트래픽 분석을 위한 응용을 탐지하는 방법으로는 대표적으로 통계정보 트래픽 분류 방법이 사용되는데, 이 방법에서는 패킷의 크기와 전송 방향, 전송 순서, 캡쳐 시간 등을 사용하여 트래픽을 분류한다. 하지만, 수집된 통계정보를 그대로 사용하여 트래픽을 분류하게 되면 문제가 발생할 수 있는데, 역전 패킷(out-of-order packet)이 발생할 수 있기 때문이다. 역전 패킷이 발생하는 상황에 대해서는 이하에서 도 1을 참조하여 설명한다. As a method to detect applications for traffic analysis, a statistical information traffic classification method is used. In this method, traffic is classified by using packet size, transmission direction, transmission order, and capture time. However, classification of traffic using the collected statistical information may cause a problem because an out-of-order packet may occur. A situation in which a reverse packet is generated will be described below with reference to Fig.

도 1은 역전 패킷의 발생 상황을 설명하기 위하여 도시한 도면이다. FIG. 1 is a diagram for explaining the occurrence of a reverse packet.

도 1에서 호스트 A는 a-b-c-e-g의 순서로 호스트 B에게 패킷을 전송하고 호스트 B는 d-f의 순서로 호스트 A에게 패킷을 전송하고, 3개의 트래픽 수집 지점(C1, C2, C3)에서는 호스트 A와 호스트 B가 전송하는 패킷들을 수집한다. In FIG. 1, host A transmits a packet to host B in abceg order, host B transmits a packet to host A in the order of df, and hosts A and B Lt; / RTI >

이때, 트래픽 수집 지점(C1, C2, C3)에서는 호스트 A와 호스트 B에서 전송한 패킷 순서인 a-b-d-c-e-f-g가 아닌 트래픽 수집 지점(C1, C2, C3)을 지나간 순서대로 패킷이 저장되는데, 트래픽 수집 지점 C1에서는 a-b-c-d-e-f-g의 순서로 패킷이 저장되고, 트래픽 수집 지점 C2에서는 a-d-c-e-b-f-g의 순서로 패킷이 저장되며, 트래픽 수집 지점 C3에서는 a-d-c-e-f-g-b의 순서로 패킷이 저장된다. At this time, the packets are stored in the order of the traffic collection points (C1, C2, C3), not the abdcefg, which is the order of packets transmitted from the host A and the host B, at the traffic collection points (C1, The packets are stored in the order of abcdefg, the packets are stored in the order of adcebfg at the traffic collection point C2, and the packets are stored in the order of adcefgb at the traffic collection point C3.

이와 같이, 트래픽 수집 지점(C1, C2, C3)마다 호스트에서 수집되는 패킷의 순서가 상이하게 됨에 따라, 호스트 A와 호스트 B에서 전송한 패킷 순서와 순서가 어긋나게 트래픽 수집 지점(C1, C2, C3)에서 저장되는 역전 패킷(Out-of-Order Packet)이 발생하게 되는데, 역전 패킷이 발생한 트래픽 수집 지점(C1, C2, C3)의 트래픽을 분석하게 되면 분석 결과에 오류가 생기게 되어 트래픽 분석 결과를 신뢰할 수 없게 된다. As the order of the packets collected by the host becomes different for each traffic collection point (C1, C2, C3), the traffic collection points (C1, C2, C3 The out-of-order packet stored in the traffic collection point (C1, C2, C3) is generated. When the traffic of the traffic collection point (C1, C2, C3) It becomes unreliable.

따라서, 신뢰성 있는 트래픽 분석 결과를 보장하기 위해 패킷 수집 지점에서의 역전 패킷 발생을 방지하기 위한 방안의 필요성이 대두 되었다.
관련 선행 기술로는 대한민국 공개특허공보10-1999-0035839(발명의 명칭: 광대역 무선 통신에서의 링크 계층의 오류 제어방법 및 이를 위한 기록 매체, 공개일자: 1999.08.27.)이 있다.
Therefore, in order to ensure reliable traffic analysis results, a need has arisen for a method for preventing the generation of a reverse packet at a packet collection point.
A related art is Korean Patent Laid-Open Publication No. 10-1999-0035839 (entitled "Error Control Method of Link Layer in Broadband Wireless Communication and Recording Medium Therefor, Aug. 27, 1999)".

본 발명의 일 실시예의 목적은 역전 패킷 발생을 방지함으로써 트래픽 분석 결과의 신뢰도를 향상시킬 수 있는 패킷 처리 방법 및 그 장치를 제공하는 것이다. An object of an embodiment of the present invention is to provide a packet processing method and apparatus that can improve the reliability of a traffic analysis result by preventing the generation of a reverse packet.

상기 목적을 달성하기 위한 본 발명의 일실시예에 따른 역전 패킷(out-of-order packet) 발생을 방지하는 패킷 처리 방법은 제1 호스트가 제2 호스트에게 전송하는 순방향 패킷 및 상기 제2 호스트가 상기 제1 호스트에게 전송하는 역방향 패킷 중에서 상기 순방향 패킷을 현재 패킷으로서 수신하는 단계; 상기 현재 패킷을 상기 현재 패킷 이전에 수신되어 저장된 저장 순방향 패킷들 및 저장 역방향 패킷들과 비교하여 상기 현재 패킷의 저장 위치를 결정하는 단계; 및 상기 결정된 저장 위치에 기초하여, 상기 현재 패킷을 저장하는 단계를 포함한다. According to another aspect of the present invention, there is provided a packet processing method for preventing an out-of-order packet from occurring, comprising: forwarding packets transmitted from a first host to a second host; Receiving the forward packet as a current packet among reverse packets to be transmitted to the first host; Comparing the current packet with stored forward packets and stored reverse packets received prior to the current packet to determine a storage location of the current packet; And storing the current packet based on the determined storage location.

바람직하게는, 상기 현재 패킷의 저장 위치를 결정하는 단계는 상기 현재 패킷, 상기 저장 순방향 패킷들 및 상기 저장 역방향 패킷들의 시퀀스 번호, ACK 번호 및 패킷 길이 값 중 적어도 하나를 비교하여 상기 현재 패킷의 저장 위치를 결정할 수 있다. Advantageously, the step of determining a storage location of the current packet comprises comparing at least one of a sequence number, an ACK number and a packet length value of the current packet, the stored forward packets and the stored reverse packets, The position can be determined.

바람직하게는, 상기 현재 패킷의 저장 위치를 결정하는 단계는 상기 현재 패킷이 상기 제1 호스트 또는 상기 제2 호스트가 전송한 순서와 순서가 어긋나게 수신된 역전 패킷인지를 판단하는 단계; 및 상기 역전 패킷인지 여부에 대한 판단에 기초하여, 상기 현재 패킷의 저장 위치를 결정하는 단계를 포함할 수 있다. The determining of the storage location of the current packet may include determining whether the current packet is a received reverse packet in an order different from the order transmitted by the first host or the second host; And determining a storage location of the current packet based on a determination as to whether the packet is the inverse packet.

바람직하게는, 상기 역전 패킷인지를 판단하는 단계는 상기 저장 순방향 패킷들 중에서 가장 마지막 위치에 저장된 제1 기준 패킷을 검출하는 단계; 상기 현재 패킷의 시퀀스 번호를 상기 제1 기준 패킷의 시퀀스 번호와 비교하는 단계; 및 상기 비교 결과에 기초하여, 상기 현재 패킷이 역전 패킷인지를 판단하는 단계를 포함할 수 있다. Preferably, the step of determining whether the packet is the inverse packet comprises the steps of: detecting a first reference packet stored at a last position among the stored forward packets; Comparing a sequence number of the current packet with a sequence number of the first reference packet; And determining whether the current packet is a reverse packet based on the comparison result.

바람직하게는, 상기 역전 패킷인지 여부에 대한 판단에 기초하여, 상기 현재 패킷의 저장 위치를 결정하는 단계는 상기 현재 패킷이 상기 역전 패킷으로 판단되는 경우에, 상기 현재 패킷을 상기 저장 역방향 패킷들과 순차적으로 비교하여 상기 현재 패킷의 시퀀스 번호와 ACK 번호를 합산한 합산 값과 동일한 값을 가지는 ACK 번호를 가지는 저장 역방향 패킷인 제2 기준 패킷을 검출하는 단계; 및 상기 검출된 제2 기준 패킷의 바로 앞의 위치를 상기 현재 패킷의 저장 위치로 결정할 수 있다. Preferably, the step of determining the storage location of the current packet based on the determination as to whether the packet is in the inverse packet may include determining whether the current packet is the inverse packet, Detecting a second reference packet which is a storage backward packet having an ACK number equal to a sum value obtained by summing up the sequence number of the current packet and the ACK number; And determine a position immediately before the detected second reference packet as a storage position of the current packet.

바람직하게는, 상기 역전 패킷인지 여부에 대한 판단에 기초하여 상기 현재 패킷의 저장 위치를 결정하는 단계는 상기 현재 패킷이 상기 역전 패킷으로 판단되는 경우에, 상기 현재 패킷을 상기 저장 순방향 패킷들과 순차적으로 비교하여 상기 현재 패킷의 위치라고 추정되는 범위인 후보 범위를 설정하는 단계를 더 포함하고, 상기 제2 기준 패킷을 검출하는 단계는 상기 현재 패킷을 상기 후보 범위 내에 존재하는 저장 역방향 패킷들과 순차적으로 비교함으로써 수행될 수 있다. Preferably, the step of determining a storage location of the current packet based on a determination as to whether the packet is a reverse packet may include determining whether the current packet is the inverse packet, Wherein the step of detecting the second reference packet comprises comparing the current packet with the stored reverse packets existing within the candidate range and sequentially . ≪ / RTI >

바람직하게는, 상기 후보 범위를 설정하는 단계는 상기 현재 패킷을 상기 저장 순방향 패킷들과 순차적으로 비교하여 상기 현재 패킷의 시퀀스 번호보다 작은 값을 가지는 시퀀스 번호를 가지는 저장 순방향 패킷을 제1 경계 패킷으로 설정하는 단계; 및 상기 제1 경계 패킷의 바로 뒤의 위치에 저장된 저장 순방향 패킷을 제2 경계 패킷으로 설정함으로써 상기 후보 범위를 설정하는 단계를 포함할 수 있다. Preferably, the step of setting the candidate range sequentially compares the current packet with the stored forward packets to sequentially generate a storage forward packet having a sequence number smaller than the sequence number of the current packet as a first boundary packet ; And setting the candidate range by setting a stored forward packet stored at a position immediately after the first border packet to a second border packet.

바람직하게는, 상기 역전 패킷인지 여부에 대한 판단에 기초하여, 상기 현재 패킷의 저장 위치를 결정하는 단계는 상기 현재 패킷이 상기 역전 패킷으로 판단되는 경우에, 상기 현재 패킷을 상기 저장 순방향 패킷들과 순차적으로 비교하여 상기 현재 패킷의 위치라고 추정되는 범위인 후보 범위를 설정하는 단계; 상기 현재 패킷을 상기 후보 범위 내의 저장 역방향 패킷들과 순차적으로 비교하여 상기 현재 패킷의 시퀀스 번호와 ACK 번호를 합산한 합산 값과 동일한 값을 가지는 ACK 번호를 가지는 저장 역방향 패킷인 제2 기준 패킷을 검출하는 단계; 상기 제2 기준 패킷이 검출되지 않으면, 상기 현재 패킷을 상기 후보 범위 내의 저장 역방향 패킷들과 순차적으로 비교하여 상기 현재 패킷의 시퀀스 번호와 ACK 번호를 합산한 합산 값보다 큰 값을 가지는 ACK 번호를 가지는 저장 역방향 패킷인 제3 기준 패킷을 검출하는 단계; 및 상기 검출된 제3 기준 패킷의 바로 뒤의 위치를 상기 현재 패킷의 저장 위치로 결정하는 단계를 포함할 수 있다. Preferably, the step of determining the storage location of the current packet based on the determination as to whether the packet is in the inverse packet may include determining whether the current packet is the inverse packet, Sequentially setting a candidate range that is estimated as a position of the current packet; Sequentially comparing the current packet with the storage backward packets within the candidate range, and detecting a second reference packet, which is a storage backward packet having an ACK number equal to a sum value obtained by summing the sequence number of the current packet and the ACK number, ; If the second reference packet is not detected, sequentially comparing the current packet with the storage reverse packets in the candidate range, and having an ACK number having a value larger than the sum of the sequence number of the current packet and the ACK number Detecting a third reference packet that is a store reverse packet; And determining a position immediately after the detected third reference packet as a storage position of the current packet.

바람직하게는, 상기 역전 패킷인지 여부에 대한 판단에 기초하여, 상기 현재 패킷의 저장 위치를 결정하는 단계는 상기 현재 패킷이 상기 역전 패킷으로 판단되는 경우에, 상기 현재 패킷을 상기 저장 순방향 패킷들과 순차적으로 비교하여 상기 현재 패킷의 위치라고 추정되는 범위인 후보 범위를 설정하는 단계; 상기 현재 패킷을 상기 후보 범위 내의 저장 역방향 패킷들과 순차적으로 비교하여 상기 현재 패킷의 시퀀스 번호와 ACK 번호를 합산한 합산 값과 동일한 값을 가지는 ACK 번호를 가지는 저장 역방향 패킷인 제2 기준 패킷을 검출하는 단계; 상기 제2 기준 패킷이 검출되지 않으면, 상기 현재 패킷을 상기 후보 범위 내의 저장 역방향 패킷들과 순차적으로 비교하여 상기 현재 패킷의 시퀀스 번호와 ACK 번호를 합산한 합산 값보다 큰 값을 가지는 ACK 번호를 가지는 저장 역방향 패킷인 제3 기준 패킷을 검출하는 단계; 및 상기 제3 기준 패킷이 검출되지 않으면, 상기 후보 범위에서 가장 앞에 위치하는 저장 순방향 패킷 바로 뒤의 위치를 상기 현재 패킷의 저장 위치로 결정하는 단계를 포함할 수 있다. Preferably, the step of determining the storage location of the current packet based on the determination as to whether the packet is in the inverse packet may include determining whether the current packet is the inverse packet, Sequentially setting a candidate range that is estimated as a position of the current packet; Sequentially comparing the current packet with the storage backward packets within the candidate range, and detecting a second reference packet, which is a storage backward packet having an ACK number equal to a sum value obtained by summing the sequence number of the current packet and the ACK number, ; If the second reference packet is not detected, sequentially comparing the current packet with the storage reverse packets in the candidate range, and having an ACK number having a value larger than the sum of the sequence number of the current packet and the ACK number Detecting a third reference packet that is a store reverse packet; And determining a position immediately after the forward stored forward packet in the candidate range as a storage position of the current packet if the third reference packet is not detected.

상기 목적을 달성하기 위한 본 발명의 일 실시예에 따른 역전 패킷 발생을 방지하는 패킷 처리 장치는 제1 호스트가 제2 호스트에게 전송하는 순방향 패킷 및 상기 제2 호스트가 상기 제1 호스트에게 전송하는 역방향 패킷 중에서 상기 순방향 패킷을 현재 패킷으로서 수신하는 수신부; 상기 현재 패킷을 상기 현재 패킷 이전에 수신되어 저장된 저장 순방향 패킷들 및 저장 역방향 패킷들과 비교하여 상기 현재 패킷의 저장 위치를 결정하는 위치 결정부; 및 상기 결정된 저장 위치에 기초하여, 상기 현재 패킷을 저장하는 저장부를 포함한다. According to another aspect of the present invention, there is provided a packet processing apparatus for preventing reverse packet generation, comprising: a forward packet transmitted from a first host to a second host and a forward packet transmitted from the second host to the first host; A receiving unit for receiving the forward packet as a current packet among the packets; A positioning unit for comparing the current packet with the stored forward packets and the stored backward packets received before the current packet to determine a storage position of the current packet; And a storage unit for storing the current packet based on the determined storage location.

본 발명의 일 실시예에 따르면 역전 패킷의 발생을 방지함으로써 트래픽 분석에 있어서의 트래픽의 미탐지 및 오탐지 가능성을 최소화할 수 있고, 이에 따라 트래픽 분석 결과의 신뢰도를 향상시킬 수 있는 효과가 있다. According to an embodiment of the present invention, it is possible to minimize the likelihood of undetected and false positives in the traffic analysis by preventing the generation of the inversion packet, thereby improving the reliability of the traffic analysis result.

도 1은 역전 패킷의 발생 상황을 설명하기 위하여 도시한 도면이다.
도 2는 본 발명의 일 실시예에 따른 역전 패킷 발생을 방지하는 패킷 처리 장치를 설명하기 위하여 도시한 도면이다.
도 3은 본 발명의 일 실시예에 따른 역전 패킷 발생을 방지하는 패킷 처리 방법을 설명하기 위하여 도시한 흐름도이다.
도 4는 본 발명의 제2 실시예에 따른 역전 패킷 발생을 방지하는 패킷 처리 방법을 설명하기 위하여 도시한 흐름도이다.
도 5는 본 발명의 일 실시예에 따라 역전 패킷을 판단하는 방법을 설명하기 위하여 도시한 흐름도이다.
도 6a 및 도 6b는 본 발명의 제2 실시예에 따른 역전 패킷 발생을 방지하는 패킷 처리 방법을 설명하기 위하여 도시한 도면이다.
도 7은 본 발명의 제3 실시예에 따른 역전 패킷 발생을 방지하는 패킷 처리 방법을 설명하기 위하여 도시한 흐름도이다.
도 8은 본 발명의 제3 실시예에 따른 역전 패킷 발생을 방지하는 패킷 처리 방법에 대한 의사코드를 나타내는 도면이다.
도 9는 본 발명의 제3 실시예에 따른 역전 패킷 발생을 방지하는 패킷 처리 방법을 도 1의 트래픽 수집 지점 C3에 적용하여 설명하기 위하여 도시한 도면이다.
도 10은 본 발명의 제3 실시예에 따른 역전 패킷 발생을 방지하는 패킷 처리 방법을 도 1의 트래픽 수집 지점 C3에 적용한 결과를 설명하기 위하여 도시한 도면이다.
도 11은 본 발명의 일 실시예에 따른 역전 패킷 발생을 방지하는 패킷 처리 장치를 이용한 패킷 분석 시스템을 설명하기 위하여 도시한 도면이다.
FIG. 1 is a diagram for explaining the occurrence of a reverse packet.
FIG. 2 is a diagram for explaining a packet processing apparatus for preventing reverse packet generation according to an embodiment of the present invention. Referring to FIG.
3 is a flowchart illustrating a packet processing method for preventing reverse packet generation according to an exemplary embodiment of the present invention.
4 is a flowchart illustrating a packet processing method for preventing reverse packet generation according to the second embodiment of the present invention.
5 is a flowchart illustrating a method of determining a reverse packet according to an embodiment of the present invention.
6A and 6B are diagrams for explaining a packet processing method for preventing reverse packet generation according to the second embodiment of the present invention.
7 is a flowchart illustrating a packet processing method for preventing reverse packet generation according to the third embodiment of the present invention.
8 is a diagram illustrating pseudo code for a packet processing method for preventing reverse packet generation according to the third embodiment of the present invention.
FIG. 9 is a diagram for explaining a packet processing method for preventing reverse packet generation according to the third embodiment of the present invention, by applying it to the traffic collection point C3 of FIG.
10 is a diagram for explaining a result of applying a packet processing method for preventing reverse packet generation according to the third embodiment of the present invention to the traffic collection point C3 of FIG.
11 is a diagram for explaining a packet analysis system using a packet processing apparatus for preventing reverse packet generation according to an embodiment of the present invention.

본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다. While the invention is susceptible to various modifications and alternative forms, specific embodiments thereof are shown by way of example in the drawings and will herein be described in detail. It should be understood, however, that the invention is not intended to be limited to the particular embodiments, but includes all modifications, equivalents, and alternatives falling within the spirit and scope of the invention. Like reference numerals are used for like elements in describing each drawing.

제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다. The terms first, second, A, B, etc. may be used to describe various elements, but the elements should not be limited by the terms. The terms are used only for the purpose of distinguishing one component from another. For example, without departing from the scope of the present invention, the first component may be referred to as a second component, and similarly, the second component may also be referred to as a first component. And / or < / RTI > includes any combination of a plurality of related listed items or any of a plurality of related listed items.

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

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

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless defined otherwise, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art to which this invention belongs. Terms such as those defined in commonly used dictionaries are to be interpreted as having a meaning consistent with the contextual meaning of the related art and are to be interpreted as either ideal or overly formal in the sense of the present application Do not.

이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.Hereinafter, preferred embodiments according to the present invention will be described in detail with reference to the accompanying drawings.

도 2는 본 발명의 일 실시예에 따른 역전 패킷 발생을 방지하는 패킷 처리 장치를 설명하기 위하여 도시한 도면이다. 도 2를 참조하면, 본 발명의 일 실시예에 따른 패킷 처리 장치(200)는 수신부(210), 위치 결정부(220) 및 저장부(230)를 포함한다. FIG. 2 is a diagram for explaining a packet processing apparatus for preventing reverse packet generation according to an embodiment of the present invention. Referring to FIG. Referring to FIG. 2, a packet processing apparatus 200 according to an embodiment of the present invention includes a receiving unit 210, a positioning unit 220, and a storage unit 230.

수신부(210)는 제1 호스트(미도시)가 제2 호스트(미도시)에게 전송하는 순방향 패킷 및 제2 호스트가 제1 호스트에게 전송하는 역방향 패킷 중에서 순방향 패킷을 현재 패킷으로서 수신한다.The receiving unit 210 receives the forward packet transmitted from the first host (not shown) to the second host (not shown) and the reverse packet transmitted from the second host to the first host as a current packet.

다른 실시예에서는, 현재 패킷은 항상 순방향 패킷으로 설정하고, 현재 패킷과 반대 방향으로 수신된 패킷은 역방향 패킷으로 설정할 수도 있다. In another embodiment, the current packet may always be set as a forward packet, and the packet received in the opposite direction to the current packet may be set as a reverse packet.

위치 결정부(220)는 현재 패킷을 그 현재 패킷 이전에 수신되어 저장된 저장 순방향 패킷들 및 저장 역방향 패킷들과 비교하여 현재 패킷의 저장 위치를 결정한다. The location determination unit 220 compares the current packet with the stored forward packets and the stored reverse packets received before and stored in the current packet to determine the storage location of the current packet.

즉, 저장 순방향 패킷은 현재 패킷이 수신되기 전에 현재 패킷과 동일한 방향으로 수신되어 저장된 패킷을 나타내고, 저장 역방향패킷은 현재 패킷이 수신되기 전에 현재 패킷과 반대 방향으로 수신되어 저장된 패킷을 나타낸다. That is, the stored forward packet indicates a packet received and stored in the same direction as the current packet before the current packet is received, and the stored reverse packet indicates a packet received and stored in the opposite direction to the current packet before the current packet is received.

이때, 위치 결정부(220)는 현재 패킷, 저장 순방향 패킷들 및 저장 역방향 패킷들의 시퀀스 번호, ACK 번호 및 패킷 길이 값 중 적어도 하나를 비교하여 현재 패킷의 저장 위치를 결정할 수 있다. At this time, the location determination unit 220 may compare at least one of the sequence number, the ACK number, and the packet length value of the current packet, the stored forward packets, and the stored reverse packets to determine the storage location of the current packet.

저장부(230)는 그 결정된 저장 위치에 기초하여 현재 패킷을 저장한다. The storage unit 230 stores the current packet based on the determined storage location.

도 3은 본 발명의 일 실시예에 따른 역전 패킷 발생을 방지하는 패킷 처리 방법을 설명하기 위하여 도시한 흐름도이다. 3 is a flowchart illustrating a packet processing method for preventing reverse packet generation according to an exemplary embodiment of the present invention.

단계 310에서는, 제1 호스트가 제2 호스트에게 전송하는 순방향 패킷을 패킷 처리 장치(200)가 현재 패킷으로서 수신한다. In step 310, the packet processing apparatus 200 receives, as a current packet, a forward packet transmitted from the first host to the second host.

단계 320에서는, 패킷 처리 장치(200)가 현재 패킷을 그 현재 패킷 이전에 수신되어 저장된 저장 순방향 패킷들 및 저장 역방향 패킷들과 비교하여 현재 패킷의 저장 위치를 결정한다. In step 320, the packet processing device 200 compares the current packet with stored forward packets and stored reverse packets received prior to the current packet to determine the storage location of the current packet.

단계 330에서는, 패킷 처리 장치(200)가 그 결정된 저장 위치에 기초하여 현재 패킷을 저장한다. In step 330, the packet processing device 200 stores the current packet based on the determined storage location.

도 4는 본 발명의 제2 실시예에 따른 역전 패킷 발생을 방지하는 패킷 처리 방법을 설명하기 위하여 도시한 흐름도이다. 4 is a flowchart illustrating a packet processing method for preventing reverse packet generation according to the second embodiment of the present invention.

단계 410에서는, 패킷 처리 장치(200)가 순방향 패킷 또는 역방향 패킷을 현재 패킷으로서 수신한다. In step 410, the packet processing device 200 receives the forward packet or the reverse packet as the current packet.

단계 420에서는, 패킷 처리 장치(200)가 현재 패킷이 제1 호스트 또는 제2 호스트가 전송한 순서와 순서가 어긋나게 수신된 역전 패킷인지를 판단한다. In step 420, the packet processing apparatus 200 determines whether the current packet is a received inverted packet in an order different from the order transmitted by the first host or the second host.

이때, 패킷 처리 장치(200)는 현재 패킷을 저장 순방향 패킷들 중에서 가장 마지막 위치에 저장된 제1 기준 패킷과 비교함으로써, 현재 패킷이 역전 패킷인지를 판단하는데 이에 대한 구체적인 동작에 대한 설명은 도 5를 참조하여 후술한다. At this time, the packet processing apparatus 200 determines whether the current packet is a reverse packet by comparing the current packet with the first reference packet stored at the last position among the stored forward packets. Will be described later.

단계 432에서는, 현재 패킷이 역전 패킷으로 판단되는 경우에, 패킷 처리 장치(200)가 현재 패킷을 저장 순방향 패킷들과 순차적으로 비교하여 현재 패킷의 위치라고 추정되는 범위인 후보 범위를 설정한다. In step 432, when the current packet is determined to be an inverse packet, the packet processing apparatus 200 sequentially compares the current packet with the stored forward packets to set a candidate range that is a range estimated to be the current packet position.

이때, 패킷 처리 장치(200)는 현재 패킷을 저장 순방향 패킷들과 순차적으로 비교하여 현재 패킷의 시퀀스 번호보다 작은 값을 가지는 시퀀스 번호를 가지는 저장 순방향 패킷을 제1 경계 패킷으로 설정한 후 그 제1 경계 패킷의 바로 뒤의 위치에 저장된 저장 순방향 패킷을 제2 경계 패킷으로 설정함으로써 후보 범위를 설정할 수 있다. At this time, the packet processing apparatus 200 sequentially compares the current packet with the stored forward packets and sets a storage forward packet having a sequence number having a value smaller than the sequence number of the current packet as a first boundary packet, It is possible to set the candidate range by setting the stored forward packet stored at the position immediately after the boundary packet as the second boundary packet.

다른 실시예에서는, 단계 432의 후보 범위를 설정하는 단계가 생략될 수 있다. In another embodiment, the step of setting the candidate range of step 432 may be omitted.

단계 434에서는, 현재 패킷이 역전 패킷이 아니라고 판단되는 경우에, 패킷 처리 장치(200)가 저장 순방향 패킷들 중 가장 마지막 위치를 현재 패킷의 저장 위치로 결정한다.In step 434, when it is determined that the current packet is not an inverted packet, the packet processing device 200 determines the last position among the stored forward packets as the storage location of the current packet.

단계 440에서는, 패킷 처리 장치(200)가 현재 패킷을 후보 범위 내의 저장 역방향 패킷들과 순차적으로 비교하여 현재 패킷의 시퀀스 번호와 ACK 번호를 합산한 합산 값과 동일한 값을 가지는 ACK 번호를 가지는 저장 역방향 패킷인 제2 기준 패킷을 검출한다. In step 440, the packet processing apparatus 200 sequentially compares the current packet with the storage backward packets within the candidate range, and stores in the storage reverse direction having the ACK number having the same value as the sum of the current packet's sequence number and the ACK number And detects a second reference packet that is a packet.

만일, 단계 432의 후보 범위를 설정하는 단계가 생략된다면 패킷 처리 장치(200)는 후보 범위와 상관 없이 현재 패킷을 저장 역방향 패킷들 모두와 순차적으로 비교하여 현재 패킷의 시퀀스 번호와 ACK 번호를 합산한 합산 값과 동일한 값을 가지는 ACK 번호를 가지는 저장 역방향 패킷인 제2 기준 패킷을 검출할 수 있다. If the step of setting the candidate range of step 432 is omitted, the packet processing apparatus 200 sequentially compares the current packet with all the storage reverse packets regardless of the candidate range, and adds the sequence number of the current packet and the ACK number It is possible to detect a second reference packet which is a storage backward packet having an ACK number having the same value as the sum value.

단계 450에서는, 패킷 처리 장치(200)가 그 검출된 제2 기준 패킷의 바로 앞의 위치를 현재 패킷의 저장 위치로 결정한다. In step 450, the packet processing device 200 determines the position immediately before the detected second reference packet as the storage position of the current packet.

단계 460에서는, 패킷 처리 장치(200)가 그 결정된 저장 위치에 기초하여 현재 패킷을 저장한다. In step 460, the packet processing device 200 stores the current packet based on the determined storage location.

정리하면, 패킷 처리 장치(200)는 현재 패킷을 저장 순방향 패킷들과 비교하여 후보 범위를 설정하고, 현재 패킷을 후보 범위 내의 역방향 패킷들과 비교하여 현재 패킷의 최종적인 저장 위치를 결정하여 저장하게 된다. 이와 같이, 본 발명의 제2 실시예에 따른 패킷 처리 장치(200)는 저장 순방향 패킷들과 저장 역방향 패킷들을 모두 고려하여 현재 패킷의 정확한 위치를 찾아내어 저장함으로써, 역전 패킷을 발생 가능성을 최소화할 수 있고, 결과적으로 트래픽 분석 결과의 신뢰성을 향상시킬 수 있다. In summary, the packet processing apparatus 200 compares the current packet with the stored forward packets to set the candidate range, compares the current packet with the reverse packets in the candidate range, and determines and stores the final storage location of the current packet do. As described above, the packet processing apparatus 200 according to the second embodiment of the present invention finds and stores the exact position of the current packet considering both the forward forward packets and the backward forward packets, thereby minimizing the possibility of generating the reverse packet And as a result, the reliability of the traffic analysis result can be improved.

도 5는 본 발명의 일 실시예에 따라 역전 패킷을 판단하는 방법을 설명하기 위하여 도시한 흐름도이다. 5 is a flowchart illustrating a method of determining a reverse packet according to an embodiment of the present invention.

단계 510에서는, 패킷 처리 장치(200)가 저장 순방향 패킷들 중에서 가장 마지막 위치에 저장된 제1 기준 패킷을 검출한다. In step 510, the packet processing apparatus 200 detects a first reference packet stored in the last position among the stored forward packets.

이때, 제1 기준 패킷은 현재 패킷과 가장 가까운 위치에 존재하는 패킷이 된다. At this time, the first reference packet is a packet that is closest to the current packet.

단계 520에서는, 패킷 처리 장치(200)가 현재 패킷의 시퀀스 번호를 제1 기준 패킷의 시퀀스 번호와 비교한다. In step 520, the packet processing device 200 compares the sequence number of the current packet with the sequence number of the first reference packet.

단계 530에서는, 패킷 처리 장치(200)가 그 비교 결과에 기초하여 현재 패킷이 역전 패킷인지를 판단한다. In step 530, the packet processing device 200 determines whether the current packet is a reverse packet based on the comparison result.

보다 구체적으로는, 현재 패킷의 시퀀스 번호가 제1 기준 패킷의 시퀀스 번호보다 작으면 패킷 처리 장치(200)가 현재 패킷을 역전 패킷으로 판단하고, 현재 패킷의 시퀀스 번호가 제1 기준 패킷의 시퀀스 번호보다 크면 패킷 처리 장치(200)가 현재 패킷을 역전 패킷이 아닌 것으로 판단한다. More specifically, if the sequence number of the current packet is smaller than the sequence number of the first reference packet, the packet processing apparatus 200 determines that the current packet is an inverted packet, and that the sequence number of the current packet is the sequence number of the first reference packet The packet processing apparatus 200 determines that the current packet is not an inverted packet.

도 6a 및 도 6b는 본 발명의 제2 실시예에 따른 역전 패킷 발생을 방지하는 패킷 처리 방법을 설명하기 위하여 도시한 도면이다. 6A and 6B are diagrams for explaining a packet processing method for preventing reverse packet generation according to the second embodiment of the present invention.

도 6a를 참조하면, 첫 번째 단계에서 패킷 처리 장치(200)에 저장 순방향 패킷들인 패킷 F1, 패킷 F3, 패킷 F4, 패킷 F5와 저장 역방향 패킷들인 패킷 B1, 패킷 B2가 저장된 상태에서 순방향 패킷인 현재 패킷 F2가 수신된다. Referring to FIG. 6A, in a first step, packets F1, F3, F4, and F5 stored in the packet processing apparatus 200 and packets B1 and B2, which are storage backward packets, are stored in a forward packet Packet F2 is received.

두 번째 단계에서, 현재 패킷 F2와 순방향 패킷들을 패킷 F5, 패킷 F4, 패킷 F3, 패킷 F1 순으로 순차적으로 비교하여, 현재 패킷 F2와 방향이 같고 현재 패킷 F2보다 저장된 순서가 빠른 순방향 패킷들 중에서 가장 마지막 위치에 저장된 순방향 패킷인 패킷 F5를 제1 기준 패킷으로서 검출한다. In the second step, the current packet F2 and the forward packets are sequentially compared in the order of the packet F5, the packet F4, the packet F3, and the packet F1, so that the forward packet having the same direction as the current packet F2, And detects a packet F5, which is a forward packet stored at the last position, as a first reference packet.

세 번째 단계에서, 현재 패킷 F2의 시퀀스 번호와 패킷 F5의 시퀀스 번호를 비교한 결과, 패킷 F5의 시퀀스 번호가 F2의 시퀀스 번호보다 더 큰 것으로 판단하여 현재 패킷 F2를 역전 패킷으로 판단한다. As a result of comparing the sequence number of the current packet F2 with the sequence number of the packet F5 in the third step, it is determined that the sequence number of the packet F5 is larger than the sequence number of the packet F5, and the current packet F2 is determined as the inverse packet.

네 번째 단계에서, 현재 패킷 F2와 방향이 같은 순방향 패킷들 중에서 현재 패킷 F2의 시퀀스 번호보다 작은 시퀀스 번호를 가지는 저장 순방향 패킷 F1을 제1 경계 패킷으로 설정한다. In the fourth step, the storage forward packet F1 having the sequence number smaller than the sequence number of the current packet F2 among forward packets having the same direction as the current packet F2 is set as the first boundary packet.

다섯 번째 단계에서, 제1 경계 패킷인 패킷 F1의 바로 뒤의 위치에 저장된 저장 순방향 패킷인 패킷 F3를 제2 경계 패킷으로서 검출한다. In the fifth step, a packet F3, which is a stored forward packet stored at a position immediately after the packet F1, which is the first boundary packet, is detected as the second boundary packet.

도 6b를 참조하면, 여섯 번째 단계에서 제1 경계 패킷 F1과 제2 경계 패킷 F3 사이에 포함되는 패킷들을 후보 범위로 설정한다. Referring to FIG. 6B, in the sixth step, the packets included between the first border packet F1 and the second border packet F3 are set as candidate ranges.

일곱 번째 단계에서, 후보 범위 내의 패킷들 중에서 현재 패킷 F2와 방향이 다른 저장 역방향 패킷들 중에서 현재 패킷 F2의 시퀀스 번호와 패킷 길이 값을 합산한 합산 값과 동일한 크기를 가지는 ACK 번호를 가진 저장 역방향 패킷 B2를 제2 기준 패킷으로서 검출한다. In the seventh step, among the packets in the candidate range, among the storage reverse packets different in direction from the current packet F2, the storage reverse packet having the ACK number having the same size as the sum value of the sequence number and the packet length value of the current packet F2 B2 as a second reference packet.

여덟 번째 단계에서, 그 검출된 제2 기준 패킷 B2의 바로 앞의 위치를 현재 패킷의 저장 위치로 결정하여 저장한다. In the eighth step, the position immediately before the detected second reference packet B2 is determined and stored as the storage position of the current packet.

도 6B의 가장 마지막 줄에는 첫번째 단계 내지 여덜 번째 단계의 모든 패킷 처리가 완료된 후에, 저장된 패킷들의 순서를 도시한 것으로, 역전 패킷은 존재하지 않게 된다. The last line of FIG. 6B shows the order of the stored packets after all the packets of the first to fourth stages have been processed, and no reverse packet exists.

도 7은 본 발명의 제3 실시예에 따른 역전 패킷 발생을 방지하는 패킷 처리 방법을 설명하기 위하여 도시한 흐름도이다. 7 is a flowchart illustrating a packet processing method for preventing reverse packet generation according to the third embodiment of the present invention.

단계 710에서는, 패킷 처리 장치(200)가 순방향 패킷을 현재 패킷으로서 수신한다. In step 710, the packet processing device 200 receives the forward packet as the current packet.

단계 720에서는, 패킷 처리 장치(200)가 현재 패킷이 역전 패킷인지를 판단한다. In step 720, the packet processing device 200 determines whether the current packet is an inverse packet.

단계 732에서는, 현재 패킷이 역전 패킷으로 판단되는 경우에, 패킷 처리 장치(200)가 현재 패킷과 저장 순방향 패킷들을 순차적으로 비교하여 현재 패킷의 위치라고 추정되는 범위인 후보 범위를 설정한다. In step 732, when the current packet is determined to be an inverse packet, the packet processing apparatus 200 sequentially compares the current packet and the stored forward packets to set a candidate range that is a range estimated to be the current packet position.

단계 734에서는, 현재 패킷이 역전 패킷이 아니라고 판단되는 경우에, 패킷 처리 장치(200)가 저장 순방향 패킷들 중 가장 마지막 위치에 저장된 제1 기준 패킷의 뒤의 위치를 현재 패킷의 저장 위치를 결정한다. In step 734, when it is determined that the current packet is not an inverted packet, the packet processing device 200 determines the storage position of the current packet at a position after the first reference packet stored at the last of the stored forward packets .

단계 740에서는, 패킷 처리 장치(200)가 현재 패킷을 후보 범위 내의 저장 역방향 패킷들과 순차적으로 비교하여 현재 패킷의 시퀀스 번호와 ACK 번호를 합산한 합산 값과 동일한 값을 가지는 ACK 번호를 가지는 저장 역방향 패킷인 제2 기준 패킷을 검출한다. In step 740, the packet processing apparatus 200 sequentially compares the current packet with the storage backward packets within the candidate range, and stores in the storage reverse direction having an ACK number having the same value as the sum of the current packet's sequence number and the ACK number And detects a second reference packet that is a packet.

단계 750에서는, 패킷 처리 장치(200)가 단계 740에서 제2 기준 패킷이 검출되었는지를 판단한다. In step 750, the packet processing device 200 determines in step 740 whether a second reference packet has been detected.

단계 762에서는, 제2 기준 패킷이 검출되지 않았다고 판단되면, 패킷 처리 장치(200)가 현재 패킷을 후보 범위 내의 저장 역방향 패킷들과 순차적으로 비교하여 현재 패킷의 시퀀스 번호와 ACK 번호를 합산한 합산 값보다 큰 값을 가지는 ACK 번호를 가지는 저장 역방향 패킷인 제3 기준 패킷을 검출한다. In step 762, when it is determined that the second reference packet is not detected, the packet processing apparatus 200 sequentially compares the current packet with the storage reverse packets in the candidate range, and adds the sum of the sequence number of the current packet and the ACK number And detects a third reference packet which is a store reverse packet having an ACK number having a larger value.

단계 764에서는, 제2 기준 패킷이 검출되었다고 판단되면, 패킷 처리 장치(200)가 그 검출된 제2 기준 패킷의 바로 앞의 위치를 현재 패킷의 저장 위치로 결정한다. In step 764, when it is determined that the second reference packet is detected, the packet processing device 200 determines the position immediately before the detected second reference packet as the storage position of the current packet.

단계 770에서는, 패킷 처리 장치(200)가 단계 762에서 제3 기준 패킷이 검출되었는지를 판단한다. In step 770, the packet processing device 200 determines in step 762 whether a third reference packet has been detected.

단계 782에서는, 제3 기준 패킷이 검출되었다고 판단되면, 패킷 처리 장치(200)가 그 검출된 제3 기준 패킷의 바로 뒤의 위치를 현재 패킷의 저장 위치로 결정한다. In step 782, when it is determined that the third reference packet has been detected, the packet processing device 200 determines the position immediately after the detected third reference packet as the storage position of the current packet.

단계 784에서는, 제3 기준 패킷이 검출되지 않았다고 판단되면, 패킷 처리 장치(200)가 후보 범위에서 가장 앞에 위치하는 저장 순방향 패킷 바로 뒤의 위치를 현재 패킷의 저장 위치로 결정한다. In step 784, if it is determined that the third reference packet is not detected, the packet processing device 200 determines the position immediately after the storage forward packet located in the frontmost position in the candidate range as the storage location of the current packet.

단계 790에서는, 패킷 처리 장치(200)가 그 결정된 저장 위치에 기초하여 현재 패킷을 저장한다.In step 790, the packet processing device 200 stores the current packet based on the determined storage location.

도 8은 본 발명의 제3 실시예에 따른 역전 패킷 발생을 방지하는 패킷 처리 방법에 대한 의사코드를 나타내는 도면이다. 8 is a diagram illustrating pseudo code for a packet processing method for preventing reverse packet generation according to the third embodiment of the present invention.

도 8을 참조하면, P(n)은 TCP 플로우상의 n번째 패킷을 나타내고, P(n).seq는 n번째 패킷의 시퀀스 번호를 나타내고, P(n).ack은 n번째 패킷의 ACK 번호를 나타내고, P(n).dir은 n번째 패킷의 방향을 나타내고, P(n).len은 n번째 패킷의 패킷 길이(페이로드 길이) 값을 나타낸다. 8, P (n) represents the nth packet on the TCP flow, P (n) .seq represents the sequence number of the nth packet, P (n) .ack represents the ACK number of the nth packet P (n) .dir represents the direction of the nth packet, and P (n) .len represents the packet length (payload length) value of the nth packet.

의사 코드의 첫 번째 줄은 본 의사 코드가 역전 패킷 문제를 해결하기 위한 처리 절차임을 나타낸다. The first line of the pseudocode indicates that this pseudocode is a procedure for resolving the inverse packet problem.

두 번째 줄에서, n번째 패킷 P(n)이 현재 패킷으로서 수신된다. In the second line, the nth packet P (n) is received as the current packet.

세 번째 줄에서, 현재 패킷 P(n)과 방향이 같고 현재 패킷 P(n)보다 저장된 순서가 빠른 저장 순방향 패킷들 중에서 가장 마지막 위치에 저장된 순방향 패킷인 제1 기준 패킷 P(k)를 검출한다. In the third line, the first reference packet P (k), which is a forward packet stored in the last position among the fast forward stored forward packets having the same direction as the current packet P (n) and stored in the same order as the current packet P (n) .

네 번째 줄에서, 현재 패킷 P(n)의 시퀀스 번호보다 제1 기준 패킷 P(k)의 시퀀스 번호가 크면 현재 패킷 P(n)을 역전 패킷으로 판단한다. In the fourth line, if the sequence number of the first reference packet P (k) is larger than the sequence number of the current packet P (n), the current packet P (n) is determined as an inverse packet.

여섯 번째 줄에서, 현재 패킷 P(n)과 방향이 같은 순방향 패킷들 중에서 현재 패킷 P(n)의 시퀀스 번호보다 작은 시퀀스 번호를 가지는 저장 순방향 패킷 P(i)를 제1 경계 패킷으로서 검출한다. In the sixth line, a forward forward packet P (i) having a sequence number smaller than the sequence number of the current packet P (n) among forward packets having the same direction as the current packet P (n) is detected as the first boundary packet.

일곱 번째 줄에서, 제1 경계 패킷인 P(i)의 바로 뒤의 위치에 저장된 저장 순방향 패킷인 패킷 P(j)를 제2 경계 패킷으로서 검출한다. In the seventh line, a packet P (j), which is a stored forward packet stored at a position immediately after the first boundary packet P (i), is detected as the second boundary packet.

여덟 번째 줄에서 현재 패킷 P(n)을 제1 경계 패킷인 P(i)와 제2 경계 패킷 P(j)로 구성되는 후보 범위 내에 위치시키기 위하여, 열번째 줄 내지 열 세번째 줄의 조건에 해당하는 패킷인 P(m)을 검출하는 프로세스를 패킷 P(j-1)과 패킷 P(i+1)사이의 패킷들에 대하여 순차적으로 적용한다. In order to locate the current packet P (n) in the eighth line within the candidate range consisting of the first boundary packet P (i) and the second boundary packet P (j), the condition of the tenth line to the thirteenth line (J-1) and the packet P (i + 1) in order to detect the packet P (m).

열 번째 줄에서, 후보 범위 내에 존재하는 패킷 P(n)과 방향이 다른 저장 역방향 패킷들 중에서 현재 패킷 P(n)의 시퀀스 번호와 패킷 길이 값을 합산한 합산 값과 동일한 크기를 가지는 ACK 번호를 가진 저장 역방향 패킷 P(m)을 제2 기준 패킷으로서 검출한다. In the tenth line, an ACK number having the same size as the summation value of the sequence number of the current packet P (n) and the packet length value among the storage reverse packets different in direction from the packet P (n) existing in the candidate range And detects the stored reverse packet P (m) as the second reference packet.

열 한번째 줄에서, 그 검출된 제2 기준 패킷 P(m)의 바로 앞의 위치를 현재 패킷 P(n)의 저장 위치로 결정하여 저장한다. In the first row, the position immediately before the detected second reference packet P (m) is determined as the storage position of the current packet P (n) and is stored.

열 두번째 줄에서, 제2 기준 패킷 P(m)에 해당하는 패킷이 존재하지 않으면, 후보 범위 내에 존재하는 패킷 P(n)과 방향이 다른 저장 역방향 패킷들 중에서 현재 패킷의 시퀀스 번호와 ACK 번호를 합산한 합산 값보다 큰 값을 가지는 ACK 번호를 가진 저장 역방향 패킷 P(m)을 제3 기준 패킷으로서 검출한다. If there is no packet corresponding to the second reference packet P (m) in the twelfth row, the sequence number and the ACK number of the current packet among the storage reverse packets having a different direction from the packet P (n) (M) having an ACK number having a value larger than the summed sum value as a third reference packet.

열 세번째 줄에서, 그 검출된 제3기준 패킷 P(m)의 바로 뒤의 위치를 현재 패킷 P(n)의 저장 위치로 결정하여 저장한다. In the thirteenth line, the position immediately after the detected third reference packet P (m) is determined and stored as the storage position of the current packet P (n).

열 여섯번째 줄에서, 제2 기준 패킷 P(m) 또는 제3 기준 패킷 P(m)에 해당하는 패킷이 검출되지 않으면, 제1 경계 패킷인 P(i)의 바로 뒤의 위치를 현재 패킷 P(n)의 저장 위치로 결정하여 저장한다. In the sixteenth line, if a packet corresponding to the second reference packet P (m) or the third reference packet P (m) is not detected, the position immediately after the first boundary packet P (i) (n) is stored and stored.

열 여덟번째 줄은 모든 처리 절차가 완료됨을 나타낸다. The eighteenth line indicates that all procedures are complete.

도 9는 본 발명의 제3 실시예에 따른 역전 패킷 발생을 방지하는 패킷 처리 방법을 도 1의 트래픽 수집 지점 C3에 적용하여 설명하기 위하여 도시한 도면이다. FIG. 9 is a diagram for explaining a packet processing method for preventing reverse packet generation according to the third embodiment of the present invention, by applying it to the traffic collection point C3 of FIG.

도 9를 참조하면, 도 1의 트래픽 수집 지점 C3에서 a-d-c-e-f-g 순서로 패킷들이 저장된 상태에서, 현재 패킷 b가 수신된 것을 나타낸다. Referring to FIG. 9, in the state where packets are stored in the order of a-d-c-e-f-g at the traffic collection point C3 of FIG. 1, the current packet b is received.

첫 번째 단계에서, 현재 패킷 b의 시퀀스 번호 40이 제1 기준 패킷 g의 시퀀스 번호 3100보다 작으므로 현재 패킷 b가 역전 패킷임을 알 수 있다. In the first step, since the sequence number 40 of the current packet b is smaller than the sequence number 3100 of the first reference packet g, it can be seen that the current packet b is the inverse packet.

두 번째 단계에서, 현재 패킷 b보다 작은 시퀀스 번호를 가지는 저장 순방향 패킷은 패킷 a 뿐이므로 패킷 a가 제1 경계 패킷이 되고 패킷 a의 바로 뒤에 위치하는 저장 순방향 패킷 c가 제2 경계 패킷이 됨으로써, 후보 범위는 패킷 a에서 패킷 c까지로 설정된다. In the second stage, since the storage forward packet having the sequence number smaller than the current packet b is only the packet a, the packet a becomes the first boundary packet and the storage forward packet c immediately after the packet a becomes the second boundary packet, The candidate range is set from packet a to packet c.

세 번째 단계에서, 후보 범위(패킷 a 내지 패킷 c) 내에 존재하는 저장 역방향 패킷은 패킷 d이므로, 현재 패킷 b의 시퀀스 번호와 패킷 길이 값을 합산한 값 100과 저장 역방향 패킷 d의 ACK 번호 40을 비교하면 현재 패킷 b의 저장 위치를 결정할 수 있다. 이때, 저장 역방향 패킷 d의 ACK 번호 40이 현재 패킷 b의 시퀀스 번호와 패킷 길이 값을 합산한 값 100과 동일하거나 크지 않아, 저장 역방향 패킷 d는 제2 기준 패킷 또는 제3 기준 패킷이 될 수 없고, 따라서 현재 패킷 b의 저장 위치는 제1 경계 패킷 a의 바로 뒤로 결정된다. In the third step, since the storage reverse packet existing in the candidate range (packet a to packet c) is packet d, the value 100, which is the sum of the sequence number and the packet length value of the current packet b, and the ACK number 40, The storage location of the current packet b can be determined. At this time, since the ACK number 40 of the storage backward packet d is equal to or larger than the value 100 obtained by adding the sequence number of the current packet b and the packet length value, the storage backward packet d can not be the second reference packet or the third reference packet , So the storage location of the current packet b is determined immediately after the first border packet a.

도 10은 본 발명의 제3 실시예에 따른 역전 패킷 발생을 방지하는 패킷 처리 방법을 도 1의 트래픽 수집 지점 C3에 적용한 결과를 설명하기 위하여 도시한 도면이다. 10 is a diagram for explaining a result of applying a packet processing method for preventing reverse packet generation according to the third embodiment of the present invention to the traffic collection point C3 of FIG.

도 10을 참조하면,트래픽 수집 지점 C3에 저장된 패킷의 순서는 도 1에서 호스트 A와 호스트 B에서 전송한 패킷 순서인 a-b-d-c-e-f-g의 순서와 동일한 것을 알 수 있다. 즉, 트래픽 수집 지점 C3에서는 역전 패킷이 발생하지 않게 된다. 10, the order of the packets stored in the traffic collection point C3 is the same as the order of a-b-d-c-e-f-g, which is the order of packets transmitted from the host A and the host B in FIG. That is, no reverse packet is generated at the traffic collection point C3.

도 11은 본 발명의 일 실시예에 따른 역전 패킷 발생을 방지하는 패킷 처리 장치를 이용한 패킷 분석 시스템을 설명하기 위하여 도시한 도면이다. 11 is a diagram for explaining a packet analysis system using a packet processing apparatus for preventing reverse packet generation according to an embodiment of the present invention.

도 11에서, 호스트 A(1112)와 호스트 B(1114) 상호간에 패킷들을 전송하는 중에, 트래픽 수집 지점인 라우터(1120)가 중간에서 호스트 A(1112)와 호스트 B(1114) 상호간에 전송하는 패킷들을 수신하게 된다. 11, when packets are transmitted between the host A 1112 and the host B 1114, the router 1120, which is the traffic collection point, Lt; / RTI >

트래픽 캡쳐 시스템(1130)은 라우터에 수신된 패킷들을 수집하여 본 발명에 따른 패킷 처리 장치(1140)에게 전송한다. The traffic capture system 1130 collects the packets received at the router and transmits them to the packet processing apparatus 1140 according to the present invention.

본 발명에 따른 패킷 처리 장치(1150)는 역전 패킷이 발생하지 않도록 처리된 패킷들을 트래픽 분석 시스템(1150)에게 전송한다. The packet processing apparatus 1150 according to the present invention transmits the processed packets to the traffic analysis system 1150 so as not to generate the inversion packet.

트래픽 분석 시스템(1150)은 역전 패킷이 발생하지 않도록 처리된 패킷들을 이용하여 통계 정보 시그니처를 만든다. The traffic analysis system 1150 generates statistical information signatures using the processed packets so that no inversion packets are generated.

다음으로, 트래픽 분석 시스템(1150)이 패킷 처리 장치(1150)로부터 역전 패킷이 발생하지 않도록 처리된 패킷들을 새롭게 수신하게 되면, 기존에 생성한 통계 정보 시그니처에 기초하여 그 수신된 패킷들을 분석하여 트래픽 분류 결과를 도출하게 된다. 예컨대, 트래픽 분석 시스템(1150)은 패킷 처리 장치(1150)를 통해 수신된 역전 패킷이 발생하지 않도록 처리된 패킷들을 분석하여 그 패킷들이 어떤 응용(application)으로부터 생성된 것인지에 따라 트래픽 분류를 수행할 수 있다. Next, when the traffic analysis system 1150 newly receives the processed packets from the packet processing apparatus 1150 so as not to generate the inverted packet, the received traffic analysis system 1150 analyzes the received packets based on the statistical information signature generated in advance, The classification result is derived. For example, the traffic analysis system 1150 analyzes the processed packets so that the received reverse packet is not generated through the packet processing apparatus 1150, and performs traffic classification according to which application the packets are generated from have.

이와 관련하여, 특정 대학 연구실에서 2시간 동안의 트래픽 분석 실험을 수행한 결과에 따르면, 전체 플로우의 11.24% 및 전체 패킷의 7.62%에서 역전(out-of-order) 현상이 발생한 것으로 파악되어, 약 7%~11%의 트래픽에 대해서는 그 트래픽이 어떤 응용에서 생성된 것인지 탐지하지 못하거나 상이한 응용에서 생성된 것으로 탐지하는 문제가 발생할 수 있음을 알 수 있었다. 이와 같은 경우에 본 발명에 따른 패킷 처리 방법을 적용하게 되면 트래픽 미탐지 및 오탐지 문제가 해결되므로 트래픽 분석 결과의 신뢰성이 향상될 수 있다. In this regard, according to the result of 2-hour traffic analysis experiment conducted at a specific university laboratory, out-of-order phenomenon occurred at 11.24% of the total flow and 7.62% of the total packets, For 7% ~ 11% of the traffic, it could be detected that the traffic was not generated in some applications or it could be detected as being generated in different applications. In such a case, if the packet processing method according to the present invention is applied, the problem of traffic detection and false detection can be solved, so that the reliability of the traffic analysis result can be improved.

지금까지 본 발명의 실시예들은 트래픽 수집 지점에 역전 패킷이 발생하는 경우에 대해서 설명하였으나, 본 발명은 이에 한정되지 않고 트래픽 수집 지점 뿐만 아니라 패킷을 수신하는 최종단에 위치하는 호스트에도 적용될 수 있다. Although the embodiments of the present invention have been described above with respect to the case where the inversion packet is generated at the traffic collection point, the present invention is not limited to this, but may be applied to the host located at the final stage of receiving the packet as well as the traffic collection point.

한편, 상술한 본 발명의 실시예들은 컴퓨터에서 실행될 수 있는 프로그램으로 작성가능하고, 컴퓨터로 읽을 수 있는 기록매체를 이용하여 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다.The above-described embodiments of the present invention can be embodied in a general-purpose digital computer that can be embodied as a program that can be executed by a computer and operates the program using a computer-readable recording medium.

상기 컴퓨터로 읽을 수 있는 기록매체는 마그네틱 저장매체(예를 들면, 롬, 플로피 디스크, 하드디스크 등), 광학적 판독 매체(예를 들면, 시디롬, 디브이디 등) 를 포함한다.The computer readable recording medium includes a magnetic storage medium (e.g., ROM, floppy disk, hard disk, etc.), optical reading medium (e.g., CD ROM, DVD, etc.).

이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.The present invention has been described with reference to the preferred embodiments. It will be understood by those skilled in the art that various changes in form and details may be made therein without departing from the spirit and scope of the invention as defined by the appended claims. Therefore, the disclosed embodiments should be considered in an illustrative rather than a restrictive sense. The scope of the present invention is defined by the appended claims rather than by the foregoing description, and all differences within the scope of equivalents thereof should be construed as being included in the present invention.

Claims (10)

역전 패킷(out-of-order packet) 발생을 방지하는 패킷 처리 방법에 있어서,
제1 호스트가 제2 호스트에게 전송하는 순방향 패킷 및 상기 제2 호스트가 상기 제1 호스트에게 전송하는 역방향 패킷 중에서 상기 순방향 패킷을 현재 패킷으로서 수신하는 단계;
상기 현재 패킷을 상기 현재 패킷 이전에 수신되어 저장된 저장 순방향 패킷들 및 저장 역방향 패킷들과 비교하여 상기 현재 패킷의 저장 위치를 결정하는 단계; 및
상기 결정된 저장 위치에 기초하여, 상기 현재 패킷을 저장하는 단계를 포함하는 것을 특징으로 하는 패킷 처리 방법.
A packet processing method for preventing an out-of-order packet from occurring,
Receiving, as a current packet, a forward packet transmitted from a first host to a second host and a reverse packet transmitted from the second host to the first host;
Comparing the current packet with stored forward packets and stored reverse packets received prior to the current packet to determine a storage location of the current packet; And
And storing the current packet based on the determined storage location.
제1항에 있어서,
상기 현재 패킷의 저장 위치를 결정하는 단계는
상기 현재 패킷, 상기 저장 순방향 패킷들 및 상기 저장 역방향 패킷들의 시퀀스 번호, ACK 번호 및 패킷 길이 값 중 적어도 하나를 비교하여 상기 현재 패킷의 저장 위치를 결정하는 것을 특징으로 하는 패킷 처리 방법.
The method according to claim 1,
The step of determining the storage location of the current packet
Wherein the storage location of the current packet is determined by comparing at least one of a sequence number, an ACK number, and a packet length value of the current packet, the stored forward packets, and the storage reverse packets.
제1항에 있어서,
상기 현재 패킷의 저장 위치를 결정하는 단계는
상기 현재 패킷이 상기 제1 호스트 또는 상기 제2 호스트가 전송한 순서와 순서가 어긋나게 수신된 역전 패킷인지를 판단하는 단계; 및
상기 역전 패킷인지 여부에 대한 판단에 기초하여, 상기 현재 패킷의 저장 위치를 결정하는 단계를 포함하는 것을 특징으로 하는 패킷 처리 방법.
The method according to claim 1,
The step of determining the storage location of the current packet
Determining whether the current packet is a received reverse packet in an order different from the sequence transmitted by the first host or the second host; And
And determining a storage location of the current packet based on a determination as to whether the packet is the inverse packet.
제3항에 있어서,
상기 역전 패킷인지를 판단하는 단계는
상기 저장 순방향 패킷들 중에서 가장 마지막 위치에 저장된 제1 기준 패킷을 검출하는 단계;
상기 현재 패킷의 시퀀스 번호를 상기 제1 기준 패킷의 시퀀스 번호와 비교하는 단계; 및
상기 비교 결과에 기초하여, 상기 현재 패킷이 역전 패킷인지를 판단하는 단계를 포함하는 것을 특징으로 하는 패킷 처리 방법.
The method of claim 3,
The step of determining whether the packet is the inverse packet
Detecting a first reference packet stored at a last location among the stored forward packets;
Comparing a sequence number of the current packet with a sequence number of the first reference packet; And
And determining whether the current packet is a reverse packet based on the comparison result.
제3항에 있어서,
상기 역전 패킷인지 여부에 대한 판단에 기초하여, 상기 현재 패킷의 저장 위치를 결정하는 단계는
상기 현재 패킷이 상기 역전 패킷으로 판단되는 경우에, 상기 현재 패킷을 상기 저장 역방향 패킷들과 순차적으로 비교하여 상기 현재 패킷의 시퀀스 번호와 ACK 번호를 합산한 합산 값과 동일한 값을 가지는 ACK 번호를 가지는 저장 역방향 패킷인 제2 기준 패킷을 검출하는 단계; 및
상기 검출된 제2 기준 패킷의 바로 앞의 위치를 상기 현재 패킷의 저장 위치로 결정하는 단계를 포함하는 것을 특징으로 하는 패킷 처리 방법.
The method of claim 3,
Determining a storage location of the current packet based on a determination as to whether the packet is a reverse packet
And if the current packet is determined to be the inverse packet, sequentially comparing the current packet with the stored reverse packets to obtain an ACK number having the same value as the sum of the sequence number of the current packet and the ACK number Detecting a second reference packet that is a store reverse packet; And
And determining a position immediately before the detected second reference packet as a storage position of the current packet.
제5항에 있어서,
상기 역전 패킷인지 여부에 대한 판단에 기초하여, 상기 현재 패킷의 저장 위치를 결정하는 단계는
상기 현재 패킷이 상기 역전 패킷으로 판단되는 경우에, 상기 현재 패킷을 상기 저장 순방향 패킷들과 순차적으로 비교하여 상기 현재 패킷의 위치라고 추정되는 범위인 후보 범위를 설정하는 단계를 더 포함하고,
상기 제2 기준 패킷을 검출하는 단계는 상기 현재 패킷을 상기 후보 범위 내에 존재하는 저장 역방향 패킷들과 순차적으로 비교함으로써 수행되는 것을 특징으로 하는 패킷 처리 방법.
6. The method of claim 5,
Determining a storage location of the current packet based on a determination as to whether the packet is a reverse packet
Further comprising the step of sequentially comparing the current packet with the stored forward packets when the current packet is determined to be the inverse packet and setting a candidate range that is a range estimated to be the position of the current packet,
Wherein the step of detecting the second reference packet is performed by sequentially comparing the current packet with the storage backward packets existing in the candidate range.
제6항에 있어서,
상기 후보 범위를 설정하는 단계는
상기 현재 패킷을 상기 저장 순방향 패킷들과 순차적으로 비교하여 상기 현재 패킷의 시퀀스 번호보다 작은 값을 가지는 시퀀스 번호를 가지는 저장 순방향 패킷을 제1 경계 패킷으로 설정하는 단계; 및
상기 제1 경계 패킷의 바로 뒤의 위치에 저장된 저장 순방향 패킷을 제2 경계 패킷으로 설정함으로써 상기 후보 범위를 설정하는 단계를 포함하는 것을 특징으로 하는 패킷 처리 방법.
The method according to claim 6,
The step of setting the candidate range
Sequentially comparing the current packet with the stored forward packets to set a storage forward packet having a sequence number smaller than the sequence number of the current packet as a first boundary packet; And
And setting the candidate range by setting a stored forward packet stored at a position immediately after the first border packet as a second border packet.
제3항에 있어서,
상기 역전 패킷인지 여부에 대한 판단에 기초하여, 상기 현재 패킷의 저장 위치를 결정하는 단계는
상기 현재 패킷이 상기 역전 패킷으로 판단되는 경우에, 상기 현재 패킷을 상기 저장 순방향 패킷들과 순차적으로 비교하여 상기 현재 패킷의 위치라고 추정되는 범위인 후보 범위를 설정하는 단계;
상기 현재 패킷을 상기 후보 범위 내의 저장 역방향 패킷들과 순차적으로 비교하여 상기 현재 패킷의 시퀀스 번호와 ACK 번호를 합산한 합산 값과 동일한 값을 가지는 ACK 번호를 가지는 저장 역방향 패킷인 제2 기준 패킷을 검출하는 단계;
상기 제2 기준 패킷이 검출되지 않으면, 상기 현재 패킷을 상기 후보 범위 내의 저장 역방향 패킷들과 순차적으로 비교하여 상기 현재 패킷의 시퀀스 번호와 ACK 번호를 합산한 합산 값보다 큰 값을 가지는 ACK 번호를 가지는 저장 역방향 패킷인 제3 기준 패킷을 검출하는 단계; 및
상기 검출된 제3 기준 패킷의 바로 뒤의 위치를 상기 현재 패킷의 저장 위치로 결정하는 단계를 포함하는 것을 특징으로 하는 패킷 처리 방법.
The method of claim 3,
Determining a storage location of the current packet based on a determination as to whether the packet is a reverse packet
Comparing the current packet with the stored forward packets sequentially when the current packet is determined to be the inverse packet, and setting a candidate range that is a range estimated to be a position of the current packet;
Sequentially comparing the current packet with the storage backward packets within the candidate range, and detecting a second reference packet, which is a storage backward packet having an ACK number equal to a sum value obtained by summing the sequence number of the current packet and the ACK number, ;
If the second reference packet is not detected, sequentially comparing the current packet with the storage reverse packets in the candidate range, and having an ACK number having a value larger than the sum of the sequence number of the current packet and the ACK number Detecting a third reference packet that is a store reverse packet; And
And determining a position immediately after the detected third reference packet as a storage position of the current packet.
제3항에 있어서,
상기 역전 패킷인지 여부에 대한 판단에 기초하여, 상기 현재 패킷의 저장 위치를 결정하는 단계는
상기 현재 패킷이 상기 역전 패킷으로 판단되는 경우에, 상기 현재 패킷을 상기 저장 순방향 패킷들과 순차적으로 비교하여 상기 현재 패킷의 위치라고 추정되는 범위인 후보 범위를 설정하는 단계;
상기 현재 패킷을 상기 후보 범위 내의 저장 역방향 패킷들과 순차적으로 비교하여 상기 현재 패킷의 시퀀스 번호와 ACK 번호를 합산한 합산 값과 동일한 값을 가지는 ACK 번호를 가지는 저장 역방향 패킷인 제2 기준 패킷을 검출하는 단계;
상기 제2 기준 패킷이 검출되지 않으면, 상기 현재 패킷을 상기 후보 범위 내의 저장 역방향 패킷들과 순차적으로 비교하여 상기 현재 패킷의 시퀀스 번호와 ACK 번호를 합산한 합산 값보다 큰 값을 가지는 ACK 번호를 가지는 저장 역방향 패킷인 제3 기준 패킷을 검출하는 단계; 및
상기 제3 기준 패킷이 검출되지 않으면, 상기 후보 범위에서 가장 앞에 위치하는 저장 순방향 패킷 바로 뒤의 위치를 상기 현재 패킷의 저장 위치로 결정하는 단계를 포함하는 것을 특징으로 하는 패킷 처리 방법.
The method of claim 3,
Determining a storage location of the current packet based on a determination as to whether the packet is a reverse packet
Comparing the current packet with the stored forward packets sequentially when the current packet is determined to be the inverse packet, and setting a candidate range that is a range estimated to be a position of the current packet;
Sequentially comparing the current packet with the storage backward packets within the candidate range, and detecting a second reference packet, which is a storage backward packet having an ACK number equal to a sum value obtained by summing the sequence number of the current packet and the ACK number, ;
If the second reference packet is not detected, sequentially comparing the current packet with the storage reverse packets in the candidate range, and having an ACK number having a value larger than the sum of the sequence number of the current packet and the ACK number Detecting a third reference packet that is a store reverse packet; And
If the third reference packet is not detected, determining a position immediately after a forward stored forward packet in the candidate range as a storage position of the current packet.
역전 패킷 발생을 방지하는 패킷 처리 장치에 있어서,
제1 호스트가 제2 호스트에게 전송하는 순방향 패킷 및 상기 제2 호스트가 상기 제1 호스트에게 전송하는 역방향 패킷 중에서 상기 순방향 패킷을 현재 패킷으로서 수신하는 수신부;
상기 현재 패킷을 상기 현재 패킷 이전에 수신되어 저장된 저장 순방향 패킷들 및 저장 역방향 패킷들과 비교하여 상기 현재 패킷의 저장 위치를 결정하는 위치 결정부; 및
상기 결정된 저장 위치에 기초하여, 상기 현재 패킷을 저장하는 저장부를 포함하는 것을 특징으로 하는 패킷 처리 장치.
A packet processing apparatus for preventing reverse packet generation, comprising:
A receiving unit for receiving, as a current packet, a forward packet transmitted from the first host to the second host and a reverse packet transmitted from the second host to the first host;
A positioning unit for comparing the current packet with the stored forward packets and the stored backward packets received before the current packet to determine a storage position of the current packet; And
And a storage unit for storing the current packet based on the determined storage location.
KR1020140033980A 2014-03-24 2014-03-24 Method and Apparatus for processing packet in order to preventing from generating out-of-order packet KR101524806B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140033980A KR101524806B1 (en) 2014-03-24 2014-03-24 Method and Apparatus for processing packet in order to preventing from generating out-of-order packet

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140033980A KR101524806B1 (en) 2014-03-24 2014-03-24 Method and Apparatus for processing packet in order to preventing from generating out-of-order packet

Publications (1)

Publication Number Publication Date
KR101524806B1 true KR101524806B1 (en) 2015-06-03

Family

ID=53505193

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140033980A KR101524806B1 (en) 2014-03-24 2014-03-24 Method and Apparatus for processing packet in order to preventing from generating out-of-order packet

Country Status (1)

Country Link
KR (1) KR101524806B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102060648B1 (en) 2017-10-31 2019-12-30 국방과학연구소 Network management method and apparatus for enhencement of relative navigation performance in tactical data link

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120070142A (en) * 2010-12-21 2012-06-29 한국전자통신연구원 Method for detecting return link packet error in hub which communicates with satellite terminal, and apparatus thereof

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120070142A (en) * 2010-12-21 2012-06-29 한국전자통신연구원 Method for detecting return link packet error in hub which communicates with satellite terminal, and apparatus thereof

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102060648B1 (en) 2017-10-31 2019-12-30 국방과학연구소 Network management method and apparatus for enhencement of relative navigation performance in tactical data link

Similar Documents

Publication Publication Date Title
Ding et al. Towards sound and optimal leakage detection procedure
CN107968791B (en) Attack message detection method and device
JP4485330B2 (en) Directed falification of circuits
JP6288244B2 (en) Information processing apparatus, influence process extraction method, and program
US10552278B2 (en) Non-destructive analysis to determine use history of processor
KR102190727B1 (en) Apparatus and method for detecting vulnerability of software
WO2017050005A1 (en) Anti-interference infrared remote control decoding method and system
WO2014132612A1 (en) System analysis device and system analysis method
US11270001B2 (en) Classification apparatus, classification method, and classification program
KR102359597B1 (en) Method of defending an attack to defend against cyber attacks on packet data and apparatuses performing the same
US11297083B1 (en) Identifying and protecting against an attack against an anomaly detector machine learning classifier
KR101524806B1 (en) Method and Apparatus for processing packet in order to preventing from generating out-of-order packet
EP4002800A3 (en) Systems and methods for detection of degradation of a virtual desktop environment
US20190004924A1 (en) Optimizing automated interactions with web applications
JP6845125B2 (en) Learning equipment, learning methods and learning programs
CN116432190B (en) Method and device for detecting unauthorized access of interface, computer equipment and storage medium
CN108141372B (en) System, method and computer readable medium for detecting attacks on mobile networks
KR101527149B1 (en) Method and Apparatus for processing packet in order to preventing from generating duplicate packet
KR102006220B1 (en) Apparatus and method for reconfiguring signiture
US9916708B2 (en) Signal processing system and method
EP2759936A1 (en) System and method for three input voting
Han et al. Design and performance evaluation of enhanced congestion control algorithm for wireless TCP by using a deep learning
KR101229012B1 (en) Signature detecting device and method
US20170132055A1 (en) Determining Physical Layer Error Signatures of a Communications Link
US20220263737A1 (en) Anomaly detection device, anomaly detection method and anomaly detection program

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20180406

Year of fee payment: 4