반응형

1. 토렌트 기본 정보


.torrent 파일에는 "announce session"에 트래커의 URL, "info session"에 각 옵션의 플래그, 파일의 이름, 길이, 조각에 대한 정보(조각의 길이, 무결성을 위한 각 조각의 SHA-1 Hash Code 등) 등이 포함되어 피어들이 무결성 검사나 데이터를 주고 받을 수 있는 환경이 조성되게 되는 겁니다.

 

seed는 말 그대로 씨앗입니다. 이걸 seeder가 파종을 하고 그 씨(seed)를 받은 peer들이 seeder가 되서 또 파종을 하게되는거지요.(seed는 완전체를 의미합니다. 왜냐하면, 썩은(완전하지 않은) 씨앗으로 파종을 할 순 없기 때문입니다.) seeding은 토런트 작업 내에서 배포하는 행위를 말합니다(말 그대로 파종이죠^^). seeder는 토런트 작업 내의 배포를 하는 클라이언트를 말합니다(씨뿌리는 사람).

 

peer는 토런트 작업 내의 다운로드를 하는 클라이언트를 말합니다(물론 업로드도 합니다.) 원론적으로 따지자면 swam내의 구성원 모두(seeder 포함)가 peer이지만 토런트에서는 seeder를 별도로 분리했기때문에 구분을 합니다.

 

leech는 다운로드만 받는 클라이언트를 지칭하는 말로 일부 프로그램에서는 peer를 leech로 표현하기도 하기도 합니다만 보통 peer에 포함시키고 별도로 부르지 않습니다. 그리고 leech는 악의적인 의미가 강합니다(즉 나쁜 의미로 사용된다는 얘깁니다). 추가로 "leecher"라는 일부 시스템이나 토런트에서 사용되는 신조어로 불리기도 하는데(아마도 "leech+peer"이지 않을까 추측합니다.) leech로 생각하시면 됩니다. 많은 사람들이 인식하게 되면 사전에도 등록되겠죠^^

 

swarm은 토런트 작업 내의 트래커나 DHT를 이용해서 받은 해쉬가 서로 다른 피어의 무리입니다. 쉽게 얘기해서 잠재적으로 데이터를 교환할 수 있다고 판단되는 무리입니다. 하지만 실제적으로 정확한 수치는 아닙니다. 추가로 설명하자면 토런트 작업에 예를 들어 "(10)20" 이라는 정보가 나옵니다. "()"안의 숫자는 실제적으로 나와 연결된 피어나 시드의 수입니다. 그리고 "()" 뒤에 숫자는 실제로 전부 존재하는 지는 모르지만 존재할거라고 예상하는 해쉬가 서로 다른 피어들의 수입니다. 즉 DHT나 트래커등에 의해서 정보를 받기는 했지만 직접 연결을 하지는 못했기때문에 존재하는지 여부는 아직 알수 없습니다. swarm은 배포와 다운로드에 대해 "()"뒤에 숫자를 더한 값에 해당하는 피어의 무리(즉, 배포나 다운로드가 가능하다고 예상되는 피어들을 전부 합한 무리)를 얘기합니다.

 

tracker는 쉽게 얘기해서 swarm내의 피어들(시더 포함)이 보고한 정보를 전달주는 서버입니다. 구체적인 동작방법 등은 뒤에서 또 설명이 되므로(아마도) 각설하고 트랙커의 종류는 사용자 인증방법에 따라 공개 트래커와 비공개 트래커로 나뉘게 됩니다. 공개트래커의 경우는 사용자가 누군가는 상관없고 열어둔 세션이 모두 찰때까지 수용을 해주는 트래커입니다. 그에 반해 비공개 트래커의 경우는 각 사용자에게 passkey라는 고유한 정보를 주고 그 정보를 바탕으로 연동되는 index site의 정책에 따라 허락이 된다면 수용을 주는 트래커를 말합니다.

 

scrape은 피어가 자신의 해쉬정보를 트래커에게 보내고 해쉬를 받은 트래커가 유효한 사용자에 한해 자동적으로 해쉬에 해당하는 작업들의 정보(피어의 수, IP 등)을 반송하는 과정을 말합니다.

 

