Transmission Control Protocol의 이니셜을 따온 것으로 IP(장비 주소)와 함께 사용된다.
연결형 서비스를 지원하는 프로토콜로 인터넷 환경에서 기본으로 사용한다.
서버소켓은 연결만을 담당
연결과정에서 반환된 클라이언트 소켓은 데이터의 송수신에 사용된다
서버와 클라이언트는 1대1로 연결된다.
스트림 전송으로 전송 데이터의 크기가 무제한이다.
패킷에 대한 응답을 해야하기 때문에(시간 지연, CPU 소모) 성능이 낮다.
단편화가 존재한다. ex) 900이면 40, 50, ... 끊어서 다만, 끊기게되면 다시 시도하고 최대한 시도하
TCP 통신에서 데이터의 크기가 네트워크의 MTU(Maximum Transmission Unit, 최대 전송 단위)보다 클 경우, 데이터는 여러 개의 패킷으로 나누어져(단편화) 전송된다.
TCP는 이런 단편화를 자동으로 처리하는 프로토콜이다. 데이터를 보낼 때, 데이터의 크기가 MTU보다 크면 TCP는 데이터를 여러 개의 세그먼트로 분할한다.
각 세그먼트는 헤더 정보를 포함하며, 이 헤더 정보는 세그먼트의 순서, 원본 데이터의 크기 등을 나타낸다. 이렇게 분할된 데이터는 독립적으로 네트워크를 통해 전송되며, 수신 측에서는 이 세그먼트를 재조립하여 원래의 데이터를 복원한다.
이러한 TCP의 단편화와 재조립 기능은 데이터의 전송을 안정적이고 효율적으로 만들어준다.
하지만 단편화는 네트워크의 오버헤드를 증가시키므로, 데이터를 작은 단위로 보내는 것이 항상 최선의 방법은 아니다.
따라서, 네트워크의 성능을 최적화하기 위해서는 데이터의 크기와 MTU를 적절하게 설정하는 것이 중요하다.
TCP는 최대한의 안정성을 보장한다.