TransmissionControlProtocol 인터넷상의 컴퓨터들 사이에서 데이터를 메시지의 형태로 보내기 위해 [[IP]]와 함께 사용되는 프로토콜이다. [[IP]]가 실제로 데이터의 배달처리를 관장하는 동안, [[TCP]]는 데이터 패킷을 추적 관리한다 (메시지는 인터넷 내에서 효율적인 라우팅을 하기 위해 여러 개의 작은 조각으로 나뉘어지는데, 이것을 패킷이라고 부른다). 예를 들면, [[HTML]] 파일이 웹 서버로부터 사용자에게 보내질 때, 서버 내에 있는 [[TCP]] 프로그램 계층은 파일을 여러 개의 패킷들로 나누고, 패킷 번호를 붙인 다음, [[IP]] 프로그램 계층으로 보낸다. 각 패킷이 동일한 수신지 주소(IP주소)를 가지고 있더라도, 패킷들은 네트웍의 서로 다른 경로를 통해 전송될 수 있다. 다른 한쪽 편(사용자 컴퓨터 내의 클라이언트 프로그램)에 있는 [[TCP]]는, 각 패킷들을 재조립하고, 사용자에게 하나의 완전한 파일로 보낼 수 있을 때까지 기다린다. [[TCP]]는 연결지향 프로토콜이라고 알려져 있는데, 이것은 메시지들이 각단의 응용 프로그램들에 의해 교환되는 시간동안 연결이 확립되고 유지되는 것을 의미한다. [[TCP]]는 [[IP]]가 처리할 수 있도록 메시지를 여러 개의 패킷들로 확실히 나누고, 반대편에서는 완전한 메시지로 패킷들을 재조립할 책임이 있다. [[TCP]]/[[IP]]의 프로그래밍 인터페이스를 [[Socket]]이라고 한다.