P2P 기반 게임과 미꾸라지

이 문서에서는 P2P 기반 게임을 미꾸라지로 사용할 경우, ‘’반드시’’ 알아야 할 내용에 대해 정리한 곳입니다.

적용 가능한 방법

P2P 기반의 게임의 경우, 미꾸라지 아이템화(?)를 하기 어렵게 때문에 부득이하게 아래와 같은 2 가지 방법만이 가능한 상태입니다.

  1. 미꾸라지 + Proxifier 사용법

    해당 게임 클라이언트에서 발생되는 트래픽만 hooking 을 하여 미꾸라지 중계 서버로 전달하기 때문에 P2P 기반의 게임에서 사용될 수 있는 방법입니다. 장점으로는 해당 게임 클라이언트에서 발생된 트래픽만 미꾸라지를 통해 전달되어 다른 인터넷 트래픽은 영향을 받지 않습니다. 하지만 단점으로는 해당 프로그램의 사용법이 어렵고, 간혹 제대로 hooking 이 되지 않아 연결이 되지 않을 수 있습니다.

  2. Full VPN 모드

    미꾸라지의 기본 기능 중의 하나로써 컴퓨터에서 발생되는 모든 트래픽을 중계 서버로 우회할 수 있습니다.

알아 두어야 하는 것

일반

  • 반드시 미꾸라지 + Proxifier 사용법 방법 혹은 Full VPN 모드 로 세팅해야 제대로 동작합니다. 그렇지 않을 경우, 미꾸라지 시각에서는 peer 가 되는 사용자의 IP 를 알지 못하기 때문에 트래픽을 우회하지 못합니다.
  • 선택한 중계 서버의 위치에 따라, 그리고 같이 플레이하는 사용자들의 위치에 따라 미꾸라지가 효과가 있을 수도 혹은 더 나빠질 수도 있습니다.

방장 (Host) 가 되고자 한다면...

Note

게임의 구현 방식에 따라 Full VPN 모드를 사용하여도 방장이 될 수 없는 게임이 있습니다.

방장이 되고자 한다면 반드시 Full VPN 모드 로 동작이 되는 상태여야 합니다.

  • 다른 클라이언트가 보기에는 방장은 미꾸라지 중계 서버의 Public IP 에 위치한 것으로 인식이 됩니다. 예를 들어 방장은 실제로는 미국 동부에 거주하고 있지만, 한국 중계 서버를 통해 방을 만들었을 경우, 다른 클라이언트는 방장이 한국에서 접속되었다고 생각할 것입니다.
  • 되도록 현재 위치에서 가까이에 있는 미꾸라지 중계 서버를 선택하는 것이 좋습니다. 만약 가까이에 있는 중계 서버가 없다면, 차라리 미꾸라지를 사용하지 않는 것이 좋습니다.

사례들

vindictus 나 던전&파이터 의 경우, P2P 기반의 게임으로 파티를 맺을 때 문제가 있을 수 있습니다.

사례 1

현재 캐나다에 살고 있고, 북미던파가 종료되어서 한국던파를 할려고 합니다. 던파의 모든컨탠츠가 P2P인거로 알고있는데 캐나다에서 같은 지역사람들 끼리 미꾸라지를 키고 같이 PVP를 즐긴다건가 던전을 들어가게되면 핑이 높아서 게임을 못즐길 정도가 될려나요?

  • P2P 게임의 경우 미꾸라지를 사용하는 부분에 대해서는 한계가 있습니다. 제가 알기로는 방장을 중심으로 트래픽이 전달되는 것으로 알고 있는데, 만약 방장이 미꾸라지를 사용하고 있고 중계 서버를 캐나다가 아닌 지역을 선택한다면 사용자의 트래픽 또한 우회하게 될 듯 보입니다. 아마 캐나다 지역 분끼리 P2P 게임을 즐기시는 가장 좋은 방법은 아마 가장 좋은 회선을 사용하고 계신 분이 미꾸라지를 이용하지 않고 방장을 하시는 방법일 겁니다.

