내가 만든 스타,워크(게임) 방에는 왜 사람들이 조인을 못하는가?
간단히 말하면, 공유기를 써서 그렇습니다.
자세하고 알기 쉽게 설명하면 다음과 갔습니다.
<공유기가 필요한 이유>
- 모든 PC 또는 스마트폰, 또는 기타 인터넷이 되는 모든 장비는 IP라는 것을 가지고 있어야 인터넷이 가능합니다.
- IP는 전 세계에서 유일하게 하나만 있어야 합니다.
- 그래야만 그 IP 주소를 참고해서, 인터넷 정보들이 오고 갑니다.
- 하지만 IP 주소가 모자랍니다.
- 또 인터넷 서비스 제공 업체 (KT, LG, SKT)등에서는 IP를 하나만 줍니다.
- IP하나를 가지고, 컴퓨터 두개가 인터넷을 할 수는 없습니다.
- 그래서 공유기가 존재 합니다.
<공유기 역할>
- 공유기는 하나의 IP를 가지고, 여러 기기가 인터넷이 가능하도록 하는 장치입니다.
- 공유기의 뜻은 이름 그대로 IP를 여러기기가 공유하는 것입니다.
- KT에서 IP를 123.123.123.123을 줬다고 치면 공유기는 그 IP를 가지고 외부 인터넷과 대표로 통신합니다.
- 그 외에 집안에 있는 다른 기기들은 전부 공유기 밑에 연결 합니다.
- 공유기 밑에 있는 PC가 게임 정보를 배틀넷에 전송하면,
- 공유기는 그 정보를 (누가보내는 것인지)마킹하여, 배틀넷에 전송합니다.
- 배틀넷에서 응답이 오면 공유기는 아까 마킹해둔것을 참조합니다.
- 그래서 아까 전송을 요청한 PC에 응답 정보를 전송해줍니다.
- 이런 원리로, 여러 PC가 한 공유기 밑에 물려서 한 IP만 가지고 수많은 기기가 인터넷이 되는 것입니다.
<서버 개념>
- 방을 만든다는 것은 내가 서버가 된다는 뜻입니다.
- 서버의 예로 네이버를 들겠습니다.
- 우리는 네이버 서버에 접속 합니다.
- 그리고 검색을 해서, 어떤 정보를 검색합니다.
- 그럼 네이버는 정보 검색 결과를 우리 PC에게 알려 줍니다.
- 똑같습니다.
- 우리는 방을 만듭니다. 그럼 서버가 되는 것입니다.
- 다른 유저가 우리가 만든 방 서버에 접속을 합니다.
- 그리고 자신의 실시간 게임 정보(컨트롤 등등, 유닛 정보 등등)를 서버로 전송합니다.
- 그럼 서버는 그에 대한 응답들을 해줍니다.
<그럼 왜 공유기를 쓰면 다른 사람이 내가 만든 방에 못들어 오는가>
- 우리가 네이버에 들어 간다는 것은 어떤 특정 IP에 접근 한다는 것입니다.
- 우리가 방을 만들어서, 다른 유저가 접속 한다는 것은 우리가 KT로 부터 받은 IP를 통해 다른 유저가 접속한다는 것입니다.
- 근데 문제는 공유기에 있습니다.
- 공유기의 보안 기능이 있는데,
단 한번도 공유기가 먼저 접속을 시도한적 없는 IP가 공유기에 접속을 시도하면, 그 접근은 무시해 버립니다.
- 자, 제가 방을 만들었습니다.
- 그럼 다른 유저가 접근을 시도 하죠, 유저가 접근을 시도할때, 접근하는 유저도 IP가 있습니다.
- 근데 그 IP로, 저는 단한번도 어떤 게임정보도 전송 했던 적이 없죠.
- 처음 게임을 하는 것 이니깐요.
- 그럼 공유기는 이상한 IP가 나에게 접근한다!! 이놈은 무시해 버리자. 라는 식으로 동작 합니다.
- 이러니 절대로 공유기를 쓰는 사람이 방을 만들면, 조인이 안되는 것입니다.
-- 이러한 문제는 꼮 워크 방을 만들때에만 나오는 문제가 아니라.
-- 홈페이지를 집에서 운영한다던가, ftp 파일 전송을 한다던가. 수많은 곳에서 발생 합니다.
<해결 방법>
포트 포워딩
DMZ
등등..
해결방법은 찾아 보면 많이 있습니다.
다만 저것을 하면 해결 되는 이유는 다음과 갔습니다.
"(특정한 어떤 경우)에는 모르는 IP로 접근 하더라도, 접근을 허락 해주렴."
이라는 명령을 내렸기 때문입니다.
특정한 경우를 포트로 지정했으면, 그게 포트 포워딩이고.
IP로 지정 했으면, DMZ가 되고..
그러는 것입니다.
해결방법의 원리에 대해서 자세히 적지 않겠습니다.
머리 아프니깐요.