오늘 하루, develop

#13. [4계층] TCP 프로토콜이란? (개념, 구조) 본문

네트워크

#13. [4계층] TCP 프로토콜이란? (개념, 구조)

toZoe 2024. 5. 7. 23:19

TCP프로토콜

전송 제어 프로토콜(Transmission Control Protocol, TCP)은 인터넷에 연결된 컴퓨터에서 실행되는 프로그램 간에 통신을 안정적으로, 순서대로, 에러없이 교환할 수 있게 한다.

 

  • TCP의 안정성을 필요로 하지 않는 애플리케이션의 경우 일반적으로 TCP 대신 비접속형 사용자 데이터그램 프로토콜(UDP)을 사용한다.
  • TCP는 UDP보다 안전하지만 느리다.

 

 구조

 

TCP의 가장 일반적인 길이는 20byte, 최대 60byte이다.

  • Source Port (2byte)
  • Destination Port (2byte)
  • Sequence Number (4byte)
  • Acknowledgment (4byte)
  • Offset (0.5byte) : 헤더의 길이 / 4 = 일반적으로는 5
  • Reserved ( 0.5byte ) : 사용하지 않음
  • TCP Flages (1byte) : 이어서 자세히 설명
  • Window (2byte) : 남은 TCP 버퍼 공간. 데이터를 얼마나 더 보내도 되는지 상대방에게 알려줄 때 사용
  • Urgent Pointer (2byte) : 어디서부터가 중요한 데이터인지 표시
  • TCP Options :일반적으로 안 붙고, 붙더라도 4byte씩 붙는다.

 

TCP 플래그

TCP는 통신하며 계속 연결 상태를 확인함. 여러 가지 형태로 데이터를 보냄. 어떤 기능을 하는 통신인지 구분하는 것이 TCP 플래그

 

Urgent Flag

  • 긴급 비트
  • 우선순위가 높은 데이터를 보내는 경우
  • Urgent Pointer(어디서부터가 중요한 데이터인지 표시)와 세트

A

Ack Flag

  • 승인 비트
  • '데이터 보내도 돼', '연결해도 돼' 와 같은 상황에 사용

P

Push Flag

  • 밀어넣기 비트
  • TCP 버퍼가 일정 크기만큼 쌓여야 패킷을 전송하는데 이것과 상관 없이 계속 데이터를 밀어넣겠다는 뜻

R

Reset Flag

  • 초기화 비트
  • 상대와 연결이 된 상태에서, 추가적으로 데이터를 주고받으려고 하는데 문제가 발생했을 때와 경우 연결을 초기화할 때 사용

S

Syn Flag

  • 동기화 비트
  • 상대방과 연결을 시작할 때 무조건 사용하는 플래그
  • 가장 중요한 플래그

F

Fin Flag

  • 종료 비트
  • 연결을 끊을 때 사용

 

 


출처

https://youtu.be/cOK_f9_k_O0?si=0yK56YTC9kv798Qj