위키득계정 ↗
기술

전송 제어 프로토콜

전송 제어 프로토콜기술
약칭
TCP
영문명
Transmission Control Protocol
계층
전송 계층
전달 모형
연결 기반 바이트 스트림
주요 기능
순서 관리, 재전송, 흐름·혼잡 제어
전송 제어 프로토콜(TCP)은 순서가 있는 바이트 스트림을 제공하는 인터넷 전송 계층 프로토콜이다. 누락된 데이터의 재전송과 흐름·혼잡 제어를 수행하지만 응용 프로그램의 처리 완료까지 보장하는 것은 아니다.

메시지보다 바이트의 순서

TCP는 응용 프로그램이 보낸 데이터를 순서 있는 바이트 흐름으로 전달한다. 한 번 쓰기 호출로 보낸 내용이 수신 측의 한 번 읽기 호출과 같은 경계로 도착한다는 보장은 없다.

따라서 메시지를 구분하려는 프로그램은 길이 정보나 구분자 등 자체 규칙이 필요하다. TCP가 순서를 보장한다는 말과 응용 메시지의 경계를 보존한다는 말은 다르다.

누락을 복구하는 방법

TCP는 순서 번호와 확인 응답 등을 이용해 전달 상태를 추적하고 필요할 때 재전송한다. 네트워크에서 패킷이 순서대로 도착하지 않거나 일부가 손실되어도 바이트 스트림을 재구성한다.

복구에는 시간이 들고 연결이 최종적으로 실패할 수도 있다. TCP의 신뢰성은 어떤 장애에서도 데이터가 무한히 기다리면 반드시 처리된다는 약속은 아니다.

받는 쪽과 네트워크를 보호하기

흐름 제어는 수신 측이 감당할 수 있는 양에 맞춰 전송을 조절한다. 혼잡 제어는 네트워크의 상태를 고려해 과도한 전송을 줄이는 문제다. 이름이 비슷하지만 보호하려는 대상이 다르다.

응답 지연과 손실, 버퍼 상태에 따라 실제 처리량이 달라진다. 회선의 명목 속도만으로 한 연결의 전송 속도를 정확히 예측할 수는 없다.

보안과 응용 결과는 별도다

TCP 자체는 데이터의 암호화와 서버 신원 확인을 제공하지 않는다. HTTPS는 TCP 위의 TLS를 사용하는 경우가 있으며, 다른 전송 기반을 쓰는 HTTP 버전도 있다.

상대 운영체제가 데이터를 받았다는 확인과 상대 프로그램이 작업을 성공적으로 저장했다는 확인은 다르다. 결제나 문서 저장 같은 작업은 응용 계층의 응답과 중복 처리 정책이 필요하다.

관련 문서

인터넷 프로토콜 / 사용자 데이터그램 프로토콜 / HTTPS