KR20110060534A - Apparatus and method for session management - Google Patents

Apparatus and method for session management Download PDF

Info

Publication number
KR20110060534A
KR20110060534A KR1020090117143A KR20090117143A KR20110060534A KR 20110060534 A KR20110060534 A KR 20110060534A KR 1020090117143 A KR1020090117143 A KR 1020090117143A KR 20090117143 A KR20090117143 A KR 20090117143A KR 20110060534 A KR20110060534 A KR 20110060534A
Authority
KR
South Korea
Prior art keywords
fragment
session
packet
entry
packets
Prior art date
Application number
KR1020090117143A
Other languages
Korean (ko)
Other versions
KR101286647B1 (en
Inventor
윤승용
오진태
장종수
나중찬
조현숙
Original Assignee
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Priority to KR1020090117143A priority Critical patent/KR101286647B1/en
Publication of KR20110060534A publication Critical patent/KR20110060534A/en
Application granted granted Critical
Publication of KR101286647B1 publication Critical patent/KR101286647B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/161Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/166IP fragmentation; TCP segmentation

Landscapes

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

Abstract

PURPOSE: A session management method is provided to secure wire-speed in session tracking and managing even on a Giga network having higher complexity. CONSTITUTION: A management unit(500) constitutes the entry of a single packet and a plurality of fraction packets in a session table(300) and a fragment table(400). The session table comprises an entry composed for the status information of a packet for session connection and session close and a single packet which is not fragmented. The fragment table comprises entries composed for the status information of 1 to N fragment packets.

Description

세션 관리 방법{Apparatus and Method for Session Management}Apparatus and Method for Session Management}

본 발명은 세션 관리에 관한 것으로서, 구체적으로는 단편화되어 송신된 패킷의 세션을 관리할 수 있는 세션 관리 방법에 관한 것이다.The present invention relates to session management, and more particularly, to a session management method capable of managing a session of a fragmented and transmitted packet.

본 발명은 지식경제부의 지식경제부 기술혁신사업의 일환으로 수행한 연구로부터 도출된 것이다[과제관리번호: 2009-S-038-01, 과제명: 분산서비스거부(DDoS) 공격 대응 기술개발].The present invention is derived from a study conducted as part of the Ministry of Knowledge Economy's technology innovation project [Task Management No .: 2009-S-038-01, Task name: Distributed service rejection (DDoS) attack development technology development].

일반적으로, IP 계층은 전송할 IP 데이터그램(Datagram)의 크기가 링크 계층의 최대 전송단위(MTU; Maximum Transmission Unit)보다 크면, 도 1과 같은 단편화(Fragmentaiton) 작업을 통해 복수의 TCP 세그먼트로 단편화하여 전송함으로써, 최대 전송단위가 다른 이기종 목적지 시스템에서도 IP 데이터그램을 인지할 수 있도록 한다.In general, when the size of an IP datagram to be transmitted is larger than the maximum transmission unit (MTU) of the link layer, the IP layer is fragmented into a plurality of TCP segments through a fragmentation operation as shown in FIG. 1. By transmitting, IP datagrams can be recognized by heterogeneous destination systems with different maximum transmission units.

목적지 시스템은 도 2와 같이 구성되는 IP 헤더와 TCP 헤더 중, IP 헤더의 Identification, Flags, Fragment Offset 필드들의 정보를 이용하여 TCP 세그먼트를 재조합하여 IP 데이터그램을 복원할 수 있다.The destination system may reconstruct the IP datagram by reassembling the TCP segment using information of the identification, flags, and fragment offset fields of the IP header among the IP header and the TCP header configured as shown in FIG. 2.

즉, Identification 필드는 16 비트 필드로서, "IP Identification Number" 라고 불린다. 각 IP 데이터그램에 대한 유일한 값을 포함하며, 단편 패킷들의 재조합 과정에 있어 식별자로 사용된다.That is, the Identification field is a 16-bit field and is called an "IP Identification Number". It contains a unique value for each IP datagram and is used as an identifier in the fragmentation process of fragment packets.

또한, Flags 필드는 3비트 필드로서, <Reserved, Don't Fragment, More Fragments>로 구성되며, "More Fragments"비트는 단편 패킷이 더 있음을 나타내며, 마지막 단편 패킷을 제외한 다른 단편 패킷들에 대해 설정된다. 그리고, "Don't Fragments"비트는 단편화되지 않음을 나타내며, IP 데이터그램이 단편화되지 않았음을 나타낸다.In addition, the Flags field is a 3-bit field, and is composed of <Reserved, Don't Fragment, More Fragments>, and the "More Fragments" bit indicates that there are more fragment packets, and for other fragment packets except the last fragment packet. Is set. And, the "Don't Fragments" bit indicates no fragmentation, and indicates that the IP datagram is not fragmented.

