[게임 서버] 5.6 실제 레이턴시 줄이기
카테고리: GameServer
태그: GameServer
📦 5. 게임 네트워킹
👉🏻 6. 실제 레이턴시 줄이기
🎯 레이턴시 감소 방법
주요 방법:
- TCP 대신 UDP 사용
- 적은 수의 패킷으로 전송
- 두 가지 네트워킹 방식 혼용
📡 1. TCP 대신 UDP 사용
TCP의 문제:
- TCP는 패킷 유실이 발생하면 재전송을 위한 지연 시간이 발생한다
- 이러한 경우 스터터링이 발생한다
UDP의 장점:
- UDP는 패킷 유실이 발생해도 지연 시간이 생기지 않는다
적용:
- 캐릭터 이동 메시지에 UDP가 적합하다
📦 2. 적은 수의 패킷으로 전송
메시지 묶기:
- 메시지를 보낼 때 뭉쳐서 보내면 효과적이다
권장 사항:
- 이 책의 저자는 뭉치는 시간이 10ms 이하가 적당하다고 한다
🔀 3. 두 가지 네트워킹 방식 혼용
네트워킹 방식:
- 클라이언트와 서버 간 통신: C/S 네트워킹
- 클라이언트끼리 통신: P2P 네트워킹
C/S 네트워킹만 사용하는 경우:
- C/S 네트워킹으로 많은 지역에 게임 서버를 분포시키고, 가까운 지역의 게임 서버에 매칭하도록 한다
- 이런 경우 두 네트워킹 방식을 혼용할 필요가 없다
혼용이 효과적인 경우:
- 서버는 멀고, 두 클라이언트는 가까운 경우 사용한다
효과적인 분배:
- 중요한 연산은 C/S 네트워킹, 덜 중요한 연산은 P2P 네트워킹을 통해 처리하면 효과적이다
🧐 정리
| 방법 | 효과 | 주의사항 |
|---|---|---|
| UDP 사용 | 재전송 지연 제거 | 중요 데이터는 TCP 필요 |
| 패킷 묶기 | 오버헤드 감소 | 10ms 이하 권장 |
| C/S + P2P 혼용 | 레이턴시 최소화 | 보안 고려 필요 |
핵심:
- UDP는 실시간성이 중요한 데이터에 적합
- 메시지 묶기로 네트워크 효율 향상
- 상황에 따라 C/S와 P2P를 적절히 조합
댓글남기기