KR101364927B1 - 네트워크의 토렌트 트래픽 선별 차단 방법 - Google Patents

네트워크의 토렌트 트래픽 선별 차단 방법 Download PDF

Info

Publication number
KR101364927B1
KR101364927B1 KR1020120019803A KR20120019803A KR101364927B1 KR 101364927 B1 KR101364927 B1 KR 101364927B1 KR 1020120019803 A KR1020120019803 A KR 1020120019803A KR 20120019803 A KR20120019803 A KR 20120019803A KR 101364927 B1 KR101364927 B1 KR 101364927B1
Authority
KR
South Korea
Prior art keywords
torrent
network
computing device
request message
data
Prior art date
Application number
KR1020120019803A
Other languages
English (en)
Other versions
KR20130055496A (ko
Inventor
권억
Original Assignee
플러스기술주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 플러스기술주식회사 filed Critical 플러스기술주식회사
Priority to KR1020120019803A priority Critical patent/KR101364927B1/ko
Publication of KR20130055496A publication Critical patent/KR20130055496A/ko
Application granted granted Critical
Publication of KR101364927B1 publication Critical patent/KR101364927B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1074Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
    • H04L67/1078Resource delivery mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]

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

네트워크의 토렌트 트래픽 선별 차단 방법{METHOD FOR PREVENTING OF TORRENT TRAFFIC IN NETWORK}
아래의 실시예들은 네트워크의 토렌트 트래픽 선별 차단 방법에 관한 것이다.
비트 토렌트(BitTorrent)는 P2P(peer-to-peer) 파일 전송 프로토콜의 이름이자 그것을 이용하는 응용 소프트웨어의 이름이다. 비트 토렌트를 이용하면 파일을 인터넷 상에 분산하여 저장하여 놓고 다수의 접속을 사용하여 여러 곳에서 동시에 파일을 가져오게 되어 전송 속도가 빨라진다.
비트 토렌트 프로토콜은 프로그래머 브램 코헨이 창안하였으며, 2001년 4월부터 설계되어 최초의 구현이 2001년 7월 2일 발표되었다. 현재는 코헨이 창립한 회사인 비트 토렌트 Inc. 가 이것을 유지보수하고 있다. 본래 비트 토렌트 프로그램은 분산 해시 테이블을 활용하여 파이썬으로 작성되었으며 오픈 소스 저작권하에서 배포되고 있다. 그 외에도 비트 토렌트 프로토콜과 호환되는 각종 비트 토렌트 클라이언트가 출시되어 있다.
본 발명의 일실시예들은 네트워크를 통하여 외부 단말 장치로 송수신되는 데이터를 감지하고, 상기 감지된 데이터가 토렌트 트래픽과 관련된 적어도 하나의 미리 정해진 조건을 만족하는지 판단하며, 상기 판단 결과를 기초로 상기 감지된 데이터를 차단함으로써, 네트워크의 토렌트 트래픽을 선별하여 이를 차단하는 기술을 제공한다.
본 발명의 일실시예에 따른 네트워크의 토렌트 트래픽 선별 차단 방법은 네트워크를 통하여 외부 단말 장치로 송신되는 데이터가 HTTP 겟 리퀘스트(HTTP Get Request) 메시지인지 여부를 감지하는 단계; 상기 감지 결과를 기초로 상기 HTTP 겟 리퀘스트 메시지가 토렌트(torrent) 트래픽과 관련된 필수 파라미터들을 포함하고 있는지 여부를 판단하는 단계; 및 상기 판단 결과를 기초로 상기 HTTP 겟 리퀘스트 메시지를 차단하는 단계를 포함한다.
상기 필수 파라미터들은 info_hash, peer_id, ip, port, uploaded, downloaded, left, 및 event 등을 포함할 수 있고, 본 발명은 적어도 info_hash, peer_id, 및 port와 같은 파라미터들을 이용하여 토렌트 트래픽을 선별적으로 차단할 수 있다.
상기 차단하는 단계는 상기 판단 결과를 기초로 상기 HTTP 겟 리퀘스트 메시지에 포함된 유저 에이전트(User Agent)에 대한 파라미터가 미리 설정된 패턴을 가지는지 여부를 검사하는 단계; 및 상기 검사 결과를 기초로 상기 HTTP 겟 리퀘스트 메시지의 차단을 수행하는 단계를 포함할 수 있다.
상기 미리 설정된 패턴은 uTorrent, Azureus 등과 같은 다양한 문자열들을 포함할 수 있다.
본 발명의 일실시예에 따른 네트워크의 토렌트 트래픽 선별 차단 방법은 네트워크를 통하여 외부 단말 장치와 송수신되는 데이터가 UDP 패킷인지 여부를 감지하는 단계; 상기 감지 결과를 기초로 상기 UDP 패킷이 토렌트 트래픽과 관련된 복수의 구조체들 중 적어도 어느 하나와 크기가 같은지 여부 및 상기 UDP 패킷에 포함된 특정 파라미터가 미리 정해진 범위 내의 값을 갖는지 여부를 판단하는 단계; 및 상기 판단 결과를 기초로 상기 UDP 패킷을 차단하는 단계를 포함한다.
상기 복수의 구조체들은 UDP 트래커 프로토콜(UDP 트래커(tracker) Protocol)에 포함되는 커넥트 요청(connect request) 메시지와 관련된 구조체; UDP 트래커 프로토콜에 포함되는 어나운스 요청(announce request) 메시지와 관련된 구조체; 및 UDP 트래커 프로토콜에 포함되는 오류 응답(error response) 메시지와 관련된 구조체 중 적어도 하나를 포함할 수 있다.
상기 특정 파라미터는 액션(action)에 대한 파라미터를 포함하고, 상기 미리 정해진 범위 내의 값은 미리 설정된 복수의 정수 값들을 포함할 수 있다.
본 발명의 일실시예에 따른 네트워크의 토렌트 트래픽 선별 차단 방법은 네트워크를 통하여 외부 단말 장치와 송수신되는 데이터가 TCP 패킷 또는 UDP 패킷인지 여부를 감지하는 단계; 상기 감지 결과를 기초로 상기 TCP 패킷 또는 상기 UDP 패킷의 크기가 미리 설정된 크기보다 큰지 여부 및 상기 TCP 패킷 또는 상기 UDP 패킷이 미리 정해진 위치에 미리 설정된 패턴을 가지는지 여부를 판단하는 단계; 및 상기 판단 결과를 기초로 상기 TCP 패킷 또는 상기 UDP 패킷을 차단하는 단계를 포함한다.
상기 미리 설정된 크기는 69 바이트를 포함할 수 있다.
상기 미리 정해진 위치는 상기 TCP 패킷 또는 상기 UDP 패킷의 첫 20 바이트를 포함하고, 상기 미리 설정된 패턴은 0x13(이것은 16진수 표현임)을 포함하는 문자 및 BitTorrent protocol을 포함하는 문자열을 포함할 수 있다.
본 발명의 일실시예들은 네트워크를 통하여 외부 단말 장치로 송수신되는 데이터를 감지하고, 상기 감지된 데이터가 토렌트 트래픽과 관련된 적어도 하나의 미리 정해진 조건을 만족하는지 판단하며, 상기 판단 결과를 기초로 상기 감지된 데이터를 차단함으로써, 네트워크의 토렌트 트래픽을 선별하여 이를 차단하는 기술을 제공할 수 있다.
도 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. 토렌트의 이용 방법
비트 토렌트 프로토콜을 이용하기 위해서는 비트 토렌트 프로토콜과 호환되는 비트 토렌트 클라이언트를 설치해야 한다. 비트 토렌트를 이용해서 파일을 공유하고 싶으면 우선 torrent 파일을 생성해야 한다. torrent 파일은 공유를 하고자 하는 파일의 메타 데이터, 호스트 컴퓨터의 정보 등이 기록된다. 파일의 구체적인 내용은 비트 토렌트 프로토콜 버전에 따라서 다르며, 파일 확장자는 항상 .torrent이다.
(1) 토렌트 파일(.torrent 파일)
Torrent 파일에는 어나운스(announce) 섹션이 있는데, 이는 트래커(tracker)의 URL 정보를 포함한다. 트래커(tracker)란 일종의 서버로 스웜(swarm) 안에 시더(seeder)와 피어(peer)를 모니터링한다. 클라이언트는 트래커(tracker) 서버로 자기 정보를 보내고 현재 스웜(swarm) 안의 시더(seeder)와 피어(peer)에 관한 정보를 받는다. 트래커(tracker) 서버는 데이터 전송에 직접적인 영향이나 관계는 없으며 공유되는 파일의 복사본을 가지고 있지 않는다. 현재 비트 토렌트 버전은 트래커(tracker) 서버 없이도 구현이 가능하도록 되어 있다. 그러나 대부분의 비트 토렌트는 현재까지는 트래커(tracker) 서버를 많이 사용하고 있다.
torrent 파일의 info 섹션은 파일의 이름, 길이, 파일 조각의 길이, 그리고 파일의 무결성을 진단하기 위한 각 조각의 SHA-1 해시 코드가 포함되어 있다. 파일을 다 받은 클라이언트는 시더(seeder) 역할을 수행할 수 있어서 파일 공유의 효율을 높일 수 있다.
공유하고자 하는 파일의 torrent 파일을 생성한 후에는 웹사이트 등에 torrent 파일을 publish해서 트래커(tracker) 서버에 등록할 수도 있다. 이 방식은 현재까지 가장 많이 사용되고 있는 torrent 파일의 공유 방법이다.
(2) 업로드 및 다운로드
사용자는 torrent 파일이 등록되어 있는 웹사이트에 가서 torrent 파일을 다운로드하여 비트 토렌트 클라이언트를 이용하여 torrent 파일을 연다. 비트 토렌트 클라이언트는 트래커(tracker) 서버에 접속하여 현재 공유파일의 시더(seeder)와 피어(peer)에 대한 정보를 가지고 온다. 다시 말해서 현재 다운로드하고 있는 사람과 업로드하고 있는 사람의 수를 가지고 온다. 이 모든 사람들을 통 틀어서 스웜(swarm)이라고 한다.
처음에는 피어(peer)가 하나도 없을 수 있다. 단지 처음 파일을 올린 사람인 시더(seeder)만 있을 수 있다. 이렇게 되면 첫 시더(seeder)로부터 파일을 받기 시작한다. 비트 토렌트 프로토콜은 파일을 여러 조각으로 나누어서 조그만 파일로 만들어서 전송을 한다. 일반적으로 한 조각의 크기는 256kb 정도이다. 일반적으로 파일 크기가 클수록 조각의 크기도 커진다. 예를 들어, 4. 37GB의 한 조각은 4. 3MB 정도이다. 하나의 조각을 다운로드할 때마다 해시 알고리즘을 이용하여 에러 여부를 점검한다.
여러 사람들이 파일을 다운로드하기 시작하면서 스웜(swarm) 안에 있는 피어(peer)의 숫자는 늘어난다. 피어(peer)들이 생기면서 서로 조각들을 공유하기 시작한다. 다운로드 중인 피어(peer)들은 랜덤하게 조각을 받기 때문에 서로 받은 조각들을 공유할 수 있게 된다. 그러므로 원본 파일을 가지고 있는 시더(seeder)의 전송 부하(Bandwidth)를 줄인다.
P2P의 효율성을 높이는 데 중요한 역할을 하는 요소는 클라이언트간의 데이터를 주고 받는 정책이다. 클라이언트들은 자기에게 파일을 준 클라이언트에 다시 파일을 주는 형식으로 구성하여 공유의 효율성을 높인다. 이러한 여러 가지 정책에 따라 공유의 효율성, 다운로드 속도, 업로드 속도 등의 차이가 난다. 비트 토렌트는 공유를 많이 할수록 좋으며 대신 다른 P2P와 다르게 Queue(줄) 서서 기다리는 것이 없다. 비트 토렌트는 옵티미스틱 언초킹(optimistic unchoking)이라는 메커니즘을 이용한다. 이 메커니즘은 클라이언트의 대역폭을 일부 할당하여 무작위로 피어(peer)들한테 조각을 보내서 모든 피어(peer)들이 일정한 양의 조각을 가지고 있을 수 있게 한다. 그렇게 되면 모든 피어(peer)들이 다 다른 조각을 가지고 있게 되므로 공유의 효율성이 높아진다.
2. 토렌트의 동작
비트 토렌트 프로토콜을 구현하기만 하면 비트 토렌트 클라이언트라고 간주할 수 있다. 각 클라이언트는 이 프로토콜을 사용하여 임의의 종류의 컴퓨터 파일을 네트워크 상에서 예비하고, 요청하고, 전송할 수 있다. 이 때, 클라이언트가 동작하고 있는 컴퓨터를 피어라 부른다.
파일 한 개(혹은 파일의 그룹)을 공유하고 싶으면, 우선 피어는 torrent를 하나 생성해야 한다. 이 작은 파일은 공유할 파일 및 트래커(tracker)(파일 디스트리뷰션을 조율하는 컴퓨터)에 대한 메타데이터를 담고 있다. 피어는 어떤 파일을 받기 위해서는, 우선 그 파일을 위한 torrent 파일을 획득하여야 하며, 그 파일의 조각조각을 받기 위해서 어떤 피어들에게 접속해야 하는지를 알려주는 소정의 트래커(tracker)에 접속해야 한다.
네트워크 상에서 파일을 다운로드 받을 수 있게 해준다는 점에서는 비슷하지만, 비트 토렌트 다운로드와 전통적인 풀-파일 HTTP 요청 사이에는 다음과 같은 근본적인 차이가 있다:
비트 토렌트는 많은 수의 소규모 P2P 요청(request)를 여러 개의 TCP 소켓을 이용하여 생성한다. 반면, 웹 브라우저는 일반적으로 한 개의 HTTP GET 요청(request)를 한 개의 TCP 소켓 상에서 생성한다.
비트 토렌트 다운로드는 랜덤(random) 방식이거나 희귀한 것 우선(rarest-first) 방식이다. 이러한 접근 방식은 고 가용성(high availability)를 보장한다. 반면 일반적으로 HTTP 다운로드는 순차적 방식이다.
상기 두 가지 차이점 덕분에, 비트 토렌트는 아주 작은 비용으로 매우 큰 리던던시(redundancy)를 확보할 수 있으며, 일반적인 HTTP 서버보다 어뷰즈(abuse) 나 플래시 크라우드에 강한 면모를 보인다. 하지만 이러한 프로텍션 효과는 그냥 얻어지지는 않는다: 다시 말해 다운로드는 최고 속도(full speed)에 이르기까지 시간이 걸린다. 왜냐하면 충분한 피어 접속들이 이루어지기까지는 시간이 걸리기 때문이며, 또한 한 개의 노드(node)가 효용 있는 업로더(uploader)가 되기까지 충분한 데이터를 받아놓는 데까지 시간이 걸리기 때문이다. 결론적으로 일반적인 비트 토렌트 다운로드는 처음에 낮은 속도로 시작하였다가 속도가 점점 증가해 최고 속도에 이르게 되며, 다운로드의 종료 시점까지 점점 속도가 떨어지게 된다. 이러한 점에서, 매우 빨리 최고 속도에 이르며 스피드 스루아웃(throughout)을 계속 유지하는 HTTP 다운로드와는 차이가 있다.
3. 비트 토렌트 프로토콜 사양(BitTorrent Protocol Specification)
비트 토렌트 프로토콜은 파일을 배포하기 위한 프로토콜이다. 비트 토렌트 프로토콜은 URL에 의해 컨텐츠를 식별할 수 있고, 웹 환경과 원활하게 통합될 수 있다.
동일한 파일에 대해 복수의 사용자들이 동시에 다운로드를 수행하는 경우, 복수의 사용자들은 비트 토렌트 프로토콜을 이용함으로써 서로에게 업로드를 수행할 수 있다. 그 결과, 매우 많은 수의 사용자들이 파일 소스를 공유할 수 있고, 이 때 발생하는 추가적인 부하는 크지 않다.
(1) 트래커 겟 요청(트래커(tracker) GET request)
트래커 서버에 전송하는 트래커 겟 요청 메시지는 다음의 파라미터들을 포함한다.
i) info_hash
metainfo 파일에서 info 값의 벤코드된 형식(bencoded form)에 대한 20 바이트의 sha1 해시이다. info_hash는 메타 데이터 파일의 문자열이다.
ii) peer_id
peer_id는 다운로더가 자신의 ID로 사용하는 길이 20의 문자열이다. 각 다운로더는 새로운 다운로드를 시작할 때 랜덤하게 자신의 ID를 생성한다.
iii) ip
ip는 피어가 위치하는 IP(또는 DNS 네임)에 대한 정보를 제공하는 선택적 파라미터이다.
iv) port
port는 피어가 수신 대기를 위해 사용하는 포트 번호이다. 일반적으로 다운로더는 수신 대기를 위해 6881 포트를 사용한다. 만약, 6881 포트가 사용 중이면, 6882 포트 및 6883 포트 등 6889 포트까지 차례대로 시도한다.
v) uploaded
uploaded는 지금까지 총 업로드한 용량으로써, 10 진수의 아스키 코드로 인코딩된다.
vi) downloaded
downloaded는 지금까지 총 다운로드한 용량으로써, 10 진수의 아스키 코드로 인코딩된다.
vii) left
left는 피어가 더 다운로드해야 하는 용량으로써, 10 진수의 아스키 코드로 인코딩된다. 다운로드된 데이터 중 일부는 무결성 검사에 실패함으로써 다시 다운로드해야 하는 경우가 발생할 수 있으므로, left의 값은 downloaded의 값 및 파일의 길이로부터 계산될 수 없다.
viii) event
event는 started, completed, 또는 stopped 중 어느 하나의 값을 가지는 선택적 파라미터이다. event는 다운로드가 처음 시작되면 started 값을 가지고, 해당 다운로드가 완료되면 completed 값을 가진다. 또한, event는 다운로드가 중단되는 경우 stopped 값을 가진다.
(2) 트래커 응답
쿼리가 실패하는 경우, 트래커 응답은 쿼리가 실패한 이유를 설명하는 문자열인 failure reason 키를 갖는다. 이 때, 다른 키는 요구되지 않는다.
반면, 쿼리가 성공하는 경우, 트래커 응답은 interval 키 및 peers 키를 갖는다. 이 때, interval 키는 재요청(rerequest) 사이에 다운로더가 기다려야 하는 시간(초)에 대한 정보를 포함하고, peers 키는 peer id, ip, 및 port 등 피어에 대한 정보를 포함한다.
(3) 피어 프로토콜
비트 토렌트의 피어 프로토콜은 TCP 상에서 동작할 수 있다. 이 때, 피어 프로토콜은 특별한 소켓 옵션들의 설정 없이도 동작 가능하다.
피어 커넥션은 대칭적이다. 즉, 양 방향으로 전송된 메시지들은 동일한 형식을 가지며, 데이터는 어느 방향으로든 전송될 수 있다.
피어 프로토콜은 0부터 시작하는 metainfo 파일에 표시된 인덱스에 의해 파일의 조각들을 참조한다. 피어는 하나의 조각에 대해 다운로드를 완료하면, 그 조각에 대한 해시를 검사하고, 다른 모든 피어들에게 상기 다운로드를 완료한 조각을 가지고 있음을 공표(announce)한다.
피어 사이의 연결은 초크(choked) 상태인지 여부 및 관심(interested) 상태인지 여부에 대한 정보를 포함하는 2 비트의 바이너리 코드로 표현될 수 있다. 여기서, 상기 연결이 초크 상태를 유지하는 경우 어떠한 데이터도 전송되지 아니한다. 한 피어가 관심 상태이고 다른 피어가 초크 상태가 아닌 경우, 데이터 전송이 일어난다.
(4) 피어 와이어 프로토콜의 핸드쉐이크
피어 와이어 프로토콜(per wire protocol)은 핸드쉐이크(handshake)로 구성된다. 핸드쉐이크는 19를 의미하는 문자로 시작하고, 그 뒤로 'BitTorrent protocol'의 문자열이 뒤따른다. 여기서, 상기 19는 뒤따르는 문자열의 길이를 의미한다.
핸드쉐이크는 상기 고정된 길이의 헤더 뒤로 8 바이트의 리저브된(reserved) 데이터를 갖는다. 현재의 비트 토렌트 구현 상에서 상기 8 바이트는 모두 0의 값을 갖는다.
핸드쉐이크는 상기 8 바이트의 리저브된 데이터 뒤로, metainfo 파일에서 info 값의 벤코드된 형식에 대한 20 바이트의 sha1 해시를 갖는다. 이것은 트래커 겟 요청 메시지에 포함된 info_hash와 동일한 값이다. 만약, 연결된 두 피어 사이에서 서로에게 전송된 상기 20 바이트의 sha1 해시 값이 동일하지 아니한 경우, 이들은 접속을 끊을 수 있다.
핸드쉐이크는 상기 20 바이트의 sha1 해시 뒤로, 20 바이트의 peer id를 갖는다. peer id는 트래커 요청 시 리포트되는 값으로써, 트래커 응답 내 피어들의 리스트에 포함되는 값이다. 만약 수신 측(receiving side) peer id가 연결 시도 측(initiating side) 피어의 예상과 맞지 않는 경우, 상기 연결 시도 측 피어는 상기 연결을 끊을 수 있다.
상기 핸드쉐이크가 완료되면 길이가 미리 정해진 데이터 및 메시지가 전송될 수 있다.
(5) 본 발명의 일실시예에 따른 네트워크의 토렌트 트래픽 선별 차단 방법
도 1은 본 발명의 일실시예에 따른 HTTP 트래커 겟 리퀘스트(HTTP 트래커(tracker) Get Request) 메시지를 이용한 네트워크의 토렌트 트래픽 선별 차단 방법을 설명하는 블록도이다.
도 1을 참조하면, 본 발명의 일실시예에 따른 네트워크의 토렌트 트래픽 선별 차단 방법은 HTTP를 이용하는 트래커 서버에 요청 시 필수 파라미터들을 포함하는 HTTP 겟 리퀘스트 메시지를 전송하는 점을 이용하여, 일반 HTTP 겟 리퀘스트 메시지와 구분하여 토렌트 트래픽을 선별하여 차단할 수 있다.
보다 구체적으로, 본 발명의 일실시예에 따른 네트워크의 토렌트 트래픽 선별 차단 방법은 네트워크를 통하여 외부 단말 장치로 송신되는 데이터가 HTTP 겟 리퀘스트(HTTP Get Request) 메시지(100)인지 여부를 감지하는 단계; 상기 감지 결과를 기초로 상기 HTTP 겟 리퀘스트 메시지(100)가 토렌트(torrent) 트래픽과 관련된 필수 파라미터들을 포함하고 있는지 여부를 판단하는 단계; 및 상기 판단 결과를 기초로 상기 HTTP 겟 리퀘스트 메시지(100)를 차단하는 단계를 포함한다.
여기서, 상기 필수 파라미터들은 토렌트 파일과 관련된 해시(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와 같은 파라미터들을 이용하여 토렌트 트래픽을 선별적으로 차단할 수 있다.
또한, 상기 차단하는 단계는 상기 판단 결과를 기초로 상기 HTTP 겟 리퀘스트 메시지(100)에 포함된 유저 에이전트(User Agent)에 대한 파라미터(140)가 미리 설정된 패턴을 가지는지 여부를 검사하는 단계; 및 상기 검사 결과를 기초로 상기 HTTP 겟 리퀘스트 메시지(100)의 차단을 수행하는 단계를 포함할 수 있다.
여기서, 상기 미리 설정된 패턴은 uTorrent를 포함하는 문자열을 포함할 수 있다. 이 때, 상기 유저 에이전트(User Agent)에 대한 파라미터(140)는 User-Agent일 수 있다.
도 3은 본 발명의 일실시예에 따른 비트 토렌트 피어 와이어 프로토콜(BitTorrent Peer wire Protocol) 패킷을 이용한 네트워크의 토렌트 트래픽 선별 차단 방법을 설명하는 블록도이다.
도 3을 참조하면, 본 발명의 일실시예에 따른 네트워크의 토렌트 트래픽 선별 차단 방법은 피어 와이어 프로토콜의 핸드쉐이크를 방해함으로써, 토렌트 트래픽의 선별 차단을 수행할 수 있다.
보다 구체적으로, 본 발명의 일실시예에 따른 네트워크의 토렌트 트래픽 선별 차단 방법은 네트워크를 통하여 외부 단말 장치와 송수신되는 데이터가 TCP 패킷 또는 UDP 패킷(300)인지 여부를 감지하는 단계; 상기 감지 결과를 기초로 상기 TCP 패킷 또는 상기 UDP 패킷(300)의 크기가 미리 설정된 크기보다 큰지 여부 및 상기 TCP 패킷 또는 상기 UDP 패킷(300)이 미리 정해진 위치에 미리 설정된 패턴을 가지는지 여부를 판단하는 단계; 및 상기 판단 결과를 기초로 상기 TCP 패킷 또는 상기 UDP 패킷(300)을 차단하는 단계를 포함한다.
여기서, 상기 미리 설정된 크기는 69 바이트를 포함할 수 있다. 즉, 본 발명의 일실시예에 따른 네트워크의 토렌트 트래픽 선별 차단 방법은 상기 감지된 TCP 패킷 또는 UDP 패킷(300)의 크기가 69 바이트보다 큰 패킷에 대하여 토렌트 트래픽인지 여부를 선별하기 위한 검사를 수행할 수 있다.
또한, 상기 미리 정해진 위치는 상기 TCP 패킷 또는 상기 UDP 패킷의 첫 20 바이트(310)를 포함하고, 상기 미리 설정된 패턴은 0x13(이것은 16진수 표현임)을 포함하는 문자 및 'BitTorrent protocol'을 포함하는 문자열(320)을 포함할 수 있다. 즉, 본 발명의 일실시예에 따른 네트워크의 토렌트 트래픽 선별 차단 방법은 피어 와이어 프로토콜의 핸드쉐이크의 고정된 길이의 헤더를 검출하여 토렌트 트래픽을 선별할 수 있다. 이 때, 0x13은 십진수로 19를 의미하고, 전술한 바와 같이 상기 19는 뒤따르는 문자열의 길이를 의미한다.
4. 비트 토렌트를 위한 UDP 트래커 프로토콜(UDP 트래커(tracker) Protocol for BitTorrent
(1) HTTP 프로토콜의 오버헤드
스웜(swarm) 내 다른 피어들을 발견하기 위하여 클라이언트는 트래커에 자신의 존재를 알려야 한다. 이 경우, 전술한 바와 같이 HTTP 프로토콜이 사용되고, info_hash, key, peer_id, port, downloaded, left, uploaded, 및 compact에 관한 정보가 전송된다. 또한, 이에 대한 트래커의 응답은 피어들의 리스트에 관한 정보를 포함한다. 상기 요청 및 응답은 모두 요구되는 데이터 량이 짧지만, TCP를 사용하는 경우 TCP 연결을 위한 오픈 및 클로우즈 작업으로 인하여 추가적인 오버헤드가 발생한다.
보다 구체적으로, 상기 추가적인 오버헤드는 이더넷 레이어에서 패킷당 14 바이트, IP 레이어에서 패킷당 20 바이트, TCP 레이어에서 패킷당 20 바이트, 및 HTTP 레이어의 오버헤드를 포함한다. 예를 들면, 요청에 10 패킷을 사용하고, 이에 대하여 50 명의 피어들을 포함하는 응답을 하는 경우, 총 사용되는 데이터 량은 1206 바이트가 된다.
이러한 오버헤드는 UDP 기반 프로토콜을 사용함으로써 상당히 감소될 수 있다. 예를 들면, UDP 기반 프로토콜 사용시, 상기 오버헤드는 618 바이트에 해당하는 4 패킷으로 감소된다. 즉, 기존 HTTP 프로토콜을 사용하는 경우에 비하여 오버헤드 트래픽이 50%로 감소될 수 있다.
클라이언트 입장에서 시간당 1 kByte의 오버헤드를 줄이는 것은 큰 효과라 보기 어려울 수 있으나, 수많은 피어들에게 서비스를 제공하는 트래커 서버 입장에서는 오버헤드를 반으로 줄이는 것은 중대한 효과이다.
더 나아가, UDP 기반 프로토콜은 복잡한 파서(parser)를 요구하지 아니하고, 커넥션 핸들링을 필요로 하지 아니하므로, 트래커 서버의 코드를 단순화 함으로써 성능을 향상시킬 수 있다.
(2) UDP 트래커 프로토콜
기본적으로, 피어는 어나운싱(announcing) 또는 스크래핑(scraping)을 수행하기에 앞서 커넥션 ID를 획득해야 한다. UDP 트래커 프로토콜은 다음과 같다.
접속 요청(connect request):
i) 랜덤하게 트랜젝션 ID를 선택한다.
ii) 커넥트 요청 스트럭쳐(connect request structure)를 채운다.
iii) 패킷을 전송한다.
접속 응답(connect response):
i) 패킷을 수신한다.
ii) 수신된 패킷이 적어도 16 바이트인지 여부를 확인한다.
iii) 트랜젝션 ID가 접속 요청(connect request)시 선택한 것과 동일한지 여부를 확인한다.
iv) 액션(action)이 접속(connect)에 대응되는 값인지 여부를 확인한다.
v) 나중을 위하여 커넥션 ID를 저장한다.
어나운스 요청(announce request):
i) 랜덤하게 트랜젝션 ID를 선택한다.
ii) 어나운스 요청 스트럭쳐(announce request structure)를 채운다.
iii) 패킷을 전송한다.
어나운스 응답(announce response):
i) 패킷을 수신한다.
ii) 수신된 패킷이 적어도 20 바이트인지 여부를 확인한다.
iii) 트랜젝션 ID가 접속 요청(connect request)시 선택한 것과 동일한지 여부를 확인한다.
iv) 액션(action)이 어나운스(announce)에 대응되는 값인지 여부를 확인한다.
v) 인터벌(interval) 시간(초)이 경과되거나, 이벤트가 발생하지 않는 한 다시 어나운스(announce)를 요청하지 아니한다.
에러 응답(error response):
만약, 트래커 서버에 에러가 발생하면, 에러 패킷을 전송할 수 있다.
i) 패킷을 수신한다.
ii) 수신된 패킷이 적어도 8 바이트인지 여부를 확인한다.
iii) 트랜젝션 ID가 접속 요청(connect request)시 선택한 것과 동일한지 여부를 확인한다.
(3) 본 발명의 일실시예에 따른 네트워크의 토렌트 트래픽 선별 차단 방법
도 2는 본 발명의 일실시예에 따른 UDP 트래커 프로토콜(UDP 트래커(tracker) Protocol) 패킷을 이용한 네트워크의 토렌트 트래픽 선별 차단 방법을 설명하는 블록도이다.
도 2를 참조하면, 본 발명의 일실시예에 따른 네트워크의 토렌트 트래픽 선별 차단 방법은 UDP 트래커 프로토콜 중 커넥트 요청(connect request) 메시지 및 어나운스 요청(announce request) 메시지를 차단하여 클라이언트와 트래커 서버 사이의 핸드쉐이크를 방해함으로써, 토렌트 트래픽을 선별하여 차단할 수 있다.
이 때, 본 발명의 일실시예에 따른 네트워크의 토렌트 트래픽 선별 차단 방법은 UDP 데이터의 크기가 상기 커넥트 요청 메시지나 상기 어나운스 요청 메시지 등과 크기가 같고, 상기 UDP 데이터의 액션(action) 필드의 값이 상기 커넥트 요청 메시지나 상기 어나운스 요청 메시지와 일치하는 경우 토렌트 트래픽으로 선별하여 이를 차단할 수 있다.
보다 구체적으로, 본 발명의 일실시예에 따른 네트워크의 토렌트 트래픽 선별 차단 방법은 네트워크를 통하여 외부 단말 장치와 송수신되는 데이터가 UDP 패킷(200)인지 여부를 감지하는 단계; 상기 감지 결과를 기초로 상기 UDP 패킷(200)이 토렌트 트래픽과 관련된 복수의 구조체들 중 적어도 어느 하나와 크기가 같은지 여부 및 상기 UDP 패킷(200)에 포함된 특정 파라미터가 미리 정해진 범위 내의 값을 갖는지 여부를 판단하는 단계; 및 상기 판단 결과를 기초로 상기 UDP 패킷(200)을 차단하는 단계를 포함한다.
여기서, 상기 복수의 구조체들은 UDP 트래커 프로토콜(UDP 트래커(tracker) Protocol)에 포함되는 커넥트 요청(connect request) 메시지와 관련된 구조체(210); UDP 트래커 프로토콜에 포함되는 어나운스 요청(announce request) 메시지와 관련된 구조체(220); 및 UDP 트래커 프로토콜에 포함되는 오류 응답(error response) 메시지와 관련된 구조체(230) 중 적어도 하나를 포함할 수 있다.
또한, 상기 특정 파라미터는 액션(action)에 대한 파라미터(211, 221, 및 231)를 포함하고, 상기 미리 정해진 범위 내의 값은 미리 설정된 복수의 정수 값들을 포함할 수 있다. 이 때, 상기 액션(action)에 대한 파라미터(211, 221, 및 231)는 action일 수 있다.
예를 들면, 본 발명의 일실시예에 따른 네트워크의 토렌트 트래픽 선별 차단 방법은 감지된 UDP 패킷이 커넥트 요청 구조체(210)와 크기가 같고, 상기 UDP 패킷 내 action(211)의 값이 0인 경우; 감지된 UDP 패킷이 어나운스 요청 구조체(220)와 크기가 같고, 상기 UDP 패킷 내 action(221)의 값이 1인 경우; 또는 감지된 UDP 패킷이 오류 응답 구조체(230)와 크기가 같고, 상기 UDP 패킷 낸 action(231)의 값이 2인 경우 토렌트 트래픽으로 선별하여 이를 차단할 수 있다.
5. 마이크로 토렌트 전송 프로토콜(uTorrent transport protocol, uTP)
(1) uTP의 개관
uTP는 비트 토렌트 클라이언트가 사용되지 않는 대역폭을 활용하면서도, 인터넷 연결을 방해하지 않도록 하기 위한 프로토콜이다.
DSL 및 케이블 모뎀은 전형적으로 그들의 최대 전송 속도와 비례하지 않는 크기의 송신 버퍼를 갖는다. 이 때, 비트 트렌트는 상기 송신 버퍼를 빠르게 채울 수 있다. 다만, 비트 토렌트 트래픽은 일반적으로 백그라운드 전송이고, 이메일 체크, 전화, 및 웹 브라우징 등에 비하여 낮은 우선 순위를 갖으므로, 비트 토렌트와 관련된 모든 양방향 트래픽에 수 초에 해당하는 딜레이가 발생할 수 있다.
비트 토렌트는 복수의 TCP 연결들을 사용하므로, 경쟁하는 다른 서비스들에 비하여 대역폭의 관점에서 불공평하게 유리할 수 있다. 왜냐하면, TCP는 모든 연결들에 대하여 균일하게 대역폭을 분배하기 때문이다. 따라서, 비트 토렌트가 더 많은 TCP 연결들을 사용할수록, 더 큰 대역폭을 사용할 수 있다.
상기 문제에 대한 전통적인 해결 방안은 최대 업링크 용량의 80%로 비트 토렌트 클라이언트의 업로드 속도를 제한하는 것이다. 다만, 이러한 해결 방안에는 다음과 같은 단점들이 존재한다.
i) 사용자가 비트 토렌트 클라이언트를 환경 설정해야 한다.
ii) 사용자가 인터넷의 업로드 용량을 알아야 한다. 그리고, 상기 업로드 용량은 변동 가능하다.
iii) 20%의 헤드룸은 임의적이고, 상기 헤드룸으로 인하여 대역폭이 낭비된다. 즉, 비트 토렌트와 경쟁하는 트래픽이 존재하지 아니하는 경우, 상기 20%의 대역폭이 항상 낭비된다. 반면, 비트 토렌트와 경쟁하는 트래픽이 존재하는 경우에도, 상기 트래픽은 20%의 대역폭만 사용할 수 있다.
uTP는 모뎀의 큐 사이즈를 전송 속도를 위한 컨트롤러로 사용함으로써 이 문제를 해결할 수 있다. 즉, uTP는 큐가 지나치게 커지면 전송 속도를 줄이는 방식을 사용한다.
uTP는 비트 토렌트와 경쟁하는 트래픽이 존재하지 아니하는 경우 전체 업로드 용량을 활용할 수 있고, 비트 토렌트와 경쟁하는 트래픽이 존재하는 경우 전송 속도를 줄일 수 있다.
(2) 본 발명의 일실시예에 따른 네트워크의 토렌트 트래픽 선별 차단 방법
도 4는 본 발명의 일실시예에 따른 유 토렌트 전송 프로토콜(uTorrent Transport Protocol) 패킷을 이용한 네트워크의 토렌트 트래픽 선별 차단 방법을 설명하는 블록도이다.
도 4를 참조하면, 본 발명의 일실시예에 따른 네트워크의 토렌트 트래픽 선별 차단 방법은 uTP에 사용되는 UDP 패킷을 표준 버전 및 비 표준 버전으로 분류하고, 상기 표준 버전의 헤더 포맷 및 상기 비 표준 버전의 헤더 포맷 각각에 대하여 시그니쳐(signature) 분석을 함으로써, 토렌트 트래픽을 선별하여 이를 차단할 수 있다.
보다 구체적으로, 본 발명의 일실시예에 따른 네트워크의 토렌트 트래픽 선별 차단 방법은 네트워크를 통하여 외부 단말 장치와 송수신되는 데이터가 UDP 패킷(400)인지 여부를 감지하는 단계; 상기 감지 결과를 기초로 상기 UDP 패킷(400)의 크기가 미리 설정된 헤더 포맷의 크기보다 큰지 여부를 검사하는 단계; 상기 검사 결과를 기초로 상기 UDP 패킷(400)이 미리 정해진 조건을 만족하는지 여부를 판단하는 단계; 및 상기 판단 결과를 기초로 상기 UDP 패킷(400)을 차단하는 단계를 포함한다.
여기서, 상기 UDP 패킷(400)이 미리 정해진 조건을 만족하는지 여부를 판단하는 단계는 상기 UDP 패킷(400)이 비 표준 버전의 헤더 포맷(410)인지 표준 버전의 헤더 포맷(420)인지 여부를 선별하는 단계; 및 상기 선별 결과에 따라 상기 UDP 패킷에 포함된 특정 파라미터가 미리 정해진 범위 내의 값을 갖는지 여부에 대한 판단을 수행하는 단계를 포함할 수 있다.
본 발명은 헤더 포맷의 버전 필드를 확인함으로써, UDP 패킷(400)이 표준 버전인지 아니면, 비표준 버전인지 확인할 수 있다.
이 때, 상기 선별 결과가 상기 UDP 패킷(400)이 비 표준 버전의 헤더 포맷(410)이라는 선별 결과인 경우(즉, 버전 필드가 존재하지 않거나, 버전 필드에 1이 아닌 다른 값이 셋팅되어 있는 경우), 상기 특정 파라미터는 플래그(flag)에 대한 파라미터(411)를 포함하고, 상기 미리 정해진 범위 내의 값은 미리 설정된 수치 미만의 정수 값들을 포함할 수 있다. 이 경우, 상기 미리 설정된 수치는 정수 5일 수 있다.
또한, 버전 필드(421)에 1이 셋팅되어 있는 경우, 이것은 상기 선별 결과가 상기 UDP 패킷(400)이 표준 버전의 헤더 포맷(420)임을 나타낸다. 즉, 버전 필드(421)에 1과 같은 미리 설정된 정수 값이 셋팅된 경우, 상기 UDP 패킷(400)은 표준 버전의 헤더 포맷(420)으로 판단될 수 있다. 특히, 버전 필드(421)에 1이 셋팅되어 있으면서, 타입 필드(422)에 미리 설정된 수치 미만의 정수 값들(예를 들어, 5미만의 값)이 셋팅된 경우, UDP 패킷(400)은 표준 버전의 헤더 포맷(420)으로 판단될 수 있다.
6. DHT(Distributed sloppy Hash Table) 프로토콜
(1) DHT 프로토콜의 개관
비트 토렌트는 트래커리스(trackerless) 토렌트를 위한 피어 접속 정보를 저장하기 위하여 DHT(Distributed sloppy Hash Table)을 사용할 수 있다. 이 때, 복수의 피어들 각각이 트래커(tracker)가 될 수 있다. DHT 프로토콜은 UDP 상에서 구현될 수 있다.
이하, 피어(peer)는 비트 토렌트 프로토콜을 구현한 TCP 포트를 수신 대기하는 클라이언트 및 서버를 지칭하고, 노드(node)는 DHT 프로토콜을 구현한 UDP 포트를 수신 대기하는 클라이언트 및 서버를 지칭한다.
DHT는 복수의 노드들로 구성되고, 복수의 피어들의 위치를 저장한다. 비트 토렌트 클라이언트는 DHT 노드를 포함하고, 상기 포함된 DHT 노드는 비트 토렌트 프로토콜을 이용하여 다운로드를 수행할 피어들의 위치를 획득하기 위하여 DHT 내 다른 노드들에 접속하는 데 사용된다.
각 노드는 글로벌하게 고유한 식별자인 노드 ID를 갖는다. 노드 ID는 비트 토렌트 infohash와 같이 160 비트의 랜덤한 값으로 선택된다. 거리 메트릭(distance metric)은 두 노드 ID들이나 노드 ID와 infohash의 근접성(closeness)을 비교하는 데 사용된다. 노드들은 소수의 다른 노드들에 대한 컨텍트 정보를 포함하는 라우팅 테이블을 유지해야 한다. 라우팅 테이블은 자신의 노드 ID와의 거리가 가까울수록 보다 상세해진다.
상기 거리 메트릭을 위하여 XOR 연산을 사용할 수 있다. XOR 연산 결과는 부호 없는 정수로 해석될 수 있다. 예를 들면, distance(A,B) = |A xor B| 이다. 여기서, distance 값이 더 작을수록 노드 사이의 거리는 더 가까움을 의미한다.
노드는 토렌트를 위한 피어들을 찾기 위하여, 자신의 라우팅 테이블 내 노드들의 ID와 토렌트의 infohash 사이의 거리를 비교할 수 있다. 노드는 infohash와 가장 가까운 노드에 접속하고, 현재 그 토렌트를 다운로드하고 있는 피어들에 대한 컨텍트 정보를 요청할 수 있다. 만약 접속된 노드가 토렌트를 위한 피어들을 알고 있다면, 그 피어 컨텍트 정보를 리턴한다. 반면, 접속된 노드가 토렌트를 위한 피어들을 알고 있지 않다면, 상기 접속된 노드는 자신의 라우팅 테이블 내 토렌트의 infohash와 가장 가까운 노드들의 컨텍트 정보를 리턴해야 한다. 오리지널 노드는 토렌트와 가장 가까운 노드를 찾을 때까지 반복적으로 쿼리를 수행한다. 탐색이 종료되면, 클라이언트는 자신의 피어 컨택트 정보에 토렌트의 infohash와 가장 가까운 노드 ID를 갖는 응답 노드들을 삽입한다.
(2) 본 발명의 일실시예에 따른 네트워크의 토렌트 트래픽 선별 차단 방법
도 5는 본 발명의 일실시예에 따른 DHT(Distributed sloppy Hash Table) 프로토콜 패킷을 이용한 네트워크의 토렌트 트래픽 선별 차단 방법을 설명하는 블록도이다.
도 5를 참조하면, 본 발명의 일실시예에 따른 네트워크의 토렌트 트래픽 선별 차단 방법은 트래커리스(trackerless) 토렌트에 사용되는 DHT 프로토콜을 이용하여 토렌트 트래픽인지 여부를 선별하고, 이를 차단할 수 있다.
전술한 바와 같이 DHT 프로토콜은 트래커를 사용하지 않는 경우 피어들의 정보를 공유하기 위하여 사용될 수 있다. 이 때, DHT 프로토콜은 벤코딩(bencoding)을 사용하고, 각 패킷마다 하나의 디렉토리(directory)로 구성되기 때문에 모든 패킷들이 d1:<elements>e 형식으로 인코딩된다. 본 발명의 일실시예에 따른 네트워크의 토렌트 트래픽 선별 차단 방법은 상기 특성을 이용하여 토렌트 트래픽인지 여부를 선별하고, 이를 차단할 수 있다.
보다 구체적으로, 본 발명의 일실시예에 따른 네트워크의 토렌트 트래픽 선별 차단 방법은 네트워크를 통하여 외부 단말 장치와 송수신되는 데이터가 UDP 패킷(500)인지 여부를 감지하는 단계; 상기 감지 결과를 기초로 상기 UDP 패킷(500)이 미리 설정된 패턴으로 인코딩된 패킷인지 여부를 판단하는 단계; 및 상기 판단 결과를 기초로 상기 UDP 패킷(500)을 차단하는 단계를 포함한다.
여기서, 상기 미리 설정된 패턴은 d1:을 포함하는 문자열(510); 적어도 하나의 엘레먼트(element, 520); 및 e를 포함하는 문자(530)를 차례로 포함할 수 있다.
상술한 방법들은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
100: HTTP 겟 리퀘스트 메시지
110: 토렌트 파일과 관련된 해시(hash)에 대한 파라미터
120: 피어 아이디(peer ID)에 대한 파라미터
130: 포트 번호에 대한 파라미터
140: 유저 에이전트(User Agent)에 대한 파라미터

