TCP

기술노트

📡 TCP (Transmission Control Protocol)

TCP는 인터넷상에서 데이터를 정확하고 안정적으로 전송하기 위해 사용하는 프로토콜입니다. 인터넷에서 데이터를 주고받는 데 필수적인 역할을 하며, 주로 웹페이지 보기, 이메일 보내기 등에서 사용됩니다.


🔍 TCP 개요

TCP는 데이터를 보내기 전에 반드시 연결을 설정하는 방식으로, 데이터의 신뢰성을 보장합니다.

  • 연결 지향적: 데이터 전송 전 연결 설정
  • 신뢰성: 데이터 손실과 오류 최소화
  • 전송 계층: OSI 모델의 4계층에 위치

⚙️ TCP 주요 특징

1. 연결 설정과 종료

  • 연결 설정 (3-way Handshake)
  1. 송신자 → 수신자: 연결 요청(SYN)
  2. 수신자 → 송신자: 연결 승인(SYN-ACK)
  3. 송신자 → 수신자: 연결 확인(ACK)
  • 연결 종료 (4-way Handshake)
  1. 송신자 → 수신자: 종료 요청(FIN)
  2. 수신자 → 송신자: 종료 확인(ACK)
  3. 수신자 → 송신자: 종료 요청(FIN)
  4. 송신자 → 수신자: 종료 확인(ACK)

2. 신뢰성 보장

  • 순서 보장: 데이터가 전송된 순서대로 도착
  • 오류 감지: 데이터 오류 발생 시 자동 재전송
  • 중복 방지: 중복된 데이터를 제거

3. 흐름제어

  • 수신자의 처리 능력에 맞춰 데이터를 전송
  • 슬라이딩 윈도우 방식을 사용해 효율적 전송

4. 혼잡제어

  • 네트워크가 과부하되지 않게 데이터 전송 속도 조절
  • 주요 알고리즘: Slow Start, AIMD, Fast Retransmit, Fast Recovery

5. 전이중 통신

  • 동시에 양방향으로 데이터 전송 가능

📋 TCP 헤더 구조 (주요 필드)

  • Source Port: 송신 포트 번호
  • Destination Port: 수신 포트 번호
  • Sequence Number: 데이터 순서 번호
  • Acknowledgment Number: 다음 예상 데이터 번호
  • Window Size: 수신자 버퍼 크기(RWND)
  • Checksum: 데이터 오류 확인

⚡ TCP vs UDP 비교

특성 TCP UDP
연결 여부 연결 지향 연결 없음
신뢰성 높음 낮음
속도 상대적으로 느림 빠름
흐름제어, 혼잡제어 지원 미지원
활용 예시 웹, 이메일, 파일 전송 영상 스트리밍, DNS

🚀 TCP 장점과 단점

장점

  • 신뢰성 높은 데이터 전송
  • 데이터 전송 순서 보장
  • 네트워크 혼잡 방지

단점

  • 상대적으로 속도가 느림
  • 연결 설정과 관리로 인한 부하

💼 TCP 활용 분야

  • 웹 브라우징 (HTTP/HTTPS)
  • 이메일 (SMTP, POP3)
  • 파일 전송 (FTP, SFTP)
  • 원격 접속 (SSH, Telnet)

📚 참고 자료