마지막으로, 단편 옵셋(Fragment Offset) 필드는 해당 단편 패킷이 원래의 데이터그램의 시작부터 어느 위치까지 옵셋(8바이트 단위)되어 있는지를 나타낸다.Finally, the Fragment Offset field indicates to which position the fragment packet is offset (from 8 bytes) from the beginning of the original datagram.

종래의 보안 장비는 IP 헤더의 프로토콜(Protocol), 소스 주소(Source Address), 목적지 주소(Destination Address) 뿐만 아니라, TCP 헤더의 소스 포트(Source Port) 및 목적지 포트(Destination Address)를 이용하여 세션 추적 및 관리를 수행할 수 있다.Conventional security equipment tracks sessions using the source header and destination port of the TCP header, as well as the protocol, source address, and destination address of the IP header. And management.

그런데, 도 1에 도시된 바와 같이 제1 단편 패킷 이외의 제2 내지 제4 단편 패킷들은 TCP 헤더를 포함하지 않아, 트래픽 계측에 어려움이 있어 단편 패킷이 많을 경우 실제 트래픽의 양보다 적게 측정되는 문제점이 있다.However, as shown in FIG. 1, since the second to fourth fragment packets other than the first fragment packet do not include a TCP header, it is difficult to measure traffic, so that when there are many fragment packets, less fragments are measured than actual traffic. There is this.

뿐만 아니라, 단편 패킷들은 네트워크 보안 장비에 의하여 검사되지 않아, 해커들에 의한 우회 침입의 수단으로 사용될 가능성이 크다는 심각한 문제점이 있다.In addition, there is a serious problem that fragment packets are not inspected by network security equipment, and thus are likely to be used as a means of bypass intrusion by hackers.

전술한 문제점을 해결하기 위하여, 본 발명의 목적은 단편화된 패킷과 단편화되지 않은 패킷의 세션 상태정보를 각각 관리할 수 있는 세션 관리 방법을 제공함에 있다.In order to solve the above problems, an object of the present invention is to provide a session management method that can manage session state information of fragmented packets and non-fragmented packets, respectively.

본 발명의 일면에 따른 세션 관리 방법은, TCP 세션 연결에 따라, TCP 헤더 및 IP 헤더를 포함하는 제1 단편 패킷이 수신되면, 상기 제1 단편 패킷이 포함된 세션 상태와 방향성을 파악하는 단계; 상기 TCP 헤더 및 상기 IP 헤더의 정보를 이용하여 제1 주소를 결정하고, 상기 제1 주소의 엔트리를 구성하여 상기 세션 상태와 방향성과 함께 저장하는 단계; 상기 IP 헤더를 포함하는 제2 내지 제N 단편 패킷이 수신되면, 상기 IP 헤더의 정보를 이용하여 상기 세션 상태와 방향성을 파악하는 단계; 및 상기 IP 헤더의 정보를 이용하여 제2 내지 제N 주소를 결정하고, 상기 제2 내지 제N 주소의 엔트리를 구성하여 세션 상태와 방향성과 함께 저장하는 단계를 포함하되, 상기 제2 내지 제N 단편 패킷이 단편화된 패킷중 마지막 패킷이면 상기 구성된 제2 내지 제N 주소의 엔트리를 삭제하는 것을 특징으로 한다.According to an aspect of the present invention, there is provided a session management method, including receiving a first fragment packet including a TCP header and an IP header according to a TCP session connection, determining a session state and a direction including the first fragment packet; Determining a first address using information of the TCP header and the IP header, constructing an entry of the first address, and storing the entry with the session state and directivity; When the second to N-th fragment packets including the IP header are received, determining the session state and the direction by using information of the IP header; And determining the second to Nth addresses by using the information of the IP header, and constructing an entry of the second to Nth addresses and storing the second to Nth addresses together with the session state and the directionality. If the fragment packet is the last packet of the fragmented packet, the entries of the configured second to Nth addresses are deleted.

본 발명에 따르면, 하드웨어에 기반한 테이블을 이용하여 세션 상태정보를 추적하므로, 복잡도가 높은 기가급 네트워크상에서도 세션 추적 및 관리에 있어 속도(Wire-Speed)를 보장할 수 있는 효과가 있다.According to the present invention, since the session state information is tracked using a table based on hardware, there is an effect of guaranteeing the speed (Wire-Speed) in session tracking and management even on a high-value network of high complexity.

본 발명은 단편화된 패킷과 단편화되지 않은 패킷을 별개의 테이블로 관리하여 단편화되지 않은 패킷뿐 아니라, 단편화된 패킷으로 인한 우회공격도 탐색할 수 있다.The present invention manages fragmented packets and non-fragmented packets in separate tables to search for bypass attacks due to fragmented packets as well as unfragmented packets.

이하, 도 3을 참조하여 본 발명의 실시예에 따른 클라이언트와 서버의 통신 메커니즘에 대하여 설명한다. 도 3은 본 발명의 실시예에 따른 클라이언트와 서버의 통신 메커니즘을 도시한 흐름도이다.Hereinafter, a communication mechanism of a client and a server according to an embodiment of the present invention will be described with reference to FIG. 3. 3 is a flowchart illustrating a communication mechanism of a client and a server according to an embodiment of the present invention.