Claims (11)

  1. 컴퓨팅 장치가, 네트워크를 통하여 외부 단말 장치로 송신되는 데이터가 HTTP 겟 리퀘스트(HTTP Get Request) 메시지인지 여부를 감지하는 단계;
    상기 컴퓨팅 장치가, 상기 데이터가 HTTP 겟 리퀘스트 메시지인 경우, 상기 HTTP 겟 리퀘스트 메시지가 토렌트(torrent) 트래픽과 관련된 필수 파라미터들을 포함하고 있는지 여부를 판단하는 단계;
    상기 컴퓨팅 장치가, 상기 HTTP 겟 리퀘스트 메시지가 상기 필수 파라미터들을 포함하는 경우, 상기 HTTP 겟 리퀘스트 메시지를 토렌트 트래픽으로 선별하는 단계; 및
    상기 컴퓨팅 장치가, 상기 HTTP 겟 리퀘스트 메시지가 상기 토렌트 트래픽으로 선별되는 경우, 상기 HTTP 겟 리퀘스트 메시지를 차단하는 단계
    를 포함하는 네트워크의 토렌트 트래픽 선별 차단 방법.
  2. 제1항에 있어서,
    상기 필수 파라미터들은
    적어도 토렌트 파일과 관련된 해시(hash)에 대한 파라미터;
    피어 아이디(peer ID)에 대한 파라미터; 및
    포트 번호에 대한 파라미터
    를 포함하는 네트워크의 토렌트 트래픽 선별 차단 방법.
  3. 제1항에 있어서,
    상기 선별하는 단계는
    상기 HTTP 겟 리퀘스트 메시지가 상기 필수 파라미터들을 포함하는 경우, 상기 컴퓨팅 장치가, 상기 HTTP 겟 리퀘스트 메시지에 포함된 유저 에이전트(User Agent)에 대한 파라미터가 미리 설정된 패턴을 가지는지 여부를 검사하는 단계; 및
    상기 유저 에이전트에 대한 파라미터가 상기 미리 설정된 패턴을 가지는 경우, 상기 컴퓨팅 장치가, 상기 HTTP 겟 리퀘스트 메시지를 토렌트 트래픽으로 선별하는 단계
    를 포함하는 네트워크의 토렌트 트래픽 선별 차단 방법.
  4. 제3항에 있어서,
    상기 미리 설정된 패턴은
    uTorrent를 포함하는 문자열을 포함하는 네트워크의 토렌트 트래픽 선별 차단 방법.
  5. 컴퓨팅 장치가, 네트워크를 통하여 외부 단말 장치와 송수신되는 데이터가 UDP 패킷인지 여부를 감지하는 단계;
    상기 컴퓨팅 장치가, 상기 데이터가 UDP 패킷인 경우, 상기 UDP 패킷의 크기가 토렌트 트래픽과 관련된 복수의 구조체들 중 적어도 어느 하나의 구조체의 크기와 같은지 여부를 판단하는 단계;
    상기 컴퓨팅 장치가, 상기 데이터가 UDP 패킷인 경우, 상기 UDP 패킷에 포함된 특정 파라미터가 미리 정해진 범위 내의 값을 갖는지 여부를 판단하는 단계;
    상기 컴퓨팅 장치가, 상기 UDP 패킷의 크기가 상기 어느 하나의 구조체의 크기와 같고, 상기 UDP 패킷에 포함된 특정 파라미터가 미리 정해진 범위 내의 값을 갖는 경우, 상기 UDP 패킷을 토렌트 트래픽으로 선별하는 단계; 및
    상기 컴퓨팅 장치가, 상기 UDP 패킷이 상기 토렌트 트래픽으로 선별되는 경우, 상기 UDP 패킷을 차단하는 단계
    를 포함하는 네트워크의 토렌트 트래픽 선별 차단 방법.
  6. 제5항에 있어서,
    상기 복수의 구조체들은
    UDP 트래커 프로토콜(UDP 트래커(tracker) Protocol)에 포함되는 커넥트 요청(connect request) 메시지와 관련된 구조체;
    UDP 트래커 프로토콜에 포함되는 어나운스 요청(announce request) 메시지와 관련된 구조체; 및
    UDP 트래커 프로토콜에 포함되는 오류 응답(error response) 메시지와 관련된 구조체
    중 적어도 하나를 포함하는 네트워크의 토렌트 트래픽 선별 차단 방법.
  7. 제5항에 있어서,
    상기 특정 파라미터는
    액션(action)에 대한 파라미터를 포함하고,
    상기 미리 정해진 범위 내의 값은
    미리 설정된 복수의 정수 값들을 포함하는 네트워크의 토렌트 트래픽 선별 차단 방법.
  8. 컴퓨팅 장치가, 네트워크를 통하여 외부 단말 장치와 송수신되는 데이터가 TCP 패킷 및 UDP 패킷 중 어느 하나인지 여부를 감지하는 단계;
    상기 컴퓨팅 장치가, 상기 데이터가 상기 TCP 패킷 및 상기 UDP 패킷 중 어느 하나인 경우, 상기 데이터의 크기가 미리 설정된 크기보다 큰지 여부를 판단하는 단계;
    상기 컴퓨팅 장치가, 상기 데이터의 크기가 상기 미리 설정된 크기보다 큰 경우, 상기 데이터가 미리 정해진 위치에 미리 설정된 패턴을 가지는지 여부를 판단하는 단계;
    상기 컴퓨팅 장치가, 상기 데이터의 크기가 상기 미리 설정된 크기보다 크고, 상기 데이터가 상기 미리 정해진 위치에 상기 미리 설정된 패턴을 가지는 경우, 상기 데이터를 토렌트 트래픽으로 선별하는 단계; 및
    상기 컴퓨팅 장치가, 상기 데이터가 상기 토렌트 트래픽으로 선별되는 경우, 상기 데이터를 차단하는 단계
    를 포함하는 네트워크의 토렌트 트래픽 선별 차단 방법.
  9. 제8항에 있어서,
    상기 미리 설정된 크기는
    69 바이트를 포함하는 네트워크의 토렌트 트래픽 선별 차단 방법.
  10. 제8항에 있어서,
    상기 미리 정해진 위치는
    상기 TCP 패킷 또는 상기 UDP 패킷의 첫 20 바이트를 포함하고,
    상기 미리 설정된 패턴은
    16진수로서 0x13을 포함하는 문자 및 BitTorrent protocol을 포함하는 문자열을 포함하는 네트워크의 토렌트 트래픽 선별 차단 방법.
  11. 제1항 내지 제10항 중에서 어느 하나의 항의 방법을 실행시키기 위한 프로그램이 기록된 컴퓨터 판독 가능한 기록 매체.

