KR20130055496A - Method for preventing of torrent traffic in network - Google Patents
Method for preventing of torrent traffic in network Download PDFInfo
- Publication number
- KR20130055496A KR20130055496A KR1020120019803A KR20120019803A KR20130055496A KR 20130055496 A KR20130055496 A KR 20130055496A KR 1020120019803 A KR1020120019803 A KR 1020120019803A KR 20120019803 A KR20120019803 A KR 20120019803A KR 20130055496 A KR20130055496 A KR 20130055496A
- Authority
- KR
- South Korea
- Prior art keywords
- torrent
- network
- request message
- packet
- http
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1074—Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
- H04L67/1078—Resource delivery 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/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- 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/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- 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/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
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
Description
아래의 실시예들은 네트워크의 토렌트 트래픽 선별 차단 방법에 관한 것이다.
The following embodiments are related to a torrent traffic screening blocking method of a network.
비트 토렌트(BitTorrent)는 P2P(peer-to-peer) 파일 전송 프로토콜의 이름이자 그것을 이용하는 응용 소프트웨어의 이름이다. 비트 토렌트를 이용하면 파일을 인터넷 상에 분산하여 저장하여 놓고 다수의 접속을 사용하여 여러 곳에서 동시에 파일을 가져오게 되어 전송 속도가 빨라진다. BitTorrent is the name of a peer-to-peer file transfer protocol and the name of the application software that uses it. BitTorrent speeds up transfers by distributing and storing files across the Internet and fetching files from multiple locations simultaneously using multiple connections.
비트 토렌트 프로토콜은 프로그래머 브램 코헨이 창안하였으며, 2001년 4월부터 설계되어 최초의 구현이 2001년 7월 2일 발표되었다. 현재는 코헨이 창립한 회사인 비트 토렌트 Inc. 가 이것을 유지보수하고 있다. 본래 비트 토렌트 프로그램은 분산 해시 테이블을 활용하여 파이썬으로 작성되었으며 오픈 소스 저작권하에서 배포되고 있다. 그 외에도 비트 토렌트 프로토콜과 호환되는 각종 비트 토렌트 클라이언트가 출시되어 있다.
The BitTorrent protocol was invented by programmer Bram Cohen and was designed since April 2001, with the first implementation released on July 2, 2001. BitTorrent Inc., a company founded by Cohen. Is maintaining this. Originally, BitTorrent programs were written in Python using distributed hash tables and are distributed under open source copyright. In addition, there are a variety of BitTorrent clients that are compatible with the BitTorrent protocol.
본 발명의 일실시예들은 네트워크를 통하여 외부 단말 장치로 송수신되는 데이터를 감지하고, 상기 감지된 데이터가 토렌트 트래픽과 관련된 적어도 하나의 미리 정해진 조건을 만족하는지 판단하며, 상기 판단 결과를 기초로 상기 감지된 데이터를 차단함으로써, 네트워크의 토렌트 트래픽을 선별하여 이를 차단하는 기술을 제공한다.
An embodiment of the present invention detects data transmitted and received to an external terminal device through a network, determines whether the detected data meets at least one predetermined condition related to torrent traffic, and based on the determination result, By blocking the data, it provides a technology to screen and block the torrent traffic of the network.
본 발명의 일실시예에 따른 네트워크의 토렌트 트래픽 선별 차단 방법은 네트워크를 통하여 외부 단말 장치로 송신되는 데이터가 HTTP 겟 리퀘스트(HTTP Get Request) 메시지인지 여부를 감지하는 단계; 상기 감지 결과를 기초로 상기 HTTP 겟 리퀘스트 메시지가 토렌트(torrent) 트래픽과 관련된 필수 파라미터들을 포함하고 있는지 여부를 판단하는 단계; 및 상기 판단 결과를 기초로 상기 HTTP 겟 리퀘스트 메시지를 차단하는 단계를 포함한다. The torrent traffic screening blocking method of the network according to an embodiment of the present invention includes detecting whether an HTTP get request message is transmitted to an external terminal device through a network; Determining whether the HTTP get request message includes essential parameters related to torrent traffic based on the detection result; And blocking the HTTP get request message based on the determination result.
상기 필수 파라미터들은 info_hash, peer_id, ip, port, uploaded, downloaded, left, 및 event 등을 포함할 수 있고, 본 발명은 적어도 info_hash, peer_id, 및 port와 같은 파라미터들을 이용하여 토렌트 트래픽을 선별적으로 차단할 수 있다.The required parameters may include info_hash, peer_id, ip, port, uploaded, downloaded, left, and event, etc. The present invention may selectively block torrent traffic using at least parameters such as info_hash, peer_id, and port. Can be.
상기 차단하는 단계는 상기 판단 결과를 기초로 상기 HTTP 겟 리퀘스트 메시지에 포함된 유저 에이전트(User Agent)에 대한 파라미터가 미리 설정된 패턴을 가지는지 여부를 검사하는 단계; 및 상기 검사 결과를 기초로 상기 HTTP 겟 리퀘스트 메시지의 차단을 수행하는 단계를 포함할 수 있다. The blocking may include checking whether a parameter for a user agent included in the HTTP get request message has a preset pattern based on the determination result; And blocking the HTTP get request message based on the check result.
상기 미리 설정된 패턴은 uTorrent, Azureus 등과 같은 다양한 문자열들을 포함할 수 있다.The preset pattern may include various strings such as uTorrent, Azureus, and the like.
본 발명의 일실시예에 따른 네트워크의 토렌트 트래픽 선별 차단 방법은 네트워크를 통하여 외부 단말 장치와 송수신되는 데이터가 UDP 패킷인지 여부를 감지하는 단계; 상기 감지 결과를 기초로 상기 UDP 패킷이 토렌트 트래픽과 관련된 복수의 구조체들 중 적어도 어느 하나와 크기가 같은지 여부 및 상기 UDP 패킷에 포함된 특정 파라미터가 미리 정해진 범위 내의 값을 갖는지 여부를 판단하는 단계; 및 상기 판단 결과를 기초로 상기 UDP 패킷을 차단하는 단계를 포함한다. Torrent traffic screening blocking method of the network according to an embodiment of the present invention comprises the steps of detecting whether the data transmitted and received with the external terminal device via the network is a UDP packet; Determining whether the UDP packet is the same size as at least one of a plurality of structures associated with torrent traffic and whether a specific parameter included in the UDP packet has a value within a predetermined range based on the detection result; And blocking the UDP packet based on the determination result.
상기 복수의 구조체들은 UDP 트래커 프로토콜(UDP 트래커(tracker) Protocol)에 포함되는 커넥트 요청(connect request) 메시지와 관련된 구조체; UDP 트래커 프로토콜에 포함되는 어나운스 요청(announce request) 메시지와 관련된 구조체; 및 UDP 트래커 프로토콜에 포함되는 오류 응답(error response) 메시지와 관련된 구조체 중 적어도 하나를 포함할 수 있다.The plurality of structures includes: a structure associated with a connect request message included in a UDP tracker protocol; A structure associated with an announce request message included in the UDP tracker protocol; And a structure related to an error response message included in the UDP tracker protocol.
상기 특정 파라미터는 액션(action)에 대한 파라미터를 포함하고, 상기 미리 정해진 범위 내의 값은 미리 설정된 복수의 정수 값들을 포함할 수 있다.The specific parameter may include a parameter for an action, and a value within the predetermined range may include a plurality of preset integer values.
본 발명의 일실시예에 따른 네트워크의 토렌트 트래픽 선별 차단 방법은 네트워크를 통하여 외부 단말 장치와 송수신되는 데이터가 TCP 패킷 또는 UDP 패킷인지 여부를 감지하는 단계; 상기 감지 결과를 기초로 상기 TCP 패킷 또는 상기 UDP 패킷의 크기가 미리 설정된 크기보다 큰지 여부 및 상기 TCP 패킷 또는 상기 UDP 패킷이 미리 정해진 위치에 미리 설정된 패턴을 가지는지 여부를 판단하는 단계; 및 상기 판단 결과를 기초로 상기 TCP 패킷 또는 상기 UDP 패킷을 차단하는 단계를 포함한다. Torrent traffic screening blocking method of the network according to an embodiment of the present invention comprises the steps of detecting whether the data transmitted and received with the external terminal device via the network is a TCP packet or a UDP packet; Determining whether the size of the TCP packet or the UDP packet is larger than a preset size and whether the TCP packet or the UDP packet has a preset pattern at a predetermined position based on the detection result; And blocking the TCP packet or the UDP packet based on the determination result.
상기 미리 설정된 크기는 69 바이트를 포함할 수 있다.The preset size may include 69 bytes.
상기 미리 정해진 위치는 상기 TCP 패킷 또는 상기 UDP 패킷의 첫 20 바이트를 포함하고, 상기 미리 설정된 패턴은 0x13(이것은 16진수 표현임)을 포함하는 문자 및 BitTorrent protocol을 포함하는 문자열을 포함할 수 있다.
The predetermined position may include the first 20 bytes of the TCP packet or the UDP packet, and the preset pattern may include a character string including 0x13 (this is a hexadecimal representation) and a string including the BitTorrent protocol.
본 발명의 일실시예들은 네트워크를 통하여 외부 단말 장치로 송수신되는 데이터를 감지하고, 상기 감지된 데이터가 토렌트 트래픽과 관련된 적어도 하나의 미리 정해진 조건을 만족하는지 판단하며, 상기 판단 결과를 기초로 상기 감지된 데이터를 차단함으로써, 네트워크의 토렌트 트래픽을 선별하여 이를 차단하는 기술을 제공할 수 있다.
An embodiment of the present invention detects data transmitted and received to an external terminal device through a network, determines whether the detected data meets at least one predetermined condition related to torrent traffic, and based on the determination result, By blocking the data, it is possible to provide a technique for screening and blocking the torrent traffic of the network.
도 1은 본 발명의 일실시예에 따른 HTTP 트래커 겟 리퀘스트(HTTP 트래커(tracker) Get Request) 메시지를 이용한 네트워크의 토렌트 트래픽 선별 차단 방법을 설명하는 블록도이다.
도 2는 본 발명의 일실시예에 따른 UDP 트래커 프로토콜(UDP 트래커(tracker) Protocol) 패킷을 이용한 네트워크의 토렌트 트래픽 선별 차단 방법을 설명하는 블록도이다.
도 3은 본 발명의 일실시예에 따른 비트 토렌트 피어 와이어 프로토콜(BitTorrent Peer wire Protocol) 패킷을 이용한 네트워크의 토렌트 트래픽 선별 차단 방법을 설명하는 블록도이다.
도 4는 본 발명의 일실시예에 따른 유 토렌트 전송 프로토콜(uTorrent Transport Protocol) 패킷을 이용한 네트워크의 토렌트 트래픽 선별 차단 방법을 설명하는 블록도이다.
도 5는 본 발명의 일실시예에 따른 DHT(Distributed sloppy Hash Table) 프로토콜 패킷을 이용한 네트워크의 토렌트 트래픽 선별 차단 방법을 설명하는 블록도이다.1 is a block diagram illustrating a torrent traffic screening blocking method of a network using an HTTP tracker get request message according to an embodiment of the present invention.
FIG. 2 is a block diagram illustrating a torrent traffic screening blocking method of a network using a UDP tracker protocol packet according to an embodiment of the present invention.
3 is a block diagram illustrating a torrent traffic screening blocking method of a network using a BitTorrent Peer wire Protocol packet according to an embodiment of the present invention.
4 is a block diagram illustrating a torrent traffic screening blocking method of a network using a uTorrent Transport Protocol packet according to an embodiment of the present invention.
5 is a block diagram illustrating a torrent traffic screening blocking method of a network using a distributed sloppy hash table (DHT) protocol packet according to an embodiment of the present invention.
1. 토렌트의 이용 방법1. How to use Torrent
비트 토렌트 프로토콜을 이용하기 위해서는 비트 토렌트 프로토콜과 호환되는 비트 토렌트 클라이언트를 설치해야 한다. 비트 토렌트를 이용해서 파일을 공유하고 싶으면 우선 torrent 파일을 생성해야 한다. torrent 파일은 공유를 하고자 하는 파일의 메타 데이터, 호스트 컴퓨터의 정보 등이 기록된다. 파일의 구체적인 내용은 비트 토렌트 프로토콜 버전에 따라서 다르며, 파일 확장자는 항상 .torrent이다.
To use the BitTorrent protocol, you need to install a BitTorrent client that is compatible with the BitTorrent protocol. If you want to share a file using BitTorrent, you first need to create a torrent file. The torrent file records the metadata of the file to be shared and information on the host computer. The specifics of the file depend on the BitTorrent protocol version, and the file extension is always .torrent.
(1) 토렌트 파일(.torrent 파일)(1) torrent files (.torrent files)
Torrent 파일에는 어나운스(announce) 섹션이 있는데, 이는 트래커(tracker)의 URL 정보를 포함한다. 트래커(tracker)란 일종의 서버로 스웜(swarm) 안에 시더(seeder)와 피어(peer)를 모니터링한다. 클라이언트는 트래커(tracker) 서버로 자기 정보를 보내고 현재 스웜(swarm) 안의 시더(seeder)와 피어(peer)에 관한 정보를 받는다. 트래커(tracker) 서버는 데이터 전송에 직접적인 영향이나 관계는 없으며 공유되는 파일의 복사본을 가지고 있지 않는다. 현재 비트 토렌트 버전은 트래커(tracker) 서버 없이도 구현이 가능하도록 되어 있다. 그러나 대부분의 비트 토렌트는 현재까지는 트래커(tracker) 서버를 많이 사용하고 있다. The torrent file has an announce section, which contains the tracker's URL information. A tracker is a kind of server that monitors seeders and peers in a swarm. The client sends its information to the tracker server and receives information about the seeder and peer in the current swarm. The tracker server has no direct impact or relationship to the data transfer and does not have a copy of the shared file. The current version of BitTorrent can be implemented without a tracker server. However, most bit torrents currently use a lot of tracker servers.
torrent 파일의 info 섹션은 파일의 이름, 길이, 파일 조각의 길이, 그리고 파일의 무결성을 진단하기 위한 각 조각의 SHA-1 해시 코드가 포함되어 있다. 파일을 다 받은 클라이언트는 시더(seeder) 역할을 수행할 수 있어서 파일 공유의 효율을 높일 수 있다. The info section of the torrent file contains the file name, length, file fragment length, and SHA-1 hash code for each fragment to diagnose the integrity of the file. A client who has finished receiving a file can act as a seeder and can increase file sharing efficiency.
공유하고자 하는 파일의 torrent 파일을 생성한 후에는 웹사이트 등에 torrent 파일을 publish해서 트래커(tracker) 서버에 등록할 수도 있다. 이 방식은 현재까지 가장 많이 사용되고 있는 torrent 파일의 공유 방법이다.
After you create a torrent file of the file you want to share, you can publish the torrent file to a tracker server by publishing it to a website. This is the most common way to share torrent files.
(2) 업로드 및 다운로드(2) upload and download
사용자는 torrent 파일이 등록되어 있는 웹사이트에 가서 torrent 파일을 다운로드하여 비트 토렌트 클라이언트를 이용하여 torrent 파일을 연다. 비트 토렌트 클라이언트는 트래커(tracker) 서버에 접속하여 현재 공유파일의 시더(seeder)와 피어(peer)에 대한 정보를 가지고 온다. 다시 말해서 현재 다운로드하고 있는 사람과 업로드하고 있는 사람의 수를 가지고 온다. 이 모든 사람들을 통 틀어서 스웜(swarm)이라고 한다. The user goes to the website where the torrent file is registered, downloads the torrent file, and opens the torrent file using the BitTorrent client. The BitTorrent client connects to the tracker server and retrieves information about the seed and peer of the current shared file. In other words, it brings the number of people currently downloading and uploading people. All these people are collectively called swarms.
처음에는 피어(peer)가 하나도 없을 수 있다. 단지 처음 파일을 올린 사람인 시더(seeder)만 있을 수 있다. 이렇게 되면 첫 시더(seeder)로부터 파일을 받기 시작한다. 비트 토렌트 프로토콜은 파일을 여러 조각으로 나누어서 조그만 파일로 만들어서 전송을 한다. 일반적으로 한 조각의 크기는 256kb 정도이다. 일반적으로 파일 크기가 클수록 조각의 크기도 커진다. 예를 들어, 4. 37GB의 한 조각은 4. 3MB 정도이다. 하나의 조각을 다운로드할 때마다 해시 알고리즘을 이용하여 에러 여부를 점검한다. At first there may be no peers. There can only be a seeder who is the first file uploader. This will start accepting files from the first seeder. The BitTorrent protocol breaks a file into pieces and sends them into small files. Typically, a piece is 256kb in size. In general, the larger the file size, the larger the fragment size. For example, a piece of 4.37GB is about 4.3MB. Each time a piece is downloaded, a hash algorithm is used to check for errors.
여러 사람들이 파일을 다운로드하기 시작하면서 스웜(swarm) 안에 있는 피어(peer)의 숫자는 늘어난다. 피어(peer)들이 생기면서 서로 조각들을 공유하기 시작한다. 다운로드 중인 피어(peer)들은 랜덤하게 조각을 받기 때문에 서로 받은 조각들을 공유할 수 있게 된다. 그러므로 원본 파일을 가지고 있는 시더(seeder)의 전송 부하(Bandwidth)를 줄인다. As many people start downloading files, the number of peers in the swarm increases. Peers start to share the pieces with each other. Peers that are downloading receive pieces at random, so they can share the pieces they receive. Therefore, reduce the transmission bandwidth of the seeder containing the original file.
P2P의 효율성을 높이는 데 중요한 역할을 하는 요소는 클라이언트간의 데이터를 주고 받는 정책이다. 클라이언트들은 자기에게 파일을 준 클라이언트에 다시 파일을 주는 형식으로 구성하여 공유의 효율성을 높인다. 이러한 여러 가지 정책에 따라 공유의 효율성, 다운로드 속도, 업로드 속도 등의 차이가 난다. 비트 토렌트는 공유를 많이 할수록 좋으며 대신 다른 P2P와 다르게 Queue(줄) 서서 기다리는 것이 없다. 비트 토렌트는 옵티미스틱 언초킹(optimistic unchoking)이라는 메커니즘을 이용한다. 이 메커니즘은 클라이언트의 대역폭을 일부 할당하여 무작위로 피어(peer)들한테 조각을 보내서 모든 피어(peer)들이 일정한 양의 조각을 가지고 있을 수 있게 한다. 그렇게 되면 모든 피어(peer)들이 다 다른 조각을 가지고 있게 되므로 공유의 효율성이 높아진다.
An important factor in improving the efficiency of P2P is the policy of exchanging data between clients. Clients increase the efficiency of sharing by organizing files back to the client that gave them the file. These different policies make a difference in sharing efficiency, download speed, and upload speed. BitTorrent is better to share more, and instead of waiting to be queued, unlike other P2P. Bit torrent uses a mechanism called optimistic unchoking. This mechanism allocates some of the client's bandwidth and sends fragments to peers randomly so that all peers have a certain amount of fragments. This increases the efficiency of sharing because all peers have different pieces.
2. 토렌트의 동작2. Torrent Operation
비트 토렌트 프로토콜을 구현하기만 하면 비트 토렌트 클라이언트라고 간주할 수 있다. 각 클라이언트는 이 프로토콜을 사용하여 임의의 종류의 컴퓨터 파일을 네트워크 상에서 예비하고, 요청하고, 전송할 수 있다. 이 때, 클라이언트가 동작하고 있는 컴퓨터를 피어라 부른다. Once you implement the BitTorrent protocol, you can think of it as a BitTorrent client. Each client can use this protocol to reserve, request, and send any type of computer file on the network. At this time, the computer on which the client operates is called a peer.
파일 한 개(혹은 파일의 그룹)을 공유하고 싶으면, 우선 피어는 torrent를 하나 생성해야 한다. 이 작은 파일은 공유할 파일 및 트래커(tracker)(파일 디스트리뷰션을 조율하는 컴퓨터)에 대한 메타데이터를 담고 있다. 피어는 어떤 파일을 받기 위해서는, 우선 그 파일을 위한 torrent 파일을 획득하여야 하며, 그 파일의 조각조각을 받기 위해서 어떤 피어들에게 접속해야 하는지를 알려주는 소정의 트래커(tracker)에 접속해야 한다. If you want to share a file (or group of files), the peer must first create a torrent. This small file contains metadata about the file and tracker (a computer that coordinates file distribution) to share. To receive a file, a peer must first obtain a torrent file for that file, and then connect to a tracker that tells which peers to connect to in order to get the fragmented file.
네트워크 상에서 파일을 다운로드 받을 수 있게 해준다는 점에서는 비슷하지만, 비트 토렌트 다운로드와 전통적인 풀-파일 HTTP 요청 사이에는 다음과 같은 근본적인 차이가 있다:Although similar in that they allow files to be downloaded over the network, there are fundamental differences between BitTorrent downloads and traditional full-file HTTP requests:
비트 토렌트는 많은 수의 소규모 P2P 요청(request)를 여러 개의 TCP 소켓을 이용하여 생성한다. 반면, 웹 브라우저는 일반적으로 한 개의 HTTP GET 요청(request)를 한 개의 TCP 소켓 상에서 생성한다. BitTorrent generates a large number of small P2P requests using multiple TCP sockets. Web browsers, on the other hand, typically generate one HTTP GET request on one TCP socket.
비트 토렌트 다운로드는 랜덤(random) 방식이거나 희귀한 것 우선(rarest-first) 방식이다. 이러한 접근 방식은 고 가용성(high availability)를 보장한다. 반면 일반적으로 HTTP 다운로드는 순차적 방식이다. Bit torrent downloads are either random or rare-first. This approach ensures high availability. In contrast, HTTP downloads are generally sequential.
상기 두 가지 차이점 덕분에, 비트 토렌트는 아주 작은 비용으로 매우 큰 리던던시(redundancy)를 확보할 수 있으며, 일반적인 HTTP 서버보다 어뷰즈(abuse) 나 플래시 크라우드에 강한 면모를 보인다. 하지만 이러한 프로텍션 효과는 그냥 얻어지지는 않는다: 다시 말해 다운로드는 최고 속도(full speed)에 이르기까지 시간이 걸린다. 왜냐하면 충분한 피어 접속들이 이루어지기까지는 시간이 걸리기 때문이며, 또한 한 개의 노드(node)가 효용 있는 업로더(uploader)가 되기까지 충분한 데이터를 받아놓는 데까지 시간이 걸리기 때문이다. 결론적으로 일반적인 비트 토렌트 다운로드는 처음에 낮은 속도로 시작하였다가 속도가 점점 증가해 최고 속도에 이르게 되며, 다운로드의 종료 시점까지 점점 속도가 떨어지게 된다. 이러한 점에서, 매우 빨리 최고 속도에 이르며 스피드 스루아웃(throughout)을 계속 유지하는 HTTP 다운로드와는 차이가 있다.
Because of these two differences, BitTorrent can achieve very large redundancy at a very low cost, and is more resistant to Abuse or Flash crowds than a typical HTTP server. However, this protection is not just achieved: downloads take time to reach full speed. This is because it takes time for sufficient peer connections to be made, and it takes time for a node to receive enough data before it becomes a useful uploader. As a result, a typical bit torrent download starts initially at a slower rate, then gradually increases to its maximum, and slows down to the end of the download. In this respect, it is different from HTTP downloads, which reach very high speeds very quickly and still maintain speed throughout.
3. 비트 토렌트 프로토콜 사양(BitTorrent Protocol Specification)3. BitTorrent Protocol Specification
비트 토렌트 프로토콜은 파일을 배포하기 위한 프로토콜이다. 비트 토렌트 프로토콜은 URL에 의해 컨텐츠를 식별할 수 있고, 웹 환경과 원활하게 통합될 수 있다. BitTorrent protocol is a protocol for distributing files. The BitTorrent protocol can identify content by URL and can be seamlessly integrated with the web environment.
동일한 파일에 대해 복수의 사용자들이 동시에 다운로드를 수행하는 경우, 복수의 사용자들은 비트 토렌트 프로토콜을 이용함으로써 서로에게 업로드를 수행할 수 있다. 그 결과, 매우 많은 수의 사용자들이 파일 소스를 공유할 수 있고, 이 때 발생하는 추가적인 부하는 크지 않다.
When a plurality of users simultaneously downloads the same file, the plurality of users may upload to each other by using the bit torrent protocol. As a result, a very large number of users can share file sources, and the additional load that occurs is not large.
(1) 트래커 겟 요청(트래커(tracker) GET request)(1) Tracker get request (tracker GET request)
트래커 서버에 전송하는 트래커 겟 요청 메시지는 다음의 파라미터들을 포함한다.The tracker get request message sent to the tracker server includes the following parameters.
i) info_hashi) info_hash
metainfo 파일에서 info 값의 벤코드된 형식(bencoded form)에 대한 20 바이트의 sha1 해시이다. info_hash는 메타 데이터 파일의 문자열이다.20-byte sha1 hash of the bencoded form of the info value in the metainfo file. info_hash is a string in the metadata file.
ii) peer_idii) peer_id
peer_id는 다운로더가 자신의 ID로 사용하는 길이 20의 문자열이다. 각 다운로더는 새로운 다운로드를 시작할 때 랜덤하게 자신의 ID를 생성한다.peer_id is a string of
iii) ipiii) ip
ip는 피어가 위치하는 IP(또는 DNS 네임)에 대한 정보를 제공하는 선택적 파라미터이다.ip is an optional parameter that provides information about the IP (or DNS name) where the peer is located.
iv) portiv) port
port는 피어가 수신 대기를 위해 사용하는 포트 번호이다. 일반적으로 다운로더는 수신 대기를 위해 6881 포트를 사용한다. 만약, 6881 포트가 사용 중이면, 6882 포트 및 6883 포트 등 6889 포트까지 차례대로 시도한다.port is the port number that the peer uses to listen on. Typically, the downloader uses port 6881 for listening. If the 6881 port is in use, then try to 6889 port, such as 6882 port and 6883 port in order.
v) uploadedv) uploaded
uploaded는 지금까지 총 업로드한 용량으로써, 10 진수의 아스키 코드로 인코딩된다. uploaded is the total uploaded capacity so far, encoded in ASCII ASCII code.
vi) downloadedvi) downloaded
downloaded는 지금까지 총 다운로드한 용량으로써, 10 진수의 아스키 코드로 인코딩된다.downloaded is the total downloaded capacity so far, encoded in ASCII ASCII code.
vii) leftvii) left
left는 피어가 더 다운로드해야 하는 용량으로써, 10 진수의 아스키 코드로 인코딩된다. 다운로드된 데이터 중 일부는 무결성 검사에 실패함으로써 다시 다운로드해야 하는 경우가 발생할 수 있으므로, left의 값은 downloaded의 값 및 파일의 길이로부터 계산될 수 없다. left is the capacity the peer needs to download more, encoded in ASCII ASCII code. Since some of the downloaded data may need to be downloaded again by failing the integrity check, the value of left cannot be calculated from the value of downloaded and the length of the file.
viii) eventviii) event
event는 started, completed, 또는 stopped 중 어느 하나의 값을 가지는 선택적 파라미터이다. event는 다운로드가 처음 시작되면 started 값을 가지고, 해당 다운로드가 완료되면 completed 값을 가진다. 또한, event는 다운로드가 중단되는 경우 stopped 값을 가진다.
event is an optional parameter with a value of either started, completed, or stopped. An event has a value of started when the download starts for the first time and a value of completed when the download is complete. In addition, the event has a stopped value when the download is interrupted.
(2) 트래커 응답(2) tracker response
쿼리가 실패하는 경우, 트래커 응답은 쿼리가 실패한 이유를 설명하는 문자열인 failure reason 키를 갖는다. 이 때, 다른 키는 요구되지 않는다.If the query fails, the tracker response has a failure reason key, a string that explains why the query failed. At this time, no other key is required.
반면, 쿼리가 성공하는 경우, 트래커 응답은 interval 키 및 peers 키를 갖는다. 이 때, interval 키는 재요청(rerequest) 사이에 다운로더가 기다려야 하는 시간(초)에 대한 정보를 포함하고, peers 키는 peer id, ip, 및 port 등 피어에 대한 정보를 포함한다.
On the other hand, if the query succeeds, the tracker response has an interval key and a peers key. At this time, the interval key includes information about the time (in seconds) that the downloader should wait between requests, and the peers key includes information about peers such as peer id, ip, and port.
(3) 피어 프로토콜(3) peer protocol
비트 토렌트의 피어 프로토콜은 TCP 상에서 동작할 수 있다. 이 때, 피어 프로토콜은 특별한 소켓 옵션들의 설정 없이도 동작 가능하다.BitTorrent's peer protocol can operate over TCP. At this point, the peer protocol can be operated without setting special socket options.
피어 커넥션은 대칭적이다. 즉, 양 방향으로 전송된 메시지들은 동일한 형식을 가지며, 데이터는 어느 방향으로든 전송될 수 있다.Peer connections are symmetrical. That is, messages sent in both directions have the same format, and data can be sent in either direction.
피어 프로토콜은 0부터 시작하는 metainfo 파일에 표시된 인덱스에 의해 파일의 조각들을 참조한다. 피어는 하나의 조각에 대해 다운로드를 완료하면, 그 조각에 대한 해시를 검사하고, 다른 모든 피어들에게 상기 다운로드를 완료한 조각을 가지고 있음을 공표(announce)한다. The peer protocol references fragments of the file by the index indicated in the zero-based metainfo file. When a peer completes a download for one piece, it checks the hash for that piece and announces to all other peers that it has the downloaded piece.
피어 사이의 연결은 초크(choked) 상태인지 여부 및 관심(interested) 상태인지 여부에 대한 정보를 포함하는 2 비트의 바이너리 코드로 표현될 수 있다. 여기서, 상기 연결이 초크 상태를 유지하는 경우 어떠한 데이터도 전송되지 아니한다. 한 피어가 관심 상태이고 다른 피어가 초크 상태가 아닌 경우, 데이터 전송이 일어난다.
The connection between peers may be represented by two bits of binary code including information about whether it is in a choked state and whether it is an interested state. Here, no data is transmitted if the connection remains in the choke state. If one peer is in the interest state and the other is not in the choke state, data transfer occurs.
(4) 피어 와이어 프로토콜의 핸드쉐이크(4) Handshake of Peer Wire Protocol
피어 와이어 프로토콜(per wire protocol)은 핸드쉐이크(handshake)로 구성된다. 핸드쉐이크는 19를 의미하는 문자로 시작하고, 그 뒤로 'BitTorrent protocol'의 문자열이 뒤따른다. 여기서, 상기 19는 뒤따르는 문자열의 길이를 의미한다.The peer wire protocol consists of a handshake. The handshake begins with the letter 19, followed by the string 'BitTorrent protocol'. Here, 19 means the length of the following string.
핸드쉐이크는 상기 고정된 길이의 헤더 뒤로 8 바이트의 리저브된(reserved) 데이터를 갖는다. 현재의 비트 토렌트 구현 상에서 상기 8 바이트는 모두 0의 값을 갖는다. The handshake has 8 bytes of reserved data behind the fixed length header. In the current bit torrent implementation, the eight bytes all have a value of zero.
핸드쉐이크는 상기 8 바이트의 리저브된 데이터 뒤로, metainfo 파일에서 info 값의 벤코드된 형식에 대한 20 바이트의 sha1 해시를 갖는다. 이것은 트래커 겟 요청 메시지에 포함된 info_hash와 동일한 값이다. 만약, 연결된 두 피어 사이에서 서로에게 전송된 상기 20 바이트의 sha1 해시 값이 동일하지 아니한 경우, 이들은 접속을 끊을 수 있다.The handshake has 20 bytes of sha1 hash for the bencoded format of the info value in the metainfo file, after the 8 bytes of reserved data. This is the same value as info_hash contained in the tracker get request message. If the sha1 hash values of the 20 bytes sent to each other between two connected peers are not the same, they may disconnect.
핸드쉐이크는 상기 20 바이트의 sha1 해시 뒤로, 20 바이트의 peer id를 갖는다. peer id는 트래커 요청 시 리포트되는 값으로써, 트래커 응답 내 피어들의 리스트에 포함되는 값이다. 만약 수신 측(receiving side) peer id가 연결 시도 측(initiating side) 피어의 예상과 맞지 않는 경우, 상기 연결 시도 측 피어는 상기 연결을 끊을 수 있다.The handshake has 20 bytes of sha1 hash, followed by 20 bytes of peer id. The peer id is a value reported in the tracker request and is included in the list of peers in the tracker response. If the receiving side peer id does not match the expectation of the initiating side peer, the connecting attempt peer may terminate the connection.
상기 핸드쉐이크가 완료되면 길이가 미리 정해진 데이터 및 메시지가 전송될 수 있다.
When the handshake is completed, a predetermined length of data and a message may be transmitted.
(5) 본 발명의 일실시예에 따른 네트워크의 토렌트 트래픽 선별 차단 방법
(5) torrent traffic screening blocking method in a network according to an embodiment of the present invention
도 1은 본 발명의 일실시예에 따른 HTTP 트래커 겟 리퀘스트(HTTP 트래커(tracker) Get Request) 메시지를 이용한 네트워크의 토렌트 트래픽 선별 차단 방법을 설명하는 블록도이다.1 is a block diagram illustrating a torrent traffic screening blocking method of a network using an HTTP tracker get request message according to an embodiment of the present invention.
도 1을 참조하면, 본 발명의 일실시예에 따른 네트워크의 토렌트 트래픽 선별 차단 방법은 HTTP를 이용하는 트래커 서버에 요청 시 필수 파라미터들을 포함하는 HTTP 겟 리퀘스트 메시지를 전송하는 점을 이용하여, 일반 HTTP 겟 리퀘스트 메시지와 구분하여 토렌트 트래픽을 선별하여 차단할 수 있다.Referring to FIG. 1, the torrent traffic screening blocking method of a network according to an embodiment of the present invention uses a point of transmitting an HTTP get request message including essential parameters when a request is made to a tracker server using HTTP. The torrent traffic can be screened and blocked separately from the request message.
보다 구체적으로, 본 발명의 일실시예에 따른 네트워크의 토렌트 트래픽 선별 차단 방법은 네트워크를 통하여 외부 단말 장치로 송신되는 데이터가 HTTP 겟 리퀘스트(HTTP Get Request) 메시지(100)인지 여부를 감지하는 단계; 상기 감지 결과를 기초로 상기 HTTP 겟 리퀘스트 메시지(100)가 토렌트(torrent) 트래픽과 관련된 필수 파라미터들을 포함하고 있는지 여부를 판단하는 단계; 및 상기 판단 결과를 기초로 상기 HTTP 겟 리퀘스트 메시지(100)를 차단하는 단계를 포함한다.More specifically, the torrent traffic screening blocking method of the network according to an embodiment of the present invention comprises the steps of detecting whether the data transmitted to the external terminal device over the network is an HTTP Get Request (HTTP Get Request) message (100); Determining whether the HTTP get request message (100) includes essential parameters related to torrent traffic based on the detection result; And blocking the HTTP get
여기서, 상기 필수 파라미터들은 토렌트 파일과 관련된 해시(hash)에 대한 파라미터(110); 피어 아이디(peer ID)에 대한 파라미터(120); 및 포트 번호에 대한 파라미터(130)를 포함할 수 있다. 이 때, 상기 해시(hash)에 대한 파라미터(110)는 info_hash이고, 상기 피어 아이디(peer ID)에 대한 파라미터(120)는 peer_id이며, 상기 포트 번호에 대한 파라미터(130)는 port일 수 있다. 물론, 이외에도, 상술한 바와 같이, 필수 파라미터들은 ip, uploaded, downloaded, left, 및 event 등을 더 포함할 수 있고, 본 발명은 적어도 info_hash, peer_id, 및 port와 같은 파라미터들을 이용하여 토렌트 트래픽을 선별적으로 차단할 수 있다.Here, the required parameters include
또한, 상기 차단하는 단계는 상기 판단 결과를 기초로 상기 HTTP 겟 리퀘스트 메시지(100)에 포함된 유저 에이전트(User Agent)에 대한 파라미터(140)가 미리 설정된 패턴을 가지는지 여부를 검사하는 단계; 및 상기 검사 결과를 기초로 상기 HTTP 겟 리퀘스트 메시지(100)의 차단을 수행하는 단계를 포함할 수 있다.The blocking may include checking whether a
여기서, 상기 미리 설정된 패턴은 uTorrent를 포함하는 문자열을 포함할 수 있다. 이 때, 상기 유저 에이전트(User Agent)에 대한 파라미터(140)는 User-Agent일 수 있다.
Here, the preset pattern may include a string including uTorrent. In this case, the
도 3은 본 발명의 일실시예에 따른 비트 토렌트 피어 와이어 프로토콜(BitTorrent Peer wire Protocol) 패킷을 이용한 네트워크의 토렌트 트래픽 선별 차단 방법을 설명하는 블록도이다.3 is a block diagram illustrating a torrent traffic screening blocking method of a network using a BitTorrent Peer wire Protocol packet according to an embodiment of the present invention.
도 3을 참조하면, 본 발명의 일실시예에 따른 네트워크의 토렌트 트래픽 선별 차단 방법은 피어 와이어 프로토콜의 핸드쉐이크를 방해함으로써, 토렌트 트래픽의 선별 차단을 수행할 수 있다. Referring to FIG. 3, the torrent traffic screening blocking method of the network according to an embodiment of the present invention may interfere with the handshake of the peer wire protocol to perform screening blocking of torrent traffic.
보다 구체적으로, 본 발명의 일실시예에 따른 네트워크의 토렌트 트래픽 선별 차단 방법은 네트워크를 통하여 외부 단말 장치와 송수신되는 데이터가 TCP 패킷 또는 UDP 패킷(300)인지 여부를 감지하는 단계; 상기 감지 결과를 기초로 상기 TCP 패킷 또는 상기 UDP 패킷(300)의 크기가 미리 설정된 크기보다 큰지 여부 및 상기 TCP 패킷 또는 상기 UDP 패킷(300)이 미리 정해진 위치에 미리 설정된 패턴을 가지는지 여부를 판단하는 단계; 및 상기 판단 결과를 기초로 상기 TCP 패킷 또는 상기 UDP 패킷(300)을 차단하는 단계를 포함한다.More specifically, the torrent traffic screening blocking method of the network according to an embodiment of the present invention comprises the steps of detecting whether the data transmitted and received with the external terminal device via the network is a TCP packet or
여기서, 상기 미리 설정된 크기는 69 바이트를 포함할 수 있다. 즉, 본 발명의 일실시예에 따른 네트워크의 토렌트 트래픽 선별 차단 방법은 상기 감지된 TCP 패킷 또는 UDP 패킷(300)의 크기가 69 바이트보다 큰 패킷에 대하여 토렌트 트래픽인지 여부를 선별하기 위한 검사를 수행할 수 있다.In this case, the preset size may include 69 bytes. That is, the torrent traffic screening blocking method of the network according to an embodiment of the present invention performs a check for screening whether or not torrent traffic is detected for a packet whose size of the detected TCP packet or
또한, 상기 미리 정해진 위치는 상기 TCP 패킷 또는 상기 UDP 패킷의 첫 20 바이트(310)를 포함하고, 상기 미리 설정된 패턴은 0x13(이것은 16진수 표현임)을 포함하는 문자 및 'BitTorrent protocol'을 포함하는 문자열(320)을 포함할 수 있다. 즉, 본 발명의 일실시예에 따른 네트워크의 토렌트 트래픽 선별 차단 방법은 피어 와이어 프로토콜의 핸드쉐이크의 고정된 길이의 헤더를 검출하여 토렌트 트래픽을 선별할 수 있다. 이 때, 0x13은 십진수로 19를 의미하고, 전술한 바와 같이 상기 19는 뒤따르는 문자열의 길이를 의미한다.
In addition, the predetermined position includes the first 20
4. 비트 토렌트를 위한 UDP 트래커 프로토콜(UDP 트래커(tracker) Protocol for BitTorrent4. UDP Tracker Protocol for BitTorrent
(1) HTTP 프로토콜의 오버헤드(1) overhead of HTTP protocol
스웜(swarm) 내 다른 피어들을 발견하기 위하여 클라이언트는 트래커에 자신의 존재를 알려야 한다. 이 경우, 전술한 바와 같이 HTTP 프로토콜이 사용되고, info_hash, key, peer_id, port, downloaded, left, uploaded, 및 compact에 관한 정보가 전송된다. 또한, 이에 대한 트래커의 응답은 피어들의 리스트에 관한 정보를 포함한다. 상기 요청 및 응답은 모두 요구되는 데이터 량이 짧지만, TCP를 사용하는 경우 TCP 연결을 위한 오픈 및 클로우즈 작업으로 인하여 추가적인 오버헤드가 발생한다.To discover other peers in the swarm, the client must inform the tracker of its existence. In this case, as described above, the HTTP protocol is used, and information about info_hash, key, peer_id, port, downloaded, left, uploaded, and compact is transmitted. The tracker's response to this also includes information about the list of peers. Although both the request and the response require a small amount of data, additional overhead is incurred due to open and close operations for the TCP connection when using TCP.
보다 구체적으로, 상기 추가적인 오버헤드는 이더넷 레이어에서 패킷당 14 바이트, IP 레이어에서 패킷당 20 바이트, TCP 레이어에서 패킷당 20 바이트, 및 HTTP 레이어의 오버헤드를 포함한다. 예를 들면, 요청에 10 패킷을 사용하고, 이에 대하여 50 명의 피어들을 포함하는 응답을 하는 경우, 총 사용되는 데이터 량은 1206 바이트가 된다. More specifically, the additional overhead includes 14 bytes per packet at the Ethernet layer, 20 bytes per packet at the IP layer, 20 bytes per packet at the TCP layer, and overhead of the HTTP layer. For example, if you use 10 packets for a request and respond with 50 peers, the total amount of data used is 1206 bytes.
이러한 오버헤드는 UDP 기반 프로토콜을 사용함으로써 상당히 감소될 수 있다. 예를 들면, UDP 기반 프로토콜 사용시, 상기 오버헤드는 618 바이트에 해당하는 4 패킷으로 감소된다. 즉, 기존 HTTP 프로토콜을 사용하는 경우에 비하여 오버헤드 트래픽이 50%로 감소될 수 있다. This overhead can be significantly reduced by using a UDP based protocol. For example, when using a UDP based protocol, the overhead is reduced to 4 packets corresponding to 618 bytes. That is, overhead traffic can be reduced by 50% compared to the case of using the existing HTTP protocol.
클라이언트 입장에서 시간당 1 kByte의 오버헤드를 줄이는 것은 큰 효과라 보기 어려울 수 있으나, 수많은 피어들에게 서비스를 제공하는 트래커 서버 입장에서는 오버헤드를 반으로 줄이는 것은 중대한 효과이다. Reducing the overhead of 1 kByte per hour can be difficult for the client, but for the tracker server serving many peers, reducing the overhead in half is a significant effect.
더 나아가, UDP 기반 프로토콜은 복잡한 파서(parser)를 요구하지 아니하고, 커넥션 핸들링을 필요로 하지 아니하므로, 트래커 서버의 코드를 단순화 함으로써 성능을 향상시킬 수 있다.
Furthermore, UDP-based protocols do not require complex parsers and do not require connection handling, which can improve performance by simplifying the code on the tracker server.
(2) UDP 트래커 프로토콜(2) UDP tracker protocol
기본적으로, 피어는 어나운싱(announcing) 또는 스크래핑(scraping)을 수행하기에 앞서 커넥션 ID를 획득해야 한다. UDP 트래커 프로토콜은 다음과 같다.
Basically, a peer must acquire a connection ID before performing announce or scraping. The UDP tracker protocol is as follows.
접속 요청(connect request):Connect request:
i) 랜덤하게 트랜젝션 ID를 선택한다. i) Randomly select a transaction ID.
ii) 커넥트 요청 스트럭쳐(connect request structure)를 채운다.ii) fill in the connect request structure.
iii) 패킷을 전송한다.
iii) send the packet.
접속 응답(connect response):Connect response:
i) 패킷을 수신한다.i) receive the packet.
ii) 수신된 패킷이 적어도 16 바이트인지 여부를 확인한다. ii) Check whether the received packet is at least 16 bytes.
iii) 트랜젝션 ID가 접속 요청(connect request)시 선택한 것과 동일한지 여부를 확인한다.iii) Check whether the transaction ID is the same as selected at the connect request.
iv) 액션(action)이 접속(connect)에 대응되는 값인지 여부를 확인한다.iv) Check whether the action is a value corresponding to the connect.
v) 나중을 위하여 커넥션 ID를 저장한다.
v) Save the connection ID for later.
어나운스 요청(announce request):Announce request:
i) 랜덤하게 트랜젝션 ID를 선택한다. i) Randomly select a transaction ID.
ii) 어나운스 요청 스트럭쳐(announce request structure)를 채운다.ii) populate the announce request structure.
iii) 패킷을 전송한다.
iii) send the packet.
어나운스 응답(announce response):Announce response:
i) 패킷을 수신한다.i) receive the packet.
ii) 수신된 패킷이 적어도 20 바이트인지 여부를 확인한다. ii) Check whether the received packet is at least 20 bytes.
iii) 트랜젝션 ID가 접속 요청(connect request)시 선택한 것과 동일한지 여부를 확인한다.iii) Check whether the transaction ID is the same as selected at the connect request.
iv) 액션(action)이 어나운스(announce)에 대응되는 값인지 여부를 확인한다.iv) Check whether the action is a value corresponding to an announce.
v) 인터벌(interval) 시간(초)이 경과되거나, 이벤트가 발생하지 않는 한 다시 어나운스(announce)를 요청하지 아니한다.
v) Do not request announce again unless an interval time (seconds) has elapsed or an event has occurred.
에러 응답(error response):Error response:
만약, 트래커 서버에 에러가 발생하면, 에러 패킷을 전송할 수 있다.If an error occurs in the tracker server, an error packet may be transmitted.
i) 패킷을 수신한다.i) receive the packet.
ii) 수신된 패킷이 적어도 8 바이트인지 여부를 확인한다.ii) Check whether the received packet is at least 8 bytes.
iii) 트랜젝션 ID가 접속 요청(connect request)시 선택한 것과 동일한지 여부를 확인한다.
iii) Check whether the transaction ID is the same as selected at the connect request.
(3) 본 발명의 일실시예에 따른 네트워크의 토렌트 트래픽 선별 차단 방법(3) torrent traffic screening blocking method in a network according to an embodiment of the present invention
도 2는 본 발명의 일실시예에 따른 UDP 트래커 프로토콜(UDP 트래커(tracker) Protocol) 패킷을 이용한 네트워크의 토렌트 트래픽 선별 차단 방법을 설명하는 블록도이다.FIG. 2 is a block diagram illustrating a torrent traffic screening blocking method of a network using a UDP tracker protocol packet according to an embodiment of the present invention.
도 2를 참조하면, 본 발명의 일실시예에 따른 네트워크의 토렌트 트래픽 선별 차단 방법은 UDP 트래커 프로토콜 중 커넥트 요청(connect request) 메시지 및 어나운스 요청(announce request) 메시지를 차단하여 클라이언트와 트래커 서버 사이의 핸드쉐이크를 방해함으로써, 토렌트 트래픽을 선별하여 차단할 수 있다. 2, the torrent traffic screening blocking method of the network according to an embodiment of the present invention blocks a connect request message and an announce request message of a UDP tracker protocol to prevent a client and a tracker server. By interfering with the handshake between them, torrent traffic can be screened out and blocked.
이 때, 본 발명의 일실시예에 따른 네트워크의 토렌트 트래픽 선별 차단 방법은 UDP 데이터의 크기가 상기 커넥트 요청 메시지나 상기 어나운스 요청 메시지 등과 크기가 같고, 상기 UDP 데이터의 액션(action) 필드의 값이 상기 커넥트 요청 메시지나 상기 어나운스 요청 메시지와 일치하는 경우 토렌트 트래픽으로 선별하여 이를 차단할 수 있다.At this time, in the torrent traffic screening blocking method of the network according to an embodiment of the present invention, the size of UDP data is the same as that of the connect request message or the announcement request message, and the action field of the UDP data is determined. If the value matches the connect request message or the announcement request message, the value may be selected and blocked as torrent traffic.
보다 구체적으로, 본 발명의 일실시예에 따른 네트워크의 토렌트 트래픽 선별 차단 방법은 네트워크를 통하여 외부 단말 장치와 송수신되는 데이터가 UDP 패킷(200)인지 여부를 감지하는 단계; 상기 감지 결과를 기초로 상기 UDP 패킷(200)이 토렌트 트래픽과 관련된 복수의 구조체들 중 적어도 어느 하나와 크기가 같은지 여부 및 상기 UDP 패킷(200)에 포함된 특정 파라미터가 미리 정해진 범위 내의 값을 갖는지 여부를 판단하는 단계; 및 상기 판단 결과를 기초로 상기 UDP 패킷(200)을 차단하는 단계를 포함한다.More specifically, the torrent traffic screening blocking method of the network according to an embodiment of the present invention comprises the steps of detecting whether the data transmitted and received with the external terminal device via the
여기서, 상기 복수의 구조체들은 UDP 트래커 프로토콜(UDP 트래커(tracker) Protocol)에 포함되는 커넥트 요청(connect request) 메시지와 관련된 구조체(210); UDP 트래커 프로토콜에 포함되는 어나운스 요청(announce request) 메시지와 관련된 구조체(220); 및 UDP 트래커 프로토콜에 포함되는 오류 응답(error response) 메시지와 관련된 구조체(230) 중 적어도 하나를 포함할 수 있다.The plurality of structures may include: a
또한, 상기 특정 파라미터는 액션(action)에 대한 파라미터(211, 221, 및 231)를 포함하고, 상기 미리 정해진 범위 내의 값은 미리 설정된 복수의 정수 값들을 포함할 수 있다. 이 때, 상기 액션(action)에 대한 파라미터(211, 221, 및 231)는 action일 수 있다. In addition, the specific parameter may include parameters 211, 221, and 231 for an action, and a value within the predetermined range may include a plurality of preset integer values. In this case, the parameters 211, 221, and 231 for the action may be actions.
예를 들면, 본 발명의 일실시예에 따른 네트워크의 토렌트 트래픽 선별 차단 방법은 감지된 UDP 패킷이 커넥트 요청 구조체(210)와 크기가 같고, 상기 UDP 패킷 내 action(211)의 값이 0인 경우; 감지된 UDP 패킷이 어나운스 요청 구조체(220)와 크기가 같고, 상기 UDP 패킷 내 action(221)의 값이 1인 경우; 또는 감지된 UDP 패킷이 오류 응답 구조체(230)와 크기가 같고, 상기 UDP 패킷 낸 action(231)의 값이 2인 경우 토렌트 트래픽으로 선별하여 이를 차단할 수 있다.
For example, in the torrent traffic screening blocking method of the network according to an embodiment of the present invention, when the detected UDP packet is the same size as the
5. 마이크로 토렌트 전송 프로토콜(uTorrent transport protocol, uTP)5. uTorrent transport protocol (uTP)
(1) uTP의 개관(1) Overview of uTP
uTP는 비트 토렌트 클라이언트가 사용되지 않는 대역폭을 활용하면서도, 인터넷 연결을 방해하지 않도록 하기 위한 프로토콜이다. uTP is a protocol that allows BitTorrent clients to utilize unused bandwidth while not interfering with Internet connections.
DSL 및 케이블 모뎀은 전형적으로 그들의 최대 전송 속도와 비례하지 않는 크기의 송신 버퍼를 갖는다. 이 때, 비트 트렌트는 상기 송신 버퍼를 빠르게 채울 수 있다. 다만, 비트 토렌트 트래픽은 일반적으로 백그라운드 전송이고, 이메일 체크, 전화, 및 웹 브라우징 등에 비하여 낮은 우선 순위를 갖으므로, 비트 토렌트와 관련된 모든 양방향 트래픽에 수 초에 해당하는 딜레이가 발생할 수 있다.DSL and cable modems typically have transmit buffers of a size that is not proportional to their maximum transmission rate. At this time, the bit trend can quickly fill the transmission buffer. However, since bit torrent traffic is generally a background transmission and has a lower priority than email checking, phone calls, and web browsing, delays corresponding to a few seconds may occur in all bidirectional traffic related to bit torrent.
비트 토렌트는 복수의 TCP 연결들을 사용하므로, 경쟁하는 다른 서비스들에 비하여 대역폭의 관점에서 불공평하게 유리할 수 있다. 왜냐하면, TCP는 모든 연결들에 대하여 균일하게 대역폭을 분배하기 때문이다. 따라서, 비트 토렌트가 더 많은 TCP 연결들을 사용할수록, 더 큰 대역폭을 사용할 수 있다.Bit torrent uses multiple TCP connections, which can be unfairly advantageous in terms of bandwidth over other competing services. This is because TCP distributes bandwidth evenly across all connections. Thus, the more bits the torrent uses more TCP connections, the more bandwidth can be used.
상기 문제에 대한 전통적인 해결 방안은 최대 업링크 용량의 80%로 비트 토렌트 클라이언트의 업로드 속도를 제한하는 것이다. 다만, 이러한 해결 방안에는 다음과 같은 단점들이 존재한다.The traditional solution to this problem is to limit the upload rate of the BitTorrent client to 80% of the maximum uplink capacity. However, these solutions have the following disadvantages.
i) 사용자가 비트 토렌트 클라이언트를 환경 설정해야 한다.i) The user must configure the BitTorrent client.
ii) 사용자가 인터넷의 업로드 용량을 알아야 한다. 그리고, 상기 업로드 용량은 변동 가능하다.ii) The user needs to know the upload capacity of the Internet. The upload capacity is variable.
iii) 20%의 헤드룸은 임의적이고, 상기 헤드룸으로 인하여 대역폭이 낭비된다. 즉, 비트 토렌트와 경쟁하는 트래픽이 존재하지 아니하는 경우, 상기 20%의 대역폭이 항상 낭비된다. 반면, 비트 토렌트와 경쟁하는 트래픽이 존재하는 경우에도, 상기 트래픽은 20%의 대역폭만 사용할 수 있다.iii) 20% of the headroom is arbitrary and bandwidth is wasted due to the headroom. That is, if there is no traffic competing with bit torrent, the 20% bandwidth is always wasted. On the other hand, even when there is traffic competing with the bit torrent, the traffic may use only 20% of the bandwidth.
uTP는 모뎀의 큐 사이즈를 전송 속도를 위한 컨트롤러로 사용함으로써 이 문제를 해결할 수 있다. 즉, uTP는 큐가 지나치게 커지면 전송 속도를 줄이는 방식을 사용한다. uTP solves this problem by using the modem's queue size as the controller for the transfer rate. In other words, uTP uses a method to reduce the transmission speed when the queue becomes too large.
uTP는 비트 토렌트와 경쟁하는 트래픽이 존재하지 아니하는 경우 전체 업로드 용량을 활용할 수 있고, 비트 토렌트와 경쟁하는 트래픽이 존재하는 경우 전송 속도를 줄일 수 있다.
uTP can utilize the full upload capacity when there is no traffic competing with bit torrent, and can reduce the transmission speed when there is traffic competing with bit torrent.
(2) 본 발명의 일실시예에 따른 네트워크의 토렌트 트래픽 선별 차단 방법(2) torrent traffic screening blocking method in a network according to an embodiment of the present invention
도 4는 본 발명의 일실시예에 따른 유 토렌트 전송 프로토콜(uTorrent Transport Protocol) 패킷을 이용한 네트워크의 토렌트 트래픽 선별 차단 방법을 설명하는 블록도이다.4 is a block diagram illustrating a torrent traffic screening blocking method of a network using a uTorrent Transport Protocol packet according to an embodiment of the present invention.
도 4를 참조하면, 본 발명의 일실시예에 따른 네트워크의 토렌트 트래픽 선별 차단 방법은 uTP에 사용되는 UDP 패킷을 표준 버전 및 비 표준 버전으로 분류하고, 상기 표준 버전의 헤더 포맷 및 상기 비 표준 버전의 헤더 포맷 각각에 대하여 시그니쳐(signature) 분석을 함으로써, 토렌트 트래픽을 선별하여 이를 차단할 수 있다.Referring to FIG. 4, the torrent traffic screening blocking method of a network according to an embodiment of the present invention classifies a UDP packet used for uTP into a standard version and a non-standard version, and includes a header format of the standard version and the non-standard version. By performing signature analysis on each of the header formats, the torrent traffic can be selected and blocked.
보다 구체적으로, 본 발명의 일실시예에 따른 네트워크의 토렌트 트래픽 선별 차단 방법은 네트워크를 통하여 외부 단말 장치와 송수신되는 데이터가 UDP 패킷(400)인지 여부를 감지하는 단계; 상기 감지 결과를 기초로 상기 UDP 패킷(400)의 크기가 미리 설정된 헤더 포맷의 크기보다 큰지 여부를 검사하는 단계; 상기 검사 결과를 기초로 상기 UDP 패킷(400)이 미리 정해진 조건을 만족하는지 여부를 판단하는 단계; 및 상기 판단 결과를 기초로 상기 UDP 패킷(400)을 차단하는 단계를 포함한다.More specifically, the torrent traffic screening blocking method of the network according to an embodiment of the present invention comprises the steps of detecting whether the data transmitted and received with the external terminal device via the
여기서, 상기 UDP 패킷(400)이 미리 정해진 조건을 만족하는지 여부를 판단하는 단계는 상기 UDP 패킷(400)이 비 표준 버전의 헤더 포맷(410)인지 표준 버전의 헤더 포맷(420)인지 여부를 선별하는 단계; 및 상기 선별 결과에 따라 상기 UDP 패킷에 포함된 특정 파라미터가 미리 정해진 범위 내의 값을 갖는지 여부에 대한 판단을 수행하는 단계를 포함할 수 있다. In the determining of whether the
본 발명은 헤더 포맷의 버전 필드를 확인함으로써, UDP 패킷(400)이 표준 버전인지 아니면, 비표준 버전인지 확인할 수 있다.The present invention can check whether the
이 때, 상기 선별 결과가 상기 UDP 패킷(400)이 비 표준 버전의 헤더 포맷(410)이라는 선별 결과인 경우(즉, 버전 필드가 존재하지 않거나, 버전 필드에 1이 아닌 다른 값이 셋팅되어 있는 경우), 상기 특정 파라미터는 플래그(flag)에 대한 파라미터(411)를 포함하고, 상기 미리 정해진 범위 내의 값은 미리 설정된 수치 미만의 정수 값들을 포함할 수 있다. 이 경우, 상기 미리 설정된 수치는 정수 5일 수 있다. In this case, when the selection result is a selection result that the
또한, 버전 필드(421)에 1이 셋팅되어 있는 경우, 이것은 상기 선별 결과가 상기 UDP 패킷(400)이 표준 버전의 헤더 포맷(420)임을 나타낸다. 즉, 버전 필드(421)에 1과 같은 미리 설정된 정수 값이 셋팅된 경우, 상기 UDP 패킷(400)은 표준 버전의 헤더 포맷(420)으로 판단될 수 있다. 특히, 버전 필드(421)에 1이 셋팅되어 있으면서, 타입 필드(422)에 미리 설정된 수치 미만의 정수 값들(예를 들어, 5미만의 값)이 셋팅된 경우, UDP 패킷(400)은 표준 버전의 헤더 포맷(420)으로 판단될 수 있다.
In addition, when 1 is set in the
6. DHT(Distributed sloppy Hash Table) 프로토콜6. Distributed sloppy hash table (DHT) protocol
(1) DHT 프로토콜의 개관(1) Overview of the DHT protocol
비트 토렌트는 트래커리스(trackerless) 토렌트를 위한 피어 접속 정보를 저장하기 위하여 DHT(Distributed sloppy Hash Table)을 사용할 수 있다. 이 때, 복수의 피어들 각각이 트래커(tracker)가 될 수 있다. DHT 프로토콜은 UDP 상에서 구현될 수 있다.Bit torrent may use a distributed sloppy hash table (DHT) to store peer connection information for trackerless torrents. At this time, each of the plurality of peers may be a tracker. The DHT protocol can be implemented over UDP.
이하, 피어(peer)는 비트 토렌트 프로토콜을 구현한 TCP 포트를 수신 대기하는 클라이언트 및 서버를 지칭하고, 노드(node)는 DHT 프로토콜을 구현한 UDP 포트를 수신 대기하는 클라이언트 및 서버를 지칭한다.Hereinafter, a peer refers to a client and a server listening to a TCP port implementing the bit torrent protocol, and a node refers to a client and a server listening to a UDP port implementing the DHT protocol.
DHT는 복수의 노드들로 구성되고, 복수의 피어들의 위치를 저장한다. 비트 토렌트 클라이언트는 DHT 노드를 포함하고, 상기 포함된 DHT 노드는 비트 토렌트 프로토콜을 이용하여 다운로드를 수행할 피어들의 위치를 획득하기 위하여 DHT 내 다른 노드들에 접속하는 데 사용된다.The DHT consists of a plurality of nodes and stores the locations of the plurality of peers. The bit torrent client includes a DHT node, which is used to connect to other nodes in the DHT to obtain the location of peers to perform the download using the bit torrent protocol.
각 노드는 글로벌하게 고유한 식별자인 노드 ID를 갖는다. 노드 ID는 비트 토렌트 infohash와 같이 160 비트의 랜덤한 값으로 선택된다. 거리 메트릭(distance metric)은 두 노드 ID들이나 노드 ID와 infohash의 근접성(closeness)을 비교하는 데 사용된다. 노드들은 소수의 다른 노드들에 대한 컨텍트 정보를 포함하는 라우팅 테이블을 유지해야 한다. 라우팅 테이블은 자신의 노드 ID와의 거리가 가까울수록 보다 상세해진다. Each node has a node ID, which is a globally unique identifier. The node ID is chosen as a random value of 160 bits, such as bit torrent infohash. The distance metric is used to compare the closeness of two node IDs or node IDs and infohash. Nodes must maintain a routing table that contains contact information for a few other nodes. The closer the routing table is to its node ID, the more detailed it is.
상기 거리 메트릭을 위하여 XOR 연산을 사용할 수 있다. XOR 연산 결과는 부호 없는 정수로 해석될 수 있다. 예를 들면, distance(A,B) = |A xor B| 이다. 여기서, distance 값이 더 작을수록 노드 사이의 거리는 더 가까움을 의미한다. An XOR operation may be used for the distance metric. The result of the XOR operation can be interpreted as an unsigned integer. For example, distance (A, B) = | A xor B | to be. Here, the smaller the distance value means that the distance between nodes is closer.
노드는 토렌트를 위한 피어들을 찾기 위하여, 자신의 라우팅 테이블 내 노드들의 ID와 토렌트의 infohash 사이의 거리를 비교할 수 있다. 노드는 infohash와 가장 가까운 노드에 접속하고, 현재 그 토렌트를 다운로드하고 있는 피어들에 대한 컨텍트 정보를 요청할 수 있다. 만약 접속된 노드가 토렌트를 위한 피어들을 알고 있다면, 그 피어 컨텍트 정보를 리턴한다. 반면, 접속된 노드가 토렌트를 위한 피어들을 알고 있지 않다면, 상기 접속된 노드는 자신의 라우팅 테이블 내 토렌트의 infohash와 가장 가까운 노드들의 컨텍트 정보를 리턴해야 한다. 오리지널 노드는 토렌트와 가장 가까운 노드를 찾을 때까지 반복적으로 쿼리를 수행한다. 탐색이 종료되면, 클라이언트는 자신의 피어 컨택트 정보에 토렌트의 infohash와 가장 가까운 노드 ID를 갖는 응답 노드들을 삽입한다.
A node can compare the distance between the ID of the nodes in its routing table and the torrent infohash to find peers for the torrent. A node can connect to the node closest to infohash and request contact information for peers currently downloading the torrent. If the connected node knows the peers for the torrent, it returns that peer contact information. On the other hand, if the connected node does not know the peers for the torrent, the connected node should return the contact information of the nodes closest to the torrent infohash in its routing table. The original node repeatedly queries until it finds the node closest to the torrent. When the search ends, the client inserts response nodes with the node ID closest to the torrent's infohash in its peer contact information.
(2) 본 발명의 일실시예에 따른 네트워크의 토렌트 트래픽 선별 차단 방법(2) torrent traffic screening blocking method in a network according to an embodiment of the present invention
도 5는 본 발명의 일실시예에 따른 DHT(Distributed sloppy Hash Table) 프로토콜 패킷을 이용한 네트워크의 토렌트 트래픽 선별 차단 방법을 설명하는 블록도이다.5 is a block diagram illustrating a torrent traffic screening blocking method of a network using a distributed sloppy hash table (DHT) protocol packet according to an embodiment of the present invention.
도 5를 참조하면, 본 발명의 일실시예에 따른 네트워크의 토렌트 트래픽 선별 차단 방법은 트래커리스(trackerless) 토렌트에 사용되는 DHT 프로토콜을 이용하여 토렌트 트래픽인지 여부를 선별하고, 이를 차단할 수 있다. Referring to FIG. 5, in the torrent traffic screening blocking method of the network according to an embodiment of the present invention, whether or not torrent traffic may be selected and blocked using the DHT protocol used for trackerless torrents.
전술한 바와 같이 DHT 프로토콜은 트래커를 사용하지 않는 경우 피어들의 정보를 공유하기 위하여 사용될 수 있다. 이 때, DHT 프로토콜은 벤코딩(bencoding)을 사용하고, 각 패킷마다 하나의 디렉토리(directory)로 구성되기 때문에 모든 패킷들이 d1:<elements>e 형식으로 인코딩된다. 본 발명의 일실시예에 따른 네트워크의 토렌트 트래픽 선별 차단 방법은 상기 특성을 이용하여 토렌트 트래픽인지 여부를 선별하고, 이를 차단할 수 있다.As described above, the DHT protocol may be used to share information of peers when not using a tracker. At this time, since the DHT protocol uses bencoding, and each packet is configured as one directory, all packets are encoded in the format d1: <elements> e. The torrent traffic screening blocking method of the network according to an embodiment of the present invention may select whether or not torrent traffic is selected using the above characteristics and block the torrent traffic.
보다 구체적으로, 본 발명의 일실시예에 따른 네트워크의 토렌트 트래픽 선별 차단 방법은 네트워크를 통하여 외부 단말 장치와 송수신되는 데이터가 UDP 패킷(500)인지 여부를 감지하는 단계; 상기 감지 결과를 기초로 상기 UDP 패킷(500)이 미리 설정된 패턴으로 인코딩된 패킷인지 여부를 판단하는 단계; 및 상기 판단 결과를 기초로 상기 UDP 패킷(500)을 차단하는 단계를 포함한다.More specifically, the torrent traffic screening blocking method of the network according to an embodiment of the present invention comprises the steps of detecting whether the data transmitted and received with the external terminal device via the
여기서, 상기 미리 설정된 패턴은 d1:을 포함하는 문자열(510); 적어도 하나의 엘레먼트(element, 520); 및 e를 포함하는 문자(530)를 차례로 포함할 수 있다.
The preset pattern may include a
상술한 방법들은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The above-described methods may be implemented in the form of program instructions that can be executed through various computer means and recorded in 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 medium may be those specially designed and constructed for the present invention or may be available to those skilled in the art of computer software. 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 configured 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 configured 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 various modifications and variations from such descriptions. This is possible.
그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
Therefore, the scope of the present invention should not be limited to the described embodiments, but should be determined by the equivalents of the claims, as well as the claims.
100: HTTP 겟 리퀘스트 메시지
110: 토렌트 파일과 관련된 해시(hash)에 대한 파라미터
120: 피어 아이디(peer ID)에 대한 파라미터
130: 포트 번호에 대한 파라미터
140: 유저 에이전트(User Agent)에 대한 파라미터100: HTTP Get Request Message
110: Parameters for hashes associated with torrent files
120: parameter for peer ID
130: parameter for the port number
140: parameters for the user agent
Claims (11)
상기 감지 결과를 기초로 상기 HTTP 겟 리퀘스트 메시지가 토렌트(torrent) 트래픽과 관련된 필수 파라미터들을 포함하고 있는지 여부를 판단하는 단계; 및
상기 판단 결과를 기초로 상기 HTTP 겟 리퀘스트 메시지를 차단하는 단계
를 포함하는 네트워크의 토렌트 트래픽 선별 차단 방법.
Detecting whether the data transmitted to the external terminal device through the network is an HTTP Get Request message;
Determining whether the HTTP get request message includes essential parameters related to torrent traffic based on the detection result; And
Blocking the HTTP get request message based on the determination result
Torrent traffic screening blocking method of the network comprising a.
상기 필수 파라미터들은
적어도 토렌트 파일과 관련된 해시(hash)에 대한 파라미터;
피어 아이디(peer ID)에 대한 파라미터; 및
포트 번호에 대한 파라미터
를 포함하는 네트워크의 토렌트 트래픽 선별 차단 방법.
The method of claim 1,
The essential parameters are
Parameters for hashes associated with at least a torrent file;
A parameter for a peer ID; And
Parameters for the port number
Torrent traffic screening blocking method of the network comprising a.
상기 차단하는 단계는
상기 판단 결과를 기초로 상기 HTTP 겟 리퀘스트 메시지에 포함된 유저 에이전트(User Agent)에 대한 파라미터가 미리 설정된 패턴을 가지는지 여부를 검사하는 단계; 및
상기 검사 결과를 기초로 상기 HTTP 겟 리퀘스트 메시지의 차단을 수행하는 단계
를 포함하는 네트워크의 토렌트 트래픽 선별 차단 방법.
The method of claim 1,
The blocking step
Checking whether a parameter for a user agent included in the HTTP get request message has a preset pattern based on the determination result; And
Blocking the HTTP get request message based on the check result;
Torrent traffic screening blocking method of the network comprising a.
상기 미리 설정된 패턴은
uTorrent를 포함하는 문자열을 포함하는 네트워크의 토렌트 트래픽 선별 차단 방법.
The method of claim 3,
The preset pattern is
How to block torrent traffic screening for networks that contain a string containing uTorrent.
상기 감지 결과를 기초로 상기 UDP 패킷이 토렌트 트래픽과 관련된 복수의 구조체들 중 적어도 어느 하나와 크기가 같은지 여부 및 상기 UDP 패킷에 포함된 특정 파라미터가 미리 정해진 범위 내의 값을 갖는지 여부를 판단하는 단계; 및
상기 판단 결과를 기초로 상기 UDP 패킷을 차단하는 단계
를 포함하는 네트워크의 토렌트 트래픽 선별 차단 방법.
Detecting whether data transmitted / received to / from an external terminal device through a network is a UDP packet;
Determining whether the UDP packet is the same size as at least one of a plurality of structures associated with torrent traffic and whether a specific parameter included in the UDP packet has a value within a predetermined range based on the detection result; And
Blocking the UDP packet based on the determination result
Torrent traffic screening blocking method of the network comprising a.
상기 복수의 구조체들은
UDP 트래커 프로토콜(UDP 트래커(tracker) Protocol)에 포함되는 커넥트 요청(connect request) 메시지와 관련된 구조체;
UDP 트래커 프로토콜에 포함되는 어나운스 요청(announce request) 메시지와 관련된 구조체; 및
UDP 트래커 프로토콜에 포함되는 오류 응답(error response) 메시지와 관련된 구조체
중 적어도 하나를 포함하는 네트워크의 토렌트 트래픽 선별 차단 방법.
The method of claim 5,
The plurality of structures
A structure associated with a connect request message included in a UDP tracker protocol;
A structure associated with an announce request message included in the UDP tracker protocol; And
Structure related to error response messages included in the UDP tracker protocol
Torrent traffic screening blocking method of a network comprising at least one of.
상기 특정 파라미터는
액션(action)에 대한 파라미터를 포함하고,
상기 미리 정해진 범위 내의 값은
미리 설정된 복수의 정수 값들을 포함하는 네트워크의 토렌트 트래픽 선별 차단 방법.
The method of claim 5,
The specific parameter
Contains the parameters for the action,
The value within the predetermined range is
Torrent traffic screening blocking method of a network including a plurality of preset integer values.
상기 감지 결과를 기초로 상기 TCP 패킷 또는 상기 UDP 패킷의 크기가 미리 설정된 크기보다 큰지 여부 및 상기 TCP 패킷 또는 상기 UDP 패킷이 미리 정해진 위치에 미리 설정된 패턴을 가지는지 여부를 판단하는 단계; 및
상기 판단 결과를 기초로 상기 TCP 패킷 또는 상기 UDP 패킷을 차단하는 단계
를 포함하는 네트워크의 토렌트 트래픽 선별 차단 방법.
Detecting whether data transmitted and received with an external terminal device through a network is a TCP packet or a UDP packet;
Determining whether the size of the TCP packet or the UDP packet is larger than a preset size and whether the TCP packet or the UDP packet has a preset pattern at a predetermined position based on the detection result; And
Blocking the TCP packet or the UDP packet based on the determination result
Torrent traffic screening blocking method of the network comprising a.
상기 미리 설정된 크기는
69 바이트를 포함하는 네트워크의 토렌트 트래픽 선별 차단 방법.
9. The method of claim 8,
The preset size is
How to block torrent traffic screening for networks containing 69 bytes.
상기 미리 정해진 위치는
상기 TCP 패킷 또는 상기 UDP 패킷의 첫 20 바이트를 포함하고,
상기 미리 설정된 패턴은
16진수로서 0x13을 포함하는 문자 및 BitTorrent protocol을 포함하는 문자열을 포함하는 네트워크의 토렌트 트래픽 선별 차단 방법.
9. The method of claim 8,
The predetermined position is
Includes the first 20 bytes of the TCP packet or the UDP packet,
The preset pattern is
A method for screening torrent traffic of a network including a character including 0x13 as a hexadecimal number and a string including a BitTorrent protocol.
A computer-readable recording medium having recorded thereon a program for executing the method of any one of claims 1 to 10.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020120019803A KR101364927B1 (en) | 2012-02-27 | 2012-02-27 | Method for preventing of torrent traffic in network |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020120019803A KR101364927B1 (en) | 2012-02-27 | 2012-02-27 | Method for preventing of torrent traffic in network |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020110121018A Division KR101145608B1 (en) | 2011-11-18 | 2011-11-18 | Method for preventing of torrent traffic in network |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20130055496A true KR20130055496A (en) | 2013-05-28 |
KR101364927B1 KR101364927B1 (en) | 2014-02-25 |
Family
ID=48663972
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020120019803A Expired - Fee Related KR101364927B1 (en) | 2012-02-27 | 2012-02-27 | Method for preventing of torrent traffic in network |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101364927B1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108616594A (en) * | 2018-05-04 | 2018-10-02 | 广东唯网络科技有限公司 | HTTP bypass blocking method based on DPDK |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102689553B1 (en) * | 2022-07-12 | 2024-07-29 | (주)플레인비트 | Method and apparatus for disrupting distribution of torrent-based piracy contents |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100595493B1 (en) * | 2004-04-13 | 2006-07-03 | 주식회사 아라기술 | P2P Harmful Information Blocking System and Method |
KR101292445B1 (en) * | 2007-02-06 | 2013-07-31 | 주식회사 엘지씨엔에스 | Apparatus and method for searching and cutting off P2P traffic |
JP2009181359A (en) * | 2008-01-30 | 2009-08-13 | Duaxes Corp | Peer-to-peer communication control unit |
-
2012
- 2012-02-27 KR KR1020120019803A patent/KR101364927B1/en not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108616594A (en) * | 2018-05-04 | 2018-10-02 | 广东唯网络科技有限公司 | HTTP bypass blocking method based on DPDK |
Also Published As
Publication number | Publication date |
---|---|
KR101364927B1 (en) | 2014-02-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11758013B2 (en) | Methods and systems for caching data communications over computer networks | |
JP4943437B2 (en) | Distributed caching of files in the network | |
US10491657B2 (en) | Network acceleration method, apparatus and device based on router device | |
KR101424362B1 (en) | Chunked downloads over a content delivery network | |
US20080281950A1 (en) | Method and Device for Peer to Peer File Sharing | |
US8140647B1 (en) | System and method for accelerated data uploading | |
WO2020223147A1 (en) | Methods and systems for efficient packet filtering | |
JP2003016036A (en) | Verifying system and method for reliability status of peer in peer-to-peer network environment | |
CN102065136B (en) | P2P (Peer-to-Peer) network safety data transmission method and system | |
CN114902607B (en) | Method and system for preventing attacks associated with the domain name system | |
US20140143339A1 (en) | Method, apparatus, and system for resource sharing | |
US20080162718A1 (en) | Method and Apparatus for Transmitting Data in Blocks | |
JP2016045944A (en) | System and method for reconfigurable all-in-one content stream | |
US9172744B2 (en) | Scalable storage with programmable networks | |
CN102857547A (en) | Distributed caching method and device | |
WO2012075853A1 (en) | Peer-to-peer communication method, apparatus, and system | |
KR101364927B1 (en) | Method for preventing of torrent traffic in network | |
KR101145608B1 (en) | Method for preventing of torrent traffic in network | |
US20130054691A1 (en) | Flexible rule based multi-protocol peer-to-peer caching | |
Monnerat et al. | An effective single‐hop distributed hash table with high lookup performance and low traffic overhead | |
US10992702B2 (en) | Detecting malware on SPDY connections | |
CN111970358A (en) | Decentralized cloud computing platform, service deployment method, service access method and components | |
US20240291906A1 (en) | Shared caching in a virtualized network | |
Cabrera Añon | Joining BitTorrent and swift to improve P2P transfers | |
Rudish | Design and Implementation of DPIPE, A P2P File Transfer Protocol for Large File Transfers in Datacenter Environments |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A107 | Divisional application of patent | ||
A201 | Request for examination | ||
PA0107 | Divisional application |
Comment text: Divisional Application of Patent Patent event date: 20120227 Patent event code: PA01071R01D |
|
PA0201 | Request for examination | ||
PG1501 | Laying open of application | ||
E902 | Notification of reason for refusal | ||
PE0902 | Notice of grounds for rejection |
Comment text: Notification of reason for refusal Patent event date: 20130726 Patent event code: PE09021S01D |
|
E701 | Decision to grant or registration of patent right | ||
PE0701 | Decision of registration |
Patent event code: PE07011S01D Comment text: Decision to Grant Registration Patent event date: 20140128 |
|
GRNT | Written decision to grant | ||
PR0701 | Registration of establishment |
Comment text: Registration of Establishment Patent event date: 20140212 Patent event code: PR07011E01D |
|
PR1002 | Payment of registration fee |
Payment date: 20140212 End annual number: 3 Start annual number: 1 |
|
PG1601 | Publication of registration | ||
FPAY | Annual fee payment |
Payment date: 20161206 Year of fee payment: 4 |
|
PR1001 | Payment of annual fee |
Payment date: 20161206 Start annual number: 4 End annual number: 4 |
|
FPAY | Annual fee payment |
Payment date: 20180212 Year of fee payment: 5 |
|
PR1001 | Payment of annual fee |
Payment date: 20180212 Start annual number: 5 End annual number: 5 |
|
FPAY | Annual fee payment |
Payment date: 20190124 Year of fee payment: 6 |
|
PR1001 | Payment of annual fee |
Payment date: 20190124 Start annual number: 6 End annual number: 6 |
|
FPAY | Annual fee payment |
Payment date: 20200123 Year of fee payment: 7 |
|
PR1001 | Payment of annual fee |
Payment date: 20200123 Start annual number: 7 End annual number: 7 |
|
PR1001 | Payment of annual fee |
Payment date: 20210115 Start annual number: 8 End annual number: 8 |
|
PC1903 | Unpaid annual fee |
Termination category: Default of registration fee Termination date: 20231123 |