사례 2

현재 인도에서 거주하고 있으면서 vindictus를 이용하려고 proxycap 을 이용해서 접속하려니 너무 힘들어서 미꾸라지를 이용하게 되었습니다. 미꾸라지를 이용하니까 정말 편하고 접속도 잘 되더군요. 그런데 문제는 친구들과 같이하려고 방을 만들면 렉이 너무 심해지더군요

  • 만약 방장이 호스트가 되는 구조 (음... 던전 파이터는 이와 비슷한 구조였던 것으로 기억됩니다만) 라면 제가 봤을 때는 미꾸라지를 사용하시는 분은 방장이 되면 안될 듯 보입니다. 이유는 미꾸라지를 사용하시는 분이 방을 만들 경우, 게임 서버 입장에서 보면 해당 사용자는 미꾸라지 중계 서버의 public IPv4 주소로 보이기 때문에 만약 미국 중계 서버를 선택하셨다면 모든 친구분들이 미국 중계 서버로 붙으실려고 하실 겁니다.

    만약 인도에 미꾸라지 중계 서버가 있다면 그나마 나은 환경에서 하실 수 있을 듯 한데, 아직은 상황이 되지 않는 듯 보입니다. 우선은 미꾸라지를 사용하지 않는 친구분이 방을 만들고 거기 접속하는 형식으로 한번 시도해 보시기 바랍니다. (사실 이 부분도 확실히 해결된다는 보장이 없습니다.. ㅠ.ㅠ 게임 클라이언트를 어떻게 구현했느냐에 따라 달라질 수 있는 문제라...)

자주 묻는 질문들

게임이 P2P 기반이면 미꾸라지를 쓰지 말란 얘기인가요?

미꾸라지를 통해 사용하실 수 있습니다만, 사실 기본적으로 추천해 드리지 않습니다. ㅠ.ㅠ 만약 그래도 미꾸라지를 통해 게임을 해야 한다면 현재의 물리적인 위치에서 가장 가까운 중계 서버로 위의 적용 가능한 방법 중 하나를 선택하셔서 사용하시는 것을 추천합니다.

적용 가능한 방법을 사용한다면 그럼 중계 서버는 어디로 해야 하나요?

P2P 기반의 게임을 진행할 경우, 선택해야 할 중계 서버는 첫 번째는, 나의 물리적인 위치에서 가장 가까운 서버입니다. 만약 해당 중계 서버와 RTT 가 20 ms 이상일 경우, 같이 플레이하는 사용자와의 RTT 가 더 늘어난다는 것을 아셔야 합니다.

하지만 한국 사용자일 경우, 한국 중계 서버가 여러 대가 있고 회선이 각기 다르기 때문에 한국 중계 서버 중 어느 것을 선택하는 것이 어려울 수 있는데요, 이 부분은 사실 정답이 없습니다. 왜냐하면 같이 플레이하는 사용자의 회선과 중계 서버와의 궁합이 좋아야 좋은 결과가 나오지 사용자의 회선과의 궁합이 나쁠 경우 또 그 때 그 때 다른 결과일 수 있습니다.

현재로써는 대부분의 ISP 와 peering 이 좋은 KT 회선이 가장 무난하지 않을까 합니다.

방장 (Host) 이 운영하는 방에 접속하는 최적의 경로는 어떻게 설정하나요?

아시다시피 게임 자체가 P2P 이기 때문에, 방장이 어느 나라 있는지 어떤 회선을 사용하고 있는지 전혀 모르는 상태입니다. 이럴 경우는 방장에 따라 상태가 달라질 수 있기 때문에 중계 서버를 선택하는 방법이 별로 없습니다.

제가 드릴 수 있는 방법은 “자신의 물리적인 위치에서 가장 가까운 중계 서버”를 이용하는 것입니다. 해당 중계 서버까지의 RTT 가 10 ~ 20 ms 내외라면 해볼 만 할 수준으로 보입니다.