확실하게 애플리케이션의 데이터를 전송한다.

Sunhee·2024년 2월 23일

네트워크

목록 보기
19/40
post-thumbnail

해당 포스트는 영진닷컴,『그림으로 배우는 네트워크 NetWork 원리』, Gene 저·김성훈 역을 참고하여 작성하였습니다.


TCP란?

TCP란 신뢰성이 있는 애플리케이션 간의 데이터 전송을 하기 위한 프로토콜입니다.
TCP를 이용하면, 애플리케이션 프로토콜에는 신뢰성을 확보하기 위한 구조를 넣어 둘 필요가 없습니다.

TCP에 의한 데이터 전송 절차

TCP에 의한 애플리케이션 간 데이터 전송은 다음과 같이 이루어집니다.

  1. TCP 커넥션 맺기
  2. 애플리케이션 간 데이터 송 수신
  3. TCP 커넥션 끊기

우선, 데이터를 송수신하는 애플리케이션 간의 통신이 정상으로 이루어질 수 있는지 확인합니다. 이 확인 프로세스는 3웨이 핸드쉐이크(커넥션 맺기)라고 불립니다.

다음으로 애플리케이션이 다루는 데이터를 TCP로 송신하기 위해서는, 애플리케이션의 데이터에 애플리케이션 프로토콜 헤더와 TCP 헤더를 추가할 필요가 있습니다. 이를 TCP 세그먼트라고 표현하기도 합니다. 이때 애플리케이션의 데이터 크기가 크면 분할하여 복수의 TCP 세그먼트로서 전송합니다. 어떻게 분할했는지 TCP 헤더에 기술되고, 목적지에서 차례대로 원본 데이터로 조립합니다. 또한, 데이터가 도착하면 받았다고 확인해 줍니다. 데이터 수신 확인을 ACK라고 부릅니다. 만약, 일부 데이터가 제대로 도착하지 않았다면 데이터를 재전송합니다. 또 네트워크가 혼잡하면, 데이터 전송 속도를 제한합니다. 이런 데이터 전송 구조를 플로우 제어라고 합니다.

마지막으로 애플리케이션의 데이터 전송이 모두 끝나면, TCP 커넥션을 끊습니다.


Point

  • TCP로 애플리케이션 사이에서 신뢰성 있는 데이터 전송을 할 수 있다.
  • TCP에 의한 데이터 전송의 흐름은 다음과 같다.
    • TCP 커넥션 맺기
    • 애플리케이션 간 데이터 송수신
    • TCP 커넥션 끊기

0개의 댓글