게임 클라이언트는 서버가 LAN에서 실행되고 있음을 어떻게 알 수 있습니까?


18

많은 멀티 플레이어 게임에는 LAN 플레이 옵션이 있습니다. 내 질문은 클라이언트가 서버가 LAN에 어디에 있는지 어떻게 알 수 있습니까?

내가 생각할 수있는 유일한 방법

  1. 브로드 캐스트 주소를 통해 브로드 캐스트를 보냅니다. 다른 네트워크 환경에서 라우터 나 스위치로 필터링되는 단점이 있습니다.
  2. 서브넷의 모든 IP에서 서버에 연결을 시도하십시오. 이것은 속도가 느리고 (특히 네트워크가 IP에 10.XXX.XXX.XXX를 사용하는 경우) 소형 ddos ​​공격이라는 단점이 있지만 필터링되지는 않습니다.

특히 다른 네트워크 환경에서 게임이이를 어떻게 수행합니까?

답변:


32

LAN 재생이있는 게임의 경우 클라이언트가 브로드 캐스트 패킷을 보내 서버를 검색해야합니다. (클라이언트는 브로드 캐스트를 보내고 서버는 클라이언트에게 직접 응답을 보냅니다)

일반적으로 클라이언트는 약 1 초 간격으로 3 ~ 5 개의 브로드 캐스트 메시지를 전송 한 다음 해당 시간 내에 응답이 없으면 서버가 없어야한다고 결정합니다. 여러 패킷을 보내면 서비스 검색이 패킷 손실에 대해 조금 더 견딜 수있게되지만 (LAN에서는 일반적이지 않지만) 그 사이에 시간이 있으면 다른 네트워크 트래픽을 너무 방해하지 않습니다.

LAN의 성능을 저하 시키거나 연결 시도를 비틀 경우 시간이 오래 걸리기 때문에 아무도 (내 지식으로는) 귀하의 옵션 # 2를 수행하지 않습니다.

그러나 로컬 LAN에 의해 ​​브로드 캐스트가 필터링되는 경우에 대처하기 위해 (이례적이지만 들리지 않은) 대부분의 게임은 플레이어가 IP 주소를 직접 입력하여 연결할 수 있도록합니다. 이를 통해 이런 종류의 상황에있는 플레이어는 알려진 서버에 연결할 수 있습니다. 심지어 자동으로 찾기 위해 브로드 캐스트 할 수도 없습니다.

인터넷을 통한 게임의 경우 클라이언트는 정적 메타 서버에 직접 요청을 보내면 알려진 현재 서버 인스턴스의 주소로 응답합니다. 마찬가지로 서버는 해당 메타 서버에 연결하여 클라이언트가 자신을 찾을 수 있도록 자신의 위치를 ​​알려줍니다. NAT의 복잡성으로 인해이 접근 방식은 일반적으로 LAN 내부에서 호스팅되는 서버에서는 작동하지 않습니다. 그렇기 때문에 이런 종류의 접근 방식은 일반적으로 LAN 게임에 사용되지 않습니다.

추가 참고 사항 : 인터넷 게임이 먼저 포인트 서버 에 접속하는 것이 일반적 입니다. 포인트 서버는 메타 서버를 찾을 수있는 주소를 게임에 알려주고 서버를 찾을 수있는 위치를 알려줍니다. 포인트 서버는 종종 (항상 그런 것은 아니지만) 간단한 웹 서버로 구현되며 게임에 하드 코드 된 주소를 가진이 시스템의 유일한 부분입니다. 이를 통해 게임 개발자는 포인트 서버가 반환 한 주소를 업데이트하여 메타 서버를 필요에 따라 한 시스템에서 다른 시스템으로 이동할 수 있습니다. 또한 포인트 서버가 서버로드 또는 지리적 근접성에 따라 다른 메타 서버로 사용자를 보내도록하여 간단한 형태의로드 균형 조정 또는 리전 전환을 구현하는 데 사용할 수도 있습니다.


2
+1 선생님 께, 이것은 제가 가진 몇 가지 질문에 대한 답변입니다.
Raine

2
+1, 브로드 캐스트는 실제로 # 2를 수행하는 올바른 방법이므로 진행하는 방법입니다. 즉, 브로드 캐스트는 여러 IP에 연결하여 어떤 것이 듣고 있는지 확인하기위한 브로드 캐스트입니다.
제임스

예, 브로드 캐스트의 유일한 문제는 모든 LAN 세그먼트간에 브로드 캐스트를 전파하지 않는 특정 (특히 대기업) LAN입니다. 앞으로 멀티 캐스트가이를위한 새로운 방법 일 것으로 예상되며 모든 LAN 세그먼트에서 자동으로 작동해야합니다. 그러나 현재 멀티 캐스트를위한 적절한 라우터 지원은 여전히 ​​방송의 대체물로 의지하기에는 너무 불분명합니다. 몇 년 더 주면 상황이 마침내 개선 될 수 있습니다.
Trevor Powell

브로드 캐스트를 지원하지 않는 회사 네트워크를 몇 번 방문했을 때, 일반적으로 결함이있는 장비 (라우터 펌웨어 업그레이드로 수정 됨)로 인해 발생하는 다른 모든 라우팅 문제를 발견했습니다. 브로드 캐스트가 로컬 LAN 세그먼트에서 작동하지 않으면 의도적 인 것 같지 않습니다.
랜돌프 리차드슨
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.