도 3과 같이, 클라이언트(100)와 서버(200)는 SYN, SYN/ACK, ACK 패킷을 상호 교환하는 3-Way 핸드쉐이킹(Handshaking) 설정 과정을 통하여 TCP 세션을 연결한다(S310).As shown in FIG. 3, the client 100 and the server 200 connect a TCP session through a 3-way handshaking setting process in which SYN, SYN / ACK, and ACK packets are interchanged (S310).

이어서, 클라이언트(100)가 서버(200)로 복수의 단편 패킷 또는 단일 패킷을 송신함에 따라, 서버(200)는 세션 테이블(300)과 단편 테이블(400)을 이용하여 각 패킷이 포함된 세션의 상태정보를 관리한다(S320).Subsequently, as the client 100 transmits a plurality of fragment packets or a single packet to the server 200, the server 200 uses the session table 300 and the fragment table 400 to determine the session of each session. The state information is managed (S320).

여기서, 상태정보는 세션의 현상태 값과 송수신 방향성을 포함하며, 방화벽에서의 패킷 필터링(Packet Filtering), 침입 탐지 및 방지 시스템의 패킷 검사에 이용될 수 있다.Here, the status information includes the status value of the session and the transmission / reception direction, and may be used for packet filtering in the firewall, packet inspection in the intrusion detection and prevention system.

이후, 클라이언트(100)와 서버(200)는 복수의 단편 패킷을 포함하는 패킷의 송수신이 완료되면, FIN, ACK 패킷을 상호 교환하는 4-Way 핸드쉐이킹(Handshaking) 종료 과정을 통하여 해당 세션을 종료한다(S330).After the transmission and reception of a packet including a plurality of fragment packets is completed, the client 100 and the server 200 terminate the session through a 4-way handshaking termination process of exchanging FIN and ACK packets. (S330).

이와 같이, 본 발명은 패킷 검사를 위한 상태정보를 효율적으로 관리함으로 써, 패킷 검사의 효율성을 높일 수 있다.As described above, the present invention can efficiently manage the state information for packet inspection, thereby increasing the efficiency of packet inspection.

이하, 도 4를 참조하여 (S320)단계에서 세션을 관리하는 세션 관리 장치에 대하여 설명한다. 도 4는 본 발명의 실시예에 따른 세션 관리 장치를 도시한 구성도이다.Hereinafter, a session management apparatus for managing a session in step S320 will be described with reference to FIG. 4. 4 is a block diagram illustrating an apparatus for managing a session according to an embodiment of the present invention.

도 4에 도시된 바와 같이, 본 발명의 실시예에 따른 세션 관리 장치(10)는 관리부(500), 세션 테이블(300) 및 단편 테이블(400)을 포함한다.As shown in FIG. 4, the session management apparatus 10 according to an exemplary embodiment of the present invention includes a manager 500, a session table 300, and a fragment table 400.

관리부(500)는 세션 테이블(300)과 단편 테이블(400)에 단일 패킷 및 복수의 단편 패킷들의 엔트리를 구성하여 관리한다. 여기서, 단일 패킷은 세션 연결과 종료에 사용되는 패킷 및 단편화되지 않고 송신된 정보 패킷이며, 복수의 단편 패킷은 링크 계층의 최대전송단위에 부합하도록 복수 개로 단편화되어 전송된 정보 패킷이다.The management unit 500 configures and manages entries of a single packet and a plurality of fragment packets in the session table 300 and the fragment table 400. Here, a single packet is a packet used for connection and termination of a session, and an information packet transmitted without being fragmented, and the plurality of fragment packets are information packets that are fragmented and transmitted in plural to correspond to the maximum transmission unit of the link layer.

관리부(500)는 수신된 패킷의 IP 헤더의 플래그(Flags) 필드를 확인하여 단일 패킷인지 아니면, 단편 패킷인지를 판단하고, 단일 패킷이면 세션 테이블(300)에 단일 패킷의 엔트리를 구성하며, 단편 패킷이면 단편 테이블(400)에 단편 패킷의 엔트리를 구성한다.The management unit 500 determines whether the packet is a single packet or a fragment packet by checking the flags field of the IP header of the received packet. If the single packet is a single packet, the manager 500 configures a single packet entry in the session table 300. If it is a packet, the fragment table 400 constructs an entry of the fragment packet.

상세하게는, 관리부(500)는 단일 패킷의 IP 헤더와 TCP 헤더로부터 <프로토콜, 소스 주소, 목적지 주소, 소스 포트, 목적지 포트>를 확인하고, 이를 이용하여 단일 패킷의 엔트리 주소를 결정하고, 세션 현상태와 방향성을 확인하여 결정된 엔트리 주소와 함께 저장한다.In detail, the management unit 500 checks the <protocol, source address, destination address, source port, and destination port> from the IP header and the TCP header of the single packet, and determines the entry address of the single packet using the session. Check the status and direction and save it with the determined entry address.

