4. 신뢰성 UDP(RUDP) 설계: 순서보장·재전송·ACK
난이도 상 해설 보기 →
문제
문제 4 — 신뢰성 UDP(RUDP) 설계: 순서보장·재전송·ACK
상황
액션 게임의 네트워크를 UDP 기반으로 가져가기로 했다. 그런데 일부 데이터(예: "이 플레이어가 죽었다", "아이템을 획득했다")는 절대 유실되면 안 된다. 동시에 위치 같은 데이터는 빠른 게 우선이다. 면접관: "TCP를 안 쓰고 UDP 위에서 신뢰성을 직접 구현한다면 어떻게 설계하겠습니까?"
질문
-
왜 그냥 TCP를 쓰지 않고 UDP 위에 신뢰성을 직접 구현하는가? TCP로는 해결 안 되는 게 무엇인가?
-
RUDP에서 신뢰성을 보장하기 위한 기본 메커니즘 3가지(시퀀스 번호, ACK, 재전송)를 설명하라. ACK는 어떤 방식들이 있는가(개별 ACK vs 누적 ACK vs SACK/비트필드)?
-
재전송 타임아웃(RTO) 은 어떻게 정하는가? 고정값의 문제와, RTT 측정 기반 동적 산정(RTT/RTTVAR)의 필요성을 설명하라.
-
(핵심 설계) 게임에서는 모든 패킷에 신뢰성이 필요한 게 아니다. "신뢰+순서", "신뢰+순서무관", "비신뢰(최신만)" 같은 채널/전송 모드를 어떻게 구분 설계하겠는가? 각 모드를 어디에 쓰는가?
-
(응용/함정) 신뢰성 채널에서 패킷이 유실되어 재전송을 기다리는 동안, 비신뢰 위치 패킷까지 막히면 안 된다. 어떻게 분리하는가? (TCP의 어떤 문제를 피하려는 것인가?)
답안 작성
내 답안 · 자동 저장
직접 답을 작성한 뒤, 위 해설 보기에서 모범답안과 대조하세요.