KR102015735B1 - Communication method and apparatus of peer for peer to peer(p2p) handshaking control - Google Patents
Communication method and apparatus of peer for peer to peer(p2p) handshaking control Download PDFInfo
- Publication number
- KR102015735B1 KR102015735B1 KR1020180173003A KR20180173003A KR102015735B1 KR 102015735 B1 KR102015735 B1 KR 102015735B1 KR 1020180173003 A KR1020180173003 A KR 1020180173003A KR 20180173003 A KR20180173003 A KR 20180173003A KR 102015735 B1 KR102015735 B1 KR 102015735B1
- Authority
- KR
- South Korea
- Prior art keywords
- connection request
- peer
- packet
- request packet
- packets
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
- H04L63/1458—Denial of Service
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1061—Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/146—Markers for unambiguous identification of a particular session, e.g. session cookie or URL-encoding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer And Data Communications (AREA)
Abstract
Description
아래의 실시예들은 P2P 핸드쉐이킹 제어를 위한 피어의 통신 방법 및 장치에 관한 것이다. The following embodiments are directed to a method and apparatus for communication of a peer for P2P handshaking control.
트랜잭션(transaction) 발생을 임의로 하게 되면 서버는 계속 트랜잭션 발생에 대한 응답을 주도록 되게 되어 있다. 예를 들어, 해커(hacker) 등과 같은 공격자가 패킷을 전송할 때에 수신자 측의 주소를 속여 트랜잭션을 임의로 발생하게 되면 서버는 해당 주소가 맞는지를 판단할 방법이 없다. 때문에 서버는 전송해야 하는 패킷만큼 메모리와 네트워크 트래픽을 사용할 수밖에 없고, 이는 서버를 공격에 취약하게 만들 수 있다. By randomizing the occurrence of a transaction, the server continues to give a response to the occurrence of the transaction. For example, if an attacker such as a hacker or the like sends a packet and randomly generates a transaction by tricking the recipient's address, the server has no way of determining whether the address is correct. This forces the server to use as much memory and network traffic as the packets it needs to send, which can make the server vulnerable to attack.
일 실시예에 따르면, 접속 요청(SYN) 패킷의 분산 가공을 통한 분산 응답 처리를 통하여 네트워크 서버에 대한 공격을 우회시킴으로써 서버의 보안성을 향상시킬 수 있다. According to an embodiment, the security of the server may be improved by bypassing an attack on the network server through distributed response processing through distributed processing of a connection request (SYN) packet.
일 실시예에 따르면, 접속 요청(SYN) 패킷의 분산 가공을 통한 분산 응답 처리를 통하여 서버의 보안성을 향상시킬 수 있다. According to an embodiment, the security of the server may be improved through distributed response processing through distributed processing of a connection request (SYN) packet.
일 측에 따르면, 통신 방법은 주변 피어로부터 제1 피어(peer)로의 접속 요청 (SYN) 패킷을 수신하는 단계; 상기 접속 요청 패킷이 원본인지 또는 복제된 것인지 여부를 판단하는 단계; 상기 접속 요청 패킷이 원본이라고 판단된 경우, 상기 접속 요청 패킷을 복제하여 복수의 복제 접속 요청 패킷들을 생성하는 단계; 및 상기 복제 접속 요청 패킷들을 복수의 제2 피어들에게 전송하는 단계를 포함한다. According to one side, a communication method comprises: receiving a connection request (SYN) packet from a neighboring peer to a first peer; Determining whether the access request packet is original or duplicated; Generating a plurality of duplicate connection request packets by copying the connection request packet when it is determined that the connection request packet is original; And sending the duplicate connection request packets to a plurality of second peers.
상기 복제 접속 요청 패킷들의 소스 정보들은 상기 접속 요청 패킷의 소스 정보와 같을 수 있다. Source information of the duplicate connection request packets may be the same as source information of the connection request packet.
상기 복제 접속 요청 패킷들을 생성하는 단계는 소스 정보를 상기 제1 피어로부터 상기 주변 피어로 변경하여 상기 복제 접속 요청 패킷들을 생성하는 단계를 포함할 수 있다. Generating the duplicate connection request packets may include changing the source information from the first peer to the peripheral peer to generate the duplicate connection request packets.
상기 통신 방법은 상기 접속 요청 패킷이 복제된 것이라고 판단된 경우, 상기 접속 요청 패킷에 대응하는 접속 요청 응답(SYN ACK) 패킷을 생성하는 단계; 및 상기 접속 요청 패킷의 소스 정보에 대응하는 주변 피어로 상기 접속 요청 응답 패킷을 전송하는 단계를 더 포함할 수 있다. The communication method may further include: generating a connection request response (SYN ACK) packet corresponding to the connection request packet when it is determined that the connection request packet is duplicated; And transmitting the access request response packet to a neighboring peer corresponding to the source information of the access request packet.
상기 접속 요청 패킷이 원본인지 또는 복제된 것인지 여부를 판단하는 단계는 상기 접속 요청 패킷의 헤더(header)에 포함된 특정 비트의 플래그(flag)를 기초로, 상기 접속 요청 패킷이 원본인지 또는 복제된 것인지 여부를 판단하는 단계를 포함할 수 있다. The determining of whether the connection request packet is original or duplicated may include determining whether the connection request packet is original or duplicated based on a flag of a specific bit included in a header of the connection request packet. It may include determining whether or not.
상기 통신 방법은 주변 피어들로부터 상기 제1 피어로의 접속 요청 응답 패킷들을 수신하는 단계; 상기 수신한 접속 요청 응답 패킷들이 상기 제1 피어에 의해 기 전송된 접속 요청 패킷에 대응하는지 여부를 판단하는 단계; 상기 판단 결과에 기초하여, 세션 수립(establish)을 위한 애크(ACK) 패킷을 생성하는 단계; 및 상기 기 전송된 접속 요청 패킷의 데스티네이션 정보에 대응하는 주변 피어로 상기 애크 패킷을 전송하는 단계를 더 포함할 수 있다. The communication method includes receiving connection request response packets from neighbor peers to the first peer; Determining whether the received connection request response packets correspond to a connection request packet previously transmitted by the first peer; Generating an ACK packet for establishing a session based on the determination result; And transmitting the Ack packet to a neighboring peer corresponding to the destination information of the previously transmitted connection request packet.
상기 접속 요청 응답 패킷들이 상기 기 전송된 접속 요청 패킷에 대응하는지 여부를 판단하는 단계는 상기 기 전송된 접속 요청 패킷의 시퀀스 번호 및 상기 접속 요청 응답 패킷들의 시퀀스 번호들에 기초하여, 상기 접속 요청 응답 패킷들이 상기 기 전송된 접속 요청 패킷에 대응하는지 여부를 판단하는 단계를 포함할 수 있다. The determining of whether the connection request response packets correspond to the previously transmitted connection request packet is based on the sequence number of the previously transmitted connection request packet and the sequence numbers of the connection request response packets. The method may include determining whether packets correspond to the previously transmitted connection request packet.
일 측에 따르면, 통신 장치는 주변 피어로부터 제1 피어로의 접속 요청 패킷을 수신하는 통신 인터페이스; 및 상기 접속 요청 패킷이 원본인지 또는 복제된 것인지 여부를 판단하고, 상기 접속 요청 패킷이 원본이라고 판단된 경우, 상기 접속 요청 패킷을 복제하여 복수의 복제 접속 요청 패킷들을 생성하는 프로세서를 포함하고, 상기 통신 인터페이스는 상기 복제 접속 요청 패킷들을 복수의 제2 피어들에게 전송한다. According to one side, a communication device includes a communication interface for receiving a connection request packet from a neighboring peer to a first peer; And a processor configured to determine whether the access request packet is original or duplicated, and if the access request packet is determined to be original, duplicate the access request packet to generate a plurality of duplicate access request packets. The communication interface sends the duplicate connection request packets to a plurality of second peers.
일 측에 따르면, 접속 요청(SYN) 패킷의 분산 가공을 통한 분산 응답 처리를 통하여 서버의 보안성을 향상시킬 수 있다. According to one side, it is possible to improve the security of the server through the distributed response processing through the distributed processing of the access request (SYN) packet.
일 측에 따르면, P2P 서버의 응답성을 분산시켜 효율이 향상되도록 하는 가변 DNS(Domain Name System) 처리 기술을 제공할 수 있다. According to one side, it is possible to provide a variable DNS (Domain Name System) processing technology to improve the efficiency by distributing the responsiveness of the P2P server.
도 1은 일 실시예에 따른 피어들 간의 세션 연결 과정을 설명하기 위한 도면.
도 2는 일 실시예에 따른 통신 방법을 나타낸 흐름도.
도 3은 일 실시예에 따른 3-웨이 핸드쉐이킹 과정을 설명하기 위한 도면.
도 4는 일 실시예예 따른 피어들 간의 접속 요청(SYN) 패킷 및 복제 접속 요청 패킷들의 전송 과정을 설명하기 위한 도면.
도 5 내지 도 6은 실시예들에 따른 복수의 복제 접속 요청 패킷들의 생성 및 전송 과정을 설명하기 위한 도면.
도 7은 일 실시예에 따른 통신 장치의 블록도.1 is a diagram illustrating a session connection process between peers according to an exemplary embodiment.
2 is a flowchart illustrating a communication method according to an embodiment.
3 is a diagram illustrating a three-way handshaking process according to one embodiment.
4 is a diagram illustrating a transmission process of a connection request (SYN) packet and a duplicate connection request packet between peers according to an embodiment.
5 to 6 are diagrams for explaining a process of generating and transmitting a plurality of duplicate connection request packets according to embodiments.
7 is a block diagram of a communication device according to one embodiment.
이하에서, 첨부된 도면을 참조하여 실시예들을 상세하게 설명한다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.Hereinafter, exemplary embodiments will be described in detail with reference to the accompanying drawings. Like reference numerals in the drawings denote like elements.
아래 설명하는 실시예들에는 다양한 변경이 가해질 수 있다. 아래 설명하는 실시예들은 실시 형태에 대해 한정하려는 것이 아니며, 이들에 대한 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.Various modifications may be made to the embodiments described below. The examples described below are not intended to be limited to the embodiments and should be understood to include all modifications, equivalents, and substitutes for them.
실시예에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 실시예를 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 생성 요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 생성 요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terminology used herein is for the purpose of describing particular example embodiments only and is not intended to be limiting of examples. Singular expressions include plural expressions unless the context clearly indicates otherwise. In this specification, terms such as "comprise" or "have" are intended to indicate that there is a feature, number, step, action, production element, part, or combination thereof described on the specification, one or more other features. It is to be understood that the present invention does not exclude the possibility of the presence or the addition of numbers, steps, operations, production 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. Terms such as those defined in the commonly used dictionaries should be construed as having meanings consistent with the meanings in the context of the related art and shall not be construed in ideal or excessively formal meanings unless expressly defined in this application. Do not.
또한, 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 생성 요소는 동일한 참조 부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 실시예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 실시예의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.In addition, in the following description with reference to the accompanying drawings, the same generating elements are given the same reference numerals regardless of the reference numerals and duplicate description thereof will be omitted. In the following description of the embodiment, when it is determined that the detailed description of the related known technology may unnecessarily obscure the gist of the embodiment, the detailed description thereof will be omitted.
도 1은 일 실시예에 따른 피어들 간의 세션 연결 과정을 설명하기 위한 도면이다. 도 1의 (a)를 참조하면, 클라이언트 (장치)(101)와 서버(103) 간의 TCP 세션 연결 과정이 도시된다. 여기서, 클라이언트(101)와 서버(103)는 모두 계층적 구조의 프로토콜을 사용하는 통신망의 동일 프로토콜 계층에서 대등한 지위로 동작하는 기능 단위 또는 장치로서, 일 실시예에 따른 '피어(peer)(들)'에 해당할 수 있다.1 is a diagram illustrating a session connection process between peers according to an exemplary embodiment. Referring to FIG. 1A, a TCP session connection process between a client (device) 101 and a
클라이언트(101)와 서버(103)는 신뢰있는 세션 관계를 이루기 위해서 예를 들어, ACK, NAK, NOK, OK 등과 같이 1차원적인 관계로 응답과 확인을 주고받는 핸드쉐이킹(handshaking) 과정을 수행할 수 있다. '핸드쉐이킹'은 채널에 대한 정상적인 통신이 시작되기 전에 두 개의 통신 주체 간에 확립된 통신 채널의 변수를 동적으로 설정하는 과정에 해당할 수 있다. 핸드 쉐이킹에는 채널의 물리적인 확립이 잇따르며, 정상적인 정보 전송 과정 이전에 수행될 수 있다. The
보다 구체적으로, 서버(103)와의 통신을 희망하는 클라이언트(101)는 TCP 연결을 위해 서버(103)에게 동기화를 위한 접속 요청(SYN) 패킷을 전송할 수 있다(110). 이때, 접속 요청(SYN) 패킷은 자체 시퀀스 번호 x를 포함할 수 있다. More specifically, the
접속 요청(SYN) 패킷을 수신한 서버(103)는 접속 요청(SYN) 패킷에 대한 응답으로 클라이언트(101)에게 접속 요청 응답(SYN ACK) 패킷을 전송할 수 있다(130). 이때, 접속 요청 응답(SYN ACK) 패킷은 예를 들어, 자체 시퀀스 번호 y와 응답 번호 x+1을 포함할 수 있다. The
접속 요청 응답(SYN ACK) 패킷을 수신한 클라이언트(101)는 애크(ACK) 패킷을 서버(103)에게 전송할 수 있다(150). 이때, 애크 패킷에는 예를 들어, 응답 번호 y+1이 포함될 수 있다. Upon receiving the SYN ACK packet, the
전술한 과정은 통신 주체들인 클라이언트(101)와 서버(103) 간에 3번의 응답을 주고받는 과정을 통해 수행되므로 3-웨이 핸드쉐이킹(3-way handshaking)이라 불린다. 3-웨이 핸드쉐이킹 이후, 클라이언트(101)와 서버(103) 간에는 TCP 세션이 수립(establish)될 수 있다(170).Since the above-described process is performed through a process of exchanging three responses between the
도 1의 (b)를 참조하면, 접속 요청(SYN) 발생자에 해당하는 클라이언트(101)가 제1 피어에 해당하는 서버(103)에게 수신자 측의 주소를 클라이언트(101)로 기록한 접속 요청(SYN) 패킷을 전송하고, 이에 대한 응답으로 접속 요청 응답(SYN ACK) 패킷을 수신하는 과정이 도시된다. Referring to (b) of FIG. 1, the
예를 들어, 패킷 전송 및/또는 응답과 같은 트랜잭션이 발생하면, 서버(103)는 계속 트랜잭션에 발생에 대한 응답을 주도록 되어 있다. 따라서, 클라이언트(101)로부터 연속적인 접속 요청(SYN) 패킷을 수신한 서버(103)는 연속적으로 수신된 접속 요청(SYN) 패킷을 위한 메모리를 할당해야 한다. 또한, 서버(103)는 연속적인 접속 요청(SYN) 패킷에 대한 응답(예를 들어, 접속 요청 응답(SYN ACK) 패킷)을 전송하기 위해 네트워크 트래픽을 사용할 수 있다. For example, if a transaction occurs, such as a packet transmission and / or response, the
도 1의 (c)를 참조하면, 해커(105)가 접속 요청(SYN) 발생자로서 서버(103)에게 트랜잭션을 속여서 전송하는 경우가 도시된다. Referring to FIG. 1C, a case in which the
예를 들어, 해커(105)가 수신자 측의 주소를 속이고 연속적인 접속 요청(SYN) 패킷을 전송했다고 하자. 이 경우, 트랜잭션이 임의로 발생하게 되면 서버(103)는 해당 주소가 맞는지를 판단할 방법이 없다. 때문에 서버(103)는 연속적인 접속 요청(SYN) 패킷에 대응하는 접속 요청 응답(SYN ACK) 패킷만큼 메모리와 네트워크 트래픽을 사용할 수밖에 없다. For example, suppose the
이런 공격이 들어오게 되면 서버(103)는 계속 잘못된 주소로 접속 요청 응답(SYN ACK) 패킷을 전송하다가 일정한 시간이 되거나 혹은 전송 횟수의 임계치가 넘어가면 에러 메시지를 띄우게 된다. 에러 메시지가 발생하면, 네트워크 시스템에서는 보호 기전이 동작하게 되는데, 이럴 때 통신 주체들에게 OS의 접근 권한이나 파일 시스템의 접근 권한이 높여 응답을 주는 현상이 발생할 가능성이 높아진다. 이때 해커(105)는 공격의 목적을 달성할 가능성이 높아지게 된다. When such an attack comes in, the
따라서, 일 실시예에서는 접속 요청(SYN) 패킷을 수신한 피어가 아닌 다른 피어들을 통해서 접속 요청(SYN) 이벤트의 발생을 확인해 주는 P2P 핸드쉐이킹 처리를 통해 해커(105)의 공격을 회피할 수 있다. Therefore, in one embodiment, the attack of the
도 2는 일 실시예에 따른 통신 방법을 나타낸 흐름도이다. 도 2를 참조하면, 일 실시예에 따른 P2P 핸드쉐이킹 과정이 도시된다. 2 is a flowchart illustrating a communication method according to an exemplary embodiment. Referring to FIG. 2, a P2P handshaking process according to an embodiment is shown.
일 실시예에 따른 제1 피어는 주변 피어로부터 제1 피어(peer)로의 접속 요청(SYN) 패킷을 수신한다(210). 접속 요청(SYN) 패킷에 기록된 소스(source) 정보는 주변 피어이고, 데스티네이션(destination) 정보는 제1 피어인 패킷일 수 있다. 이때, 접속 요청(SYN)은 예를 들어, TCP 헤더의 특정 오프셋(offset)에 위치할 수 있다.According to an embodiment, the first peer receives a connection request (SYN) packet from a neighboring peer to a first peer (210). The source information recorded in the access request (SYN) packet may be a neighboring peer, and the destination information may be a packet that is a first peer. In this case, the connection request SYN may be located, for example, at a specific offset of the TCP header.
제1 피어는 접속 요청 패킷이 원본인지 또는 복제된 것인지 여부를 판단한다(220). 여기서, 접속 요청 패킷이 '원본'이라는 것은 주변 피어로부터 수신한 접속 요청 패킷없이 해당 피어에 의해 최초로 생성된 접속 요청 패킷이라는 것을 나타낸다. 또한, 접속 요청 패킷이 '복제'된 것이라는 것은 원본에 해당하는 접속 요청 패킷을 수신한 피어가 이를 기초로 생성한 패킷에 해당할 수 있다. 단계(220)에서, 제1 피어는 예를 들어, 접속 요청 패킷의 헤더(header)에 포함된 특정 비트의 플래그(flag)를 기초로, 접속 요청 패킷이 원본인지 또는 복제된 것인지 여부를 판단할 수 있다. 이때, 특정 비트의 플래그가 '1'인 경우, 제1 피어는 해당 접속 요청 패킷을 원본으로 판단할 수 있다. 또는 특정 비트의 플래드가 '0'인 경우, 제1 피어는 해당 접속 요청 패킷을 복제된 것으로 판단할 수 있다. The first peer determines whether the connection request packet is original or duplicated (220). Herein, the "source" of the connection request packet indicates that the connection request packet is first generated by the peer without the connection request packet received from the neighboring peer. In addition, the fact that the access request packet is 'replicated' may correspond to a packet generated based on the peer receiving the access request packet corresponding to the original. In step 220, the first peer may determine whether the connection request packet is original or duplicated, for example, based on a flag of a specific bit included in the header of the connection request packet. Can be. In this case, when a flag of a specific bit is '1', the first peer may determine the connection request packet as an original. Alternatively, when the plaid of a specific bit is '0', the first peer may determine that the connection request packet is duplicated.
단계(220)에서 접속 요청 패킷이 원본이라고 판단된 경우, 제1 피어는 접속 요청 패킷을 복제하여 복수의 복제 접속 요청 패킷들을 생성한다(230). 이때, 복제 접속 요청 패킷들의 소스 정보들은 접속 요청 패킷의 소스 정보와 같을 수 있다. 단계(230)에서, 제1 피어는 예를 들어, 소스 정보를 제1 피어로부터 주변 피어로 변경하여 복제 접속 요청 패킷들을 생성할 수 있다. If it is determined in step 220 that the connection request packet is the original, the first peer generates a plurality of duplicate connection request packets by duplicating the connection request packet (230). In this case, the source information of the duplicate connection request packets may be the same as the source information of the connection request packet. In step 230, the first peer may change the source information from the first peer to the neighbor peer, for example, to generate duplicate connection request packets.
단계(220)에서 접속 요청 패킷이 복제된 것이라고 판단된 경우, 제1 피어는 접속 요청 패킷에 대응하는 접속 요청 응답(SYN ACK) 패킷을 생성하고, 접속 요청 패킷의 소스 정보에 대응하는 주변 피어로 접속 요청 응답 패킷을 전송할 수 있다. If it is determined in step 220 that the connection request packet has been duplicated, the first peer generates a SYN ACK packet corresponding to the connection request packet, and sends it to a neighboring peer corresponding to the source information of the connection request packet. The connection request response packet may be transmitted.
제1 피어는 복제 접속 요청 패킷들을 복수의 제2 피어들에게 전송한다(240). 제1 피어는 예를 들어, 복제 접속 요청 패킷들에 대응하는 접속 요청 응답(SYN ACK) 패킷들의 전송을 위한 세션을 유지하도록, 복제 접속 요청 패킷들을 복수의 제2 피어들에게 전송할 수 있다. The first peer transmits 240 duplicate connection request packets to the plurality of second peers. The first peer may send, for example, duplicate connection request packets to the plurality of second peers to maintain a session for transmission of connection request response (SYN ACK) packets corresponding to the duplicate connection request packets.
일실시예에 따르면, 서버는 딥러닝을 기반으로 접속 요청 패킷이 원본인지 또는 복제된 것인지 여부를 판단하고, 판단 결과에 기초하여 복제 접속 요청 패킷들 또는 접속 요청 응답 패킷을 생성할 수 있다. 서버는 상술한 제1 피어일 수 있다.According to an embodiment, the server may determine whether the connection request packet is original or duplicated based on deep learning, and generate duplicate connection request packets or connection request response packets based on the determination result. The server may be the first peer described above.
서버는 접속 요청 패킷에 기초하여 제1 입력 벡터를 생성할 수 있다. 여기서, 벡터는 one-hot 벡터, 실수 벡터 등 설계 의도에 따라 다양한 형태로 정의될 수 있다. 제1 입력 벡터 생성 시 접속 요청 패킷 내 다양한 변수들에 각각 가중치들이 적용될 수 있다. 여기서, 가중치들은 뉴럴 네트워크의 학습 시 최적화될 수 있다. 서버는 제1 입력 벡터를 기 학습된 제1 뉴럴 네트워크로 인가할 수 있다. 제1 입력 벡터는 제1 뉴럴 네트워크의 입력 레이어에 대응할 수 있다. The server may generate a first input vector based on the connection request packet. Here, the vector may be defined in various forms according to design intention, such as a one-hot vector or a real vector. Weights may be applied to various variables in the connection request packet when generating the first input vector. Here, the weights may be optimized when learning the neural network. The server may apply the first input vector to the first learned neural network. The first input vector may correspond to an input layer of the first neural network.
서버는 제1 입력 벡터가 인가된 제1 뉴럴 네트워크로부터 생성된 제1 출력 벡터를 생성할 수 있다. 제1 출력 벡터는 제1 뉴럴 네트워크의 출력 레이어에 대응할 수 있다. 서버는 제1 출력 벡터에 기초하여 접속 요청 패킷이 원본 또는 복제된 것인지 여부에 대한 판단 결과를 생성할 수 있다. 판단 결과의 값은 복수의 등급들과 같이 이산화되어 표현되거나 연속된 값으로 표현될 수 있다.The server may generate a first output vector generated from the first neural network to which the first input vector is applied. The first output vector may correspond to an output layer of the first neural network. The server may generate a determination result on whether the connection request packet is original or duplicated based on the first output vector. The value of the determination result may be represented discretely or as a continuous value like a plurality of grades.
일실시예에 따르면, 서버는 딥러닝을 기반으로 복제 접속 요청 패킷 또는 접속 요청 패킷을 수행할 수 있다. 패킷의 값은 미리 정의된 유형으로 표현될 수 있다.According to an embodiment, the server may perform a duplicate connection request packet or a connection request packet based on deep learning. The value of the packet may be expressed in a predefined type.
일실시예에 따르면, 서버는 제1 출력 벡터를 획득할 수 있다. 서버는 제1 출력 벡터에 기초하여, 제2 입력 벡터를 생성할 수 있다. 제2 입력 벡터 생성 시 제1 출력 벡터 내 변수들에 각각 가중치들이 적용될 수 있다. 여기서, 가중치들은 뉴럴 네트워크의 학습 시 최적화될 수 있다.According to an embodiment, the server may obtain a first output vector. The server may generate a second input vector based on the first output vector. Weights may be applied to variables in the first output vector when generating the second input vector. Here, the weights may be optimized when learning the neural network.
서버는 제2 입력 벡터를 기 학습된 제2 뉴럴 네트워크로 인가할 수 있다. 제2 입력 벡터는 제2 뉴럴 네트워크의 입력 레이어에 대응할 수 있다. The server may apply the second input vector to the previously learned second neural network. The second input vector may correspond to the input layer of the second neural network.
서버는 제2 입력 벡터가 인가된 제2 뉴럴 네트워크로부터 생성된 제2 출력 벡터를 생성할 수 있다. 제2 출력 벡터는 제2 뉴럴 네트워크의 출력 레이어에 대응할 수 있다. The server may generate a second output vector generated from the second neural network to which the second input vector is applied. The second output vector may correspond to the output layer of the second neural network.
제1 출력 벡터에 대응하는 값이 원본에 대응하는 경우, 서버는 제2 출력 벡터에 기초하여 복제 접속 요청 패킷들을 생성할 수 있다. 제1 출력 벡터에 대응하는 값이 복제에 대응하는 경우, 서버는 제2 출력 벡터에 기초하여 접속 요청 응답 패킷을 생성할 수 있다. 제2 뉴럴 네트워크는 접속 요청 패킷의 원본 또는 복제 여부에 따라 복제 접속 요청 패킷 또는 접속 요청 응답 패킷을 생성할 수 있다. 제2 뉴럴 네트워크는 패킷을 표현하는 제2 출력 벡터를 생성할 수 있다.If the value corresponding to the first output vector corresponds to the original, the server may generate duplicate connection request packets based on the second output vector. If the value corresponding to the first output vector corresponds to the duplication, the server may generate a connection request response packet based on the second output vector. The second neural network may generate a duplicate connection request packet or a connection request response packet according to the original or duplicate of the connection request packet. The second neural network may generate a second output vector representing the packet.
뉴럴 네트워크는 트레이닝 샘플들이 입력되는 입력 레이어와 트레이닝 출력들을 출력하는 출력 레이어를 포함하고, 트레이닝 출력들과 레이블들 사이의 차이에 기초하여 학습될 수 있다. 여기서, 레이블들은 접속 요청 패킷의 원본 여부에 대한 판단 결과들, 복제 접속 요청 패킷들 및 접속 요청 응답 패킷들에 기초하여 정의될 수 있다. 뉴럴 네트워크는 복수의 노드들의 그룹으로 연결되어 있고, 연결된 노드들 사이의 가중치들과 노드들을 활성화시키는 활성화 함수에 의해 정의된다. The neural network includes an input layer to which training samples are input and an output layer to output training outputs, and can be learned based on the difference between the training outputs and the labels. Here, the labels may be defined based on determination results of whether the connection request packet is original, duplicate connection request packets, and connection request response packets. A neural network is connected to a group of nodes and is defined by weights between the connected nodes and an activation function that activates the nodes.
학습 장치는 GD(Gradient Decent) 기법 또는 SGD(Stochastic Gradient Descent) 기법을 이용하여 뉴럴 네트워크를 학습시킬 수 있다. 학습 장치는 뉴럴 네트워크의 출력들 및 레이블들 의해 설계된 손실 함수를 이용할 수 있다.The learning apparatus may train a neural network using a gradient decent (GD) technique or a stochastic gradient descent (SGD) technique. The learning device may use a loss function designed by the outputs and labels of the neural network.
학습 장치는 미리 정의된 손실 함수(loss function)을 이용하여 트레이닝 에러를 계산할 수 있다. 손실 함수는 레이블, 출력 및 파라미터를 입력 변수로 미리 정의될 수 있고, 여기서 파라미터는 뉴럴 네트워크 내 가중치들에 의해 설정될 수 있다. 예를 들어, 손실 함수는 MSE(Mean Square Error) 형태, 엔트로피(entropy) 형태 등으로 설계될 수 있는데, 손실 함수가 설계되는 실시예에는 다양한 기법 또는 방식이 채용될 수 있다.The learning apparatus may calculate the training error using a predefined loss function. The loss function can be predefined with labels, outputs and parameters as input variables, where the parameters can be set by weights in the neural network. For example, the loss function may be designed in the form of Mean Square Error (MSE), entropy, or the like. Various embodiments or methods may be employed in embodiments in which the loss function is designed.
학습 장치는 역전파(backpropagation) 기법을 이용하여 트레이닝 에러에 영향을 주는 가중치들을 찾아낼 수 있다. 여기서, 가중치들은 뉴럴 네트워크 내 노드들 사이의 관계들이다. 학습 장치는 역전파 기법을 통해 찾아낸 가중치들을 최적화시키기 위해 레이블들 및 출력들을 이용한 SGD 기법을 이용할 수 있다. 예를 들어, 학습 장치는 레이블들, 출력들 및 가중치들에 기초하여 정의된 손실 함수의 가중치들을 SGD 기법을 이용하여 갱신할 수 있다.The learning apparatus may find weights that affect training errors using a backpropagation technique. Here, the weights are relationships between nodes in the neural network. The learning apparatus may use the SGD technique with labels and outputs to optimize the weights found through the backpropagation technique. For example, the learning apparatus can update the weights of the loss function defined based on the labels, outputs and weights using the SGD technique.
서버는 학습이 완료된 뉴럴 네트워크를 이용하여 제1 출력 벡터 및 제2 출력 벡터를 획득하고, 접속 요청 패킷의 원본 여부를 판단하고, 복제 접속 요청 패킷들 또는 접속 요청 응답 패킷들을 생성할 수 있다.The server may acquire the first output vector and the second output vector by using the neural network on which the learning is completed, determine whether the connection request packet is original, and generate duplicate connection request packets or connection request response packets.
도 3은 일 실시예에 따른 3-웨이 핸드쉐이킹 과정을 설명하기 위한 도면이다. 예를 들어, 수신자 피어에게 접속 요청(SYN) 패킷이 전송되었다고 하자(310). 수신자 피어는 소스 정보를 수신자 피어로부터 주변 피어로 변경하여 복제 접속 요청 패킷들을 생성하고, 생성한 복제 접속 요청 패킷을 다른 피어에게 전송할 수 있다(320). 복제 접속 요청 패킷을 수신한 다른 피어는 수신자 피어를 대신하여 접속 요청 응답(SYN ACK) 패킷을 전송한다(330).3 is a diagram illustrating a 3-way handshaking process according to an embodiment. For example, assume that a connection request (SYN) packet has been sent to the recipient peer (310). The receiver peer may change the source information from the receiver peer to the neighbor peer to generate duplicate connection request packets, and send the generated duplicate connection request packet to another peer (320). The other peer receiving the duplicate connection request packet transmits a connection request response (SYN ACK) packet on behalf of the receiver peer (330).
다른 피어로부터 접속 요청 응답(SYN ACK) 패킷을 수신한 서버는 수신자 피어에게 애크(ACK) 패킷을 전송하여 세션을 수립할 수 있다. The server receiving the SYN ACK packet from another peer may establish an session by sending an ACK packet to the receiver peer.
도 4는 일 실시예예 따른 피어들 간의 접속 요청(SYN) 패킷 및 복제 접속 요청 패킷들의 전송 과정을 설명하기 위한 도면이다. 도 4를 참조하면, 접속 요청(SYN) 발생자 피어(401), 제1 피어(403), 및 복수의 제2 피어들(405, 407, 409)이 도시된다.4 is a diagram illustrating a transmission process of a connection request (SYN) packet and a duplicate connection request packet between peers according to an embodiment. Referring to FIG. 4, a connection request generator (SYN)
접속 요청(SYN) 발생자 피어(401)가 제1 피어(403)에게 연속적으로 원본인 접속 요청(SYN) 패킷을 전송한다고 하자. 이때, 접속 요청(SYN) 패킷의 소스 정보는 접속 요청(SYN) 발생자 피어(401)이고, 데스티네이션 정보는 제1 피어(403)일 수 있다. 제1 피어(403)는 접속 요청 패킷을 복제하여 복수의 복제 접속 요청 패킷들을 생성하고, 복제 접속 요청 패킷들을 복수의 제2 피어들(405, 407, 409)에게 전송할 수 있다. 이때, 복제 접속 요청 패킷들의 소스 정보들은 접속 요청 패킷의 소스 정보인 접속 요청(SYN) 발생자 피어(401)와 같을 수 있다. 따라서, 복제 접속 요청 패킷들을 수신한 복수의 제2 피어들(405, 407, 409)은 복제 접속 요청 패킷들의 소스 정보들(예를 들어, 접속 요청(SYN) 발생자 피어(401))에 따라 접속 요청 응답 패킷들을 접속 요청(SYN) 발생자 피어(401)에게 전송할 수 있다. Assume that the connection request (SYN)
이때, 주변 피어, 다시 말해 복수의 제2 피어들(405, 407, 409)로부터 접속 요청 응답 패킷들을 수신한 접속 요청(SYN) 발생자 피어(401)는 수신한 접속 요청 응답 패킷들이 기 전송된 접속 요청 패킷에 대응하는지 여부를 판단할 수 있다. 접속 요청(SYN) 발생자 피어(401)는 예를 들어, 기 전송된 접속 요청 패킷의 시퀀스 번호 및 접속 요청 응답 패킷들의 시퀀스 번호들에 기초하여, 접속 요청 응답 패킷들이 기 전송된 접속 요청 패킷에 대응하는지 여부를 판단할 수 있다. In this case, the
예를 들어, 수신한 접속 요청 응답 패킷들이 기 전송된 접속 요청 패킷에 대응한다고 판단되면, 접속 요청(SYN) 발생자 피어(401)는 세션 수립(establish)을 위한 애크(ACK) 패킷을 생성할 수 있다. 접속 요청(SYN) 발생자 피어(401)는 기 전송된 접속 요청 패킷의 데스티네이션 정보에 대응하는 주변 피어, 다시 말해 제1 피어(403)로 애크 패킷을 전송할 수 있다. For example, if it is determined that the received connection request response packets correspond to the previously transmitted connection request packet, the
일 실시예에 따르면, 접속 요청(SYN) 공격에 대해 P2P로 여러 대의 피어들을 통해 접속 요청 응답 패킷들을 분산시킴으로써 개별 피어가 받는 공격에 대한 응답 부하를 감소시킬 수 있다. 예를 들어, 접속 요청(SYN) 패킷의 수신과 접속 요청 응답 패킷의 전송에 각각 100 바이트(byte)의 메모리가 소모된다고 하면, 200 바이트의 수발신 처리 공간을 요구하며, 그 만큼 프로세서의 부하도 커지게 된다. 따라서, 접속 요청 응답 패킷들을 분산시키는 것만으로도 처리 공간 및 프로세서의 부하를 절반으로 줄여 우회 공격의 질을 떨어뜨리고, 공격에 대한 효과 또한 감소시킬 수 있다. According to an embodiment, the response load for an attack received by an individual peer may be reduced by distributing connection request response packets through multiple peers in P2P for a connection request (SYN) attack. For example, if 100 bytes of memory are consumed to receive a connection request (SYN) packet and to transmit a connection request response packet, 200 bytes of call processing space is required, and the load on the processor is high. You lose. Therefore, simply distributing the connection request response packets can reduce the processing space and the processor load in half to reduce the quality of the bypass attack and reduce the effects on the attack.
도 5는 일 실시예에 따른 복수의 복제 접속 요청 패킷들의 생성 및 전송 과정을 설명하기 위한 도면이다. 도 5를 참조하면, 접속 요청(SYN) 발생자에 해당하는 피어 #10(Peer #10)(501)이 연속적인 접속 요청(SYN) 패킷들(502)을 전송하여 피어 #1(Peer #1)(503)을 공격하는 상황이 도시된다. 이때, 접속 요청(SYN) 패킷들(502)의 소스 정보는 피어 #10(501)이 아닌 현재 네트워크 상에 존재하지 않는 피어 #50으로 기재되고, 데스티네이션 정보는 피어 #1(503)으로 기재될 수 있다. 접속 요청(SYN) 패킷들(502)을 수신한 피어 #1(503)은 접속 요청 패킷들(502)을 복제하여 복수의 복제 접속 요청 패킷들(504, 506, 508)을 생성할 수 있다. 이때, 복제 접속 요청 패킷들의 소스 정보들은 접속 요청 패킷(502)의 소스 정보인 피어 #50와 같고, 데스티네이션 정보는 복수의 제2 피어들((피어 #2(505), 피어 #3(507), 피어 #4(509)))일 수 있다. 피어 #1(503)은 복제 접속 요청 패킷들(504, 506, 508)을 복수의 제2 피어들(505, 507, 509)에게 전송할 수 있다.5 is a diagram for describing a process of generating and transmitting a plurality of duplicate connection request packets according to an embodiment. Referring to FIG. 5, peer # 10 (501) corresponding to the originator of a connection request (SYN) transmits consecutive connection request (SYN)
복제 접속 요청 패킷들(504, 506, 508)을 수신한 복수의 제2 피어들(505, 507, 509)은 복제 접속 요청 패킷들의 소스 정보들(예를 들어, 피어 #50)에 따라 접속 요청 응답 패킷들을 피어 #50에게 전송할 수 있다. The plurality of
네트워크 상에 피어 #50이 존재하지 않으므로, 접속 요청 응답 패킷들을 TTL (Time to live)에 따라 일정 시간이 지난 후 소멸할 수 있다. 이때, 각 접속 요청 응답 패킷의 TTL 은 네트워크 상에서 패킷이 오랫동안 돌아다니는 것을 방지하기 위해서 패킷이 살아있을 시간을 지정하여 이 값으로 패킷을 자동 소멸하도록 만든 것일 수 있다. TTL은 기본값은 예를 들어, 0xFF (255) 일 수 있다. Since
도 6은 일 실시예에 따른 복수의 복제 접속 요청 패킷들의 전송 및 이에 대응하는 애크 패킷의 전송 과정을 설명하기 위한 도면이다. 도 6을 참조하면, 접속 요청(SYN) 발생자에 해당하는 피어 #10(Peer #10)(601)이 연속적인 접속 요청(SYN) 패킷들(611)을 전송하여 피어 #1(Peer #1)(602) 및 피어 #50(Peer #50)(606)을 공격하는 상황이 도시된다. 이때, 접속 요청(SYN) 패킷들(611)의 소스 정보는 피어 #10(601)이 아닌 피어 #50(Peer #50)(606)으로 기재되고, 데스티네이션 정보는 피어 #1(602)으로 기재될 수 있다. 6 is a diagram illustrating a transmission of a plurality of duplicate connection request packets and a transmission process of an Ack packet corresponding thereto according to an embodiment. Referring to FIG. 6, peer # 10 (601) corresponding to a connection request (SYN) originator transmits consecutive connection request (SYN)
피어 #10(601)로부터 접속 요청(SYN) 패킷들(611)을 수신한 피어 #1(602)은 접속 요청 패킷들(611)을 복제하여 복수의 복제 접속 요청 패킷들(612, 613, 614)을 생성할 수 있다. 이때, 복제 접속 요청 패킷들(612, 613, 614)의 소스 정보들은 접속 요청 패킷(611)의 소스 정보인 피어 #50와 같고, 데스티네이션 정보는 복수의 제2 피어들(피어 #2(603), 피어 #3(604), 피어 #4(605))일 수 있다. 피어 #1(602)은 복제 접속 요청 패킷들(612, 613, 614)을 복수의 제2 피어들(603, 604, 605)에게 전송할 수 있다.Receiving connection request (SYN)
복제 접속 요청 패킷들(612, 613, 614)을 수신한 복수의 제2 피어들(603, 604, 605)은 복제 접속 요청 패킷들의 소스 정보들(예를 들어, 피어 #50)에 따라 복제 접속 요청 응답 패킷(복제 SIN ACK)들을 피어 #50(606)에게 전송할 수 있다. The plurality of
복제 접속 요청 응답 패킷(복제 SIN ACK)들을 수신한 피어 #50(606)는 예를 들어, 수신한 접속 요청 응답 패킷들이 기 전송된 접속 요청 패킷에 대응한다고 판단되면, 세션 수립(establish)을 위한 애크(ACK) 패킷을 생성하여 전송할 수 있다. 하지만, 피어 #50(606)는 접속 요청 패킷을 전송한 적이 없으므로, 애크(ACK) 패킷을 생성 및/또는 전송하지 않을 수 있다.
도 7은 일 실시예에 따른 통신 장치의 블록도이다. 도 7을 참조하면, 일 실시예에 따른 통신 장치(700)는 프로세서(710), 메모리(730) 및 통신 인터페이스(750)를 포함할 수 있다. 프로세서(710), 메모리(730) 및 통신 인터페이스(750)는 통신 버스(705)를 통해 서로 통신할 수 있다. 7 is a block diagram of a communication device according to an embodiment. Referring to FIG. 7, a
프로세서(710)는 통신 인터페이스(750)를 통해 수신한 접속 요청 패킷이 원본인지 또는 복제된 것인지 여부를 판단한다. 프로세서(710)는 접속 요청 패킷이 원본이라고 판단된 경우, 접속 요청 패킷을 복제하여 복수의 복제 접속 요청 패킷들을 생성한다. 프로세서(710)에 의하여 실행되는 프로그램 코드는 메모리(730)에 저장될 수 있다. The
메모리(730)는 휘발성 메모리 또는 비 휘발성 메모리일 수 있다. 메모리(730)는 예를 들어, 프로세서(710)에 의해 실행될 때, 프로세서(710)가 도 1 내지 도 6과 관련하여 설명하는 과정들 중 어느 하나 또는 이들의 조합을 실행하도록 하는 명령어들을 저장할 수 있다.The
통신 인터페이스(750)는 주변 피어로부터 제1 피어로의 접속 요청 패킷을 수신한다. 또한, 통신 인터페이스(750)는 복제 접속 요청 패킷들을 복수의 제2 피어들에게 전송한다. The
이 밖에도, 프로세서(710)는 도 1 내지 도 6에서 통신 장치(700)와 관련하여 기술된 동작들 중 어느 하나 또는 이들의 조합을 실행할 수 있다.In addition, the
본 발명의 일 실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 실행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 생성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 실행하도록 특별히 생성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 실행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 생성될 수 있으며, 그 역도 마찬가지이다.Method according to an embodiment of the present invention can be implemented in the form of program instructions that can be executed by various computer means may be recorded on a computer readable medium. The computer readable medium may include program instructions, data files, data structures, etc. alone or in combination. The program instructions recorded on the media may be those specially designed and generated for the present invention, or they may be of the kind well-known and available to those having skill in the computer software arts. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tape, optical media such as CD-ROMs, DVDs, and magnetic disks, such as floppy disks. Magneto-optical media, and hardware devices specifically created to store and execute program instructions, such as ROM, RAM, flash memory, and the like. Examples of program instructions include not only machine code generated by a compiler, but also high-level language code that can be executed by a computer using an interpreter or the like. The hardware device described above may be created to operate as one or more software modules to perform the operations of the present invention, and vice versa.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변이가 가능하다. 그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.As described above, the present invention has been described by way of limited embodiments and drawings, but the present invention is not limited to the above embodiments, and those skilled in the art to which the present invention pertains have various modifications and variations from these descriptions. Is possible. Therefore, the scope of the present invention should not be limited to the described embodiments, but should be defined not only by the claims below, but also by those equivalent to the claims.
700: 통신 장치
705: 통신 버스
710: 프로세서
730: 메모리
750: 통신 인터페이스700: communication device
705: communication bus
710: processor
730: memory
750: communication interface
Claims (9)
상기 접속 요청 패킷이 상기 주변 피어에 의해 최초로 생성된 것인지 여부에 기초하여, 상기 접속 요청 패킷이 원본인지 또는 복제된 것인지 여부를 판단하는 단계;
상기 접속 요청 패킷이 원본이라고 판단된 경우,
소스 정보를 상기 제1 피어로부터 상기 주변 피어에 대응하도록 변경하고, 데스티네이션 정보를 복수의 제2 피어들에 대응시켜, 상기 접속 요청 패킷을 복제하는 단계;
상기 복제에 의해, 상기 접속 요청 패킷의 소스 정보와 같은 소스 정보들을 지닌 복수의 복제 접속 요청 패킷들을 생성하는 단계; 및
상기 복제 접속 요청 패킷들을 상기 복수의 제2 피어들에게 전송하는 단계
를 포함하고,
상기 접속 요청 패킷이 복제된 것이라고 판단된 경우,
상기 접속 요청 패킷에 대응하는 접속 요청 응답(SYN ACK) 패킷을 생성하는 단계; 및
상기 접속 요청 패킷의 소스 정보에 대응하는 주변 피어로 상기 접속 요청 응답 패킷을 전송하는 단계
를 포함하는, 통신 방법.
A connection request (SYN) packet from a neighbor peer to a first peer-source information of the connection request packet corresponds to the neighbor peer, and destination information of the connection request packet is the first peer. Corresponding to the peer;
Determining whether the connection request packet is original or duplicated, based on whether the connection request packet was originally generated by the neighboring peer;
If it is determined that the access request packet is the original,
Changing source information from the first peer to correspond to the neighboring peer, and corresponding destination information to a plurality of second peers, thereby replicating the connection request packet;
Generating, by the copy, a plurality of duplicate connection request packets having source information such as source information of the connection request packet; And
Sending the duplicate connection request packets to the plurality of second peers.
Including,
If it is determined that the access request packet has been duplicated,
Generating a connection request response (SYN ACK) packet corresponding to the connection request packet; And
Transmitting the access request response packet to a neighboring peer corresponding to source information of the access request packet.
Including, communication method.
상기 접속 요청 패킷이 원본인지 또는 복제된 것인지 여부를 판단하는 단계는
상기 접속 요청 패킷에 기초하여 제1 입력 벡터를 생성하는 단계;
상기 제1 입력 벡터를 기 학습된 제1 뉴럴 네트워크로 인가하는 단계;
상기 제1 뉴럴 네트워크에 의해 생성된 제1 출력 벡터를 획득하는 단계; 및
상기 제1 출력 벡터에 기초하여 상기 접속 요청 패킷이 원본인지 또는 복제된 것인지 여부를 판단하는 단계
를 포함하고,
상기 제1 뉴럴 네트워크의 입력 레이어는 상기 제1 입력 벡터에 대응하고,
상기 제1 뉴럴 네트워크의 출력 레이어는 상기 제1 출력 벡터에 대응하고,
상기 제1 뉴럴 네트워크는 트레이닝 접속 요청 패킷들의 원본 여부에 대한 판단 결과들에 기초하여 정의된 레이블들 및 상기 트레이닝 접속 요청 패킷들에 대응하는 트레이닝 출력들 사이의 차이에 기초하여 학습된,
통신 방법.
The method of claim 1,
Determining whether the access request packet is original or duplicated
Generating a first input vector based on the connection request packet;
Applying the first input vector to a first learned neural network;
Obtaining a first output vector generated by the first neural network; And
Determining whether the access request packet is original or duplicated based on the first output vector
Including,
An input layer of the first neural network corresponds to the first input vector,
The output layer of the first neural network corresponds to the first output vector,
The first neural network is trained based on a difference between labels defined based on determination results of whether the training connection request packets are original and training outputs corresponding to the training connection request packets.
Communication method.
상기 제1 출력 벡터에 대응하는 값이 원본에 대응하는 경우,
상기 복제 접속 요청 패킷들을 생성하는 단계는
상기 접속 요청 패킷이 원본인지 또는 복제된 것인지에 대한 판단에 대응하는 상기 제1 출력 벡터에 기초하여 제2 입력 벡터를 생성하는 단계;
상기 제2 입력 벡터를 기 학습된 제2 뉴럴 네트워크로 인가하는 단계;
상기 제2 뉴럴 네트워크에 의해 생성된 제2 출력 벡터를 획득하는 단계; 및
상기 제2 출력 벡터에 기초하여 상기 복제 접속 요청 패킷들을 생성하는 단계
를 포함하고,
상기 제1 출력 벡터에 대응하는 값이 복제에 대응하는 경우,
상기 접속 요청 응답 패킷을 생성하는 단계는
상기 접속 요청 패킷이 원본인지 또는 복제된 것인지에 대한 판단에 대응하는 상기 제1 출력 벡터에 기초하여 상기 제2 입력 벡터를 생성하는 단계;
상기 제2 입력 벡터를 상기 제2 뉴럴 네트워크로 인가하는 단계;
상기 제2 뉴럴 네트워크에 의해 생성된 상기 제2 출력 벡터를 획득하는 단계; 및
상기 제2 출력 벡터에 기초하여 상기 접속 요청 응답 패킷을 생성하는 단계
를 포함하는,
통신 방법.
The method of claim 2,
If the value corresponding to the first output vector corresponds to the original,
Generating the duplicate connection request packets
Generating a second input vector based on the first output vector corresponding to determining whether the access request packet is original or duplicated;
Applying the second input vector to a previously learned second neural network;
Obtaining a second output vector generated by the second neural network; And
Generating the duplicate connection request packets based on the second output vector
Including,
If a value corresponding to the first output vector corresponds to duplication,
Generating the access request response packet
Generating the second input vector based on the first output vector corresponding to determining whether the connection request packet is original or duplicated;
Applying the second input vector to the second neural network;
Obtaining the second output vector generated by the second neural network; And
Generating the connection request response packet based on the second output vector
Including,
Communication method.
상기 접속 요청 패킷이 원본인지 또는 복제된 것인지 여부를 판단하는 단계는
상기 접속 요청 패킷의 헤더(header)에 포함된 특정 비트의 플래그(flag)를 기초로, 상기 접속 요청 패킷이 원본인지 또는 복제된 것인지 여부를 판단하는 단계
를 포함하는, 통신 방법.
The method of claim 1,
Determining whether the access request packet is original or duplicated
Determining whether the connection request packet is original or duplicated based on a flag of a specific bit included in a header of the connection request packet;
Including, communication method.
주변 피어들로부터 상기 제1 피어로의 접속 요청 응답 패킷들을 수신하는 단계;
상기 수신한 접속 요청 응답 패킷들이 상기 제1 피어에 의해 기 전송된 접속 요청 패킷에 대응하는지 여부를 판단하는 단계;
상기 판단 결과에 기초하여, 세션 수립(establish)을 위한 애크(ACK) 패킷을 생성하는 단계; 및
상기 기 전송된 접속 요청 패킷의 데스티네이션 정보에 대응하는 주변 피어로 상기 애크 패킷을 전송하는 단계
를 더 포함하는, 통신 방법.
The method of claim 1,
Receiving connection request response packets from peripheral peers to the first peer;
Determining whether the received connection request response packets correspond to a connection request packet previously transmitted by the first peer;
Generating an ACK packet for establishing a session based on the determination result; And
Transmitting the Ack packet to a neighboring peer corresponding to the destination information of the previously transmitted connection request packet.
Further comprising, a communication method.
상기 접속 요청 응답 패킷들이 상기 기 전송된 접속 요청 패킷에 대응하는지 여부를 판단하는 단계는
상기 기 전송된 접속 요청 패킷의 시퀀스 번호 및 상기 접속 요청 응답 패킷들의 시퀀스 번호들에 기초하여, 상기 접속 요청 응답 패킷들이 상기 기 전송된 접속 요청 패킷에 대응하는지 여부를 판단하는 단계
를 포함하는, 통신 방법.
The method of claim 6,
Determining whether the access request response packets correspond to the previously transmitted access request packet
Determining whether the connection request response packets correspond to the previously transmitted connection request packet based on the sequence number of the previously transmitted connection request packet and the sequence numbers of the connection request response packets.
Including, communication method.
A computer program stored in a medium in combination with hardware to carry out the method of any one of claims 1 to 3 and 5 to 7.
상기 접속 요청 패킷이 상기 주변 피어에 의해 최초로 생성된 것인지 여부에 기초하여, 상기 접속 요청 패킷이 원본인지 또는 복제된 것인지 여부를 판단하고,
상기 접속 요청 패킷이 원본이라고 판단된 경우,
소스 정보를 상기 제1 피어로부터 상기 주변 피어에 대응하도록 변경하고, 데스티네이션 정보를 복수의 제2 피어들에 대응시켜, 상기 접속 요청 패킷을 복제하고,
상기 복제에 의해, 상기 접속 요청 패킷의 소스 정보와 같은 소스 정보들을 지닌 복수의 복제 접속 요청 패킷들을 생성하고,
상기 복제 접속 요청 패킷들을 상기 복수의 제2 피어들에게 전송하며,
상기 접속 요청 패킷이 복제된 것이라고 판단된 경우,
상기 접속 요청 패킷에 대응하는 접속 요청 응답(SYN ACK) 패킷을 생성하고,
상기 접속 요청 패킷의 소스 정보에 대응하는 주변 피어로 상기 접속 요청 응답 패킷을 전송하는 프로세서
를 포함하는
통신 장치.
A connection request packet from a neighbor peer to a first peer, wherein source information of the connection request packet corresponds to the neighbor peer, and destination information of the connection request packet corresponds to the first peer; A receiving communication interface; And
Determine whether the connection request packet is original or duplicated, based on whether the connection request packet was originally generated by the neighboring peer,
If it is determined that the access request packet is the original,
Change the source information from the first peer to correspond to the neighboring peer, the destination information to correspond to a plurality of second peers, duplicate the connection request packet,
Generating, by the copy, a plurality of duplicate connection request packets having source information such as source information of the connection request packet,
Send the duplicate connection request packets to the plurality of second peers,
If it is determined that the access request packet has been duplicated,
Generate a connection request response (SYN ACK) packet corresponding to the connection request packet;
A processor for transmitting the access request response packet to a neighboring peer corresponding to the source information of the access request packet
Containing
Communication device.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180173003A KR102015735B1 (en) | 2018-12-28 | 2018-12-28 | Communication method and apparatus of peer for peer to peer(p2p) handshaking control |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180173003A KR102015735B1 (en) | 2018-12-28 | 2018-12-28 | Communication method and apparatus of peer for peer to peer(p2p) handshaking control |
Publications (1)
Publication Number | Publication Date |
---|---|
KR102015735B1 true KR102015735B1 (en) | 2019-08-28 |
Family
ID=67774900
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020180173003A KR102015735B1 (en) | 2018-12-28 | 2018-12-28 | Communication method and apparatus of peer for peer to peer(p2p) handshaking control |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102015735B1 (en) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060230129A1 (en) * | 2005-02-04 | 2006-10-12 | Nokia Corporation | Apparatus, method and computer program product to reduce TCP flooding attacks while conserving wireless network bandwidth |
US20140283057A1 (en) * | 2013-03-15 | 2014-09-18 | Mehdi Mahvi | Tcp validation via systematic transmission regulation and regeneration |
US20160308727A1 (en) * | 2013-12-10 | 2016-10-20 | Universidad De Alcala | Method for establishing and clearing paths and forwarding frames for transport connections, and network bridge |
-
2018
- 2018-12-28 KR KR1020180173003A patent/KR102015735B1/en active IP Right Grant
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060230129A1 (en) * | 2005-02-04 | 2006-10-12 | Nokia Corporation | Apparatus, method and computer program product to reduce TCP flooding attacks while conserving wireless network bandwidth |
US20140283057A1 (en) * | 2013-03-15 | 2014-09-18 | Mehdi Mahvi | Tcp validation via systematic transmission regulation and regeneration |
US20160308727A1 (en) * | 2013-12-10 | 2016-10-20 | Universidad De Alcala | Method for establishing and clearing paths and forwarding frames for transport connections, and network bridge |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110915188B (en) | Method and system for efficiently propagated probabilistic relays in blockchain networks | |
JP7559111B2 (en) | Method and special network node for fast propagation in a blockchain network | |
RU2716558C1 (en) | Performing modification of primary node in distributed system | |
RU2723072C1 (en) | Achieving consensus between network nodes in distributed system | |
Neudecker et al. | Timing analysis for inferring the topology of the bitcoin peer-to-peer network | |
EP3907973A1 (en) | Method for establishing communication connection and proxy server | |
Jankowski et al. | PadSteg: Introducing inter-protocol steganography | |
JP6178932B2 (en) | Method and apparatus for controlling handshaking in a packet transmission network | |
CN111801925A (en) | Block chain based system and method for propagating data in a network | |
KR20200081533A (en) | Blockchain Consensus Method based Improved Dynamic Blind Voting for Internet of Things Environment | |
JP2007509405A (en) | Island Recovery in a Peer-to-Peer Relay Network | |
US20090141713A1 (en) | Remote Message Routing Device and Methods Thereof | |
CN111064813B (en) | Method and device for synchronizing processing messages during block chain consensus processing | |
KR101627256B1 (en) | Session handover method for network communication having distributed servers | |
KR102015735B1 (en) | Communication method and apparatus of peer for peer to peer(p2p) handshaking control | |
US9936011B2 (en) | Distributed database, method of sharing data, program storing medium, and apparatus for a distributed database | |
CN115866189B (en) | Video data safety transmission method for cloud conference | |
CN108965398B (en) | Control method of Internet of things equipment based on block chain | |
CN114500021B (en) | Attack detection method and device, electronic equipment and storage medium | |
JP2005267520A (en) | Mutual certificate authentication system, and mutual certificate authentication method | |
RU2696330C1 (en) | Method of protecting computer networks | |
CN107948165B (en) | Secure broadcast system and method based on private protocol | |
KR101730403B1 (en) | Method of managing network route and network entity enabling the method | |
CN112243160A (en) | Data transmission method, device, terminal equipment and storage medium | |
Fesehaye et al. | SNC: scalable NDN-based conferencing architecture |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |