기술(Tech, IT)/네트워크 (Networking)

[Networking] TCP (Transmission Control Protocol)

Daniel803 2024. 4. 26. 03:39

TCP는 네트워크, 특히 인터넷에서 사용되는 기본 통신 프로토콜로, 애플리케이션 간에 데이터 스트림을 안정적이고 순서대로 오류를 확인하며 전달할 수 있도록 한다. 이는 인터넷 프로토콜 제품군의 핵심 프로토콜 중 하나이며, 일반적으로 TCP/IP라고도 한다.

 

TCP는 파일 전송, 이메일, 웹 브라우징과 같이 데이터가 정확하고 순서대로 완전해야 하는 애플리케이션에 매우 중요하다. 하지만 이러한 기능에 필요한 오버헤드로 인해 지연 시간이 발생하고 처리량이 감소할 수 있어, 스트리밍이나 게임과 같은 실시간 애플리케이션에는 신뢰성 기능이 부족하더라도 UDP와 같은 프로토콜이 선호될 수 있다.

 

  • Connection-Oriented
    : TCP는 연결 지향 프로토콜로, 양쪽 끝에 있는 애플리케이션 프로그램이 메시지 교환을 마칠 때까지 연결이 설정되고 유지된다. 따라서 데이터가 공백 없이 순서대로 전송된다.
  • Reliable Transmission
    : TCP는 오류 확인 및 데이터 승인을 통해 신뢰성을 제공한다. 전송된 데이터와 수신된 데이터가 동일하도록 보장하며, 패킷이 손실되거나 지연되거나 순서와 다르게 도착하는 경우 TCP는 수신자가 이를 다시 성공적으로 전달되었음을 확인할 때까지 재전송한다. 이를 통해 모든 데이터가 의도한 목적지에 정확하고 완벽하게 도달할 수 있다.
  • Flow Control
    : TCP는 흐름 제어 메커니즘(flow control machanisms)을 사용해 발신자는 수신자가 처리할 수 있는 속도로 데이터를 전송해 수신자에게 과부하가 걸리지 않도록 한다. 이는 수신자의 데이터 처리 능력에 따라 데이터 전송 속도를 조정하는 슬라이딩 윈도우 프로토콜(Sliding Window Protocol)과 같은 메커니즘을 통해 이뤄진다.
  • Congestion Control
    : TCP는 또한 혼잡 제어 알고리즘(congestion control algorithms)을 구현해 네트워크의 현재 상태에 따라 전송 속도를 조정함으로써 네트워크의 혼잡을 최소화한다. 이를 통해 최적의 성능을 유지하고 네트워크 리소스의 과부하를 방지할 수 있다.
  • Sequencing andf Acknowledgement 
    : TCP 연결을 통해 전송되는 데이터의 각 바이트에는 패킷이 도착하는 순서와 관계없이 수신 측에서 데이터가 올바른 순서로 재조합되도록 하는 데 사용되는 시퀀스 번호가 할당된다. 수신자는 데이터 수신을 확인하기 위해 발신자에게 확인(ACK, acknowledgement)를 다시 보낸다.
  • Three-way Handshake
    : TCP 연결을 설정하기 위해 Three-way Handshake가 사용된다. 이 프로세스에는 발신자가 수신자에게 연결 요청을 보내고, 수신자가 이 요청을 승인하며, 발신자가 수시잔의 승인을 확인하는 과정이 포함된다. 이 handsahke는 실제 데이터 전송이 발생하기 전에 안정적인 연결 채널을 설정하는 데 매우 중요하다.