본문 바로가기
네트워크/네트워크

TCP(Transmission Control Protocol)

by Mostlove 2025. 4. 9.
728x90
반응형

📌 TCP(Transmission Control Protocol) 개요

  • 신뢰성 있는 연결 지향적 (Connection-oriented) 프로토콜
  • 데이터 전송의 순서 보장 및 오류 검출 및 복구 기능 제공
  • UDP와 달리, 패킷 손실 시 재전송(Retransmission) 수행
  • 멀티플렉싱(Multiplexing)으로 여러 응용 프로그램이 동일한 연결을 사용할 수 있도록 함

🔹 TCP의 주요 특징

  1. 3-Way Handshake (연결 수립)
    • 송신자(클라이언트)와 수신자(서버) 간 연결을 설정하는 과정
    • 단계:
      1. SYN: 클라이언트 → 서버 (연결 요청)
      2. SYN+ACK: 서버 → 클라이언트 (연결 요청 승인)
      3. ACK: 클라이언트 → 서버 (연결 완료)
    • 연결이 성립된 후 데이터 전송 시작
  2. 4-Way Handshake (연결 종료)
    • 연결 종료 시 FIN & ACK 교환 (두 방향에서 개별적으로 수행)
    • 단계:
      1. FIN: 종료 요청
      2. ACK: 종료 요청 수락
      3. FIN: 반대 방향도 종료 요청
      4. ACK: 종료 완료
  3. 패킷 스위칭 방식(Packet Switching)
    • 데이터를 패킷 단위로 분할하여 빠른 경로로 전송 후, 수신 측에서 재조립
    • 수신 확인(ACK) 미수신 시 재전송
  4. 흐름 제어(Flow Control) & 슬라이딩 윈도우
    • 슬라이딩 윈도우(Sliding Window): 전송 속도 조절
    • 네트워크 상태에 따라 데이터량 동적 조정(Nagle 알고리즘 활용)

🔹 TCP 헤더 구조

필드명 설명
Source Port 송신 포트 번호
Destination Port 수신 포트 번호
Sequence Number 데이터 순서 번호
Acknowledgment Number 확인 응답 번호
Flags (6개) 연결/제어 관련 플래그
Window Size 흐름 제어 위한 크기
Checksum 오류 검사
Urgent Pointer 긴급 데이터 처리

📌 TCP 플래그 (Flags)

  • SYN: 연결 요청
  • ACK: 응답 확인
  • FIN: 연결 종료
  • RST: 연결 강제 종료
  • PSH: 즉시 전송
  • URG: 긴급 데이터 처리

🔹 TCP와 관련된 프로토콜 (TCP Suite)

  • Telnet (원격 로그인)
  • FTP (파일 전송)
  • SMTP (메일 전송)
  • DNS (도메인 네임 시스템, 일부 TCP 사용)
  • SNMP (네트워크 관리)
  • HTTP/HTTPS (웹 서비스)

🔹 TCP vs UDP 비교

구분  TCP UDP
연결 방식 연결 지향(Connection-oriented) 비연결(Connectionless)
신뢰성 신뢰성 있음 (데이터 손실 시 재전송) 신뢰성 없음
속도 느림 빠름
데이터 순서 보장 O X
사용 예시 HTTP, FTP, SMTP DNS, VoIP, 스트리밍

🛠 정리 요약

✔ TCP는 신뢰성 있는 데이터 전송을 보장하는 연결 지향적 프로토콜
3-Way Handshake로 연결을 설정하고, 4-Way Handshake로 종료
✔ 패킷 손실 시 재전송(Retransmission) 수행
슬라이딩 윈도우(Sliding Window) 로 전송 속도 조절
✔ 주요 서비스: HTTP, FTP, SMTP, DNS, Telnet 등

💡 추가할 내용 있으면 말해줘! 🚀

반응형