KR1020120019803A 2012-02-27 2012-02-27 네트워크의 토렌트 트래픽 선별 차단 방법 KR101364927B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020120019803A KR101364927B1 (ko) 2012-02-27 2012-02-27 네트워크의 토렌트 트래픽 선별 차단 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120019803A KR101364927B1 (ko) 2012-02-27 2012-02-27 네트워크의 토렌트 트래픽 선별 차단 방법

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020110121018A Division KR101145608B1 (ko) 2011-11-18 2011-11-18 네트워크의 토렌트 트래픽 선별 차단 방법

Publications (2)

Publication Number Publication Date
KR20130055496A KR20130055496A (ko) 2013-05-28
KR101364927B1 true KR101364927B1 (ko) 2014-02-25

Family

ID=48663972

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120019803A KR101364927B1 (ko) 2012-02-27 2012-02-27 네트워크의 토렌트 트래픽 선별 차단 방법

Country Status (1)

Country Link
KR (1) KR101364927B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108616594B (zh) * 2018-05-04 2021-05-07 广东唯一网络科技有限公司 基于dpdk的http旁路阻断方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050100143A (ko) * 2004-04-13 2005-10-18 주식회사 아라기술 P2p 유해 정보 차단 시스템 및 방법
KR20080073551A (ko) * 2007-02-06 2008-08-11 주식회사 엘지씨엔에스 피투피 트래픽의 탐지 및 차단 장치 그리고 이의 탐지 및차단 방법
JP2009181359A (ja) * 2008-01-30 2009-08-13 Duaxes Corp ピア・ツー・ピア通信制御装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050100143A (ko) * 2004-04-13 2005-10-18 주식회사 아라기술 P2p 유해 정보 차단 시스템 및 방법
KR20080073551A (ko) * 2007-02-06 2008-08-11 주식회사 엘지씨엔에스 피투피 트래픽의 탐지 및 차단 장치 그리고 이의 탐지 및차단 방법
JP2009181359A (ja) * 2008-01-30 2009-08-13 Duaxes Corp ピア・ツー・ピア通信制御装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Thomas Zink and Marcel Waldvogel, Analysis and Efficient Classification of P2P File Sharing Traffic, Technical Report KN-201O-DiSy-02, University of Konstanz-Germany(2010.) *
Thomas Zink and Marcel Waldvogel, Analysis and Efficient Classification of P2P File Sharing Traffic, Technical Report KN-201O-DiSy-02, University of Konstanz-Germany(2010.)*

