게임 클라이언트는 서버가 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.