관리부(500)는 복수의 단편 패킷 중에서 IP 헤더와 TCP 헤더를 포함하는 제1 단편 패킷의 <프로토콜, 소스 주소, 목적지 주소, 소스 포트, 목적지 포트>를 확인하여 세션 테이블(300)로부터 제1 단편 패킷이 송수신되는 세션의 연결 상태("Established" State) 및 송수신 방향성(Flow Direction: Client to Server/Server to Client)을 파악하고, 이를 이용하여 단편 테이블(400)에 제1 단편 패킷의 상태정보에 대한 엔트리를 구성한다.The management unit 500 checks the <protocol, source address, destination address, source port, and destination port> of the first fragment packet including the IP header and the TCP header among the plurality of fragment packets to determine the first fragment from the session table 300. The connection state ("Established" State) and flow direction (Flow Direction: Client to Server / Server to Client) of the session in which the packet is transmitted and received are identified, and the fragment table 400 is used to display the state information of the first fragment packet. Constitutes an entry for

그리고, 관리부(500)는 TCP 헤더를 포함하지 않고, IP 헤더만 포함하는 제2 내지 제N 단편 패킷이 수신되면, <프로토콜, 소스 주소, 목적지 주소, 아이디>를 이용하여 단편 테이블(400)로부터 제1 단편 패킷의 엔트리를 확인하고, 이를 참조하여 제2 내지 제N 단편 패킷의 상태정보를 포함하는 엔트리를 구성한다.When the management unit 500 receives the second to Nth fragment packets including only the IP header without including the TCP header, the management unit 500 uses the <protocol, source address, destination address, and ID> from the fragment table 400. An entry of the first fragment packet is identified and an entry including state information of the second to Nth fragment packets is configured with reference to the entry.

이때, 관리부(500)는 하기의 수학식에 따라 복수의 단편 패킷이 제1 단편 패킷인지, 제2 내지 제N-1 단편 패킷인지, 아니면 제N 단편 패킷인지를 판단하고, 제1 단편 패킷이면 단편 테이블(400)에 새로운 엔트리를 생성하며, 제N 단편 패킷이면 이용중인 엔트리를 삭제하는 등의 작업을 수행함으로써, 단편 테이블(400)을 포함하는 메모리를 효율적으로 사용할 수 있다.In this case, the management unit 500 determines whether the plurality of fragment packets are the first fragment packet, the second to N-th fragment packets, or the Nth fragment packet according to the following equation. By creating a new entry in the fragment table 400 and deleting an entry in use, if the Nth fragment packet is used, the memory including the fragment table 400 can be efficiently used.

if(More Fragments == 1 && Fragment Offset == 0)if (More Fragments == 1 && Fragment Offset == 0)

수신된 패킷 = 제1 단편 패킷 (즉, 첫 번째 단편 패킷)Received packet = first fragment packet (ie, the first fragment packet)

else if(More Fragments == 1 && Fragment Offset != 0)else if (More Fragments == 1 && Fragment Offset! = 0)

수신된 패킷 = 제2 내지 제N-1 단편 패킷 (즉, 중간 단편 패킷)Received Packet = Second to N-th Fragment Packet (i.e. Intermediate Fragment Packet)

else if(More Fragments == 0 && Fragment Offset !== 0) else if (More Fragments == 0 && Fragment Offset! == 0)

수신된 패킷 = 제N 단편 패킷 (즉, 마지막 단편 패킷)Received packet = Nth fragment packet (ie last fragment packet)

세션 테이블(300)은 세션 연결 및 세션 종료에 사용되는 패킷 및 단편화되지 않은 단일 패킷의 상태정보에 대하여 구성된 엔트리를 포함한다. 이때, 각 엔트리는 <프로토콜, 소스 주소, 목적지 주소, 소스 포트, 목적지 포트>의 5요소(Tuple)로부터 생성된 엔트리의 어드레스로 구분되며, 5요소로부터 확인된 세션의 현상태와 방향성과 함께 저장한다.The session table 300 includes entries configured for the status information of packets and non-fragmented single packets used for session connection and session termination. At this time, each entry is divided into addresses of entries created from five elements (Tuple) of <protocol, source address, destination address, source port, and destination port>, and are stored together with the status and direction of the session identified from the five elements. .

