23. 패킷 손실·지터·재정렬 대응: 지터 버퍼·FEC·중복 전송과 실시간 게임 트레이드오프
문제 23 — 패킷 손실·지터·재정렬 대응: 지터 버퍼·FEC·중복 전송과 실시간 게임 트레이드오프
실시간 게임에서 UDP 로 상태/입력을 주고받을 때, 네트워크는 패킷을 잃거나(loss), 도착 간격이 흔들리거나(jitter), 순서를 바꿔(reordering) 전달한다. 재전송( retransmission)만으로 모든 것을 해결하려 하면 지연이 커져 실시간성이 깨진다.
다음을 설명하라.
-
손실·지터·재정렬이 각각 무엇이고, 게임 체감(입력 지연·순간이동·버벅임)에 어떤 영향을 주는가? RTT, 지터, 손실률은 서로 어떻게 다른 지표인가?
-
지터 버퍼(jitter buffer / de-jitter buffer) 의 원리와 트레이드오프를 설명하라. 버퍼를 키우면 무엇이 좋아지고 무엇이 나빠지는가? 적응형(adaptive) 지터 버퍼는 무엇을 조절하는가?
-
재전송(ARQ) vs 순방향 오류정정(FEC) vs 중복 전송(redundancy) 을 비교하라. 각각 대역폭·지연· 복구 능력 면에서 어떤 트레이드오프가 있는가? 실시간 입력 패킷에는 왜 재전송보다 FEC/중복이 자주 선택되는가?
-
손실·지터에 견디는 게임 상태 동기화 설계(예: 매 틱 전체/델타 스냅샷을 멱등하게 보내기, 최신 것만 쓰기(last-write-wins), 입력 중복 포함)를 설명하라. "잃어버린 패킷을 굳이 재전송하지 않아도 되는" 데이터와 "반드시 신뢰 전송해야 하는" 데이터를 어떻게 나누는가?
-
TCP 만 쓰면 이 문제들이 어떻게 나타나는가(머리-줄 막힘, 재전송으로 인한 지연 누적)? 왜 실시간 게임이 UDP 위에 선택적 신뢰성을 직접 얹는지 설명하라.
직접 답을 작성한 뒤, 위 해설 보기에서 모범답안과 대조하세요.