핵심 인사이트 (3줄 요약)
- 본질: 빠른 재전송은 전송 계층에서 핵심 동작과 제약을 이해하게 해 주는 개념이다.
- 가치: 빠른 재전송을 이해하면 신뢰성과 지연 사이의 균형을 더 정확히 볼 수 있다.
- 판단 포인트: 설계 시에는 개념 자체보다 적용 조건, 운영 복잡도, 인접 기술과의 경계를 함께 판단해야 한다.
Ⅰ. 개요 및 필요성
-
개념: TCP 송신 측이 수신 측으로부터 동일한 Acknowledgment 번호를 가진 3개의 중복 ACK(3 Duplicate ACKs)를 수신하면, Retransmission Timer가 만료되기 전이더라도 해당 세그먼트가 유실되었다고 확신하고 즉각 재전송하는 혼잡 제어 향상 기법.
-
필요성: 내가 1, 2, 3, 4번 패킷을 쐈다. 2번 패킷이 바다에 빠졌다. 수신자는 1, 3, 4를 받았다. 옛날 TCP는 송신자 쪽에 초시계(RTO 타이머, 약 1~3초)를 켜두고, "어? 2번 영수증이 3초가 지나도 안 오네? 다시 쏘자!"라고 무식하게 3초를 멍때리고 기다렸다. 기가비트 인터넷 시대에 3초는 데이터가 수백 MB 지나가고도 남는 영겁의 시간이다. "야!! 수신자가 3, 4번 받을 때마다 나한테 '2번 내놔! 2번 내놔!' 하고 징징댈 텐데, 그 징징거림이 3번 연속 들리면 초시계 볼 것도 없이 2번이 죽은 게 확실하잖아! 3초 기다리지 말고 당장 2번 다시 쏴버려!!"
-
💡 비유: 빠른 재전송은 택배 회사의 **"진상 고객 클레임 대처법"**입니다.
- 타이머 대기 (구형): 배송 기사가 물건을 잃어버렸습니다. 본사는 고객이 화를 내든 말든 "배송 보장 기한 3일(Timeout)"이 지나서 시스템에 '미도착'이 뜰 때까지 절대 다시 안 보내주고 규정대로만 버팁니다.
- 빠른 재전송: 고객이 1시간 만에 고객센터에 전화를 걸어 똑같은 말로 3번 연속 쌍욕을 박습니다(3 Dup-ACK). 본사는 3일(Timeout)을 기다리지 않고, "이건 백퍼 배송 사고다!"라며 즉시 퀵 서비스로 물건을 다시 쏴줍니다.
[혼잡 회피]
│
▼
[빠른 재전송]
│
└──▶ [빠른 회복]
- 📢 섹션 요약 비유: ** 빠른 재전송은 눈치 빠른 선생님의 **"결석자 파악법"**입니다. 선생님이 1번, 2번, 3번 출석을 부르는데, 3번을 부를 때 반장(수신자)이 "선생님 2번 결석이요!"라고 소리칩니다. 선생님은 40번까지 출석을 다 부르고(타이머 종료) 나서야 결석자를 파악하지 않고, 반장이 3번 똑같은 소리를 하면 출석 부르기를 멈추고 즉시 2번 학생 부모님께 전화(재전송)를 때립니다.
Ⅱ. 아키텍처 및 핵심 원리
1. 왜 하필 1번도 아니고 "3번" 중복일까?
이 숫자의 근거는 철저한 통계와 인터넷의 변수(순서 역전) 때문이다.
- 인터넷 망은 IP 라우팅을 타기 때문에 패킷이 서로 다른 길로 흩어질 수 있다. 1, 2, 3번을 쐈는데 1번은 1차선으로, 2번은 막히는 2차선으로, 3번은 텅 빈 3차선으로 갔다 치자.
- 수신자 쪽에 도착한 순서: 1, 3, 2 (2번이 살짝 늦었다!).
- 수신자가 1번을 받고
ACK 2를 쏜다. - 수신자가 3번을 먼저 받고 빡쳐서 **
ACK 2 (중복 1회)**를 쏜다. - 만약 중복 1회 만에 재전송을 갈겨버리면? 0.1초 뒤에 늦게 도착한 2번 패킷이 멀쩡히 도착했는데도 송신자는 2번을 쓸데없이 또 재전송하는 대역폭 낭비가 발생한다.
- IETF의 결론: "네트워크가 꼬여서 순서가 뒤집힐 순(Out-of-order) 있지만, 그게 3번 이상 연속으로 뒤집힐 확률은 거의 0%에 가깝다. 고로 똑같은 영수증이 3번 중복(최초 1번 + 중복 3번 = 총 4번)해서 날아오면, 그건 순서가 꼬인 게 아니라 100% 진짜 분실된 것이다!"
2. 가벼운 혼잡으로의 인식 (Drop의 성격 분리)
빠른 재전송(3 Dup-ACK)은 타임아웃(Timeout)과 궤를 달리한다.
- Timeout의 뇌구조: 영수증 자체가 안 온다. 도로가 꽉 막혀서 내 핑퐁이 아예 씨가 말랐다. "전신 마비다! 속도(CWND)를
1로 완전 초기화(리셋)해라!" - 3 Dup-ACK의 뇌구조: 영수증이 오긴 온다. 계속 뒤에 패킷들이 도착하고 있으니까 수신자가 징징대는 영수증이라도 계속 보내는 것이다. "도착은 잘하고 있네. 근데 딱 1놈만 가다가 옆 차랑 박아서 재수 없게 날아갔나 보네. 도로 전체가 막힌 건 아니야! 가벼운 찰과상이니까 속도(CWND)를 1로 리셋하지 말고 '절반(1/2)'으로만 줄여주자!"
┌─────────────────────────────────────────────────────────────┐
│ 타임아웃(Timeout) vs 빠른 재전송(3 Dup-ACK) 차이 │
├─────────────────────────────────────────────────────────────┤
│ │
│ [ 상황 1: 타임아웃 발생 (대재앙) ] │
│ - 원인: 톨게이트 붕괴. 아무 패킷도 수신자에게 못 감. │
│ - 송신자 반응: 3초 내내 적막... 아무 대답도 없음. │
│ - 처방: "망했다! CWND = 1로 박살 냄! (처음부터 다시 슬로우스타트)" │
│ │
│ [ 상황 2: 3 Dup-ACK 발생 (가벼운 접촉 사고) ] │
│ - 원인: 패킷 100개 중 딱 1개만 유실됨. 99개는 잘 도착함. │
│ - 송신자 반응: "2번 줘!", "2번 줘!", "2번 줘!" (연속 수신) │
│ - 처방: "오케이 2번 다시 발사! CWND는 아까우니까 절반(1/2)으로만 깎음!"│
│ │
│ ▶ "빠른 재전송 덕분에 TCP는 속도가 '0'으로 바닥을 치는 최악의 │
│ 사태를 피하고, 항상 절반 수준 이상의 고속을 유지할 수 있다!" │
└─────────────────────────────────────────────────────────────┘
- 📢 섹션 요약 비유: ** 빠른 재전송과 3번의 중복 룰은 **"양치기 소년 판별법"**입니다. 마을 사람(송신자)은 소년이 "늑대다(중복 1번)!", "늑대다(중복 2번)!"라고 장난칠 때는 무시하며 인내심을 발휘하지만, 3번째 똑같은 비명을 지르면(3 Dup-ACK) "이건 진짜다!"라고 확신하고 즉시 몽둥이(재전송 패킷)를 들고 뛰쳐나가는 현명한 판단법입니다.
Ⅲ. 비교 및 연결
빠른 재전송을 볼 때는 앞뒤 개념과의 경계를 함께 봐야 전체 흐름이 선명해진다. 혼잡 회피가 기반 조건을 만든다면, 빠른 재전송은 그 위에서 핵심 메커니즘을 구현하고, 빠른 회복은 이를 더 확장된 적용 단계로 연결한다. 따라서 단일 정의보다 신뢰성과 지연에 어떤 차이를 만드는지 비교하는 것이 중요하다.
| 관점 | 선행 개념 | 현재 개념 | 확장 개념 |
|---|---|---|---|
| 초점 | 혼잡 회피의 기반 정리 | 빠른 재전송의 핵심 동작 | 빠른 회복의 확장 적용 |
| 자원 관점 | 기본 조건 확보 | 신뢰성 최적화 | 규모와 범위 확대 |
| 판단 포인트 | 도입 가능성 확인 | 현재 메커니즘의 적합성 판단 | 운영·확장 전략 연결 |
- 📢 섹션 요약 비유: 빠른 재전송은 비슷한 기술들 사이의 차선을 구분하는 분기점과 같다. 어디서 갈라지는지 알아야 헷갈리지 않는다.
Ⅳ. 실무 적용 및 기술사 판단
실무에서는 빠른 재전송을 단독 개념으로 외우기보다 어떤 병목을 줄이기 위한 선택인지 먼저 따져야 한다. 특히 혼잡 회피 수준의 기본 대책으로 충분한지, 아니면 빠른 재전송이 제공하는 메커니즘이 실제로 필요한지 구분해야 한다. 이후 확장 단계에서는 빠른 회복와 같은 후속 기술, 자동화 체계, 표준 호환성까지 함께 검토해야 한다.
실무 체크리스트
- 현재 문제의 핵심이 신뢰성 부족인지, 지연 악화인지 먼저 분리한다.
- 빠른 재전송가 추가하는 복잡도와 운영 이득이 균형을 이루는지 확인한다.
- 도입 후에는 인접 기술인 빠른 회복와의 연계 방식을 함께 검증한다.
안티패턴
-
빠른 재전송의 장점만 보고 트래픽 패턴이나 운영 비용을 무시한 채 과도 도입하는 설계
-
혼잡 회피와의 경계를 정리하지 않아 중복 투자나 정책 충돌을 만드는 설계
-
📢 섹션 요약 비유: 빠른 재전송을 실제로 쓰는 판단은 도구 상자를 고르는 일과 비슷하다. 좋아 보이는 도구보다 지금 문제에 맞는 도구가 중요하다.
Ⅴ. 기대효과 및 결론
빠른 재전송은 전송 계층을 이해할 때 핵심 축을 잡아 주는 개념이다. 올바르게 적용하면 신뢰성 개선과 구조적 단순화에 기여하지만, 조건을 잘못 잡으면 오히려 복잡도와 운영 부담이 커질 수 있다. 앞으로는 빠른 회복, 적응형 저지연 전송, 자동화 운영과의 결합을 통해 더 정교하게 발전할 가능성이 크다. 따라서 이 개념은 정의 자체보다 “언제 쓰고 언제 다른 방법으로 넘길 것인가”의 관점으로 기억하는 것이 좋다. 향후에는 적응형 저지연 전송 같은 자동화 흐름과 결합되어 더 정교한 형태로 확장될 가능성이 크다.
- 📢 섹션 요약 비유: 빠른 재전송은 큰 흐름 속에서 기억해야 오래 남는다. 지금의 장점과 다음 확장 방향을 같이 보면 전체 그림이 선명해진다.
📌 관련 개념 맵
| 개념 | 연결 포인트 |
|---|---|
| 혼잡 회피 | 현재 개념이 등장하기 전에 갖춰야 할 배경이나 인접 선행 개념이다. |
| 세그먼트 (Segment) | 전송 계층이 다루는 기본 단위다. |
| 흐름 제어 (Flow Control) | 수신자 처리 속도를 넘지 않게 조절한다. |
| 빠른 회복 | 현재 개념이 확장되거나 적용 단계로 이어질 때 자주 함께 언급된다. |
📈 관련 키워드 및 발전 흐름도
[선행 개념: 혼잡 회피]
│
▼
[현재 개념: 빠른 재전송]
│
├──▶ [확장 A: 빠른 회복]
└──▶ [확장 B: 적응형 저지연 전송]
빠른 재전송는 혼잡 회피에서 출발해 현재 메커니즘을 정교화하고, 이후 빠른 회복와 적응형 저지연 전송 같은 확장 흐름으로 이어진다고 보면 기억이 오래간다.
👶 어린이를 위한 3줄 비유 설명
- 물건을 보낼 때 받는 사람이 너무 빨리 받으면 놓칠 수 있어요.
- 이 개념은 천천히 보낼지, 다시 보낼지, 길이 막히면 멈출지를 정해줘요.
- 그래서 멀리 보내도 덜 잃어버리고 더 안정적으로 도착해요.