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

게임 렉 백서 › L3 집 네트워크

NAT 매핑 만료 NAT mapping timeout

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

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

공유기는 한동안 패킷이 오가지 않은 유휴 연결을 NAT 테이블에서 지웁니다. 가만히 있다가 움직이는 순간 접속이 끊기는 흔한 원인입니다.

왜 공유기가 “안쪽 기기 ↔ 바깥 서버” 연결을 NAT 테이블(주소 변환표)에 기록 → 그러면 패킷이 한동안 없으면 테이블에서 삭제(UDP는 흔히 30~120초) → 화면에서는 서버 패킷이 집 안으로 못 들어와 접속 끊김

증상
접속 끊김
요인
손실
누가 겪나
나만, 같은 집
언제
가만히 있다가
담당
주 담당 게임개발팀·클라이언트 개발 · 함께 게임개발팀·서버 개발
게임개발팀 할 일
클라이언트: 가장 짧은 유휴 타임아웃의 절반 이하 간격으로 하트비트 보내기(UDP 매핑은 집 안에서 나가는 패킷으로만 확실히 갱신되므로 클라이언트가 보냄), 끊기면 자동 재접속. 서버: 하트비트에 응답하고 일정 시간 못 받으면 연결을 먼저 정리, 매핑이 지워져 바깥 주소·포트가 바뀌어도 세션 토큰(접속할 때 받은 확인 번호)으로 같은 플레이어임을 확인해 이어 받기.
그래프에서는
연결이 한꺼번에 끊김 · 끊김 수(하트비트 타임아웃), 끊기기 전 유휴 시간
확인할 곳
서버의 끊김 사유와, 끊기기 전 그 연결로 마지막 패킷이 오간 뒤 흐른 시간(유휴 시간)을 모아 분포로 봄. 시험으로는 UDP 패킷 간격을 30초·60초·120초로 늘려 가며 응답이 끊기는 간격을 잼
이러면 맞음
가만히 있던 연결만 끊기고 유휴 시간이 30~120초 같은 특정 값 바로 뒤에 몰림. 하트비트 간격을 그보다 짧게 하면 사라짐
이러면 아님
움직이는 중에도 끊기면 회선·경로 쪽. 특정 모바일 통신사에서만 짧은 값에 몰리면 “통신사 공유 IP (CGNAT)”
확인 수단
게임 서버·클라이언트의 로그·지표가 필요

출처

  1. RFC 4787: Network Address Translation (NAT) Behavioral Requirements for Unicast UDP IETF
    UDP 매핑 타이머는 2분 전에 끝나면 안 되고 기본 5분 이상 권장, 안에서 나가는 패킷으로 갱신은 필수·바깥에서 들어오는 패킷으로 갱신은 선택
  2. An Experimental Study of Home Gateway Characteristics (IMC 2010) ACM
    가정용 공유기 34종 측정: UDP 매핑 유지 30~691초·중앙값 90초로 절반 넘게 2분 미만, TCP는 중앙값 약 60분
  3. RFC 9308: Applicability of the QUIC Transport Protocol IETF
    경로에 NAT가 있는 인터넷에서는 약 30초 간격의 keep-alive가 적당, 그보다 잦으면 트래픽·전력 낭비

함께 보면 좋은 원인

같은 층: L3 집 네트워크

같은 증상(접속 끊김)의 다른 층 원인

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