단편 테이블(400)은 제1 내지 제N 단편 패킷의 상태정보에 대하여 구성된 엔트리들을 포함한다. 이때, 각 엔트리는 <프로토콜, 소스 주소, 목적지 주소, 아이디>의 4 요소(Tuple)로부터 생성된 엔트리의 어드레스로 구분되며, 제1 단편 패킷의 5요소에 의하여 세션 테이블(300)로부터 확인된 세션의 현상태와 방향성에 대한 상태정보를 함께 저장한다.The fragment table 400 includes entries configured for the state information of the first to Nth fragment packets. In this case, each entry is classified into an address of an entry generated from four elements (Tuple) of <protocol, source address, destination address, and ID>, and the session identified from the session table 300 by five elements of the first fragment packet. Stores status information about the current status and direction of the.

이와 같이, 본 발명은 세션 테이블과 단편 테이블을 분리하여 관리함으로써, 종래의 하나의 테이블로 관리되던 세션 테이블에 비하여 자원이 절약되고, 유연성이 높다.As described above, the present invention separates and manages the session table and the fragment table, thereby saving resources and increasing flexibility compared to the session table managed as a single conventional table.

다시 말해, 본 발명은 단일 패킷과 단편 패킷을 각각의 식별자로 관리하므로, 송신 측에서 단편 패킷을 송신할 경우에는 단편 테이블을 다른 저장에 사용할 수 있으며, 단편 패킷을 송신할 경우에도 세션 테이블에 단편 패킷의 상태정보를 파악하기 위한 별도의 아이디 필드를 고정적으로 구성할 필요가 없는 등으로 인해 자원절약과 유연성 확보에 유리하다.In other words, since the present invention manages a single packet and a fragment packet with each identifier, the fragment table can be used for other storage when the fragment packet is transmitted from the sender, and the fragment table can be fragmented in the session table even when the fragment packet is transmitted. There is no need to configure a separate ID field to grasp the packet status information, which is advantageous for resource saving and securing flexibility.

이하, 도 5를 참조하여 본 발명의 실시예에 따른 관리부(500)의 단편 테이블 관리 방법에 대하여 설명한다. 도 5는 본 발명의 실시예에 따른 관리부(500)의 단편 테이블 관리 방법을 도시한 도면이다. Hereinafter, a fragment table management method of the management unit 500 according to an embodiment of the present invention will be described with reference to FIG. 5. 5 is a diagram illustrating a fragment table management method of the management unit 500 according to an embodiment of the present invention.

도 5에 도시된 바와 같이, 관리부(500)는 추출부(510), 연관부(520) 및 해시 생성기(530)를 포함하며, 제1 키와 제2 키를 이용하여 단편 테이블(400)을 관리한다.As shown in FIG. 5, the manager 500 includes an extractor 510, an association 520, and a hash generator 530. The manager 500 includes a fragment table 400 using a first key and a second key. Manage.

추출부(510)는 세션 연결 상태에서 제1 내지 제N 단편 패킷이 수신되면, 제1 단편 패킷의 IP 헤더와 TCP 헤더로부터 5요소와 4요소를 추출하며, 제2 내지 제N 단편 패킷의 IP 헤더로부터 4요소를 추출한다. 추출부(510)의 세부구성에 대해서는 도 6을 참조하여 후술한다.When the first to Nth fragment packets are received in the session connection state, the extractor 510 extracts 5 and 4 elements from the IP header and the TCP header of the first fragment packet, and the IP of the second to Nth fragment packets. Extract 4 elements from the header. The detailed configuration of the extractor 510 will be described later with reference to FIG. 6.

연관부(520)는 제1 단편 패킷의 5요소를 이용하여 세션 테이블(300)로부터 제1 단편 패킷이 포함된 세션의 현상태와 송수신 방향성을 확인한다.The association unit 520 checks the current status and the transmission / reception direction of the session including the first fragment packet from the session table 300 using five elements of the first fragment packet.

해시 생성기(530)는 제1 단편 패킷이 수신되면, 제1 단편 패킷의 4요소를 이용하여 제1 키를 생성하고, 제1 단편 패킷의 4요소를 이용하여 제2 키를 생성한다. 그리고, 해시 생성기(530)는 제1 키 및 제2 키가 지시하는 주소에 연관부(520)에 의하여 확인된 세션의 현상태와 방향성과 함께 제1 단편 패킷의 엔트리를 생성한다. 이때, 해시함수는 XOR 함수나 CRC 함수 등의 임의의 함수일 수 있다.When the first fragment packet is received, the hash generator 530 generates a first key using four elements of the first fragment packet, and generates a second key using four elements of the first fragment packet. In addition, the hash generator 530 generates an entry of the first fragment packet along with the status and direction of the session identified by the association unit 520 at the address indicated by the first key and the second key. In this case, the hash function may be any function such as an XOR function or a CRC function.

이후, 해시 생성기(530)는 제2 내지 제N 단편 패킷의 4요소를 입력받으면, 제1 키와 제2 키를 생성하여 제1 단편 패킷의 엔트리를 검색하고, 이로부터 제2 내지 제N 단편 패킷의 상태정보를 확인한다.Subsequently, when the hash generator 530 receives the four elements of the second to Nth fragment packets, the hash generator 530 generates a first key and a second key to retrieve an entry of the first fragment packet, and from there, the second to Nth fragments. Check the packet status information.