index site는 트래커와 연동되거나 트래커파일에 대한 공유를 도와주는 사이트를 말합니다. 인덱스 사이트를 트래커로 혼용하기도 합니다. 이부분에 대해서 언쟁의 필요는 없겠습니다. 표준을 정할 단체도 없을뿐더라 여러사람들이 인식하면 그것이 표준이 되는겁니다.(이 문서 안에서는 별도로 구분하겠습니다.

 

 

2. 설정(Preferences)


 

일반(General) - 언어(Language)

□ 언어(Language) : 언어 메뉴를 선택해서 원하는 언어로 설정을 하시면 됩니다. 처음 선택시에는 Languange Pack(utorrent.lng)을 다운받아 utorrent Setting 폴더나 설치 폴더에 복사해 넣으면 적용이 됩니다.(언어 변경시 프로그램을 다시 사작해야 합니다.)

 

□ 정보...(More...) : 이 버튼을 클릭시 웹으로 utorrent 다운로드 페이지로 연결되며 언어팩을 직접 다운로드 받을 때 사용합니다.

 

윈도우 연계(Windows Intergration)

□ .torrent 파일과 연계(Associate with .torrent files) : 이 버튼은 윈도우에서 ".torrent" 확장자와 utorrent를 연결시킵니다. ".torrent" 확장자를 가진 파일을 열면 utorrent가 자동으로 연동됩니다.

 

□ .btsearch 파일과 연계(Associate with .btsearch files) : 이 버튼은 .btsearch 확장자에 대하여 위와 같은 동작을 합니다.

 

□ 매력적인 URL로 지정(Associate with magnet URIs) : "Magnet URI(Uniform Resource Identifier)"에 대한 연동 설정입니다. 쉽게 RSS와 관련있다고 생각하시면 됩니다.

 

□ IPv6/Teredo 설치(Install IPv6/Teredo) : 이 버튼은 Teredo Tunnel을 이용하여 IPv6 환경의 피어와 연결이 가능하도로 해줍니다.

※ Windows SP1의 경우는 추가로 툴을 설치하여 지원가능하며 Windows SP2에는 기본적으로 드라이버가 내장되어 있습니다. 광범위한 내용이므로 간단히 설명하자면 IPv6변환 시스템 중 하나이고 논리적으로 VPN과 유사한으로 형태로(물론 구성이나 목적이 전혀다르지만) cone NAT를 지원하는 특징을 가지고 있습니다.

 

시작할 때 파일 연계 확인(Check association on startup) : uTorrent 시작 시 파일 확장자 연결을 확인합니다.

 

시스템 시작시 µTorrent 시작(Start µTorrent on system startup) : 부팅과 동시에 uTorrent를 구동합니다.

 

비공개(Privacy)

□ 자동 업데이트 검사(Check for updates automatically) : 프로그램 시작시에 Update Version이 있는지 체크해줍니다. 이후 24시간 간격으로 체크합니다.

 

□ 시험판으로 업데이트(Update to beta versions) : 자동 업데이트 검사에 beta 버젼을 포함할 것인지를 선택합니다, 체크해제시에는 stable(안정화 버젼)만 체크됩니다.

 

□ 새 버전 검색시 무작위 정보를 보냄(Send anonymous information when checking for updates) : uTorrent 사용자에 대한 통계를 위해 자동 업데이트 검사시에 무작위 ID를 생성하여 서버에 전송합니다.

 

□ 숨기기(Boss-Key) : 변역이 숨기기로 되서 이해가 어려운데 "Boss-Key"입니다. 즉, 프로그램이 핫키를 이용한 숨기기 기능을 지원합니다. 입력상자안에 클릭을 한후 [Ctrl, Alt + Shift]+[KEY]의 조합으로 설정이 가능합니다.(당연한 것이겠지만 Shift는 단독조합이 불가능합니다. 대소문자를 위한 키이므로 Shift 단독 조합 키 생성을 시도하면 자동으로 Alt로 세팅됩니다.)

ex) Ctrl+Shift+D, Ctrl+D, Alt+D, ....

 

□ 비공개 데이터 삭제(Clear Private Data) : 이 버튼을 클릭하면 "토런트 추가" 에 저장되는 경로정보나 "새 토런트 말들기"의 트래커 정보등 모든 데이터가 지워집니다.(즉, 추가해둔 트래커등이 Default로 돌아갑니다.)

 

다운로드 할 때(When Downloading)

□ 미완성 파일에 .!ut 추가(Append .!ut to incomplete files) : 토런트를 다운받을 때 토런트 파일 확장자에 ".!ut"를 추가합니다. 다운로드가 완료되면 자동으로 제거됩니다.

※ 동일한 디렉토리에 완료파일과 처리중인 파일을 같이 관리할 때 편리하겠지만 비슷한 다른 기능들이 많아서 쓸일은 없을듯 합니다.

 

□ 모든 파일을 미리 할당(Pre-allocate all files) : 다운받을 파일을 미리 할당하여 단편화를 예방하는 기능으로 초기 생성시(즉, 파일할당 시)에 버벅일 소지가 있습니다.(이 문제를 해결하기 위해 고급기능에 제로필 기능을 생략하는 등의 옵션을 추가해서 해결하려고 하는걸로 보입니다.)

 

□ 활성 토런트가 있으면 대기 상태로 들어가지 않음(Prevent standby if there are active torrents) : 활성 토런트가 있다면 윈도우가 대기 모드(Stanby Mode)로 들어가지 않도록 해줍니다.

 

3. UI 설정(UI Settings)


 

옵션표시(Display Options) 

□ 토런트 삭제시 확인(Confirm when deleting torrents) : 토런트 삭제시 질문상자가 나타납니다.(실수로 삭제가 되는걸 방지)

 

□ 트래커 삭제시 확인(Confirm when deleting trackers) : 트래커 삭제시 질문상자가 나타납니다.(실수로 삭제가 되는걸 방지)

 

□ 프로그램에서 나갈 때 확인(Show confirmation dialog on exit) : 프로그램 종료시 질문상자가 나타납니다.(실수로 종료가 되는걸 방지)

 

□ 배경에 두색을 교대로 사용(Alternate list background color) : 메인윈도우의 리스트 뷰(list-view)(카테고리 리스트(category-list), 토런트 작업 리스트(torrent jobs list), 상세 정보 창(detailed info pane) )의 각 아이템 사이에 배경에 교차하는 줄을 만들어줍니다. 정렬한 컬룸에 대해서도 하이라이트 됩니다.

