Relay server란?

댓글 0
댓글을 작성하려면 로그인이 필요합니다.
아직 댓글이 없습니다. 첫 번째 댓글을 작성해보세요!
두 클라이언트 간 직접 연결이 실패했을 때, 데이터를 그대로 중계해서 전달해주는 서버
게임 로직이나 데이터 내용은 해석하지 않고 전달만 한다.

1.포트포워딩과의 차이가 뭔가
포트포워딩은 내 네트워크에 구멍을 뚫어서 연결되게끔 하는행위라 보면되고
릴레이는 평범한 인터넷사용(웹 탐방) 같은 느낌이기때문에 포트포워딩보다 안전함
2.데디케이트 서버와의 차이가 뭔가
Dedicated Server: 그 서버 안에서 실제 게임 엔진이 돌아가고 있음.
그 서버가 직접 게임 룰에 따라 "이게 유효한 이동인지, 충돌은 없는지"를 계산함
서버 안에 게임 상태(월드, 캐릭터, 물리 등)를 실제로 들고 있고 판정하는 로직이 존재
Relay: 그 서버 안에는 게임 로직이 아예 없음
게임이 뭔지, 캐릭터가 뭔지, 데미지가 뭔지 전혀 모름
그냥 "A한테서 받은 바이트 뭉치를 B한테 그대로 전달"만 하는 순수 네트워크 중계 프로그램임
3.그럼 P2P뿐만 Listen Server 에서도 Relay Server는 필수이지 않나
맞음. 호스트가 포트포워딩을 직접 안 해놨다면, 일반 가정 네트워크는 대부분 NAT 뒤에 있음
Hole Punching이 시도되지만 항상 성공하진 않음
Relay 설정 안했으면 접속 실패됨
그래서 Unity, Photon 같은 회사들이 Host Mode 옵션을 낼 때 Relay를 항상 세트로 끼워서 제공함
(애초에 host플레이어와 client플레이어 한명이 연결되는 그 순간은 P2P연결이라 봐야하는데 이걸 몰랐음)
릴레이 서버는 한마디로 플레이어 둘이 직접 연결을 시도 할때 10%의 확률로 실패하는걸 구제해주는 회사의 안정장치다.
알고는 있었지만 헷갈렸던 단어들 적어놓음
짤막한 용어 설명
홀 펀칭 (Hole Punching)
두 클라이언트가 공유기(NAT)를 뚫고 직접 연결을 시도하는 방법. 중재 서버가 서로의 위치(IP:포트)를 알려주면,
두 클라이언트가 동시에 서로에게 패킷을 쏴서 각자의 공유기에 임시로 "구멍"을 냄. 성공하면 이후 직접 통신 가능.
NAT 종류(특히 Symmetric NAT)에 따라 실패할 수도 있음 (대략 10명 중 1명꼴).포트포워딩 (Port Forwarding)
공유기 설정에서 "이 포트로 들어오는 외부 연결은 막지 말고 내 컴퓨터로 통과시켜라"라고 미리 규칙을 만들어두는 것.
이렇게 해두면 홀 펀칭이나 Relay 없이도 외부에서 바로 접속 가능해짐. 다만 내 홈 네트워크가 그만큼 외부에 노출되는 것이라 보안 리스크가 생기고, 설정도 일반 유저한텐 진입장벽이 있어서 잘 안 씀.

shared server를 알아보았다

Unity 멀티플레이 네트워크의 두 가지 큰 축, 호스트 방식과 데디케이트 서버 방식을 비교 정리
![[Unity] 멀티 플레이 구현](https://data.develog.develrocket.com/upload/develog/user_1777093328305/1782543609370-dhldb2/_____2026-06-27_155852.png)
유니티 멀티 플레이 연습


Unity 멀티플레이 네트워크의 두 가지 큰 축, 호스트 방식과 데디케이트 서버 방식을 비교 정리

![[Unity] 멀티 플레이 구현](https://data.develog.develrocket.com/upload/develog/user_1777093328305/1782543609370-dhldb2/_____2026-06-27_155852.png)