type
status
date
slug
summary
tags
category
icon
password

정의

💡
신뢰성 있는 데이터 전송을 보장하는 프로토콜
TCP(Transmission Control Protocol)는 데이터 전송 중 손실이나 중복 없이 정확하게 전달되도록 보장합니다. 연결 설정, 데이터 전송, 연결 종료 과정에서 오류 복구와 흐름 제어 기능을 제공합니다.

특징

  • 1:1 통신(Point-to-Point)
  • 신뢰성 있는 데이터 전송 보장
  • 연결 설정 및 종료 과정 제공
  • 오류 복구 기능 포함
  • 흐름 제어 기능 제공
  • 데이터 전송 중 손실이나 중복 방지
  • 순서 보장
  • 혼잡 제어 기능 포함
 

연결 및 해제

TCP 3-Way Handshake (연결)

TCP 연결을 설정하기 위해 3-Way Handshake 과정을 거칩니다. 이 과정은 클라이언트와 서버가 서로 통신을 시작하기 전에 연결을 설정하는 절차입니다.
notion image
  1. SYN: 클라이언트가 서버에 연결 요청을 보냅니다.
  1. SYN-ACK: 서버가 클라이언트의 요청을 수락하고, 연결을 확인하는 응답을 보냅니다.
  1. ACK: 클라이언트가 서버의 응답을 확인하고, 연결이 설정됩니다.

TCP 4-Way Handshake (해제)

TCP 연결을 해제하기 위해 4-Way Handshake 과정을 거칩니다. 이 과정은 클라이언트와 서버가 연결을 종료하기 위한 절차입니다.
notion image
  1. FIN: 클라이언트가 서버에 연결 종료 요청을 보냅니다.
  1. ACK: 서버가 클라이언트의 요청을 확인하고, 연결 종료를 수락합니다.
  1. FIN: 서버가 클라이언트에 연결 종료 요청을 보냅니다.
  1. ACK: 클라이언트가 서버의 요청을 확인하고, 연결이 종료됩니다.
 

TCP 헤더

  • Source Port Number: 송신 측 포트 번호를 나타냅니다.
  • Destination Port Number: 수신 측 포트 번호를 나타냅니다.
  • Sequence Number: 송신된 데이터의 순서를 나타내는 번호입니다. 데이터 전송 중 순서를 보장하기 위해 사용됩니다.
  • Acknowledgment Number: 수신 측이 다음에 받을 데이터의 순서를 나타내는 번호입니다. 송신 측에 데이터가 제대로 수신되었음을 확인시켜줍니다.
  • Data Offset: TCP 헤더의 길이를 나타내며, 옵션 필드의 시작 위치를 지정합니다.
  • Reserved: 미래에 사용하기 위해 예약된 비트입니다.
  • Flags: 여러 제어 플래그가 포함되어 있으며, 각 비트는 특정 제어 기능을 나타냅니다.
    • NS: ECN-Nonce - Explicit Congestion Notification nonce 비트.
    • CWR: Congestion Window Reduced - 혼잡 윈도우 감소 비트.
    • ECE: ECN-Echo - 혼잡 알림 응답 비트.
    • URG: Urgent - 긴급 포인터 필드가 유효함을 나타냅니다.
    • ACK: Acknowledgment - 확인 번호 필드가 유효함을 나타냅니다.
    • PSH: Push - 수신 측에 데이터를 즉시 전달할 것을 요청합니다.
    • RST: Reset - 연결을 재설정합니다.
    • SYN: Synchronize - 시퀀스 번호 동기화를 시작합니다.
    • FIN: Finish - 연결을 종료합니다.
  • Window: 수신 측이 한 번에 받을 수 있는 최대 데이터 크기를 나타냅니다.
  • Checksum: 헤더와 데이터의 오류를 확인하기 위한 체크섬입니다.
  • Urgent Pointer: 긴급 데이터의 끝을 나타냅니다.
  • Options: 선택적으로 추가 정보를 포함할 수 있는 필드입니다.
  • Data: 실제 전송되는 데이터입니다.
 
UDP전송 계층
Loading...