※ 단순히 가독성을 위한 기능이므로 한번해보시면 금방 이해하실겁니다.

 

□ 타이틀바에 현재 속도 표시(Show corrent speed in the title bar) : 메인화면 위의 타이틀바에 현재속도를 표시해줍니다.

 

□ 상태바에 제한 속도 표시(Show speed limits in the status bar) : 메인화면 아래의 상태바에 제한 속도를 표시해 줍니다.

 

트레이(System Tray)

□ 닫으면 트레이로 보내기(Close to tray) : "닫기" 클릭시 트래이 아이콘으로 최소화.

 

□ 최소화 때 트레이로 보내기(Minimize to tray) : "최소화" 클릭시 트래이 아이콘으로 최소화.

 

□ 트레이 아이콘을 항상 표시(Always show tray icon) : 트래이 아이콘으로 최소화하지 않아도 항상 트래이 아이콘을 표시합니다.(단 보스키 작동시에는 제외됩니다.)

 

□ 한번 클릭으로 트레이 띄우기(Single click on tray icon to open)" : 트래이에서 복귀시 더블클릭이 아닌 원클릭으로 복귀됩니다.

 

□ 트레이에서 알림 풍선 보이기(Show balloon notifications in tray) : 다운로드 완료나 에러 메시지를 트레이 아이콘에 알림 풍선을 이용해서 표시해 줍니다.

 

□ 클릭하면 항상 활성화(Always activate when clicked) : 이 기능을 해제할 경우 활성화되어 있는 프로그램을 트래이 아이콘 클릭시 트래이로 최소화됩니다. 반대로 설정되어 있을 경우엔 트래이 아이콘을 클릭할 경우 항상 제일 앞으로 갱신됩니다.(즉, 해제시에는 트레이를 여러번 클릭하면 트래이로 갔다 다시 나왔다 반복하고, 활성화시에는 트래이를 클릭해서 프로그램을 트래이로 보낼 수 없습니다. 대신 화면 제일앞으로 나옵니다.)

 

토런트 추가할 때(When Adding Torrents)