Also Published As

Publication number Publication date
KR20130055496A (ko) 2013-05-28

Similar Documents

Publication Publication Date Title
US11758013B2 (en) Methods and systems for caching data communications over computer networks
US10491657B2 (en) Network acceleration method, apparatus and device based on router device
KR101424362B1 (ko) 컨텐츠 전송 네트워크를 통한 청크식 다운로드
JP4943437B2 (ja) ネットワークにおけるファイルの分散キャッシング
US8244881B2 (en) Service virtualization over content-centric networks
US20080281950A1 (en) Method and Device for Peer to Peer File Sharing
US20080072264A1 (en) Distribution of content on a network
US8140647B1 (en) System and method for accelerated data uploading
US20090222515A1 (en) Methods and apparatus for transferring data
US20210258286A1 (en) Methods and systems for efficient packet filtering
US20140143339A1 (en) Method, apparatus, and system for resource sharing
JP2016045944A (ja) 再構成可能なオールインワンコンテンツストリームについてのシステム及び方法
US9172744B2 (en) Scalable storage with programmable networks
WO2012075853A1 (zh) 一种点对点通信方法、装置及系统
US20130054691A1 (en) Flexible rule based multi-protocol peer-to-peer caching
KR101145608B1 (ko) 네트워크의 토렌트 트래픽 선별 차단 방법
KR101364927B1 (ko) 네트워크의 토렌트 트래픽 선별 차단 방법
US10992702B2 (en) Detecting malware on SPDY connections
CN117837135A (zh) 虚拟化网络中的共享缓存
CN116418661A (zh) 信息传输方法、装置、电子设备、软件程序及存储介质
Rudish Design and Implementation of DPIPE, A P2P File Transfer Protocol for Large File Transfers in Datacenter Environments
Danzfuss Resource sharing in distributed peer-to-peer internet applications

Legal Events

Date Code Title Description
A107 Divisional application of patent
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20161206

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180212

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190124

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20200123

Year of fee payment: 7