백엔드 면접 용어 사전
네트워크

TCP

연결형·신뢰성 전송 프로토콜. 시퀀스 번호·ACK·재전송·흐름/혼잡 제어로 순서와 도달을 보장한다.

연결을 맺고, 순서대로, 빠짐없이 데이터를 보내는 전송 계층 프로토콜 (Transmission Control Protocol).

"전송 계층"이 하는 일

IP는 패킷을 목적지 컴퓨터까지만 보내 준다. 그것도 순서·도착을 보장하지 않는다. 전송 계층은 그 위에서 두 가지를 더한다.

  1. 포트 번호 — 컴퓨터 안의 어느 프로그램인지 구분(80은 웹, 3306은 MySQL)
  2. 신뢰성 — TCP가 담당. UDP는 안 함

신뢰성을 만드는 다섯 장치

장치하는 일없으면
시퀀스 번호각 바이트에 번호를 매김순서가 뒤바뀜, 중복을 못 걸러냄
ACK"몇 번까지 받았다"고 알림도착 여부를 모름
재전송ACK가 안 오면 다시 보냄유실되면 끝
체크섬손상 검출깨진 데이터를 그대로 씀
흐름·혼잡 제어속도 조절수신자·네트워크가 넘침

세그먼트가 어떻게 생겼나

TCP가 데이터에 붙이는 헤더는 최소 20바이트다.

┌──────────────┬─────────────────┐
│ 출발지 포트   │ 목적지 포트    │  프로그램 구분
├──────────────┴─────────────────┤
│      시퀀스 번호 (4B)          │  이 데이터가 몇 번째 바이트부터인지
├────────────────────────────────┤
│      ACK 번호 (4B)             │  "여기까지 받았다"
├──────┬──────┬──────────────────┤
│ 플래그│ 윈도우 크기            │  SYN/ACK/FIN … / 수신 여유 공간
├──────┴──────┬──────────────────┤
│  체크섬      │                 │
└─────────────┴──────────────────┘

윈도우 크기가 흐름 제어에, 시퀀스·ACK가 재전송에 쓰인다.

재전송은 언제 일어나나

  • 타임아웃 — 일정 시간 ACK가 안 오면. 시간은 왕복 지연(RTT)을 재서 동적으로 정한다.
  • 중복 ACK 3회 — 수신자가 "5번 다음이 필요해"를 세 번 반복하면 5번이 유실됐다고 보고 타임아웃을 기다리지 않고 바로 보낸다(빠른 재전송).

대가

  • 연결에 왕복 1.5회(3-way handshake)가 든다
  • 순서 보장 때문에 앞 패킷이 늦으면 뒤가 다 기다린다 → HOL Blocking
  • 헤더가 UDP(8B)보다 크다

면접 꼬리질문

  • "체크섬으로 오류를 정정할 수 있나?"불가. 검출만 하고 재전송으로 복구한다.
  • "TCP가 항상 UDP보다 느린가?" → 오버헤드는 크지만, 손실이 잦은 구간에서는 재전송을 스스로 처리해 완주 시간이 오히려 짧을 수 있다.
  • "신뢰성을 보장한다는 게 무슨 뜻인가?"반드시 도착한다가 아니라, 도착하면 순서와 무결성이 보장되고, 못 가면 애플리케이션에 알려 준다는 뜻이다.

함께 보면 좋은 용어

노트에서 맥락과 함께 보기 — 네트워크 — TCP/UDP·핸드셰이크·HTTP·HTTPS