여기서, 단편 테이블(400)은 L개의 열과 M개(M > 0)의 엔트리로 구성된 행에 의해 구성된 테이블이며, 각 엔트리는 k개의 비트로 구성되는 k-Way Set Associative Fragment Table 구조이다. 따라서, 해시 생성기(530)에 의해 생성된 제1 키는 각 행을 지시(Index)하며, 제2 키는 각 지시된 행에서 각 엔트리를 지시한다.Here, the fragment table 400 is a table composed of rows consisting of L columns and M (M> 0) entries, and each entry has a k-Way Set Associative Fragment Table structure composed of k bits. Thus, the first key generated by hash generator 530 indexes each row, and the second key points to each entry in each indicated row.

단편 테이블(400)의 각 엔트리는 k개의 비트(k bits)로 구성되며, 각 엔트리는 세션의 연결상태를 표시하는 현상태 값(Current State), 타임스탬프 및 각 엔트리의 주소인 해시 주소를 포함한다.Each entry of the fragment table 400 is composed of k bits, each entry including a current state indicating a connection state of a session, a timestamp, and a hash address that is an address of each entry. .

여기서, 타임스탬프는 각 세션의 엔트리에 접근할 때마다 내부 타이머에 의하여 갱신되며, 단편 테이블(400)은 풀(Full)이 되어 더 이상 새로운 세션의 엔트리를 할당할 수 없을 때, 타이머의 시간과 각 엔트리의 타임스탬프를 비교하여 가장 오래된 세션을 새로 할당할 엔트리로 대체하는 LRU(Least Recently Used) 알고리즘을 이용한다.Here, the timestamp is updated by an internal timer each time an entry of each session is accessed, and the fragment table 400 becomes full so that when the entry of a new session can no longer be allocated, A Least Recently Used (LRU) algorithm is used that compares the timestamp of each entry and replaces the oldest session with the newly allocated entry.

따라서, 관리부(500)는 제2 내지 제N 단편 패킷이 수신되면, 4요소를 이용하여 제1 단편 패킷의 엔트리를 확인하고, 제2 내지 제N 단편 패킷의 상태정보를 검색할 수 있다.Accordingly, when the second to Nth fragment packets are received, the management unit 500 may check an entry of the first fragment packet using four elements and search for state information of the second to Nth fragment packets.

한편, 도 5는 단편 테이블(400)의 각 행이 16개의 엔트리로 구성되고, 전체 열은 217개로 구성되는 72Mb의 SRAM이며, 각 엔트리는 2비트의 세션 현상태 값, 8비트의 타임스탬프, 26비트의 해시함수로부터 생성된 해시 주소로 구성되는 경우를 예로 들어 설명하였으나, 단편 테이블(400)은 이에 한정되지 않고 다양하게 구성될 수 있다.5 is a 72 Mb SRAM in which each row of the fragment table 400 is composed of 16 entries and a total of 2 17 columns, each entry having a 2-bit session status value, an 8-bit timestamp, Although a case in which a hash address generated from a 26-bit hash function has been described as an example, the fragment table 400 is not limited thereto and may be configured in various ways.

이와 같이, 본 발명은 이중 해시 구조를 이용하여 단편 테이블(400)을 관리하므로, 검색시간을 단축할 수 있으며, 해시 충돌(Hash Collision)을 줄일 수 있다.As described above, since the present invention manages the fragment table 400 using the dual hash structure, the search time can be shortened and hash collision can be reduced.

이하, 도 6을 참조하여 본 발명의 실시예에 따른 추출부(510)의 4요소 추출방법에 대하여 설명한다. 도 6은 본 발명의 실시예에 따른 추출부(510)의 4요소 추출방법을 도시한 도면이다.Hereinafter, a method of extracting four elements of the extractor 510 according to an embodiment of the present invention will be described with reference to FIG. 6. 6 is a diagram illustrating a four-element extraction method of the extraction unit 510 according to an embodiment of the present invention.

도 6을 참조하면, 해시 생성기(530)는 88비트의 4요소로부터 해시 주소를 각각 생성하므로, 프로토콜과 아이디가 같더라도 송수신 방향성에 따라 해시 주소가 달라지는 문제가 있어, 그로 인해 각 엔트리 검색에 상당한 혼란을 야기할 수 있다.Referring to FIG. 6, since the hash generator 530 generates a hash address from each of four elements of 88 bits, even if the protocol and the ID are the same, there is a problem in that the hash address varies depending on the transmission and reception directions. It can cause confusion.

따라서, 추출부(510)는 소스 주소와 목적지 주소를 비교하고 예컨대, 둘 중 크기가 작은 것이 앞에 위치하도록 재배열하여 해시 생성기(530)가 송수신 방향성에 관계없이 해시 주소를 일정하게 생성하도록 한다.Therefore, the extractor 510 compares the source address and the destination address and rearranges the smallest of the two, so that the hash generator 530 constantly generates the hash address regardless of the transmission / reception direction.

