개인의 기록
  • 소개
  • 프로젝트
  • 글
  • 링크

© 2026 newgirok

← 글 목록

TCP — 전송 제어 프로토콜

2025년 10월 18일
TCP

TCP(Transmission Control Protocol)는 신뢰성 있는 데이터 전송을 보장하는 연결 지향 전송 계층 프로토콜입니다.

TCP의 핵심 특성

연결 지향 (Connection-Oriented)

3-Way Handshake를 통해 연결을 수립하고, 4-Way Handshake를 통해 연결을 종료합니다.

신뢰성 보장

수신 측이 데이터를 받으면 ACK(확인 응답)을 보냅니다. 송신 측은 ACK를 받지 못하면 재전송합니다.

순서 보장

각 바이트에 일련번호(Sequence Number)를 부여합니다. 패킷이 순서 없이 도착하더라도 수신 측에서 올바른 순서로 재조립합니다.

흐름 제어

수신 측이 처리할 수 있는 양을 윈도우 크기(Window Size)로 송신 측에 알립니다. 송신 측은 이 범위 안에서만 데이터를 전송하여 수신 버퍼 오버플로를 방지합니다.

혼잡 제어

패킷 손실이 감지되면 전송 속도를 낮춥니다. 슬로우 스타트, 혼잡 회피, 빠른 재전송 등의 알고리즘을 사용합니다.

TCP 헤더 주요 필드

필드설명
출발지 포트송신 애플리케이션의 포트 번호
목적지 포트수신 애플리케이션의 포트 번호
시퀀스 번호이 세그먼트의 첫 번째 바이트 번호
확인 응답 번호다음에 받기를 기대하는 바이트 번호
윈도우 크기수신 가능한 데이터 양
플래그SYN, ACK, FIN, RST 등 제어 비트

TCP 플래그

플래그의미
SYN연결 요청
ACK수신 확인
FIN연결 종료 요청
RST연결 강제 리셋
PSH데이터 즉시 전달 요청

TCP가 적합한 경우

  • 웹 페이지 로딩 (HTTP/HTTPS)
  • 파일 다운로드 (FTP)
  • 이메일 전송 (SMTP)
  • 데이터베이스 통신

데이터 손실이 허용되지 않는 모든 상황에서 TCP를 사용합니다. 단, 연결 수립과 신뢰성 보장에 따른 오버헤드가 있어 실시간 스트리밍에는 적합하지 않습니다.

← 이전 글TCP/IP 모델 — 인터넷의 표준 프로토콜 스택
다음 글 →TLS/SSL — 전송 계층 보안