한국어English日本語简体中文繁體中文DeutschไทยTiếng ViệtРусскийPortuguês (Brasil)EspañolBahasa Indonesia

게임 렉 백서 › L8 소켓과 프로토콜

신뢰성 UDP 재전송 설정 Reliable-UDP tuning (KCP, ENet…)

원인 ID sk-reliable-udp · 주 담당 게임개발팀·서버 개발 · 함께 게임개발팀·클라이언트 개발

그림과 실험이 있는 원본 카드로 열기 →

UDP 위에 직접 만든 재전송 규칙이 너무 보수적이면 복구가 늦고 너무 공격적이면 회선을 더 막습니다.

왜 재전송 간격·횟수·윈도우 크기 설정이 회선과 맞지 않음 → 그러면 늦은 복구, 또는 중복 전송으로 혼잡 악화 → 화면에서는 스킬 씹힘, 몰아치기, 혼잡 시 더 심한 렉

증상
씹힘·롤백, 몰아치기
요인
손실, 지연
누가 겪나
나만
언제
가끔 무작위로
담당
주 담당 게임개발팀·서버 개발 · 함께 게임개발팀·클라이언트 개발
게임개발팀 할 일
서버: 측정한 왕복 시간 기반 재전송, 중요도별 채널 분리. 클라이언트: 서버와 같은 재전송·채널 설정 적용.
그래프에서는
가끔 무작위로 튐 · 신뢰성 UDP 재전송 비율, 게임 안 RTT
확인할 곳
쓰는 라이브러리가 연결마다 가진 통계(재전송 수, 추정 왕복 시간, 재전송 대기 시간)를 서버·클라이언트에서 남기고 같은 유저의 실제 회선 손실률(mtr로 잰 값)과 비교
이러면 맞음
재전송 비율이 실제 회선 손실률보다 몇 배 높으면 너무 공격적인 설정, 재전송 대기 시간이 측정 왕복 시간의 몇 배면 너무 보수적인 설정
이러면 아님
재전송 비율이 회선 손실률과 비슷하고 대기 시간이 왕복 시간에 맞으면 설정 문제가 아님. 회선 손실 자체를 봄
확인 수단
게임 서버·클라이언트의 로그·지표가 필요

출처

  1. RFC 8085: UDP Usage Guidelines IETF
    재전송은 혼잡을 키울 수 있어 혼잡 제어 대상, 왕복 시간은 여러 측정의 평균(EWMA)으로 추정, 초기 1초, 타이머 만료 시 전송률 낮추기

함께 보면 좋은 원인

같은 층: L8 소켓과 프로토콜

같은 증상(씹힘·롤백)의 다른 층 원인

그림과 실험이 있는 원본 카드 보기