직접 연결(프로토콜)
Direct Connect (protocol)다음에 대한 시리즈 일부 |
파일 공유 |
---|
기술 |
동영상 공유 사이트 |
비트토렌트 사이트 |
학문적 |
파일 공유 네트워크 |
P2P 클라이언트 |
스트리밍 프로그램 |
익명 파일 공유 |
개발 및 사회적 측면 |
국가별 또는 지역별 |
비교 |
DC(Direct Connect)는 피어 투 피어 파일 공유 프로토콜이다. Direct Connect 클라이언트는 중앙 허브에 연결되고 서로로부터 직접 파일을 다운로드할 수 있다. Advanced Direct Connect는 후속 프로토콜로 간주될 수 있다.
허브는 클라이언트 또는 허브에 연결된 사용자 목록을 제공한다. 사용자는 파일을 검색하여 다른 클라이언트에서 다운로드할 수 있을 뿐만 아니라 다른 사용자와의 채팅도 할 수 있다.
역사
네오모더스는 고등학교 재학 중이던 1999년 11월 존 헤스가 애드웨어 '다이렉트 커넥트'를 통해 자금을 지원받은 회사로 창업했다.[1]
첫 번째 제3자 클라이언트는 "DClite"라고 불렸는데, 이는 프로토콜의 파일 공유 측면을 완전히 지원하지 않았다. 헤스는 새로운 버전의 Direct Connect를 출시하여 연결을 시작하기 위해 간단한 암호화 키가 필요하며 타사 클라이언트를 차단했다. 암호화 키에 금이 갔고, DClite의 저자는 네오모더스의 새로운 소프트웨어와 호환되는 새로운 버전의 DClite를 출시했다. 얼마 후, DClite는 MDI 사용자 인터페이스를 갖추고 파일 공유 프로토콜에 플러그인을 사용할 목적으로 Open Direct Connect로 다시 작성되었다(MLDonkey와 유사). 오픈 다이렉트 커넥트 역시 프로토콜의 전체 파일 공유 측면에 대한 완전한 지원을 하지 못했지만, 자바로의 포트는 지원했다. 이후 DCTC(Direct Connect Text Client), DC++ 등의 다른 클라이언트가 인기를 끌었다.
DCDev 아카이브는[2] 2003-2005년 DC 개발을 위한 프로토콜 변경에 대한 논의를 포함하고 있다.
프로토콜
다이렉트 커넥트 프로토콜은 텍스트 기반의 컴퓨터 프로토콜로, 명령어와 그 정보를 원래의 네오모더스 소프트웨어에서 암호화하지 않고, 명확한 텍스트로 송신한다(암호화는 프로토콜 확장으로서 이용 가능하다). 클라이언트가 정보의 중앙 유통 소스(허브)에 연결되면서 허브는 상당한 양의 업로드 대역폭을 필요로 한다.[3]
프로토콜의 공식적인 사양은 없으며, 모든 클라이언트와 허브(원래 네오모더스 클라이언트와 허브 외)가 정보를 역설계하도록 강요받았다는 것을 의미한다. 이와 같이, 본 문서에서 참조할 수 있는 프로토콜 사양은 부정확하거나 불완전할 수 있다.[4]
프로토콜의 클라이언트-서버(하나의 클라이언트가 "서버" 역할을 하는 클라이언트-클라이언트) 측면은 접속이 이루어질 때 서버가 먼저 응답하도록 규정하고 있다. 예를 들어, 클라이언트가 허브의 소켓에 접속할 때, 허브는 먼저 클라이언트에 응답한다.
프로토콜에는 클라이언트 또는 허브에 대해 지정된 기본 문자 인코딩이 없다. 원래 클라이언트와 허브는 운영 체제 대신 ASCII 인코딩을 사용한다. 이를 통해 새로운 소프트웨어에서 UTF-8 인코딩으로 마이그레이션할 수 있다.
포트 411은 허브의 기본 포트, 클라이언트와 클라이언트 간 연결의 기본 포트 412이다. 이들 포트 중 하나가 이미 사용 중인 경우, 사용 가능한 사용 가능한 포트 수가 발견될 때까지 포트 번호가 증가된다. 예를 들어 411, 412 및 413을 사용 중인 경우 포트 414가 사용된다.
허브 주소는 dchub:https://example.com[:411], 여기서 411은 선택적 포트다.
글로벌 식별 체계는 없다. 대신 사용자들은 허브 대 허브 단위로 자신의 별명으로 식별된다.
클라이언트-클라이언트 연결에 대한 수신 요청은 실제 연결과 연결할 수 없다.[5]
검색 결과는 특정 검색과 연결할 수 없다.[6]
사용자를 발로 차거나 다른 허브로 이동하는(리디렉션) 기능은 프로토콜에 의해 지원된다. 사용자가 발로 차는 경우, 허브는 해당 사용자에게 특정한 이유를 제공할 필요가 없으며, 사용자를 리디렉션할 수 있는 위치에 제한이 없다. 단, 파워에 있는 다른 클라이언트가 허브에 킥을 지시하면, 그 클라이언트는 그렇게 하기 전에 통지 메시지를 발송할 수 있다. 사용자 리디렉션에는 이유가 수반되어야 한다. HTTP referer와 동등한 것은 없다.
허브는 사용자 명령을 클라이언트에 전송할 수 있다. 이러한 명령은 원시 프로토콜 명령일 뿐이며 특정 작업을 단순화하는 데 주로 사용된다. 예를 들어, 허브는 웹 사이트를 방문하도록 기본 브라우저를 트리거하는 사용자 명령을 전송할 수 없다. 그러나, 허브의 규칙을 표시하기 위해 "+규칙" 명령어를 추가할 수 있다(여기서 '+'는 허브에 명령임을 표시한다 - 이것은 다를 수 있다).
프로토콜의 피어투피어 부분은 "슬롯"의 개념에 기초한다(작업의 열린 위치 수와 유사). 이 슬롯은 지정된 시간에 사용자로부터 다운로드할 수 있고 클라이언트에 의해 제어되는 사용자 수를 나타낸다.
클라이언트 간 연결에서 당사자들은 누가 먼저 다운로드를 허용해야 하는지 확인하기 위해 임의의 번호를 생성하며, 숫자가 많은 클라이언트가 이긴다.
다운로드를 전송하고 허브에 연결하려면 TCP가 필요하며, 활성 검색은 UDP를 사용한다.
사용자가 사용할 수 있는 모드는 "활성" 모드와 "수동" 모드 중 두 가지가 있다. 액티브 모드를 사용하는 클라이언트는 네트워크상의 다른 누구로부터도 다운받을 수 있는 반면, 패시브 모드를 사용하는 클라이언트는 액티브 유저로부터만 다운받을 수 있다. 네오모더스 다이렉트 커넥트에서 패시브 모드 사용자는 다른 패시브 모드 사용자의 검색 결과를 수신하지만 사용자는 아무것도 다운로드할 수 없게 된다. DC++에서는 사용자가 이러한 검색 결과를 수신하지 않는다. 네오모더스 다이렉트 커넥트에서는 모든 사용자가 쿼리당 최대 5개의 검색 결과를 보내게 된다. 사용자가 검색한 경우 DC++는 사용자가 활성 모드일 때 10개, 수동 모드일 때 5개 검색 결과로 응답한다. 패시브 클라이언트는 허브를 통해 검색 결과를 전송하고 액티브 클라이언트는 결과를 직접 수신한다.
프로토콜 구분 기호는 "$", ", U+0020 SPACE이다. 프로토콜은 이스케이프 시퀀스(및 그 외 몇 개)를 가지고 있으며 대부분의 소프트웨어는 로그인(Lock to Key) 시퀀스에서 그것들을 올바르게 사용한다. DC++ 개발자들에 의해 탈출 순서가 무시된 어떤 이유 때문에, 그들은 만약 이러한 문자를 사용자가 볼 수 있다면 HTML 등가물을 사용한다.
등급이나 언어 팩과 같은 기능에 대한 지속적인 관심이 존재한다. 그러나 DC++의 저자들은 Advanced Direct Connect라고 하는 Direct Connect 프로토콜의 완전한 대체에 적극적으로 임해 왔다.
원래 프로토콜과 비교하여 프로토콜에 추가된 특징의 한 예는 공유 파일의 TTH(Tiger-Tree Hashing) 방송이다. 이것의 장점은 파일이 올바르게 다운로드되었는지 확인하는 것, 그리고 이름과는 독립적으로 파일을 찾을 수 있다는 것이다.
허브 목록
이름 | NMDC | ADC | 등록 | CTM 탐지 | 트로이 목마 탐지 | 활동적인 | 유니코드 |
---|---|---|---|---|---|---|---|
ufo-modus.com | 네 | 아니요. | 레지서버 | 네 | 네 | 네 | 네 |
dchublist.org | 네 | 네 | 웹 기반/Regserver | 네 | 네 | 네 | 네 |
te-home.net/ | 네 | 네 | 웹 기반 | 네 | 아니요. | 네 | |
dchublistru | 네 | 아니요. | 알 수 없음 | 알 수 없음 | 아니요. | 네 | |
dchublist.biz/ | 네 | 아니요. | 웹 기반 | 네 | 아니요. | 네 |
DDoS 공격에 사용되는 직접 연결
허브가 사용자를 다른 허브로 리디렉션할 수 있도록 허용함에 따라 악의적인 허브는 사용자를 실제 Direct Connect 허브가 아닌 다른 곳으로 리디렉션하여 분산 서비스 거부 공격을 효과적으로 발생시켰다. 허브는 잠재적 피해자를 가리키며 클라이언트와 클라이언트 연결의 IP를 변경할 수 있다.[7][8][9]
CTM 악용은 2006-2007년에 표면화되었으며, 그 기간 동안 전체 Direct Connect 네트워크가 DDoS 공격에 시달렸다.[10][11] 상황이 이렇다 보니 개발자들은 보안 문제를 더 심각하게 여기게 됐다.[12]
2009년 2월 현재,[13][14][15][16][11] 공격당사자가 접속 이용자를 송신하는 허브에 대해 알아내기 위해 고객에 대한 연장이 제안되었다.
Direct Connect Network Foundation
DCNF(Direct Connect Network Foundation, DCNF)는 스웨덴에 등록된 비영리 단체로, 네트워크 내의 소프트웨어, 프로토콜 및 기타 서비스를 개선하여 DC 네트워크를 향상시키는 것을 목표로 한다.[17]
물품 및 서류
DCNF는 DC와 관련된 기사, 논문 및 더 많은 문서 목록을 유지한다.[18]
참고 항목
참조
- ^ Annalee Newitz (July 2001). "Sharing the Data". Metro, Silicon Valley's Weekly Newspaper. Metro Publishing Inc. Retrieved 2006-10-16.
- ^ 웨이백 머신에 보관된 DCDev 아카이브 2016-12-20
- ^ Fredrik Ullner (April 2007). "Command and bandwidth estimations in NMDC". DC++: Just These Guys, Ya Know?. Retrieved 2007-07-27.
- ^ "NMDC Protocol". Nmdc.sourceforge.net. Retrieved 2016-12-04.
- ^ "CTM tokens in ADC (or why the NMDC protocol is terrible, part 2)". DC++: Just These Guys, Ya Know?. August 2007. Retrieved 2007-10-07.
- ^ Todd Pederzani (June 2006). "Filtering Redux". DC++: Just These Guys, Ya Know?. Retrieved 2007-08-31.
- ^ Paul Sop (May 2007). "Prolexic Distributed Denial of Service Attack Alert". Prolexic Technologies Inc. Prolexic Technologies Inc. Archived from the original on 2007-08-03. Retrieved 2007-08-22.
- ^ Robert Lemos (May 2007). "Peer-to-peer networks co-opted for DOS attacks". SecurityFocus. Retrieved 2007-08-22.
- ^ Fredrik Ullner (May 2007). "Denying distributed attacks". DC++: Just These Guys, Ya Know?. Retrieved 2007-08-22.
- ^ Ullner, Frederik (2008-01-17). "Press coverage regarding DC being used as a DDoS tool". DC++: Just These Guys, Ya Know?.
- ^ a b Fredrik Ullner (2011-07-20). "Long lost response regarding DC being used as a DDoS tool". DC++: Just These Guys, Ya Know?. Retrieved 2011-07-20.
- ^ Furtunã, Adrian (July 2008). "DC++ and DDoS Attacks" (PDF).
- ^ Jan Vidar Krey (February 2009). "Referral extension". DC++ Launchpad Page. Retrieved 2009-02-11.
- ^ Jan Vidar Krey (February 2009). "Referral extension on ADCPortal wiki". ADCPortal.com. Archived from the original on 2011-07-07. Retrieved 2009-02-11.
- ^ Eugen Hristev (February 2009). "DC++ pointing out the corrupted". DC++: Just These Guys, Ya Know?. Retrieved 2009-02-11.
- ^ Toast (January 2009). "CTM Review and the errors of past". ADCPortal. Archived from the original on 2011-07-07. Retrieved 2009-01-27.
- ^ "Archived copy". Archived from the original on 2016-01-25. Retrieved 2016-01-07.
{{cite web}}
: CS1 maint: 타이틀로 보관된 사본(링크) - ^ Direct Connect Network Foundation: 웨이백 머신에 2016-12-20년 보관된 문서 및 리소스