2026년 7월 10일 금요일

Res – Tracker that tracks torrents used in North Korea - Part - 2

Sub Topic - EP.02 - How can Torrent find out my IP?


===== Intro =====

1.     제 나름대로 구상한 방식입니다

2.     막히면 돌아가고 깊이가 방대하면 포기하고 다음으로!

3.     구성 : 토픽 기반기술 학습 기반기술 기반 실습(되는데로..) – 최종 프로젝트

 

===== Overall story =====

1.     1 = 북한 ip의 구성

2.     2 = Torrent 이용중 IP 동작

 

Step – 0

==Torrent 는 어떻게 내 ip를 알 수 있지?

토렌트를 사용하면 이런 궁금증이 생기죠(저만 그럼 말고요…) “나는 파일만 다운받았는데 왜 내 ip가 보이지?” “누가 내 접속 정보를 보는 거야?”

è 이걸 이해하기 위해서는 먼저 Torrent의 동작 방식을 알아야 합니다

 

(빅 브라더의 음모일지 모릅니다)

Step – 1

==P2P(Peer To Peer)개념

일반적인 다운로드는 서버(Server)에서 파일을 받아옵니다만 토렌트는 참여한 사람들(Peer)끼리 직접 파일을 주고 받습니다, 쉽게 말하면 중앙 창고 없이 사람들끼리 직접 물건을 주고받는 방식입니다

(서버에서 파일을 받는 것 & 사용자끼리 직접 주고받는 것)

 

Step – 2

==서버 없이 파일 공유가 된다고?!!

보통 토렌트가 공유하는 파일은 수백~수천개의 조각(Piece)로 나눠져 있습니다, 그리고 이걸 동일한 파일을 소유하고 공유하는 사람들이 나눠서 가지고 있고 동시에 여러 사람에게 받아서 속도가 빨라지는 원리입니다, 파일을 보유한 사람이 곧 서버가 된다~

(이걸 생각하면 쉽습니다..90년대에 유행하던 플래시겟(파일을 쪼개서 받았던 혁신적인 녀석이죠)

 

Step – 3

==Seeder Leecher

토렌트 네트워크의 사용자는 2가지로 Seeder Leecher

Seeder= 파일을 100%가지고 있으며 다른사람에게 업로드 해주는 사용자

Leecher=파일을 받는중인 사용자

è 파일을 모두 받으면 Leecher 에서 Seeder가 되겠죠?

(파일을 여기저기 돌면서 받아오기 때문에 급식실과 같다고 할수 있지 않을까..)

 

Step – 4

==그래서다 좋은데 그럼 이 파일을 가진사람을 어떻게 아는건데?

그럼 여기서 의문이 듭니다, 이 큰 인터넷 세계에서 누가 이 파일을 가지고 있는지 어떻게 알수 있을까요? 그게 바로 Tracker가 하는 역할입니다

Tracke는 파일을 주는 서버가 아니라

1.     이 토렌트 사용중인 사람 목록

2.     Ip 주소

3.     포트정보

4.     등등등

쉽게 말하면 소개팅 주선자? 중매쟁이?” 정도 된다고 본다

Ex) 이 파일을 받고싶다고? -> 그럼 지금 이 파일을 가진 사람은

1.     xxx.xxx.xxx.xxx

2.     yyy.yyy.yyy.yyy

3.     zzz.zzz.zzz.zzz

등이야! 라고 알려준다

(네트워크에서 누가 파일을 가진(윌리) 인지 모르니 찾아주는 Tracker(소개팅 주선자))

 

 

Step – 5

==Peer Discovery(피어탐색)

파일을 가진 사람들을 본격적으로 찾는 과정! 대표적으로

1.     Tracker

2.     DHT(Distributed Hash Table)

3.     PEX(Peer Exchange)

등이 사용되며 Torrent Client 는 계속 새로운 Peer를 찾기 때문에 다운로드중 연결의 수가 증가합니다

(늘어가면 늘어날수록 빨라지는 다운로드!)

Step – 5

==DHT(Distributed Hash Table)

최근 Torrent tracker 없이도 작동이 가능한 이유로 자료구조(Data Structure)에서 배우는 연결리스트(Linked List)같은 구조를 통해 이루어 냈다고 이해 하면 됩니다, 더 쉽게 설명하면 사용자들이 서로 사용자 정보를 저장하는 분산 전화번호부가 있다!

1.     A b의 위치를 가지고 있다

2.     B c의 위치를 가지고 있다

3.     C d의 위치를 가지고 있다

4.     …..

또한 서로 물어보면서 주소를 유지한다

Torrent 주소 아니? -> ip를 알려줄게!

등등으로그래서 Torrent network 는 생각보다 잘 죽기 어렵다

 

(다음집 주소를 앞집 사람이 가지고 있다)

 

Step – 6

==Magnet Link

예전엔 xxx.torent 파일이 있어야 다운로드가 가능했지만 이젠 magnet link 만 클리해도 다운로드가 가능한 시대가 되었음

è magnet:?xt=...  (이렇게 생겼습니다 )

Torent 프로그램이 링크를 클릭하면

1.     Hash  확인

2.     DTH 조회

3.     Peer 검색

4.     다운로드 시작

을 자동으로 수행하기 때문에 요즘은 파일 없이도 공유가 가능한 시대가 되었음

(File 의 시대가 아닌 Magnet Link 하나로 다 되는 시대)

 

 

Step – 7

==Overall – 토렌트는 중앙 서버에서 받는 방식이 아니다

정리하면 Torrent

è P2P 참여 -> Peer 탐색 -> IP확인 -> 파일 조각 교환 -> 업로드 + 다운로드

로 동작한다 따라서

è Torrent 에 참여하는 순간 다른 참여자와 연결되므로 ip정보가 노출될 수 있음

(네트워크에 참여하면 자신도 보여줄 각오를 하자)

다음엔 어떻게 Torrent 네트워크에서 Peer ip를 어떻게 찾는지, 그리고 Tracker/DHT가 어떤 데이터를 주는지 살펴보자!

댓글 없음:

댓글 쓰기