Tech Juny

TCP 프로토콜 이란? 본문

네트워크

TCP 프로토콜 이란?

태크주니 2023. 1. 22. 13:29

TCP


01. TCP [Transmission Control Protocol]

TCP 프로토콜은 전송계층인 4계층에서 사용하는 대표 프로토콜이다.

단말간의 데이터 전송을 할 때 연결지향, 신뢰성, 오류제어, 혼잡제어 기능을 활용하여 안전하게 통신하기위해 사용된다.

 

02. TCP 특징

  1. 연결 지향 프로토콜
    • 순서 제어 : 데이터의 전송 순서 보장
    • Stream 기반 전송 방식 : 데이터를 임의의 크기로 나누어서 전송하는 방식
  2. 신뢰성 있는 프로토콜
    • 흐름 제어 : 수신자가 수용 할 수 있는 데이터의 크기만큼만 전송
    • 슬라이딩 윈도우 방식 : 상대박의 ACK를 기다리지 않고 연속적으로 전송
      • 윈도우 : 수신 버퍼의 여유 공간 크기로 수신 ACK 없이 전송 할 수 있는 최대 Bytes 크기
  3. 오류 제어
    • 재전송 : 데이터 전송 오류 또는 누락 발생시 재전송
  4. 혼잡 제어
    • 타임 아웃 재전송 (매운 혼잡한 상태)
      • 재전송은 일정 시간 또는 횟수 동안만 발생하여 무한 재전송을 방지

TCP 타임 아웃 재전송

  • 3 ACK 중복 재전송 (덜 혼잡한 상태)
    • 순서가 다른 번호의 세그먼트를 수신하면 즉시 누락된 세그먼트를 요청

TCP 3 ACK 중복 재전송

 

03. TCP 패킷 구조

TCP 헤더 구조

  • Source Port (16 bit) : 출발지 포트 번호
  • Destination Port (16 bit) : 목적지 포트 번호
  • Sequence Number (32 bit) : 데이터 순서 번호
  • Acknowledgment Number (32 bit) : 수신한 데이터의 다음 수신할 데이터 순서 번호
  • HLEN (4bit) : TCP Header의 Byte 크기
  • Reserved : 예약된 필드
  • Control Flags (6 bit)
    • Urgent(URG) : 우선순위를 높여 긴급하게 사용하는 플래그
    • Acknowledgement(ACK) : 응답 확인 플래그 
    • Push(PSH) : 버퍼링 없이 데이터를 즉시 전달하는 플래그
    • Reset(RST) : 비정상 세션을 종료하는 플래그
    • Synchronization(SYN) : 세션 연결 시작 플래그
    • Finish(FIN) : 세션 정상 종료 플래그

TCP Flags Bit

  • Window size (16 bit) : 수신 버퍼의 여유 공간 크기로 수신 ACK 없이 전송 할 수 있는 최대 Bytes 크기
  • Checksum (16 bit) : 데이터 손실 및 에러 Check 용 값
  • Urgent Pointer (16 bit) : URG Flag 설정 시 시퀀스 번호 오프셋을 의미하며, 해당 오프셋의 마지막 긴급 데이터 Bytes
  • Options : TCP 필드에 따른 옵션 사용

'네트워크' 카테고리의 다른 글

TCP 3 Way Handshake 란?  (2) 2024.01.22
Ping / Traceroute / Tracert 란?  (0) 2023.01.08
ICMP 란?  (0) 2023.01.07
라우팅 이란?  (0) 2022.12.23
Unicast / Multicast / Broadcast 통신 방식 이란?  (0) 2022.12.21
Comments