자동 다운로드를 사용하지 않음(Don't start the download automatically) : 토런트 추가시 정지 상태로 시작됩니다. 단, 토런트 추가시 "start torrent"나 토런트 생성시 "start seeding"에 체크된 경우엔 제외됩니다.

 

프로그램 창 활성화(Activate the program window) : 토런트 추가시 프로그램이 활성화 됩니다.(작업표시줄이나 트래이 아이콘에 있을 경우에도 프로그램이 활성화 됩니다.)

 

창을 열어서 토런트 내의 파일을 표시(Show a window that displays the files inside the torrent) : 활성화하면, 토런트 추가시 다운받을 파일 목록을 표시해서 원하는 파일만 선택해서 받을 수 있도록 도와줍니다. 체크 해제시에는 간단하게 저장될 위치에 대한 정보만 나타납니다. ※ "디렉토리->다운로드 받은 파일의 저장위치->수동 추가시 항상 대화창 표시"를 체크해제할 경우 이 옵션은 무시됩니다. 즉, 그냥 추가된다는 얘깁니다.

※ "디렉토리->다운받은 파일의 저장위치->기본 다운로드 디렉토리에서만 이동" 이 체크된 경우, 저장될 위치를 지정하면 완료폴더를 따로 지정을 하더라도 완료폴더로 이동되지 않습니다.

 

더블 클릭할 때의 동작(Actions for Double Click)

 배포 중인 토런트(For seeding torrents) : 배포 중인 토런트 작업을 더블 클릭 했을 경우의 동작을 설정합니다.

 

 다운로드 중인 토런트(For downloading torrents) : 다운로드 중인 토런트 작업을 더블 클랙 했을 경우의 동작을 설정합니다.

 

 

4. 디렉토리(Directories)


 

다운받은 파일의 저장 위치(Location of Downloaded Files)

□ 새 다운로드 위치(Put new downloads in) : 활성화 후 별도의 다운로드 위치를 설정해 줄 경우, 설정된 위치에 다운로드됩니다.

 

□ 수동 추가시 항상 대화창 표시(Always show dialog on manual add) : 다운로드 위치에 대한 대화상자가 나타납니다. "UI Setting->토런트 추가할 때->창을 열어서 토런트 내의 파일 표시"가 체크되어 있다면 다운로드 파일을 선택할 수 있는 대화상자가 나타납니다.

 

□ 완료된 다운로드 이동 위치(Move completed downloads to) : 활성화 후 별도의 위치를 설정해 줄 경우, 완료된 파일은 설정된 위치로 이동됩니다.

 

□ 디렉토리 이름 끝에 토런트 레이블(Append the torrent's label) : 다운로드가 완료되고 토런트 내용이 이동될때 토런트 작업들의 레이블이 경로에 추가될겁니다.(무슨 기능인지 잘모르겠습니다 ^^;; 아무 동작도 안하는 것같은데 ..)

 

□ 기본 다운로드 디렉토리에서만 이동(Only move from the default download directory) : 활성화 시 기본 다운로드 디렉토리 다운로드 받는 파일만 완료시 이동됩니다. 위에서 손이 아프게 설명했으므로 생략..

 

토런트 파일의 위치(Location of torrents)

□ 토런트 파일의 저장위치(Store .torrents in) : ".torrent" 즉 토런트 파일의 저장위치를 지정, 설정 해제시 µTorrent 설정파일이 저장된 "%AppData%\uTorrent"(기본값)에 토런트 파일이 저장됩니다.

 

□ 완료된 작업의 토런트 파일 이동 위치(Move .torrents for finished jobs to) : 완료시 토런트 파일의 이동 위치를 지정합니다. 체크 해제시 이동되지 않습니다.(즉, 관리를 위해 별도의 디렉토리에 관리할 경우 사용됩니다.)

 

□ 자동 올림 토런트 파일의 위치(Automatically load .torrents from) : 위치 설정시 설정된 시간 간격으로 디렉토리를 검사해 새로운 토런트 파일이 존재하면 자동으로 등록을 시킵니다. 

※ "주의" 토런트파일 저장위치와 이 설정위치는 다르게 지정되어야 합니다. 토 런트 등록시에 복사본을 저장위치로 복사하는데 동일한 폴더일 경우엔 문제가 발생할 수 있습니다. 이건 개발자 입장에서도 어려운 문제 같네요. 윈도우처럼 예외처리를 해서 "(1)"등으로 해결을 하더라도 복사된 파일을 새로운파일로 인식해서 또 갱신되는 논리적 무한 루프에 걸리게 됩니다. 그렇다고 복사본의 확장자를 바꾸게 되면 원래 목적으로 사용이 불가능하겠죠? ㅎㅎ 그래서 예외처리 대신 경고로 메뉴얼에 기록한듯 하네요.

 

□ 올린 토런트 파일 삭제(Delete loaded .torrents) : 자동으로 등록된 토런트 파일을 삭제합니다. 새로운파일을 구분하기 위한 기능으로 해제시 ".loaded" 확장자가 추가됩니다.(이 기능이 없으면 위에서 설명한 무한 루프에 걸리게 되겠죠?)

 

 

5. 연결(Connection)


 

포트 설정(Listening Port)

□ 외부 연결 포트(Port used for incoming connections) : 프로그램이 사용하는 포트를 설정합니다. 당연한 내용이지만 방화벽과 NAT(공유기)를 사용할 경우 Port Forwarding을 이용해서 통신환경을 만들어줘야 합니다.

 

□ 무작위 포트(Random port) : 10000에서 65000 사이 값으로 무작위로 포트를 생성해줍니다.(고급설정에서 정책변경이 가능합니다.)

 

□ UPnP 포트 매핑 활성화(Enable UPnP port mapping) : Universal Plug and Play(UPnP) 기능을 지원하는 공유기(or NAT 서버) 환경일 경우 프로그램과 운영체제, 장비가 연동되어 포트포워딩이 설정됩니다.(즉 별도로 포트포워딩 할 필요성이 없어집니다.) 이기능은 Windows XP 이상, Linux 등에서 지원되며 UPnP는 이외에도 다양한 기능이 있습니다.

※ 일반적인 경우 공유기는 개발비용을 줄이기 위해 Embeded Linux를 기반으로 개발이되므로 지원을 합니다. 기존의 한계 때문에 요즘의 고성능 공유기는 자체적으로 RTOS로 IOS를 개발하는 경우도 있지만 기존 지원기술들을 대부분 구현합니다.

 

□ NAT-PMP 포트 설정 활성화(Enable NAT-PMP port mapping) : 위와 비슷한 기능이며 특수한 환경하에서 지원을 합니다. 애플에서 지원하는듯한데 필자는 경험해보지 못한 기능이라..(구체적인 기술적 자료가 있으면 공유부탁드리겠습니다.)

 

□ 시작때마다 무작위 포트 결정(Randomize port each start) : uTorrent 시작시 마다 10000에서 65000 사이 값으로 무작위로 포트를 생성해줍니다.

※ 당연하겠지만 공유기(NAT)환경에서 이 기능을 이용하기 위해선 UPnP 포트 매핑을 지원하거나 DMZ로 모든 포트를 넘겨줘야 합니다. 특별한 포트를 다른 클라이언트에서 사용한다면 고급설정에서 제외해줄 수도 있습니다.

 

□ 윈도우 방화벽의 예외 적용(Add Windows Firewall exception) : Windows XP SP2 이상에서 자동으로 윈도우 방화벽 예외기능을 사용합니다.

 

프록시 서버(Proxy Server)

□ 종류(Type) : 프락시 종류를 설정합니다. 

※ Http와 Sock에 대해 간단히 설명하겠습니다. 말그대로 Http는 Http 프로토콜에 대한 프락시 기능을 수행하는 서버이고 Sock은 Socket 수준에서 프락시를 지원합니다. 즉, 웹에 대한 프락시만 지원을 하느냐 유연하게 지원을 하느냐 차이입니다.
※ Http와 Https, sockv4와 sockv5 : 후자들은 보안적으로 발전된 형태를 띕니다. 프락시까지의 연결을 암호화된 터널링으로 구현해서 암호화 전송이 됩니다. 허나 아시다시피 터널링의 특성상 끝단에서는 정보를 조작하거나 훔치는게 가능합니다.
※ HTTP 프락시의 등급 : Transparent, Anonymous, High Anonymous로 나뉘어지며 익명성 보장등급입니다. Transparent의 경우 header에 클라이언트의 IP를 실어서 보냅니다. Layer3 즉 IP Protocol상의 소스 IP가 바뀌더라도 Http header를 보면 나와있습니다. 허나 일반적으로 Firewall에서는 검출을 하지 못하므로 우회접속은 가능합니다. Anonymous는 프락시 접속에 대한 정보만을 담아서 보내기 때문에 실제 접속당시에 캡쳐링을 해서 역트래킹을 해야만 추적이 가능합니다.(영화처럼 쉬운기술이 아닙니다 ㅎㅎ) High Anonymous는 완벽한 익명성을 보장하기때문에 Proxy를 경유한 클라이언트인지를 구분하기 힘듭니다.

 

□ 프록시(Proxy) : 프락시의 IP 주소나 도메인 네임(Domain Name)을 설정합니다.

 

□ 포트(Port) : 포트를 설정합니다.

 

□ 인증(Authentication) : 비공개 프락시의 경우는 등록된 사용자 만이 사용이 가능합니다. 등록된 사용자는 계정과 Password로 프락시 접근을 혀용하는 겁니다. 즉, 인증을 사용하는 프락시 인지를 설정하는 항목입니다.

 

□ 사용자명(Username) : 비공개 프락시의 경우 계정을 입력합니다.

 

□ 암호(Password) : 역시 비공개 프락시의 암호를 입력합니다.

 

□ 프락시를 통한 호스트네임 분석(Resolve hostnames through proxy) : 강제로 프락시를 통하여 reverse DNS lookups을 수행합니다.

※ Advanced->"peer.resove_country" 에서 설명했으므로 각설하고 IP검사를 프락시를 통해서 한다는 겁니다.

 

□ P2P 연결에 프록시 사용(Use proxy server for peer-to-peer connections) : 이 옵션을 사용할 경우 실제적인 데이터 뿐만아니라 토런트 정보교환(hash데이터 등)까지 강제적으로 프락시를 이용하여 교환합니다. 기본적으로 해제되어 사용되며 구조상 Tracker를 이용한 갱신만이 가능합니다.(생각해보면 당연합니다. 논리적으로 프락시 자체를 인터페이스로 사용하는 셈이 되기 때문이지요.)

※ 실제적은 데이터 교환은 UDP를 이용한 터널링으로 구현됩니다. SOCK proxy의 경우는 모르겠지만 http proxy의 경우는 실제적은 데이터 교환은 프락시를 이용하지 않는다고 판단됩니다(어디까지나 퍼랭이 개인적인 판단이고 소스분석이나 패킷 분석은 하지 않았습니다. 고로 아닐수도 있다는 얘기죠 ^^;;).

 

 

6. 대역폭(Bandwidth)


 

전체 업로드 대역폭 제한(Global Upload Rate Limiting) 

□ 자동(Automatic) : 자동으로 전체 업로드 대역폭을 최대로 설정합니다.

 

□ 최대 업로드 속도(Maximum upload rate) : 전역 최대 업로드 속도에 대한 제한을 설정합니다.(0 : 무제한)

 

□ 다운 중이 아닐 때의 업 속도(Alternate upload rate when not downloading) : 배포만 할때의 전역 최대 업로드 속도에 대한 제한을 별도로 설정합니다. 보통 시스템 성능 문제로 업로드와 다운로드를 같이 할때 문제가 발생할 경우 사용합니다.

 

전체 다운로드 대역폭 제한(Global Download Rate Limiting)

□ 최대 다운로드 속도(Maximum download rate) : 전역 최대 다운로드 속도를 제한 설정합니다.(0 : 무제한)

 

연결 갯수(Number of Connections)

□ 전체 최대 연결(Global maximum number of connected peer per torrent) : 전역적인 최대 연결(Session) 수를 설정합니다. 이 값은 uTorrent 내의 모든 연결에 대한 값입니다.

※ 예를들어 활성화된 토런트가 하나뿐이고 "토런트당 최대 연결"보다 값이 크다면 이 값은 의미가 없습니다.

 

□ 토런트당 최대 연결(Maximum number of connected peers per torrent) : 토런트당 최대 연결(Session) 수를 설정합니다. 

※ 하나의 토런트 작업이 피어와 연결을 할 때 이 값의 범위에서 연결이 가능합니다.(단 전체 최대 연결 값이 이 값보다 커야 합니다.) 또 다른 토런트도 이 값의 범위에서 연결을 하고 이 연결된 값의 총 값은 "전체 최대 연결"의 값보다 작거나 같습니다.

 

□ 토런트당 업로드(Number of upload slots per torrent) : 토런트당 업로드 슬롯(Slot)을 설정합니다.

※ 다운로드 중인 토런트의 경우 시드와 피어를 더한 수는 "토런트당 최대 연결" 보다 크지않고 그중에서 피어에 수가 이 값보다 많다면 이 값 만큼의 피어에게만 업로드를 합니다. 반대로 피어의 수가 이값보다 적다면 이값은 의미가 없겠죠^^

 

□ 업로드 속도가 90% 이하일 때 추가 업로드 사용(Use additional upload slots if upload speed < 90%) : 이 항목을 체크하면 설정된 "최대 업로드 속도"의 90% 이하로 속도가 떨어지면 업로드 슬롯을 늘립니다. 허나 당연한 얘기지만 피어의 수가 "토런트당 업로드" 보다 적으면 의미가 없습니다.

※ 이 설정에 대해선 한번 생각해 볼 필요가 있습니다. 아시다시피 토런트는 e-mule에서처럼 Credit시스템이 없습니다. 만약 사용자가 많은 피어에게 다운로드 받기위해 "토런트당 최대 연결"을 크게잡고 피어에게 업로드 속도를 유지하기 위해 "토런트당 업로드"를 적게 잡았다고 가정해봅시다. 다운로드가 완료되고 이 설정으로 배포가된다면 많은 피어들이 연결은 되고 다운로드를 못받는 상황이 될것입니다. 그렇게 된다면 그 피어들 역시 묶여있는 세션들 때문에 토런트당 최대 연결을 크게 잡게 될것입니다. 극단적인 예이지만 이런 악순환이 계속되다보면 실제 다운로드는 예전과 같거나 더 적어지고 처리해야할 데이터는 많이 질겁니다. "토런트당 업로드"를 크게 잡으면 되지 않느냐하신다면 그건 토런트에 장점을 죽이겠다는 의미가 됩니다.
그러므로 적당한 수 만큼의 최대연결에 적당한 만큼의 업로드(이게 어려운 문제지만..)를 설정하는게 바람직합니다. 그러면 자연적으로 halfopen의 큐의 크기도 줄일 수 있게 됩니다. 상황에 따라 다르겠지만 외국쪽의 느린피어들만 있다면 잠시 세션을 늘려 많은 연결을 하고 국내에서 처럼 회선 상황이 좋을 경우 최대연결을 20정도 그리고 업로슬롯은 10에 90% 부가옵션 체크가 적당하지 않을까 싶습니다. 왜냐하면 슬롯이 적기는 하지만 슬롯당 속도는 그만큼 크기 때문에 그걸 받은 피어 역시 같은 설정이라면 배포속도는 훨씬 빨라지게 됩니다. 비대칭 회선인 ADSL이나 VDSL의 경우는 업로드 슬롯을 더욱 줄여서 빠른 회선을 가진 피어에게 빨리 배포를 하는게 더욱 효과적일 것입니다.
극단적으로 느린 회선의 경우에는 초도 배포도 하나의 방법입니다. 허나 초도 배포 경우, 토런트는 클라이언트가 받을 파트를 요구하기 때문에 시더가 한번 배포가된 파트는 무시하는 기능으로 인해 빠른 회선에서는 역효과가 나게 됩니다. 왜 바보같이 무조건 요구하고 무시를 당하느냐 하면 피어는 어느부분이 받을 수 있는 부분인지 알수 없기 때문입니다. 만약 시더가 배포 가능한 부분의 정보를 불특정 다수에게 뿌릴려면 그것만 해도 엄청난 트래픽과 처리량이 될것입니다. 멀티캐스트라면 가능은 하겠습니다만.. 유니캐스트 환경이니.. 배보다 배꼽이 더 커지겠죠^^

 

 

7. 비트토런트(BitTorrent)


 

비트토런트 기본 기능(Basic BitTorrent Features)

□ DHT 사용(Enable DHT Network) : Distributed Hash Tabel(DHT) 기능을 사용합니다. 메인 윈도우 하단에 있는 상태바의 "DHT 상태"부분에서 마우스 오른 클릭을 이용하여 설정할 수 있습니다.

※ DHT 은 개념적인 의미이며 여러가지의 Protocol로 존재합니다. e-mule의 Kadmedia, e-donkey의 Overnet등 서버를 경유하지 않고 해쉬테이블을 생성하여 정보를 교환하는 방식을 통틀어 말합니다. 여기서의 의미는 µTorrent 에서 사용하는 DHT Protocol을 사용하여 정보를 교환하겠다는 의미입니다.

 

□ 새 토런트에 DHT 활성화(Enable DHT for new torrents) : 이 기능은 새로운 토런트 작업에 대한 정보를 DHT 해쉬 테이블에 추가하는 기능입니다. 만약 비공개 플래그가 세트되어 있으면 이 기능은 무시됩니다.(트래커를 이용한 통제를 위해서는 당연한 결과입니다.) 이 설정을 해제하더라도 DHT교환 자체를 하지 않는건 아니기 때문에 이 옵션은 설정 해제된 각 토런트 작업에 한정됩니다.(쉽게 얘기해서 토런트 작업 단위의 DHT 활성화 옵션입니다)

 

□ 망내 피어 찾기(Enable Local peer Discovery) : 멀티캐스트로 망내의 피어를 찾고 전송하는 기능입니다. "망내 피어 대역폭 제한" 기능을 사용하지 않는다면 전송속도에 제한이 없습니다. 단, 비공개 플래그에 세트된 토런트는 제외됩니다.(DHT와 같은 의미입니다)

※ 멀티캐스트로 통신을 하기 때문에 같은 세그먼트 안에 있는 피어 이거나 L3 or Router에 Multicast Routing 설정이 되어 있는 네트워크라는 의미가 됩니다. 멀티캐스트의 특성상 하나의 패킷으로 연결된 모든 피어(클라이언트)들이 활용을 하기때문에 망내 피어가 많이 존재한다면 이론상 아주 빠른 배포가 가능하게 됩니다. 단 이 피어들은 같은 파트가 배포가 되겠죠 멀티캐스트만으로 통신이 이루어 진다면 시드 생성 시간은 같겠지만(동시에 시드가 되겠죠^^) 다른 수단과 같이 배포가 되므로 전체적으로 시드 생성 속도는 더 빨라지게 되는겁니다.

 

□ 트래커에 정보 입수 요청(Ask tracker for scrape information) : 트래커에 피어와 시드의 수를 요청합니다. 일반적으로 토런트 작업이 시작될 때만 정보를 가져옵니다.

 

□ 피어 교환(Enable Peer Exchange) : 전체 망내에 새로운 토런트가 추가되면 피어 교환(PEX: Peer EXchange)을 합니다. 즉, 피어정보 확산을 빠르게 합니다. 단, 비공개 플래그에 세트된 토런트는 제외됩니다.

 

□ 망내 피어 대역폭 제한(Limit local peer bandwidth) : "망내 피어 찾기(Local Peer Discovery)"로 발견된 피어나 같은 LAN(Local Area Network)의 피어에 대한 대역폭을 제한한다. (둘다 같은 의미나 마찬가지인데 두가지를 써놨네요.. 같은 LAN상의 피어라면 당연 멀티캐스토로 검색이 될텐데..)

 

□ 트래커에 보고할 IP/호스트명(IP/Hostname to report to tracker) : 이 항목은 트래커에 공인 IP를 다르게 보고하자 할때 사용합니다.(이미 프락시 서버 뒤에 숨겨져 있을 지도 모릅니다.) 호스트네임이나 DDNS를 사용할경우 도메인 네임을 입력할 수 있습니다. 또한, 모든 트래커가 이 정보를 유의하지는 않습니다. 종종 무시합니다.

※ 막상 트래커에게 속이기를 부탁하더라도 피어의 연결을 위해서는 실제 IP가 필요하게 됩니다. 더 뛰어난 익명성을 위해서는 프락시를 이용하는게 좋지만 성능면에서는 많이 떨어집니다.

 

프로토콜 암호화(Protocol Encryption)

□ 내보내기(Outgoing) : 암호화 모드를 선택합니다. 모든 모드들은 들어오는 암화화 연결들을 허용합니다. 그리고 암호화는 양방향(2-way)입니다. (즉, 서로 키를 교환한 후 동기화 시키고 전송을 시작한다는 얘기입니다)

 

□ 없음(Disabled) : 나가는 연결에 대해서만 암호화 하지 않은 연결들을 시도합니다.

 

□ 있음(Enabled) : 피어가 어떻게 응답을 하느냐에 의존하여 나가는 연결에 대해서 암호화나 비암호화를 선택하여 연결합니다. 많은 피어들과 연결을 공급받기 위해선 이 옵션을 권장합니다.

 

□ 강제(Forced) : 강제적으로 나가는 연결에 암호화된 연결만을 허용합니다. 피어가 암호화를 지원하지 않는다면 연결할 수 없기 때문에 ISP(Internet Service Provider)에서 암호화되지 않은 연결을 활발히 찾는것이 아니라면(패킷을 감시하지 않는다면 이라는 의미로 Appication Layer 수준에서 까봐야 하기때문에 네트워크 성능이 많이 떨어지므로 보통 모든 패킷에 대해서 감시하지는 못합니다. 그리고 터널 끝단 즉 피어단에서는 모든정보가 노출됩니다. 중간에서의 캡쳐링이나 정보조작을 막는기능이죠..) 권장하지 않습니다. 이 설정은 피어들과의 연결능력을 저하시킵니다.

 

□ 들어오는 전통적 연결 허용(Allow incoming legacy connections) : 들어오는 연결에 암호화되지 않은 연결을 허용합니다. 만약 해제시, 들어오는 연결에 비암호화 연결은 무시됩니다. ISP에서 암호화되지 않은 연결을 활발히 찾는 것이 아니라면 설정할 것을 권장합니다. 설정 해제시 피어들과의 연결능력을 저하시킵니다.

 

 

8. 대기열(Queueing)


 

대기열 설정(Queue Settings) 

□ 최대 활성 토런트(업/다운 모두) (Maximum number of active torrents(upload or download)) : 이 설정은 "강제 작업"을 제외한 활성할 수 있는 토런트 작업의 수 입니다. 배포, 다운로딩에 관계없이(즉 모두 포함해서) "queue.slow_ul_threshold" 에 기록된 업로드율(Default 1000Byte/s) 이나 "queue.slow_dl_threshold"에 기록된 다운로드율(Default 1000Byte/s) 을 넘는 토런트 작업의 갯수입니다. 이 값보다 작업중인 토런트 작업들이 많은 경우 나머지는 큐에 저장되어(대기 상태) 돌아가면서 작동된다.(고급설정에서 정책설정이 가능하고 "배포시간->다운로드보다 배포가 우선됨"을 통해서 간단한 정책설정도 가능합니다.)

 

□ 최대 활성 다운로드 (Maximum number of active downloads) : 이 설정은 "강제 작업"을 제외한 활성 할수있는 다운로드 토런트 작업의 수 입니다. 이 옵션은 오직 다운로딩이나 다운로딩 모드에 있는 토런트에만 적용된다.(즉, "최대 활성 토런트(업/다운 모두)" 값에서 이 값을 빼면 "활성 배포 토런트 작업"의 수가 나오게 됩니다.)

 

배포 시간(Seed While [Default values])

□ 비율이 <= (Ratio is <=) : uTrrent가 토런트 작업 속도를 조절(또는 정지)하기 전에 도달하기 원하는 비율을 설정합니다. 비율을 "-1"로 설정하면 무제한을 의미합니다. "0"으로 설정할 경우에는 uTorrent는 이 설정을 무시하고 "배포시간"만을 사용합니다. 이 값은 퍼센트 값으로 나타내며 µTorrent는 "비율"과 "배포시간"을 모두 만족할 때만 배포 프로세스를 멈춥니다.

 

□ 배포 시간이 min (or seeding time is <= (min)) : 토런트의 다운로드가 끝나면 사용자가 원하는 만큼 배포를 계속 할 수 있도록 최대 시간을 설정합니다. uTorrent는 "비율"과 "배포시간"을 모두 만족할 때만 배포 프로세스를 멈춥니다.

 

□ 다운로드보다 배포가 우선됨 (Seeding tasks have higher priority than downloading tasks) : 다운로드 보다 배포에 높은 우선권을 줍니다. 만약 "최대 활성 토런트"에 도달하고 토런트 작업이 배포 상태가 되면, 다운로드 작업은 "queued seeding" 상태를 강제로 만들지 않습니다.

※ 이 값들은 오직 설정된 다음에 추가된 토런트 작업들에만 작용합니다. 현재의 토런트 작업들은 배포 목표에 도달할때까지 기본 설정들을 수정하더라도 유지됩니다.

 

토런트가 배포 목표에 도달하면(When uTorrent Reaches the Seeding Goal)

□ 업로드 속도 제한(kB/s):[0:정지] (Limit the upload rate to) : 배포 목표에 도달할 경우 설정된 업로드 속도로 조절됩니다. "0"으로 설정할 경우 토런트 작업의 정지를 나타내는 것과 같습니다. 이 값의 변경은 배포 목표에 아직 다다르지 않은 토런트 작업들에만 영향을 미칩니다.

 

 

9. 웹 UI(Web UI)


 

웹 UI는 AJAX(Asynchronous Javascript-x and XML)을 지원하는 근대의 웹 브라우져를 이용하여 µTorrent를 원격에서 제어할 수 있습니다.

 

□ Web UI 활성화(Enable Web UI) : 이설정은 웹 인터페이스를 활성화합니다. 활성화를 하면 µTorrent가 서버에서 자동적으로 "webui.zip"을 다운받아 설치됩니다. µTorrent WebUI 포럼에서 최신 beta version의 WebUI를 직접 받아 설치할 수도 있습니다. 설치는 µTorrent 설정폴더("%AppData%\uTorrent")에 "webui.zip"을 복사해 넣는걸로 간단합니다.(beta 버젼의 경우 새로운 기능들을 지원하므로 사용해보시길 권합니다)

 

인증(Authentication)

□ 사용자명(Username) : 접속시 사용할 사용자명을 입력합니다.

 

□ 암호(Password) : 접속시 사용할 암호를 입력합니다.

 

□ 사용자명으로 손님 계정 사용(Enable Guest account with username) : 손님계정을 활성화나 비활성화 합니다. 손님 계정은 "WebUI"에 접속하여 보기만 가능하고 수정은 불가능합니다. 만약 활성화되면 손님 계정을 위해 사용자명을 반드시 지정해야 합니다.

 

접속성(Connectivity)

□ 대체 포트(기본은 연결 포트) (Alternative listening port) : 만약 활성화된다면, 기입된 포트로의 Web UI 요청에 응답합니다. 이 옵션은 "시작때마다 무작위 포트 결정"이 활성화 시에 유용하다. 만약 비활성화된다면, 기본적으로 µTorrent 에 설정된 포트와 같은 포트로 접속하여 사용가능 합니다. 원격에서 접속하기 위해선 UPnP를 이용하여 포트 포워딩을 하더라도 수동으로 포트포워딩 설정을 해줘야합니다.

※ 일반적으로 대체 포트를 설정하여 Web UI를 사용하실것으로 판단됩니다. 공유기(NAT) 환경에서 대체포트로 접속을 하고자 할 경우엔 대체포트 역시 포트포워딩을 해줘야 합니다.(당연한 얘기이고 앞에서도 비슷한 내용은 다뤄진걸로 기억합니다)

 

□ 다음 IP의 연결을 금지(쉼표로 구분, R) (Restrict access to the following IPs) : 웹 으로 접속가능한 IP를 제한하기 위해 이 옵션을 사용합니다. 여러개의 IP를 기입하기 위해선 (,)콤마로 구분하며, 범위를 지정하기 위해선 CIDR notaion(즉, /마스킹 숫자)로 표기합니다. 두가지를 병용하면 특정 IP만을 허락해 줄수도 있습니다. 다들 아시리라 생각하고 넘어갑니다.

 

via 한국 uTorrent 포럼

반응형