TCP란?

98oys·2023년 7월 19일

CS

목록 보기
3/5

TCP란?

Transmission Control Protocol의 약자

TCP는 신뢰성 있는 데이터 전송을 지원하는 연결 지향형 프로토콜입니다.
일반적으로 TCP와 IP가 함께 사용되는데, IP가 데이터의 전송처리를 담당한다면 TCP는 패킷 추적과 관리를 합니다.
연결 지향형인 TCP는 3-way handshake라는 과정을 통해 연결 후 통신을 합니다.
UDP와 다르게 흐름제어와 혼잡제어를 지원하기 때문에 데이터의 순서를 보장한다는 특징이 있습니다.

TCP의 특징

  • 연결형 서비스로 가상 회선 방식 사용
  • 데이터 전송 순서 보장
  • UDP보다 전송 속도 느림
  • 연결과정, 해제과정이 있음
  • 1:1 통신
  • 고정된 통신 선로가 최단선이 아닐 경우 상대적으로 느림
  • 흐름제어
  • 혼잡제어

혼잡 제어(Congestion Control):

혼잡 제어는 네트워크의 혼잡 상태를 감지하고, 데이터의 전송 속도를 동적으로 조절하여 네트워크 혼잡을 방지하고 관리하는 기법입니다.
혼잡 제어는 네트워크의 대역폭, 패킷 손실 및 지연 시간 등의 지표를 사용하여 현재 네트워크의 혼잡 상태를 추정합니다.
혼잡 상태를 감지하면 송신자는 전송 속도를 감소시키고, 네트워크가 다시 안정 상태로 돌아올 때까지 점진적으로 전송 속도를 증가시킵니다.
혼잡 제어 알고리즘으로는 TCP Tahoe, TCP Reno, TCP NewReno 등이 있습니다.

흐름 제어(Flow Control):

흐름 제어는 수신자와 송신자 간의 데이터 전송 속도를 조절하여 수신 측의 버퍼 오버플로우를 방지하는 기법입니다.
수신 측은 자신의 버퍼 상태를 송신 측에게 알려주어 데이터 전송 속도를 조절하도록 합니다.
흐름 제어는 수신자가 처리할 수 있는 데이터의 양에 따라 송신 측의 전송 속도를 조정하여 데이터의 손실을 방지하고 효율적인 데이터 전송을 유지합니다.
TCP에서는 수신자가 수신 윈도우 크기를 통해 흐름 제어를 수행하며, ACK 패킷을 통해 수신 윈도우 크기를 조절합니다.
요약하자면, 혼잡 제어는 네트워크의 혼잡 상태를 감지하고 전송 속도를 조절하여 네트워크 혼잡을 방지하는 반면, 흐름 제어는 수신자와 송신자 간의 데이터 전송 속도를 조절하여 수신 측의 버퍼 오버플로우를 방지합니다. 두 기능은 각각 다른 목적과 동작 방식을 가지고 있으며, TCP의 안정적인 데이터 전송을 위해 함께 사용됩니다.

정리해보자면..

  • 연결 지향형 프로토콜
  • UDP보다 느림
  • 흐름제어, 혼잡제어가 있어 신뢰성 높음
  • 데이터 순서 보장

네트워크에 패킷의 수가 과도하게 증가하는 것을 혼잡이라 하는데, 혼잡 현상을 제어하는 것을 혼잡제어라 한다.

흐름제어 : 수신 측의 버퍼 상태를 기반으로 데이터의 전송 속도를 조절하여 수신 측의 버퍼 오버플로우를 방지하는 기법
혼잡제어 : 네트워크의 혼잡 상태를 감지하고 데이터의 전송 속도를 동적으로 조절하여 네트워크 혼잡을 방지하고 관리하는 기법

profile
Android Developer, Department of Information and Communication Engineering, Inha University

0개의 댓글