이하, 도 7을 참조하여 각 엔트리에 포함된 현상태 값의 변화에 대하여 설명한다. 도 7은 본 발명의 실시예에 따른 현상태 값의 변화를 도시한 상태도이다. Hereinafter, the change of the present state value contained in each entry is demonstrated with reference to FIG. 7 is a state diagram showing a change in the status value according to an embodiment of the present invention.

도 7은 단편 테이블(400)의 각 엔트리의 현상태 값이 하기의 표 1과 같이 2비트로 표현되는 경우를 예로 들어 설명하였다.FIG. 7 illustrates an example in which a current state value of each entry of the fragment table 400 is represented by 2 bits as shown in Table 1 below.

Figure 112009073859847-PAT00001
Figure 112009073859847-PAT00001

관리부(500)는 이전에 단편 패킷이 수신되지 않은 초기상태에서는 단편 테이블(400)의 각 엔트리에서, 현상태 값을 "00"으로 설정한다(S710).In the initial state in which the fragment packet was not previously received, the management unit 500 sets the current status value to "00" in each entry of the fragment table 400 (S710).

이어서, 제1 내지 제N 단편 패킷이 수신되면, 관리부(500)는 세션 테이블(300)로부터 세션의 상태와 송수신 방향성을 확인한다.Subsequently, when the first to Nth fragment packets are received, the manager 500 checks the session state and the transmission / reception direction from the session table 300.

그리고, 관리부(500)는 수신된 패킷이 클라이언트에서 서버로 전송되는 패킷이라면, 단편 테이블(400)의 현상태 값을 "10"으로 전이시킨다(S720).If the received packet is a packet transmitted from the client to the server, the management unit 500 transfers the current state value of the fragment table 400 to "10" (S720).

반면, 관리부(500)는 수신된 패킷이 서버에서 클라이언트로 전송되는 패킷이라면, 단편 테이블(400)의 현상태 값을 "11"로 전이시킨다(S730).On the other hand, if the received packet is a packet transmitted from the server to the client, the management unit 500 transfers the current state value of the fragment table 400 to "11" (S730).

이때, 관리부(500)는 마지막 단편 패킷인 제N 단편 패킷이 수신되면, 단편 테이블(400)로부터 제1 단편 패킷에 대한 엔트리를 삭제하고, 세션의 현상태 값을 "00"으로 전이시킨다(S740).At this time, when the Nth fragment packet, which is the last fragment packet, is received, the management unit 500 deletes an entry for the first fragment packet from the fragment table 400 and transfers the current status value of the session to "00" (S740). .

이상, 본 발명의 구성에 대하여 첨부 도면을 참조하여 상세히 설명하였으나, 이는 예시에 불과한 것으로서, 본 발명이 속하는 기술분야에 통상의 지식을 가진자라면 본 발명의 기술적 사상의 범위 내에서 다양한 변형과 변경이 가능함은 물론이다. 따라서 본 발명의 보호 범위는 전술한 실시예에 국한되어서는 아니되며 이하의 특허청구범위의 기재에 의하여 정해져야 할 것이다.While the present invention has been described in detail with reference to the accompanying drawings, it is to be understood that the invention is not limited to the above-described embodiments. Those skilled in the art will appreciate that various modifications, Of course, this is possible. Accordingly, the scope of protection of the present invention should not be limited to the above-described embodiments, but should be determined by the description of the following claims.

도 1은 패킷의 단편화(Fragmentaiton) 과정을 도시한 도면.1 is a diagram illustrating a fragmentation process of a packet.

도 2는 IP 헤더와 TCP 헤더의 구조를 도시한 도면.2 is a diagram illustrating the structure of an IP header and a TCP header.

도 3은 본 발명의 실시예에 따른 클라이언트와 서버의 통신 메커니즘을 도시한 흐름도.3 is a flowchart illustrating a communication mechanism of a client and a server according to an embodiment of the present invention.

도 4는 본 발명의 실시예에 따른 세션 관리 장치를 도시한 구성도.4 is a block diagram illustrating an apparatus for managing a session according to an embodiment of the present invention.

도 5는 본 발명의 실시예에 따른 단편 테이블 관리 방법을 도시한 도면. 5 is a diagram illustrating a fragment table management method according to an embodiment of the present invention.

도 6은 본 발명의 실시예에 따른 4요소 추출방법을 도시한 도면.6 is a view showing a four element extraction method according to an embodiment of the present invention.

도 7은 본 발명의 실시예에 따른 현상태 값의 변화를 도시한 상태도. Figure 7 is a state diagram showing a change in the status value according to an embodiment of the present invention.

Claims (1)

