본문으로 건너뛰기

TCP

TCP(Transport Control Protocol)는 데이터를 정확하게 송/수신 처리 가능하게 해주는 연결형 프로토콜이다.

🧑🏻‍💻 TCP 장단점


✅ TCP 장점

  • 순차적 데이터 전송을 보장한다.
  • 정확하게 데이터 송/수신 처리를 한다.
  • 송/수신 처리에 대한 오류를 감지하기 쉽다.

✅ TCP 단점

  • 정확한 송/수신 처리 과정으로 인해 시간 손실 및 부하가 발생한다.
  • 제약된 전송량을 처리한다.
  • 패킷을 조금만 손실해도 재전송을 해야 한다.

🧑🏻‍💻 TCP 동작 과정


세션 접속 → 데이터 송/수신 → 세션 해제 순서로 진행된다.

✅ 세션 접속

SYN, SYN + ACK, ACK 의 3-way-handshake 방식으로 세션 접속을 한다.

세션 접속
  • 이 과정을 통해 양쪽 모두 데이터를 전송할 준비가 되었다는 것을 보장한다.

✅ 데이터 송수신

세션 접속 이후, client와 server 양측에서 data/ack 순으로 송/수신이 가능해진다.

데이터 송수신
  • server → client 방향의 data를 push라고 한다.
  • 전송되는 데이터는 반드시 반대쪽에서 ACK 응답을 전송해야 한다.
  • ACK 응답이 없을 경우, 네트워크상의 대기시간이 누적되어 접속이 끊어진다.

✅ 세션 해제

양방향의 FIN/ACK 의 4-way-handshake 방식으로 세션을 해제한다.

세션 해제
  • Server에 비해 Client에서의 비정상적인 세션 종료 현상이 자주 발생한다.
  • 따라서 Server에서 Client가 종료되었다는 상황을 인지할 수 있도록 Client에서 일정 시간 이상 미수신 시 세션을 강제 해제하는 장치를 구현해야 한다.