김 컴퓨터


TCP (Transmission Control Protocol) 기초

TCP (전송 제어 프로토콜)는 인터넷 프로토콜(IP) 위에서 동작하며, 두 호스트(장치) 간에 신뢰할 수 있는 데이터 통신을 보장하는 연결 지향(Connection-Oriented) 프로토콜입니다.

인터넷상에서 데이터의 정확성과 순서가 매우 중요할 때 (예: 웹 브라우징, 파일 전송, 이메일) 사용됩니다.


1. TCP의 핵심 원리: 신뢰성 확보

TCP의 가장 중요한 역할은 데이터 손실이나 순서 뒤바뀜 없이 정확하게 데이터를 전송하는 것입니다. 이를 위해 다음 메커니즘을 사용합니다.

① 3-Way Handshake (연결 설정)

데이터를 전송하기 전에 클라이언트와 서버가 서로 통신 준비가 되었음을 확인하는 3단계 과정입니다.

  1. SYN (Synchronize): 클라이언트가 서버에 연결 요청(나 시작할 준비가 됐어).
  2. SYN-ACK (Acknowledge): 서버가 요청 수락 및 자신의 연결 요청(나도 준비됐고, 너한테도 요청할게).
  3. ACK: 클라이언트가 서버의 요청을 최종 수락(알았어, 이제 시작하자).
    • 결과: 통신할 준비가 된 가상 회선(Virtual Circuit)이 설정됩니다.

② 데이터 전송 및 확인응답 (ACK)

데이터를 보낼 때마다 수신자가 잘 받았다는 확인 응답(ACK)을 보냅니다. ACK가 일정 시간 내에 오지 않으면 재전송하여 데이터 손실을 방지합니다.

③ 순서 번호 (Sequence Number)

데이터 패킷에 순서 번호를 부여하여, 패킷이 순서가 뒤바뀌어 도착해도 원래의 순서대로 재조립할 수 있습니다.


2. TCP의 주요 특징

특징 설명
연결 지향 (Connection-Oriented) 통신 전에 3-Way Handshake를 통해 논리적인 연결을 먼저 설정하고 통신을 시작합니다.
신뢰성 (Reliable) 데이터 손실, 손상, 중복, 순서 바뀜 없이 정확하게 전송됨을 보장합니다.
흐름 제어 (Flow Control) 수신자의 처리 속도보다 데이터 전송 속도가 빠를 경우, 송신 속도를 조절하여 버퍼 오버플로우를 방지합니다.
혼잡 제어 (Congestion Control) 네트워크 자체가 혼잡할 경우, 데이터 전송 속도를 늦춰 네트워크 마비를 예방합니다.
전이중 통신 (Full-Duplex) 데이터를 동시에 양방향으로 주고받을 수 있습니다.

3. TCP의 한계

신뢰성을 확보하는 과정(핸드셰이크, 확인응답, 재전송 등) 때문에 UDP에 비해 속도가 느리고 오버헤드가 크다는 단점이 있습니다.