TCP 세션 연결에 따라, TCP 헤더 및 IP 헤더를 포함하는 제1 단편 패킷이 수신되면, 상기 제1 단편 패킷이 포함된 세션 상태와 방향성을 파악하는 단계;When the first fragment packet including the TCP header and the IP header is received according to the TCP session connection, determining a session state and a direction in which the first fragment packet is included; 상기 TCP 헤더 및 상기 IP 헤더의 정보를 이용하여 제1 주소를 결정하고, 상기 제1 주소의 엔트리를 구성하여 상기 세션 상태와 방향성과 함께 저장하는 단계;Determining a first address using information of the TCP header and the IP header, constructing an entry of the first address, and storing the entry with the session state and directivity; 상기 IP 헤더를 포함하는 제2 내지 제N 단편 패킷이 수신되면, 상기 IP 헤더의 정보를 이용하여 상기 세션 상태와 방향성을 파악하는 단계; 및When the second to N-th fragment packets including the IP header are received, determining the session state and the direction by using information of the IP header; And 상기 IP 헤더의 정보를 이용하여 제2 내지 제N 주소를 결정하고, 상기 제2 내지 제N 주소의 엔트리를 구성하여 세션 상태와 방향성과 함께 저장하는 단계를 포함하되,Determining second to N-th addresses by using the information of the IP header, and constructing an entry of the second to N-th addresses and storing the second to N-th address together with session state and directionality; 상기 제2 내지 제N 단편 패킷이 단편화된 패킷중 마지막 패킷이면 상기 구성된 제2 내지 제N 주소의 엔트리를 삭제하는 것인 세션 관리 방법.And deleting the entry of the configured second to Nth addresses if the second to Nth fragment packets are the last of fragmented packets.
KR1020090117143A 2009-11-30 2009-11-30 Apparatus and Method for Session Management KR101286647B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020090117143A KR101286647B1 (en) 2009-11-30 2009-11-30 Apparatus and Method for Session Management

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090117143A KR101286647B1 (en) 2009-11-30 2009-11-30 Apparatus and Method for Session Management

Publications (2)

Publication Number Publication Date
KR20110060534A true KR20110060534A (en) 2011-06-08
KR101286647B1 KR101286647B1 (en) 2013-08-23

Family

ID=44395285

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090117143A KR101286647B1 (en) 2009-11-30 2009-11-30 Apparatus and Method for Session Management

Country Status (1)

Country Link
KR (1) KR101286647B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101635732B1 (en) * 2015-12-23 2016-07-04 주식회사 파이오링크 Method for processing fragment packets and nework device using the same

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1871038B1 (en) * 2006-06-23 2010-06-02 Nippon Office Automation Co., Ltd. Network protocol and session analyser

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101635732B1 (en) * 2015-12-23 2016-07-04 주식회사 파이오링크 Method for processing fragment packets and nework device using the same

Also Published As

Publication number Publication date
KR101286647B1 (en) 2013-08-23

Similar Documents

Publication Publication Date Title
KR100834570B1 (en) Realtime stateful packet inspection method and apparatus for thereof
US8943586B2 (en) Methods of detecting DNS flooding attack according to characteristics of type of attack traffic
US9584531B2 (en) Out-of band IP traceback using IP packets
US8175096B2 (en) Device for protection against illegal communications and network system thereof
US8134934B2 (en) Tracking network-data flows
US20070047457A1 (en) Method and system for reassembling packets prior to searching
US20110196961A1 (en) Method for network anomaly detection in a network architecture based on locator/identifier split
WO2018035962A1 (en) Method and system for processing forged tcp data packet
US7854003B1 (en) Method and system for aggregating algorithms for detecting linked interactive network connections
Lu et al. A novel path‐based approach for single‐packet IP traceback
US7613179B2 (en) Technique for tracing source addresses of packets
Chen et al. Nisp1-05: Rim: Router interface marking for ip traceback
Malliga et al. A proposal for new marking scheme with its performance evaluation for IP traceback
KR101286647B1 (en) Apparatus and Method for Session Management
US8493972B2 (en) Systems and methods for detecting denial of service attacks
Zhou et al. Limiting self-propagating malware based on connection failure behavior
Arjmandpanah‐Kalat et al. Design and performance analysis of an efficient single flow IP traceback technique in the AS level
Zhou et al. Limiting Self-Propagating Malware Based on Connection Failure Behavior through Hyper-Compact Estimators
Bae et al. An efficient detection of TCP Syn flood attacks with spoofed IP addresses
Barokar et al. Identification of the Real Source of DDOS Attack by FDPM in IP Traceback System
Saurabh et al. Extended deterministic edge router marking
Mittal et al. Flexible deterministic router and interface marking for IP traceback
Malliga et al. A low storage and traceback overhead system for IP traceback: A hybrid approach
Sanap et al. sOverview of IP tracebacking using packet marking techniques
Luke A Comparative Study over Various IP Traceback Schemes

Legal Events

Date Code Title Description
A201 Request for examination
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E90F Notification of reason for final refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20160628

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee